Skip to content

Commit f89e805

Browse files
scaleway-botyfodil
andauthored
feat(qaas): add model messages (#2310)
Co-authored-by: Yacine Fodil <[email protected]>
1 parent 1cf1b8f commit f89e805

File tree

4 files changed

+218
-0
lines changed

4 files changed

+218
-0
lines changed

packages_generated/qaas/src/v1alpha1/api.gen.ts

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
} from './content.gen'
1919
import {
2020
marshalCreateJobRequest,
21+
marshalCreateModelRequest,
2122
marshalCreateProcessRequest,
2223
marshalCreateSessionRequest,
2324
marshalUpdateBookingRequest,
@@ -32,11 +33,13 @@ import {
3233
unmarshalListBookingsResponse,
3334
unmarshalListJobResultsResponse,
3435
unmarshalListJobsResponse,
36+
unmarshalListModelsResponse,
3537
unmarshalListPlatformsResponse,
3638
unmarshalListProcessesResponse,
3739
unmarshalListProcessResultsResponse,
3840
unmarshalListSessionACLsResponse,
3941
unmarshalListSessionsResponse,
42+
unmarshalModel,
4043
unmarshalPlatform,
4144
unmarshalProcess,
4245
unmarshalSession,
@@ -47,6 +50,7 @@ import type {
4750
CancelJobRequest,
4851
CancelProcessRequest,
4952
CreateJobRequest,
53+
CreateModelRequest,
5054
CreateProcessRequest,
5155
CreateSessionRequest,
5256
DeleteJobRequest,
@@ -56,6 +60,7 @@ import type {
5660
GetBookingRequest,
5761
GetJobCircuitRequest,
5862
GetJobRequest,
63+
GetModelRequest,
5964
GetPlatformRequest,
6065
GetProcessRequest,
6166
GetSessionRequest,
@@ -69,6 +74,8 @@ import type {
6974
ListJobResultsResponse,
7075
ListJobsRequest,
7176
ListJobsResponse,
77+
ListModelsRequest,
78+
ListModelsResponse,
7279
ListPlatformsRequest,
7380
ListPlatformsResponse,
7481
ListProcessesRequest,
@@ -79,6 +86,7 @@ import type {
7986
ListSessionACLsResponse,
8087
ListSessionsRequest,
8188
ListSessionsResponse,
89+
Model,
8290
Platform,
8391
Process,
8492
Session,
@@ -784,4 +792,68 @@ export class API extends ParentAPI {
784792
},
785793
unmarshalBooking,
786794
)
795+
796+
/**
797+
* Create a new model. Create and register a new model that can be executed through next jobs. A model can also be assigned to a Session.
798+
*
799+
* @param request - The request {@link CreateModelRequest}
800+
* @returns A Promise of Model
801+
*/
802+
createModel = (request: Readonly<CreateModelRequest> = {}) =>
803+
this.client.fetch<Model>(
804+
{
805+
body: JSON.stringify(
806+
marshalCreateModelRequest(request, this.client.settings),
807+
),
808+
headers: jsonContentHeaders,
809+
method: 'POST',
810+
path: `/qaas/v1alpha1/models`,
811+
},
812+
unmarshalModel,
813+
)
814+
815+
/**
816+
* Get model information. Retrieve information about of the provided **model ID**.
817+
*
818+
* @param request - The request {@link GetModelRequest}
819+
* @returns A Promise of Model
820+
*/
821+
getModel = (request: Readonly<GetModelRequest>) =>
822+
this.client.fetch<Model>(
823+
{
824+
method: 'GET',
825+
path: `/qaas/v1alpha1/models/${validatePathParam('modelId', request.modelId)}`,
826+
},
827+
unmarshalModel,
828+
)
829+
830+
protected pageOfListModels = (request: Readonly<ListModelsRequest> = {}) =>
831+
this.client.fetch<ListModelsResponse>(
832+
{
833+
method: 'GET',
834+
path: `/qaas/v1alpha1/models`,
835+
urlParams: urlParams(
836+
['order_by', request.orderBy],
837+
['page', request.page],
838+
[
839+
'page_size',
840+
request.pageSize ?? this.client.settings.defaultPageSize,
841+
],
842+
[
843+
'project_id',
844+
request.projectId ?? this.client.settings.defaultProjectId,
845+
],
846+
),
847+
},
848+
unmarshalListModelsResponse,
849+
)
850+
851+
/**
852+
* List all models attached to the **project ID**. Retrieve information about all models of the provided **project ID**.
853+
*
854+
* @param request - The request {@link ListModelsRequest}
855+
* @returns A Promise of ListModelsResponse
856+
*/
857+
listModels = (request: Readonly<ListModelsRequest> = {}) =>
858+
enrichForPagination('models', this.pageOfListModels, request)
787859
}

packages_generated/qaas/src/v1alpha1/index.gen.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export type {
1111
CancelJobRequest,
1212
CancelProcessRequest,
1313
CreateJobRequest,
14+
CreateModelRequest,
1415
CreateProcessRequest,
1516
CreateSessionRequest,
1617
CreateSessionRequestBookingDemand,
@@ -21,6 +22,7 @@ export type {
2122
GetBookingRequest,
2223
GetJobCircuitRequest,
2324
GetJobRequest,
25+
GetModelRequest,
2426
GetPlatformRequest,
2527
GetProcessRequest,
2628
GetSessionRequest,
@@ -40,6 +42,9 @@ export type {
4042
ListJobsRequest,
4143
ListJobsRequestOrderBy,
4244
ListJobsResponse,
45+
ListModelsRequest,
46+
ListModelsRequestOrderBy,
47+
ListModelsResponse,
4348
ListPlatformsRequest,
4449
ListPlatformsRequestOrderBy,
4550
ListPlatformsResponse,
@@ -55,6 +60,7 @@ export type {
5560
ListSessionsRequest,
5661
ListSessionsRequestOrderBy,
5762
ListSessionsResponse,
63+
Model,
5864
Platform,
5965
PlatformAvailability,
6066
PlatformBookingRequirement,

packages_generated/qaas/src/v1alpha1/marshalling.gen.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import type {
1313
Application,
1414
Booking,
1515
CreateJobRequest,
16+
CreateModelRequest,
1617
CreateProcessRequest,
1718
CreateSessionRequest,
1819
CreateSessionRequestBookingDemand,
@@ -23,11 +24,13 @@ import type {
2324
ListBookingsResponse,
2425
ListJobResultsResponse,
2526
ListJobsResponse,
27+
ListModelsResponse,
2628
ListPlatformsResponse,
2729
ListProcessesResponse,
2830
ListProcessResultsResponse,
2931
ListSessionACLsResponse,
3032
ListSessionsResponse,
33+
Model,
3134
Platform,
3235
PlatformBookingRequirement,
3336
PlatformHardware,
@@ -99,7 +102,9 @@ export const unmarshalJob = (data: unknown): Job => {
99102
createdAt: unmarshalDate(data.created_at),
100103
id: data.id,
101104
jobDuration: data.job_duration,
105+
modelId: data.model_id,
102106
name: data.name,
107+
parameters: data.parameters,
103108
progressMessage: data.progress_message,
104109
resultDistribution: data.result_distribution,
105110
sessionId: data.session_id,
@@ -110,6 +115,21 @@ export const unmarshalJob = (data: unknown): Job => {
110115
} as Job
111116
}
112117

118+
export const unmarshalModel = (data: unknown): Model => {
119+
if (!isJSONObject(data)) {
120+
throw new TypeError(
121+
`Unmarshalling the type 'Model' failed as data isn't a dictionary.`,
122+
)
123+
}
124+
125+
return {
126+
createdAt: unmarshalDate(data.created_at),
127+
id: data.id,
128+
projectId: data.project_id,
129+
url: data.url,
130+
} as Model
131+
}
132+
113133
const unmarshalPlatformBookingRequirement = (
114134
data: unknown,
115135
): PlatformBookingRequirement => {
@@ -226,6 +246,7 @@ export const unmarshalSession = (data: unknown): Session => {
226246
id: data.id,
227247
maxDuration: data.max_duration,
228248
maxIdleDuration: data.max_idle_duration,
249+
modelId: data.model_id,
229250
name: data.name,
230251
originId: data.origin_id,
231252
originType: data.origin_type,
@@ -317,6 +338,21 @@ export const unmarshalListJobsResponse = (data: unknown): ListJobsResponse => {
317338
} as ListJobsResponse
318339
}
319340

341+
export const unmarshalListModelsResponse = (
342+
data: unknown,
343+
): ListModelsResponse => {
344+
if (!isJSONObject(data)) {
345+
throw new TypeError(
346+
`Unmarshalling the type 'ListModelsResponse' failed as data isn't a dictionary.`,
347+
)
348+
}
349+
350+
return {
351+
models: unmarshalArrayOfObject(data.models, unmarshalModel),
352+
totalCount: data.total_count,
353+
} as ListModelsResponse
354+
}
355+
320356
export const unmarshalListPlatformsResponse = (
321357
data: unknown,
322358
): ListPlatformsResponse => {
@@ -425,11 +461,21 @@ export const marshalCreateJobRequest = (
425461
): Record<string, unknown> => ({
426462
circuit: marshalJobCircuit(request.circuit, defaults),
427463
max_duration: request.maxDuration,
464+
model_id: request.modelId,
428465
name: request.name,
466+
parameters: request.parameters,
429467
session_id: request.sessionId,
430468
tags: request.tags,
431469
})
432470

471+
export const marshalCreateModelRequest = (
472+
request: CreateModelRequest,
473+
defaults: DefaultValues,
474+
): Record<string, unknown> => ({
475+
payload: request.payload,
476+
project_id: request.projectId ?? defaults.defaultProjectId,
477+
})
478+
433479
export const marshalCreateProcessRequest = (
434480
request: CreateProcessRequest,
435481
defaults: DefaultValues,
@@ -465,6 +511,7 @@ export const marshalCreateSessionRequest = (
465511
deduplication_id: request.deduplicationId,
466512
max_duration: request.maxDuration,
467513
max_idle_duration: request.maxIdleDuration,
514+
model_id: request.modelId,
468515
name: request.name,
469516
platform_id: request.platformId,
470517
project_id: request.projectId ?? defaults.defaultProjectId,

0 commit comments

Comments
 (0)