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.
- 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 -70
- pulumi_hcloud/firewall_attachment.py +27 -26
- pulumi_hcloud/floating_ip.py +39 -36
- pulumi_hcloud/floating_ip_assignment.py +11 -8
- pulumi_hcloud/get_certificate.py +25 -10
- pulumi_hcloud/get_certificates.py +14 -9
- pulumi_hcloud/get_datacenter.py +38 -27
- pulumi_hcloud/get_datacenters.py +28 -53
- pulumi_hcloud/get_firewall.py +38 -23
- pulumi_hcloud/get_firewalls.py +16 -9
- pulumi_hcloud/get_floating_ip.py +37 -17
- pulumi_hcloud/get_floating_ips.py +14 -9
- pulumi_hcloud/get_image.py +37 -13
- pulumi_hcloud/get_images.py +22 -9
- pulumi_hcloud/get_load_balancer.py +30 -11
- 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 -9
- pulumi_hcloud/get_location.py +42 -29
- pulumi_hcloud/get_locations.py +28 -53
- pulumi_hcloud/get_network.py +28 -15
- pulumi_hcloud/get_networks.py +14 -9
- pulumi_hcloud/get_placement_group.py +31 -17
- pulumi_hcloud/get_placement_groups.py +16 -9
- pulumi_hcloud/get_primary_ip.py +42 -22
- pulumi_hcloud/get_primary_ips.py +14 -9
- pulumi_hcloud/get_server.py +43 -15
- pulumi_hcloud/get_server_type.py +75 -53
- pulumi_hcloud/get_server_types.py +39 -23
- pulumi_hcloud/get_servers.py +16 -9
- pulumi_hcloud/get_ssh_key.py +58 -36
- pulumi_hcloud/get_ssh_keys.py +35 -24
- pulumi_hcloud/get_volume.py +33 -16
- pulumi_hcloud/get_volumes.py +18 -11
- pulumi_hcloud/load_balancer.py +63 -64
- pulumi_hcloud/load_balancer_network.py +26 -17
- pulumi_hcloud/load_balancer_service.py +57 -54
- pulumi_hcloud/load_balancer_target.py +23 -18
- pulumi_hcloud/managed_certificate.py +57 -20
- pulumi_hcloud/network.py +27 -22
- pulumi_hcloud/network_route.py +13 -8
- pulumi_hcloud/network_subnet.py +13 -8
- pulumi_hcloud/outputs.py +265 -46
- pulumi_hcloud/placement_group.py +27 -22
- pulumi_hcloud/primary_ip.py +66 -47
- pulumi_hcloud/provider.py +5 -0
- pulumi_hcloud/pulumi-plugin.json +2 -1
- pulumi_hcloud/rdns.py +41 -40
- pulumi_hcloud/server.py +123 -176
- pulumi_hcloud/server_network.py +24 -17
- pulumi_hcloud/snapshot.py +25 -22
- pulumi_hcloud/ssh_key.py +52 -51
- pulumi_hcloud/uploaded_certificate.py +73 -20
- pulumi_hcloud/volume.py +37 -32
- pulumi_hcloud/volume_attachment.py +11 -8
- {pulumi_hcloud-1.18.0a1710156455.dist-info → pulumi_hcloud-1.22.0a1736849475.dist-info}/METADATA +7 -6
- pulumi_hcloud-1.22.0a1736849475.dist-info/RECORD +67 -0
- {pulumi_hcloud-1.18.0a1710156455.dist-info → pulumi_hcloud-1.22.0a1736849475.dist-info}/WHEEL +1 -1
- pulumi_hcloud-1.18.0a1710156455.dist-info/RECORD +0 -65
- {pulumi_hcloud-1.18.0a1710156455.dist-info → pulumi_hcloud-1.22.0a1736849475.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):
|
|
@@ -148,34 +153,34 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
148
153
|
|
|
149
154
|
## Example Usage
|
|
150
155
|
|
|
151
|
-
<!--Start PulumiCodeChooser -->
|
|
152
156
|
```python
|
|
153
157
|
import pulumi
|
|
154
158
|
import pulumi_hcloud as hcloud
|
|
155
159
|
|
|
156
160
|
my_placement_group = hcloud.PlacementGroup("my-placement-group",
|
|
161
|
+
name="my-placement-group",
|
|
157
162
|
type="spread",
|
|
158
163
|
labels={
|
|
159
164
|
"key": "value",
|
|
160
165
|
})
|
|
161
166
|
node1 = hcloud.Server("node1",
|
|
167
|
+
name="node1",
|
|
162
168
|
image="debian-11",
|
|
163
|
-
server_type="
|
|
169
|
+
server_type="cx22",
|
|
164
170
|
placement_group_id=my_placement_group.id)
|
|
165
171
|
```
|
|
166
|
-
<!--End PulumiCodeChooser -->
|
|
167
172
|
|
|
168
173
|
## Import
|
|
169
174
|
|
|
170
175
|
Placement Groups can be imported using its `id`:
|
|
171
176
|
|
|
172
177
|
```sh
|
|
173
|
-
$ pulumi import hcloud:index/placementGroup:PlacementGroup
|
|
178
|
+
$ pulumi import hcloud:index/placementGroup:PlacementGroup example "$PLACEMENT_GROUP_ID"
|
|
174
179
|
```
|
|
175
180
|
|
|
176
181
|
:param str resource_name: The name of the resource.
|
|
177
182
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
178
|
-
: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.
|
|
179
184
|
:param pulumi.Input[str] name: Name of the Placement Group.
|
|
180
185
|
:param pulumi.Input[str] type: Type of the Placement Group.
|
|
181
186
|
"""
|
|
@@ -190,29 +195,29 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
190
195
|
|
|
191
196
|
## Example Usage
|
|
192
197
|
|
|
193
|
-
<!--Start PulumiCodeChooser -->
|
|
194
198
|
```python
|
|
195
199
|
import pulumi
|
|
196
200
|
import pulumi_hcloud as hcloud
|
|
197
201
|
|
|
198
202
|
my_placement_group = hcloud.PlacementGroup("my-placement-group",
|
|
203
|
+
name="my-placement-group",
|
|
199
204
|
type="spread",
|
|
200
205
|
labels={
|
|
201
206
|
"key": "value",
|
|
202
207
|
})
|
|
203
208
|
node1 = hcloud.Server("node1",
|
|
209
|
+
name="node1",
|
|
204
210
|
image="debian-11",
|
|
205
|
-
server_type="
|
|
211
|
+
server_type="cx22",
|
|
206
212
|
placement_group_id=my_placement_group.id)
|
|
207
213
|
```
|
|
208
|
-
<!--End PulumiCodeChooser -->
|
|
209
214
|
|
|
210
215
|
## Import
|
|
211
216
|
|
|
212
217
|
Placement Groups can be imported using its `id`:
|
|
213
218
|
|
|
214
219
|
```sh
|
|
215
|
-
$ pulumi import hcloud:index/placementGroup:PlacementGroup
|
|
220
|
+
$ pulumi import hcloud:index/placementGroup:PlacementGroup example "$PLACEMENT_GROUP_ID"
|
|
216
221
|
```
|
|
217
222
|
|
|
218
223
|
:param str resource_name: The name of the resource.
|
|
@@ -230,7 +235,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
230
235
|
def _internal_init(__self__,
|
|
231
236
|
resource_name: str,
|
|
232
237
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
233
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
238
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
234
239
|
name: Optional[pulumi.Input[str]] = None,
|
|
235
240
|
type: Optional[pulumi.Input[str]] = None,
|
|
236
241
|
__props__=None):
|
|
@@ -258,7 +263,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
258
263
|
def get(resource_name: str,
|
|
259
264
|
id: pulumi.Input[str],
|
|
260
265
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
261
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
266
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
262
267
|
name: Optional[pulumi.Input[str]] = None,
|
|
263
268
|
servers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
|
|
264
269
|
type: Optional[pulumi.Input[str]] = None) -> 'PlacementGroup':
|
|
@@ -269,7 +274,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
269
274
|
:param str resource_name: The unique name of the resulting resource.
|
|
270
275
|
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
271
276
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
272
|
-
: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.
|
|
273
278
|
:param pulumi.Input[str] name: Name of the Placement Group.
|
|
274
279
|
:param pulumi.Input[str] type: Type of the Placement Group.
|
|
275
280
|
"""
|
|
@@ -285,7 +290,7 @@ class PlacementGroup(pulumi.CustomResource):
|
|
|
285
290
|
|
|
286
291
|
@property
|
|
287
292
|
@pulumi.getter
|
|
288
|
-
def labels(self) -> pulumi.Output[Optional[Mapping[str,
|
|
293
|
+
def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
|
289
294
|
"""
|
|
290
295
|
User-defined labels (key-value pairs) should be created with.
|
|
291
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):
|
|
@@ -338,12 +351,12 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
338
351
|
|
|
339
352
|
## Example Usage
|
|
340
353
|
|
|
341
|
-
<!--Start PulumiCodeChooser -->
|
|
342
354
|
```python
|
|
343
355
|
import pulumi
|
|
344
356
|
import pulumi_hcloud as hcloud
|
|
345
357
|
|
|
346
358
|
main = hcloud.PrimaryIp("main",
|
|
359
|
+
name="primary_ip_test",
|
|
347
360
|
datacenter="fsn1-dc14",
|
|
348
361
|
type="ipv4",
|
|
349
362
|
assignee_type="server",
|
|
@@ -352,36 +365,38 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
352
365
|
"hallo": "welt",
|
|
353
366
|
})
|
|
354
367
|
# Link a server to a primary IP
|
|
355
|
-
server_test = hcloud.Server("
|
|
368
|
+
server_test = hcloud.Server("server_test",
|
|
369
|
+
name="test-server",
|
|
356
370
|
image="ubuntu-20.04",
|
|
357
|
-
server_type="
|
|
371
|
+
server_type="cx22",
|
|
358
372
|
datacenter="fsn1-dc14",
|
|
359
373
|
labels={
|
|
360
374
|
"test": "tessst1",
|
|
361
375
|
},
|
|
362
|
-
public_nets=[
|
|
363
|
-
ipv4
|
|
364
|
-
|
|
376
|
+
public_nets=[{
|
|
377
|
+
"ipv4": main.id,
|
|
378
|
+
}])
|
|
365
379
|
```
|
|
366
|
-
<!--End PulumiCodeChooser -->
|
|
367
380
|
|
|
368
381
|
## Import
|
|
369
382
|
|
|
370
383
|
Primary IPs can be imported using its `id`:
|
|
371
384
|
|
|
372
385
|
```sh
|
|
373
|
-
$ pulumi import hcloud:index/primaryIp:PrimaryIp
|
|
386
|
+
$ pulumi import hcloud:index/primaryIp:PrimaryIp example "$PRIMARY_IP_ID"
|
|
374
387
|
```
|
|
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
|
-
|
|
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
|
"""
|
|
@@ -399,12 +414,12 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
399
414
|
|
|
400
415
|
## Example Usage
|
|
401
416
|
|
|
402
|
-
<!--Start PulumiCodeChooser -->
|
|
403
417
|
```python
|
|
404
418
|
import pulumi
|
|
405
419
|
import pulumi_hcloud as hcloud
|
|
406
420
|
|
|
407
421
|
main = hcloud.PrimaryIp("main",
|
|
422
|
+
name="primary_ip_test",
|
|
408
423
|
datacenter="fsn1-dc14",
|
|
409
424
|
type="ipv4",
|
|
410
425
|
assignee_type="server",
|
|
@@ -413,25 +428,25 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
413
428
|
"hallo": "welt",
|
|
414
429
|
})
|
|
415
430
|
# Link a server to a primary IP
|
|
416
|
-
server_test = hcloud.Server("
|
|
431
|
+
server_test = hcloud.Server("server_test",
|
|
432
|
+
name="test-server",
|
|
417
433
|
image="ubuntu-20.04",
|
|
418
|
-
server_type="
|
|
434
|
+
server_type="cx22",
|
|
419
435
|
datacenter="fsn1-dc14",
|
|
420
436
|
labels={
|
|
421
437
|
"test": "tessst1",
|
|
422
438
|
},
|
|
423
|
-
public_nets=[
|
|
424
|
-
ipv4
|
|
425
|
-
|
|
439
|
+
public_nets=[{
|
|
440
|
+
"ipv4": main.id,
|
|
441
|
+
}])
|
|
426
442
|
```
|
|
427
|
-
<!--End PulumiCodeChooser -->
|
|
428
443
|
|
|
429
444
|
## Import
|
|
430
445
|
|
|
431
446
|
Primary IPs can be imported using its `id`:
|
|
432
447
|
|
|
433
448
|
```sh
|
|
434
|
-
$ pulumi import hcloud:index/primaryIp:PrimaryIp
|
|
449
|
+
$ pulumi import hcloud:index/primaryIp:PrimaryIp example "$PRIMARY_IP_ID"
|
|
435
450
|
```
|
|
436
451
|
|
|
437
452
|
:param str resource_name: The name of the resource.
|
|
@@ -454,7 +469,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
454
469
|
auto_delete: Optional[pulumi.Input[bool]] = None,
|
|
455
470
|
datacenter: Optional[pulumi.Input[str]] = None,
|
|
456
471
|
delete_protection: Optional[pulumi.Input[bool]] = None,
|
|
457
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
472
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
458
473
|
name: Optional[pulumi.Input[str]] = None,
|
|
459
474
|
type: Optional[pulumi.Input[str]] = None,
|
|
460
475
|
__props__=None):
|
|
@@ -499,7 +514,7 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
499
514
|
delete_protection: Optional[pulumi.Input[bool]] = None,
|
|
500
515
|
ip_address: Optional[pulumi.Input[str]] = None,
|
|
501
516
|
ip_network: Optional[pulumi.Input[str]] = None,
|
|
502
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
517
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
503
518
|
name: Optional[pulumi.Input[str]] = None,
|
|
504
519
|
type: Optional[pulumi.Input[str]] = None) -> 'PrimaryIp':
|
|
505
520
|
"""
|
|
@@ -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,
|
|
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
|
|
|
@@ -596,9 +615,9 @@ class PrimaryIp(pulumi.CustomResource):
|
|
|
596
615
|
|
|
597
616
|
@property
|
|
598
617
|
@pulumi.getter
|
|
599
|
-
def labels(self) -> pulumi.Output[Optional[Mapping[str,
|
|
618
|
+
def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
|
600
619
|
"""
|
|
601
|
-
|
|
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']
|
pulumi_hcloud/pulumi-plugin.json
CHANGED