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.
Files changed (66) hide show
  1. pulumi_hcloud/__init__.py +2 -0
  2. pulumi_hcloud/_inputs.py +247 -15
  3. pulumi_hcloud/_utilities.py +41 -5
  4. pulumi_hcloud/certificate.py +15 -10
  5. pulumi_hcloud/config/__init__.pyi +5 -0
  6. pulumi_hcloud/config/vars.py +5 -0
  7. pulumi_hcloud/firewall.py +77 -66
  8. pulumi_hcloud/firewall_attachment.py +31 -18
  9. pulumi_hcloud/floating_ip.py +39 -32
  10. pulumi_hcloud/floating_ip_assignment.py +11 -4
  11. pulumi_hcloud/get_certificate.py +25 -6
  12. pulumi_hcloud/get_certificates.py +14 -5
  13. pulumi_hcloud/get_datacenter.py +38 -23
  14. pulumi_hcloud/get_datacenters.py +28 -53
  15. pulumi_hcloud/get_firewall.py +38 -19
  16. pulumi_hcloud/get_firewalls.py +16 -5
  17. pulumi_hcloud/get_floating_ip.py +39 -13
  18. pulumi_hcloud/get_floating_ips.py +14 -5
  19. pulumi_hcloud/get_image.py +37 -9
  20. pulumi_hcloud/get_images.py +22 -5
  21. pulumi_hcloud/get_load_balancer.py +30 -7
  22. pulumi_hcloud/get_load_balancer_type.py +202 -0
  23. pulumi_hcloud/get_load_balancer_types.py +100 -0
  24. pulumi_hcloud/get_load_balancers.py +14 -5
  25. pulumi_hcloud/get_location.py +42 -25
  26. pulumi_hcloud/get_locations.py +28 -53
  27. pulumi_hcloud/get_network.py +28 -11
  28. pulumi_hcloud/get_networks.py +14 -5
  29. pulumi_hcloud/get_placement_group.py +31 -13
  30. pulumi_hcloud/get_placement_groups.py +16 -5
  31. pulumi_hcloud/get_primary_ip.py +44 -18
  32. pulumi_hcloud/get_primary_ips.py +14 -5
  33. pulumi_hcloud/get_server.py +43 -11
  34. pulumi_hcloud/get_server_type.py +75 -49
  35. pulumi_hcloud/get_server_types.py +39 -23
  36. pulumi_hcloud/get_servers.py +16 -5
  37. pulumi_hcloud/get_ssh_key.py +58 -32
  38. pulumi_hcloud/get_ssh_keys.py +35 -20
  39. pulumi_hcloud/get_volume.py +33 -12
  40. pulumi_hcloud/get_volumes.py +18 -7
  41. pulumi_hcloud/load_balancer.py +63 -60
  42. pulumi_hcloud/load_balancer_network.py +28 -15
  43. pulumi_hcloud/load_balancer_service.py +59 -52
  44. pulumi_hcloud/load_balancer_target.py +33 -24
  45. pulumi_hcloud/managed_certificate.py +57 -20
  46. pulumi_hcloud/network.py +27 -18
  47. pulumi_hcloud/network_route.py +15 -6
  48. pulumi_hcloud/network_subnet.py +15 -6
  49. pulumi_hcloud/outputs.py +265 -46
  50. pulumi_hcloud/placement_group.py +27 -18
  51. pulumi_hcloud/primary_ip.py +66 -43
  52. pulumi_hcloud/provider.py +5 -0
  53. pulumi_hcloud/pulumi-plugin.json +2 -1
  54. pulumi_hcloud/rdns.py +51 -34
  55. pulumi_hcloud/server.py +185 -130
  56. pulumi_hcloud/server_network.py +26 -15
  57. pulumi_hcloud/snapshot.py +25 -18
  58. pulumi_hcloud/ssh_key.py +52 -47
  59. pulumi_hcloud/uploaded_certificate.py +73 -20
  60. pulumi_hcloud/volume.py +37 -28
  61. pulumi_hcloud/volume_attachment.py +11 -4
  62. {pulumi_hcloud-1.18.0a1709364097.dist-info → pulumi_hcloud-1.22.0a1736833581.dist-info}/METADATA +7 -6
  63. pulumi_hcloud-1.22.0a1736833581.dist-info/RECORD +67 -0
  64. {pulumi_hcloud-1.18.0a1709364097.dist-info → pulumi_hcloud-1.22.0a1736833581.dist-info}/WHEEL +1 -1
  65. pulumi_hcloud-1.18.0a1709364097.dist-info/RECORD +0 -65
  66. {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: (Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction`
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
- 85.
87
- :param pulumi.Input[Sequence[pulumi.Input[str]]] source_ips: List of CIDRs that are allowed within this Firewall Rule
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
- (Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction`
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 hcloud_load_balancer_target resource instead.""", DeprecationWarning)
486
- pulumi.log.warn("""use_private_ip is deprecated: Does not work. Use the hcloud_load_balancer_target resource instead.""")
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__, *,
@@ -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.ensure_future(_await_output(output)))
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
@@ -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, Any]]] = None,
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, Any]]]:
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, Any]]]):
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, Any]]] = None,
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, Any]]]:
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, Any]]]):
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, Any]]] = None,
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, Any]]] = None,
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, Any]]] = None,
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, Any]]]:
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]
@@ -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