From 0f6ebefc073b7667c895d2447ab318a44cb9a415 Mon Sep 17 00:00:00 2001 From: Laure-di <62625835+Laure-di@users.noreply.github.com> Date: Wed, 19 Feb 2025 09:58:00 +0100 Subject: [PATCH 01/41] fix(inference): attach private network (#4524) --- internal/namespaces/inference/v1beta1/custom_endpoint.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/internal/namespaces/inference/v1beta1/custom_endpoint.go b/internal/namespaces/inference/v1beta1/custom_endpoint.go index 11eecfb79c..f204591113 100644 --- a/internal/namespaces/inference/v1beta1/custom_endpoint.go +++ b/internal/namespaces/inference/v1beta1/custom_endpoint.go @@ -42,9 +42,7 @@ func endpointCreateBuilder(c *core.Command) *core.Command { endpointToCreate.Public = publicEndpoint } if endpoint.PrivateNetwork != nil && endpoint.PrivateNetwork.PrivateNetworkID != "" { - endpointToCreate.PrivateNetwork = &inference.EndpointSpecPrivateNetwork{ - PrivateNetworkID: endpoint.PrivateNetwork.PrivateNetworkID, - } + endpointToCreate.PrivateNetwork = &inference.EndpointSpecPrivateNetwork{PrivateNetworkID: endpoint.PrivateNetwork.PrivateNetworkID} } createEndpointreq.Endpoint = &endpointToCreate From a1e7c98c2ed8be2728bd7c836c7b9c775b305ff8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 02/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 5bcf78c8929b595e658f05df07c1fa6b4294bbbd Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 03/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 48b8aef5b84e10c54b1cb904af211bac2899213f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 04/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From a38cf8bbc13be979ae6f18416cc59d0ae1561406 Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 05/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 94df45b0e92fdd6759bcfd7a6aa2e87d154a69b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 06/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 143b55e262dfdb285705a75c2e62168091bfa87f Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 07/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 63665d35ea067eb9cdeea0bb0948822ecb8a92b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 08/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 55297119507a925d88954c60359620048962ab3e Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 09/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From b77e9500fb25c40058f803bda1b9db03f137182e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 10/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 02f8b8a28e89358670c81afd4f9906c76caca627 Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 11/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From f053f2365707e47c62fcc5ed72cd6f7d58ed6155 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 12/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From d28fcc347cb8ede53c65db3148583b4559f1a65c Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 13/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 8dd0973d1617de03d334a568bb986dadaf73157f Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Thu, 15 May 2025 11:58:00 +0200 Subject: [PATCH 14/41] feat(audit_trail): add account user and organization resources (#4717) Signed-off-by: dependabot[bot] Co-authored-by: Laure-di <62625835+Laure-di@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jonathan R. --- internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go b/internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go index d14b94e150..7fa4f19644 100644 --- a/internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go +++ b/internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go @@ -8,7 +8,7 @@ import ( "reflect" "github.com/scaleway/scaleway-cli/v2/core" - audit_trail "github.com/scaleway/scaleway-sdk-go/api/audit_trail/v1alpha1" + "github.com/scaleway/scaleway-sdk-go/api/audit_trail/v1alpha1" "github.com/scaleway/scaleway-sdk-go/scw" ) From 7883aacc7114770a9a9cca61685353f5cc56cdd1 Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Thu, 22 May 2025 14:01:03 +0200 Subject: [PATCH 15/41] chore: bump sdk (#4751) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rémy Léone From d575d31d513cb9c6ec4406c7944d1b78d606f7e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 16/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 606804898816d02075349e5ec419c8fd0e3022ae Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 17/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 321f7f5dc062045bcad1c1c78027fa65f97cabd7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 18/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 6e662839df83571f03f44e7bf6d7f8fcfb4b24f7 Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 19/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 37ff72d81a424b461220de322078479dd1fa081f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 20/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 734f233280f244d58e70a845f2686c970cf8efdc Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 21/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From ca7d58b34578c4da459252cb00fedf753999b92a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 22/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 62ee32582fbd94a35ff23e641c2d6b168d9a2f66 Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 23/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 28cdec80bba96f62acff3ca909d8833311cd56a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 24/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From fcae18f3f3c622fff236b2251a2ea48989dbdfdf Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 25/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From aade108b9e89f5271f5facf2750acc4c8e737094 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 26/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From e0dea59c067660cc5e8fc0c2d2d34b5c84896786 Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 27/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 9c37cf06bf222413ea970f90efc18273b4299a8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 28/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 2566bd5d4d4732a19a84f9c950700f4b06a6ff3a Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 29/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From d9d112ba7c51e3c5757ee073b82f3012cd851c52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 30/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 103a3504e44f7b31df17729c269b70b4b3153be4 Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 31/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From a60532163afab3a9dc22f6060c858f593ea7e2b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 32/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 803d8ab1ca63222b65f7b860932b63572af29c5a Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 33/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 6e72d7f137c00f085af3ebf8d41702cc9d783fbe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 34/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 6813ed49e7e58f7ce0b31fd18e3a33e7c0fa49e5 Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 35/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From 9ed63ce71a2237612811db9c66632d7c86449f61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 36/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 116281f80a25c16b095045f520ca1d71376732da Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 37/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From c26ea8516c3af88d014e1ca9414f32f0e0348259 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:46:23 +0100 Subject: [PATCH 38/41] chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (#4567) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From f599d1bbed879476a85d34fa275edbd18630656f Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Wed, 19 Mar 2025 12:05:04 +0100 Subject: [PATCH 39/41] feat(secret_manager): display restore methods (#4597) Co-authored-by: Jonathan R. From ca49b3f19db3051bd19b926c9c2a0c5d3f4c02f4 Mon Sep 17 00:00:00 2001 From: Laure-di Date: Tue, 27 May 2025 15:55:19 +0200 Subject: [PATCH 40/41] fix golangci linter --- internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go | 2 +- internal/namespaces/inference/v1beta1/custom_endpoint.go | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go b/internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go index 7fa4f19644..d14b94e150 100644 --- a/internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go +++ b/internal/namespaces/audit_trail/v1alpha1/audit_trail_cli.go @@ -8,7 +8,7 @@ import ( "reflect" "github.com/scaleway/scaleway-cli/v2/core" - "github.com/scaleway/scaleway-sdk-go/api/audit_trail/v1alpha1" + audit_trail "github.com/scaleway/scaleway-sdk-go/api/audit_trail/v1alpha1" "github.com/scaleway/scaleway-sdk-go/scw" ) diff --git a/internal/namespaces/inference/v1beta1/custom_endpoint.go b/internal/namespaces/inference/v1beta1/custom_endpoint.go index f204591113..11eecfb79c 100644 --- a/internal/namespaces/inference/v1beta1/custom_endpoint.go +++ b/internal/namespaces/inference/v1beta1/custom_endpoint.go @@ -42,7 +42,9 @@ func endpointCreateBuilder(c *core.Command) *core.Command { endpointToCreate.Public = publicEndpoint } if endpoint.PrivateNetwork != nil && endpoint.PrivateNetwork.PrivateNetworkID != "" { - endpointToCreate.PrivateNetwork = &inference.EndpointSpecPrivateNetwork{PrivateNetworkID: endpoint.PrivateNetwork.PrivateNetworkID} + endpointToCreate.PrivateNetwork = &inference.EndpointSpecPrivateNetwork{ + PrivateNetworkID: endpoint.PrivateNetwork.PrivateNetworkID, + } } createEndpointreq.Endpoint = &endpointToCreate From d3232a8b0774a4153a7070ef78443c633a391855 Mon Sep 17 00:00:00 2001 From: Laure-di Date: Tue, 27 May 2025 15:58:23 +0200 Subject: [PATCH 41/41] feat(inference): generate cli --- .../namespaces/inference/v1/inference_cli.go | 760 ++++++++++++++++++ 1 file changed, 760 insertions(+) create mode 100644 internal/namespaces/inference/v1/inference_cli.go diff --git a/internal/namespaces/inference/v1/inference_cli.go b/internal/namespaces/inference/v1/inference_cli.go new file mode 100644 index 0000000000..60f769897e --- /dev/null +++ b/internal/namespaces/inference/v1/inference_cli.go @@ -0,0 +1,760 @@ +// This file was automatically generated. DO NOT EDIT. +// If you have any remark or suggestion do not hesitate to open an issue. + +package inference + +import ( + "context" + "reflect" + + "github.com/scaleway/scaleway-cli/v2/core" + "github.com/scaleway/scaleway-sdk-go/api/inference/v1" + "github.com/scaleway/scaleway-sdk-go/scw" +) + +// always import dependencies +var ( + _ = scw.RegionFrPar +) + +func GetGeneratedCommands() *core.Commands { + return core.NewCommands( + inferenceRoot(), + inferenceModel(), + inferenceDeployment(), + inferenceNodeType(), + inferenceEndpoint(), + inferenceDeploymentList(), + inferenceDeploymentGet(), + inferenceDeploymentCreate(), + inferenceDeploymentUpdate(), + inferenceDeploymentDelete(), + inferenceDeploymentGetCertificate(), + inferenceEndpointCreate(), + inferenceEndpointUpdate(), + inferenceEndpointDelete(), + inferenceModelList(), + inferenceModelGet(), + inferenceModelImport(), + inferenceModelDelete(), + inferenceNodeTypeList(), + ) +} + +func inferenceRoot() *core.Command { + return &core.Command{ + Short: `This API allows you to handle your Managed Inference services`, + Long: `This API allows you to handle your Managed Inference services.`, + Namespace: "inference", + } +} + +func inferenceModel() *core.Command { + return &core.Command{ + Short: `Models commands`, + Long: `Models commands.`, + Namespace: "inference", + Resource: "model", + } +} + +func inferenceDeployment() *core.Command { + return &core.Command{ + Short: `Deployment commands`, + Long: `Deployment commands.`, + Namespace: "inference", + Resource: "deployment", + } +} + +func inferenceNodeType() *core.Command { + return &core.Command{ + Short: `Node types management commands`, + Long: `Node types management commands.`, + Namespace: "inference", + Resource: "node-type", + } +} + +func inferenceEndpoint() *core.Command { + return &core.Command{ + Short: `Endpoint management commands`, + Long: `Endpoint management commands.`, + Namespace: "inference", + Resource: "endpoint", + } +} + +func inferenceDeploymentList() *core.Command { + return &core.Command{ + Short: `List inference deployments`, + Long: `List all your inference deployments.`, + Namespace: "inference", + Resource: "deployment", + Verb: "list", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.ListDeploymentsRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "order-by", + Short: `Order in which to return results`, + Required: false, + Deprecated: false, + Positional: false, + EnumValues: []string{ + "created_at_desc", + "created_at_asc", + "name_asc", + "name_desc", + }, + }, + { + Name: "project-id", + Short: `Filter by Project ID`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "name", + Short: `Filter by deployment name`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "tags.{index}", + Short: `Filter by tags`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "organization-id", + Short: `Filter by Organization ID`, + Required: false, + Deprecated: false, + Positional: false, + }, + core.RegionArgSpec( + scw.RegionFrPar, + scw.Region(core.AllLocalities), + ), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.ListDeploymentsRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + opts := []scw.RequestOption{scw.WithAllPages()} + if request.Region == scw.Region(core.AllLocalities) { + opts = append(opts, scw.WithRegions(api.Regions()...)) + request.Region = "" + } + resp, err := api.ListDeployments(request, opts...) + if err != nil { + return nil, err + } + + return resp.Deployments, nil + }, + } +} + +func inferenceDeploymentGet() *core.Command { + return &core.Command{ + Short: `Get a deployment`, + Long: `Get the deployment for the given ID.`, + Namespace: "inference", + Resource: "deployment", + Verb: "get", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.GetDeploymentRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "deployment-id", + Short: `ID of the deployment to get`, + Required: true, + Deprecated: false, + Positional: true, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.GetDeploymentRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + + return api.GetDeployment(request) + }, + } +} + +func inferenceDeploymentCreate() *core.Command { + return &core.Command{ + Short: `Create a deployment`, + Long: `Create a new inference deployment related to a specific model.`, + Namespace: "inference", + Resource: "deployment", + Verb: "create", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.CreateDeploymentRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "name", + Short: `Name of the deployment`, + Required: true, + Deprecated: false, + Positional: false, + Default: core.RandomValueGenerator("inference"), + }, + core.ProjectIDArgSpec(), + { + Name: "model-id", + Short: `ID of the model to use`, + Required: true, + Deprecated: false, + Positional: false, + }, + { + Name: "accept-eula", + Short: `Accept the model's End User License Agreement (EULA).`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "node-type-name", + Short: `Name of the node type to use`, + Required: true, + Deprecated: false, + Positional: false, + }, + { + Name: "tags.{index}", + Short: `List of tags to apply to the deployment`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "min-size", + Short: `Defines the minimum size of the pool`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "max-size", + Short: `Defines the maximum size of the pool`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "endpoints.{index}.private-network.private-network-id", + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "endpoints.{index}.disable-auth", + Short: `Disable the authentication on the endpoint.`, + Required: false, + Deprecated: false, + Positional: false, + Default: core.DefaultValueSetter("false"), + }, + { + Name: "quantization.bits", + Short: `The number of bits each model parameter should be quantized to. The quantization method is chosen based on this value.`, + Required: false, + Deprecated: false, + Positional: false, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.CreateDeploymentRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + + return api.CreateDeployment(request) + }, + } +} + +func inferenceDeploymentUpdate() *core.Command { + return &core.Command{ + Short: `Update a deployment`, + Long: `Update an existing inference deployment.`, + Namespace: "inference", + Resource: "deployment", + Verb: "update", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.UpdateDeploymentRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "deployment-id", + Short: `ID of the deployment to update`, + Required: true, + Deprecated: false, + Positional: true, + }, + { + Name: "name", + Short: `Name of the deployment`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "tags.{index}", + Short: `List of tags to apply to the deployment`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "min-size", + Short: `Defines the new minimum size of the pool`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "max-size", + Short: `Defines the new maximum size of the pool`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "model-id", + Short: `Id of the model to set to the deployment`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "quantization.bits", + Short: `The number of bits each model parameter should be quantized to. The quantization method is chosen based on this value.`, + Required: false, + Deprecated: false, + Positional: false, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.UpdateDeploymentRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + + return api.UpdateDeployment(request) + }, + } +} + +func inferenceDeploymentDelete() *core.Command { + return &core.Command{ + Short: `Delete a deployment`, + Long: `Delete an existing inference deployment.`, + Namespace: "inference", + Resource: "deployment", + Verb: "delete", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.DeleteDeploymentRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "deployment-id", + Short: `ID of the deployment to delete`, + Required: true, + Deprecated: false, + Positional: true, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.DeleteDeploymentRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + + return api.DeleteDeployment(request) + }, + } +} + +func inferenceDeploymentGetCertificate() *core.Command { + return &core.Command{ + Short: `Get the CA certificate`, + Long: `Get the CA certificate used for the deployment of private endpoints. +The CA certificate will be returned as a PEM file.`, + Namespace: "inference", + Resource: "deployment", + Verb: "get-certificate", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.GetDeploymentCertificateRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "deployment-id", + Required: true, + Deprecated: false, + Positional: false, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.GetDeploymentCertificateRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + + return api.GetDeploymentCertificate(request) + }, + } +} + +func inferenceEndpointCreate() *core.Command { + return &core.Command{ + Short: `Create an endpoint`, + Long: `Create a new Endpoint related to a specific deployment.`, + Namespace: "inference", + Resource: "endpoint", + Verb: "create", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.CreateEndpointRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "deployment-id", + Short: `ID of the deployment to create the endpoint for`, + Required: true, + Deprecated: false, + Positional: true, + }, + { + Name: "endpoint.private-network.private-network-id", + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "endpoint.disable-auth", + Short: `Disable the authentication on the endpoint.`, + Required: false, + Deprecated: false, + Positional: false, + Default: core.DefaultValueSetter("false"), + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.CreateEndpointRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + + return api.CreateEndpoint(request) + }, + } +} + +func inferenceEndpointUpdate() *core.Command { + return &core.Command{ + Short: `Update an endpoint`, + Long: `Update an existing Endpoint.`, + Namespace: "inference", + Resource: "endpoint", + Verb: "update", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.UpdateEndpointRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "endpoint-id", + Short: `ID of the endpoint to update`, + Required: true, + Deprecated: false, + Positional: true, + }, + { + Name: "disable-auth", + Short: `Disable the authentication on the endpoint.`, + Required: false, + Deprecated: false, + Positional: false, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.UpdateEndpointRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + + return api.UpdateEndpoint(request) + }, + } +} + +func inferenceEndpointDelete() *core.Command { + return &core.Command{ + Short: `Delete an endpoint`, + Long: `Delete an existing Endpoint.`, + Namespace: "inference", + Resource: "endpoint", + Verb: "delete", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.DeleteEndpointRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "endpoint-id", + Short: `ID of the endpoint to delete`, + Required: true, + Deprecated: false, + Positional: true, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.DeleteEndpointRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + e = api.DeleteEndpoint(request) + if e != nil { + return nil, e + } + + return &core.SuccessResult{ + Resource: "endpoint", + Verb: "delete", + }, nil + }, + } +} + +func inferenceModelList() *core.Command { + return &core.Command{ + Short: `List models`, + Long: `List all available models.`, + Namespace: "inference", + Resource: "model", + Verb: "list", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.ListModelsRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "order-by", + Short: `Order in which to return results`, + Required: false, + Deprecated: false, + Positional: false, + EnumValues: []string{ + "display_rank_asc", + "created_at_asc", + "created_at_desc", + "name_asc", + "name_desc", + }, + }, + { + Name: "project-id", + Short: `Filter by Project ID`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "name", + Short: `Filter by model name`, + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "tags.{index}", + Short: `Filter by tags`, + Required: false, + Deprecated: false, + Positional: false, + }, + core.RegionArgSpec( + scw.RegionFrPar, + scw.Region(core.AllLocalities), + ), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.ListModelsRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + opts := []scw.RequestOption{scw.WithAllPages()} + if request.Region == scw.Region(core.AllLocalities) { + opts = append(opts, scw.WithRegions(api.Regions()...)) + request.Region = "" + } + resp, err := api.ListModels(request, opts...) + if err != nil { + return nil, err + } + + return resp.Models, nil + }, + } +} + +func inferenceModelGet() *core.Command { + return &core.Command{ + Short: `Get a model`, + Long: `Get the model for the given ID.`, + Namespace: "inference", + Resource: "model", + Verb: "get", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.GetModelRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "model-id", + Short: `ID of the model to get`, + Required: true, + Deprecated: false, + Positional: true, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.GetModelRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + + return api.GetModel(request) + }, + } +} + +func inferenceModelImport() *core.Command { + return &core.Command{ + Short: `Import a model`, + Long: `Import a new model to your model library.`, + Namespace: "inference", + Resource: "model", + Verb: "import", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.CreateModelRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "name", + Short: `Name of the model`, + Required: true, + Deprecated: false, + Positional: false, + Default: core.RandomValueGenerator("model"), + }, + core.ProjectIDArgSpec(), + { + Name: "source.url", + Required: false, + Deprecated: false, + Positional: false, + }, + { + Name: "source.secret", + Required: false, + Deprecated: false, + Positional: false, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.CreateModelRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + + return api.CreateModel(request) + }, + } +} + +func inferenceModelDelete() *core.Command { + return &core.Command{ + Short: `Delete a model`, + Long: `Delete an existing model from your model library.`, + Namespace: "inference", + Resource: "model", + Verb: "delete", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.DeleteModelRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "model-id", + Short: `ID of the model to delete`, + Required: true, + Deprecated: false, + Positional: true, + }, + core.RegionArgSpec(scw.RegionFrPar), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.DeleteModelRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + e = api.DeleteModel(request) + if e != nil { + return nil, e + } + + return &core.SuccessResult{ + Resource: "model", + Verb: "delete", + }, nil + }, + } +} + +func inferenceNodeTypeList() *core.Command { + return &core.Command{ + Short: `List available node types`, + Long: `List all available node types. By default, the node types returned in the list are ordered by creation date in ascending order, though this can be modified via the ` + "`" + `order_by` + "`" + ` field.`, + Namespace: "inference", + Resource: "node-type", + Verb: "list", + // Deprecated: false, + ArgsType: reflect.TypeOf(inference.ListNodeTypesRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "include-disabled-types", + Short: `Include disabled node types in the response`, + Required: false, + Deprecated: false, + Positional: false, + }, + core.RegionArgSpec( + scw.RegionFrPar, + scw.Region(core.AllLocalities), + ), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*inference.ListNodeTypesRequest) + + client := core.ExtractClient(ctx) + api := inference.NewAPI(client) + opts := []scw.RequestOption{scw.WithAllPages()} + if request.Region == scw.Region(core.AllLocalities) { + opts = append(opts, scw.WithRegions(api.Regions()...)) + request.Region = "" + } + resp, err := api.ListNodeTypes(request, opts...) + if err != nil { + return nil, err + } + + return resp.NodeTypes, nil + }, + } +}