/* 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 { exists, mapValues } from '../runtime'; import type { ExposedPort } from './ExposedPort'; import { ExposedPortFromJSON, ExposedPortFromJSONTyped, ExposedPortToJSON, } from './ExposedPort'; /** * * @export * @interface CreateRoomResponse */ export interface CreateRoomResponse { /** * * @type {Array} * @memberof CreateRoomResponse */ additionalExposedPorts: Array; /** * * @type {ExposedPort} * @memberof CreateRoomResponse */ exposedPort?: ExposedPort; /** * `exposedPort` will only be available when the `status` of a room is "active". * @type {string} * @memberof CreateRoomResponse */ status: CreateRoomResponseStatusEnum; /** * Unique identifier to a game session or match. Use the default system generated ID or overwrite it with your own. * Note: error will be returned if `roomId` is not globally unique. * @type {string} * @memberof CreateRoomResponse */ roomId: string; /** * System generated unique identifier to a runtime instance of your game server. * @type {string} * @memberof CreateRoomResponse */ processId: string; } /** * @export */ export const CreateRoomResponseStatusEnum = { Starting: 'starting', Active: 'active' } as const; export type CreateRoomResponseStatusEnum = typeof CreateRoomResponseStatusEnum[keyof typeof CreateRoomResponseStatusEnum]; /** * Check if a given object implements the CreateRoomResponse interface. */ export function instanceOfCreateRoomResponse(value: object): boolean { let isInstance = true; isInstance = isInstance && "additionalExposedPorts" in value; isInstance = isInstance && "status" in value; isInstance = isInstance && "roomId" in value; isInstance = isInstance && "processId" in value; return isInstance; } export function CreateRoomResponseFromJSON(json: any): CreateRoomResponse { return CreateRoomResponseFromJSONTyped(json, false); } export function CreateRoomResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateRoomResponse { if ((json === undefined) || (json === null)) { return json; } return { 'additionalExposedPorts': ((json['additionalExposedPorts'] as Array).map(ExposedPortFromJSON)), 'exposedPort': !exists(json, 'exposedPort') ? undefined : ExposedPortFromJSON(json['exposedPort']), 'status': json['status'], 'roomId': json['roomId'], 'processId': json['processId'], }; } export function CreateRoomResponseToJSON(value?: CreateRoomResponse | null): any { if (value === undefined) { return undefined; } if (value === null) { return null; } return { 'additionalExposedPorts': ((value.additionalExposedPorts as Array).map(ExposedPortToJSON)), 'exposedPort': ExposedPortToJSON(value.exposedPort), 'status': value.status, 'roomId': value.roomId, 'processId': value.processId, }; }