pulumiverse-scaleway 1.35.0a1761031391__py3-none-any.whl → 1.39.0a1764841480__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 (109) hide show
  1. pulumiverse_scaleway/__init__.py +38 -0
  2. pulumiverse_scaleway/_inputs.py +271 -166
  3. pulumiverse_scaleway/audittrail/__init__.py +10 -0
  4. pulumiverse_scaleway/audittrail/get_event.py +410 -0
  5. pulumiverse_scaleway/audittrail/outputs.py +234 -0
  6. pulumiverse_scaleway/baremetal_server.py +159 -0
  7. pulumiverse_scaleway/billing/get_consumptions.py +4 -0
  8. pulumiverse_scaleway/block/snapshot.py +78 -0
  9. pulumiverse_scaleway/block_snapshot.py +78 -0
  10. pulumiverse_scaleway/cockpit_grafana_user.py +0 -42
  11. pulumiverse_scaleway/database_instance.py +105 -55
  12. pulumiverse_scaleway/database_user.py +6 -6
  13. pulumiverse_scaleway/databases/_inputs.py +97 -3
  14. pulumiverse_scaleway/databases/get_instance.py +12 -1
  15. pulumiverse_scaleway/databases/instance.py +105 -55
  16. pulumiverse_scaleway/databases/outputs.py +127 -2
  17. pulumiverse_scaleway/databases/user.py +6 -6
  18. pulumiverse_scaleway/datawarehouse/__init__.py +13 -0
  19. pulumiverse_scaleway/datawarehouse/_inputs.py +149 -0
  20. pulumiverse_scaleway/datawarehouse/database.py +338 -0
  21. pulumiverse_scaleway/datawarehouse/deployment.py +821 -0
  22. pulumiverse_scaleway/datawarehouse/outputs.py +113 -0
  23. pulumiverse_scaleway/datawarehouse/user.py +451 -0
  24. pulumiverse_scaleway/domain/record.py +4 -4
  25. pulumiverse_scaleway/domain_record.py +4 -4
  26. pulumiverse_scaleway/edge_services_cache_stage.py +30 -0
  27. pulumiverse_scaleway/edge_services_dns_stage.py +28 -0
  28. pulumiverse_scaleway/elasticmetal/get_offer.py +2 -0
  29. pulumiverse_scaleway/elasticmetal/get_server.py +12 -1
  30. pulumiverse_scaleway/elasticmetal/server.py +159 -0
  31. pulumiverse_scaleway/file_filesystem.py +39 -35
  32. pulumiverse_scaleway/get_baremetal_offer.py +2 -0
  33. pulumiverse_scaleway/get_baremetal_server.py +12 -1
  34. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  35. pulumiverse_scaleway/get_database_instance.py +12 -1
  36. pulumiverse_scaleway/get_instance_ip.py +14 -2
  37. pulumiverse_scaleway/get_instance_server.py +13 -83
  38. pulumiverse_scaleway/get_k8s_version.py +12 -1
  39. pulumiverse_scaleway/get_kubernetes_cluster.py +34 -1
  40. pulumiverse_scaleway/get_loadbalancer.py +12 -1
  41. pulumiverse_scaleway/get_loadbalancer_certificate.py +60 -0
  42. pulumiverse_scaleway/iam/__init__.py +1 -0
  43. pulumiverse_scaleway/iam/get_policy.py +293 -0
  44. pulumiverse_scaleway/iam/outputs.py +52 -0
  45. pulumiverse_scaleway/inference/deployment.py +36 -0
  46. pulumiverse_scaleway/inference/model.py +7 -7
  47. pulumiverse_scaleway/inference_deployment.py +36 -0
  48. pulumiverse_scaleway/instance/_inputs.py +155 -144
  49. pulumiverse_scaleway/instance/get_ip.py +14 -2
  50. pulumiverse_scaleway/instance/get_server.py +13 -83
  51. pulumiverse_scaleway/instance/image.py +94 -40
  52. pulumiverse_scaleway/instance/outputs.py +164 -167
  53. pulumiverse_scaleway/instance/server.py +116 -244
  54. pulumiverse_scaleway/instance/user_data.py +4 -4
  55. pulumiverse_scaleway/instance/volume.py +14 -0
  56. pulumiverse_scaleway/instance_image.py +94 -40
  57. pulumiverse_scaleway/instance_server.py +116 -244
  58. pulumiverse_scaleway/instance_user_data.py +4 -4
  59. pulumiverse_scaleway/instance_volume.py +14 -0
  60. pulumiverse_scaleway/iot/device.py +0 -38
  61. pulumiverse_scaleway/iot/hub.py +11 -11
  62. pulumiverse_scaleway/iot/route.py +20 -20
  63. pulumiverse_scaleway/iot_device.py +0 -38
  64. pulumiverse_scaleway/iot_hub.py +11 -11
  65. pulumiverse_scaleway/iot_route.py +20 -20
  66. pulumiverse_scaleway/ipam/_inputs.py +6 -6
  67. pulumiverse_scaleway/ipam/ip.py +35 -7
  68. pulumiverse_scaleway/ipam/ip_reverse_dns.py +70 -0
  69. pulumiverse_scaleway/ipam/outputs.py +4 -4
  70. pulumiverse_scaleway/ipam_ip.py +35 -7
  71. pulumiverse_scaleway/ipam_ip_reverse_dns.py +70 -0
  72. pulumiverse_scaleway/key_manager_key.py +134 -25
  73. pulumiverse_scaleway/kubernetes/cluster.py +290 -4
  74. pulumiverse_scaleway/kubernetes/get_cluster.py +34 -1
  75. pulumiverse_scaleway/kubernetes/get_version.py +12 -1
  76. pulumiverse_scaleway/kubernetes/pool.py +7 -7
  77. pulumiverse_scaleway/kubernetes_cluster.py +290 -4
  78. pulumiverse_scaleway/kubernetes_node_pool.py +7 -7
  79. pulumiverse_scaleway/loadbalancer.py +55 -1
  80. pulumiverse_scaleway/loadbalancers/__init__.py +1 -0
  81. pulumiverse_scaleway/loadbalancers/_inputs.py +13 -13
  82. pulumiverse_scaleway/loadbalancers/get_certificate.py +60 -0
  83. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +12 -1
  84. pulumiverse_scaleway/loadbalancers/load_balancer.py +55 -1
  85. pulumiverse_scaleway/loadbalancers/outputs.py +9 -9
  86. pulumiverse_scaleway/loadbalancers/private_network.py +505 -0
  87. pulumiverse_scaleway/mongo_db_instance.py +14 -14
  88. pulumiverse_scaleway/mongodb/instance.py +14 -14
  89. pulumiverse_scaleway/network/gateway_network.py +7 -7
  90. pulumiverse_scaleway/object/__init__.py +1 -0
  91. pulumiverse_scaleway/object/bucket_policy.py +0 -64
  92. pulumiverse_scaleway/object/get.py +290 -0
  93. pulumiverse_scaleway/object/item.py +37 -7
  94. pulumiverse_scaleway/object_bucket_policy.py +0 -64
  95. pulumiverse_scaleway/object_item.py +37 -7
  96. pulumiverse_scaleway/observability/__init__.py +1 -0
  97. pulumiverse_scaleway/observability/get_grafana.py +103 -0
  98. pulumiverse_scaleway/observability/get_sources.py +6 -6
  99. pulumiverse_scaleway/observability/grafana_user.py +0 -42
  100. pulumiverse_scaleway/observability/outputs.py +2 -2
  101. pulumiverse_scaleway/outputs.py +304 -182
  102. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  103. pulumiverse_scaleway/tem/domain.py +42 -0
  104. pulumiverse_scaleway/tem_domain.py +42 -0
  105. pulumiverse_scaleway/vpc_gateway_network.py +7 -7
  106. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/METADATA +1 -1
  107. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/RECORD +109 -96
  108. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/WHEEL +0 -0
  109. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/top_level.txt +0 -0
@@ -803,8 +803,8 @@ class LoadBalancerPrivateNetwork(dict):
803
803
  suggest = "dhcp_config"
804
804
  elif key == "ipamIds":
805
805
  suggest = "ipam_ids"
806
- elif key == "staticConfig":
807
- suggest = "static_config"
806
+ elif key == "staticConfigs":
807
+ suggest = "static_configs"
808
808
 
809
809
  if suggest:
810
810
  pulumi.log.warn(f"Key '{key}' not found in LoadBalancerPrivateNetwork. Access the value via the '{suggest}' property getter instead.")
@@ -821,7 +821,7 @@ class LoadBalancerPrivateNetwork(dict):
821
821
  private_network_id: _builtins.str,
822
822
  dhcp_config: Optional[_builtins.bool] = None,
823
823
  ipam_ids: Optional[_builtins.str] = None,
824
- static_config: Optional[_builtins.str] = None,
824
+ static_configs: Optional[Sequence[_builtins.str]] = None,
825
825
  status: Optional[_builtins.str] = None,
826
826
  zone: Optional[_builtins.str] = None):
827
827
  """
@@ -829,7 +829,7 @@ class LoadBalancerPrivateNetwork(dict):
829
829
  - > **Important:** Updates to `private_network` will recreate the attachment.
830
830
  :param _builtins.bool dhcp_config: Set to true if you want to let DHCP assign IP addresses
831
831
  :param _builtins.str ipam_ids: IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
832
- :param _builtins.str static_config: Define an IP address in the subnet of your private network that will be assigned to your load balancer instance
832
+ :param Sequence[_builtins.str] static_configs: Define an IP address in the subnet of your private network that will be assigned to your load balancer instance
833
833
  :param _builtins.str status: The status of the private network connection.
834
834
  :param _builtins.str zone: `zone`) The zone of the Load Balancer.
835
835
  """
@@ -838,8 +838,8 @@ class LoadBalancerPrivateNetwork(dict):
838
838
  pulumi.set(__self__, "dhcp_config", dhcp_config)
839
839
  if ipam_ids is not None:
840
840
  pulumi.set(__self__, "ipam_ids", ipam_ids)
841
- if static_config is not None:
842
- pulumi.set(__self__, "static_config", static_config)
841
+ if static_configs is not None:
842
+ pulumi.set(__self__, "static_configs", static_configs)
843
843
  if status is not None:
844
844
  pulumi.set(__self__, "status", status)
845
845
  if zone is not None:
@@ -872,13 +872,13 @@ class LoadBalancerPrivateNetwork(dict):
872
872
  return pulumi.get(self, "ipam_ids")
873
873
 
874
874
  @_builtins.property
875
- @pulumi.getter(name="staticConfig")
875
+ @pulumi.getter(name="staticConfigs")
876
876
  @_utilities.deprecated("""static_config field is deprecated, please use `private_network_id` or `ipam_ids` instead""")
877
- def static_config(self) -> Optional[_builtins.str]:
877
+ def static_configs(self) -> Optional[Sequence[_builtins.str]]:
878
878
  """
879
879
  Define an IP address in the subnet of your private network that will be assigned to your load balancer instance
880
880
  """
881
- return pulumi.get(self, "static_config")
881
+ return pulumi.get(self, "static_configs")
882
882
 
883
883
  @_builtins.property
884
884
  @pulumi.getter
@@ -0,0 +1,505 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
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
15
+ from .. import _utilities
16
+
17
+ __all__ = ['PrivateNetworkArgs', 'PrivateNetwork']
18
+
19
+ @pulumi.input_type
20
+ class PrivateNetworkArgs:
21
+ def __init__(__self__, *,
22
+ lb_id: pulumi.Input[_builtins.str],
23
+ private_network_id: pulumi.Input[_builtins.str],
24
+ ipam_ip_ids: Optional[pulumi.Input[_builtins.str]] = None,
25
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
26
+ zone: Optional[pulumi.Input[_builtins.str]] = None):
27
+ """
28
+ The set of arguments for constructing a PrivateNetwork resource.
29
+ :param pulumi.Input[_builtins.str] lb_id: The load-balancer ID to attach the private network to.
30
+ :param pulumi.Input[_builtins.str] private_network_id: The private network ID to attach.
31
+ :param pulumi.Input[_builtins.str] ipam_ip_ids: The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
32
+ :param pulumi.Input[_builtins.str] project_id: `project_id`) The ID of the Project the Private Network attachment is associated with.
33
+ :param pulumi.Input[_builtins.str] zone: `zone`) The zone in which the Private Network should be attached.
34
+ """
35
+ pulumi.set(__self__, "lb_id", lb_id)
36
+ pulumi.set(__self__, "private_network_id", private_network_id)
37
+ if ipam_ip_ids is not None:
38
+ pulumi.set(__self__, "ipam_ip_ids", ipam_ip_ids)
39
+ if project_id is not None:
40
+ pulumi.set(__self__, "project_id", project_id)
41
+ if zone is not None:
42
+ pulumi.set(__self__, "zone", zone)
43
+
44
+ @_builtins.property
45
+ @pulumi.getter(name="lbId")
46
+ def lb_id(self) -> pulumi.Input[_builtins.str]:
47
+ """
48
+ The load-balancer ID to attach the private network to.
49
+ """
50
+ return pulumi.get(self, "lb_id")
51
+
52
+ @lb_id.setter
53
+ def lb_id(self, value: pulumi.Input[_builtins.str]):
54
+ pulumi.set(self, "lb_id", value)
55
+
56
+ @_builtins.property
57
+ @pulumi.getter(name="privateNetworkId")
58
+ def private_network_id(self) -> pulumi.Input[_builtins.str]:
59
+ """
60
+ The private network ID to attach.
61
+ """
62
+ return pulumi.get(self, "private_network_id")
63
+
64
+ @private_network_id.setter
65
+ def private_network_id(self, value: pulumi.Input[_builtins.str]):
66
+ pulumi.set(self, "private_network_id", value)
67
+
68
+ @_builtins.property
69
+ @pulumi.getter(name="ipamIpIds")
70
+ def ipam_ip_ids(self) -> Optional[pulumi.Input[_builtins.str]]:
71
+ """
72
+ The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
73
+ """
74
+ return pulumi.get(self, "ipam_ip_ids")
75
+
76
+ @ipam_ip_ids.setter
77
+ def ipam_ip_ids(self, value: Optional[pulumi.Input[_builtins.str]]):
78
+ pulumi.set(self, "ipam_ip_ids", value)
79
+
80
+ @_builtins.property
81
+ @pulumi.getter(name="projectId")
82
+ def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
83
+ """
84
+ `project_id`) The ID of the Project the Private Network attachment is associated with.
85
+ """
86
+ return pulumi.get(self, "project_id")
87
+
88
+ @project_id.setter
89
+ def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
90
+ pulumi.set(self, "project_id", value)
91
+
92
+ @_builtins.property
93
+ @pulumi.getter
94
+ def zone(self) -> Optional[pulumi.Input[_builtins.str]]:
95
+ """
96
+ `zone`) The zone in which the Private Network should be attached.
97
+ """
98
+ return pulumi.get(self, "zone")
99
+
100
+ @zone.setter
101
+ def zone(self, value: Optional[pulumi.Input[_builtins.str]]):
102
+ pulumi.set(self, "zone", value)
103
+
104
+
105
+ @pulumi.input_type
106
+ class _PrivateNetworkState:
107
+ def __init__(__self__, *,
108
+ created_at: Optional[pulumi.Input[_builtins.str]] = None,
109
+ ipam_ip_ids: Optional[pulumi.Input[_builtins.str]] = None,
110
+ lb_id: Optional[pulumi.Input[_builtins.str]] = None,
111
+ private_network_id: Optional[pulumi.Input[_builtins.str]] = None,
112
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
113
+ status: Optional[pulumi.Input[_builtins.str]] = None,
114
+ updated_at: Optional[pulumi.Input[_builtins.str]] = None,
115
+ zone: Optional[pulumi.Input[_builtins.str]] = None):
116
+ """
117
+ Input properties used for looking up and filtering PrivateNetwork resources.
118
+ :param pulumi.Input[_builtins.str] created_at: The date and time of the creation of the Private Network attachment (RFC 3339 format).
119
+ :param pulumi.Input[_builtins.str] ipam_ip_ids: The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
120
+ :param pulumi.Input[_builtins.str] lb_id: The load-balancer ID to attach the private network to.
121
+ :param pulumi.Input[_builtins.str] private_network_id: The private network ID to attach.
122
+ :param pulumi.Input[_builtins.str] project_id: `project_id`) The ID of the Project the Private Network attachment is associated with.
123
+ :param pulumi.Input[_builtins.str] status: The status of the Private Network attachment.
124
+ :param pulumi.Input[_builtins.str] updated_at: The date and time of the last update of the Private Network attachment (RFC 3339 format).
125
+ :param pulumi.Input[_builtins.str] zone: `zone`) The zone in which the Private Network should be attached.
126
+ """
127
+ if created_at is not None:
128
+ pulumi.set(__self__, "created_at", created_at)
129
+ if ipam_ip_ids is not None:
130
+ pulumi.set(__self__, "ipam_ip_ids", ipam_ip_ids)
131
+ if lb_id is not None:
132
+ pulumi.set(__self__, "lb_id", lb_id)
133
+ if private_network_id is not None:
134
+ pulumi.set(__self__, "private_network_id", private_network_id)
135
+ if project_id is not None:
136
+ pulumi.set(__self__, "project_id", project_id)
137
+ if status is not None:
138
+ pulumi.set(__self__, "status", status)
139
+ if updated_at is not None:
140
+ pulumi.set(__self__, "updated_at", updated_at)
141
+ if zone is not None:
142
+ pulumi.set(__self__, "zone", zone)
143
+
144
+ @_builtins.property
145
+ @pulumi.getter(name="createdAt")
146
+ def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
147
+ """
148
+ The date and time of the creation of the Private Network attachment (RFC 3339 format).
149
+ """
150
+ return pulumi.get(self, "created_at")
151
+
152
+ @created_at.setter
153
+ def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
154
+ pulumi.set(self, "created_at", value)
155
+
156
+ @_builtins.property
157
+ @pulumi.getter(name="ipamIpIds")
158
+ def ipam_ip_ids(self) -> Optional[pulumi.Input[_builtins.str]]:
159
+ """
160
+ The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
161
+ """
162
+ return pulumi.get(self, "ipam_ip_ids")
163
+
164
+ @ipam_ip_ids.setter
165
+ def ipam_ip_ids(self, value: Optional[pulumi.Input[_builtins.str]]):
166
+ pulumi.set(self, "ipam_ip_ids", value)
167
+
168
+ @_builtins.property
169
+ @pulumi.getter(name="lbId")
170
+ def lb_id(self) -> Optional[pulumi.Input[_builtins.str]]:
171
+ """
172
+ The load-balancer ID to attach the private network to.
173
+ """
174
+ return pulumi.get(self, "lb_id")
175
+
176
+ @lb_id.setter
177
+ def lb_id(self, value: Optional[pulumi.Input[_builtins.str]]):
178
+ pulumi.set(self, "lb_id", value)
179
+
180
+ @_builtins.property
181
+ @pulumi.getter(name="privateNetworkId")
182
+ def private_network_id(self) -> Optional[pulumi.Input[_builtins.str]]:
183
+ """
184
+ The private network ID to attach.
185
+ """
186
+ return pulumi.get(self, "private_network_id")
187
+
188
+ @private_network_id.setter
189
+ def private_network_id(self, value: Optional[pulumi.Input[_builtins.str]]):
190
+ pulumi.set(self, "private_network_id", value)
191
+
192
+ @_builtins.property
193
+ @pulumi.getter(name="projectId")
194
+ def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
195
+ """
196
+ `project_id`) The ID of the Project the Private Network attachment is associated with.
197
+ """
198
+ return pulumi.get(self, "project_id")
199
+
200
+ @project_id.setter
201
+ def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
202
+ pulumi.set(self, "project_id", value)
203
+
204
+ @_builtins.property
205
+ @pulumi.getter
206
+ def status(self) -> Optional[pulumi.Input[_builtins.str]]:
207
+ """
208
+ The status of the Private Network attachment.
209
+ """
210
+ return pulumi.get(self, "status")
211
+
212
+ @status.setter
213
+ def status(self, value: Optional[pulumi.Input[_builtins.str]]):
214
+ pulumi.set(self, "status", value)
215
+
216
+ @_builtins.property
217
+ @pulumi.getter(name="updatedAt")
218
+ def updated_at(self) -> Optional[pulumi.Input[_builtins.str]]:
219
+ """
220
+ The date and time of the last update of the Private Network attachment (RFC 3339 format).
221
+ """
222
+ return pulumi.get(self, "updated_at")
223
+
224
+ @updated_at.setter
225
+ def updated_at(self, value: Optional[pulumi.Input[_builtins.str]]):
226
+ pulumi.set(self, "updated_at", value)
227
+
228
+ @_builtins.property
229
+ @pulumi.getter
230
+ def zone(self) -> Optional[pulumi.Input[_builtins.str]]:
231
+ """
232
+ `zone`) The zone in which the Private Network should be attached.
233
+ """
234
+ return pulumi.get(self, "zone")
235
+
236
+ @zone.setter
237
+ def zone(self, value: Optional[pulumi.Input[_builtins.str]]):
238
+ pulumi.set(self, "zone", value)
239
+
240
+
241
+ @pulumi.type_token("scaleway:loadbalancers/privateNetwork:PrivateNetwork")
242
+ class PrivateNetwork(pulumi.CustomResource):
243
+ @overload
244
+ def __init__(__self__,
245
+ resource_name: str,
246
+ opts: Optional[pulumi.ResourceOptions] = None,
247
+ ipam_ip_ids: Optional[pulumi.Input[_builtins.str]] = None,
248
+ lb_id: Optional[pulumi.Input[_builtins.str]] = None,
249
+ private_network_id: Optional[pulumi.Input[_builtins.str]] = None,
250
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
251
+ zone: Optional[pulumi.Input[_builtins.str]] = None,
252
+ __props__=None):
253
+ """
254
+ Creates and manages Scaleway Load Balancer Private Network attachments.
255
+
256
+ For more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/use-with-private-network/).
257
+
258
+ ## Example Usage
259
+
260
+ ### Basic
261
+
262
+ ```python
263
+ import pulumi
264
+ import pulumiverse_scaleway as scaleway
265
+
266
+ vpc01 = scaleway.network.Vpc("vpc01", name="my vpc")
267
+ pn01 = scaleway.network.PrivateNetwork("pn01",
268
+ vpc_id=vpc01.id,
269
+ ipv4_subnet={
270
+ "subnet": "172.16.32.0/22",
271
+ })
272
+ ip01 = scaleway.ipam.Ip("ip01",
273
+ address="172.16.32.7",
274
+ sources=[{
275
+ "private_network_id": pn01.id,
276
+ }])
277
+ lb01 = scaleway.loadbalancers.LoadBalancer("lb01",
278
+ name="test-lb-private-network",
279
+ type="LB-S")
280
+ lbpn01 = scaleway.loadbalancers.PrivateNetwork("lbpn01",
281
+ lb_id=lb01.id,
282
+ private_network_id=pn01.id,
283
+ ipam_ip_ids=ip01.id)
284
+ ```
285
+
286
+ ## Import
287
+
288
+ Private Network attachments can be imported using `{zone}/{lb-id}/{private-network-id}`, e.g.
289
+
290
+ bash
291
+
292
+ ```sh
293
+ $ pulumi import scaleway:loadbalancers/privateNetwork:PrivateNetwork lbpn01 fr-par-1/11111111-1111-1111-1111-111111111111/11111111-1111-1111-1111-111111111111
294
+ ```
295
+
296
+ :param str resource_name: The name of the resource.
297
+ :param pulumi.ResourceOptions opts: Options for the resource.
298
+ :param pulumi.Input[_builtins.str] ipam_ip_ids: The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
299
+ :param pulumi.Input[_builtins.str] lb_id: The load-balancer ID to attach the private network to.
300
+ :param pulumi.Input[_builtins.str] private_network_id: The private network ID to attach.
301
+ :param pulumi.Input[_builtins.str] project_id: `project_id`) The ID of the Project the Private Network attachment is associated with.
302
+ :param pulumi.Input[_builtins.str] zone: `zone`) The zone in which the Private Network should be attached.
303
+ """
304
+ ...
305
+ @overload
306
+ def __init__(__self__,
307
+ resource_name: str,
308
+ args: PrivateNetworkArgs,
309
+ opts: Optional[pulumi.ResourceOptions] = None):
310
+ """
311
+ Creates and manages Scaleway Load Balancer Private Network attachments.
312
+
313
+ For more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/use-with-private-network/).
314
+
315
+ ## Example Usage
316
+
317
+ ### Basic
318
+
319
+ ```python
320
+ import pulumi
321
+ import pulumiverse_scaleway as scaleway
322
+
323
+ vpc01 = scaleway.network.Vpc("vpc01", name="my vpc")
324
+ pn01 = scaleway.network.PrivateNetwork("pn01",
325
+ vpc_id=vpc01.id,
326
+ ipv4_subnet={
327
+ "subnet": "172.16.32.0/22",
328
+ })
329
+ ip01 = scaleway.ipam.Ip("ip01",
330
+ address="172.16.32.7",
331
+ sources=[{
332
+ "private_network_id": pn01.id,
333
+ }])
334
+ lb01 = scaleway.loadbalancers.LoadBalancer("lb01",
335
+ name="test-lb-private-network",
336
+ type="LB-S")
337
+ lbpn01 = scaleway.loadbalancers.PrivateNetwork("lbpn01",
338
+ lb_id=lb01.id,
339
+ private_network_id=pn01.id,
340
+ ipam_ip_ids=ip01.id)
341
+ ```
342
+
343
+ ## Import
344
+
345
+ Private Network attachments can be imported using `{zone}/{lb-id}/{private-network-id}`, e.g.
346
+
347
+ bash
348
+
349
+ ```sh
350
+ $ pulumi import scaleway:loadbalancers/privateNetwork:PrivateNetwork lbpn01 fr-par-1/11111111-1111-1111-1111-111111111111/11111111-1111-1111-1111-111111111111
351
+ ```
352
+
353
+ :param str resource_name: The name of the resource.
354
+ :param PrivateNetworkArgs args: The arguments to use to populate this resource's properties.
355
+ :param pulumi.ResourceOptions opts: Options for the resource.
356
+ """
357
+ ...
358
+ def __init__(__self__, resource_name: str, *args, **kwargs):
359
+ resource_args, opts = _utilities.get_resource_args_opts(PrivateNetworkArgs, pulumi.ResourceOptions, *args, **kwargs)
360
+ if resource_args is not None:
361
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
362
+ else:
363
+ __self__._internal_init(resource_name, *args, **kwargs)
364
+
365
+ def _internal_init(__self__,
366
+ resource_name: str,
367
+ opts: Optional[pulumi.ResourceOptions] = None,
368
+ ipam_ip_ids: Optional[pulumi.Input[_builtins.str]] = None,
369
+ lb_id: Optional[pulumi.Input[_builtins.str]] = None,
370
+ private_network_id: Optional[pulumi.Input[_builtins.str]] = None,
371
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
372
+ zone: Optional[pulumi.Input[_builtins.str]] = None,
373
+ __props__=None):
374
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
375
+ if not isinstance(opts, pulumi.ResourceOptions):
376
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
377
+ if opts.id is None:
378
+ if __props__ is not None:
379
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
380
+ __props__ = PrivateNetworkArgs.__new__(PrivateNetworkArgs)
381
+
382
+ __props__.__dict__["ipam_ip_ids"] = ipam_ip_ids
383
+ if lb_id is None and not opts.urn:
384
+ raise TypeError("Missing required property 'lb_id'")
385
+ __props__.__dict__["lb_id"] = lb_id
386
+ if private_network_id is None and not opts.urn:
387
+ raise TypeError("Missing required property 'private_network_id'")
388
+ __props__.__dict__["private_network_id"] = private_network_id
389
+ __props__.__dict__["project_id"] = project_id
390
+ __props__.__dict__["zone"] = zone
391
+ __props__.__dict__["created_at"] = None
392
+ __props__.__dict__["status"] = None
393
+ __props__.__dict__["updated_at"] = None
394
+ super(PrivateNetwork, __self__).__init__(
395
+ 'scaleway:loadbalancers/privateNetwork:PrivateNetwork',
396
+ resource_name,
397
+ __props__,
398
+ opts)
399
+
400
+ @staticmethod
401
+ def get(resource_name: str,
402
+ id: pulumi.Input[str],
403
+ opts: Optional[pulumi.ResourceOptions] = None,
404
+ created_at: Optional[pulumi.Input[_builtins.str]] = None,
405
+ ipam_ip_ids: Optional[pulumi.Input[_builtins.str]] = None,
406
+ lb_id: Optional[pulumi.Input[_builtins.str]] = None,
407
+ private_network_id: Optional[pulumi.Input[_builtins.str]] = None,
408
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
409
+ status: Optional[pulumi.Input[_builtins.str]] = None,
410
+ updated_at: Optional[pulumi.Input[_builtins.str]] = None,
411
+ zone: Optional[pulumi.Input[_builtins.str]] = None) -> 'PrivateNetwork':
412
+ """
413
+ Get an existing PrivateNetwork resource's state with the given name, id, and optional extra
414
+ properties used to qualify the lookup.
415
+
416
+ :param str resource_name: The unique name of the resulting resource.
417
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
418
+ :param pulumi.ResourceOptions opts: Options for the resource.
419
+ :param pulumi.Input[_builtins.str] created_at: The date and time of the creation of the Private Network attachment (RFC 3339 format).
420
+ :param pulumi.Input[_builtins.str] ipam_ip_ids: The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
421
+ :param pulumi.Input[_builtins.str] lb_id: The load-balancer ID to attach the private network to.
422
+ :param pulumi.Input[_builtins.str] private_network_id: The private network ID to attach.
423
+ :param pulumi.Input[_builtins.str] project_id: `project_id`) The ID of the Project the Private Network attachment is associated with.
424
+ :param pulumi.Input[_builtins.str] status: The status of the Private Network attachment.
425
+ :param pulumi.Input[_builtins.str] updated_at: The date and time of the last update of the Private Network attachment (RFC 3339 format).
426
+ :param pulumi.Input[_builtins.str] zone: `zone`) The zone in which the Private Network should be attached.
427
+ """
428
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
429
+
430
+ __props__ = _PrivateNetworkState.__new__(_PrivateNetworkState)
431
+
432
+ __props__.__dict__["created_at"] = created_at
433
+ __props__.__dict__["ipam_ip_ids"] = ipam_ip_ids
434
+ __props__.__dict__["lb_id"] = lb_id
435
+ __props__.__dict__["private_network_id"] = private_network_id
436
+ __props__.__dict__["project_id"] = project_id
437
+ __props__.__dict__["status"] = status
438
+ __props__.__dict__["updated_at"] = updated_at
439
+ __props__.__dict__["zone"] = zone
440
+ return PrivateNetwork(resource_name, opts=opts, __props__=__props__)
441
+
442
+ @_builtins.property
443
+ @pulumi.getter(name="createdAt")
444
+ def created_at(self) -> pulumi.Output[_builtins.str]:
445
+ """
446
+ The date and time of the creation of the Private Network attachment (RFC 3339 format).
447
+ """
448
+ return pulumi.get(self, "created_at")
449
+
450
+ @_builtins.property
451
+ @pulumi.getter(name="ipamIpIds")
452
+ def ipam_ip_ids(self) -> pulumi.Output[_builtins.str]:
453
+ """
454
+ The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
455
+ """
456
+ return pulumi.get(self, "ipam_ip_ids")
457
+
458
+ @_builtins.property
459
+ @pulumi.getter(name="lbId")
460
+ def lb_id(self) -> pulumi.Output[_builtins.str]:
461
+ """
462
+ The load-balancer ID to attach the private network to.
463
+ """
464
+ return pulumi.get(self, "lb_id")
465
+
466
+ @_builtins.property
467
+ @pulumi.getter(name="privateNetworkId")
468
+ def private_network_id(self) -> pulumi.Output[_builtins.str]:
469
+ """
470
+ The private network ID to attach.
471
+ """
472
+ return pulumi.get(self, "private_network_id")
473
+
474
+ @_builtins.property
475
+ @pulumi.getter(name="projectId")
476
+ def project_id(self) -> pulumi.Output[_builtins.str]:
477
+ """
478
+ `project_id`) The ID of the Project the Private Network attachment is associated with.
479
+ """
480
+ return pulumi.get(self, "project_id")
481
+
482
+ @_builtins.property
483
+ @pulumi.getter
484
+ def status(self) -> pulumi.Output[_builtins.str]:
485
+ """
486
+ The status of the Private Network attachment.
487
+ """
488
+ return pulumi.get(self, "status")
489
+
490
+ @_builtins.property
491
+ @pulumi.getter(name="updatedAt")
492
+ def updated_at(self) -> pulumi.Output[_builtins.str]:
493
+ """
494
+ The date and time of the last update of the Private Network attachment (RFC 3339 format).
495
+ """
496
+ return pulumi.get(self, "updated_at")
497
+
498
+ @_builtins.property
499
+ @pulumi.getter
500
+ def zone(self) -> pulumi.Output[Optional[_builtins.str]]:
501
+ """
502
+ `zone`) The zone in which the Private Network should be attached.
503
+ """
504
+ return pulumi.get(self, "zone")
505
+