pulumiverse-scaleway 1.28.0a1747119212__py3-none-any.whl → 1.29.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.
Files changed (102) hide show
  1. pulumiverse_scaleway/__init__.py +16 -1
  2. pulumiverse_scaleway/_inputs.py +604 -6
  3. pulumiverse_scaleway/account/__init__.py +2 -0
  4. pulumiverse_scaleway/account/get_projects.py +235 -0
  5. pulumiverse_scaleway/account/outputs.py +95 -0
  6. pulumiverse_scaleway/baremetal_server.py +67 -258
  7. pulumiverse_scaleway/block/__init__.py +2 -0
  8. pulumiverse_scaleway/block/_inputs.py +73 -0
  9. pulumiverse_scaleway/block/get_snapshot.py +13 -1
  10. pulumiverse_scaleway/block/outputs.py +79 -0
  11. pulumiverse_scaleway/block/snapshot.py +62 -14
  12. pulumiverse_scaleway/block_snapshot.py +62 -14
  13. pulumiverse_scaleway/container.py +2 -2
  14. pulumiverse_scaleway/containers/container.py +2 -2
  15. pulumiverse_scaleway/database_instance.py +61 -21
  16. pulumiverse_scaleway/databases/_inputs.py +54 -0
  17. pulumiverse_scaleway/databases/get_instance.py +12 -1
  18. pulumiverse_scaleway/databases/instance.py +61 -21
  19. pulumiverse_scaleway/databases/outputs.py +62 -0
  20. pulumiverse_scaleway/databases/snapshot.py +2 -2
  21. pulumiverse_scaleway/domain/get_zone.py +7 -1
  22. pulumiverse_scaleway/elasticmetal/__init__.py +1 -1
  23. pulumiverse_scaleway/elasticmetal/_inputs.py +74 -0
  24. pulumiverse_scaleway/elasticmetal/get_partition_schema.py +215 -0
  25. pulumiverse_scaleway/elasticmetal/get_server.py +12 -1
  26. pulumiverse_scaleway/elasticmetal/outputs.py +87 -0
  27. pulumiverse_scaleway/elasticmetal/server.py +67 -258
  28. pulumiverse_scaleway/get_baremetal_server.py +12 -1
  29. pulumiverse_scaleway/get_block_snapshot.py +13 -1
  30. pulumiverse_scaleway/get_cockpit_plan.py +2 -38
  31. pulumiverse_scaleway/get_database_instance.py +12 -1
  32. pulumiverse_scaleway/get_domain_zone.py +7 -1
  33. pulumiverse_scaleway/get_instance_private_nic.py +13 -1
  34. pulumiverse_scaleway/get_instance_server.py +12 -1
  35. pulumiverse_scaleway/get_lb_route.py +12 -1
  36. pulumiverse_scaleway/get_loadbalancer.py +12 -1
  37. pulumiverse_scaleway/get_mongo_db_instance.py +12 -1
  38. pulumiverse_scaleway/get_redis_cluster.py +12 -1
  39. pulumiverse_scaleway/get_vpc_gateway_network.py +12 -1
  40. pulumiverse_scaleway/iam/user.py +468 -14
  41. pulumiverse_scaleway/iam_user.py +468 -14
  42. pulumiverse_scaleway/inference/__init__.py +2 -0
  43. pulumiverse_scaleway/inference/_inputs.py +128 -0
  44. pulumiverse_scaleway/inference/deployment.py +70 -55
  45. pulumiverse_scaleway/inference/get_model.py +299 -0
  46. pulumiverse_scaleway/inference/model.py +683 -0
  47. pulumiverse_scaleway/inference/outputs.py +184 -0
  48. pulumiverse_scaleway/inference_deployment.py +70 -55
  49. pulumiverse_scaleway/instance/_inputs.py +108 -0
  50. pulumiverse_scaleway/instance/get_private_nic.py +13 -1
  51. pulumiverse_scaleway/instance/get_server.py +12 -1
  52. pulumiverse_scaleway/instance/outputs.py +124 -0
  53. pulumiverse_scaleway/instance/private_nic.py +49 -0
  54. pulumiverse_scaleway/instance/server.py +47 -0
  55. pulumiverse_scaleway/instance/snapshot.py +28 -7
  56. pulumiverse_scaleway/instance/volume.py +28 -7
  57. pulumiverse_scaleway/instance_private_nic.py +49 -0
  58. pulumiverse_scaleway/instance_server.py +47 -0
  59. pulumiverse_scaleway/instance_snapshot.py +28 -7
  60. pulumiverse_scaleway/instance_volume.py +28 -7
  61. pulumiverse_scaleway/kubernetes/__init__.py +1 -0
  62. pulumiverse_scaleway/kubernetes/_inputs.py +203 -0
  63. pulumiverse_scaleway/kubernetes/acl.py +446 -0
  64. pulumiverse_scaleway/kubernetes/outputs.py +195 -1
  65. pulumiverse_scaleway/loadbalancer.py +28 -0
  66. pulumiverse_scaleway/loadbalancer_route.py +138 -14
  67. pulumiverse_scaleway/loadbalancers/_inputs.py +54 -0
  68. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +12 -1
  69. pulumiverse_scaleway/loadbalancers/get_route.py +12 -1
  70. pulumiverse_scaleway/loadbalancers/load_balancer.py +28 -0
  71. pulumiverse_scaleway/loadbalancers/outputs.py +62 -0
  72. pulumiverse_scaleway/loadbalancers/route.py +138 -14
  73. pulumiverse_scaleway/mnq/sns_credentials.py +7 -7
  74. pulumiverse_scaleway/mnq/sqs_credentials.py +7 -7
  75. pulumiverse_scaleway/mnq_sns_credentials.py +7 -7
  76. pulumiverse_scaleway/mnq_sqs_credentials.py +7 -7
  77. pulumiverse_scaleway/mongo_db_instance.py +107 -7
  78. pulumiverse_scaleway/mongodb/_inputs.py +54 -0
  79. pulumiverse_scaleway/mongodb/get_instance.py +12 -1
  80. pulumiverse_scaleway/mongodb/instance.py +107 -7
  81. pulumiverse_scaleway/mongodb/outputs.py +62 -0
  82. pulumiverse_scaleway/network/_inputs.py +54 -0
  83. pulumiverse_scaleway/network/gateway_network.py +47 -0
  84. pulumiverse_scaleway/network/get_gateway_network.py +12 -1
  85. pulumiverse_scaleway/network/outputs.py +62 -0
  86. pulumiverse_scaleway/network/route.py +90 -2
  87. pulumiverse_scaleway/observability/__init__.py +0 -1
  88. pulumiverse_scaleway/observability/get_plan.py +2 -38
  89. pulumiverse_scaleway/outputs.py +718 -27
  90. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  91. pulumiverse_scaleway/rdb_snapshot.py +2 -2
  92. pulumiverse_scaleway/redis/_inputs.py +60 -6
  93. pulumiverse_scaleway/redis/cluster.py +47 -0
  94. pulumiverse_scaleway/redis/get_cluster.py +12 -1
  95. pulumiverse_scaleway/redis/outputs.py +66 -4
  96. pulumiverse_scaleway/redis_cluster.py +47 -0
  97. pulumiverse_scaleway/vpc_gateway_network.py +47 -0
  98. pulumiverse_scaleway/vpc_route.py +90 -2
  99. {pulumiverse_scaleway-1.28.0a1747119212.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/METADATA +1 -1
  100. {pulumiverse_scaleway-1.28.0a1747119212.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/RECORD +102 -94
  101. {pulumiverse_scaleway-1.28.0a1747119212.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/WHEEL +1 -1
  102. {pulumiverse_scaleway-1.28.0a1747119212.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/top_level.txt +0 -0
@@ -22,6 +22,7 @@ class LoadbalancerRouteArgs:
22
22
  backend_id: pulumi.Input[str],
23
23
  frontend_id: pulumi.Input[str],
24
24
  match_host_header: Optional[pulumi.Input[str]] = None,
25
+ match_path_begin: Optional[pulumi.Input[str]] = None,
25
26
  match_sni: Optional[pulumi.Input[str]] = None,
26
27
  match_subdomains: Optional[pulumi.Input[bool]] = None):
27
28
  """
@@ -29,11 +30,13 @@ class LoadbalancerRouteArgs:
29
30
  :param pulumi.Input[str] backend_id: The ID of the backend the route is associated with.
30
31
  :param pulumi.Input[str] frontend_id: The ID of the frontend the route is associated with.
31
32
  :param pulumi.Input[str] match_host_header: The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.
32
- Only one of `match_sni` and `match_host_header` should be specified.
33
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
33
34
 
34
35
  > **Important:** This field should be set for routes on HTTP Load Balancers.
36
+ :param pulumi.Input[str] match_path_begin: The value to match in the URL beginning path from an incoming request.
37
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
35
38
  :param pulumi.Input[str] match_sni: The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.
36
- Only one of `match_sni` and `match_host_header` should be specified.
39
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
37
40
 
38
41
  > **Important:** This field should be set for routes on TCP Load Balancers.
39
42
  :param pulumi.Input[bool] match_subdomains: If true, all subdomains will match.
@@ -42,6 +45,8 @@ class LoadbalancerRouteArgs:
42
45
  pulumi.set(__self__, "frontend_id", frontend_id)
43
46
  if match_host_header is not None:
44
47
  pulumi.set(__self__, "match_host_header", match_host_header)
48
+ if match_path_begin is not None:
49
+ pulumi.set(__self__, "match_path_begin", match_path_begin)
45
50
  if match_sni is not None:
46
51
  pulumi.set(__self__, "match_sni", match_sni)
47
52
  if match_subdomains is not None:
@@ -76,7 +81,7 @@ class LoadbalancerRouteArgs:
76
81
  def match_host_header(self) -> Optional[pulumi.Input[str]]:
77
82
  """
78
83
  The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.
79
- Only one of `match_sni` and `match_host_header` should be specified.
84
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
80
85
 
81
86
  > **Important:** This field should be set for routes on HTTP Load Balancers.
82
87
  """
@@ -86,12 +91,25 @@ class LoadbalancerRouteArgs:
86
91
  def match_host_header(self, value: Optional[pulumi.Input[str]]):
87
92
  pulumi.set(self, "match_host_header", value)
88
93
 
94
+ @property
95
+ @pulumi.getter(name="matchPathBegin")
96
+ def match_path_begin(self) -> Optional[pulumi.Input[str]]:
97
+ """
98
+ The value to match in the URL beginning path from an incoming request.
99
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
100
+ """
101
+ return pulumi.get(self, "match_path_begin")
102
+
103
+ @match_path_begin.setter
104
+ def match_path_begin(self, value: Optional[pulumi.Input[str]]):
105
+ pulumi.set(self, "match_path_begin", value)
106
+
89
107
  @property
90
108
  @pulumi.getter(name="matchSni")
91
109
  def match_sni(self) -> Optional[pulumi.Input[str]]:
92
110
  """
93
111
  The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.
94
- Only one of `match_sni` and `match_host_header` should be specified.
112
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
95
113
 
96
114
  > **Important:** This field should be set for routes on TCP Load Balancers.
97
115
  """
@@ -121,6 +139,7 @@ class _LoadbalancerRouteState:
121
139
  created_at: Optional[pulumi.Input[str]] = None,
122
140
  frontend_id: Optional[pulumi.Input[str]] = None,
123
141
  match_host_header: Optional[pulumi.Input[str]] = None,
142
+ match_path_begin: Optional[pulumi.Input[str]] = None,
124
143
  match_sni: Optional[pulumi.Input[str]] = None,
125
144
  match_subdomains: Optional[pulumi.Input[bool]] = None,
126
145
  updated_at: Optional[pulumi.Input[str]] = None):
@@ -130,11 +149,13 @@ class _LoadbalancerRouteState:
130
149
  :param pulumi.Input[str] created_at: The date on which the route was created.
131
150
  :param pulumi.Input[str] frontend_id: The ID of the frontend the route is associated with.
132
151
  :param pulumi.Input[str] match_host_header: The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.
133
- Only one of `match_sni` and `match_host_header` should be specified.
152
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
134
153
 
135
154
  > **Important:** This field should be set for routes on HTTP Load Balancers.
155
+ :param pulumi.Input[str] match_path_begin: The value to match in the URL beginning path from an incoming request.
156
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
136
157
  :param pulumi.Input[str] match_sni: The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.
137
- Only one of `match_sni` and `match_host_header` should be specified.
158
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
138
159
 
139
160
  > **Important:** This field should be set for routes on TCP Load Balancers.
140
161
  :param pulumi.Input[bool] match_subdomains: If true, all subdomains will match.
@@ -148,6 +169,8 @@ class _LoadbalancerRouteState:
148
169
  pulumi.set(__self__, "frontend_id", frontend_id)
149
170
  if match_host_header is not None:
150
171
  pulumi.set(__self__, "match_host_header", match_host_header)
172
+ if match_path_begin is not None:
173
+ pulumi.set(__self__, "match_path_begin", match_path_begin)
151
174
  if match_sni is not None:
152
175
  pulumi.set(__self__, "match_sni", match_sni)
153
176
  if match_subdomains is not None:
@@ -196,7 +219,7 @@ class _LoadbalancerRouteState:
196
219
  def match_host_header(self) -> Optional[pulumi.Input[str]]:
197
220
  """
198
221
  The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.
199
- Only one of `match_sni` and `match_host_header` should be specified.
222
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
200
223
 
201
224
  > **Important:** This field should be set for routes on HTTP Load Balancers.
202
225
  """
@@ -206,12 +229,25 @@ class _LoadbalancerRouteState:
206
229
  def match_host_header(self, value: Optional[pulumi.Input[str]]):
207
230
  pulumi.set(self, "match_host_header", value)
208
231
 
232
+ @property
233
+ @pulumi.getter(name="matchPathBegin")
234
+ def match_path_begin(self) -> Optional[pulumi.Input[str]]:
235
+ """
236
+ The value to match in the URL beginning path from an incoming request.
237
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
238
+ """
239
+ return pulumi.get(self, "match_path_begin")
240
+
241
+ @match_path_begin.setter
242
+ def match_path_begin(self, value: Optional[pulumi.Input[str]]):
243
+ pulumi.set(self, "match_path_begin", value)
244
+
209
245
  @property
210
246
  @pulumi.getter(name="matchSni")
211
247
  def match_sni(self) -> Optional[pulumi.Input[str]]:
212
248
  """
213
249
  The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.
214
- Only one of `match_sni` and `match_host_header` should be specified.
250
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
215
251
 
216
252
  > **Important:** This field should be set for routes on TCP Load Balancers.
217
253
  """
@@ -259,6 +295,7 @@ class LoadbalancerRoute(pulumi.CustomResource):
259
295
  backend_id: Optional[pulumi.Input[str]] = None,
260
296
  frontend_id: Optional[pulumi.Input[str]] = None,
261
297
  match_host_header: Optional[pulumi.Input[str]] = None,
298
+ match_path_begin: Optional[pulumi.Input[str]] = None,
262
299
  match_sni: Optional[pulumi.Input[str]] = None,
263
300
  match_subdomains: Optional[pulumi.Input[bool]] = None,
264
301
  __props__=None):
@@ -321,6 +358,41 @@ class LoadbalancerRoute(pulumi.CustomResource):
321
358
  match_host_header="host.scaleway.com")
322
359
  ```
323
360
 
361
+ ### With path-begin matching for HTTP backends
362
+
363
+ ```python
364
+ import pulumi
365
+ import pulumiverse_scaleway as scaleway
366
+
367
+ ip = scaleway.loadbalancers.Ip("ip")
368
+ lb = scaleway.loadbalancers.LoadBalancer("lb",
369
+ ip_id=ip.id,
370
+ name="my-lb",
371
+ type="lb-s")
372
+ app = scaleway.loadbalancers.Backend("app",
373
+ lb_id=lb.id,
374
+ forward_protocol="http",
375
+ forward_port=80,
376
+ proxy_protocol="none")
377
+ admin = scaleway.loadbalancers.Backend("admin",
378
+ lb_id=lb.id,
379
+ forward_protocol="http",
380
+ forward_port=8080,
381
+ proxy_protocol="none")
382
+ frontend = scaleway.loadbalancers.Frontend("frontend",
383
+ lb_id=lb.id,
384
+ backend_id=app.id,
385
+ inbound_port=80)
386
+ admin_route = scaleway.loadbalancers.Route("admin_route",
387
+ frontend_id=frontend.id,
388
+ backend_id=admin.id,
389
+ match_path_begin="/admin")
390
+ default_route = scaleway.loadbalancers.Route("default_route",
391
+ frontend_id=frontend.id,
392
+ backend_id=app.id,
393
+ match_path_begin="/")
394
+ ```
395
+
324
396
  ## Import
325
397
 
326
398
  Load Balancer frontends can be imported using `{zone}/{id}`, e.g.
@@ -336,11 +408,13 @@ class LoadbalancerRoute(pulumi.CustomResource):
336
408
  :param pulumi.Input[str] backend_id: The ID of the backend the route is associated with.
337
409
  :param pulumi.Input[str] frontend_id: The ID of the frontend the route is associated with.
338
410
  :param pulumi.Input[str] match_host_header: The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.
339
- Only one of `match_sni` and `match_host_header` should be specified.
411
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
340
412
 
341
413
  > **Important:** This field should be set for routes on HTTP Load Balancers.
414
+ :param pulumi.Input[str] match_path_begin: The value to match in the URL beginning path from an incoming request.
415
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
342
416
  :param pulumi.Input[str] match_sni: The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.
343
- Only one of `match_sni` and `match_host_header` should be specified.
417
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
344
418
 
345
419
  > **Important:** This field should be set for routes on TCP Load Balancers.
346
420
  :param pulumi.Input[bool] match_subdomains: If true, all subdomains will match.
@@ -410,6 +484,41 @@ class LoadbalancerRoute(pulumi.CustomResource):
410
484
  match_host_header="host.scaleway.com")
411
485
  ```
412
486
 
487
+ ### With path-begin matching for HTTP backends
488
+
489
+ ```python
490
+ import pulumi
491
+ import pulumiverse_scaleway as scaleway
492
+
493
+ ip = scaleway.loadbalancers.Ip("ip")
494
+ lb = scaleway.loadbalancers.LoadBalancer("lb",
495
+ ip_id=ip.id,
496
+ name="my-lb",
497
+ type="lb-s")
498
+ app = scaleway.loadbalancers.Backend("app",
499
+ lb_id=lb.id,
500
+ forward_protocol="http",
501
+ forward_port=80,
502
+ proxy_protocol="none")
503
+ admin = scaleway.loadbalancers.Backend("admin",
504
+ lb_id=lb.id,
505
+ forward_protocol="http",
506
+ forward_port=8080,
507
+ proxy_protocol="none")
508
+ frontend = scaleway.loadbalancers.Frontend("frontend",
509
+ lb_id=lb.id,
510
+ backend_id=app.id,
511
+ inbound_port=80)
512
+ admin_route = scaleway.loadbalancers.Route("admin_route",
513
+ frontend_id=frontend.id,
514
+ backend_id=admin.id,
515
+ match_path_begin="/admin")
516
+ default_route = scaleway.loadbalancers.Route("default_route",
517
+ frontend_id=frontend.id,
518
+ backend_id=app.id,
519
+ match_path_begin="/")
520
+ ```
521
+
413
522
  ## Import
414
523
 
415
524
  Load Balancer frontends can be imported using `{zone}/{id}`, e.g.
@@ -438,6 +547,7 @@ class LoadbalancerRoute(pulumi.CustomResource):
438
547
  backend_id: Optional[pulumi.Input[str]] = None,
439
548
  frontend_id: Optional[pulumi.Input[str]] = None,
440
549
  match_host_header: Optional[pulumi.Input[str]] = None,
550
+ match_path_begin: Optional[pulumi.Input[str]] = None,
441
551
  match_sni: Optional[pulumi.Input[str]] = None,
442
552
  match_subdomains: Optional[pulumi.Input[bool]] = None,
443
553
  __props__=None):
@@ -457,6 +567,7 @@ class LoadbalancerRoute(pulumi.CustomResource):
457
567
  raise TypeError("Missing required property 'frontend_id'")
458
568
  __props__.__dict__["frontend_id"] = frontend_id
459
569
  __props__.__dict__["match_host_header"] = match_host_header
570
+ __props__.__dict__["match_path_begin"] = match_path_begin
460
571
  __props__.__dict__["match_sni"] = match_sni
461
572
  __props__.__dict__["match_subdomains"] = match_subdomains
462
573
  __props__.__dict__["created_at"] = None
@@ -475,6 +586,7 @@ class LoadbalancerRoute(pulumi.CustomResource):
475
586
  created_at: Optional[pulumi.Input[str]] = None,
476
587
  frontend_id: Optional[pulumi.Input[str]] = None,
477
588
  match_host_header: Optional[pulumi.Input[str]] = None,
589
+ match_path_begin: Optional[pulumi.Input[str]] = None,
478
590
  match_sni: Optional[pulumi.Input[str]] = None,
479
591
  match_subdomains: Optional[pulumi.Input[bool]] = None,
480
592
  updated_at: Optional[pulumi.Input[str]] = None) -> 'LoadbalancerRoute':
@@ -489,11 +601,13 @@ class LoadbalancerRoute(pulumi.CustomResource):
489
601
  :param pulumi.Input[str] created_at: The date on which the route was created.
490
602
  :param pulumi.Input[str] frontend_id: The ID of the frontend the route is associated with.
491
603
  :param pulumi.Input[str] match_host_header: The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.
492
- Only one of `match_sni` and `match_host_header` should be specified.
604
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
493
605
 
494
606
  > **Important:** This field should be set for routes on HTTP Load Balancers.
607
+ :param pulumi.Input[str] match_path_begin: The value to match in the URL beginning path from an incoming request.
608
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
495
609
  :param pulumi.Input[str] match_sni: The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.
496
- Only one of `match_sni` and `match_host_header` should be specified.
610
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
497
611
 
498
612
  > **Important:** This field should be set for routes on TCP Load Balancers.
499
613
  :param pulumi.Input[bool] match_subdomains: If true, all subdomains will match.
@@ -507,6 +621,7 @@ class LoadbalancerRoute(pulumi.CustomResource):
507
621
  __props__.__dict__["created_at"] = created_at
508
622
  __props__.__dict__["frontend_id"] = frontend_id
509
623
  __props__.__dict__["match_host_header"] = match_host_header
624
+ __props__.__dict__["match_path_begin"] = match_path_begin
510
625
  __props__.__dict__["match_sni"] = match_sni
511
626
  __props__.__dict__["match_subdomains"] = match_subdomains
512
627
  __props__.__dict__["updated_at"] = updated_at
@@ -541,18 +656,27 @@ class LoadbalancerRoute(pulumi.CustomResource):
541
656
  def match_host_header(self) -> pulumi.Output[Optional[str]]:
542
657
  """
543
658
  The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.
544
- Only one of `match_sni` and `match_host_header` should be specified.
659
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
545
660
 
546
661
  > **Important:** This field should be set for routes on HTTP Load Balancers.
547
662
  """
548
663
  return pulumi.get(self, "match_host_header")
549
664
 
665
+ @property
666
+ @pulumi.getter(name="matchPathBegin")
667
+ def match_path_begin(self) -> pulumi.Output[Optional[str]]:
668
+ """
669
+ The value to match in the URL beginning path from an incoming request.
670
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
671
+ """
672
+ return pulumi.get(self, "match_path_begin")
673
+
550
674
  @property
551
675
  @pulumi.getter(name="matchSni")
552
676
  def match_sni(self) -> pulumi.Output[Optional[str]]:
553
677
  """
554
678
  The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.
555
- Only one of `match_sni` and `match_host_header` should be specified.
679
+ Only one of `match_sni`, `match_host_header` and `match_path_begin` should be specified.
556
680
 
557
681
  > **Important:** This field should be set for routes on TCP Load Balancers.
558
682
  """
@@ -39,6 +39,8 @@ __all__ = [
39
39
  'FrontendAclActionRedirectArgsDict',
40
40
  'FrontendAclMatchArgs',
41
41
  'FrontendAclMatchArgsDict',
42
+ 'LoadBalancerPrivateIpArgs',
43
+ 'LoadBalancerPrivateIpArgsDict',
42
44
  'LoadBalancerPrivateNetworkArgs',
43
45
  'LoadBalancerPrivateNetworkArgsDict',
44
46
  ]
@@ -959,6 +961,58 @@ class FrontendAclMatchArgs:
959
961
  pulumi.set(self, "ip_subnets", value)
960
962
 
961
963
 
964
+ if not MYPY:
965
+ class LoadBalancerPrivateIpArgsDict(TypedDict):
966
+ address: NotRequired[pulumi.Input[str]]
967
+ """
968
+ The private IP address.
969
+ """
970
+ id: NotRequired[pulumi.Input[str]]
971
+ """
972
+ The ID of the IP address resource.
973
+ """
974
+ elif False:
975
+ LoadBalancerPrivateIpArgsDict: TypeAlias = Mapping[str, Any]
976
+
977
+ @pulumi.input_type
978
+ class LoadBalancerPrivateIpArgs:
979
+ def __init__(__self__, *,
980
+ address: Optional[pulumi.Input[str]] = None,
981
+ id: Optional[pulumi.Input[str]] = None):
982
+ """
983
+ :param pulumi.Input[str] address: The private IP address.
984
+ :param pulumi.Input[str] id: The ID of the IP address resource.
985
+ """
986
+ if address is not None:
987
+ pulumi.set(__self__, "address", address)
988
+ if id is not None:
989
+ pulumi.set(__self__, "id", id)
990
+
991
+ @property
992
+ @pulumi.getter
993
+ def address(self) -> Optional[pulumi.Input[str]]:
994
+ """
995
+ The private IP address.
996
+ """
997
+ return pulumi.get(self, "address")
998
+
999
+ @address.setter
1000
+ def address(self, value: Optional[pulumi.Input[str]]):
1001
+ pulumi.set(self, "address", value)
1002
+
1003
+ @property
1004
+ @pulumi.getter
1005
+ def id(self) -> Optional[pulumi.Input[str]]:
1006
+ """
1007
+ The ID of the IP address resource.
1008
+ """
1009
+ return pulumi.get(self, "id")
1010
+
1011
+ @id.setter
1012
+ def id(self, value: Optional[pulumi.Input[str]]):
1013
+ pulumi.set(self, "id", value)
1014
+
1015
+
962
1016
  if not MYPY:
963
1017
  class LoadBalancerPrivateNetworkArgsDict(TypedDict):
964
1018
  private_network_id: pulumi.Input[str]
@@ -27,7 +27,7 @@ class GetLoadBalancerResult:
27
27
  """
28
28
  A collection of values returned by getLoadBalancer.
29
29
  """
30
- def __init__(__self__, assign_flexible_ip=None, assign_flexible_ipv6=None, description=None, id=None, ip_address=None, ip_id=None, ip_ids=None, ipv6_address=None, lb_id=None, name=None, organization_id=None, private_networks=None, project_id=None, region=None, release_ip=None, ssl_compatibility_level=None, tags=None, type=None, zone=None):
30
+ def __init__(__self__, assign_flexible_ip=None, assign_flexible_ipv6=None, description=None, id=None, ip_address=None, ip_id=None, ip_ids=None, ipv6_address=None, lb_id=None, name=None, organization_id=None, private_ips=None, private_networks=None, project_id=None, region=None, release_ip=None, ssl_compatibility_level=None, tags=None, type=None, zone=None):
31
31
  if assign_flexible_ip and not isinstance(assign_flexible_ip, bool):
32
32
  raise TypeError("Expected argument 'assign_flexible_ip' to be a bool")
33
33
  pulumi.set(__self__, "assign_flexible_ip", assign_flexible_ip)
@@ -61,6 +61,9 @@ class GetLoadBalancerResult:
61
61
  if organization_id and not isinstance(organization_id, str):
62
62
  raise TypeError("Expected argument 'organization_id' to be a str")
63
63
  pulumi.set(__self__, "organization_id", organization_id)
64
+ if private_ips and not isinstance(private_ips, list):
65
+ raise TypeError("Expected argument 'private_ips' to be a list")
66
+ pulumi.set(__self__, "private_ips", private_ips)
64
67
  if private_networks and not isinstance(private_networks, list):
65
68
  raise TypeError("Expected argument 'private_networks' to be a list")
66
69
  pulumi.set(__self__, "private_networks", private_networks)
@@ -147,6 +150,11 @@ class GetLoadBalancerResult:
147
150
  def organization_id(self) -> str:
148
151
  return pulumi.get(self, "organization_id")
149
152
 
153
+ @property
154
+ @pulumi.getter(name="privateIps")
155
+ def private_ips(self) -> Sequence['outputs.GetLoadBalancerPrivateIpResult']:
156
+ return pulumi.get(self, "private_ips")
157
+
150
158
  @property
151
159
  @pulumi.getter(name="privateNetworks")
152
160
  def private_networks(self) -> Sequence['outputs.GetLoadBalancerPrivateNetworkResult']:
@@ -214,6 +222,7 @@ class AwaitableGetLoadBalancerResult(GetLoadBalancerResult):
214
222
  lb_id=self.lb_id,
215
223
  name=self.name,
216
224
  organization_id=self.organization_id,
225
+ private_ips=self.private_ips,
217
226
  private_networks=self.private_networks,
218
227
  project_id=self.project_id,
219
228
  region=self.region,
@@ -273,6 +282,7 @@ def get_load_balancer(lb_id: Optional[str] = None,
273
282
  lb_id=pulumi.get(__ret__, 'lb_id'),
274
283
  name=pulumi.get(__ret__, 'name'),
275
284
  organization_id=pulumi.get(__ret__, 'organization_id'),
285
+ private_ips=pulumi.get(__ret__, 'private_ips'),
276
286
  private_networks=pulumi.get(__ret__, 'private_networks'),
277
287
  project_id=pulumi.get(__ret__, 'project_id'),
278
288
  region=pulumi.get(__ret__, 'region'),
@@ -329,6 +339,7 @@ def get_load_balancer_output(lb_id: Optional[pulumi.Input[Optional[str]]] = None
329
339
  lb_id=pulumi.get(__response__, 'lb_id'),
330
340
  name=pulumi.get(__response__, 'name'),
331
341
  organization_id=pulumi.get(__response__, 'organization_id'),
342
+ private_ips=pulumi.get(__response__, 'private_ips'),
332
343
  private_networks=pulumi.get(__response__, 'private_networks'),
333
344
  project_id=pulumi.get(__response__, 'project_id'),
334
345
  region=pulumi.get(__response__, 'region'),
@@ -26,7 +26,7 @@ class GetRouteResult:
26
26
  """
27
27
  A collection of values returned by getRoute.
28
28
  """
29
- def __init__(__self__, backend_id=None, created_at=None, frontend_id=None, id=None, match_host_header=None, match_sni=None, match_subdomains=None, route_id=None, updated_at=None):
29
+ def __init__(__self__, backend_id=None, created_at=None, frontend_id=None, id=None, match_host_header=None, match_path_begin=None, match_sni=None, match_subdomains=None, route_id=None, updated_at=None):
30
30
  if backend_id and not isinstance(backend_id, str):
31
31
  raise TypeError("Expected argument 'backend_id' to be a str")
32
32
  pulumi.set(__self__, "backend_id", backend_id)
@@ -42,6 +42,9 @@ class GetRouteResult:
42
42
  if match_host_header and not isinstance(match_host_header, str):
43
43
  raise TypeError("Expected argument 'match_host_header' to be a str")
44
44
  pulumi.set(__self__, "match_host_header", match_host_header)
45
+ if match_path_begin and not isinstance(match_path_begin, str):
46
+ raise TypeError("Expected argument 'match_path_begin' to be a str")
47
+ pulumi.set(__self__, "match_path_begin", match_path_begin)
45
48
  if match_sni and not isinstance(match_sni, str):
46
49
  raise TypeError("Expected argument 'match_sni' to be a str")
47
50
  pulumi.set(__self__, "match_sni", match_sni)
@@ -83,6 +86,11 @@ class GetRouteResult:
83
86
  def match_host_header(self) -> str:
84
87
  return pulumi.get(self, "match_host_header")
85
88
 
89
+ @property
90
+ @pulumi.getter(name="matchPathBegin")
91
+ def match_path_begin(self) -> str:
92
+ return pulumi.get(self, "match_path_begin")
93
+
86
94
  @property
87
95
  @pulumi.getter(name="matchSni")
88
96
  def match_sni(self) -> str:
@@ -115,6 +123,7 @@ class AwaitableGetRouteResult(GetRouteResult):
115
123
  frontend_id=self.frontend_id,
116
124
  id=self.id,
117
125
  match_host_header=self.match_host_header,
126
+ match_path_begin=self.match_path_begin,
118
127
  match_sni=self.match_sni,
119
128
  match_subdomains=self.match_subdomains,
120
129
  route_id=self.route_id,
@@ -170,6 +179,7 @@ def get_route(route_id: Optional[str] = None,
170
179
  frontend_id=pulumi.get(__ret__, 'frontend_id'),
171
180
  id=pulumi.get(__ret__, 'id'),
172
181
  match_host_header=pulumi.get(__ret__, 'match_host_header'),
182
+ match_path_begin=pulumi.get(__ret__, 'match_path_begin'),
173
183
  match_sni=pulumi.get(__ret__, 'match_sni'),
174
184
  match_subdomains=pulumi.get(__ret__, 'match_subdomains'),
175
185
  route_id=pulumi.get(__ret__, 'route_id'),
@@ -222,6 +232,7 @@ def get_route_output(route_id: Optional[pulumi.Input[str]] = None,
222
232
  frontend_id=pulumi.get(__response__, 'frontend_id'),
223
233
  id=pulumi.get(__response__, 'id'),
224
234
  match_host_header=pulumi.get(__response__, 'match_host_header'),
235
+ match_path_begin=pulumi.get(__response__, 'match_path_begin'),
225
236
  match_sni=pulumi.get(__response__, 'match_sni'),
226
237
  match_subdomains=pulumi.get(__response__, 'match_subdomains'),
227
238
  route_id=pulumi.get(__response__, 'route_id'),
@@ -261,6 +261,7 @@ class _LoadBalancerState:
261
261
  ipv6_address: Optional[pulumi.Input[str]] = None,
262
262
  name: Optional[pulumi.Input[str]] = None,
263
263
  organization_id: Optional[pulumi.Input[str]] = None,
264
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerPrivateIpArgs']]]] = None,
264
265
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerPrivateNetworkArgs']]]] = None,
265
266
  project_id: Optional[pulumi.Input[str]] = None,
266
267
  region: Optional[pulumi.Input[str]] = None,
@@ -284,6 +285,7 @@ class _LoadBalancerState:
284
285
  :param pulumi.Input[str] ipv6_address: The Load Balancer public IPv6 address.
285
286
  :param pulumi.Input[str] name: The name of the Load Balancer.
286
287
  :param pulumi.Input[str] organization_id: The ID of the Organization ID the Load Balancer is associated with.
288
+ :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerPrivateIpArgs']]] private_ips: The list of private IPv4 and IPv6 addresses associated with the resource.
287
289
  :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerPrivateNetworkArgs']]] private_networks: List of private network to connect with your load balancer.
288
290
  :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Load Balancer is associated with.
289
291
  :param pulumi.Input[str] region: The region of the resource
@@ -314,6 +316,8 @@ class _LoadBalancerState:
314
316
  pulumi.set(__self__, "name", name)
315
317
  if organization_id is not None:
316
318
  pulumi.set(__self__, "organization_id", organization_id)
319
+ if private_ips is not None:
320
+ pulumi.set(__self__, "private_ips", private_ips)
317
321
  if private_networks is not None:
318
322
  pulumi.set(__self__, "private_networks", private_networks)
319
323
  if project_id is not None:
@@ -447,6 +451,18 @@ class _LoadBalancerState:
447
451
  def organization_id(self, value: Optional[pulumi.Input[str]]):
448
452
  pulumi.set(self, "organization_id", value)
449
453
 
454
+ @property
455
+ @pulumi.getter(name="privateIps")
456
+ def private_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerPrivateIpArgs']]]]:
457
+ """
458
+ The list of private IPv4 and IPv6 addresses associated with the resource.
459
+ """
460
+ return pulumi.get(self, "private_ips")
461
+
462
+ @private_ips.setter
463
+ def private_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerPrivateIpArgs']]]]):
464
+ pulumi.set(self, "private_ips", value)
465
+
450
466
  @property
451
467
  @pulumi.getter(name="privateNetworks")
452
468
  def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerPrivateNetworkArgs']]]]:
@@ -837,6 +853,7 @@ class LoadBalancer(pulumi.CustomResource):
837
853
  __props__.__dict__["ip_address"] = None
838
854
  __props__.__dict__["ipv6_address"] = None
839
855
  __props__.__dict__["organization_id"] = None
856
+ __props__.__dict__["private_ips"] = None
840
857
  __props__.__dict__["region"] = None
841
858
  alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/loadbalancer:Loadbalancer")])
842
859
  opts = pulumi.ResourceOptions.merge(opts, alias_opts)
@@ -859,6 +876,7 @@ class LoadBalancer(pulumi.CustomResource):
859
876
  ipv6_address: Optional[pulumi.Input[str]] = None,
860
877
  name: Optional[pulumi.Input[str]] = None,
861
878
  organization_id: Optional[pulumi.Input[str]] = None,
879
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerPrivateIpArgs', 'LoadBalancerPrivateIpArgsDict']]]]] = None,
862
880
  private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerPrivateNetworkArgs', 'LoadBalancerPrivateNetworkArgsDict']]]]] = None,
863
881
  project_id: Optional[pulumi.Input[str]] = None,
864
882
  region: Optional[pulumi.Input[str]] = None,
@@ -887,6 +905,7 @@ class LoadBalancer(pulumi.CustomResource):
887
905
  :param pulumi.Input[str] ipv6_address: The Load Balancer public IPv6 address.
888
906
  :param pulumi.Input[str] name: The name of the Load Balancer.
889
907
  :param pulumi.Input[str] organization_id: The ID of the Organization ID the Load Balancer is associated with.
908
+ :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerPrivateIpArgs', 'LoadBalancerPrivateIpArgsDict']]]] private_ips: The list of private IPv4 and IPv6 addresses associated with the resource.
890
909
  :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerPrivateNetworkArgs', 'LoadBalancerPrivateNetworkArgsDict']]]] private_networks: List of private network to connect with your load balancer.
891
910
  :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Load Balancer is associated with.
892
911
  :param pulumi.Input[str] region: The region of the resource
@@ -909,6 +928,7 @@ class LoadBalancer(pulumi.CustomResource):
909
928
  __props__.__dict__["ipv6_address"] = ipv6_address
910
929
  __props__.__dict__["name"] = name
911
930
  __props__.__dict__["organization_id"] = organization_id
931
+ __props__.__dict__["private_ips"] = private_ips
912
932
  __props__.__dict__["private_networks"] = private_networks
913
933
  __props__.__dict__["project_id"] = project_id
914
934
  __props__.__dict__["region"] = region
@@ -996,6 +1016,14 @@ class LoadBalancer(pulumi.CustomResource):
996
1016
  """
997
1017
  return pulumi.get(self, "organization_id")
998
1018
 
1019
+ @property
1020
+ @pulumi.getter(name="privateIps")
1021
+ def private_ips(self) -> pulumi.Output[Sequence['outputs.LoadBalancerPrivateIp']]:
1022
+ """
1023
+ The list of private IPv4 and IPv6 addresses associated with the resource.
1024
+ """
1025
+ return pulumi.get(self, "private_ips")
1026
+
999
1027
  @property
1000
1028
  @pulumi.getter(name="privateNetworks")
1001
1029
  def private_networks(self) -> pulumi.Output[Optional[Sequence['outputs.LoadBalancerPrivateNetwork']]]: