Add room paused state (#163)

* add room_Paused from cniu6

* fix "OpenAPi.yml" and api-request

* remove unpaused event and change start event to unpause as well.

* update openapi bindings.

* do not wait for ready when unpausing container.

* fix room create.

* add paused state to Lobby.

* fix roomRecreate.

---------

Co-authored-by: zerohh <zerohh666@163.com>
Co-authored-by: Miroslav Šedivý <sedivy.miro@gmail.com>
This commit is contained in:
zerohh
2025-05-28 21:54:27 +08:00
committed by GitHub
parent 8256bcaf99
commit 1013e80034
17 changed files with 412 additions and 138 deletions
+22
View File
@@ -254,6 +254,25 @@ paths:
description: Room not found description: Room not found
'500': '500':
description: Internal server error description: Internal server error
/api/rooms/{roomId}/pause:
post:
tags:
- rooms
summary: Pause room
operationId: roomPause
parameters:
- in: path
name: roomId
required: true
schema:
type: string
responses:
'204':
description: OK
'404':
description: Room not found
'500':
description: Internal server error
/api/rooms/{roomId}/recreate: /api/rooms/{roomId}/recreate:
post: post:
tags: tags:
@@ -414,6 +433,9 @@ components:
running: running:
type: boolean type: boolean
example: true example: true
paused:
type: boolean
example: false
is_ready: is_ready:
type: boolean type: boolean
example: true example: true
+17
View File
@@ -5,5 +5,22 @@ api.ts
base.ts base.ts
common.ts common.ts
configuration.ts configuration.ts
docs/BrowserPolicy.md
docs/BrowserPolicyContent.md
docs/BrowserPolicyExtension.md
docs/ConfigApi.md
docs/DefaultApi.md
docs/PullLayer.md
docs/PullLayerProgressDetail.md
docs/PullStart.md
docs/PullStatus.md
docs/RoomEntry.md
docs/RoomMember.md
docs/RoomMount.md
docs/RoomResources.md
docs/RoomSettings.md
docs/RoomStats.md
docs/RoomsApi.md
docs/RoomsConfig.md
git_push.sh git_push.sh
index.ts index.ts
+1 -1
View File
@@ -1 +1 @@
7.1.0-SNAPSHOT 7.14.0-SNAPSHOT
+231 -110
View File
@@ -14,14 +14,14 @@
import type { Configuration } from './configuration'; import type { Configuration } from './configuration';
import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import globalAxios from 'axios'; import globalAxios from 'axios';
// Some imports not used depending on template conditions // Some imports not used depending on template conditions
// @ts-ignore // @ts-ignore
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common'; import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';
import type { RequestArgs } from './base'; import type { RequestArgs } from './base';
// @ts-ignore // @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError } from './base'; import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError, operationServerMap } from './base';
/** /**
* *
@@ -260,6 +260,18 @@ export interface RoomEntry {
* @memberof RoomEntry * @memberof RoomEntry
*/ */
'running'?: boolean; 'running'?: boolean;
/**
*
* @type {boolean}
* @memberof RoomEntry
*/
'paused'?: boolean;
/**
*
* @type {boolean}
* @memberof RoomEntry
*/
'is_ready'?: boolean;
/** /**
* *
* @type {string} * @type {string}
@@ -395,7 +407,7 @@ export interface RoomResources {
*/ */
export interface RoomSettings { export interface RoomSettings {
/** /**
* * if not set, version is taken from neko_image
* @type {number} * @type {number}
* @memberof RoomSettings * @memberof RoomSettings
*/ */
@@ -650,7 +662,7 @@ export const ConfigApiAxiosParamCreator = function (configuration?: Configuratio
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomsConfig: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomsConfig: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/config/rooms`; const localVarPath = `/api/config/rooms`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -690,9 +702,11 @@ export const ConfigApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomsConfig(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomsConfig>> { async roomsConfig(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomsConfig>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomsConfig(options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomsConfig(options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['ConfigApi.roomsConfig']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
} }
}; };
@@ -710,7 +724,7 @@ export const ConfigApiFactory = function (configuration?: Configuration, basePat
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomsConfig(options?: any): AxiosPromise<RoomsConfig> { roomsConfig(options?: RawAxiosRequestConfig): AxiosPromise<RoomsConfig> {
return localVarFp.roomsConfig(options).then((request) => request(axios, basePath)); return localVarFp.roomsConfig(options).then((request) => request(axios, basePath));
}, },
}; };
@@ -730,7 +744,7 @@ export class ConfigApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof ConfigApi * @memberof ConfigApi
*/ */
public roomsConfig(options?: AxiosRequestConfig) { public roomsConfig(options?: RawAxiosRequestConfig) {
return ConfigApiFp(this.configuration).roomsConfig(options).then((request) => request(this.axios, this.basePath)); return ConfigApiFp(this.configuration).roomsConfig(options).then((request) => request(this.axios, this.basePath));
} }
} }
@@ -746,11 +760,13 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
/** /**
* *
* @summary Start new pull * @summary Start new pull
* @param {PullStart} [pullStart] * @param {PullStart} pullStart
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
pullStart: async (pullStart?: PullStart, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { pullStart: async (pullStart: PullStart, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'pullStart' is not null or undefined
assertParamExists('pullStart', 'pullStart', pullStart)
const localVarPath = `/api/pull`; const localVarPath = `/api/pull`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -783,7 +799,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
pullStatus: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => { pullStatus: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/pull`; const localVarPath = `/api/pull`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -813,7 +829,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
pullStatusSSE: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => { pullStatusSSE: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/pull/sse`; const localVarPath = `/api/pull/sse`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -843,7 +859,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
pullStop: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => { pullStop: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/pull`; const localVarPath = `/api/pull`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -880,13 +896,15 @@ export const DefaultApiFp = function(configuration?: Configuration) {
/** /**
* *
* @summary Start new pull * @summary Start new pull
* @param {PullStart} [pullStart] * @param {PullStart} pullStart
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async pullStart(pullStart?: PullStart, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PullStatus>> { async pullStart(pullStart: PullStart, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PullStatus>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.pullStart(pullStart, options); const localVarAxiosArgs = await localVarAxiosParamCreator.pullStart(pullStart, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['DefaultApi.pullStart']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -894,9 +912,11 @@ export const DefaultApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async pullStatus(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PullStatus>> { async pullStatus(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PullStatus>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.pullStatus(options); const localVarAxiosArgs = await localVarAxiosParamCreator.pullStatus(options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['DefaultApi.pullStatus']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -904,9 +924,11 @@ export const DefaultApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async pullStatusSSE(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<PullLayer>>> { async pullStatusSSE(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<PullLayer>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.pullStatusSSE(options); const localVarAxiosArgs = await localVarAxiosParamCreator.pullStatusSSE(options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['DefaultApi.pullStatusSSE']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -914,9 +936,11 @@ export const DefaultApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async pullStop(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> { async pullStop(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.pullStop(options); const localVarAxiosArgs = await localVarAxiosParamCreator.pullStop(options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['DefaultApi.pullStop']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
} }
}; };
@@ -931,11 +955,11 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
/** /**
* *
* @summary Start new pull * @summary Start new pull
* @param {PullStart} [pullStart] * @param {PullStart} pullStart
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
pullStart(pullStart?: PullStart, options?: any): AxiosPromise<PullStatus> { pullStart(pullStart: PullStart, options?: RawAxiosRequestConfig): AxiosPromise<PullStatus> {
return localVarFp.pullStart(pullStart, options).then((request) => request(axios, basePath)); return localVarFp.pullStart(pullStart, options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -944,7 +968,7 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
pullStatus(options?: any): AxiosPromise<PullStatus> { pullStatus(options?: RawAxiosRequestConfig): AxiosPromise<PullStatus> {
return localVarFp.pullStatus(options).then((request) => request(axios, basePath)); return localVarFp.pullStatus(options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -953,7 +977,7 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
pullStatusSSE(options?: any): AxiosPromise<Array<PullLayer>> { pullStatusSSE(options?: RawAxiosRequestConfig): AxiosPromise<Array<PullLayer>> {
return localVarFp.pullStatusSSE(options).then((request) => request(axios, basePath)); return localVarFp.pullStatusSSE(options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -962,7 +986,7 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
pullStop(options?: any): AxiosPromise<void> { pullStop(options?: RawAxiosRequestConfig): AxiosPromise<void> {
return localVarFp.pullStop(options).then((request) => request(axios, basePath)); return localVarFp.pullStop(options).then((request) => request(axios, basePath));
}, },
}; };
@@ -978,12 +1002,12 @@ export class DefaultApi extends BaseAPI {
/** /**
* *
* @summary Start new pull * @summary Start new pull
* @param {PullStart} [pullStart] * @param {PullStart} pullStart
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
* @memberof DefaultApi * @memberof DefaultApi
*/ */
public pullStart(pullStart?: PullStart, options?: AxiosRequestConfig) { public pullStart(pullStart: PullStart, options?: RawAxiosRequestConfig) {
return DefaultApiFp(this.configuration).pullStart(pullStart, options).then((request) => request(this.axios, this.basePath)); return DefaultApiFp(this.configuration).pullStart(pullStart, options).then((request) => request(this.axios, this.basePath));
} }
@@ -994,7 +1018,7 @@ export class DefaultApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof DefaultApi * @memberof DefaultApi
*/ */
public pullStatus(options?: AxiosRequestConfig) { public pullStatus(options?: RawAxiosRequestConfig) {
return DefaultApiFp(this.configuration).pullStatus(options).then((request) => request(this.axios, this.basePath)); return DefaultApiFp(this.configuration).pullStatus(options).then((request) => request(this.axios, this.basePath));
} }
@@ -1005,7 +1029,7 @@ export class DefaultApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof DefaultApi * @memberof DefaultApi
*/ */
public pullStatusSSE(options?: AxiosRequestConfig) { public pullStatusSSE(options?: RawAxiosRequestConfig) {
return DefaultApiFp(this.configuration).pullStatusSSE(options).then((request) => request(this.axios, this.basePath)); return DefaultApiFp(this.configuration).pullStatusSSE(options).then((request) => request(this.axios, this.basePath));
} }
@@ -1016,7 +1040,7 @@ export class DefaultApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof DefaultApi * @memberof DefaultApi
*/ */
public pullStop(options?: AxiosRequestConfig) { public pullStop(options?: RawAxiosRequestConfig) {
return DefaultApiFp(this.configuration).pullStop(options).then((request) => request(this.axios, this.basePath)); return DefaultApiFp(this.configuration).pullStop(options).then((request) => request(this.axios, this.basePath));
} }
} }
@@ -1035,7 +1059,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
exportAsDockerCompose: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => { exportAsDockerCompose: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/docker-compose.yaml`; const localVarPath = `/api/docker-compose.yaml`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -1062,12 +1086,14 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
/** /**
* *
* @summary Create new room * @summary Create new room
* @param {RoomSettings} roomSettings
* @param {boolean} [start] * @param {boolean} [start]
* @param {RoomSettings} [roomSettings]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomCreate: async (start?: boolean, roomSettings?: RoomSettings, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomCreate: async (roomSettings: RoomSettings, start?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomSettings' is not null or undefined
assertParamExists('roomCreate', 'roomSettings', roomSettings)
const localVarPath = `/api/rooms`; const localVarPath = `/api/rooms`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -1105,7 +1131,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomGet: async (roomId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomGet: async (roomId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomId' is not null or undefined // verify required parameter 'roomId' is not null or undefined
assertParamExists('roomGet', 'roomId', roomId) assertParamExists('roomGet', 'roomId', roomId)
const localVarPath = `/api/rooms/{roomId}` const localVarPath = `/api/rooms/{roomId}`
@@ -1139,7 +1165,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomGetByName: async (roomName: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomGetByName: async (roomName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomName' is not null or undefined // verify required parameter 'roomName' is not null or undefined
assertParamExists('roomGetByName', 'roomName', roomName) assertParamExists('roomGetByName', 'roomName', roomName)
const localVarPath = `/api/rooms/{roomName}/by-name` const localVarPath = `/api/rooms/{roomName}/by-name`
@@ -1168,16 +1194,52 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
}, },
/** /**
* *
* @summary Recreate room * @summary Pause room
* @param {string} roomId * @param {string} roomId
* @param {boolean} [start]
* @param {RoomSettings} [roomSettings]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomRecreate: async (roomId: string, start?: boolean, roomSettings?: RoomSettings, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomPause: async (roomId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomId' is not null or undefined
assertParamExists('roomPause', 'roomId', roomId)
const localVarPath = `/api/rooms/{roomId}/pause`
.replace(`{${"roomId"}}`, encodeURIComponent(String(roomId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @summary Recreate room
* @param {string} roomId
* @param {RoomSettings} roomSettings
* @param {boolean} [start]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
roomRecreate: async (roomId: string, roomSettings: RoomSettings, start?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomId' is not null or undefined // verify required parameter 'roomId' is not null or undefined
assertParamExists('roomRecreate', 'roomId', roomId) assertParamExists('roomRecreate', 'roomId', roomId)
// verify required parameter 'roomSettings' is not null or undefined
assertParamExists('roomRecreate', 'roomSettings', roomSettings)
const localVarPath = `/api/rooms/{roomId}/recreate` const localVarPath = `/api/rooms/{roomId}/recreate`
.replace(`{${"roomId"}}`, encodeURIComponent(String(roomId))); .replace(`{${"roomId"}}`, encodeURIComponent(String(roomId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
@@ -1216,7 +1278,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomRemove: async (roomId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomRemove: async (roomId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomId' is not null or undefined // verify required parameter 'roomId' is not null or undefined
assertParamExists('roomRemove', 'roomId', roomId) assertParamExists('roomRemove', 'roomId', roomId)
const localVarPath = `/api/rooms/{roomId}` const localVarPath = `/api/rooms/{roomId}`
@@ -1250,7 +1312,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomRestart: async (roomId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomRestart: async (roomId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomId' is not null or undefined // verify required parameter 'roomId' is not null or undefined
assertParamExists('roomRestart', 'roomId', roomId) assertParamExists('roomRestart', 'roomId', roomId)
const localVarPath = `/api/rooms/{roomId}/restart` const localVarPath = `/api/rooms/{roomId}/restart`
@@ -1284,7 +1346,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomSettings: async (roomId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomSettings: async (roomId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomId' is not null or undefined // verify required parameter 'roomId' is not null or undefined
assertParamExists('roomSettings', 'roomId', roomId) assertParamExists('roomSettings', 'roomId', roomId)
const localVarPath = `/api/rooms/{roomId}/settings` const localVarPath = `/api/rooms/{roomId}/settings`
@@ -1318,7 +1380,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomStart: async (roomId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomStart: async (roomId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomId' is not null or undefined // verify required parameter 'roomId' is not null or undefined
assertParamExists('roomStart', 'roomId', roomId) assertParamExists('roomStart', 'roomId', roomId)
const localVarPath = `/api/rooms/{roomId}/start` const localVarPath = `/api/rooms/{roomId}/start`
@@ -1352,7 +1414,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomStats: async (roomId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomStats: async (roomId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomId' is not null or undefined // verify required parameter 'roomId' is not null or undefined
assertParamExists('roomStats', 'roomId', roomId) assertParamExists('roomStats', 'roomId', roomId)
const localVarPath = `/api/rooms/{roomId}/stats` const localVarPath = `/api/rooms/{roomId}/stats`
@@ -1386,7 +1448,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomStop: async (roomId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomStop: async (roomId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'roomId' is not null or undefined // verify required parameter 'roomId' is not null or undefined
assertParamExists('roomStop', 'roomId', roomId) assertParamExists('roomStop', 'roomId', roomId)
const localVarPath = `/api/rooms/{roomId}/stop` const localVarPath = `/api/rooms/{roomId}/stop`
@@ -1420,7 +1482,7 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomsList: async (labels?: { [key: string]: string; }, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { roomsList: async (labels?: { [key: string]: string; }, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/rooms`; const localVarPath = `/api/rooms`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -1434,8 +1496,8 @@ export const RoomsApiAxiosParamCreator = function (configuration?: Configuration
const localVarQueryParameter = {} as any; const localVarQueryParameter = {} as any;
if (labels !== undefined) { if (labels !== undefined) {
for (let param of Object.keys(labels)) { for (const [key, value] of Object.entries(labels)) {
localVarQueryParameter[param] = labels?.[param]; localVarQueryParameter[key] = value;
} }
} }
@@ -1466,21 +1528,25 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async exportAsDockerCompose(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> { async exportAsDockerCompose(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.exportAsDockerCompose(options); const localVarAxiosArgs = await localVarAxiosParamCreator.exportAsDockerCompose(options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.exportAsDockerCompose']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
* @summary Create new room * @summary Create new room
* @param {RoomSettings} roomSettings
* @param {boolean} [start] * @param {boolean} [start]
* @param {RoomSettings} [roomSettings]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomCreate(start?: boolean, roomSettings?: RoomSettings, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomEntry>> { async roomCreate(roomSettings: RoomSettings, start?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomEntry>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomCreate(start, roomSettings, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomCreate(roomSettings, start, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomCreate']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -1489,9 +1555,11 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomGet(roomId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomEntry>> { async roomGet(roomId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomEntry>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomGet(roomId, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomGet(roomId, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomGet']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -1500,22 +1568,39 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomGetByName(roomName: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomEntry>> { async roomGetByName(roomName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomEntry>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomGetByName(roomName, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomGetByName(roomName, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomGetByName']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
},
/**
*
* @summary Pause room
* @param {string} roomId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async roomPause(roomId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomPause(roomId, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomPause']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
* @summary Recreate room * @summary Recreate room
* @param {string} roomId * @param {string} roomId
* @param {RoomSettings} roomSettings
* @param {boolean} [start] * @param {boolean} [start]
* @param {RoomSettings} [roomSettings]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomRecreate(roomId: string, start?: boolean, roomSettings?: RoomSettings, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomEntry>> { async roomRecreate(roomId: string, roomSettings: RoomSettings, start?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomEntry>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomRecreate(roomId, start, roomSettings, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomRecreate(roomId, roomSettings, start, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomRecreate']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -1524,9 +1609,11 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomRemove(roomId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> { async roomRemove(roomId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomRemove(roomId, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomRemove(roomId, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomRemove']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -1535,9 +1622,11 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomRestart(roomId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> { async roomRestart(roomId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomRestart(roomId, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomRestart(roomId, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomRestart']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -1546,9 +1635,11 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomSettings(roomId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomSettings>> { async roomSettings(roomId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomSettings>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomSettings(roomId, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomSettings(roomId, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomSettings']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -1557,9 +1648,11 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomStart(roomId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> { async roomStart(roomId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomStart(roomId, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomStart(roomId, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomStart']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -1568,9 +1661,11 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomStats(roomId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomStats>> { async roomStats(roomId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoomStats>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomStats(roomId, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomStats(roomId, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomStats']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -1579,9 +1674,11 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomStop(roomId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> { async roomStop(roomId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomStop(roomId, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomStop(roomId, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomStop']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/** /**
* *
@@ -1590,9 +1687,11 @@ export const RoomsApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async roomsList(labels?: { [key: string]: string; }, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RoomEntry>>> { async roomsList(labels?: { [key: string]: string; }, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RoomEntry>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.roomsList(labels, options); const localVarAxiosArgs = await localVarAxiosParamCreator.roomsList(labels, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RoomsApi.roomsList']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
} }
}; };
@@ -1610,19 +1709,19 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
exportAsDockerCompose(options?: any): AxiosPromise<void> { exportAsDockerCompose(options?: RawAxiosRequestConfig): AxiosPromise<void> {
return localVarFp.exportAsDockerCompose(options).then((request) => request(axios, basePath)); return localVarFp.exportAsDockerCompose(options).then((request) => request(axios, basePath));
}, },
/** /**
* *
* @summary Create new room * @summary Create new room
* @param {RoomSettings} roomSettings
* @param {boolean} [start] * @param {boolean} [start]
* @param {RoomSettings} [roomSettings]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomCreate(start?: boolean, roomSettings?: RoomSettings, options?: any): AxiosPromise<RoomEntry> { roomCreate(roomSettings: RoomSettings, start?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<RoomEntry> {
return localVarFp.roomCreate(start, roomSettings, options).then((request) => request(axios, basePath)); return localVarFp.roomCreate(roomSettings, start, options).then((request) => request(axios, basePath));
}, },
/** /**
* *
@@ -1631,7 +1730,7 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomGet(roomId: string, options?: any): AxiosPromise<RoomEntry> { roomGet(roomId: string, options?: RawAxiosRequestConfig): AxiosPromise<RoomEntry> {
return localVarFp.roomGet(roomId, options).then((request) => request(axios, basePath)); return localVarFp.roomGet(roomId, options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -1641,20 +1740,30 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomGetByName(roomName: string, options?: any): AxiosPromise<RoomEntry> { roomGetByName(roomName: string, options?: RawAxiosRequestConfig): AxiosPromise<RoomEntry> {
return localVarFp.roomGetByName(roomName, options).then((request) => request(axios, basePath)); return localVarFp.roomGetByName(roomName, options).then((request) => request(axios, basePath));
}, },
/**
*
* @summary Pause room
* @param {string} roomId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
roomPause(roomId: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
return localVarFp.roomPause(roomId, options).then((request) => request(axios, basePath));
},
/** /**
* *
* @summary Recreate room * @summary Recreate room
* @param {string} roomId * @param {string} roomId
* @param {RoomSettings} roomSettings
* @param {boolean} [start] * @param {boolean} [start]
* @param {RoomSettings} [roomSettings]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomRecreate(roomId: string, start?: boolean, roomSettings?: RoomSettings, options?: any): AxiosPromise<RoomEntry> { roomRecreate(roomId: string, roomSettings: RoomSettings, start?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<RoomEntry> {
return localVarFp.roomRecreate(roomId, start, roomSettings, options).then((request) => request(axios, basePath)); return localVarFp.roomRecreate(roomId, roomSettings, start, options).then((request) => request(axios, basePath));
}, },
/** /**
* *
@@ -1663,7 +1772,7 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomRemove(roomId: string, options?: any): AxiosPromise<void> { roomRemove(roomId: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
return localVarFp.roomRemove(roomId, options).then((request) => request(axios, basePath)); return localVarFp.roomRemove(roomId, options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -1673,7 +1782,7 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomRestart(roomId: string, options?: any): AxiosPromise<void> { roomRestart(roomId: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
return localVarFp.roomRestart(roomId, options).then((request) => request(axios, basePath)); return localVarFp.roomRestart(roomId, options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -1683,7 +1792,7 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomSettings(roomId: string, options?: any): AxiosPromise<RoomSettings> { roomSettings(roomId: string, options?: RawAxiosRequestConfig): AxiosPromise<RoomSettings> {
return localVarFp.roomSettings(roomId, options).then((request) => request(axios, basePath)); return localVarFp.roomSettings(roomId, options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -1693,7 +1802,7 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomStart(roomId: string, options?: any): AxiosPromise<void> { roomStart(roomId: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
return localVarFp.roomStart(roomId, options).then((request) => request(axios, basePath)); return localVarFp.roomStart(roomId, options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -1703,7 +1812,7 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomStats(roomId: string, options?: any): AxiosPromise<RoomStats> { roomStats(roomId: string, options?: RawAxiosRequestConfig): AxiosPromise<RoomStats> {
return localVarFp.roomStats(roomId, options).then((request) => request(axios, basePath)); return localVarFp.roomStats(roomId, options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -1713,7 +1822,7 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomStop(roomId: string, options?: any): AxiosPromise<void> { roomStop(roomId: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
return localVarFp.roomStop(roomId, options).then((request) => request(axios, basePath)); return localVarFp.roomStop(roomId, options).then((request) => request(axios, basePath));
}, },
/** /**
@@ -1723,7 +1832,7 @@ export const RoomsApiFactory = function (configuration?: Configuration, basePath
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
roomsList(labels?: { [key: string]: string; }, options?: any): AxiosPromise<Array<RoomEntry>> { roomsList(labels?: { [key: string]: string; }, options?: RawAxiosRequestConfig): AxiosPromise<Array<RoomEntry>> {
return localVarFp.roomsList(labels, options).then((request) => request(axios, basePath)); return localVarFp.roomsList(labels, options).then((request) => request(axios, basePath));
}, },
}; };
@@ -1743,21 +1852,21 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public exportAsDockerCompose(options?: AxiosRequestConfig) { public exportAsDockerCompose(options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).exportAsDockerCompose(options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).exportAsDockerCompose(options).then((request) => request(this.axios, this.basePath));
} }
/** /**
* *
* @summary Create new room * @summary Create new room
* @param {RoomSettings} roomSettings
* @param {boolean} [start] * @param {boolean} [start]
* @param {RoomSettings} [roomSettings]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomCreate(start?: boolean, roomSettings?: RoomSettings, options?: AxiosRequestConfig) { public roomCreate(roomSettings: RoomSettings, start?: boolean, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomCreate(start, roomSettings, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomCreate(roomSettings, start, options).then((request) => request(this.axios, this.basePath));
} }
/** /**
@@ -1768,7 +1877,7 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomGet(roomId: string, options?: AxiosRequestConfig) { public roomGet(roomId: string, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomGet(roomId, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomGet(roomId, options).then((request) => request(this.axios, this.basePath));
} }
@@ -1780,22 +1889,34 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomGetByName(roomName: string, options?: AxiosRequestConfig) { public roomGetByName(roomName: string, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomGetByName(roomName, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomGetByName(roomName, options).then((request) => request(this.axios, this.basePath));
} }
/**
*
* @summary Pause room
* @param {string} roomId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof RoomsApi
*/
public roomPause(roomId: string, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomPause(roomId, options).then((request) => request(this.axios, this.basePath));
}
/** /**
* *
* @summary Recreate room * @summary Recreate room
* @param {string} roomId * @param {string} roomId
* @param {RoomSettings} roomSettings
* @param {boolean} [start] * @param {boolean} [start]
* @param {RoomSettings} [roomSettings]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomRecreate(roomId: string, start?: boolean, roomSettings?: RoomSettings, options?: AxiosRequestConfig) { public roomRecreate(roomId: string, roomSettings: RoomSettings, start?: boolean, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomRecreate(roomId, start, roomSettings, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomRecreate(roomId, roomSettings, start, options).then((request) => request(this.axios, this.basePath));
} }
/** /**
@@ -1806,7 +1927,7 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomRemove(roomId: string, options?: AxiosRequestConfig) { public roomRemove(roomId: string, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomRemove(roomId, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomRemove(roomId, options).then((request) => request(this.axios, this.basePath));
} }
@@ -1818,7 +1939,7 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomRestart(roomId: string, options?: AxiosRequestConfig) { public roomRestart(roomId: string, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomRestart(roomId, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomRestart(roomId, options).then((request) => request(this.axios, this.basePath));
} }
@@ -1830,7 +1951,7 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomSettings(roomId: string, options?: AxiosRequestConfig) { public roomSettings(roomId: string, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomSettings(roomId, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomSettings(roomId, options).then((request) => request(this.axios, this.basePath));
} }
@@ -1842,7 +1963,7 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomStart(roomId: string, options?: AxiosRequestConfig) { public roomStart(roomId: string, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomStart(roomId, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomStart(roomId, options).then((request) => request(this.axios, this.basePath));
} }
@@ -1854,7 +1975,7 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomStats(roomId: string, options?: AxiosRequestConfig) { public roomStats(roomId: string, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomStats(roomId, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomStats(roomId, options).then((request) => request(this.axios, this.basePath));
} }
@@ -1866,7 +1987,7 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomStop(roomId: string, options?: AxiosRequestConfig) { public roomStop(roomId: string, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomStop(roomId, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomStop(roomId, options).then((request) => request(this.axios, this.basePath));
} }
@@ -1878,7 +1999,7 @@ export class RoomsApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof RoomsApi * @memberof RoomsApi
*/ */
public roomsList(labels?: { [key: string]: string; }, options?: AxiosRequestConfig) { public roomsList(labels?: { [key: string]: string; }, options?: RawAxiosRequestConfig) {
return RoomsApiFp(this.configuration).roomsList(labels, options).then((request) => request(this.axios, this.basePath)); return RoomsApiFp(this.configuration).roomsList(labels, options).then((request) => request(this.axios, this.basePath));
} }
} }
+17 -3
View File
@@ -16,7 +16,7 @@
import type { Configuration } from './configuration'; import type { Configuration } from './configuration';
// Some imports not used depending on template conditions // Some imports not used depending on template conditions
// @ts-ignore // @ts-ignore
import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import globalAxios from 'axios'; import globalAxios from 'axios';
export const BASE_PATH = "https://virtserver.swaggerhub.com/m1k1o/neko-rooms/1.0.0".replace(/\/+$/, ""); export const BASE_PATH = "https://virtserver.swaggerhub.com/m1k1o/neko-rooms/1.0.0".replace(/\/+$/, "");
@@ -39,7 +39,7 @@ export const COLLECTION_FORMATS = {
*/ */
export interface RequestArgs { export interface RequestArgs {
url: string; url: string;
options: AxiosRequestConfig; options: RawAxiosRequestConfig;
} }
/** /**
@@ -53,7 +53,7 @@ export class BaseAPI {
constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
if (configuration) { if (configuration) {
this.configuration = configuration; this.configuration = configuration;
this.basePath = configuration.basePath || this.basePath; this.basePath = configuration.basePath ?? basePath;
} }
} }
}; };
@@ -70,3 +70,17 @@ export class RequiredError extends Error {
this.name = "RequiredError" this.name = "RequiredError"
} }
} }
interface ServerMap {
[key: string]: {
url: string,
description: string,
}[];
}
/**
*
* @export
*/
export const operationServerMap: ServerMap = {
}
+1 -1
View File
@@ -144,7 +144,7 @@ export const toPathString = function (url: URL) {
*/ */
export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) { export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {
return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || axios.defaults.baseURL || basePath) + axiosArgs.url}; const axiosRequestArgs = {...axiosArgs.options, url: (axios.defaults.baseURL ? '' : configuration?.basePath ?? basePath) + axiosArgs.url};
return axios.request<T, R>(axiosRequestArgs); return axios.request<T, R>(axiosRequestArgs);
}; };
} }
+15 -1
View File
@@ -19,6 +19,7 @@ export interface ConfigurationParameters {
password?: string; password?: string;
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>); accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
basePath?: string; basePath?: string;
serverIndex?: number;
baseOptions?: any; baseOptions?: any;
formDataCtor?: new () => any; formDataCtor?: new () => any;
} }
@@ -58,6 +59,13 @@ export class Configuration {
* @memberof Configuration * @memberof Configuration
*/ */
basePath?: string; basePath?: string;
/**
* override server index
*
* @type {number}
* @memberof Configuration
*/
serverIndex?: number;
/** /**
* base options for axios calls * base options for axios calls
* *
@@ -80,7 +88,13 @@ export class Configuration {
this.password = param.password; this.password = param.password;
this.accessToken = param.accessToken; this.accessToken = param.accessToken;
this.basePath = param.basePath; this.basePath = param.basePath;
this.baseOptions = param.baseOptions; this.serverIndex = param.serverIndex;
this.baseOptions = {
...param.baseOptions,
headers: {
...param.baseOptions?.headers,
},
};
this.formDataCtor = param.formDataCtor; this.formDataCtor = param.formDataCtor;
} }
+11 -2
View File
@@ -1,7 +1,8 @@
<template> <template>
<v-tooltip bottom v-if="tmpl" open-delay="300"> <v-tooltip bottom v-if="tmpl" open-delay="300">
<template v-slot:activator="{ on, attrs }"> <template v-slot:activator="{ on, attrs }">
<v-btn v-bind="attrs" v-on="on" @click="Action" :color="tmpl.color" :disabled="disabled" :loading="loading" icon><v-icon>{{ tmpl.icon }}</v-icon></v-btn> <v-btn v-bind="attrs" v-on="on" @click="Action" :color="tmpl.color" :disabled="disabled" :loading="loading"
icon><v-icon>{{ tmpl.icon }}</v-icon></v-btn>
</template> </template>
<span>{{ tmpl.tooltip }}</span> <span>{{ tmpl.tooltip }}</span>
</v-tooltip> </v-tooltip>
@@ -38,6 +39,14 @@ export default class RoomActionBtn extends Vue {
color: 'warning', color: 'warning',
icon: 'mdi-stop-circle-outline', icon: 'mdi-stop-circle-outline',
} }
case 'pause':
return {
dispatch: 'ROOMS_PAUSE',
msg: 'Room paused!',
tooltip: 'Pause',
color: 'orange',
icon: 'mdi-pause-circle-outline',
}
case 'restart': case 'restart':
return { return {
dispatch: 'ROOMS_RESTART', dispatch: 'ROOMS_RESTART',
@@ -102,7 +111,7 @@ export default class RoomActionBtn extends Vue {
title: this.tmpl.msg, title: this.tmpl.msg,
icon: 'success', icon: 'success',
}) })
} catch(e) { } catch (e) {
const response = (e as AxiosError).response const response = (e as AxiosError).response
if (response) { if (response) {
this.$swal({ this.$swal({
+10 -12
View File
@@ -1,23 +1,19 @@
<template> <template>
<div> <div>
<v-data-table <v-data-table :headers="headers" :items="rooms" class="elevation-1" :loading="loading"
:headers="headers" loading-text="Loading... Please wait" hide-default-footer>
:items="rooms"
class="elevation-1"
:loading="loading"
loading-text="Loading... Please wait"
hide-default-footer
>
<template v-slot:[`item.url`]="{ item }"> <template v-slot:[`item.url`]="{ item }">
<v-tooltip bottom open-delay="300"> <v-tooltip bottom open-delay="300">
<template v-slot:activator="{ on, attrs }"> <template v-slot:activator="{ on, attrs }">
<v-btn v-bind="attrs" v-on="on" @click="roomId = item.id; dialog = true" color="blue" small class="mr-2"> <v-icon small>mdi-information-outline</v-icon></v-btn> <v-btn v-bind="attrs" v-on="on" @click="roomId = item.id; dialog = true" color="blue" small class="mr-2">
<v-icon small>mdi-information-outline</v-icon></v-btn>
</template> </template>
<span>View more information</span> <span>View more information</span>
</v-tooltip> </v-tooltip>
<v-tooltip bottom open-delay="300"> <v-tooltip bottom open-delay="300">
<template v-slot:activator="{ on, attrs }"> <template v-slot:activator="{ on, attrs }">
<v-btn v-bind="attrs" v-on="on" :disabled="!item.running" :href="item.url" target="_blank" small> <v-icon small>mdi-open-in-new</v-icon></v-btn> <v-btn v-bind="attrs" v-on="on" :disabled="!item.running" :href="item.url" target="_blank" small> <v-icon
small>mdi-open-in-new</v-icon></v-btn>
</template> </template>
<span>Link to deployment</span> <span>Link to deployment</span>
</v-tooltip> </v-tooltip>
@@ -37,14 +33,16 @@
<i v-else>uses mux</i> <i v-else>uses mux</i>
</template> </template>
<template v-slot:[`item.status`]="{ item }"> <template v-slot:[`item.status`]="{ item }">
<v-chip :color="item.running ? (item.status.includes('unhealthy') ? 'warning' : 'green') : 'red'" dark small> {{ item.status }} </v-chip> <v-chip :color="item.running ? (item.status.includes('unhealthy') ? 'warning' : 'green') : 'red'" dark small> {{
item.status }} </v-chip>
</template> </template>
<template v-slot:[`item.created`]="{ item }"> <template v-slot:[`item.created`]="{ item }">
{{ item.created | timeago }} {{ item.created | timeago }}
</template> </template>
<template v-slot:[`item.actions`]="{ item }"> <template v-slot:[`item.actions`]="{ item }">
<RoomActionBtn action="start" :roomId="item.id" :disabled="item.running" /> <RoomActionBtn action="start" :roomId="item.id" :disabled="item.running" />
<RoomActionBtn action="stop" :roomId="item.id" :disabled="!item.running" /> <RoomActionBtn action="stop" :roomId="item.id" :disabled="!item.running && !item.paused" />
<RoomActionBtn action="pause" :roomId="item.id" :disabled="!item.running" />
<RoomActionBtn action="restart" :roomId="item.id" :disabled="!item.running" /> <RoomActionBtn action="restart" :roomId="item.id" :disabled="!item.running" />
</template> </template>
<template v-slot:[`item.destroy`]="{ item }"> <template v-slot:[`item.destroy`]="{ item }">
+14 -3
View File
@@ -85,12 +85,12 @@ export default new Vuex.Store({
commit('ROOMS_SET', res.data); commit('ROOMS_SET', res.data);
}, },
async ROOMS_CREATE({ commit }: ActionContext<State, State>, roomSettings: RoomSettings): Promise<RoomEntry> { async ROOMS_CREATE({ commit }: ActionContext<State, State>, roomSettings: RoomSettings): Promise<RoomEntry> {
const res = await roomsApi.roomCreate(false, roomSettings) const res = await roomsApi.roomCreate(roomSettings, false)
commit('ROOMS_ADD', res.data); commit('ROOMS_ADD', res.data);
return res.data return res.data
}, },
async ROOMS_CREATE_AND_START({ commit }: ActionContext<State, State>, roomSettings: RoomSettings): Promise<RoomEntry> { async ROOMS_CREATE_AND_START({ commit }: ActionContext<State, State>, roomSettings: RoomSettings): Promise<RoomEntry> {
const res = await roomsApi.roomCreate(true, roomSettings) const res = await roomsApi.roomCreate(roomSettings, true)
commit('ROOMS_ADD', res.data); commit('ROOMS_ADD', res.data);
return res.data return res.data
}, },
@@ -116,6 +116,7 @@ export default new Vuex.Store({
commit('ROOMS_PUT', { commit('ROOMS_PUT', {
id: roomId, id: roomId,
running: true, running: true,
paused: false,
status: 'Up', status: 'Up',
}); });
}, },
@@ -124,14 +125,24 @@ export default new Vuex.Store({
commit('ROOMS_PUT', { commit('ROOMS_PUT', {
id: roomId, id: roomId,
running: false, running: false,
paused: false,
status: 'Exited', status: 'Exited',
}); });
}, },
async ROOMS_PAUSE({ commit }: ActionContext<State, State>, roomId: string) {
await roomsApi.roomPause(roomId)
commit('ROOMS_PUT', {
id: roomId,
running: false,
paused: true,
status: 'Paused',
});
},
async ROOMS_RESTART(_: ActionContext<State, State>, roomId: string) { async ROOMS_RESTART(_: ActionContext<State, State>, roomId: string) {
await roomsApi.roomRestart(roomId) await roomsApi.roomRestart(roomId)
}, },
async ROOMS_RECREATE({ commit }: ActionContext<State, State>, roomId: string) { async ROOMS_RECREATE({ commit }: ActionContext<State, State>, roomId: string) {
const res = await roomsApi.roomRecreate(roomId) const res = await roomsApi.roomRecreate(roomId, {} as RoomSettings)
commit('ROOMS_DEL', roomId) commit('ROOMS_DEL', roomId)
commit('ROOMS_PUT', res.data) commit('ROOMS_PUT', res.data)
return res.data return res.data
+1
View File
@@ -58,6 +58,7 @@ func (manager *ApiManagerCtx) Mount(r chi.Router) {
r.Post("/start", manager.roomGenericAction(manager.rooms.Start)) r.Post("/start", manager.roomGenericAction(manager.rooms.Start))
r.Post("/stop", manager.roomGenericAction(manager.rooms.Stop)) r.Post("/stop", manager.roomGenericAction(manager.rooms.Stop))
r.Post("/restart", manager.roomGenericAction(manager.rooms.Restart)) r.Post("/restart", manager.roomGenericAction(manager.rooms.Restart))
r.Post("/pause", manager.roomGenericAction(manager.rooms.Pause))
r.Post("/recreate", manager.roomRecreate) r.Post("/recreate", manager.roomRecreate)
}) })
+24
View File
@@ -87,6 +87,30 @@ func RoomNotRunning(w http.ResponseWriter, r *http.Request, waitEnabled bool) {
w.Write([]byte(`<meta http-equiv="refresh" content="10">`)) w.Write([]byte(`<meta http-equiv="refresh" content="10">`))
} }
} }
func RoomPaused(w http.ResponseWriter, r *http.Request, waitEnabled bool) {
utils.Swal2Response(w, `
<div class="swal2-header">
<div class="swal2-icon swal2-warning">
<div class="swal2-icon-content">!</div>
</div>
<h2 class="swal2-title">Room is paused!</h2>
</div>
<div class="swal2-content">
<div>The room you are trying to join is paused.</div>
<div>You can wait on this page until it will be unpaused.</div>
</div>
<div class="swal2-actions">
<div class="swal2-loader" style="display:none;"></div>
<button type="button" onclick="location = location" class="swal2-confirm swal2-styled" style="margin-top: 1.25em">Reload</button>
</div>
`)
if waitEnabled {
roomWait(w, r)
} else {
w.Write([]byte(`<meta http-equiv="refresh" content="2">`))
}
}
func RoomNotReady(w http.ResponseWriter, r *http.Request, waitEnabled bool) { func RoomNotReady(w http.ResponseWriter, r *http.Request, waitEnabled bool) {
utils.Swal2Response(w, ` utils.Swal2Response(w, `
+10
View File
@@ -22,6 +22,7 @@ type entry struct {
id string id string
running bool running bool
ready bool ready bool
paused bool
handler http.Handler handler http.Handler
} }
@@ -130,6 +131,12 @@ func (p *ProxyManagerCtx) Start() {
id: msg.ID, id: msg.ID,
running: false, running: false,
}) })
case types.RoomEventPaused:
p.handlers.Insert(path, &entry{
id: msg.ID,
running: false,
paused: true,
})
case types.RoomEventDestroyed: case types.RoomEventDestroyed:
p.handlers.Remove(path) p.handlers.Remove(path)
} }
@@ -167,6 +174,7 @@ func (p *ProxyManagerCtx) Refresh() error {
id: room.ID, id: room.ID,
running: room.Running, running: room.Running,
ready: room.IsReady, ready: room.IsReady,
paused: room.Paused,
} }
// if proxying is enabled and room is ready // if proxying is enabled and room is ready
@@ -263,6 +271,8 @@ func (p *ProxyManagerCtx) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if !ok { if !ok {
RoomNotFound(w, r, p.waitEnabled) RoomNotFound(w, r, p.waitEnabled)
} else if proxy.paused {
RoomPaused(w, r, p.waitEnabled)
} else if !proxy.running { } else if !proxy.running {
RoomNotRunning(w, r, p.waitEnabled) RoomNotRunning(w, r, p.waitEnabled)
} else { } else {
+1
View File
@@ -30,6 +30,7 @@ func (manager *RoomManagerCtx) containerToEntry(container dockerTypes.Container)
IsOutdated: labels.NekoImage != container.Image, IsOutdated: labels.NekoImage != container.Image,
MaxConnections: labels.Epr.Max - labels.Epr.Min + 1, MaxConnections: labels.Epr.Max - labels.Epr.Min + 1,
Running: container.State == "running", Running: container.State == "running",
Paused: container.State == "paused",
IsReady: manager.events.IsRoomReady(roomId) || strings.Contains(container.Status, "healthy"), IsReady: manager.events.IsRoomReady(roomId) || strings.Contains(container.Status, "healthy"),
Status: container.Status, Status: container.Status,
Created: time.Unix(container.Created, 0), Created: time.Unix(container.Created, 0),
+10
View File
@@ -98,6 +98,8 @@ func (e *events) Start() {
filters.Arg("event", "health_status"), filters.Arg("event", "health_status"),
filters.Arg("event", "stop"), filters.Arg("event", "stop"),
filters.Arg("event", "destroy"), filters.Arg("event", "destroy"),
filters.Arg("event", "pause"),
filters.Arg("event", "unpause"),
), ),
}) })
@@ -163,6 +165,14 @@ func (e *events) Start() {
e.runningRooms.Dec() e.runningRooms.Dec()
case "destroy": case "destroy":
action = types.RoomEventDestroyed action = types.RoomEventDestroyed
case "pause":
action = types.RoomEventPaused
e.setRoomNotReady(roomId)
e.runningRooms.Dec()
case "unpause":
action = types.RoomEventStarted
e.waitForRoomReady(roomId, labels)
e.runningRooms.Inc()
} }
e.broadcast(types.RoomEvent{ e.broadcast(types.RoomEvent{
+20 -1
View File
@@ -987,11 +987,20 @@ func (manager *RoomManagerCtx) GetStats(ctx context.Context, id string) (*types.
} }
func (manager *RoomManagerCtx) Start(ctx context.Context, id string) error { func (manager *RoomManagerCtx) Start(ctx context.Context, id string) error {
_, err := manager.inspectContainer(ctx, id) container, err := manager.inspectContainer(ctx, id)
if err != nil { if err != nil {
return err return err
} }
// If paused, we need to unpause the container
if container.State.Paused {
if err := manager.client.ContainerUnpause(ctx, id); err != nil {
return err
}
return nil
}
// Start the actual container // Start the actual container
return manager.client.ContainerStart(ctx, id, dockerTypes.ContainerStartOptions{}) return manager.client.ContainerStart(ctx, id, dockerTypes.ContainerStartOptions{})
} }
@@ -1022,6 +1031,16 @@ func (manager *RoomManagerCtx) Restart(ctx context.Context, id string) error {
}) })
} }
func (manager *RoomManagerCtx) Pause(ctx context.Context, id string) error {
_, err := manager.inspectContainer(ctx, id)
if err != nil {
return err
}
// Pause the actual container
return manager.client.ContainerPause(ctx, id)
}
// events // events
func (manager *RoomManagerCtx) EventsLoopStart() { func (manager *RoomManagerCtx) EventsLoopStart() {
+3
View File
@@ -23,6 +23,7 @@ type RoomEntry struct {
IsOutdated bool `json:"is_outdated"` IsOutdated bool `json:"is_outdated"`
MaxConnections uint16 `json:"max_connections"` // 0 when using mux MaxConnections uint16 `json:"max_connections"` // 0 when using mux
Running bool `json:"running"` Running bool `json:"running"`
Paused bool `json:"paused"`
IsReady bool `json:"is_ready"` IsReady bool `json:"is_ready"`
Status string `json:"status"` Status string `json:"status"`
Created time.Time `json:"created"` Created time.Time `json:"created"`
@@ -149,6 +150,7 @@ const (
RoomEventReady RoomEventAction = "ready" RoomEventReady RoomEventAction = "ready"
RoomEventStopped RoomEventAction = "stopped" RoomEventStopped RoomEventAction = "stopped"
RoomEventDestroyed RoomEventAction = "destroyed" RoomEventDestroyed RoomEventAction = "destroyed"
RoomEventPaused RoomEventAction = "paused"
) )
type RoomEvent struct { type RoomEvent struct {
@@ -175,6 +177,7 @@ type RoomManager interface {
Start(ctx context.Context, id string) error Start(ctx context.Context, id string) error
Stop(ctx context.Context, id string) error Stop(ctx context.Context, id string) error
Restart(ctx context.Context, id string) error Restart(ctx context.Context, id string) error
Pause(ctx context.Context, id string) error
EventsLoopStart() EventsLoopStart()
EventsLoopStop() error EventsLoopStop() error