API: Add mutations for creating composes and clones
This commit adds mutations for the /compose and /composes/:composeId/clone POST end points to the Image Builder API slice.
This commit is contained in:
parent
a28a1ab9cc
commit
85ab893c2b
2 changed files with 45 additions and 0 deletions
|
|
@ -8,6 +8,8 @@ const config: ConfigFile = {
|
|||
exportName: 'imageBuilderApi',
|
||||
hooks: true,
|
||||
filterEndpoints: [
|
||||
'cloneCompose',
|
||||
'composeImage',
|
||||
'getComposes',
|
||||
'getComposeStatus',
|
||||
'getComposeClones',
|
||||
|
|
|
|||
|
|
@ -19,6 +19,13 @@ const injectedRtkApi = api.injectEndpoints({
|
|||
>({
|
||||
query: (queryArg) => ({ url: `/composes/${queryArg.composeId}` }),
|
||||
}),
|
||||
cloneCompose: build.mutation<CloneComposeApiResponse, CloneComposeApiArg>({
|
||||
query: (queryArg) => ({
|
||||
url: `/composes/${queryArg.composeId}/clone`,
|
||||
method: "POST",
|
||||
body: queryArg.cloneRequest,
|
||||
}),
|
||||
}),
|
||||
getComposeClones: build.query<
|
||||
GetComposeClonesApiResponse,
|
||||
GetComposeClonesApiArg
|
||||
|
|
@ -34,6 +41,13 @@ const injectedRtkApi = api.injectEndpoints({
|
|||
>({
|
||||
query: (queryArg) => ({ url: `/clones/${queryArg.id}` }),
|
||||
}),
|
||||
composeImage: build.mutation<ComposeImageApiResponse, ComposeImageApiArg>({
|
||||
query: (queryArg) => ({
|
||||
url: `/compose`,
|
||||
method: "POST",
|
||||
body: queryArg.composeRequest,
|
||||
}),
|
||||
}),
|
||||
getPackages: build.query<GetPackagesApiResponse, GetPackagesApiArg>({
|
||||
query: (queryArg) => ({
|
||||
url: `/packages`,
|
||||
|
|
@ -70,6 +84,14 @@ export type GetComposeStatusApiArg = {
|
|||
/** Id of compose */
|
||||
composeId: string;
|
||||
};
|
||||
export type CloneComposeApiResponse =
|
||||
/** status 201 cloning has started */ CloneResponse;
|
||||
export type CloneComposeApiArg = {
|
||||
/** Id of compose to clone */
|
||||
composeId: string;
|
||||
/** details of the new clone */
|
||||
cloneRequest: CloneRequest;
|
||||
};
|
||||
export type GetComposeClonesApiResponse =
|
||||
/** status 200 compose clones */ ClonesResponse;
|
||||
export type GetComposeClonesApiArg = {
|
||||
|
|
@ -86,6 +108,12 @@ export type GetCloneStatusApiArg = {
|
|||
/** Id of clone status to get */
|
||||
id: string;
|
||||
};
|
||||
export type ComposeImageApiResponse =
|
||||
/** status 201 compose has started */ ComposeResponse;
|
||||
export type ComposeImageApiArg = {
|
||||
/** details of image to be composed */
|
||||
composeRequest: ComposeRequest;
|
||||
};
|
||||
export type GetPackagesApiResponse =
|
||||
/** status 200 a list of packages */ PackagesResponse;
|
||||
export type GetPackagesApiArg = {
|
||||
|
|
@ -295,6 +323,9 @@ export type ComposeStatus = {
|
|||
image_status: ImageStatus;
|
||||
request: ComposeRequest;
|
||||
};
|
||||
export type CloneResponse = {
|
||||
id: string;
|
||||
};
|
||||
export type Awsec2Clone = {
|
||||
region: string;
|
||||
share_with_accounts?: string[];
|
||||
|
|
@ -316,6 +347,16 @@ export type ClonesResponse = {
|
|||
};
|
||||
data: ClonesResponseItem[];
|
||||
};
|
||||
export type ComposeResponse = {
|
||||
id: string;
|
||||
};
|
||||
export type HttpError = {
|
||||
title: string;
|
||||
detail: string;
|
||||
};
|
||||
export type HttpErrorList = {
|
||||
errors: HttpError[];
|
||||
};
|
||||
export type Package = {
|
||||
name: string;
|
||||
summary: string;
|
||||
|
|
@ -334,7 +375,9 @@ export const {
|
|||
useGetArchitecturesQuery,
|
||||
useGetComposesQuery,
|
||||
useGetComposeStatusQuery,
|
||||
useCloneComposeMutation,
|
||||
useGetComposeClonesQuery,
|
||||
useGetCloneStatusQuery,
|
||||
useComposeImageMutation,
|
||||
useGetPackagesQuery,
|
||||
} = injectedRtkApi;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue