pulumiverse-scaleway 1.16.0__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.

Potentially problematic release.


This version of pulumiverse-scaleway might be problematic. Click here for more details.

Files changed (205) hide show
  1. pulumiverse_scaleway/__init__.py +1073 -0
  2. pulumiverse_scaleway/_inputs.py +8665 -0
  3. pulumiverse_scaleway/_utilities.py +327 -0
  4. pulumiverse_scaleway/account_project.py +316 -0
  5. pulumiverse_scaleway/account_ssh_key.py +450 -0
  6. pulumiverse_scaleway/apple_silicon_server.py +564 -0
  7. pulumiverse_scaleway/baremetal_server.py +1390 -0
  8. pulumiverse_scaleway/block_snapshot.py +391 -0
  9. pulumiverse_scaleway/block_volume.py +521 -0
  10. pulumiverse_scaleway/cockpit.py +299 -0
  11. pulumiverse_scaleway/cockpit_alert_manager.py +345 -0
  12. pulumiverse_scaleway/cockpit_grafana_user.py +326 -0
  13. pulumiverse_scaleway/cockpit_source.py +481 -0
  14. pulumiverse_scaleway/cockpit_token.py +461 -0
  15. pulumiverse_scaleway/config/__init__.py +8 -0
  16. pulumiverse_scaleway/config/__init__.pyi +56 -0
  17. pulumiverse_scaleway/config/vars.py +78 -0
  18. pulumiverse_scaleway/container.py +1387 -0
  19. pulumiverse_scaleway/container_cron.py +493 -0
  20. pulumiverse_scaleway/container_domain.py +400 -0
  21. pulumiverse_scaleway/container_namespace.py +589 -0
  22. pulumiverse_scaleway/container_token.py +454 -0
  23. pulumiverse_scaleway/container_trigger.py +478 -0
  24. pulumiverse_scaleway/database.py +407 -0
  25. pulumiverse_scaleway/database_acl.py +332 -0
  26. pulumiverse_scaleway/database_backup.py +574 -0
  27. pulumiverse_scaleway/database_instance.py +1636 -0
  28. pulumiverse_scaleway/database_privilege.py +422 -0
  29. pulumiverse_scaleway/database_read_replica.py +528 -0
  30. pulumiverse_scaleway/database_user.py +446 -0
  31. pulumiverse_scaleway/documentdb_database.py +450 -0
  32. pulumiverse_scaleway/documentdb_instance.py +812 -0
  33. pulumiverse_scaleway/documentdb_private_network_endpoint.py +352 -0
  34. pulumiverse_scaleway/documentdb_privilege.py +402 -0
  35. pulumiverse_scaleway/documentdb_read_replica.py +405 -0
  36. pulumiverse_scaleway/documentdb_user.py +442 -0
  37. pulumiverse_scaleway/domain_record.py +1074 -0
  38. pulumiverse_scaleway/domain_zone.py +458 -0
  39. pulumiverse_scaleway/flexible_ip.py +702 -0
  40. pulumiverse_scaleway/flexible_ip_mac_address.py +510 -0
  41. pulumiverse_scaleway/function.py +1145 -0
  42. pulumiverse_scaleway/function_cron.py +480 -0
  43. pulumiverse_scaleway/function_domain.py +361 -0
  44. pulumiverse_scaleway/function_namespace.py +533 -0
  45. pulumiverse_scaleway/function_token.py +462 -0
  46. pulumiverse_scaleway/function_trigger.py +478 -0
  47. pulumiverse_scaleway/get_account_project.py +164 -0
  48. pulumiverse_scaleway/get_account_ssh_key.py +201 -0
  49. pulumiverse_scaleway/get_availability_zones.py +131 -0
  50. pulumiverse_scaleway/get_baremetal_offer.py +245 -0
  51. pulumiverse_scaleway/get_baremetal_option.py +168 -0
  52. pulumiverse_scaleway/get_baremetal_os.py +174 -0
  53. pulumiverse_scaleway/get_baremetal_server.py +411 -0
  54. pulumiverse_scaleway/get_billing_consumptions.py +134 -0
  55. pulumiverse_scaleway/get_billing_invoices.py +154 -0
  56. pulumiverse_scaleway/get_block_snapshot.py +170 -0
  57. pulumiverse_scaleway/get_block_volume.py +186 -0
  58. pulumiverse_scaleway/get_cockpit.py +179 -0
  59. pulumiverse_scaleway/get_cockpit_plan.py +113 -0
  60. pulumiverse_scaleway/get_config.py +180 -0
  61. pulumiverse_scaleway/get_container.py +502 -0
  62. pulumiverse_scaleway/get_container_namespace.py +262 -0
  63. pulumiverse_scaleway/get_database.py +187 -0
  64. pulumiverse_scaleway/get_database_acl.py +143 -0
  65. pulumiverse_scaleway/get_database_backup.py +253 -0
  66. pulumiverse_scaleway/get_database_instance.py +404 -0
  67. pulumiverse_scaleway/get_database_privilege.py +181 -0
  68. pulumiverse_scaleway/get_documentdb_database.py +198 -0
  69. pulumiverse_scaleway/get_documentdb_instance.py +245 -0
  70. pulumiverse_scaleway/get_documentdb_load_balancer_endpoint.py +198 -0
  71. pulumiverse_scaleway/get_domain_record.py +334 -0
  72. pulumiverse_scaleway/get_domain_zone.py +225 -0
  73. pulumiverse_scaleway/get_flexible_ip.py +247 -0
  74. pulumiverse_scaleway/get_flexible_ips.py +240 -0
  75. pulumiverse_scaleway/get_function.py +357 -0
  76. pulumiverse_scaleway/get_function_namespace.py +227 -0
  77. pulumiverse_scaleway/get_iam_api_key.py +210 -0
  78. pulumiverse_scaleway/get_iam_application.py +210 -0
  79. pulumiverse_scaleway/get_iam_group.py +236 -0
  80. pulumiverse_scaleway/get_iam_ssh_key.py +212 -0
  81. pulumiverse_scaleway/get_iam_user.py +157 -0
  82. pulumiverse_scaleway/get_instance_image.py +305 -0
  83. pulumiverse_scaleway/get_instance_ip.py +204 -0
  84. pulumiverse_scaleway/get_instance_placement_group.py +212 -0
  85. pulumiverse_scaleway/get_instance_private_nic.py +215 -0
  86. pulumiverse_scaleway/get_instance_security_group.py +268 -0
  87. pulumiverse_scaleway/get_instance_server.py +502 -0
  88. pulumiverse_scaleway/get_instance_servers.py +187 -0
  89. pulumiverse_scaleway/get_instance_snapshot.py +248 -0
  90. pulumiverse_scaleway/get_instance_volume.py +215 -0
  91. pulumiverse_scaleway/get_iot_device.py +257 -0
  92. pulumiverse_scaleway/get_iot_hub.py +322 -0
  93. pulumiverse_scaleway/get_ipam_ip.py +419 -0
  94. pulumiverse_scaleway/get_ipam_ips.py +358 -0
  95. pulumiverse_scaleway/get_k8s_version.py +196 -0
  96. pulumiverse_scaleway/get_kubernetes_cluster.py +417 -0
  97. pulumiverse_scaleway/get_kubernetes_node_pool.py +436 -0
  98. pulumiverse_scaleway/get_lb_acls.py +198 -0
  99. pulumiverse_scaleway/get_lb_backend.py +486 -0
  100. pulumiverse_scaleway/get_lb_backends.py +196 -0
  101. pulumiverse_scaleway/get_lb_frontend.py +274 -0
  102. pulumiverse_scaleway/get_lb_frontends.py +196 -0
  103. pulumiverse_scaleway/get_lb_ips.py +198 -0
  104. pulumiverse_scaleway/get_lb_route.py +217 -0
  105. pulumiverse_scaleway/get_lb_routes.py +179 -0
  106. pulumiverse_scaleway/get_lbs.py +187 -0
  107. pulumiverse_scaleway/get_loadbalancer.py +339 -0
  108. pulumiverse_scaleway/get_loadbalancer_certificate.py +230 -0
  109. pulumiverse_scaleway/get_loadbalancer_ip.py +222 -0
  110. pulumiverse_scaleway/get_marketplace_image.py +147 -0
  111. pulumiverse_scaleway/get_mnq_sqs.py +150 -0
  112. pulumiverse_scaleway/get_object_bucket.py +278 -0
  113. pulumiverse_scaleway/get_object_bucket_policy.py +157 -0
  114. pulumiverse_scaleway/get_redis_cluster.py +347 -0
  115. pulumiverse_scaleway/get_registry_image.py +239 -0
  116. pulumiverse_scaleway/get_registry_namespace.py +199 -0
  117. pulumiverse_scaleway/get_secret.py +290 -0
  118. pulumiverse_scaleway/get_secret_version.py +303 -0
  119. pulumiverse_scaleway/get_tem_domain.py +367 -0
  120. pulumiverse_scaleway/get_vpc.py +246 -0
  121. pulumiverse_scaleway/get_vpc_gateway_network.py +287 -0
  122. pulumiverse_scaleway/get_vpc_private_network.py +282 -0
  123. pulumiverse_scaleway/get_vpc_public_gateway.py +304 -0
  124. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +305 -0
  125. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +382 -0
  126. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +199 -0
  127. pulumiverse_scaleway/get_vpc_public_pat_rule.py +313 -0
  128. pulumiverse_scaleway/get_vpc_routes.py +208 -0
  129. pulumiverse_scaleway/get_vpcs.py +174 -0
  130. pulumiverse_scaleway/get_web_host_offer.py +192 -0
  131. pulumiverse_scaleway/get_webhosting.py +332 -0
  132. pulumiverse_scaleway/iam_api_key.py +620 -0
  133. pulumiverse_scaleway/iam_application.py +417 -0
  134. pulumiverse_scaleway/iam_group.py +566 -0
  135. pulumiverse_scaleway/iam_group_membership.py +323 -0
  136. pulumiverse_scaleway/iam_policy.py +727 -0
  137. pulumiverse_scaleway/iam_ssh_key.py +455 -0
  138. pulumiverse_scaleway/iam_user.py +466 -0
  139. pulumiverse_scaleway/instance_image.py +750 -0
  140. pulumiverse_scaleway/instance_ip.py +483 -0
  141. pulumiverse_scaleway/instance_ip_reverse_dns.py +308 -0
  142. pulumiverse_scaleway/instance_placement_group.py +479 -0
  143. pulumiverse_scaleway/instance_private_nic.py +454 -0
  144. pulumiverse_scaleway/instance_security_group.py +720 -0
  145. pulumiverse_scaleway/instance_security_group_rules.py +439 -0
  146. pulumiverse_scaleway/instance_server.py +1907 -0
  147. pulumiverse_scaleway/instance_snapshot.py +669 -0
  148. pulumiverse_scaleway/instance_user_data.py +435 -0
  149. pulumiverse_scaleway/instance_volume.py +535 -0
  150. pulumiverse_scaleway/iot_device.py +750 -0
  151. pulumiverse_scaleway/iot_hub.py +896 -0
  152. pulumiverse_scaleway/iot_network.py +425 -0
  153. pulumiverse_scaleway/iot_route.py +660 -0
  154. pulumiverse_scaleway/ipam_ip.py +666 -0
  155. pulumiverse_scaleway/ipam_ip_reverse_dns.py +318 -0
  156. pulumiverse_scaleway/job_definition.py +692 -0
  157. pulumiverse_scaleway/kubernetes_cluster.py +1538 -0
  158. pulumiverse_scaleway/kubernetes_node_pool.py +1255 -0
  159. pulumiverse_scaleway/loadbalancer.py +1095 -0
  160. pulumiverse_scaleway/loadbalancer_acl.py +520 -0
  161. pulumiverse_scaleway/loadbalancer_backend.py +1588 -0
  162. pulumiverse_scaleway/loadbalancer_certificate.py +460 -0
  163. pulumiverse_scaleway/loadbalancer_frontend.py +829 -0
  164. pulumiverse_scaleway/loadbalancer_ip.py +514 -0
  165. pulumiverse_scaleway/loadbalancer_route.py +523 -0
  166. pulumiverse_scaleway/mnq_nats_account.py +334 -0
  167. pulumiverse_scaleway/mnq_nats_credentials.py +328 -0
  168. pulumiverse_scaleway/mnq_sns.py +306 -0
  169. pulumiverse_scaleway/mnq_sns_credentials.py +413 -0
  170. pulumiverse_scaleway/mnq_sns_topic.py +659 -0
  171. pulumiverse_scaleway/mnq_sns_topic_subscription.py +699 -0
  172. pulumiverse_scaleway/mnq_sqs.py +304 -0
  173. pulumiverse_scaleway/mnq_sqs_credentials.py +413 -0
  174. pulumiverse_scaleway/mnq_sqs_queue.py +800 -0
  175. pulumiverse_scaleway/object_bucket.py +888 -0
  176. pulumiverse_scaleway/object_bucket_acl.py +592 -0
  177. pulumiverse_scaleway/object_bucket_lock_configuration.py +393 -0
  178. pulumiverse_scaleway/object_bucket_policy.py +671 -0
  179. pulumiverse_scaleway/object_bucket_website_configuration.py +532 -0
  180. pulumiverse_scaleway/object_item.py +711 -0
  181. pulumiverse_scaleway/outputs.py +11663 -0
  182. pulumiverse_scaleway/provider.py +327 -0
  183. pulumiverse_scaleway/pulumi-plugin.json +6 -0
  184. pulumiverse_scaleway/py.typed +0 -0
  185. pulumiverse_scaleway/redis_cluster.py +1166 -0
  186. pulumiverse_scaleway/registry_namespace.py +458 -0
  187. pulumiverse_scaleway/sdb_database.py +428 -0
  188. pulumiverse_scaleway/secret.py +560 -0
  189. pulumiverse_scaleway/secret_version.py +482 -0
  190. pulumiverse_scaleway/tem_domain.py +950 -0
  191. pulumiverse_scaleway/tem_domain_validation.py +303 -0
  192. pulumiverse_scaleway/vpc.py +536 -0
  193. pulumiverse_scaleway/vpc_gateway_network.py +866 -0
  194. pulumiverse_scaleway/vpc_private_network.py +734 -0
  195. pulumiverse_scaleway/vpc_public_gateway.py +789 -0
  196. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +933 -0
  197. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +514 -0
  198. pulumiverse_scaleway/vpc_public_gateway_ip.py +457 -0
  199. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +306 -0
  200. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +591 -0
  201. pulumiverse_scaleway/webhosting.py +805 -0
  202. pulumiverse_scaleway-1.16.0.dist-info/METADATA +69 -0
  203. pulumiverse_scaleway-1.16.0.dist-info/RECORD +205 -0
  204. pulumiverse_scaleway-1.16.0.dist-info/WHEEL +5 -0
  205. pulumiverse_scaleway-1.16.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1095 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
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
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['LoadbalancerArgs', 'Loadbalancer']
20
+
21
+ @pulumi.input_type
22
+ class LoadbalancerArgs:
23
+ def __init__(__self__, *,
24
+ type: pulumi.Input[str],
25
+ assign_flexible_ip: Optional[pulumi.Input[bool]] = None,
26
+ assign_flexible_ipv6: Optional[pulumi.Input[bool]] = None,
27
+ description: Optional[pulumi.Input[str]] = None,
28
+ ip_id: Optional[pulumi.Input[str]] = None,
29
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
30
+ name: Optional[pulumi.Input[str]] = None,
31
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['LoadbalancerPrivateNetworkArgs']]]] = None,
32
+ project_id: Optional[pulumi.Input[str]] = None,
33
+ release_ip: Optional[pulumi.Input[bool]] = None,
34
+ ssl_compatibility_level: Optional[pulumi.Input[str]] = None,
35
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
36
+ zone: Optional[pulumi.Input[str]] = None):
37
+ """
38
+ The set of arguments for constructing a Loadbalancer resource.
39
+ :param pulumi.Input[str] type: The type of the Load Balancer. Please check the migration section to upgrade the type.
40
+ :param pulumi.Input[bool] assign_flexible_ip: Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.
41
+ :param pulumi.Input[bool] assign_flexible_ipv6: Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
42
+ :param pulumi.Input[str] description: The description of the Load Balancer.
43
+ :param pulumi.Input[str] ip_id: The ID of the associated Load Balancer IP. See below.
44
+
45
+ > **Important:** Updates to `ip_id` will recreate the Load Balancer.
46
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_ids: The List of IP IDs to attach to the Load Balancer.
47
+ :param pulumi.Input[str] name: The name of the Load Balancer.
48
+ :param pulumi.Input[Sequence[pulumi.Input['LoadbalancerPrivateNetworkArgs']]] private_networks: List of private network to connect with your load balancer
49
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Load Balancer is associated with.
50
+ :param pulumi.Input[bool] release_ip: The `release_ip` allow the release of the IP address associated with the Load Balancer.
51
+ :param pulumi.Input[str] ssl_compatibility_level: Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).
52
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Load Balancer.
53
+ :param pulumi.Input[str] zone: `zone`) The zone of the Load Balancer.
54
+ """
55
+ pulumi.set(__self__, "type", type)
56
+ if assign_flexible_ip is not None:
57
+ pulumi.set(__self__, "assign_flexible_ip", assign_flexible_ip)
58
+ if assign_flexible_ipv6 is not None:
59
+ pulumi.set(__self__, "assign_flexible_ipv6", assign_flexible_ipv6)
60
+ if description is not None:
61
+ pulumi.set(__self__, "description", description)
62
+ if ip_id is not None:
63
+ warnings.warn("""Please use ip_ids""", DeprecationWarning)
64
+ pulumi.log.warn("""ip_id is deprecated: Please use ip_ids""")
65
+ if ip_id is not None:
66
+ pulumi.set(__self__, "ip_id", ip_id)
67
+ if ip_ids is not None:
68
+ pulumi.set(__self__, "ip_ids", ip_ids)
69
+ if name is not None:
70
+ pulumi.set(__self__, "name", name)
71
+ if private_networks is not None:
72
+ pulumi.set(__self__, "private_networks", private_networks)
73
+ if project_id is not None:
74
+ pulumi.set(__self__, "project_id", project_id)
75
+ if release_ip is not None:
76
+ warnings.warn("""The resource ip will be destroyed by it's own resource. Please set this to `false`""", DeprecationWarning)
77
+ pulumi.log.warn("""release_ip is deprecated: The resource ip will be destroyed by it's own resource. Please set this to `false`""")
78
+ if release_ip is not None:
79
+ pulumi.set(__self__, "release_ip", release_ip)
80
+ if ssl_compatibility_level is not None:
81
+ pulumi.set(__self__, "ssl_compatibility_level", ssl_compatibility_level)
82
+ if tags is not None:
83
+ pulumi.set(__self__, "tags", tags)
84
+ if zone is not None:
85
+ pulumi.set(__self__, "zone", zone)
86
+
87
+ @property
88
+ @pulumi.getter
89
+ def type(self) -> pulumi.Input[str]:
90
+ """
91
+ The type of the Load Balancer. Please check the migration section to upgrade the type.
92
+ """
93
+ return pulumi.get(self, "type")
94
+
95
+ @type.setter
96
+ def type(self, value: pulumi.Input[str]):
97
+ pulumi.set(self, "type", value)
98
+
99
+ @property
100
+ @pulumi.getter(name="assignFlexibleIp")
101
+ def assign_flexible_ip(self) -> Optional[pulumi.Input[bool]]:
102
+ """
103
+ Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.
104
+ """
105
+ return pulumi.get(self, "assign_flexible_ip")
106
+
107
+ @assign_flexible_ip.setter
108
+ def assign_flexible_ip(self, value: Optional[pulumi.Input[bool]]):
109
+ pulumi.set(self, "assign_flexible_ip", value)
110
+
111
+ @property
112
+ @pulumi.getter(name="assignFlexibleIpv6")
113
+ def assign_flexible_ipv6(self) -> Optional[pulumi.Input[bool]]:
114
+ """
115
+ Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
116
+ """
117
+ return pulumi.get(self, "assign_flexible_ipv6")
118
+
119
+ @assign_flexible_ipv6.setter
120
+ def assign_flexible_ipv6(self, value: Optional[pulumi.Input[bool]]):
121
+ pulumi.set(self, "assign_flexible_ipv6", value)
122
+
123
+ @property
124
+ @pulumi.getter
125
+ def description(self) -> Optional[pulumi.Input[str]]:
126
+ """
127
+ The description of the Load Balancer.
128
+ """
129
+ return pulumi.get(self, "description")
130
+
131
+ @description.setter
132
+ def description(self, value: Optional[pulumi.Input[str]]):
133
+ pulumi.set(self, "description", value)
134
+
135
+ @property
136
+ @pulumi.getter(name="ipId")
137
+ @_utilities.deprecated("""Please use ip_ids""")
138
+ def ip_id(self) -> Optional[pulumi.Input[str]]:
139
+ """
140
+ The ID of the associated Load Balancer IP. See below.
141
+
142
+ > **Important:** Updates to `ip_id` will recreate the Load Balancer.
143
+ """
144
+ return pulumi.get(self, "ip_id")
145
+
146
+ @ip_id.setter
147
+ def ip_id(self, value: Optional[pulumi.Input[str]]):
148
+ pulumi.set(self, "ip_id", value)
149
+
150
+ @property
151
+ @pulumi.getter(name="ipIds")
152
+ def ip_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
153
+ """
154
+ The List of IP IDs to attach to the Load Balancer.
155
+ """
156
+ return pulumi.get(self, "ip_ids")
157
+
158
+ @ip_ids.setter
159
+ def ip_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
160
+ pulumi.set(self, "ip_ids", value)
161
+
162
+ @property
163
+ @pulumi.getter
164
+ def name(self) -> Optional[pulumi.Input[str]]:
165
+ """
166
+ The name of the Load Balancer.
167
+ """
168
+ return pulumi.get(self, "name")
169
+
170
+ @name.setter
171
+ def name(self, value: Optional[pulumi.Input[str]]):
172
+ pulumi.set(self, "name", value)
173
+
174
+ @property
175
+ @pulumi.getter(name="privateNetworks")
176
+ def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LoadbalancerPrivateNetworkArgs']]]]:
177
+ """
178
+ List of private network to connect with your load balancer
179
+ """
180
+ return pulumi.get(self, "private_networks")
181
+
182
+ @private_networks.setter
183
+ def private_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LoadbalancerPrivateNetworkArgs']]]]):
184
+ pulumi.set(self, "private_networks", value)
185
+
186
+ @property
187
+ @pulumi.getter(name="projectId")
188
+ def project_id(self) -> Optional[pulumi.Input[str]]:
189
+ """
190
+ `project_id`) The ID of the Project the Load Balancer is associated with.
191
+ """
192
+ return pulumi.get(self, "project_id")
193
+
194
+ @project_id.setter
195
+ def project_id(self, value: Optional[pulumi.Input[str]]):
196
+ pulumi.set(self, "project_id", value)
197
+
198
+ @property
199
+ @pulumi.getter(name="releaseIp")
200
+ @_utilities.deprecated("""The resource ip will be destroyed by it's own resource. Please set this to `false`""")
201
+ def release_ip(self) -> Optional[pulumi.Input[bool]]:
202
+ """
203
+ The `release_ip` allow the release of the IP address associated with the Load Balancer.
204
+ """
205
+ return pulumi.get(self, "release_ip")
206
+
207
+ @release_ip.setter
208
+ def release_ip(self, value: Optional[pulumi.Input[bool]]):
209
+ pulumi.set(self, "release_ip", value)
210
+
211
+ @property
212
+ @pulumi.getter(name="sslCompatibilityLevel")
213
+ def ssl_compatibility_level(self) -> Optional[pulumi.Input[str]]:
214
+ """
215
+ Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).
216
+ """
217
+ return pulumi.get(self, "ssl_compatibility_level")
218
+
219
+ @ssl_compatibility_level.setter
220
+ def ssl_compatibility_level(self, value: Optional[pulumi.Input[str]]):
221
+ pulumi.set(self, "ssl_compatibility_level", value)
222
+
223
+ @property
224
+ @pulumi.getter
225
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
226
+ """
227
+ The tags associated with the Load Balancer.
228
+ """
229
+ return pulumi.get(self, "tags")
230
+
231
+ @tags.setter
232
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
233
+ pulumi.set(self, "tags", value)
234
+
235
+ @property
236
+ @pulumi.getter
237
+ def zone(self) -> Optional[pulumi.Input[str]]:
238
+ """
239
+ `zone`) The zone of the Load Balancer.
240
+ """
241
+ return pulumi.get(self, "zone")
242
+
243
+ @zone.setter
244
+ def zone(self, value: Optional[pulumi.Input[str]]):
245
+ pulumi.set(self, "zone", value)
246
+
247
+
248
+ @pulumi.input_type
249
+ class _LoadbalancerState:
250
+ def __init__(__self__, *,
251
+ assign_flexible_ip: Optional[pulumi.Input[bool]] = None,
252
+ assign_flexible_ipv6: Optional[pulumi.Input[bool]] = None,
253
+ description: Optional[pulumi.Input[str]] = None,
254
+ ip_address: Optional[pulumi.Input[str]] = None,
255
+ ip_id: Optional[pulumi.Input[str]] = None,
256
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
257
+ ipv6_address: Optional[pulumi.Input[str]] = None,
258
+ name: Optional[pulumi.Input[str]] = None,
259
+ organization_id: Optional[pulumi.Input[str]] = None,
260
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['LoadbalancerPrivateNetworkArgs']]]] = None,
261
+ project_id: Optional[pulumi.Input[str]] = None,
262
+ region: Optional[pulumi.Input[str]] = None,
263
+ release_ip: Optional[pulumi.Input[bool]] = None,
264
+ ssl_compatibility_level: Optional[pulumi.Input[str]] = None,
265
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
266
+ type: Optional[pulumi.Input[str]] = None,
267
+ zone: Optional[pulumi.Input[str]] = None):
268
+ """
269
+ Input properties used for looking up and filtering Loadbalancer resources.
270
+ :param pulumi.Input[bool] assign_flexible_ip: Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.
271
+ :param pulumi.Input[bool] assign_flexible_ipv6: Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
272
+ :param pulumi.Input[str] description: The description of the Load Balancer.
273
+ :param pulumi.Input[str] ip_address: The Load Balancer public IPv4 address.
274
+ :param pulumi.Input[str] ip_id: The ID of the associated Load Balancer IP. See below.
275
+
276
+ > **Important:** Updates to `ip_id` will recreate the Load Balancer.
277
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_ids: The List of IP IDs to attach to the Load Balancer.
278
+ :param pulumi.Input[str] ipv6_address: The Load Balancer public IPv6 address.
279
+ :param pulumi.Input[str] name: The name of the Load Balancer.
280
+ :param pulumi.Input[str] organization_id: The ID of the Organization ID the Load Balancer is associated with.
281
+ :param pulumi.Input[Sequence[pulumi.Input['LoadbalancerPrivateNetworkArgs']]] private_networks: List of private network to connect with your load balancer
282
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Load Balancer is associated with.
283
+ :param pulumi.Input[str] region: The region of the resource
284
+ :param pulumi.Input[bool] release_ip: The `release_ip` allow the release of the IP address associated with the Load Balancer.
285
+ :param pulumi.Input[str] ssl_compatibility_level: Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).
286
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Load Balancer.
287
+ :param pulumi.Input[str] type: The type of the Load Balancer. Please check the migration section to upgrade the type.
288
+ :param pulumi.Input[str] zone: `zone`) The zone of the Load Balancer.
289
+ """
290
+ if assign_flexible_ip is not None:
291
+ pulumi.set(__self__, "assign_flexible_ip", assign_flexible_ip)
292
+ if assign_flexible_ipv6 is not None:
293
+ pulumi.set(__self__, "assign_flexible_ipv6", assign_flexible_ipv6)
294
+ if description is not None:
295
+ pulumi.set(__self__, "description", description)
296
+ if ip_address is not None:
297
+ pulumi.set(__self__, "ip_address", ip_address)
298
+ if ip_id is not None:
299
+ warnings.warn("""Please use ip_ids""", DeprecationWarning)
300
+ pulumi.log.warn("""ip_id is deprecated: Please use ip_ids""")
301
+ if ip_id is not None:
302
+ pulumi.set(__self__, "ip_id", ip_id)
303
+ if ip_ids is not None:
304
+ pulumi.set(__self__, "ip_ids", ip_ids)
305
+ if ipv6_address is not None:
306
+ pulumi.set(__self__, "ipv6_address", ipv6_address)
307
+ if name is not None:
308
+ pulumi.set(__self__, "name", name)
309
+ if organization_id is not None:
310
+ pulumi.set(__self__, "organization_id", organization_id)
311
+ if private_networks is not None:
312
+ pulumi.set(__self__, "private_networks", private_networks)
313
+ if project_id is not None:
314
+ pulumi.set(__self__, "project_id", project_id)
315
+ if region is not None:
316
+ pulumi.set(__self__, "region", region)
317
+ if release_ip is not None:
318
+ warnings.warn("""The resource ip will be destroyed by it's own resource. Please set this to `false`""", DeprecationWarning)
319
+ pulumi.log.warn("""release_ip is deprecated: The resource ip will be destroyed by it's own resource. Please set this to `false`""")
320
+ if release_ip is not None:
321
+ pulumi.set(__self__, "release_ip", release_ip)
322
+ if ssl_compatibility_level is not None:
323
+ pulumi.set(__self__, "ssl_compatibility_level", ssl_compatibility_level)
324
+ if tags is not None:
325
+ pulumi.set(__self__, "tags", tags)
326
+ if type is not None:
327
+ pulumi.set(__self__, "type", type)
328
+ if zone is not None:
329
+ pulumi.set(__self__, "zone", zone)
330
+
331
+ @property
332
+ @pulumi.getter(name="assignFlexibleIp")
333
+ def assign_flexible_ip(self) -> Optional[pulumi.Input[bool]]:
334
+ """
335
+ Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.
336
+ """
337
+ return pulumi.get(self, "assign_flexible_ip")
338
+
339
+ @assign_flexible_ip.setter
340
+ def assign_flexible_ip(self, value: Optional[pulumi.Input[bool]]):
341
+ pulumi.set(self, "assign_flexible_ip", value)
342
+
343
+ @property
344
+ @pulumi.getter(name="assignFlexibleIpv6")
345
+ def assign_flexible_ipv6(self) -> Optional[pulumi.Input[bool]]:
346
+ """
347
+ Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
348
+ """
349
+ return pulumi.get(self, "assign_flexible_ipv6")
350
+
351
+ @assign_flexible_ipv6.setter
352
+ def assign_flexible_ipv6(self, value: Optional[pulumi.Input[bool]]):
353
+ pulumi.set(self, "assign_flexible_ipv6", value)
354
+
355
+ @property
356
+ @pulumi.getter
357
+ def description(self) -> Optional[pulumi.Input[str]]:
358
+ """
359
+ The description of the Load Balancer.
360
+ """
361
+ return pulumi.get(self, "description")
362
+
363
+ @description.setter
364
+ def description(self, value: Optional[pulumi.Input[str]]):
365
+ pulumi.set(self, "description", value)
366
+
367
+ @property
368
+ @pulumi.getter(name="ipAddress")
369
+ def ip_address(self) -> Optional[pulumi.Input[str]]:
370
+ """
371
+ The Load Balancer public IPv4 address.
372
+ """
373
+ return pulumi.get(self, "ip_address")
374
+
375
+ @ip_address.setter
376
+ def ip_address(self, value: Optional[pulumi.Input[str]]):
377
+ pulumi.set(self, "ip_address", value)
378
+
379
+ @property
380
+ @pulumi.getter(name="ipId")
381
+ @_utilities.deprecated("""Please use ip_ids""")
382
+ def ip_id(self) -> Optional[pulumi.Input[str]]:
383
+ """
384
+ The ID of the associated Load Balancer IP. See below.
385
+
386
+ > **Important:** Updates to `ip_id` will recreate the Load Balancer.
387
+ """
388
+ return pulumi.get(self, "ip_id")
389
+
390
+ @ip_id.setter
391
+ def ip_id(self, value: Optional[pulumi.Input[str]]):
392
+ pulumi.set(self, "ip_id", value)
393
+
394
+ @property
395
+ @pulumi.getter(name="ipIds")
396
+ def ip_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
397
+ """
398
+ The List of IP IDs to attach to the Load Balancer.
399
+ """
400
+ return pulumi.get(self, "ip_ids")
401
+
402
+ @ip_ids.setter
403
+ def ip_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
404
+ pulumi.set(self, "ip_ids", value)
405
+
406
+ @property
407
+ @pulumi.getter(name="ipv6Address")
408
+ def ipv6_address(self) -> Optional[pulumi.Input[str]]:
409
+ """
410
+ The Load Balancer public IPv6 address.
411
+ """
412
+ return pulumi.get(self, "ipv6_address")
413
+
414
+ @ipv6_address.setter
415
+ def ipv6_address(self, value: Optional[pulumi.Input[str]]):
416
+ pulumi.set(self, "ipv6_address", value)
417
+
418
+ @property
419
+ @pulumi.getter
420
+ def name(self) -> Optional[pulumi.Input[str]]:
421
+ """
422
+ The name of the Load Balancer.
423
+ """
424
+ return pulumi.get(self, "name")
425
+
426
+ @name.setter
427
+ def name(self, value: Optional[pulumi.Input[str]]):
428
+ pulumi.set(self, "name", value)
429
+
430
+ @property
431
+ @pulumi.getter(name="organizationId")
432
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
433
+ """
434
+ The ID of the Organization ID the Load Balancer is associated with.
435
+ """
436
+ return pulumi.get(self, "organization_id")
437
+
438
+ @organization_id.setter
439
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
440
+ pulumi.set(self, "organization_id", value)
441
+
442
+ @property
443
+ @pulumi.getter(name="privateNetworks")
444
+ def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LoadbalancerPrivateNetworkArgs']]]]:
445
+ """
446
+ List of private network to connect with your load balancer
447
+ """
448
+ return pulumi.get(self, "private_networks")
449
+
450
+ @private_networks.setter
451
+ def private_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LoadbalancerPrivateNetworkArgs']]]]):
452
+ pulumi.set(self, "private_networks", value)
453
+
454
+ @property
455
+ @pulumi.getter(name="projectId")
456
+ def project_id(self) -> Optional[pulumi.Input[str]]:
457
+ """
458
+ `project_id`) The ID of the Project the Load Balancer is associated with.
459
+ """
460
+ return pulumi.get(self, "project_id")
461
+
462
+ @project_id.setter
463
+ def project_id(self, value: Optional[pulumi.Input[str]]):
464
+ pulumi.set(self, "project_id", value)
465
+
466
+ @property
467
+ @pulumi.getter
468
+ def region(self) -> Optional[pulumi.Input[str]]:
469
+ """
470
+ The region of the resource
471
+ """
472
+ return pulumi.get(self, "region")
473
+
474
+ @region.setter
475
+ def region(self, value: Optional[pulumi.Input[str]]):
476
+ pulumi.set(self, "region", value)
477
+
478
+ @property
479
+ @pulumi.getter(name="releaseIp")
480
+ @_utilities.deprecated("""The resource ip will be destroyed by it's own resource. Please set this to `false`""")
481
+ def release_ip(self) -> Optional[pulumi.Input[bool]]:
482
+ """
483
+ The `release_ip` allow the release of the IP address associated with the Load Balancer.
484
+ """
485
+ return pulumi.get(self, "release_ip")
486
+
487
+ @release_ip.setter
488
+ def release_ip(self, value: Optional[pulumi.Input[bool]]):
489
+ pulumi.set(self, "release_ip", value)
490
+
491
+ @property
492
+ @pulumi.getter(name="sslCompatibilityLevel")
493
+ def ssl_compatibility_level(self) -> Optional[pulumi.Input[str]]:
494
+ """
495
+ Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).
496
+ """
497
+ return pulumi.get(self, "ssl_compatibility_level")
498
+
499
+ @ssl_compatibility_level.setter
500
+ def ssl_compatibility_level(self, value: Optional[pulumi.Input[str]]):
501
+ pulumi.set(self, "ssl_compatibility_level", value)
502
+
503
+ @property
504
+ @pulumi.getter
505
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
506
+ """
507
+ The tags associated with the Load Balancer.
508
+ """
509
+ return pulumi.get(self, "tags")
510
+
511
+ @tags.setter
512
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
513
+ pulumi.set(self, "tags", value)
514
+
515
+ @property
516
+ @pulumi.getter
517
+ def type(self) -> Optional[pulumi.Input[str]]:
518
+ """
519
+ The type of the Load Balancer. Please check the migration section to upgrade the type.
520
+ """
521
+ return pulumi.get(self, "type")
522
+
523
+ @type.setter
524
+ def type(self, value: Optional[pulumi.Input[str]]):
525
+ pulumi.set(self, "type", value)
526
+
527
+ @property
528
+ @pulumi.getter
529
+ def zone(self) -> Optional[pulumi.Input[str]]:
530
+ """
531
+ `zone`) The zone of the Load Balancer.
532
+ """
533
+ return pulumi.get(self, "zone")
534
+
535
+ @zone.setter
536
+ def zone(self, value: Optional[pulumi.Input[str]]):
537
+ pulumi.set(self, "zone", value)
538
+
539
+
540
+ class Loadbalancer(pulumi.CustomResource):
541
+ @overload
542
+ def __init__(__self__,
543
+ resource_name: str,
544
+ opts: Optional[pulumi.ResourceOptions] = None,
545
+ assign_flexible_ip: Optional[pulumi.Input[bool]] = None,
546
+ assign_flexible_ipv6: Optional[pulumi.Input[bool]] = None,
547
+ description: Optional[pulumi.Input[str]] = None,
548
+ ip_id: Optional[pulumi.Input[str]] = None,
549
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
550
+ name: Optional[pulumi.Input[str]] = None,
551
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadbalancerPrivateNetworkArgs', 'LoadbalancerPrivateNetworkArgsDict']]]]] = None,
552
+ project_id: Optional[pulumi.Input[str]] = None,
553
+ release_ip: Optional[pulumi.Input[bool]] = None,
554
+ ssl_compatibility_level: Optional[pulumi.Input[str]] = None,
555
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
556
+ type: Optional[pulumi.Input[str]] = None,
557
+ zone: Optional[pulumi.Input[str]] = None,
558
+ __props__=None):
559
+ """
560
+ Creates and manages Scaleway Load Balancers.
561
+
562
+ For more information, see the [main documentation](https://www.scaleway.com/en/docs/network/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).
563
+
564
+ ## Example Usage
565
+
566
+ ### Basic
567
+
568
+ ```python
569
+ import pulumi
570
+ import pulumiverse_scaleway as scaleway
571
+
572
+ main = scaleway.LoadbalancerIp("main", zone="fr-par-1")
573
+ base = scaleway.Loadbalancer("base",
574
+ ip_ids=[main.id],
575
+ zone=main.zone,
576
+ type="LB-S")
577
+ ```
578
+
579
+ ### Private LB
580
+
581
+ ```python
582
+ import pulumi
583
+ import pulumiverse_scaleway as scaleway
584
+
585
+ base = scaleway.Loadbalancer("base",
586
+ name="private-lb",
587
+ type="LB-S",
588
+ assign_flexible_ip=False)
589
+ ```
590
+
591
+ ### With IPv6
592
+
593
+ ```python
594
+ import pulumi
595
+ import pulumiverse_scaleway as scaleway
596
+
597
+ v4 = scaleway.LoadbalancerIp("v4")
598
+ v6 = scaleway.LoadbalancerIp("v6", is_ipv6=True)
599
+ main = scaleway.Loadbalancer("main",
600
+ ip_ids=[
601
+ v4.id,
602
+ v6.id,
603
+ ],
604
+ name="ipv6-lb",
605
+ type="LB-S")
606
+ ```
607
+
608
+ ### With IPAM IDs
609
+
610
+ ```python
611
+ import pulumi
612
+ import pulumiverse_scaleway as scaleway
613
+
614
+ vpc01 = scaleway.Vpc("vpc01", name="my vpc")
615
+ pn01 = scaleway.VpcPrivateNetwork("pn01",
616
+ vpc_id=vpc01.id,
617
+ ipv4_subnet={
618
+ "subnet": "172.16.32.0/22",
619
+ })
620
+ ip01 = scaleway.IpamIp("ip01",
621
+ address="172.16.32.7",
622
+ sources=[{
623
+ "private_network_id": pn01.id,
624
+ }])
625
+ v4 = scaleway.LoadbalancerIp("v4")
626
+ main = scaleway.Loadbalancer("main",
627
+ ip_ids=[v4.id],
628
+ name="my-lb",
629
+ type="LB-S",
630
+ private_networks=[{
631
+ "private_network_id": pn01.id,
632
+ "ipam_ids": ip01.id,
633
+ }])
634
+ ```
635
+
636
+ ## IP ID
637
+
638
+ Since v1.15.0, `ip_id` is a required field. This means that now a separate `LoadbalancerIp` is required.
639
+ When importing, the IP needs to be imported as well as the Load Balancer.
640
+ When upgrading to v1.15.0, you will need to create a new `LoadbalancerIp` resource and import it.
641
+
642
+ For instance, if you had the following:
643
+
644
+ ```python
645
+ import pulumi
646
+ import pulumiverse_scaleway as scaleway
647
+
648
+ main = scaleway.Loadbalancer("main",
649
+ zone="fr-par-1",
650
+ type="LB-S")
651
+ ```
652
+
653
+ You will need to update it to:
654
+
655
+ ```python
656
+ import pulumi
657
+ import pulumiverse_scaleway as scaleway
658
+
659
+ main = scaleway.LoadbalancerIp("main")
660
+ main_loadbalancer = scaleway.Loadbalancer("main",
661
+ ip_id=main.id,
662
+ zone="fr-par-1",
663
+ type="LB-S",
664
+ release_ip=False)
665
+ ```
666
+
667
+ ## Import
668
+
669
+ Load Balancers can be imported using `{zone}/{id}`, e.g.
670
+
671
+ bash
672
+
673
+ ```sh
674
+ $ pulumi import scaleway:index/loadbalancer:Loadbalancer main fr-par-1/11111111-1111-1111-1111-111111111111
675
+ ```
676
+
677
+ Be aware that you will also need to import the `scaleway_lb_ip` resource.
678
+
679
+ :param str resource_name: The name of the resource.
680
+ :param pulumi.ResourceOptions opts: Options for the resource.
681
+ :param pulumi.Input[bool] assign_flexible_ip: Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.
682
+ :param pulumi.Input[bool] assign_flexible_ipv6: Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
683
+ :param pulumi.Input[str] description: The description of the Load Balancer.
684
+ :param pulumi.Input[str] ip_id: The ID of the associated Load Balancer IP. See below.
685
+
686
+ > **Important:** Updates to `ip_id` will recreate the Load Balancer.
687
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_ids: The List of IP IDs to attach to the Load Balancer.
688
+ :param pulumi.Input[str] name: The name of the Load Balancer.
689
+ :param pulumi.Input[Sequence[pulumi.Input[Union['LoadbalancerPrivateNetworkArgs', 'LoadbalancerPrivateNetworkArgsDict']]]] private_networks: List of private network to connect with your load balancer
690
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Load Balancer is associated with.
691
+ :param pulumi.Input[bool] release_ip: The `release_ip` allow the release of the IP address associated with the Load Balancer.
692
+ :param pulumi.Input[str] ssl_compatibility_level: Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).
693
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Load Balancer.
694
+ :param pulumi.Input[str] type: The type of the Load Balancer. Please check the migration section to upgrade the type.
695
+ :param pulumi.Input[str] zone: `zone`) The zone of the Load Balancer.
696
+ """
697
+ ...
698
+ @overload
699
+ def __init__(__self__,
700
+ resource_name: str,
701
+ args: LoadbalancerArgs,
702
+ opts: Optional[pulumi.ResourceOptions] = None):
703
+ """
704
+ Creates and manages Scaleway Load Balancers.
705
+
706
+ For more information, see the [main documentation](https://www.scaleway.com/en/docs/network/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).
707
+
708
+ ## Example Usage
709
+
710
+ ### Basic
711
+
712
+ ```python
713
+ import pulumi
714
+ import pulumiverse_scaleway as scaleway
715
+
716
+ main = scaleway.LoadbalancerIp("main", zone="fr-par-1")
717
+ base = scaleway.Loadbalancer("base",
718
+ ip_ids=[main.id],
719
+ zone=main.zone,
720
+ type="LB-S")
721
+ ```
722
+
723
+ ### Private LB
724
+
725
+ ```python
726
+ import pulumi
727
+ import pulumiverse_scaleway as scaleway
728
+
729
+ base = scaleway.Loadbalancer("base",
730
+ name="private-lb",
731
+ type="LB-S",
732
+ assign_flexible_ip=False)
733
+ ```
734
+
735
+ ### With IPv6
736
+
737
+ ```python
738
+ import pulumi
739
+ import pulumiverse_scaleway as scaleway
740
+
741
+ v4 = scaleway.LoadbalancerIp("v4")
742
+ v6 = scaleway.LoadbalancerIp("v6", is_ipv6=True)
743
+ main = scaleway.Loadbalancer("main",
744
+ ip_ids=[
745
+ v4.id,
746
+ v6.id,
747
+ ],
748
+ name="ipv6-lb",
749
+ type="LB-S")
750
+ ```
751
+
752
+ ### With IPAM IDs
753
+
754
+ ```python
755
+ import pulumi
756
+ import pulumiverse_scaleway as scaleway
757
+
758
+ vpc01 = scaleway.Vpc("vpc01", name="my vpc")
759
+ pn01 = scaleway.VpcPrivateNetwork("pn01",
760
+ vpc_id=vpc01.id,
761
+ ipv4_subnet={
762
+ "subnet": "172.16.32.0/22",
763
+ })
764
+ ip01 = scaleway.IpamIp("ip01",
765
+ address="172.16.32.7",
766
+ sources=[{
767
+ "private_network_id": pn01.id,
768
+ }])
769
+ v4 = scaleway.LoadbalancerIp("v4")
770
+ main = scaleway.Loadbalancer("main",
771
+ ip_ids=[v4.id],
772
+ name="my-lb",
773
+ type="LB-S",
774
+ private_networks=[{
775
+ "private_network_id": pn01.id,
776
+ "ipam_ids": ip01.id,
777
+ }])
778
+ ```
779
+
780
+ ## IP ID
781
+
782
+ Since v1.15.0, `ip_id` is a required field. This means that now a separate `LoadbalancerIp` is required.
783
+ When importing, the IP needs to be imported as well as the Load Balancer.
784
+ When upgrading to v1.15.0, you will need to create a new `LoadbalancerIp` resource and import it.
785
+
786
+ For instance, if you had the following:
787
+
788
+ ```python
789
+ import pulumi
790
+ import pulumiverse_scaleway as scaleway
791
+
792
+ main = scaleway.Loadbalancer("main",
793
+ zone="fr-par-1",
794
+ type="LB-S")
795
+ ```
796
+
797
+ You will need to update it to:
798
+
799
+ ```python
800
+ import pulumi
801
+ import pulumiverse_scaleway as scaleway
802
+
803
+ main = scaleway.LoadbalancerIp("main")
804
+ main_loadbalancer = scaleway.Loadbalancer("main",
805
+ ip_id=main.id,
806
+ zone="fr-par-1",
807
+ type="LB-S",
808
+ release_ip=False)
809
+ ```
810
+
811
+ ## Import
812
+
813
+ Load Balancers can be imported using `{zone}/{id}`, e.g.
814
+
815
+ bash
816
+
817
+ ```sh
818
+ $ pulumi import scaleway:index/loadbalancer:Loadbalancer main fr-par-1/11111111-1111-1111-1111-111111111111
819
+ ```
820
+
821
+ Be aware that you will also need to import the `scaleway_lb_ip` resource.
822
+
823
+ :param str resource_name: The name of the resource.
824
+ :param LoadbalancerArgs args: The arguments to use to populate this resource's properties.
825
+ :param pulumi.ResourceOptions opts: Options for the resource.
826
+ """
827
+ ...
828
+ def __init__(__self__, resource_name: str, *args, **kwargs):
829
+ resource_args, opts = _utilities.get_resource_args_opts(LoadbalancerArgs, pulumi.ResourceOptions, *args, **kwargs)
830
+ if resource_args is not None:
831
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
832
+ else:
833
+ __self__._internal_init(resource_name, *args, **kwargs)
834
+
835
+ def _internal_init(__self__,
836
+ resource_name: str,
837
+ opts: Optional[pulumi.ResourceOptions] = None,
838
+ assign_flexible_ip: Optional[pulumi.Input[bool]] = None,
839
+ assign_flexible_ipv6: Optional[pulumi.Input[bool]] = None,
840
+ description: Optional[pulumi.Input[str]] = None,
841
+ ip_id: Optional[pulumi.Input[str]] = None,
842
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
843
+ name: Optional[pulumi.Input[str]] = None,
844
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadbalancerPrivateNetworkArgs', 'LoadbalancerPrivateNetworkArgsDict']]]]] = None,
845
+ project_id: Optional[pulumi.Input[str]] = None,
846
+ release_ip: Optional[pulumi.Input[bool]] = None,
847
+ ssl_compatibility_level: Optional[pulumi.Input[str]] = None,
848
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
849
+ type: Optional[pulumi.Input[str]] = None,
850
+ zone: Optional[pulumi.Input[str]] = None,
851
+ __props__=None):
852
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
853
+ if not isinstance(opts, pulumi.ResourceOptions):
854
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
855
+ if opts.id is None:
856
+ if __props__ is not None:
857
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
858
+ __props__ = LoadbalancerArgs.__new__(LoadbalancerArgs)
859
+
860
+ __props__.__dict__["assign_flexible_ip"] = assign_flexible_ip
861
+ __props__.__dict__["assign_flexible_ipv6"] = assign_flexible_ipv6
862
+ __props__.__dict__["description"] = description
863
+ __props__.__dict__["ip_id"] = ip_id
864
+ __props__.__dict__["ip_ids"] = ip_ids
865
+ __props__.__dict__["name"] = name
866
+ __props__.__dict__["private_networks"] = private_networks
867
+ __props__.__dict__["project_id"] = project_id
868
+ __props__.__dict__["release_ip"] = release_ip
869
+ __props__.__dict__["ssl_compatibility_level"] = ssl_compatibility_level
870
+ __props__.__dict__["tags"] = tags
871
+ if type is None and not opts.urn:
872
+ raise TypeError("Missing required property 'type'")
873
+ __props__.__dict__["type"] = type
874
+ __props__.__dict__["zone"] = zone
875
+ __props__.__dict__["ip_address"] = None
876
+ __props__.__dict__["ipv6_address"] = None
877
+ __props__.__dict__["organization_id"] = None
878
+ __props__.__dict__["region"] = None
879
+ super(Loadbalancer, __self__).__init__(
880
+ 'scaleway:index/loadbalancer:Loadbalancer',
881
+ resource_name,
882
+ __props__,
883
+ opts)
884
+
885
+ @staticmethod
886
+ def get(resource_name: str,
887
+ id: pulumi.Input[str],
888
+ opts: Optional[pulumi.ResourceOptions] = None,
889
+ assign_flexible_ip: Optional[pulumi.Input[bool]] = None,
890
+ assign_flexible_ipv6: Optional[pulumi.Input[bool]] = None,
891
+ description: Optional[pulumi.Input[str]] = None,
892
+ ip_address: Optional[pulumi.Input[str]] = None,
893
+ ip_id: Optional[pulumi.Input[str]] = None,
894
+ ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
895
+ ipv6_address: Optional[pulumi.Input[str]] = None,
896
+ name: Optional[pulumi.Input[str]] = None,
897
+ organization_id: Optional[pulumi.Input[str]] = None,
898
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadbalancerPrivateNetworkArgs', 'LoadbalancerPrivateNetworkArgsDict']]]]] = None,
899
+ project_id: Optional[pulumi.Input[str]] = None,
900
+ region: Optional[pulumi.Input[str]] = None,
901
+ release_ip: Optional[pulumi.Input[bool]] = None,
902
+ ssl_compatibility_level: Optional[pulumi.Input[str]] = None,
903
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
904
+ type: Optional[pulumi.Input[str]] = None,
905
+ zone: Optional[pulumi.Input[str]] = None) -> 'Loadbalancer':
906
+ """
907
+ Get an existing Loadbalancer resource's state with the given name, id, and optional extra
908
+ properties used to qualify the lookup.
909
+
910
+ :param str resource_name: The unique name of the resulting resource.
911
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
912
+ :param pulumi.ResourceOptions opts: Options for the resource.
913
+ :param pulumi.Input[bool] assign_flexible_ip: Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.
914
+ :param pulumi.Input[bool] assign_flexible_ipv6: Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
915
+ :param pulumi.Input[str] description: The description of the Load Balancer.
916
+ :param pulumi.Input[str] ip_address: The Load Balancer public IPv4 address.
917
+ :param pulumi.Input[str] ip_id: The ID of the associated Load Balancer IP. See below.
918
+
919
+ > **Important:** Updates to `ip_id` will recreate the Load Balancer.
920
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_ids: The List of IP IDs to attach to the Load Balancer.
921
+ :param pulumi.Input[str] ipv6_address: The Load Balancer public IPv6 address.
922
+ :param pulumi.Input[str] name: The name of the Load Balancer.
923
+ :param pulumi.Input[str] organization_id: The ID of the Organization ID the Load Balancer is associated with.
924
+ :param pulumi.Input[Sequence[pulumi.Input[Union['LoadbalancerPrivateNetworkArgs', 'LoadbalancerPrivateNetworkArgsDict']]]] private_networks: List of private network to connect with your load balancer
925
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Load Balancer is associated with.
926
+ :param pulumi.Input[str] region: The region of the resource
927
+ :param pulumi.Input[bool] release_ip: The `release_ip` allow the release of the IP address associated with the Load Balancer.
928
+ :param pulumi.Input[str] ssl_compatibility_level: Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).
929
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Load Balancer.
930
+ :param pulumi.Input[str] type: The type of the Load Balancer. Please check the migration section to upgrade the type.
931
+ :param pulumi.Input[str] zone: `zone`) The zone of the Load Balancer.
932
+ """
933
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
934
+
935
+ __props__ = _LoadbalancerState.__new__(_LoadbalancerState)
936
+
937
+ __props__.__dict__["assign_flexible_ip"] = assign_flexible_ip
938
+ __props__.__dict__["assign_flexible_ipv6"] = assign_flexible_ipv6
939
+ __props__.__dict__["description"] = description
940
+ __props__.__dict__["ip_address"] = ip_address
941
+ __props__.__dict__["ip_id"] = ip_id
942
+ __props__.__dict__["ip_ids"] = ip_ids
943
+ __props__.__dict__["ipv6_address"] = ipv6_address
944
+ __props__.__dict__["name"] = name
945
+ __props__.__dict__["organization_id"] = organization_id
946
+ __props__.__dict__["private_networks"] = private_networks
947
+ __props__.__dict__["project_id"] = project_id
948
+ __props__.__dict__["region"] = region
949
+ __props__.__dict__["release_ip"] = release_ip
950
+ __props__.__dict__["ssl_compatibility_level"] = ssl_compatibility_level
951
+ __props__.__dict__["tags"] = tags
952
+ __props__.__dict__["type"] = type
953
+ __props__.__dict__["zone"] = zone
954
+ return Loadbalancer(resource_name, opts=opts, __props__=__props__)
955
+
956
+ @property
957
+ @pulumi.getter(name="assignFlexibleIp")
958
+ def assign_flexible_ip(self) -> pulumi.Output[Optional[bool]]:
959
+ """
960
+ Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.
961
+ """
962
+ return pulumi.get(self, "assign_flexible_ip")
963
+
964
+ @property
965
+ @pulumi.getter(name="assignFlexibleIpv6")
966
+ def assign_flexible_ipv6(self) -> pulumi.Output[Optional[bool]]:
967
+ """
968
+ Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
969
+ """
970
+ return pulumi.get(self, "assign_flexible_ipv6")
971
+
972
+ @property
973
+ @pulumi.getter
974
+ def description(self) -> pulumi.Output[Optional[str]]:
975
+ """
976
+ The description of the Load Balancer.
977
+ """
978
+ return pulumi.get(self, "description")
979
+
980
+ @property
981
+ @pulumi.getter(name="ipAddress")
982
+ def ip_address(self) -> pulumi.Output[str]:
983
+ """
984
+ The Load Balancer public IPv4 address.
985
+ """
986
+ return pulumi.get(self, "ip_address")
987
+
988
+ @property
989
+ @pulumi.getter(name="ipId")
990
+ @_utilities.deprecated("""Please use ip_ids""")
991
+ def ip_id(self) -> pulumi.Output[str]:
992
+ """
993
+ The ID of the associated Load Balancer IP. See below.
994
+
995
+ > **Important:** Updates to `ip_id` will recreate the Load Balancer.
996
+ """
997
+ return pulumi.get(self, "ip_id")
998
+
999
+ @property
1000
+ @pulumi.getter(name="ipIds")
1001
+ def ip_ids(self) -> pulumi.Output[Sequence[str]]:
1002
+ """
1003
+ The List of IP IDs to attach to the Load Balancer.
1004
+ """
1005
+ return pulumi.get(self, "ip_ids")
1006
+
1007
+ @property
1008
+ @pulumi.getter(name="ipv6Address")
1009
+ def ipv6_address(self) -> pulumi.Output[str]:
1010
+ """
1011
+ The Load Balancer public IPv6 address.
1012
+ """
1013
+ return pulumi.get(self, "ipv6_address")
1014
+
1015
+ @property
1016
+ @pulumi.getter
1017
+ def name(self) -> pulumi.Output[str]:
1018
+ """
1019
+ The name of the Load Balancer.
1020
+ """
1021
+ return pulumi.get(self, "name")
1022
+
1023
+ @property
1024
+ @pulumi.getter(name="organizationId")
1025
+ def organization_id(self) -> pulumi.Output[str]:
1026
+ """
1027
+ The ID of the Organization ID the Load Balancer is associated with.
1028
+ """
1029
+ return pulumi.get(self, "organization_id")
1030
+
1031
+ @property
1032
+ @pulumi.getter(name="privateNetworks")
1033
+ def private_networks(self) -> pulumi.Output[Optional[Sequence['outputs.LoadbalancerPrivateNetwork']]]:
1034
+ """
1035
+ List of private network to connect with your load balancer
1036
+ """
1037
+ return pulumi.get(self, "private_networks")
1038
+
1039
+ @property
1040
+ @pulumi.getter(name="projectId")
1041
+ def project_id(self) -> pulumi.Output[str]:
1042
+ """
1043
+ `project_id`) The ID of the Project the Load Balancer is associated with.
1044
+ """
1045
+ return pulumi.get(self, "project_id")
1046
+
1047
+ @property
1048
+ @pulumi.getter
1049
+ def region(self) -> pulumi.Output[str]:
1050
+ """
1051
+ The region of the resource
1052
+ """
1053
+ return pulumi.get(self, "region")
1054
+
1055
+ @property
1056
+ @pulumi.getter(name="releaseIp")
1057
+ @_utilities.deprecated("""The resource ip will be destroyed by it's own resource. Please set this to `false`""")
1058
+ def release_ip(self) -> pulumi.Output[Optional[bool]]:
1059
+ """
1060
+ The `release_ip` allow the release of the IP address associated with the Load Balancer.
1061
+ """
1062
+ return pulumi.get(self, "release_ip")
1063
+
1064
+ @property
1065
+ @pulumi.getter(name="sslCompatibilityLevel")
1066
+ def ssl_compatibility_level(self) -> pulumi.Output[Optional[str]]:
1067
+ """
1068
+ Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).
1069
+ """
1070
+ return pulumi.get(self, "ssl_compatibility_level")
1071
+
1072
+ @property
1073
+ @pulumi.getter
1074
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
1075
+ """
1076
+ The tags associated with the Load Balancer.
1077
+ """
1078
+ return pulumi.get(self, "tags")
1079
+
1080
+ @property
1081
+ @pulumi.getter
1082
+ def type(self) -> pulumi.Output[str]:
1083
+ """
1084
+ The type of the Load Balancer. Please check the migration section to upgrade the type.
1085
+ """
1086
+ return pulumi.get(self, "type")
1087
+
1088
+ @property
1089
+ @pulumi.getter
1090
+ def zone(self) -> pulumi.Output[str]:
1091
+ """
1092
+ `zone`) The zone of the Load Balancer.
1093
+ """
1094
+ return pulumi.get(self, "zone")
1095
+