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/__init__.py
CHANGED
|
@@ -21,6 +21,8 @@ from .get_floating_ips import *
|
|
|
21
21
|
from .get_image import *
|
|
22
22
|
from .get_images import *
|
|
23
23
|
from .get_load_balancer import *
|
|
24
|
+
from .get_load_balancer_type import *
|
|
25
|
+
from .get_load_balancer_types import *
|
|
24
26
|
from .get_load_balancers import *
|
|
25
27
|
from .get_location import *
|
|
26
28
|
from .get_locations import *
|
pulumi_hcloud/_inputs.py
CHANGED
|
@@ -4,25 +4,58 @@
|
|
|
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__ = [
|
|
13
18
|
'FirewallApplyToArgs',
|
|
19
|
+
'FirewallApplyToArgsDict',
|
|
14
20
|
'FirewallRuleArgs',
|
|
21
|
+
'FirewallRuleArgsDict',
|
|
15
22
|
'LoadBalancerAlgorithmArgs',
|
|
23
|
+
'LoadBalancerAlgorithmArgsDict',
|
|
16
24
|
'LoadBalancerServiceHealthCheckArgs',
|
|
25
|
+
'LoadBalancerServiceHealthCheckArgsDict',
|
|
17
26
|
'LoadBalancerServiceHealthCheckHttpArgs',
|
|
27
|
+
'LoadBalancerServiceHealthCheckHttpArgsDict',
|
|
18
28
|
'LoadBalancerServiceHttpArgs',
|
|
29
|
+
'LoadBalancerServiceHttpArgsDict',
|
|
19
30
|
'LoadBalancerTargetArgs',
|
|
31
|
+
'LoadBalancerTargetArgsDict',
|
|
20
32
|
'ServerNetworkArgs',
|
|
33
|
+
'ServerNetworkArgsDict',
|
|
21
34
|
'ServerPublicNetArgs',
|
|
35
|
+
'ServerPublicNetArgsDict',
|
|
22
36
|
'GetFirewallApplyToArgs',
|
|
37
|
+
'GetFirewallApplyToArgsDict',
|
|
23
38
|
'GetFirewallRuleArgs',
|
|
39
|
+
'GetFirewallRuleArgsDict',
|
|
24
40
|
]
|
|
25
41
|
|
|
42
|
+
MYPY = False
|
|
43
|
+
|
|
44
|
+
if not MYPY:
|
|
45
|
+
class FirewallApplyToArgsDict(TypedDict):
|
|
46
|
+
label_selector: NotRequired[pulumi.Input[str]]
|
|
47
|
+
"""
|
|
48
|
+
Label Selector to select servers the firewall should be applied to (only one
|
|
49
|
+
of `server` and `label_selector`can be applied in one block)
|
|
50
|
+
"""
|
|
51
|
+
server: NotRequired[pulumi.Input[int]]
|
|
52
|
+
"""
|
|
53
|
+
ID of the server you want to apply the firewall to (only one of `server`
|
|
54
|
+
and `label_selector`can be applied in one block)
|
|
55
|
+
"""
|
|
56
|
+
elif False:
|
|
57
|
+
FirewallApplyToArgsDict: TypeAlias = Mapping[str, Any]
|
|
58
|
+
|
|
26
59
|
@pulumi.input_type
|
|
27
60
|
class FirewallApplyToArgs:
|
|
28
61
|
def __init__(__self__, *,
|
|
@@ -66,6 +99,38 @@ class FirewallApplyToArgs:
|
|
|
66
99
|
pulumi.set(self, "server", value)
|
|
67
100
|
|
|
68
101
|
|
|
102
|
+
if not MYPY:
|
|
103
|
+
class FirewallRuleArgsDict(TypedDict):
|
|
104
|
+
direction: pulumi.Input[str]
|
|
105
|
+
"""
|
|
106
|
+
Direction of the Firewall Rule. `in`
|
|
107
|
+
"""
|
|
108
|
+
protocol: pulumi.Input[str]
|
|
109
|
+
"""
|
|
110
|
+
Protocol of the Firewall Rule. `tcp`, `icmp`, `udp`, `gre`, `esp`
|
|
111
|
+
"""
|
|
112
|
+
description: NotRequired[pulumi.Input[str]]
|
|
113
|
+
"""
|
|
114
|
+
Description of the firewall rule
|
|
115
|
+
"""
|
|
116
|
+
destination_ips: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
|
117
|
+
"""
|
|
118
|
+
List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
|
|
119
|
+
is `out`)
|
|
120
|
+
"""
|
|
121
|
+
port: NotRequired[pulumi.Input[str]]
|
|
122
|
+
"""
|
|
123
|
+
Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp`. You can use `any`
|
|
124
|
+
to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and 85.
|
|
125
|
+
"""
|
|
126
|
+
source_ips: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
|
127
|
+
"""
|
|
128
|
+
List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
|
|
129
|
+
is `in`)
|
|
130
|
+
"""
|
|
131
|
+
elif False:
|
|
132
|
+
FirewallRuleArgsDict: TypeAlias = Mapping[str, Any]
|
|
133
|
+
|
|
69
134
|
@pulumi.input_type
|
|
70
135
|
class FirewallRuleArgs:
|
|
71
136
|
def __init__(__self__, *,
|
|
@@ -79,12 +144,12 @@ class FirewallRuleArgs:
|
|
|
79
144
|
:param pulumi.Input[str] direction: Direction of the Firewall Rule. `in`
|
|
80
145
|
:param pulumi.Input[str] protocol: Protocol of the Firewall Rule. `tcp`, `icmp`, `udp`, `gre`, `esp`
|
|
81
146
|
:param pulumi.Input[str] description: Description of the firewall rule
|
|
82
|
-
:param pulumi.Input[Sequence[pulumi.Input[str]]] destination_ips:
|
|
147
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] destination_ips: List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
|
|
83
148
|
is `out`)
|
|
84
149
|
:param pulumi.Input[str] port: Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp`. You can use `any`
|
|
85
|
-
to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and
|
|
86
|
-
|
|
87
|
-
|
|
150
|
+
to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and 85.
|
|
151
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] source_ips: List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
|
|
152
|
+
is `in`)
|
|
88
153
|
"""
|
|
89
154
|
pulumi.set(__self__, "direction", direction)
|
|
90
155
|
pulumi.set(__self__, "protocol", protocol)
|
|
@@ -137,7 +202,7 @@ class FirewallRuleArgs:
|
|
|
137
202
|
@pulumi.getter(name="destinationIps")
|
|
138
203
|
def destination_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
139
204
|
"""
|
|
140
|
-
|
|
205
|
+
List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
|
|
141
206
|
is `out`)
|
|
142
207
|
"""
|
|
143
208
|
return pulumi.get(self, "destination_ips")
|
|
@@ -151,8 +216,7 @@ class FirewallRuleArgs:
|
|
|
151
216
|
def port(self) -> Optional[pulumi.Input[str]]:
|
|
152
217
|
"""
|
|
153
218
|
Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp`. You can use `any`
|
|
154
|
-
to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and
|
|
155
|
-
85.
|
|
219
|
+
to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and 85.
|
|
156
220
|
"""
|
|
157
221
|
return pulumi.get(self, "port")
|
|
158
222
|
|
|
@@ -164,7 +228,8 @@ class FirewallRuleArgs:
|
|
|
164
228
|
@pulumi.getter(name="sourceIps")
|
|
165
229
|
def source_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
166
230
|
"""
|
|
167
|
-
List of CIDRs that are allowed within this Firewall Rule
|
|
231
|
+
List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
|
|
232
|
+
is `in`)
|
|
168
233
|
"""
|
|
169
234
|
return pulumi.get(self, "source_ips")
|
|
170
235
|
|
|
@@ -173,6 +238,15 @@ class FirewallRuleArgs:
|
|
|
173
238
|
pulumi.set(self, "source_ips", value)
|
|
174
239
|
|
|
175
240
|
|
|
241
|
+
if not MYPY:
|
|
242
|
+
class LoadBalancerAlgorithmArgsDict(TypedDict):
|
|
243
|
+
type: NotRequired[pulumi.Input[str]]
|
|
244
|
+
"""
|
|
245
|
+
Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
|
|
246
|
+
"""
|
|
247
|
+
elif False:
|
|
248
|
+
LoadBalancerAlgorithmArgsDict: TypeAlias = Mapping[str, Any]
|
|
249
|
+
|
|
176
250
|
@pulumi.input_type
|
|
177
251
|
class LoadBalancerAlgorithmArgs:
|
|
178
252
|
def __init__(__self__, *,
|
|
@@ -196,6 +270,35 @@ class LoadBalancerAlgorithmArgs:
|
|
|
196
270
|
pulumi.set(self, "type", value)
|
|
197
271
|
|
|
198
272
|
|
|
273
|
+
if not MYPY:
|
|
274
|
+
class LoadBalancerServiceHealthCheckArgsDict(TypedDict):
|
|
275
|
+
interval: pulumi.Input[int]
|
|
276
|
+
"""
|
|
277
|
+
Interval how often the health check will be performed, in seconds.
|
|
278
|
+
"""
|
|
279
|
+
port: pulumi.Input[int]
|
|
280
|
+
"""
|
|
281
|
+
Port the health check tries to connect to, required if protocol is `tcp`. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
|
|
282
|
+
"""
|
|
283
|
+
protocol: pulumi.Input[str]
|
|
284
|
+
"""
|
|
285
|
+
Protocol the health check uses. `http` or `tcp`
|
|
286
|
+
"""
|
|
287
|
+
timeout: pulumi.Input[int]
|
|
288
|
+
"""
|
|
289
|
+
Timeout when a health check try will be canceled if there is no response, in seconds.
|
|
290
|
+
"""
|
|
291
|
+
http: NotRequired[pulumi.Input['LoadBalancerServiceHealthCheckHttpArgsDict']]
|
|
292
|
+
"""
|
|
293
|
+
HTTP configuration. Required if `protocol` is `http`.
|
|
294
|
+
"""
|
|
295
|
+
retries: NotRequired[pulumi.Input[int]]
|
|
296
|
+
"""
|
|
297
|
+
Number of tries a health check will be performed until a target will be listed as `unhealthy`.
|
|
298
|
+
"""
|
|
299
|
+
elif False:
|
|
300
|
+
LoadBalancerServiceHealthCheckArgsDict: TypeAlias = Mapping[str, Any]
|
|
301
|
+
|
|
199
302
|
@pulumi.input_type
|
|
200
303
|
class LoadBalancerServiceHealthCheckArgs:
|
|
201
304
|
def __init__(__self__, *,
|
|
@@ -295,6 +398,31 @@ class LoadBalancerServiceHealthCheckArgs:
|
|
|
295
398
|
pulumi.set(self, "retries", value)
|
|
296
399
|
|
|
297
400
|
|
|
401
|
+
if not MYPY:
|
|
402
|
+
class LoadBalancerServiceHealthCheckHttpArgsDict(TypedDict):
|
|
403
|
+
domain: NotRequired[pulumi.Input[str]]
|
|
404
|
+
"""
|
|
405
|
+
Domain we try to access when performing the Health Check.
|
|
406
|
+
"""
|
|
407
|
+
path: NotRequired[pulumi.Input[str]]
|
|
408
|
+
"""
|
|
409
|
+
Path we try to access when performing the Health Check.
|
|
410
|
+
"""
|
|
411
|
+
response: NotRequired[pulumi.Input[str]]
|
|
412
|
+
"""
|
|
413
|
+
Response we expect to be included in the Target response when a Health Check was performed.
|
|
414
|
+
"""
|
|
415
|
+
status_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
|
416
|
+
"""
|
|
417
|
+
We expect that the target answers with these status codes. If not the target is marked as `unhealthy`.
|
|
418
|
+
"""
|
|
419
|
+
tls: NotRequired[pulumi.Input[bool]]
|
|
420
|
+
"""
|
|
421
|
+
Enable TLS certificate checking.
|
|
422
|
+
"""
|
|
423
|
+
elif False:
|
|
424
|
+
LoadBalancerServiceHealthCheckHttpArgsDict: TypeAlias = Mapping[str, Any]
|
|
425
|
+
|
|
298
426
|
@pulumi.input_type
|
|
299
427
|
class LoadBalancerServiceHealthCheckHttpArgs:
|
|
300
428
|
def __init__(__self__, *,
|
|
@@ -382,6 +510,31 @@ class LoadBalancerServiceHealthCheckHttpArgs:
|
|
|
382
510
|
pulumi.set(self, "tls", value)
|
|
383
511
|
|
|
384
512
|
|
|
513
|
+
if not MYPY:
|
|
514
|
+
class LoadBalancerServiceHttpArgsDict(TypedDict):
|
|
515
|
+
certificates: NotRequired[pulumi.Input[Sequence[pulumi.Input[int]]]]
|
|
516
|
+
"""
|
|
517
|
+
List of IDs from certificates which the Load Balancer has.
|
|
518
|
+
"""
|
|
519
|
+
cookie_lifetime: NotRequired[pulumi.Input[int]]
|
|
520
|
+
"""
|
|
521
|
+
Lifetime of the cookie for sticky session (in seconds). Default: `300`
|
|
522
|
+
"""
|
|
523
|
+
cookie_name: NotRequired[pulumi.Input[str]]
|
|
524
|
+
"""
|
|
525
|
+
Name of the cookie for sticky session. Default: `HCLBSTICKY`
|
|
526
|
+
"""
|
|
527
|
+
redirect_http: NotRequired[pulumi.Input[bool]]
|
|
528
|
+
"""
|
|
529
|
+
Redirect HTTP to HTTPS traffic. Only supported for services with `protocol` `https` using the default HTTP port `80`.
|
|
530
|
+
"""
|
|
531
|
+
sticky_sessions: NotRequired[pulumi.Input[bool]]
|
|
532
|
+
"""
|
|
533
|
+
Enable sticky sessions
|
|
534
|
+
"""
|
|
535
|
+
elif False:
|
|
536
|
+
LoadBalancerServiceHttpArgsDict: TypeAlias = Mapping[str, Any]
|
|
537
|
+
|
|
385
538
|
@pulumi.input_type
|
|
386
539
|
class LoadBalancerServiceHttpArgs:
|
|
387
540
|
def __init__(__self__, *,
|
|
@@ -469,6 +622,17 @@ class LoadBalancerServiceHttpArgs:
|
|
|
469
622
|
pulumi.set(self, "sticky_sessions", value)
|
|
470
623
|
|
|
471
624
|
|
|
625
|
+
if not MYPY:
|
|
626
|
+
class LoadBalancerTargetArgsDict(TypedDict):
|
|
627
|
+
type: pulumi.Input[str]
|
|
628
|
+
"""
|
|
629
|
+
(string) Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
|
|
630
|
+
"""
|
|
631
|
+
server_id: NotRequired[pulumi.Input[int]]
|
|
632
|
+
use_private_ip: NotRequired[pulumi.Input[bool]]
|
|
633
|
+
elif False:
|
|
634
|
+
LoadBalancerTargetArgsDict: TypeAlias = Mapping[str, Any]
|
|
635
|
+
|
|
472
636
|
@pulumi.input_type
|
|
473
637
|
class LoadBalancerTargetArgs:
|
|
474
638
|
def __init__(__self__, *,
|
|
@@ -476,14 +640,14 @@ class LoadBalancerTargetArgs:
|
|
|
476
640
|
server_id: Optional[pulumi.Input[int]] = None,
|
|
477
641
|
use_private_ip: Optional[pulumi.Input[bool]] = None):
|
|
478
642
|
"""
|
|
479
|
-
:param pulumi.Input[str] type: Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
|
|
643
|
+
:param pulumi.Input[str] type: (string) Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
|
|
480
644
|
"""
|
|
481
645
|
pulumi.set(__self__, "type", type)
|
|
482
646
|
if server_id is not None:
|
|
483
647
|
pulumi.set(__self__, "server_id", server_id)
|
|
484
648
|
if use_private_ip is not None:
|
|
485
|
-
warnings.warn("""Does not work. Use the
|
|
486
|
-
pulumi.log.warn("""use_private_ip is deprecated: Does not work. Use the
|
|
649
|
+
warnings.warn("""Does not work. Use the LoadBalancerTarget resource instead.""", DeprecationWarning)
|
|
650
|
+
pulumi.log.warn("""use_private_ip is deprecated: Does not work. Use the LoadBalancerTarget resource instead.""")
|
|
487
651
|
if use_private_ip is not None:
|
|
488
652
|
pulumi.set(__self__, "use_private_ip", use_private_ip)
|
|
489
653
|
|
|
@@ -491,7 +655,7 @@ class LoadBalancerTargetArgs:
|
|
|
491
655
|
@pulumi.getter
|
|
492
656
|
def type(self) -> pulumi.Input[str]:
|
|
493
657
|
"""
|
|
494
|
-
Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
|
|
658
|
+
(string) Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
|
|
495
659
|
"""
|
|
496
660
|
return pulumi.get(self, "type")
|
|
497
661
|
|
|
@@ -510,10 +674,8 @@ class LoadBalancerTargetArgs:
|
|
|
510
674
|
|
|
511
675
|
@property
|
|
512
676
|
@pulumi.getter(name="usePrivateIp")
|
|
677
|
+
@_utilities.deprecated("""Does not work. Use the LoadBalancerTarget resource instead.""")
|
|
513
678
|
def use_private_ip(self) -> Optional[pulumi.Input[bool]]:
|
|
514
|
-
warnings.warn("""Does not work. Use the hcloud_load_balancer_target resource instead.""", DeprecationWarning)
|
|
515
|
-
pulumi.log.warn("""use_private_ip is deprecated: Does not work. Use the hcloud_load_balancer_target resource instead.""")
|
|
516
|
-
|
|
517
679
|
return pulumi.get(self, "use_private_ip")
|
|
518
680
|
|
|
519
681
|
@use_private_ip.setter
|
|
@@ -521,6 +683,24 @@ class LoadBalancerTargetArgs:
|
|
|
521
683
|
pulumi.set(self, "use_private_ip", value)
|
|
522
684
|
|
|
523
685
|
|
|
686
|
+
if not MYPY:
|
|
687
|
+
class ServerNetworkArgsDict(TypedDict):
|
|
688
|
+
network_id: pulumi.Input[int]
|
|
689
|
+
"""
|
|
690
|
+
ID of the network
|
|
691
|
+
"""
|
|
692
|
+
alias_ips: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
|
693
|
+
ip: NotRequired[pulumi.Input[str]]
|
|
694
|
+
"""
|
|
695
|
+
Specify the IP the server should get in the network
|
|
696
|
+
"""
|
|
697
|
+
mac_address: NotRequired[pulumi.Input[str]]
|
|
698
|
+
"""
|
|
699
|
+
(Optional, string) The MAC address the private interface of the server has
|
|
700
|
+
"""
|
|
701
|
+
elif False:
|
|
702
|
+
ServerNetworkArgsDict: TypeAlias = Mapping[str, Any]
|
|
703
|
+
|
|
524
704
|
@pulumi.input_type
|
|
525
705
|
class ServerNetworkArgs:
|
|
526
706
|
def __init__(__self__, *,
|
|
@@ -587,6 +767,15 @@ class ServerNetworkArgs:
|
|
|
587
767
|
pulumi.set(self, "mac_address", value)
|
|
588
768
|
|
|
589
769
|
|
|
770
|
+
if not MYPY:
|
|
771
|
+
class ServerPublicNetArgsDict(TypedDict):
|
|
772
|
+
ipv4: NotRequired[pulumi.Input[int]]
|
|
773
|
+
ipv4_enabled: NotRequired[pulumi.Input[bool]]
|
|
774
|
+
ipv6: NotRequired[pulumi.Input[int]]
|
|
775
|
+
ipv6_enabled: NotRequired[pulumi.Input[bool]]
|
|
776
|
+
elif False:
|
|
777
|
+
ServerPublicNetArgsDict: TypeAlias = Mapping[str, Any]
|
|
778
|
+
|
|
590
779
|
@pulumi.input_type
|
|
591
780
|
class ServerPublicNetArgs:
|
|
592
781
|
def __init__(__self__, *,
|
|
@@ -640,6 +829,20 @@ class ServerPublicNetArgs:
|
|
|
640
829
|
pulumi.set(self, "ipv6_enabled", value)
|
|
641
830
|
|
|
642
831
|
|
|
832
|
+
if not MYPY:
|
|
833
|
+
class GetFirewallApplyToArgsDict(TypedDict):
|
|
834
|
+
label_selector: str
|
|
835
|
+
"""
|
|
836
|
+
(string) Label Selector to select servers the firewall is applied to. Empty if a server is directly
|
|
837
|
+
referenced
|
|
838
|
+
"""
|
|
839
|
+
server: int
|
|
840
|
+
"""
|
|
841
|
+
(int) ID of a server where the firewall is applied to. `0` if applied to a label_selector
|
|
842
|
+
"""
|
|
843
|
+
elif False:
|
|
844
|
+
GetFirewallApplyToArgsDict: TypeAlias = Mapping[str, Any]
|
|
845
|
+
|
|
643
846
|
@pulumi.input_type
|
|
644
847
|
class GetFirewallApplyToArgs:
|
|
645
848
|
def __init__(__self__, *,
|
|
@@ -679,6 +882,35 @@ class GetFirewallApplyToArgs:
|
|
|
679
882
|
pulumi.set(self, "server", value)
|
|
680
883
|
|
|
681
884
|
|
|
885
|
+
if not MYPY:
|
|
886
|
+
class GetFirewallRuleArgsDict(TypedDict):
|
|
887
|
+
direction: str
|
|
888
|
+
"""
|
|
889
|
+
(Required, string) Direction of the Firewall Rule. `in`, `out`
|
|
890
|
+
"""
|
|
891
|
+
description: NotRequired[str]
|
|
892
|
+
"""
|
|
893
|
+
(Optional, string) Description of the firewall rule
|
|
894
|
+
"""
|
|
895
|
+
destination_ips: NotRequired[Sequence[str]]
|
|
896
|
+
"""
|
|
897
|
+
(Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction` is `out`)
|
|
898
|
+
"""
|
|
899
|
+
port: NotRequired[str]
|
|
900
|
+
"""
|
|
901
|
+
(Required, string) Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp`
|
|
902
|
+
"""
|
|
903
|
+
protocol: NotRequired[str]
|
|
904
|
+
"""
|
|
905
|
+
(Required, string) Protocol of the Firewall Rule. `tcp`, `icmp`, `udp`, `gre`, `esp`
|
|
906
|
+
"""
|
|
907
|
+
source_ips: NotRequired[Sequence[str]]
|
|
908
|
+
"""
|
|
909
|
+
(Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction` is `in`)
|
|
910
|
+
"""
|
|
911
|
+
elif False:
|
|
912
|
+
GetFirewallRuleArgsDict: TypeAlias = Mapping[str, Any]
|
|
913
|
+
|
|
682
914
|
@pulumi.input_type
|
|
683
915
|
class GetFirewallRuleArgs:
|
|
684
916
|
def __init__(__self__, *,
|
pulumi_hcloud/_utilities.py
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
import asyncio
|
|
7
|
+
import functools
|
|
7
8
|
import importlib.metadata
|
|
8
9
|
import importlib.util
|
|
9
10
|
import inspect
|
|
@@ -11,14 +12,19 @@ import json
|
|
|
11
12
|
import os
|
|
12
13
|
import sys
|
|
13
14
|
import typing
|
|
15
|
+
import warnings
|
|
16
|
+
import base64
|
|
14
17
|
|
|
15
18
|
import pulumi
|
|
16
19
|
import pulumi.runtime
|
|
17
20
|
from pulumi.runtime.sync_await import _sync_await
|
|
21
|
+
from pulumi.runtime.proto import resource_pb2
|
|
18
22
|
|
|
19
23
|
from semver import VersionInfo as SemverVersion
|
|
20
24
|
from parver import Version as PEP440Version
|
|
21
25
|
|
|
26
|
+
C = typing.TypeVar("C", bound=typing.Callable)
|
|
27
|
+
|
|
22
28
|
|
|
23
29
|
def get_env(*args):
|
|
24
30
|
for v in args:
|
|
@@ -96,10 +102,6 @@ def _get_semver_version():
|
|
|
96
102
|
_version = _get_semver_version()
|
|
97
103
|
_version_str = str(_version)
|
|
98
104
|
|
|
99
|
-
|
|
100
|
-
def get_version():
|
|
101
|
-
return _version_str
|
|
102
|
-
|
|
103
105
|
def get_resource_opts_defaults() -> pulumi.ResourceOptions:
|
|
104
106
|
return pulumi.ResourceOptions(
|
|
105
107
|
version=get_version(),
|
|
@@ -262,7 +264,7 @@ def call_plain(
|
|
|
262
264
|
output = pulumi.runtime.call(tok, props, res, typ)
|
|
263
265
|
|
|
264
266
|
# Ingoring deps silently. They are typically non-empty, r.f() calls include r as a dependency.
|
|
265
|
-
result, known, secret, _ = _sync_await(asyncio.
|
|
267
|
+
result, known, secret, _ = _sync_await(asyncio.create_task(_await_output(output)))
|
|
266
268
|
|
|
267
269
|
problem = None
|
|
268
270
|
if not known:
|
|
@@ -287,5 +289,39 @@ async def _await_output(o: pulumi.Output[typing.Any]) -> typing.Tuple[object, bo
|
|
|
287
289
|
await o._resources,
|
|
288
290
|
)
|
|
289
291
|
|
|
292
|
+
|
|
293
|
+
# This is included to provide an upgrade path for users who are using a version
|
|
294
|
+
# of the Pulumi SDK (<3.121.0) that does not include the `deprecated` decorator.
|
|
295
|
+
def deprecated(message: str) -> typing.Callable[[C], C]:
|
|
296
|
+
"""
|
|
297
|
+
Decorator to indicate a function is deprecated.
|
|
298
|
+
|
|
299
|
+
As well as inserting appropriate statements to indicate that the function is
|
|
300
|
+
deprecated, this decorator also tags the function with a special attribute
|
|
301
|
+
so that Pulumi code can detect that it is deprecated and react appropriately
|
|
302
|
+
in certain situations.
|
|
303
|
+
|
|
304
|
+
message is the deprecation message that should be printed if the function is called.
|
|
305
|
+
"""
|
|
306
|
+
|
|
307
|
+
def decorator(fn: C) -> C:
|
|
308
|
+
if not callable(fn):
|
|
309
|
+
raise TypeError("Expected fn to be callable")
|
|
310
|
+
|
|
311
|
+
@functools.wraps(fn)
|
|
312
|
+
def deprecated_fn(*args, **kwargs):
|
|
313
|
+
warnings.warn(message)
|
|
314
|
+
pulumi.warn(f"{fn.__name__} is deprecated: {message}")
|
|
315
|
+
|
|
316
|
+
return fn(*args, **kwargs)
|
|
317
|
+
|
|
318
|
+
deprecated_fn.__dict__["_pulumi_deprecated_callable"] = fn
|
|
319
|
+
return typing.cast(C, deprecated_fn)
|
|
320
|
+
|
|
321
|
+
return decorator
|
|
322
|
+
|
|
290
323
|
def get_plugin_download_url():
|
|
291
324
|
return None
|
|
325
|
+
|
|
326
|
+
def get_version():
|
|
327
|
+
return _version_str
|
pulumi_hcloud/certificate.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__ = ['CertificateArgs', 'Certificate']
|
|
@@ -16,7 +21,7 @@ class CertificateArgs:
|
|
|
16
21
|
def __init__(__self__, *,
|
|
17
22
|
certificate: pulumi.Input[str],
|
|
18
23
|
private_key: pulumi.Input[str],
|
|
19
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
24
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
20
25
|
name: Optional[pulumi.Input[str]] = None):
|
|
21
26
|
"""
|
|
22
27
|
The set of arguments for constructing a Certificate resource.
|
|
@@ -48,11 +53,11 @@ class CertificateArgs:
|
|
|
48
53
|
|
|
49
54
|
@property
|
|
50
55
|
@pulumi.getter
|
|
51
|
-
def labels(self) -> Optional[pulumi.Input[Mapping[str,
|
|
56
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
|
52
57
|
return pulumi.get(self, "labels")
|
|
53
58
|
|
|
54
59
|
@labels.setter
|
|
55
|
-
def labels(self, value: Optional[pulumi.Input[Mapping[str,
|
|
60
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
|
56
61
|
pulumi.set(self, "labels", value)
|
|
57
62
|
|
|
58
63
|
@property
|
|
@@ -72,7 +77,7 @@ class _CertificateState:
|
|
|
72
77
|
created: Optional[pulumi.Input[str]] = None,
|
|
73
78
|
domain_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
74
79
|
fingerprint: Optional[pulumi.Input[str]] = None,
|
|
75
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
80
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
76
81
|
name: Optional[pulumi.Input[str]] = None,
|
|
77
82
|
not_valid_after: Optional[pulumi.Input[str]] = None,
|
|
78
83
|
not_valid_before: Optional[pulumi.Input[str]] = None,
|
|
@@ -140,11 +145,11 @@ class _CertificateState:
|
|
|
140
145
|
|
|
141
146
|
@property
|
|
142
147
|
@pulumi.getter
|
|
143
|
-
def labels(self) -> Optional[pulumi.Input[Mapping[str,
|
|
148
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
|
144
149
|
return pulumi.get(self, "labels")
|
|
145
150
|
|
|
146
151
|
@labels.setter
|
|
147
|
-
def labels(self, value: Optional[pulumi.Input[Mapping[str,
|
|
152
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
|
148
153
|
pulumi.set(self, "labels", value)
|
|
149
154
|
|
|
150
155
|
@property
|
|
@@ -199,7 +204,7 @@ class Certificate(pulumi.CustomResource):
|
|
|
199
204
|
resource_name: str,
|
|
200
205
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
201
206
|
certificate: Optional[pulumi.Input[str]] = None,
|
|
202
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
207
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
203
208
|
name: Optional[pulumi.Input[str]] = None,
|
|
204
209
|
private_key: Optional[pulumi.Input[str]] = None,
|
|
205
210
|
__props__=None):
|
|
@@ -236,7 +241,7 @@ class Certificate(pulumi.CustomResource):
|
|
|
236
241
|
resource_name: str,
|
|
237
242
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
238
243
|
certificate: Optional[pulumi.Input[str]] = None,
|
|
239
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
244
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
240
245
|
name: Optional[pulumi.Input[str]] = None,
|
|
241
246
|
private_key: Optional[pulumi.Input[str]] = None,
|
|
242
247
|
__props__=None):
|
|
@@ -278,7 +283,7 @@ class Certificate(pulumi.CustomResource):
|
|
|
278
283
|
created: Optional[pulumi.Input[str]] = None,
|
|
279
284
|
domain_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
280
285
|
fingerprint: Optional[pulumi.Input[str]] = None,
|
|
281
|
-
labels: Optional[pulumi.Input[Mapping[str,
|
|
286
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
282
287
|
name: Optional[pulumi.Input[str]] = None,
|
|
283
288
|
not_valid_after: Optional[pulumi.Input[str]] = None,
|
|
284
289
|
not_valid_before: Optional[pulumi.Input[str]] = None,
|
|
@@ -330,7 +335,7 @@ class Certificate(pulumi.CustomResource):
|
|
|
330
335
|
|
|
331
336
|
@property
|
|
332
337
|
@pulumi.getter
|
|
333
|
-
def labels(self) -> pulumi.Output[Optional[Mapping[str,
|
|
338
|
+
def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
|
334
339
|
return pulumi.get(self, "labels")
|
|
335
340
|
|
|
336
341
|
@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
|
endpoint: Optional[str]
|
pulumi_hcloud/config/vars.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
|
import types
|