/* tslint:disable */ /* eslint-disable */ /** * Hathora Cloud API * Welcome to the Hathora Cloud API documentation! Learn how to use the Hathora Cloud APIs to build and scale your game servers globally. * * The version of the OpenAPI document: 0.0.1 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import * as runtime from '../runtime'; import type { ApiError, AppConfig, Application, ApplicationWithLatestDeploymentAndBuild, } from '../models'; import { ApiErrorFromJSON, ApiErrorToJSON, AppConfigFromJSON, AppConfigToJSON, ApplicationFromJSON, ApplicationToJSON, ApplicationWithLatestDeploymentAndBuildFromJSON, ApplicationWithLatestDeploymentAndBuildToJSON, } from '../models'; export interface CreateAppRequest { appConfig: AppConfig; } export interface DeleteAppRequest { appId: string; } export interface GetAppInfoRequest { appId: string; } export interface UpdateAppRequest { appId: string; appConfig: AppConfig; } /** * AppV1Api - interface * * @export * @interface AppV1ApiInterface */ export interface AppV1ApiInterface { /** * Create a new [application](https://hathora.dev/docs/concepts/hathora-entities#application). * @param {AppConfig} appConfig * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AppV1ApiInterface */ createAppRaw(requestParameters: CreateAppRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Create a new [application](https://hathora.dev/docs/concepts/hathora-entities#application). */ createApp(appConfig: AppConfig, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Delete an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. Your organization will lose access to this application. * @param {string} appId * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AppV1ApiInterface */ deleteAppRaw(requestParameters: DeleteAppRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Delete an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. Your organization will lose access to this application. */ deleteApp(appId: string, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Get details for an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. * @param {string} appId * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AppV1ApiInterface */ getAppInfoRaw(requestParameters: GetAppInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Get details for an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. */ getAppInfo(appId: string, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Returns an unsorted list of your organization’s [applications](https://hathora.dev/docs/concepts/hathora-entities#application). An application is uniquely identified by an `appId`. * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AppV1ApiInterface */ getAppsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; /** * Returns an unsorted list of your organization’s [applications](https://hathora.dev/docs/concepts/hathora-entities#application). An application is uniquely identified by an `appId`. */ getApps(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Update data for an existing [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. * @param {string} appId * @param {AppConfig} appConfig * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AppV1ApiInterface */ updateAppRaw(requestParameters: UpdateAppRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Update data for an existing [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. */ updateApp(appId: string, appConfig: AppConfig, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; } /** * */ export class AppV1Api extends runtime.BaseAPI implements AppV1ApiInterface { /** * Create a new [application](https://hathora.dev/docs/concepts/hathora-entities#application). */ async createAppRaw(requestParameters: CreateAppRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.appConfig === null || requestParameters.appConfig === undefined) { throw new runtime.RequiredError('appConfig','Required parameter requestParameters.appConfig was null or undefined when calling createApp.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("hathoraDevToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/apps/v1/create`, method: 'POST', headers: headerParameters, query: queryParameters, body: AppConfigToJSON(requestParameters.appConfig), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ApplicationFromJSON(jsonValue)); } /** * Create a new [application](https://hathora.dev/docs/concepts/hathora-entities#application). */ async createApp(appConfig: AppConfig, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.createAppRaw({ appConfig: appConfig }, initOverrides); return await response.value(); } /** * Delete an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. Your organization will lose access to this application. */ async deleteAppRaw(requestParameters: DeleteAppRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.appId === null || requestParameters.appId === undefined) { throw new runtime.RequiredError('appId','Required parameter requestParameters.appId was null or undefined when calling deleteApp.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("hathoraDevToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/apps/v1/delete/{appId}`.replace(`{${"appId"}}`, encodeURIComponent(String(requestParameters.appId))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Delete an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. Your organization will lose access to this application. */ async deleteApp(appId: string, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.deleteAppRaw({ appId: appId }, initOverrides); } /** * Get details for an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. */ async getAppInfoRaw(requestParameters: GetAppInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.appId === null || requestParameters.appId === undefined) { throw new runtime.RequiredError('appId','Required parameter requestParameters.appId was null or undefined when calling getAppInfo.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("hathoraDevToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/apps/v1/info/{appId}`.replace(`{${"appId"}}`, encodeURIComponent(String(requestParameters.appId))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ApplicationFromJSON(jsonValue)); } /** * Get details for an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. */ async getAppInfo(appId: string, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getAppInfoRaw({ appId: appId }, initOverrides); return await response.value(); } /** * Returns an unsorted list of your organization’s [applications](https://hathora.dev/docs/concepts/hathora-entities#application). An application is uniquely identified by an `appId`. */ async getAppsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("hathoraDevToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/apps/v1/list`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ApplicationWithLatestDeploymentAndBuildFromJSON)); } /** * Returns an unsorted list of your organization’s [applications](https://hathora.dev/docs/concepts/hathora-entities#application). An application is uniquely identified by an `appId`. */ async getApps(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.getAppsRaw(initOverrides); return await response.value(); } /** * Update data for an existing [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. */ async updateAppRaw(requestParameters: UpdateAppRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.appId === null || requestParameters.appId === undefined) { throw new runtime.RequiredError('appId','Required parameter requestParameters.appId was null or undefined when calling updateApp.'); } if (requestParameters.appConfig === null || requestParameters.appConfig === undefined) { throw new runtime.RequiredError('appConfig','Required parameter requestParameters.appConfig was null or undefined when calling updateApp.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("hathoraDevToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/apps/v1/update/{appId}`.replace(`{${"appId"}}`, encodeURIComponent(String(requestParameters.appId))), method: 'POST', headers: headerParameters, query: queryParameters, body: AppConfigToJSON(requestParameters.appConfig), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ApplicationFromJSON(jsonValue)); } /** * Update data for an existing [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. */ async updateApp(appId: string, appConfig: AppConfig, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.updateAppRaw({ appId: appId, appConfig: appConfig }, initOverrides); return await response.value(); } }