pulumi-hcloud 1.18.0a1709364097__py3-none-any.whl → 1.22.0a1736833581__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_hcloud/__init__.py +2 -0
- pulumi_hcloud/_inputs.py +247 -15
- pulumi_hcloud/_utilities.py +41 -5
- pulumi_hcloud/certificate.py +15 -10
- pulumi_hcloud/config/__init__.pyi +5 -0
- pulumi_hcloud/config/vars.py +5 -0
- pulumi_hcloud/firewall.py +77 -66
- pulumi_hcloud/firewall_attachment.py +31 -18
- pulumi_hcloud/floating_ip.py +39 -32
- pulumi_hcloud/floating_ip_assignment.py +11 -4
- pulumi_hcloud/get_certificate.py +25 -6
- pulumi_hcloud/get_certificates.py +14 -5
- pulumi_hcloud/get_datacenter.py +38 -23
- pulumi_hcloud/get_datacenters.py +28 -53
- pulumi_hcloud/get_firewall.py +38 -19
- pulumi_hcloud/get_firewalls.py +16 -5
- pulumi_hcloud/get_floating_ip.py +39 -13
- pulumi_hcloud/get_floating_ips.py +14 -5
- pulumi_hcloud/get_image.py +37 -9
- pulumi_hcloud/get_images.py +22 -5
- pulumi_hcloud/get_load_balancer.py +30 -7
- pulumi_hcloud/get_load_balancer_type.py +202 -0
- pulumi_hcloud/get_load_balancer_types.py +100 -0
- pulumi_hcloud/get_load_balancers.py +14 -5
- pulumi_hcloud/get_location.py +42 -25
- pulumi_hcloud/get_locations.py +28 -53
- pulumi_hcloud/get_network.py +28 -11
- pulumi_hcloud/get_networks.py +14 -5
- pulumi_hcloud/get_placement_group.py +31 -13
- pulumi_hcloud/get_placement_groups.py +16 -5
- pulumi_hcloud/get_primary_ip.py +44 -18
- pulumi_hcloud/get_primary_ips.py +14 -5
- pulumi_hcloud/get_server.py +43 -11
- pulumi_hcloud/get_server_type.py +75 -49
- pulumi_hcloud/get_server_types.py +39 -23
- pulumi_hcloud/get_servers.py +16 -5
- pulumi_hcloud/get_ssh_key.py +58 -32
- pulumi_hcloud/get_ssh_keys.py +35 -20
- pulumi_hcloud/get_volume.py +33 -12
- pulumi_hcloud/get_volumes.py +18 -7
- pulumi_hcloud/load_balancer.py +63 -60
- pulumi_hcloud/load_balancer_network.py +28 -15
- pulumi_hcloud/load_balancer_service.py +59 -52
- pulumi_hcloud/load_balancer_target.py +33 -24
- pulumi_hcloud/managed_certificate.py +57 -20
- pulumi_hcloud/network.py +27 -18
- pulumi_hcloud/network_route.py +15 -6
- pulumi_hcloud/network_subnet.py +15 -6
- pulumi_hcloud/outputs.py +265 -46
- pulumi_hcloud/placement_group.py +27 -18
- pulumi_hcloud/primary_ip.py +66 -43
- pulumi_hcloud/provider.py +5 -0
- pulumi_hcloud/pulumi-plugin.json +2 -1
- pulumi_hcloud/rdns.py +51 -34
- pulumi_hcloud/server.py +185 -130
- pulumi_hcloud/server_network.py +26 -15
- pulumi_hcloud/snapshot.py +25 -18
- pulumi_hcloud/ssh_key.py +52 -47
- pulumi_hcloud/uploaded_certificate.py +73 -20
- pulumi_hcloud/volume.py +37 -28
- pulumi_hcloud/volume_attachment.py +11 -4
- {pulumi_hcloud-1.18.0a1709364097.dist-info → pulumi_hcloud-1.22.0a1736833581.dist-info}/METADATA +7 -6
- pulumi_hcloud-1.22.0a1736833581.dist-info/RECORD +67 -0
- {pulumi_hcloud-1.18.0a1709364097.dist-info → pulumi_hcloud-1.22.0a1736833581.dist-info}/WHEEL +1 -1
- pulumi_hcloud-1.18.0a1709364097.dist-info/RECORD +0 -65
- {pulumi_hcloud-1.18.0a1709364097.dist-info → pulumi_hcloud-1.22.0a1736833581.dist-info}/top_level.txt +0 -0
pulumi_hcloud/placement_group.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__ = ['PlacementGroupArgs', 'PlacementGroup']
|
|
@@ -15,12 +20,12 @@ __all__ = ['PlacementGroupArgs', 'PlacementGroup']
|
|
|
15
20
|
class PlacementGroupArgs:
|
|
16
21
|
def __init__(__self__, *,
|
|
17
22
|
type: pulumi.Input[str],
|
|
18
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
23
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
19
24
|
name: Optional[pulumi.Input[str]] = None):
|
|
20
25
|
"""
|
|
21
26
|
The set of arguments for constructing a PlacementGroup resource.
|
|
22
27
|
:param pulumi.Input[str] type: Type of the Placement Group.
|
|
23
|
-
:param pulumi.Input[Mapping[str,
|
|
28
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
|
|
24
29
|
:param pulumi.Input[str] name: Name of the Placement Group.
|
|
25
30
|
"""
|
|
26
31
|
pulumi.set(__self__, "type", type)
|
|
@@ -43,14 +48,14 @@ class PlacementGroupArgs:
|
|
|
43
48
|
|
|
44
49
|
@property
|
|
45
50
|
@pulumi.getter
|
|
46
|
-
def labels(self) -> Optional[pulumi.Input[Mapping[str,
|
|
51
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
|
47
52
|
"""
|
|
48
53
|
User-defined labels (key-value pairs) should be created with.
|
|
49
54
|
"""
|
|
50
55
|
return pulumi.get(self, "labels")
|
|
51
56
|
|
|
52
57
|
@labels.setter
|
|
53
|
-
def labels(self, value: Optional[pulumi.Input[Mapping[str,
|
|
58
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
|
54
59
|
pulumi.set(self, "labels", value)
|
|
55
60
|
|
|
56
61
|
@property
|
|
@@ -69,13 +74,13 @@ class PlacementGroupArgs:
|
|
|
69
74
|
@pulumi.input_type
|
|
70
75
|
class _PlacementGroupState:
|
|
71
76
|
def __init__(__self__, *,
|
|
72
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
77
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
73
78
|
name: Optional[pulumi.Input[str]] = None,
|
|
74
79
|
servers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
|
|
75
80
|
type: Optional[pulumi.Input[str]] = None):
|
|
76
81
|
"""
|
|
77
82
|
Input properties used for looking up and filtering PlacementGroup resources.
|
|
78
|
-
:param pulumi.Input[Mapping[str,
|
|
83
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
|
|
79
84
|
:param pulumi.Input[str] name: Name of the Placement Group.
|
|
80
85
|
:param pulumi.Input[str] type: Type of the Placement Group.
|
|
81
86
|
"""
|
|
@@ -90,14 +95,14 @@ class _PlacementGroupState:
|
|
|
90
95
|
|
|
91
96
|
@property
|
|
92
97
|
@pulumi.getter
|
|
93
|
-
def labels(self) -> Optional[pulumi.Input[Mapping[str,
|
|
98
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
|
94
99
|
"""
|
|
95
100
|
User-defined labels (key-value pairs) should be created with.
|
|
96
101
|
"""
|
|
97
102
|
return pulumi.get(self, "labels")
|
|
98
103
|
|
|
99
104
|
@labels.setter
|
|
100
|
-
def labels(self, value: Optional[pulumi.Input[Mapping[str,
|
|
105
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
|
101
106
|
pulumi.set(self, "labels", value)
|
|
102
107
|
|
|
103
108
|
@property
|
|
@@ -139,7 +144,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
139
144
|
def __init__(__self__,
|
|
140
145
|
resource_name: str,
|
|
141
146
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
142
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
147
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
143
148
|
name: Optional[pulumi.Input[str]] = None,
|
|
144
149
|
type: Optional[pulumi.Input[str]] = None,
|
|
145
150
|
__props__=None):
|
|
@@ -153,13 +158,15 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
153
158
|
import pulumi_hcloud as hcloud
|
|
154
159
|
|
|
155
160
|
my_placement_group = hcloud.PlacementGroup("my-placement-group",
|
|
161
|
+
name="my-placement-group",
|
|
156
162
|
type="spread",
|
|
157
163
|
labels={
|
|
158
164
|
"key": "value",
|
|
159
165
|
})
|
|
160
166
|
node1 = hcloud.Server("node1",
|
|
167
|
+
name="node1",
|
|
161
168
|
image="debian-11",
|
|
162
|
-
server_type="
|
|
169
|
+
server_type="cx22",
|
|
163
170
|
placement_group_id=my_placement_group.id)
|
|
164
171
|
```
|
|
165
172
|
|
|
@@ -168,12 +175,12 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
168
175
|
Placement Groups can be imported using its `id`:
|
|
169
176
|
|
|
170
177
|
```sh
|
|
171
|
-
$ pulumi import hcloud:index/placementGroup:PlacementGroup
|
|
178
|
+
$ pulumi import hcloud:index/placementGroup:PlacementGroup example "$PLACEMENT_GROUP_ID"
|
|
172
179
|
```
|
|
173
180
|
|
|
174
181
|
:param str resource_name: The name of the resource.
|
|
175
182
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
176
|
-
:param pulumi.Input[Mapping[str,
|
|
183
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
|
|
177
184
|
:param pulumi.Input[str] name: Name of the Placement Group.
|
|
178
185
|
:param pulumi.Input[str] type: Type of the Placement Group.
|
|
179
186
|
"""
|
|
@@ -193,13 +200,15 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
193
200
|
import pulumi_hcloud as hcloud
|
|
194
201
|
|
|
195
202
|
my_placement_group = hcloud.PlacementGroup("my-placement-group",
|
|
203
|
+
name="my-placement-group",
|
|
196
204
|
type="spread",
|
|
197
205
|
labels={
|
|
198
206
|
"key": "value",
|
|
199
207
|
})
|
|
200
208
|
node1 = hcloud.Server("node1",
|
|
209
|
+
name="node1",
|
|
201
210
|
image="debian-11",
|
|
202
|
-
server_type="
|
|
211
|
+
server_type="cx22",
|
|
203
212
|
placement_group_id=my_placement_group.id)
|
|
204
213
|
```
|
|
205
214
|
|
|
@@ -208,7 +217,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
208
217
|
Placement Groups can be imported using its `id`:
|
|
209
218
|
|
|
210
219
|
```sh
|
|
211
|
-
$ pulumi import hcloud:index/placementGroup:PlacementGroup
|
|
220
|
+
$ pulumi import hcloud:index/placementGroup:PlacementGroup example "$PLACEMENT_GROUP_ID"
|
|
212
221
|
```
|
|
213
222
|
|
|
214
223
|
:param str resource_name: The name of the resource.
|
|
@@ -226,7 +235,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
226
235
|
def _internal_init(__self__,
|
|
227
236
|
resource_name: str,
|
|
228
237
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
229
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
238
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
230
239
|
name: Optional[pulumi.Input[str]] = None,
|
|
231
240
|
type: Optional[pulumi.Input[str]] = None,
|
|
232
241
|
__props__=None):
|
|
@@ -254,7 +263,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
254
263
|
def get(resource_name: str,
|
|
255
264
|
id: pulumi.Input[str],
|
|
256
265
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
257
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
266
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
258
267
|
name: Optional[pulumi.Input[str]] = None,
|
|
259
268
|
servers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
|
|
260
269
|
type: Optional[pulumi.Input[str]] = None) -> 'PlacementGroup':
|
|
@@ -265,7 +274,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
265
274
|
:param str resource_name: The unique name of the resulting resource.
|
|
266
275
|
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
267
276
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
268
|
-
:param pulumi.Input[Mapping[str,
|
|
277
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
|
|
269
278
|
:param pulumi.Input[str] name: Name of the Placement Group.
|
|
270
279
|
:param pulumi.Input[str] type: Type of the Placement Group.
|
|
271
280
|
"""
|
|
@@ -281,7 +290,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
281
290
|
|
|
282
291
|
@property
|
|
283
292
|
@pulumi.getter
|
|
284
|
-
def labels(self) -> pulumi.Output[Optional[Mapping[str,
|
|
293
|
+
def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
|
285
294
|
"""
|
|
286
295
|
User-defined labels (key-value pairs) should be created with.
|
|
287
296
|
"""
|
pulumi_hcloud/primary_ip.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__ = ['PrimaryIpArgs', 'PrimaryIp']
|
|
@@ -20,7 +25,7 @@ class PrimaryIpArgs:
|
|
|
20
25
|
assignee_id: Optional[pulumi.Input[int]] = None,
|
|
21
26
|
datacenter: Optional[pulumi.Input[str]] = None,
|
|
22
27
|
delete_protection: Optional[pulumi.Input[bool]] = None,
|
|
23
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
28
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
24
29
|
name: Optional[pulumi.Input[str]] = None):
|
|
25
30
|
"""
|
|
26
31
|
The set of arguments for constructing a PrimaryIp resource.
|
|
@@ -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
|
-
|
|
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
|
|
|
@@ -123,14 +132,14 @@ class PrimaryIpArgs:
|
|
|
123
132
|
|
|
124
133
|
@property
|
|
125
134
|
@pulumi.getter
|
|
126
|
-
def labels(self) -> Optional[pulumi.Input[Mapping[str,
|
|
135
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
|
127
136
|
"""
|
|
128
|
-
|
|
137
|
+
User-defined labels (key-value pairs).
|
|
129
138
|
"""
|
|
130
139
|
return pulumi.get(self, "labels")
|
|
131
140
|
|
|
132
141
|
@labels.setter
|
|
133
|
-
def labels(self, value: Optional[pulumi.Input[Mapping[str,
|
|
142
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
|
134
143
|
pulumi.set(self, "labels", value)
|
|
135
144
|
|
|
136
145
|
@property
|
|
@@ -156,20 +165,22 @@ class _PrimaryIpState:
|
|
|
156
165
|
delete_protection: Optional[pulumi.Input[bool]] = None,
|
|
157
166
|
ip_address: Optional[pulumi.Input[str]] = None,
|
|
158
167
|
ip_network: Optional[pulumi.Input[str]] = None,
|
|
159
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
168
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
160
169
|
name: Optional[pulumi.Input[str]] = None,
|
|
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,
|
|
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
|
|
|
@@ -281,14 +294,14 @@ class _PrimaryIpState:
|
|
|
281
294
|
|
|
282
295
|
@property
|
|
283
296
|
@pulumi.getter
|
|
284
|
-
def labels(self) -> Optional[pulumi.Input[Mapping[str,
|
|
297
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
|
285
298
|
"""
|
|
286
|
-
|
|
299
|
+
User-defined labels (key-value pairs).
|
|
287
300
|
"""
|
|
288
301
|
return pulumi.get(self, "labels")
|
|
289
302
|
|
|
290
303
|
@labels.setter
|
|
291
|
-
def labels(self, value: Optional[pulumi.Input[Mapping[str,
|
|
304
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
|
292
305
|
pulumi.set(self, "labels", value)
|
|
293
306
|
|
|
294
307
|
@property
|
|
@@ -326,7 +339,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
326
339
|
auto_delete: Optional[pulumi.Input[bool]] = None,
|
|
327
340
|
datacenter: Optional[pulumi.Input[str]] = None,
|
|
328
341
|
delete_protection: Optional[pulumi.Input[bool]] = None,
|
|
329
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
342
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
330
343
|
name: Optional[pulumi.Input[str]] = None,
|
|
331
344
|
type: Optional[pulumi.Input[str]] = None,
|
|
332
345
|
__props__=None):
|
|
@@ -343,6 +356,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
343
356
|
import pulumi_hcloud as hcloud
|
|
344
357
|
|
|
345
358
|
main = hcloud.PrimaryIp("main",
|
|
359
|
+
name="primary_ip_test",
|
|
346
360
|
datacenter="fsn1-dc14",
|
|
347
361
|
type="ipv4",
|
|
348
362
|
assignee_type="server",
|
|
@@ -351,16 +365,17 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
351
365
|
"hallo": "welt",
|
|
352
366
|
})
|
|
353
367
|
# Link a server to a primary IP
|
|
354
|
-
server_test = hcloud.Server("
|
|
368
|
+
server_test = hcloud.Server("server_test",
|
|
369
|
+
name="test-server",
|
|
355
370
|
image="ubuntu-20.04",
|
|
356
|
-
server_type="
|
|
371
|
+
server_type="cx22",
|
|
357
372
|
datacenter="fsn1-dc14",
|
|
358
373
|
labels={
|
|
359
374
|
"test": "tessst1",
|
|
360
375
|
},
|
|
361
|
-
public_nets=[
|
|
362
|
-
ipv4
|
|
363
|
-
|
|
376
|
+
public_nets=[{
|
|
377
|
+
"ipv4": main.id,
|
|
378
|
+
}])
|
|
364
379
|
```
|
|
365
380
|
|
|
366
381
|
## Import
|
|
@@ -368,18 +383,20 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
368
383
|
Primary IPs can be imported using its `id`:
|
|
369
384
|
|
|
370
385
|
```sh
|
|
371
|
-
$ pulumi import hcloud:index/primaryIp:PrimaryIp
|
|
386
|
+
$ pulumi import hcloud:index/primaryIp:PrimaryIp example "$PRIMARY_IP_ID"
|
|
372
387
|
```
|
|
373
388
|
|
|
374
389
|
:param str resource_name: The name of the resource.
|
|
375
390
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
376
|
-
:param pulumi.Input[int] assignee_id: ID of the assigned resource
|
|
391
|
+
:param pulumi.Input[int] assignee_id: ID of the assigned resource.
|
|
377
392
|
:param pulumi.Input[str] assignee_type: The type of the assigned resource. Currently supported: `server`
|
|
378
393
|
:param pulumi.Input[bool] auto_delete: Whether auto delete is enabled.
|
|
379
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.
|
|
380
|
-
: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.
|
|
381
396
|
:param pulumi.Input[bool] delete_protection: Whether delete protection is enabled. See "Delete Protection" in the Provider Docs for details.
|
|
382
|
-
|
|
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).
|
|
383
400
|
:param pulumi.Input[str] name: Name of the Primary IP.
|
|
384
401
|
:param pulumi.Input[str] type: Type of the Primary IP. `ipv4` or `ipv6`
|
|
385
402
|
"""
|
|
@@ -402,6 +419,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
402
419
|
import pulumi_hcloud as hcloud
|
|
403
420
|
|
|
404
421
|
main = hcloud.PrimaryIp("main",
|
|
422
|
+
name="primary_ip_test",
|
|
405
423
|
datacenter="fsn1-dc14",
|
|
406
424
|
type="ipv4",
|
|
407
425
|
assignee_type="server",
|
|
@@ -410,16 +428,17 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
410
428
|
"hallo": "welt",
|
|
411
429
|
})
|
|
412
430
|
# Link a server to a primary IP
|
|
413
|
-
server_test = hcloud.Server("
|
|
431
|
+
server_test = hcloud.Server("server_test",
|
|
432
|
+
name="test-server",
|
|
414
433
|
image="ubuntu-20.04",
|
|
415
|
-
server_type="
|
|
434
|
+
server_type="cx22",
|
|
416
435
|
datacenter="fsn1-dc14",
|
|
417
436
|
labels={
|
|
418
437
|
"test": "tessst1",
|
|
419
438
|
},
|
|
420
|
-
public_nets=[
|
|
421
|
-
ipv4
|
|
422
|
-
|
|
439
|
+
public_nets=[{
|
|
440
|
+
"ipv4": main.id,
|
|
441
|
+
}])
|
|
423
442
|
```
|
|
424
443
|
|
|
425
444
|
## Import
|
|
@@ -427,7 +446,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
427
446
|
Primary IPs can be imported using its `id`:
|
|
428
447
|
|
|
429
448
|
```sh
|
|
430
|
-
$ pulumi import hcloud:index/primaryIp:PrimaryIp
|
|
449
|
+
$ pulumi import hcloud:index/primaryIp:PrimaryIp example "$PRIMARY_IP_ID"
|
|
431
450
|
```
|
|
432
451
|
|
|
433
452
|
:param str resource_name: The name of the resource.
|
|
@@ -450,7 +469,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
450
469
|
auto_delete: Optional[pulumi.Input[bool]] = None,
|
|
451
470
|
datacenter: Optional[pulumi.Input[str]] = None,
|
|
452
471
|
delete_protection: Optional[pulumi.Input[bool]] = None,
|
|
453
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
472
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
454
473
|
name: Optional[pulumi.Input[str]] = None,
|
|
455
474
|
type: Optional[pulumi.Input[str]] = None,
|
|
456
475
|
__props__=None):
|
|
@@ -495,7 +514,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
495
514
|
delete_protection: Optional[pulumi.Input[bool]] = None,
|
|
496
515
|
ip_address: Optional[pulumi.Input[str]] = None,
|
|
497
516
|
ip_network: Optional[pulumi.Input[str]] = None,
|
|
498
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
517
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
499
518
|
name: Optional[pulumi.Input[str]] = None,
|
|
500
519
|
type: Optional[pulumi.Input[str]] = None) -> 'PrimaryIp':
|
|
501
520
|
"""
|
|
@@ -505,15 +524,17 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
505
524
|
:param str resource_name: The unique name of the resulting resource.
|
|
506
525
|
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
507
526
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
508
|
-
:param pulumi.Input[int] assignee_id: ID of the assigned resource
|
|
527
|
+
:param pulumi.Input[int] assignee_id: ID of the assigned resource.
|
|
509
528
|
:param pulumi.Input[str] assignee_type: The type of the assigned resource. Currently supported: `server`
|
|
510
529
|
:param pulumi.Input[bool] auto_delete: Whether auto delete is enabled.
|
|
511
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.
|
|
512
|
-
: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.
|
|
513
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.
|
|
514
535
|
:param pulumi.Input[str] ip_address: (string) IP Address of the Primary IP.
|
|
515
536
|
:param pulumi.Input[str] ip_network: (string) IPv6 subnet of the Primary IP for IPv6 addresses. (Only set if `type` is `ipv6`)
|
|
516
|
-
:param pulumi.Input[Mapping[str,
|
|
537
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs).
|
|
517
538
|
:param pulumi.Input[str] name: Name of the Primary IP.
|
|
518
539
|
:param pulumi.Input[str] type: Type of the Primary IP. `ipv4` or `ipv6`
|
|
519
540
|
"""
|
|
@@ -537,7 +558,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
537
558
|
@pulumi.getter(name="assigneeId")
|
|
538
559
|
def assignee_id(self) -> pulumi.Output[int]:
|
|
539
560
|
"""
|
|
540
|
-
ID of the assigned resource
|
|
561
|
+
ID of the assigned resource.
|
|
541
562
|
"""
|
|
542
563
|
return pulumi.get(self, "assignee_id")
|
|
543
564
|
|
|
@@ -562,7 +583,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
562
583
|
@pulumi.getter
|
|
563
584
|
def datacenter(self) -> pulumi.Output[str]:
|
|
564
585
|
"""
|
|
565
|
-
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.
|
|
566
587
|
"""
|
|
567
588
|
return pulumi.get(self, "datacenter")
|
|
568
589
|
|
|
@@ -571,6 +592,8 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
571
592
|
def delete_protection(self) -> pulumi.Output[Optional[bool]]:
|
|
572
593
|
"""
|
|
573
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.
|
|
574
597
|
"""
|
|
575
598
|
return pulumi.get(self, "delete_protection")
|
|
576
599
|
|
|
@@ -592,9 +615,9 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
592
615
|
|
|
593
616
|
@property
|
|
594
617
|
@pulumi.getter
|
|
595
|
-
def labels(self) -> pulumi.Output[Optional[Mapping[str,
|
|
618
|
+
def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
|
596
619
|
"""
|
|
597
|
-
|
|
620
|
+
User-defined labels (key-value pairs).
|
|
598
621
|
"""
|
|
599
622
|
return pulumi.get(self, "labels")
|
|
600
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']
|
pulumi_hcloud/pulumi-plugin.json
CHANGED