pulumiverse-scaleway 1.27.1__py3-none-any.whl → 1.28.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 (73) hide show
  1. pulumiverse_scaleway/__init__.py +16 -0
  2. pulumiverse_scaleway/_inputs.py +498 -6
  3. pulumiverse_scaleway/baremetal_server.py +48 -258
  4. pulumiverse_scaleway/database_instance.py +42 -21
  5. pulumiverse_scaleway/databases/_inputs.py +54 -0
  6. pulumiverse_scaleway/databases/get_instance.py +12 -1
  7. pulumiverse_scaleway/databases/instance.py +42 -21
  8. pulumiverse_scaleway/databases/outputs.py +62 -0
  9. pulumiverse_scaleway/databases/snapshot.py +2 -2
  10. pulumiverse_scaleway/elasticmetal/_inputs.py +74 -0
  11. pulumiverse_scaleway/elasticmetal/get_server.py +12 -1
  12. pulumiverse_scaleway/elasticmetal/outputs.py +87 -0
  13. pulumiverse_scaleway/elasticmetal/server.py +48 -258
  14. pulumiverse_scaleway/get_baremetal_server.py +12 -1
  15. pulumiverse_scaleway/get_cockpit_plan.py +2 -38
  16. pulumiverse_scaleway/get_database_instance.py +12 -1
  17. pulumiverse_scaleway/get_instance_private_nic.py +13 -1
  18. pulumiverse_scaleway/get_instance_server.py +12 -1
  19. pulumiverse_scaleway/get_lb_route.py +12 -1
  20. pulumiverse_scaleway/get_loadbalancer.py +12 -1
  21. pulumiverse_scaleway/get_redis_cluster.py +12 -1
  22. pulumiverse_scaleway/get_vpc_gateway_network.py +12 -1
  23. pulumiverse_scaleway/inference/__init__.py +2 -0
  24. pulumiverse_scaleway/inference/_inputs.py +128 -0
  25. pulumiverse_scaleway/inference/deployment.py +70 -55
  26. pulumiverse_scaleway/inference/get_model.py +299 -0
  27. pulumiverse_scaleway/inference/model.py +683 -0
  28. pulumiverse_scaleway/inference/outputs.py +184 -0
  29. pulumiverse_scaleway/inference_deployment.py +70 -55
  30. pulumiverse_scaleway/instance/_inputs.py +108 -0
  31. pulumiverse_scaleway/instance/get_private_nic.py +13 -1
  32. pulumiverse_scaleway/instance/get_server.py +12 -1
  33. pulumiverse_scaleway/instance/outputs.py +124 -0
  34. pulumiverse_scaleway/instance/private_nic.py +30 -0
  35. pulumiverse_scaleway/instance/server.py +28 -0
  36. pulumiverse_scaleway/instance_private_nic.py +30 -0
  37. pulumiverse_scaleway/instance_server.py +28 -0
  38. pulumiverse_scaleway/kubernetes/__init__.py +1 -0
  39. pulumiverse_scaleway/kubernetes/_inputs.py +203 -0
  40. pulumiverse_scaleway/kubernetes/acl.py +446 -0
  41. pulumiverse_scaleway/kubernetes/outputs.py +195 -1
  42. pulumiverse_scaleway/loadbalancer.py +28 -0
  43. pulumiverse_scaleway/loadbalancer_route.py +138 -14
  44. pulumiverse_scaleway/loadbalancers/_inputs.py +54 -0
  45. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +12 -1
  46. pulumiverse_scaleway/loadbalancers/get_route.py +12 -1
  47. pulumiverse_scaleway/loadbalancers/load_balancer.py +28 -0
  48. pulumiverse_scaleway/loadbalancers/outputs.py +62 -0
  49. pulumiverse_scaleway/loadbalancers/route.py +138 -14
  50. pulumiverse_scaleway/mnq/sns_credentials.py +7 -7
  51. pulumiverse_scaleway/mnq/sqs_credentials.py +7 -7
  52. pulumiverse_scaleway/mnq_sns_credentials.py +7 -7
  53. pulumiverse_scaleway/mnq_sqs_credentials.py +7 -7
  54. pulumiverse_scaleway/network/_inputs.py +54 -0
  55. pulumiverse_scaleway/network/gateway_network.py +28 -0
  56. pulumiverse_scaleway/network/get_gateway_network.py +12 -1
  57. pulumiverse_scaleway/network/outputs.py +62 -0
  58. pulumiverse_scaleway/network/route.py +90 -2
  59. pulumiverse_scaleway/observability/get_plan.py +2 -38
  60. pulumiverse_scaleway/outputs.py +574 -5
  61. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  62. pulumiverse_scaleway/rdb_snapshot.py +2 -2
  63. pulumiverse_scaleway/redis/_inputs.py +60 -6
  64. pulumiverse_scaleway/redis/cluster.py +28 -0
  65. pulumiverse_scaleway/redis/get_cluster.py +12 -1
  66. pulumiverse_scaleway/redis/outputs.py +66 -4
  67. pulumiverse_scaleway/redis_cluster.py +28 -0
  68. pulumiverse_scaleway/vpc_gateway_network.py +28 -0
  69. pulumiverse_scaleway/vpc_route.py +90 -2
  70. {pulumiverse_scaleway-1.27.1.dist-info → pulumiverse_scaleway-1.28.0.dist-info}/METADATA +1 -1
  71. {pulumiverse_scaleway-1.27.1.dist-info → pulumiverse_scaleway-1.28.0.dist-info}/RECORD +73 -70
  72. {pulumiverse_scaleway-1.27.1.dist-info → pulumiverse_scaleway-1.28.0.dist-info}/WHEEL +1 -1
  73. {pulumiverse_scaleway-1.27.1.dist-info → pulumiverse_scaleway-1.28.0.dist-info}/top_level.txt +0 -0
@@ -21,7 +21,7 @@ __all__ = ['DeploymentArgs', 'Deployment']
21
21
  @pulumi.input_type
22
22
  class DeploymentArgs:
23
23
  def __init__(__self__, *,
24
- model_name: pulumi.Input[str],
24
+ model_id: pulumi.Input[str],
25
25
  node_type: pulumi.Input[str],
26
26
  accept_eula: Optional[pulumi.Input[bool]] = None,
27
27
  max_size: Optional[pulumi.Input[int]] = None,
@@ -30,11 +30,12 @@ class DeploymentArgs:
30
30
  private_endpoint: Optional[pulumi.Input['DeploymentPrivateEndpointArgs']] = None,
31
31
  project_id: Optional[pulumi.Input[str]] = None,
32
32
  public_endpoint: Optional[pulumi.Input['DeploymentPublicEndpointArgs']] = None,
33
+ quantization: Optional[pulumi.Input[int]] = None,
33
34
  region: Optional[pulumi.Input[str]] = None,
34
35
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
35
36
  """
36
37
  The set of arguments for constructing a Deployment resource.
37
- :param pulumi.Input[str] model_name: The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
38
+ :param pulumi.Input[str] model_id: The model id used for the deployment.
38
39
  :param pulumi.Input[str] node_type: The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
39
40
  :param pulumi.Input[bool] accept_eula: Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
40
41
  :param pulumi.Input[int] max_size: The maximum size of the pool.
@@ -43,10 +44,11 @@ class DeploymentArgs:
43
44
  :param pulumi.Input['DeploymentPrivateEndpointArgs'] private_endpoint: Configuration of the deployment's private endpoint.
44
45
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the deployment is associated with.
45
46
  :param pulumi.Input['DeploymentPublicEndpointArgs'] public_endpoint: Configuration of the deployment's public endpoint.
47
+ :param pulumi.Input[int] quantization: The number of bits each model parameter should be quantized to
46
48
  :param pulumi.Input[str] region: `region`) The region in which the deployment is created.
47
49
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the deployment.
48
50
  """
49
- pulumi.set(__self__, "model_name", model_name)
51
+ pulumi.set(__self__, "model_id", model_id)
50
52
  pulumi.set(__self__, "node_type", node_type)
51
53
  if accept_eula is not None:
52
54
  pulumi.set(__self__, "accept_eula", accept_eula)
@@ -62,22 +64,24 @@ class DeploymentArgs:
62
64
  pulumi.set(__self__, "project_id", project_id)
63
65
  if public_endpoint is not None:
64
66
  pulumi.set(__self__, "public_endpoint", public_endpoint)
67
+ if quantization is not None:
68
+ pulumi.set(__self__, "quantization", quantization)
65
69
  if region is not None:
66
70
  pulumi.set(__self__, "region", region)
67
71
  if tags is not None:
68
72
  pulumi.set(__self__, "tags", tags)
69
73
 
70
74
  @property
71
- @pulumi.getter(name="modelName")
72
- def model_name(self) -> pulumi.Input[str]:
75
+ @pulumi.getter(name="modelId")
76
+ def model_id(self) -> pulumi.Input[str]:
73
77
  """
74
- The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
78
+ The model id used for the deployment.
75
79
  """
76
- return pulumi.get(self, "model_name")
80
+ return pulumi.get(self, "model_id")
77
81
 
78
- @model_name.setter
79
- def model_name(self, value: pulumi.Input[str]):
80
- pulumi.set(self, "model_name", value)
82
+ @model_id.setter
83
+ def model_id(self, value: pulumi.Input[str]):
84
+ pulumi.set(self, "model_id", value)
81
85
 
82
86
  @property
83
87
  @pulumi.getter(name="nodeType")
@@ -175,6 +179,18 @@ class DeploymentArgs:
175
179
  def public_endpoint(self, value: Optional[pulumi.Input['DeploymentPublicEndpointArgs']]):
176
180
  pulumi.set(self, "public_endpoint", value)
177
181
 
182
+ @property
183
+ @pulumi.getter
184
+ def quantization(self) -> Optional[pulumi.Input[int]]:
185
+ """
186
+ The number of bits each model parameter should be quantized to
187
+ """
188
+ return pulumi.get(self, "quantization")
189
+
190
+ @quantization.setter
191
+ def quantization(self, value: Optional[pulumi.Input[int]]):
192
+ pulumi.set(self, "quantization", value)
193
+
178
194
  @property
179
195
  @pulumi.getter
180
196
  def region(self) -> Optional[pulumi.Input[str]]:
@@ -214,6 +230,7 @@ class _DeploymentState:
214
230
  private_endpoint: Optional[pulumi.Input['DeploymentPrivateEndpointArgs']] = None,
215
231
  project_id: Optional[pulumi.Input[str]] = None,
216
232
  public_endpoint: Optional[pulumi.Input['DeploymentPublicEndpointArgs']] = None,
233
+ quantization: Optional[pulumi.Input[int]] = None,
217
234
  region: Optional[pulumi.Input[str]] = None,
218
235
  size: Optional[pulumi.Input[int]] = None,
219
236
  status: Optional[pulumi.Input[str]] = None,
@@ -226,12 +243,13 @@ class _DeploymentState:
226
243
  :param pulumi.Input[int] max_size: The maximum size of the pool.
227
244
  :param pulumi.Input[int] min_size: The minimum size of the pool.
228
245
  :param pulumi.Input[str] model_id: The model id used for the deployment.
229
- :param pulumi.Input[str] model_name: The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
246
+ :param pulumi.Input[str] model_name: The model name used for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
230
247
  :param pulumi.Input[str] name: The deployment name.
231
248
  :param pulumi.Input[str] node_type: The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
232
249
  :param pulumi.Input['DeploymentPrivateEndpointArgs'] private_endpoint: Configuration of the deployment's private endpoint.
233
250
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the deployment is associated with.
234
251
  :param pulumi.Input['DeploymentPublicEndpointArgs'] public_endpoint: Configuration of the deployment's public endpoint.
252
+ :param pulumi.Input[int] quantization: The number of bits each model parameter should be quantized to
235
253
  :param pulumi.Input[str] region: `region`) The region in which the deployment is created.
236
254
  :param pulumi.Input[int] size: The size of the pool.
237
255
  :param pulumi.Input[str] status: The status of the deployment.
@@ -260,6 +278,8 @@ class _DeploymentState:
260
278
  pulumi.set(__self__, "project_id", project_id)
261
279
  if public_endpoint is not None:
262
280
  pulumi.set(__self__, "public_endpoint", public_endpoint)
281
+ if quantization is not None:
282
+ pulumi.set(__self__, "quantization", quantization)
263
283
  if region is not None:
264
284
  pulumi.set(__self__, "region", region)
265
285
  if size is not None:
@@ -335,7 +355,7 @@ class _DeploymentState:
335
355
  @pulumi.getter(name="modelName")
336
356
  def model_name(self) -> Optional[pulumi.Input[str]]:
337
357
  """
338
- The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
358
+ The model name used for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
339
359
  """
340
360
  return pulumi.get(self, "model_name")
341
361
 
@@ -403,6 +423,18 @@ class _DeploymentState:
403
423
  def public_endpoint(self, value: Optional[pulumi.Input['DeploymentPublicEndpointArgs']]):
404
424
  pulumi.set(self, "public_endpoint", value)
405
425
 
426
+ @property
427
+ @pulumi.getter
428
+ def quantization(self) -> Optional[pulumi.Input[int]]:
429
+ """
430
+ The number of bits each model parameter should be quantized to
431
+ """
432
+ return pulumi.get(self, "quantization")
433
+
434
+ @quantization.setter
435
+ def quantization(self, value: Optional[pulumi.Input[int]]):
436
+ pulumi.set(self, "quantization", value)
437
+
406
438
  @property
407
439
  @pulumi.getter
408
440
  def region(self) -> Optional[pulumi.Input[str]]:
@@ -472,12 +504,13 @@ class Deployment(pulumi.CustomResource):
472
504
  accept_eula: Optional[pulumi.Input[bool]] = None,
473
505
  max_size: Optional[pulumi.Input[int]] = None,
474
506
  min_size: Optional[pulumi.Input[int]] = None,
475
- model_name: Optional[pulumi.Input[str]] = None,
507
+ model_id: Optional[pulumi.Input[str]] = None,
476
508
  name: Optional[pulumi.Input[str]] = None,
477
509
  node_type: Optional[pulumi.Input[str]] = None,
478
510
  private_endpoint: Optional[pulumi.Input[Union['DeploymentPrivateEndpointArgs', 'DeploymentPrivateEndpointArgsDict']]] = None,
479
511
  project_id: Optional[pulumi.Input[str]] = None,
480
512
  public_endpoint: Optional[pulumi.Input[Union['DeploymentPublicEndpointArgs', 'DeploymentPublicEndpointArgsDict']]] = None,
513
+ quantization: Optional[pulumi.Input[int]] = None,
481
514
  region: Optional[pulumi.Input[str]] = None,
482
515
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
483
516
  __props__=None):
@@ -487,22 +520,6 @@ class Deployment(pulumi.CustomResource):
487
520
 
488
521
  ## Example Usage
489
522
 
490
- ### Basic
491
-
492
- ```python
493
- import pulumi
494
- import pulumiverse_scaleway as scaleway
495
-
496
- deployment = scaleway.inference.Deployment("deployment",
497
- name="tf-inference-deployment",
498
- node_type="L4",
499
- model_name="meta/llama-3.1-8b-instruct:fp8",
500
- public_endpoint={
501
- "is_enabled": True,
502
- },
503
- accept_eula=True)
504
- ```
505
-
506
523
  ## Import
507
524
 
508
525
  Functions can be imported using, `{region}/{id}`, as shown below:
@@ -518,12 +535,13 @@ class Deployment(pulumi.CustomResource):
518
535
  :param pulumi.Input[bool] accept_eula: Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
519
536
  :param pulumi.Input[int] max_size: The maximum size of the pool.
520
537
  :param pulumi.Input[int] min_size: The minimum size of the pool.
521
- :param pulumi.Input[str] model_name: The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
538
+ :param pulumi.Input[str] model_id: The model id used for the deployment.
522
539
  :param pulumi.Input[str] name: The deployment name.
523
540
  :param pulumi.Input[str] node_type: The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
524
541
  :param pulumi.Input[Union['DeploymentPrivateEndpointArgs', 'DeploymentPrivateEndpointArgsDict']] private_endpoint: Configuration of the deployment's private endpoint.
525
542
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the deployment is associated with.
526
543
  :param pulumi.Input[Union['DeploymentPublicEndpointArgs', 'DeploymentPublicEndpointArgsDict']] public_endpoint: Configuration of the deployment's public endpoint.
544
+ :param pulumi.Input[int] quantization: The number of bits each model parameter should be quantized to
527
545
  :param pulumi.Input[str] region: `region`) The region in which the deployment is created.
528
546
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the deployment.
529
547
  """
@@ -539,22 +557,6 @@ class Deployment(pulumi.CustomResource):
539
557
 
540
558
  ## Example Usage
541
559
 
542
- ### Basic
543
-
544
- ```python
545
- import pulumi
546
- import pulumiverse_scaleway as scaleway
547
-
548
- deployment = scaleway.inference.Deployment("deployment",
549
- name="tf-inference-deployment",
550
- node_type="L4",
551
- model_name="meta/llama-3.1-8b-instruct:fp8",
552
- public_endpoint={
553
- "is_enabled": True,
554
- },
555
- accept_eula=True)
556
- ```
557
-
558
560
  ## Import
559
561
 
560
562
  Functions can be imported using, `{region}/{id}`, as shown below:
@@ -583,12 +585,13 @@ class Deployment(pulumi.CustomResource):
583
585
  accept_eula: Optional[pulumi.Input[bool]] = None,
584
586
  max_size: Optional[pulumi.Input[int]] = None,
585
587
  min_size: Optional[pulumi.Input[int]] = None,
586
- model_name: Optional[pulumi.Input[str]] = None,
588
+ model_id: Optional[pulumi.Input[str]] = None,
587
589
  name: Optional[pulumi.Input[str]] = None,
588
590
  node_type: Optional[pulumi.Input[str]] = None,
589
591
  private_endpoint: Optional[pulumi.Input[Union['DeploymentPrivateEndpointArgs', 'DeploymentPrivateEndpointArgsDict']]] = None,
590
592
  project_id: Optional[pulumi.Input[str]] = None,
591
593
  public_endpoint: Optional[pulumi.Input[Union['DeploymentPublicEndpointArgs', 'DeploymentPublicEndpointArgsDict']]] = None,
594
+ quantization: Optional[pulumi.Input[int]] = None,
592
595
  region: Optional[pulumi.Input[str]] = None,
593
596
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
594
597
  __props__=None):
@@ -603,9 +606,9 @@ class Deployment(pulumi.CustomResource):
603
606
  __props__.__dict__["accept_eula"] = accept_eula
604
607
  __props__.__dict__["max_size"] = max_size
605
608
  __props__.__dict__["min_size"] = min_size
606
- if model_name is None and not opts.urn:
607
- raise TypeError("Missing required property 'model_name'")
608
- __props__.__dict__["model_name"] = model_name
609
+ if model_id is None and not opts.urn:
610
+ raise TypeError("Missing required property 'model_id'")
611
+ __props__.__dict__["model_id"] = model_id
609
612
  __props__.__dict__["name"] = name
610
613
  if node_type is None and not opts.urn:
611
614
  raise TypeError("Missing required property 'node_type'")
@@ -613,10 +616,11 @@ class Deployment(pulumi.CustomResource):
613
616
  __props__.__dict__["private_endpoint"] = private_endpoint
614
617
  __props__.__dict__["project_id"] = project_id
615
618
  __props__.__dict__["public_endpoint"] = public_endpoint
619
+ __props__.__dict__["quantization"] = quantization
616
620
  __props__.__dict__["region"] = region
617
621
  __props__.__dict__["tags"] = tags
618
622
  __props__.__dict__["created_at"] = None
619
- __props__.__dict__["model_id"] = None
623
+ __props__.__dict__["model_name"] = None
620
624
  __props__.__dict__["size"] = None
621
625
  __props__.__dict__["status"] = None
622
626
  __props__.__dict__["updated_at"] = None
@@ -643,6 +647,7 @@ class Deployment(pulumi.CustomResource):
643
647
  private_endpoint: Optional[pulumi.Input[Union['DeploymentPrivateEndpointArgs', 'DeploymentPrivateEndpointArgsDict']]] = None,
644
648
  project_id: Optional[pulumi.Input[str]] = None,
645
649
  public_endpoint: Optional[pulumi.Input[Union['DeploymentPublicEndpointArgs', 'DeploymentPublicEndpointArgsDict']]] = None,
650
+ quantization: Optional[pulumi.Input[int]] = None,
646
651
  region: Optional[pulumi.Input[str]] = None,
647
652
  size: Optional[pulumi.Input[int]] = None,
648
653
  status: Optional[pulumi.Input[str]] = None,
@@ -660,12 +665,13 @@ class Deployment(pulumi.CustomResource):
660
665
  :param pulumi.Input[int] max_size: The maximum size of the pool.
661
666
  :param pulumi.Input[int] min_size: The minimum size of the pool.
662
667
  :param pulumi.Input[str] model_id: The model id used for the deployment.
663
- :param pulumi.Input[str] model_name: The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
668
+ :param pulumi.Input[str] model_name: The model name used for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
664
669
  :param pulumi.Input[str] name: The deployment name.
665
670
  :param pulumi.Input[str] node_type: The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
666
671
  :param pulumi.Input[Union['DeploymentPrivateEndpointArgs', 'DeploymentPrivateEndpointArgsDict']] private_endpoint: Configuration of the deployment's private endpoint.
667
672
  :param pulumi.Input[str] project_id: `project_id`) The ID of the project the deployment is associated with.
668
673
  :param pulumi.Input[Union['DeploymentPublicEndpointArgs', 'DeploymentPublicEndpointArgsDict']] public_endpoint: Configuration of the deployment's public endpoint.
674
+ :param pulumi.Input[int] quantization: The number of bits each model parameter should be quantized to
669
675
  :param pulumi.Input[str] region: `region`) The region in which the deployment is created.
670
676
  :param pulumi.Input[int] size: The size of the pool.
671
677
  :param pulumi.Input[str] status: The status of the deployment.
@@ -687,6 +693,7 @@ class Deployment(pulumi.CustomResource):
687
693
  __props__.__dict__["private_endpoint"] = private_endpoint
688
694
  __props__.__dict__["project_id"] = project_id
689
695
  __props__.__dict__["public_endpoint"] = public_endpoint
696
+ __props__.__dict__["quantization"] = quantization
690
697
  __props__.__dict__["region"] = region
691
698
  __props__.__dict__["size"] = size
692
699
  __props__.__dict__["status"] = status
@@ -712,7 +719,7 @@ class Deployment(pulumi.CustomResource):
712
719
 
713
720
  @property
714
721
  @pulumi.getter(name="maxSize")
715
- def max_size(self) -> pulumi.Output[int]:
722
+ def max_size(self) -> pulumi.Output[Optional[int]]:
716
723
  """
717
724
  The maximum size of the pool.
718
725
  """
@@ -720,7 +727,7 @@ class Deployment(pulumi.CustomResource):
720
727
 
721
728
  @property
722
729
  @pulumi.getter(name="minSize")
723
- def min_size(self) -> pulumi.Output[int]:
730
+ def min_size(self) -> pulumi.Output[Optional[int]]:
724
731
  """
725
732
  The minimum size of the pool.
726
733
  """
@@ -738,7 +745,7 @@ class Deployment(pulumi.CustomResource):
738
745
  @pulumi.getter(name="modelName")
739
746
  def model_name(self) -> pulumi.Output[str]:
740
747
  """
741
- The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
748
+ The model name used for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
742
749
  """
743
750
  return pulumi.get(self, "model_name")
744
751
 
@@ -782,6 +789,14 @@ class Deployment(pulumi.CustomResource):
782
789
  """
783
790
  return pulumi.get(self, "public_endpoint")
784
791
 
792
+ @property
793
+ @pulumi.getter
794
+ def quantization(self) -> pulumi.Output[Optional[int]]:
795
+ """
796
+ The number of bits each model parameter should be quantized to
797
+ """
798
+ return pulumi.get(self, "quantization")
799
+
785
800
  @property
786
801
  @pulumi.getter
787
802
  def region(self) -> pulumi.Output[str]:
@@ -0,0 +1,299 @@
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
+
18
+ __all__ = [
19
+ 'GetModelResult',
20
+ 'AwaitableGetModelResult',
21
+ 'get_model',
22
+ 'get_model_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetModelResult:
27
+ """
28
+ A collection of values returned by getModel.
29
+ """
30
+ def __init__(__self__, created_at=None, description=None, has_eula=None, id=None, model_id=None, name=None, nodes_supports=None, parameter_size_bits=None, project_id=None, region=None, secret=None, size_bytes=None, status=None, tags=None, updated_at=None, url=None):
31
+ if created_at and not isinstance(created_at, str):
32
+ raise TypeError("Expected argument 'created_at' to be a str")
33
+ pulumi.set(__self__, "created_at", created_at)
34
+ if description and not isinstance(description, str):
35
+ raise TypeError("Expected argument 'description' to be a str")
36
+ pulumi.set(__self__, "description", description)
37
+ if has_eula and not isinstance(has_eula, bool):
38
+ raise TypeError("Expected argument 'has_eula' to be a bool")
39
+ pulumi.set(__self__, "has_eula", has_eula)
40
+ if id and not isinstance(id, str):
41
+ raise TypeError("Expected argument 'id' to be a str")
42
+ pulumi.set(__self__, "id", id)
43
+ if model_id and not isinstance(model_id, str):
44
+ raise TypeError("Expected argument 'model_id' to be a str")
45
+ pulumi.set(__self__, "model_id", model_id)
46
+ if name and not isinstance(name, str):
47
+ raise TypeError("Expected argument 'name' to be a str")
48
+ pulumi.set(__self__, "name", name)
49
+ if nodes_supports and not isinstance(nodes_supports, list):
50
+ raise TypeError("Expected argument 'nodes_supports' to be a list")
51
+ pulumi.set(__self__, "nodes_supports", nodes_supports)
52
+ if parameter_size_bits and not isinstance(parameter_size_bits, int):
53
+ raise TypeError("Expected argument 'parameter_size_bits' to be a int")
54
+ pulumi.set(__self__, "parameter_size_bits", parameter_size_bits)
55
+ if project_id and not isinstance(project_id, str):
56
+ raise TypeError("Expected argument 'project_id' to be a str")
57
+ pulumi.set(__self__, "project_id", project_id)
58
+ if region and not isinstance(region, str):
59
+ raise TypeError("Expected argument 'region' to be a str")
60
+ pulumi.set(__self__, "region", region)
61
+ if secret and not isinstance(secret, str):
62
+ raise TypeError("Expected argument 'secret' to be a str")
63
+ pulumi.set(__self__, "secret", secret)
64
+ if size_bytes and not isinstance(size_bytes, int):
65
+ raise TypeError("Expected argument 'size_bytes' to be a int")
66
+ pulumi.set(__self__, "size_bytes", size_bytes)
67
+ if status and not isinstance(status, str):
68
+ raise TypeError("Expected argument 'status' to be a str")
69
+ pulumi.set(__self__, "status", status)
70
+ if tags and not isinstance(tags, list):
71
+ raise TypeError("Expected argument 'tags' to be a list")
72
+ pulumi.set(__self__, "tags", tags)
73
+ if updated_at and not isinstance(updated_at, str):
74
+ raise TypeError("Expected argument 'updated_at' to be a str")
75
+ pulumi.set(__self__, "updated_at", updated_at)
76
+ if url and not isinstance(url, str):
77
+ raise TypeError("Expected argument 'url' to be a str")
78
+ pulumi.set(__self__, "url", url)
79
+
80
+ @property
81
+ @pulumi.getter(name="createdAt")
82
+ def created_at(self) -> str:
83
+ return pulumi.get(self, "created_at")
84
+
85
+ @property
86
+ @pulumi.getter
87
+ def description(self) -> str:
88
+ """
89
+ A textual description of the model (if available).
90
+ """
91
+ return pulumi.get(self, "description")
92
+
93
+ @property
94
+ @pulumi.getter(name="hasEula")
95
+ def has_eula(self) -> bool:
96
+ """
97
+ Whether the model requires end-user license agreement acceptance before use.
98
+ """
99
+ return pulumi.get(self, "has_eula")
100
+
101
+ @property
102
+ @pulumi.getter
103
+ def id(self) -> str:
104
+ """
105
+ The provider-assigned unique ID for this managed resource.
106
+ """
107
+ return pulumi.get(self, "id")
108
+
109
+ @property
110
+ @pulumi.getter(name="modelId")
111
+ def model_id(self) -> Optional[str]:
112
+ return pulumi.get(self, "model_id")
113
+
114
+ @property
115
+ @pulumi.getter
116
+ def name(self) -> Optional[str]:
117
+ return pulumi.get(self, "name")
118
+
119
+ @property
120
+ @pulumi.getter(name="nodesSupports")
121
+ def nodes_supports(self) -> Sequence['outputs.GetModelNodesSupportResult']:
122
+ """
123
+ List of supported node types and their quantization options. Each entry contains:
124
+ """
125
+ return pulumi.get(self, "nodes_supports")
126
+
127
+ @property
128
+ @pulumi.getter(name="parameterSizeBits")
129
+ def parameter_size_bits(self) -> int:
130
+ """
131
+ Size, in bits, of the model parameters.
132
+ """
133
+ return pulumi.get(self, "parameter_size_bits")
134
+
135
+ @property
136
+ @pulumi.getter(name="projectId")
137
+ def project_id(self) -> str:
138
+ return pulumi.get(self, "project_id")
139
+
140
+ @property
141
+ @pulumi.getter
142
+ def region(self) -> str:
143
+ return pulumi.get(self, "region")
144
+
145
+ @property
146
+ @pulumi.getter
147
+ def secret(self) -> str:
148
+ return pulumi.get(self, "secret")
149
+
150
+ @property
151
+ @pulumi.getter(name="sizeBytes")
152
+ def size_bytes(self) -> int:
153
+ """
154
+ Total size, in bytes, of the model archive.
155
+ """
156
+ return pulumi.get(self, "size_bytes")
157
+
158
+ @property
159
+ @pulumi.getter
160
+ def status(self) -> str:
161
+ """
162
+ The current status of the model (e.g., ready, error, etc.).
163
+ """
164
+ return pulumi.get(self, "status")
165
+
166
+ @property
167
+ @pulumi.getter
168
+ def tags(self) -> Sequence[str]:
169
+ """
170
+ Tags associated with the model.
171
+ """
172
+ return pulumi.get(self, "tags")
173
+
174
+ @property
175
+ @pulumi.getter(name="updatedAt")
176
+ def updated_at(self) -> str:
177
+ return pulumi.get(self, "updated_at")
178
+
179
+ @property
180
+ @pulumi.getter
181
+ def url(self) -> Optional[str]:
182
+ return pulumi.get(self, "url")
183
+
184
+
185
+ class AwaitableGetModelResult(GetModelResult):
186
+ # pylint: disable=using-constant-test
187
+ def __await__(self):
188
+ if False:
189
+ yield self
190
+ return GetModelResult(
191
+ created_at=self.created_at,
192
+ description=self.description,
193
+ has_eula=self.has_eula,
194
+ id=self.id,
195
+ model_id=self.model_id,
196
+ name=self.name,
197
+ nodes_supports=self.nodes_supports,
198
+ parameter_size_bits=self.parameter_size_bits,
199
+ project_id=self.project_id,
200
+ region=self.region,
201
+ secret=self.secret,
202
+ size_bytes=self.size_bytes,
203
+ status=self.status,
204
+ tags=self.tags,
205
+ updated_at=self.updated_at,
206
+ url=self.url)
207
+
208
+
209
+ def get_model(model_id: Optional[str] = None,
210
+ name: Optional[str] = None,
211
+ url: Optional[str] = None,
212
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetModelResult:
213
+ """
214
+ The `inference.Model` data source allows you to retrieve information about an inference model available in the Scaleway Inference API, either by providing the model's `name` or its `model_id`.
215
+
216
+ ## Example Usage
217
+
218
+ ### Basic
219
+
220
+ ```python
221
+ import pulumi
222
+ import pulumi_scaleway as scaleway
223
+
224
+ my_model = scaleway.inference.get_model(name="meta/llama-3.1-8b-instruct:fp8")
225
+ ```
226
+
227
+
228
+ :param str model_id: The ID of the model to retrieve. Must be a valid UUID with locality (i.e., Scaleway's zoned UUID format).
229
+ :param str name: The fully qualified name of the model to look up (e.g., "meta/llama-3.1-8b-instruct:fp8"). The provider will search for a model with an exact name match in the selected region and project.
230
+ """
231
+ __args__ = dict()
232
+ __args__['modelId'] = model_id
233
+ __args__['name'] = name
234
+ __args__['url'] = url
235
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
236
+ __ret__ = pulumi.runtime.invoke('scaleway:inference/getModel:getModel', __args__, opts=opts, typ=GetModelResult).value
237
+
238
+ return AwaitableGetModelResult(
239
+ created_at=pulumi.get(__ret__, 'created_at'),
240
+ description=pulumi.get(__ret__, 'description'),
241
+ has_eula=pulumi.get(__ret__, 'has_eula'),
242
+ id=pulumi.get(__ret__, 'id'),
243
+ model_id=pulumi.get(__ret__, 'model_id'),
244
+ name=pulumi.get(__ret__, 'name'),
245
+ nodes_supports=pulumi.get(__ret__, 'nodes_supports'),
246
+ parameter_size_bits=pulumi.get(__ret__, 'parameter_size_bits'),
247
+ project_id=pulumi.get(__ret__, 'project_id'),
248
+ region=pulumi.get(__ret__, 'region'),
249
+ secret=pulumi.get(__ret__, 'secret'),
250
+ size_bytes=pulumi.get(__ret__, 'size_bytes'),
251
+ status=pulumi.get(__ret__, 'status'),
252
+ tags=pulumi.get(__ret__, 'tags'),
253
+ updated_at=pulumi.get(__ret__, 'updated_at'),
254
+ url=pulumi.get(__ret__, 'url'))
255
+ def get_model_output(model_id: Optional[pulumi.Input[Optional[str]]] = None,
256
+ name: Optional[pulumi.Input[Optional[str]]] = None,
257
+ url: Optional[pulumi.Input[Optional[str]]] = None,
258
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetModelResult]:
259
+ """
260
+ The `inference.Model` data source allows you to retrieve information about an inference model available in the Scaleway Inference API, either by providing the model's `name` or its `model_id`.
261
+
262
+ ## Example Usage
263
+
264
+ ### Basic
265
+
266
+ ```python
267
+ import pulumi
268
+ import pulumi_scaleway as scaleway
269
+
270
+ my_model = scaleway.inference.get_model(name="meta/llama-3.1-8b-instruct:fp8")
271
+ ```
272
+
273
+
274
+ :param str model_id: The ID of the model to retrieve. Must be a valid UUID with locality (i.e., Scaleway's zoned UUID format).
275
+ :param str name: The fully qualified name of the model to look up (e.g., "meta/llama-3.1-8b-instruct:fp8"). The provider will search for a model with an exact name match in the selected region and project.
276
+ """
277
+ __args__ = dict()
278
+ __args__['modelId'] = model_id
279
+ __args__['name'] = name
280
+ __args__['url'] = url
281
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
282
+ __ret__ = pulumi.runtime.invoke_output('scaleway:inference/getModel:getModel', __args__, opts=opts, typ=GetModelResult)
283
+ return __ret__.apply(lambda __response__: GetModelResult(
284
+ created_at=pulumi.get(__response__, 'created_at'),
285
+ description=pulumi.get(__response__, 'description'),
286
+ has_eula=pulumi.get(__response__, 'has_eula'),
287
+ id=pulumi.get(__response__, 'id'),
288
+ model_id=pulumi.get(__response__, 'model_id'),
289
+ name=pulumi.get(__response__, 'name'),
290
+ nodes_supports=pulumi.get(__response__, 'nodes_supports'),
291
+ parameter_size_bits=pulumi.get(__response__, 'parameter_size_bits'),
292
+ project_id=pulumi.get(__response__, 'project_id'),
293
+ region=pulumi.get(__response__, 'region'),
294
+ secret=pulumi.get(__response__, 'secret'),
295
+ size_bytes=pulumi.get(__response__, 'size_bytes'),
296
+ status=pulumi.get(__response__, 'status'),
297
+ tags=pulumi.get(__response__, 'tags'),
298
+ updated_at=pulumi.get(__response__, 'updated_at'),
299
+ url=pulumi.get(__response__, 'url')))