This repository has been archived by the owner on Oct 16, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
swagger.json
1 lines (1 loc) · 122 KB
/
swagger.json
1
{"components": {"examples": {}, "headers": {}, "parameters": {}, "requestBodies": {}, "responses": {}, "schemas": {"AppName": {"type": "string", "example": "minecraft", "description": "Readable name for an application. Must be unique within an organization.", "maxLength": 64, "pattern": "^[a-z0-9-]+$"}, "AppId": {"type": "string", "example": "app-af469a92-5b45-4565-b3c4-b79878de67d2", "description": "System generated unique identifier for an application."}, "Record_string.never_": {"properties": {}, "type": "object", "description": "Construct a type with a set of properties K of type T"}, "AuthConfiguration": {"properties": {"google": {"properties": {"clientId": {"type": "string", "description": "A Google generated token representing the developer's credentials for [Google's API Console](https://console.cloud.google.com/apis/dashboard?pli=1&project=discourse-login-388921). Learn how to get a `clientId` [here](https://developers.google.com/identity/gsi/web/guides/get-google-api-clientid)."}}, "required": ["clientId"], "type": "object", "description": "Enable google auth for your application."}, "nickname": {"$ref": "#/components/schemas/Record_string.never_", "description": "Enable nickname auth for your application."}, "anonymous": {"$ref": "#/components/schemas/Record_string.never_", "description": "Enable anonymous auth for your application."}}, "type": "object", "description": "Configure [player authentication](https://hathora.dev/docs/lobbies-and-matchmaking/auth-service) for your application. Use Hathora's built-in auth providers or use your own [custom authentication](https://hathora.dev/docs/lobbies-and-matchmaking/auth-service#custom-auth-provider)."}, "OrgId": {"type": "string", "example": "org-6f706e83-0ec1-437a-9a46-7d4281eb2f39", "description": "System generated unique identifier for an organization. Not guaranteed to have a specific format."}, "Application": {"properties": {"deletedBy": {"type": "string", "nullable": true, "description": "UserId or email address for the user that deleted the application.", "example": "google-oauth2|107030234048588177467"}, "deletedAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When the application was deleted."}, "createdAt": {"type": "string", "format": "date-time", "description": "When the application was created."}, "createdBy": {"type": "string", "description": "UserId or email address for the user that created the application.", "example": "google-oauth2|107030234048588177467"}, "orgId": {"$ref": "#/components/schemas/OrgId"}, "authConfiguration": {"$ref": "#/components/schemas/AuthConfiguration", "description": "Used to authenticate player requests. Use your own authentication or Hathora's Auth Client."}, "appSecret": {"type": "string", "description": "Secret that is used for identity and access management.", "example": "secret-6f706e83-0ec1-437a-9a46-7d4281eb2f39"}, "appId": {"$ref": "#/components/schemas/AppId"}, "appName": {"$ref": "#/components/schemas/AppName"}}, "required": ["deletedBy", "deletedAt", "createdAt", "createdBy", "orgId", "authConfiguration", "appSecret", "appId", "appName"], "type": "object", "description": "An application object is the top level namespace for the game server."}, "BuildId": {"type": "integer", "format": "int32", "example": 1, "description": "System generated id for a build. Increments by 1."}, "DeploymentId": {"type": "integer", "format": "int32", "example": 1, "description": "System generated id for a deployment. Increments by 1."}, "TransportType": {"type": "string", "enum": ["tcp", "udp", "tls"], "description": "Transport type specifies the underlying communication protocol to the exposed port."}, "ContainerPort": {"properties": {"transportType": {"$ref": "#/components/schemas/TransportType"}, "port": {"type": "integer", "format": "int32", "example": 8000, "minimum": 1, "maximum": 65535}, "name": {"type": "string", "description": "Readable name for the port.", "example": "default", "minLength": 1, "maxLength": 100, "pattern": "^[a-z][a-z0-9-]*$"}}, "required": ["transportType", "port", "name"], "type": "object", "description": "A container port object represents the transport configruations for how your server will listen."}, "NumRoomsPerProcess": {"type": "integer", "format": "int32", "example": 3, "description": "Governs how many [rooms](https://hathora.dev/docs/concepts/hathora-entities#room) can be scheduled in a process.", "minimum": 1, "maximum": 10000}, "DeploymentV2": {"properties": {"idleTimeoutEnabled": {"type": "boolean", "description": "Option to shut down processes that have had no new connections or rooms\nfor five minutes."}, "env": {"items": {"properties": {"value": {"type": "string", "example": "TRUE", "maxLength": 5000}, "name": {"type": "string", "example": "EULA", "minLength": 1, "maxLength": 100, "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"}}, "required": ["value", "name"], "type": "object"}, "type": "array", "description": "The environment variable that our process will have access to at runtime.", "maxItems": 100}, "roomsPerProcess": {"$ref": "#/components/schemas/NumRoomsPerProcess"}, "additionalContainerPorts": {"items": {"$ref": "#/components/schemas/ContainerPort"}, "type": "array", "description": "Additional ports your server listens on.", "example": {"transportType": "tcp", "port": 4000, "name": "debug"}, "maxItems": 2}, "defaultContainerPort": {"$ref": "#/components/schemas/ContainerPort", "description": "Describes the primary port your process listens on."}, "createdAt": {"type": "string", "format": "date-time", "description": "When the deployment was created."}, "createdBy": {"type": "string", "description": "UserId or email address for the user that created the deployment.", "example": "google-oauth2|107030234048588177467"}, "requestedMemoryMB": {"type": "number", "format": "double", "description": "The amount of memory allocated to your process.", "example": 1024}, "requestedCPU": {"type": "number", "format": "double", "description": "The number of cores allocated to your process.", "example": 0.5}, "deploymentId": {"$ref": "#/components/schemas/DeploymentId"}, "buildId": {"$ref": "#/components/schemas/BuildId"}, "appId": {"$ref": "#/components/schemas/AppId"}}, "required": ["idleTimeoutEnabled", "env", "roomsPerProcess", "additionalContainerPorts", "defaultContainerPort", "createdAt", "createdBy", "requestedMemoryMB", "requestedCPU", "deploymentId", "buildId", "appId"], "type": "object"}, "BuildStatus": {"type": "string", "enum": ["created", "running", "succeeded", "failed"]}, "Region": {"type": "string", "enum": ["Seattle", "Los_Angeles", "Washington_DC", "Chicago", "London", "Frankfurt", "Mumbai", "Singapore", "Tokyo", "Sydney", "Sao_Paulo", "Dallas"]}, "BuildTag": {"type": "string", "example": "0.1.14-14c793", "description": "Tag to associate an external version with a build. It is accessible via [`GetBuildInfo()`](https://hathora.dev/api#tag/BuildV2/operation/GetBuildInfo).", "maxLength": 1000}, "Build": {"properties": {"buildTag": {"allOf": [{"$ref": "#/components/schemas/BuildTag"}], "nullable": true}, "regionalContainerTags": {"items": {"properties": {"containerTag": {"type": "string"}, "region": {"$ref": "#/components/schemas/Region"}}, "required": ["containerTag", "region"], "type": "object"}, "type": "array", "deprecated": true}, "imageSize": {"type": "integer", "format": "int64", "description": "The size (in bytes) of the Docker image built by Hathora."}, "status": {"$ref": "#/components/schemas/BuildStatus", "description": "Current status of your build.\n\n`created`: a build was created but not yet run\n\n`running`: the build process is actively executing\n\n`succeeded`: the game server artifact was successfully built and stored in the Hathora registries\n\n`failed`: the build process was unsuccessful, most likely due to an error with the `Dockerfile`"}, "deletedAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When the build was deleted."}, "finishedAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When [`RunBuild()`](https://hathora.dev/api#tag/BuildV2/operation/RunBuild) finished executing."}, "startedAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When [`RunBuild()`](https://hathora.dev/api#tag/BuildV2/operation/RunBuild) is called."}, "createdAt": {"type": "string", "format": "date-time", "description": "When [`CreateBuild()`](https://hathora.dev/api#tag/BuildV2/operation/CreateBuild) is called."}, "createdBy": {"type": "string", "description": "UserId or email address for the user that created the build.", "example": "google-oauth2|107030234048588177467"}, "buildId": {"$ref": "#/components/schemas/BuildId"}, "appId": {"$ref": "#/components/schemas/AppId"}}, "required": ["regionalContainerTags", "imageSize", "status", "deletedAt", "finishedAt", "startedAt", "createdAt", "createdBy", "buildId", "appId"], "type": "object", "description": "A build represents a game server artifact and its associated metadata."}, "ApplicationWithLatestDeploymentAndBuild": {"allOf": [{"$ref": "#/components/schemas/Application"}, {"properties": {"deployment": {"allOf": [{"$ref": "#/components/schemas/DeploymentV2"}, {"properties": {"build": {"$ref": "#/components/schemas/Build"}}, "required": ["build"], "type": "object"}]}}, "type": "object"}]}, "AppConfig": {"properties": {"authConfiguration": {"$ref": "#/components/schemas/AuthConfiguration"}, "appName": {"$ref": "#/components/schemas/AppName"}}, "required": ["authConfiguration", "appName"], "type": "object"}, "ApiError": {"properties": {"message": {"type": "string"}}, "required": ["message"], "type": "object"}, "PlayerTokenObject": {"properties": {"token": {"type": "string", "description": "A unique Hathora-signed JWT player token.", "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiYW5vbnltb3VzIiwiaWQiOiJ3aDA4eWN3eTJwOSIsIm5hbWUiOiJqaXR0ZXJ5LXNhbG1vbi1ndWxsIiwiaWF0IjoxNjg5MzQ5MTk3fQ.-LzlPhZw2tw0ycZ229IRHwwmINGKWNPFMDrXOphLjEk"}}, "required": ["token"], "type": "object"}, "NicknameObject": {"properties": {"nickname": {"type": "string", "description": "An alias to represent a player.", "example": "squiddytwoshoes"}}, "required": ["nickname"], "type": "object"}, "GoogleIdTokenObject": {"properties": {"idToken": {"type": "string", "description": "A Google-signed OIDC ID token representing a player's authenticated identity. Learn how to get an `idToken` [here](https://cloud.google.com/docs/authentication/get-id-token).", "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6ImZkNDhhNzUxMzhkOWQ0OGYwYWE2MzVlZjU2OWM0ZTE5NmY3YWU4ZDYiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODQ4NDEyODI2Nzg4LW00bXNyYjZxNDRkbTJ1ZTNrZ3Z1aTBmcTdrZGE1NWxzLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODQ4NDEyODI2Nzg4LW00bXNyYjZxNDRkbTJ1ZTNrZ3Z1aTBmcTdrZGE1NWxzLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0NTQyMzMwNzI3MTU2MTMzNzc2IiwiZW1haWwiOiJocGFdkeivmeuzQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoidno1NGhhdTNxbnVR"}}, "required": ["idToken"], "type": "object"}, "CardBrand": {"type": "string", "enum": ["amex", "cartes_bancaires", "diners", "discover", "jcb", "mastercard", "visa", "unionpay", "card"]}, "CardPaymentMethod": {"properties": {"last4": {"type": "string"}, "brand": {"$ref": "#/components/schemas/CardBrand"}}, "required": ["last4", "brand"], "type": "object"}, "AchPaymentMethod": {"properties": {"last4": {"type": "string"}, "bankName": {"type": "string"}}, "type": "object"}, "LinkPaymentMethod": {"properties": {"email": {"type": "string"}}, "type": "object"}, "Partial__card-CardPaymentMethod--ach-AchPaymentMethod--link-LinkPaymentMethod--__": {"properties": {"card": {"$ref": "#/components/schemas/CardPaymentMethod"}, "ach": {"$ref": "#/components/schemas/AchPaymentMethod"}, "link": {"$ref": "#/components/schemas/LinkPaymentMethod"}}, "type": "object", "description": "Make all properties in T optional"}, "PaymentMethod": {"$ref": "#/components/schemas/Partial__card-CardPaymentMethod--ach-AchPaymentMethod--link-LinkPaymentMethod--__"}, "CustomerPortalUrl": {"properties": {"returnUrl": {"type": "string"}}, "required": ["returnUrl"], "type": "object"}, "InvoiceStatus": {"type": "string", "enum": ["pending", "paid", "overdue"]}, "Invoice": {"properties": {"status": {"$ref": "#/components/schemas/InvoiceStatus"}, "amountDue": {"type": "number", "format": "double"}, "pdfUrl": {"type": "string"}, "dueDate": {"type": "string", "format": "date-time"}, "year": {"type": "number", "format": "double"}, "month": {"type": "number", "format": "double"}, "id": {"type": "string"}}, "required": ["status", "amountDue", "pdfUrl", "dueDate", "year", "month", "id"], "type": "object"}, "CreateBuildParams": {"properties": {"buildTag": {"$ref": "#/components/schemas/BuildTag"}}, "type": "object"}, "PlanName": {"type": "string", "enum": ["tiny", "small", "medium", "large"], "example": "tiny", "description": "A plan defines how much CPU and memory is required to run an instance of your game server.\n\n`tiny`: shared core, 1gb memory\n\n`small`: 1 core, 2gb memory\n\n`medium`: 2 core, 4gb memory\n\n`large`: 4 core, 8gb memory"}, "Deployment": {"properties": {"idleTimeoutEnabled": {"type": "boolean", "description": "Option to shut down processes that have had no new connections or rooms\nfor five minutes.", "default": "true"}, "env": {"items": {"properties": {"value": {"type": "string", "example": "TRUE", "maxLength": 5000}, "name": {"type": "string", "example": "EULA", "minLength": 1, "maxLength": 100, "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"}}, "required": ["value", "name"], "type": "object"}, "type": "array", "description": "The environment variable that our process will have access to at runtime.", "maxItems": 100}, "roomsPerProcess": {"$ref": "#/components/schemas/NumRoomsPerProcess"}, "planName": {"$ref": "#/components/schemas/PlanName", "deprecated": true}, "additionalContainerPorts": {"items": {"$ref": "#/components/schemas/ContainerPort"}, "type": "array", "description": "Additional ports your server listens on.", "example": {"transportType": "tcp", "port": 4000, "name": "debug"}, "maxItems": 2}, "defaultContainerPort": {"$ref": "#/components/schemas/ContainerPort", "description": "Describes the primary port your process listens on."}, "transportType": {"type": "string", "enum": ["tcp", "udp", "tls"], "deprecated": true}, "containerPort": {"type": "number", "format": "double", "deprecated": true}, "createdAt": {"type": "string", "format": "date-time", "description": "When the deployment was created."}, "createdBy": {"type": "string", "description": "UserId or email address for the user that created the deployment.", "example": "google-oauth2|107030234048588177467"}, "requestedMemoryMB": {"type": "integer", "format": "int32", "description": "The amount of memory allocated to your process.", "example": 1024}, "requestedCPU": {"type": "number", "format": "double", "description": "The number of cores allocated to your process.", "example": 0.5}, "deploymentId": {"$ref": "#/components/schemas/DeploymentId"}, "buildId": {"$ref": "#/components/schemas/BuildId"}, "appId": {"$ref": "#/components/schemas/AppId"}}, "required": ["env", "roomsPerProcess", "planName", "additionalContainerPorts", "defaultContainerPort", "transportType", "containerPort", "createdAt", "createdBy", "requestedMemoryMB", "requestedCPU", "deploymentId", "buildId", "appId"], "type": "object", "description": "Deployment is a versioned configuration for a build that describes runtime behavior."}, "DeploymentConfig": {"properties": {"idleTimeoutEnabled": {"type": "boolean", "description": "Option to shut down processes that have had no new connections or rooms\nfor five minutes.", "default": "true"}, "env": {"items": {"properties": {"value": {"type": "string", "example": "TRUE", "maxLength": 5000}, "name": {"type": "string", "example": "EULA", "minLength": 1, "maxLength": 100, "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"}}, "required": ["value", "name"], "type": "object"}, "type": "array", "description": "The environment variable that our process will have access to at runtime.", "maxItems": 100}, "roomsPerProcess": {"$ref": "#/components/schemas/NumRoomsPerProcess"}, "planName": {"$ref": "#/components/schemas/PlanName"}, "additionalContainerPorts": {"items": {"$ref": "#/components/schemas/ContainerPort"}, "type": "array", "description": "Additional ports your server listens on.", "maxItems": 2}, "transportType": {"$ref": "#/components/schemas/TransportType"}, "containerPort": {"type": "integer", "format": "int32", "description": "Default port the server listens on.", "example": 4000, "minimum": 1, "maximum": 65535}}, "required": ["env", "roomsPerProcess", "planName", "transportType", "containerPort"], "type": "object", "description": "User specified deployment configuration for your application at runtime."}, "DeploymentConfigV2": {"properties": {"idleTimeoutEnabled": {"type": "boolean", "description": "Option to shut down processes that have had no new connections or rooms\nfor five minutes."}, "env": {"items": {"properties": {"value": {"type": "string", "example": "TRUE", "maxLength": 5000}, "name": {"type": "string", "example": "EULA", "minLength": 1, "maxLength": 100, "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"}}, "required": ["value", "name"], "type": "object"}, "type": "array", "description": "The environment variable that our process will have access to at runtime.", "maxItems": 100}, "roomsPerProcess": {"$ref": "#/components/schemas/NumRoomsPerProcess"}, "additionalContainerPorts": {"items": {"$ref": "#/components/schemas/ContainerPort"}, "type": "array", "description": "Additional ports your server listens on.", "maxItems": 2}, "transportType": {"$ref": "#/components/schemas/TransportType"}, "containerPort": {"type": "integer", "format": "int32", "description": "Default port the server listens on.", "example": 4000, "minimum": 1, "maximum": 65535}, "requestedMemoryMB": {"type": "number", "format": "double", "description": "The amount of memory allocated to your process.", "example": 1024}, "requestedCPU": {"type": "number", "format": "double", "description": "The number of cores allocated to your process.", "example": 0.5}}, "required": ["idleTimeoutEnabled", "env", "roomsPerProcess", "transportType", "containerPort", "requestedMemoryMB", "requestedCPU"], "type": "object"}, "PingEndpoints": {"items": {"properties": {"port": {"type": "number", "format": "double"}, "host": {"type": "string"}, "region": {"$ref": "#/components/schemas/Region"}}, "required": ["port", "host", "region"], "type": "object"}, "type": "array", "example": [{"region": "Seattle", "host": "ping.hathora.dev", "port": 2000}]}, "RoomId": {"type": "string", "example": "2swovpy1fnunu", "description": "Unique identifier to a game session or match. Use the default system generated ID or overwrite it with your own.\nNote: error will be returned if `roomId` is not globally unique.", "minLength": 1, "maxLength": 100, "pattern": "^[a-zA-Z0-9_-]*$"}, "LobbyVisibility": {"type": "string", "enum": ["private", "public", "local"], "example": "private", "description": "Types of lobbies a player can create.\n\n`private`: the player who created the room must share the roomId with their friends\n\n`public`: visible in the public lobby list, anyone can join\n\n`local`: for testing with a server running locally"}, "LobbyInitialConfig": {"additionalProperties": false, "type": "object", "description": "User input to initialize the game state. Object must be smaller than 64KB."}, "ShortCode": {"type": "string", "example": "LFG4", "description": "User-defined identifier for a lobby.", "maxLength": 100}, "Lobby": {"properties": {"shortCode": {"allOf": [{"$ref": "#/components/schemas/ShortCode"}], "nullable": true}, "state": {"additionalProperties": false, "type": "object", "nullable": true, "description": "JSON blob to store metadata for a room. Must be smaller than 1MB."}, "initialConfig": {"$ref": "#/components/schemas/LobbyInitialConfig"}, "createdAt": {"type": "string", "format": "date-time", "description": "When the lobby was created."}, "createdBy": {"type": "string", "description": "UserId or email address for the user that created the lobby.", "example": "google-oauth2|107030234048588177467"}, "local": {"type": "boolean", "deprecated": true}, "visibility": {"$ref": "#/components/schemas/LobbyVisibility"}, "region": {"$ref": "#/components/schemas/Region"}, "roomId": {"$ref": "#/components/schemas/RoomId"}, "appId": {"$ref": "#/components/schemas/AppId"}}, "required": ["shortCode", "initialConfig", "createdAt", "createdBy", "local", "visibility", "region", "roomId", "appId"], "type": "object", "description": "A lobby object allows you to store and manage metadata for your rooms."}, "CreateLobbyParams": {"properties": {"visibility": {"$ref": "#/components/schemas/LobbyVisibility"}, "initialConfig": {"$ref": "#/components/schemas/LobbyInitialConfig"}, "region": {"$ref": "#/components/schemas/Region"}}, "required": ["visibility", "initialConfig", "region"], "type": "object"}, "SetLobbyStateParams": {"properties": {"state": {"additionalProperties": false, "type": "object", "description": "JSON blob to store metadata for a room. Must be smaller than 1MB."}}, "required": ["state"], "type": "object"}, "RoomConfig": {"type": "string", "example": "{\"name\":\"my-room\"}", "description": "Optional configuration parameters for the room. Can be any string including stringified JSON. It is accessible from the room via [`GetRoomInfo()`](https://hathora.dev/api#tag/RoomV2/operation/GetRoomInfo).", "maxLength": 10000}, "LobbyV3": {"properties": {"shortCode": {"$ref": "#/components/schemas/ShortCode", "description": "User defined identifier for a lobby, defaults to `roomId`"}, "createdAt": {"type": "string", "format": "date-time", "description": "When the lobby was created."}, "createdBy": {"type": "string", "description": "UserId or email address for the user that created the lobby.", "example": "google-oauth2|107030234048588177467"}, "roomConfig": {"allOf": [{"$ref": "#/components/schemas/RoomConfig"}], "nullable": true}, "visibility": {"$ref": "#/components/schemas/LobbyVisibility"}, "region": {"$ref": "#/components/schemas/Region"}, "roomId": {"$ref": "#/components/schemas/RoomId", "description": "Hathora generated identifier for a room, unique for a given application (including stopped rooms)"}, "appId": {"$ref": "#/components/schemas/AppId"}}, "required": ["shortCode", "createdAt", "createdBy", "roomConfig", "visibility", "region", "roomId", "appId"], "type": "object", "description": "A lobby object allows you to store and manage metadata for your rooms."}, "CreateLobbyV3Params": {"properties": {"visibility": {"$ref": "#/components/schemas/LobbyVisibility"}, "roomConfig": {"$ref": "#/components/schemas/RoomConfig"}, "region": {"$ref": "#/components/schemas/Region"}}, "required": ["visibility", "region"], "type": "object"}, "LogsFollow": {"type": "boolean", "default": "false", "description": "Stream logs in realtime."}, "TailLines": {"type": "integer", "format": "int32", "default": "100", "example": 100, "description": "Number of lines to return from most recent logs history.", "minimum": 1, "maximum": 5000}, "ProcessId": {"type": "string", "example": "cbfcddd2-0006-43ae-996c-995fff7bed2e", "description": "System generated unique identifier to a runtime instance of your game server."}, "VerificationEmailSuccess": {"type": "string", "enum": ["success"], "nullable": false}, "VerificationEmailRequest": {"properties": {"userId": {"type": "string"}}, "required": ["userId"], "type": "object"}, "NewUserInfo": {"properties": {"email": {"type": "string"}, "user_id": {"type": "string"}}, "required": ["email", "user_id"], "type": "object"}, "MetricValue": {"properties": {"value": {"type": "number", "format": "double"}, "timestamp": {"type": "number", "format": "double"}}, "required": ["value", "timestamp"], "type": "object"}, "Record_Partial_MetricName_.MetricValue-Array_": {"properties": {"cpu": {"items": {"$ref": "#/components/schemas/MetricValue"}, "type": "array"}, "memory": {"items": {"$ref": "#/components/schemas/MetricValue"}, "type": "array"}, "rate_egress": {"items": {"$ref": "#/components/schemas/MetricValue"}, "type": "array"}, "total_egress": {"items": {"$ref": "#/components/schemas/MetricValue"}, "type": "array"}, "active_connections": {"items": {"$ref": "#/components/schemas/MetricValue"}, "type": "array"}}, "type": "object", "description": "Construct a type with a set of properties K of type T"}, "MetricsData": {"$ref": "#/components/schemas/Record_Partial_MetricName_.MetricValue-Array_"}, "MetricName": {"type": "string", "enum": ["cpu", "memory", "rate_egress", "total_egress", "active_connections"], "description": "Available metrics to query over time."}, "MetricsStep": {"type": "integer", "format": "int32", "default": "60", "description": "Width of time in seconds to group data."}, "UserId": {"type": "string", "example": "auth0|646bdf96f7fb73d04c8c84db", "description": "System generated unique identifier for a user. Not guaranteed to have a specific format."}, "InviteStatusPending": {"properties": {"type": {"type": "string", "enum": ["pending"], "nullable": false}}, "required": ["type"], "type": "object"}, "InviteStatusAccepted": {"properties": {"userId": {"$ref": "#/components/schemas/UserId"}, "type": {"type": "string", "enum": ["accepted"], "nullable": false}}, "required": ["userId", "type"], "type": "object"}, "InviteStatusRejected": {"properties": {"userId": {"$ref": "#/components/schemas/UserId"}, "type": {"type": "string", "enum": ["rejected"], "nullable": false}}, "required": ["userId", "type"], "type": "object"}, "InviteStatusRescinded": {"properties": {"rescindedBy": {"$ref": "#/components/schemas/UserId"}, "userId": {"$ref": "#/components/schemas/UserId"}, "type": {"type": "string", "enum": ["rescinded"], "nullable": false}}, "required": ["rescindedBy", "type"], "type": "object"}, "OrganizationInviteStatus": {"anyOf": [{"$ref": "#/components/schemas/InviteStatusPending"}, {"$ref": "#/components/schemas/InviteStatusAccepted"}, {"$ref": "#/components/schemas/InviteStatusRejected"}, {"$ref": "#/components/schemas/InviteStatusRescinded"}]}, "OrgPermission": {"properties": {"updatedAt": {"type": "string", "format": "date-time"}, "createdAt": {"type": "string", "format": "date-time"}, "status": {"$ref": "#/components/schemas/OrganizationInviteStatus"}, "userEmail": {"type": "string"}, "invitedBy": {"$ref": "#/components/schemas/UserId"}, "orgId": {"$ref": "#/components/schemas/OrgId"}}, "required": ["updatedAt", "createdAt", "status", "userEmail", "invitedBy", "orgId"], "type": "object"}, "CreateUserInvite": {"properties": {"userEmail": {"type": "string"}}, "required": ["userEmail"], "type": "object"}, "RescindUserInvite": {"properties": {"userEmail": {"type": "string"}}, "required": ["userEmail"], "type": "object"}, "OrgInvitesPage": {"properties": {"invites": {"items": {"$ref": "#/components/schemas/OrgPermission"}, "type": "array"}}, "required": ["invites"], "type": "object"}, "ExposedPort": {"properties": {"transportType": {"$ref": "#/components/schemas/TransportType"}, "port": {"type": "integer", "format": "int32"}, "host": {"type": "string"}, "name": {"type": "string"}}, "required": ["transportType", "port", "host", "name"], "type": "object", "example": {"host": "1.proxy.hathora.dev", "name": "default", "port": 34567, "transportType": "tcp"}, "description": "Connection details for an active process."}, "Process": {"properties": {"egressedBytes": {"type": "integer", "format": "int32", "description": "Measures network traffic leaving the process in bytes.", "example": 435}, "idleSince": {"type": "string", "format": "date-time", "nullable": true, "deprecated": true}, "activeConnectionsUpdatedAt": {"type": "string", "format": "date-time", "deprecated": true}, "activeConnections": {"type": "integer", "format": "int32", "description": "Tracks the number of active connections to a process.", "example": 10, "deprecated": true}, "roomsAllocatedUpdatedAt": {"type": "string", "format": "date-time"}, "roomsAllocated": {"type": "integer", "format": "int32", "description": "Tracks the number of rooms that have been allocated to the process.", "example": 1}, "roomSlotsAvailableUpdatedAt": {"type": "string", "format": "date-time", "deprecated": true}, "roomSlotsAvailable": {"type": "number", "format": "double", "deprecated": true}, "draining": {"type": "boolean", "description": "Process in drain will not accept any new rooms."}, "terminatedAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When the process has been terminated."}, "stoppingAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When the process is issued to stop. We use this to determine when we should stop billing."}, "startedAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When the process bound to the specified port. We use this to determine when we should start billing."}, "startingAt": {"type": "string", "format": "date-time", "description": "When the process started being provisioned."}, "roomsPerProcess": {"$ref": "#/components/schemas/NumRoomsPerProcess"}, "additionalExposedPorts": {"items": {"$ref": "#/components/schemas/ExposedPort"}, "type": "array", "example": [{"host": "1.proxy.hathora.dev", "name": "debug", "port": 72941, "transportType": "tcp"}], "maxItems": 2}, "exposedPort": {"allOf": [{"$ref": "#/components/schemas/ExposedPort"}], "nullable": true}, "port": {"type": "number", "format": "double", "deprecated": true}, "host": {"type": "string", "deprecated": true}, "region": {"$ref": "#/components/schemas/Region"}, "processId": {"$ref": "#/components/schemas/ProcessId"}, "deploymentId": {"$ref": "#/components/schemas/DeploymentId"}, "appId": {"$ref": "#/components/schemas/AppId"}}, "required": ["egressedBytes", "idleSince", "activeConnectionsUpdatedAt", "activeConnections", "roomsAllocatedUpdatedAt", "roomsAllocated", "roomSlotsAvailableUpdatedAt", "roomSlotsAvailable", "draining", "terminatedAt", "stoppingAt", "startedAt", "startingAt", "roomsPerProcess", "additionalExposedPorts", "exposedPort", "port", "host", "region", "processId", "deploymentId", "appId"], "type": "object", "description": "A process object represents a runtime instance of your game server and its metadata."}, "RoomStatus": {"type": "string", "enum": ["scheduling", "active", "suspended", "destroyed"], "example": "active", "description": "The allocation status of a room.\n\n`scheduling`: a process is not allocated yet and the room is waiting to be scheduled\n\n`active`: ready to accept connections\n\n`suspended`: room is unallocated from the process but can be rescheduled later with the same `roomId`\n\n`destroyed`: all associated metadata is deleted"}, "RoomAllocationId": {"type": "string", "example": "e3a0aa32-1711-4036-acfa-008b96061a78", "description": "System generated unique identifier to an allocated instance of a room."}, "RoomAllocation": {"properties": {"unscheduledAt": {"type": "string", "format": "date-time", "nullable": true}, "scheduledAt": {"type": "string", "format": "date-time"}, "processId": {"$ref": "#/components/schemas/ProcessId"}, "roomAllocationId": {"$ref": "#/components/schemas/RoomAllocationId"}}, "required": ["unscheduledAt", "scheduledAt", "processId", "roomAllocationId"], "type": "object", "description": "Metadata on an allocated instance of a room."}, "Pick_Room.Exclude_keyofRoom.allocations__": {"properties": {"appId": {"$ref": "#/components/schemas/AppId"}, "roomId": {"$ref": "#/components/schemas/RoomId"}, "roomConfig": {"allOf": [{"$ref": "#/components/schemas/RoomConfig"}], "nullable": true}, "status": {"$ref": "#/components/schemas/RoomStatus"}, "currentAllocation": {"allOf": [{"$ref": "#/components/schemas/RoomAllocation"}], "nullable": true}}, "required": ["appId", "roomId", "roomConfig", "status", "currentAllocation"], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K"}, "Omit_Room.allocations_": {"$ref": "#/components/schemas/Pick_Room.Exclude_keyofRoom.allocations__", "description": "Construct a type with the properties of T except for those in type K."}, "RoomWithoutAllocations": {"$ref": "#/components/schemas/Omit_Room.allocations_"}, "ProcessWithRooms": {"allOf": [{"$ref": "#/components/schemas/Process"}, {"properties": {"rooms": {"items": {"$ref": "#/components/schemas/RoomWithoutAllocations"}, "type": "array"}, "totalRooms": {"type": "integer", "format": "int32"}}, "required": ["rooms", "totalRooms"], "type": "object"}]}, "ProcessStatus": {"type": "string", "enum": ["starting", "running", "draining", "stopping", "stopped", "failed"]}, "ProcessV2": {"properties": {"status": {"$ref": "#/components/schemas/ProcessStatus", "description": "Process in drain will not accept any new rooms."}, "roomsAllocated": {"type": "integer", "format": "int32", "description": "Tracks the number of rooms that have been allocated to the process.", "example": 1}, "terminatedAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When the process has been terminated."}, "stoppingAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When the process is issued to stop. We use this to determine when we should stop billing."}, "startedAt": {"type": "string", "format": "date-time", "nullable": true, "description": "When the process bound to the specified port. We use this to determine when we should start billing."}, "createdAt": {"type": "string", "format": "date-time", "description": "When the process started being provisioned."}, "roomsPerProcess": {"$ref": "#/components/schemas/NumRoomsPerProcess"}, "additionalExposedPorts": {"items": {"$ref": "#/components/schemas/ExposedPort"}, "type": "array", "example": [{"host": "1.proxy.hathora.dev", "name": "debug", "port": 72941, "transportType": "tcp"}], "maxItems": 2}, "exposedPort": {"allOf": [{"$ref": "#/components/schemas/ExposedPort"}], "nullable": true}, "region": {"$ref": "#/components/schemas/Region"}, "processId": {"$ref": "#/components/schemas/ProcessId"}, "deploymentId": {"$ref": "#/components/schemas/DeploymentId"}, "appId": {"$ref": "#/components/schemas/AppId"}}, "required": ["status", "roomsAllocated", "terminatedAt", "stoppingAt", "startedAt", "createdAt", "roomsPerProcess", "additionalExposedPorts", "exposedPort", "region", "processId", "deploymentId", "appId"], "type": "object"}, "CreateRoomParams": {"properties": {"roomConfig": {"$ref": "#/components/schemas/RoomConfig"}, "region": {"$ref": "#/components/schemas/Region"}}, "required": ["region"], "type": "object"}, "Room": {"properties": {"currentAllocation": {"allOf": [{"$ref": "#/components/schemas/RoomAllocation"}], "nullable": true}, "status": {"$ref": "#/components/schemas/RoomStatus"}, "allocations": {"items": {"$ref": "#/components/schemas/RoomAllocation"}, "type": "array"}, "roomConfig": {"allOf": [{"$ref": "#/components/schemas/RoomConfig"}], "nullable": true}, "roomId": {"$ref": "#/components/schemas/RoomId"}, "appId": {"$ref": "#/components/schemas/AppId"}}, "required": ["currentAllocation", "status", "allocations", "roomConfig", "roomId", "appId"], "type": "object", "description": "A room object represents a game session or match."}, "StartingConnectionInfo": {"properties": {"status": {"type": "string", "enum": ["starting"], "nullable": false}, "roomId": {"$ref": "#/components/schemas/RoomId"}}, "required": ["status", "roomId"], "type": "object"}, "ActiveConnectionInfo": {"properties": {"status": {"type": "string", "enum": ["active"], "nullable": false}, "transportType": {"$ref": "#/components/schemas/TransportType"}, "port": {"type": "number", "format": "double"}, "host": {"type": "string"}, "roomId": {"$ref": "#/components/schemas/RoomId"}}, "required": ["status", "transportType", "port", "host", "roomId"], "type": "object"}, "ConnectionInfo": {"anyOf": [{"$ref": "#/components/schemas/StartingConnectionInfo"}, {"$ref": "#/components/schemas/ActiveConnectionInfo"}], "description": "Connection information to the default port."}, "RoomReadyStatus": {"type": "string", "enum": ["active", "starting"]}, "ConnectionInfoV2": {"properties": {"additionalExposedPorts": {"items": {"$ref": "#/components/schemas/ExposedPort"}, "type": "array", "example": [{"host": "1.proxy.hathora.dev", "name": "debug", "port": 72941, "transportType": "tcp"}], "maxItems": 2}, "exposedPort": {"$ref": "#/components/schemas/ExposedPort"}, "status": {"$ref": "#/components/schemas/RoomReadyStatus", "description": "`exposedPort` will only be available when the `status` of a room is \"active\".", "example": "active"}, "roomId": {"$ref": "#/components/schemas/RoomId"}}, "required": ["additionalExposedPorts", "status", "roomId"], "type": "object", "description": "Connection information for the default and additional ports."}, "RoomConnectionData": {"allOf": [{"$ref": "#/components/schemas/ConnectionInfoV2"}, {"properties": {"processId": {"$ref": "#/components/schemas/ProcessId"}}, "required": ["processId"], "type": "object"}]}, "UpdateRoomConfigParams": {"properties": {"roomConfig": {"$ref": "#/components/schemas/RoomConfig"}}, "required": ["roomConfig"], "type": "object"}, "OrgTokenId": {"type": "string", "example": "org-token-af469a92-5b45-4565-b3c4-b79878de67d2", "description": "System generated unique identifier for an organization token."}, "OrgTokenName": {"type": "string", "example": "ci-token", "description": "Readable name for a token. Must be unique within an organization.", "maxLength": 64}, "OrgTokenStatus": {"type": "string", "enum": ["active", "revoked"]}, "OrgToken": {"properties": {"createdAt": {"type": "string", "format": "date-time"}, "createdBy": {"type": "string"}, "lastFourCharsOfKey": {"type": "string"}, "status": {"$ref": "#/components/schemas/OrgTokenStatus"}, "name": {"$ref": "#/components/schemas/OrgTokenName"}, "orgId": {"type": "string"}, "orgTokenId": {"$ref": "#/components/schemas/OrgTokenId"}}, "required": ["createdAt", "createdBy", "lastFourCharsOfKey", "status", "name", "orgId", "orgTokenId"], "type": "object"}, "ListOrgTokens": {"properties": {"tokens": {"items": {"$ref": "#/components/schemas/OrgToken"}, "type": "array"}}, "required": ["tokens"], "type": "object"}, "CreatedOrgToken": {"properties": {"plainTextToken": {"type": "string"}, "orgToken": {"$ref": "#/components/schemas/OrgToken"}}, "required": ["plainTextToken", "orgToken"], "type": "object"}, "CreateOrgToken": {"properties": {"name": {"$ref": "#/components/schemas/OrgTokenName"}}, "required": ["name"], "type": "object"}}, "securitySchemes": {"hathoraDevToken": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT"}, "playerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT"}}}, "info": {"title": "Hathora Cloud API", "version": "0.0.1", "description": "Welcome to the Hathora Cloud API documentation! Learn how to use the Hathora Cloud APIs to build and scale your game servers globally.", "contact": {}}, "openapi": "3.0.0", "paths": {"/apps/v1/list": {"get": {"operationId": "GetApps", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ApplicationWithLatestDeploymentAndBuild"}, "type": "array"}}}}}, "description": "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`.", "tags": ["AppV1"], "security": [{"hathoraDevToken": []}], "parameters": []}}, "/apps/v1/create": {"post": {"operationId": "CreateApp", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Application"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Create a new [application](https://hathora.dev/docs/concepts/hathora-entities#application).", "tags": ["AppV1"], "security": [{"hathoraDevToken": []}], "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AppConfig"}}}}}}, "/apps/v1/update/{appId}": {"post": {"operationId": "UpdateApp", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Application"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Update data for an existing [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`.", "tags": ["AppV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AppConfig"}}}}}}, "/apps/v1/info/{appId}": {"get": {"operationId": "GetAppInfo", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Application"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`.", "tags": ["AppV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}]}}, "/apps/v1/delete/{appId}": {"delete": {"operationId": "DeleteApp", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Delete an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`. Your organization will lose access to this application.", "tags": ["AppV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}]}}, "/auth/v1/{appId}/login/anonymous": {"post": {"operationId": "LoginAnonymous", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PlayerTokenObject"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns a unique player token for an anonymous user.", "tags": ["AuthV1"], "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}]}}, "/auth/v1/{appId}/login/nickname": {"post": {"operationId": "LoginNickname", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PlayerTokenObject"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns a unique player token with a specified nickname for a user.", "tags": ["AuthV1"], "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NicknameObject"}}}}}}, "/auth/v1/{appId}/login/google": {"post": {"operationId": "LoginGoogle", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PlayerTokenObject"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns a unique player token using a Google-signed OIDC `idToken`.", "tags": ["AuthV1"], "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GoogleIdTokenObject"}}}}}}, "/billing/v1/balance": {"get": {"operationId": "GetBalance", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"type": "number", "format": "double"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["BillingV1"], "security": [{"hathoraDevToken": []}], "parameters": []}}, "/billing/v1/paymentmethod": {"get": {"operationId": "GetPaymentMethod", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaymentMethod"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["BillingV1"], "security": [{"hathoraDevToken": []}], "parameters": []}}, "/billing/v1/customerportalurl": {"post": {"operationId": "InitStripeCustomerPortalUrl", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"type": "string"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["BillingV1"], "security": [{"hathoraDevToken": []}], "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomerPortalUrl"}}}}}}, "/billing/v1/invoices": {"get": {"operationId": "GetInvoices", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Invoice"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["BillingV1"], "security": [{"hathoraDevToken": []}], "parameters": []}}, "/builds/v1/{appId}/list": {"get": {"operationId": "GetBuildsDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Build"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns an array of [builds](https://hathora.dev/docs/concepts/hathora-entities#build) for an [application](https://hathora.dev/docs/concepts/hathora-entities#application).", "tags": ["BuildV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}]}}, "/builds/v1/{appId}/info/{buildId}": {"get": {"operationId": "GetBuildInfoDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Build"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for a [build](https://hathora.dev/docs/concepts/hathora-entities#build).", "tags": ["BuildV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "buildId", "required": true, "schema": {"$ref": "#/components/schemas/BuildId"}}]}}, "/builds/v1/{appId}/create": {"post": {"operationId": "CreateBuildDeprecated", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Build"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Creates a new [build](https://hathora.dev/docs/concepts/hathora-entities#build). Responds with a `buildId` that you must pass to [`RunBuild()`](https://hathora.dev/api#tag/BuildV1/operation/RunBuild) to build the game server artifact. You can optionally pass in a `buildTag` to associate an external version with a build.", "tags": ["BuildV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateBuildParams"}}}}}}, "/builds/v1/{appId}/run/{buildId}": {"post": {"operationId": "RunBuildDeprecated", "responses": {"200": {"description": "Ok", "content": {"text/plain": {"schema": {"type": "string", "format": "byte"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Builds a game server artifact from a tarball you provide. Pass in the `buildId` generated from [`CreateBuild()`](https://hathora.dev/api#tag/BuildV1/operation/CreateBuild).", "tags": ["BuildV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "buildId", "required": true, "schema": {"$ref": "#/components/schemas/BuildId"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"file": {"type": "string", "format": "binary"}}, "required": ["file"]}}}}}}, "/builds/v1/{appId}/delete/{buildId}": {"delete": {"operationId": "DeleteBuildDeprecated", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Delete a [build](https://hathora.dev/docs/concepts/hathora-entities#build). All associated metadata is deleted.", "tags": ["BuildV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "buildId", "required": true, "schema": {"$ref": "#/components/schemas/BuildId"}}]}}, "/builds/v2/{appId}/list": {"get": {"operationId": "GetBuilds", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Build"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns an array of [builds](https://hathora.dev/docs/concepts/hathora-entities#build) for an [application](https://hathora.dev/docs/concepts/hathora-entities#application).", "tags": ["BuildV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}]}}, "/builds/v2/{appId}/info/{buildId}": {"get": {"operationId": "GetBuildInfo", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Build"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for a [build](https://hathora.dev/docs/concepts/hathora-entities#build).", "tags": ["BuildV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "buildId", "required": true, "schema": {"$ref": "#/components/schemas/BuildId"}}]}}, "/builds/v2/{appId}/create": {"post": {"operationId": "CreateBuild", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Build"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Creates a new [build](https://hathora.dev/docs/concepts/hathora-entities#build). Responds with a `buildId` that you must pass to [`RunBuild()`](https://hathora.dev/api#tag/BuildV1/operation/RunBuild) to build the game server artifact. You can optionally pass in a `buildTag` to associate an external version with a build.", "tags": ["BuildV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateBuildParams"}}}}}}, "/builds/v2/{appId}/run/{buildId}": {"post": {"operationId": "RunBuild", "responses": {"200": {"description": "Ok", "content": {"application/octet-stream": {"schema": {"type": "string", "format": "binary"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Builds a game server artifact from a tarball you provide. Pass in the `buildId` generated from [`CreateBuild()`](https://hathora.dev/api#tag/BuildV1/operation/CreateBuild).", "tags": ["BuildV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "buildId", "required": true, "schema": {"$ref": "#/components/schemas/BuildId"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"file": {"type": "string", "format": "binary"}}, "required": ["file"]}}}}}}, "/builds/v2/{appId}/delete/{buildId}": {"delete": {"operationId": "DeleteBuild", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Delete a [build](https://hathora.dev/docs/concepts/hathora-entities#build). All associated metadata is deleted.", "tags": ["BuildV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "buildId", "required": true, "schema": {"$ref": "#/components/schemas/BuildId"}}]}}, "/deployments/v1/{appId}/list": {"get": {"operationId": "GetDeploymentsDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Deployment"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns an array of [deployments](https://hathora.dev/docs/concepts/hathora-entities#deployment) for an [application](https://hathora.dev/docs/concepts/hathora-entities#application).", "tags": ["DeploymentV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}]}}, "/deployments/v1/{appId}/latest": {"get": {"operationId": "GetLatestDeploymentDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Deployment"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get the latest [deployment](https://hathora.dev/docs/concepts/hathora-entities#deployment) for an [application](https://hathora.dev/docs/concepts/hathora-entities#application).", "tags": ["DeploymentV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}]}}, "/deployments/v1/{appId}/info/{deploymentId}": {"get": {"operationId": "GetDeploymentInfoDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Deployment"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for a [deployment](https://hathora.dev/docs/concepts/hathora-entities#deployment).", "tags": ["DeploymentV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "deploymentId", "required": true, "schema": {"$ref": "#/components/schemas/DeploymentId"}}]}}, "/deployments/v1/{appId}/create/{buildId}": {"post": {"operationId": "CreateDeploymentDeprecated", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Deployment"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Create a new [deployment](https://hathora.dev/docs/concepts/hathora-entities#deployment). Creating a new deployment means all new rooms created will use the latest deployment configuration, but existing games in progress will not be affected.", "tags": ["DeploymentV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "buildId", "required": true, "schema": {"$ref": "#/components/schemas/BuildId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeploymentConfig"}}}}}}, "/deployments/v2/{appId}/list": {"get": {"operationId": "GetDeployments", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/DeploymentV2"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns an array of [deployments](https://hathora.dev/docs/concepts/hathora-entities#deployment) for an [application](https://hathora.dev/docs/concepts/hathora-entities#application).", "tags": ["DeploymentV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}]}}, "/deployments/v2/{appId}/latest": {"get": {"operationId": "GetLatestDeployment", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeploymentV2"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get the latest [deployment](https://hathora.dev/docs/concepts/hathora-entities#deployment) for an [application](https://hathora.dev/docs/concepts/hathora-entities#application).", "tags": ["DeploymentV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}]}}, "/deployments/v2/{appId}/info/{deploymentId}": {"get": {"operationId": "GetDeploymentInfo", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeploymentV2"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for a [deployment](https://hathora.dev/docs/concepts/hathora-entities#deployment).", "tags": ["DeploymentV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "deploymentId", "required": true, "schema": {"$ref": "#/components/schemas/DeploymentId"}}]}}, "/deployments/v2/{appId}/create/{buildId}": {"post": {"operationId": "CreateDeployment", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeploymentV2"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Create a new [deployment](https://hathora.dev/docs/concepts/hathora-entities#deployment). Creating a new deployment means all new rooms created will use the latest deployment configuration, but existing games in progress will not be affected.", "tags": ["DeploymentV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "buildId", "required": true, "schema": {"$ref": "#/components/schemas/BuildId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeploymentConfigV2"}}}}}}, "/discovery/v1/ping": {"get": {"operationId": "GetPingServiceEndpointsDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PingEndpoints"}}}}}, "description": "Returns an array of V1 regions with a host and port that a client can directly ping. Open a websocket connection to `wss://<host>:<port>/ws` and send a packet. To calculate ping, measure the time it takes to get an echo packet back.", "tags": ["DiscoveryV1"], "deprecated": true, "security": [], "parameters": []}}, "/discovery/v2/ping": {"get": {"operationId": "GetPingServiceEndpoints", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PingEndpoints"}}}}}, "description": "Returns an array of all regions with a host and port that a client can directly ping. Open a websocket connection to `wss://<host>:<port>/ws` and send a packet. To calculate ping, measure the time it takes to get an echo packet back.", "tags": ["DiscoveryV2"], "security": [], "parameters": []}}, "/lobby/v1/{appId}/create/private": {"post": {"operationId": "CreatePrivateLobbyDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomId"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["LobbyV1"], "deprecated": true, "security": [{"playerAuth": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "region", "required": false, "schema": {"$ref": "#/components/schemas/Region"}}, {"in": "query", "name": "local", "required": false, "schema": {"default": false, "type": "boolean"}}]}}, "/lobby/v1/{appId}/create/public": {"post": {"operationId": "CreatePublicLobbyDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomId"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["LobbyV1"], "deprecated": true, "security": [{"playerAuth": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "region", "required": false, "schema": {"$ref": "#/components/schemas/Region"}}, {"in": "query", "name": "local", "required": false, "schema": {"default": false, "type": "boolean"}}]}}, "/lobby/v1/{appId}/list": {"get": {"operationId": "ListActivePublicLobbiesDeprecatedV1", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Lobby"}, "type": "array"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["LobbyV1"], "deprecated": true, "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "local", "required": false, "schema": {"default": false, "type": "boolean"}}, {"in": "query", "name": "region", "required": false, "schema": {"$ref": "#/components/schemas/Region"}}]}}, "/lobby/v2/{appId}/create/private": {"post": {"operationId": "CreatePrivateLobby", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Lobby"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["LobbyV2"], "deprecated": true, "security": [{"playerAuth": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "roomId", "required": false, "schema": {"$ref": "#/components/schemas/RoomId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"properties": {"initialConfig": {"$ref": "#/components/schemas/LobbyInitialConfig"}, "region": {"$ref": "#/components/schemas/Region"}}, "required": ["initialConfig", "region"], "type": "object"}}}}}}, "/lobby/v2/{appId}/create/public": {"post": {"operationId": "CreatePublicLobby", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Lobby"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["LobbyV2"], "deprecated": true, "security": [{"playerAuth": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "roomId", "required": false, "schema": {"$ref": "#/components/schemas/RoomId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"properties": {"initialConfig": {"$ref": "#/components/schemas/LobbyInitialConfig"}, "region": {"$ref": "#/components/schemas/Region"}}, "required": ["initialConfig", "region"], "type": "object"}}}}}}, "/lobby/v2/{appId}/create/local": {"post": {"operationId": "CreateLocalLobby", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Lobby"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["LobbyV2"], "deprecated": true, "security": [{"playerAuth": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "roomId", "required": false, "schema": {"$ref": "#/components/schemas/RoomId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"properties": {"initialConfig": {"$ref": "#/components/schemas/LobbyInitialConfig"}, "region": {"$ref": "#/components/schemas/Region"}}, "required": ["initialConfig", "region"], "type": "object"}}}}}}, "/lobby/v2/{appId}/create": {"post": {"operationId": "CreateLobbyDeprecated", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Lobby"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Create a new lobby for an [application](https://hathora.dev/docs/concepts/hathora-entities#application). A lobby object is a wrapper around a [room](https://hathora.dev/docs/concepts/hathora-entities#room) object. With a lobby, you get additional functionality like configuring the visibility of the room, managing the state of a match, and retrieving a list of public lobbies to display to players.", "tags": ["LobbyV2"], "deprecated": true, "security": [{"playerAuth": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "roomId", "required": false, "schema": {"$ref": "#/components/schemas/RoomId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateLobbyParams"}}}}}}, "/lobby/v2/{appId}/list/public": {"get": {"operationId": "ListActivePublicLobbiesDeprecatedV2", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Lobby"}, "type": "array"}}}}}, "description": "Get all active lobbies for a an [application](https://hathora.dev/docs/concepts/hathora-entities#application). Filter by optionally passing in a `region`. Use this endpoint to display all public lobbies that a player can join in the game client.", "tags": ["LobbyV2"], "deprecated": true, "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"description": "Region to filter by. If omitted, active public lobbies in all regions will be returned.", "in": "query", "name": "region", "required": false, "schema": {"$ref": "#/components/schemas/Region"}}]}}, "/lobby/v2/{appId}/info/{roomId}": {"get": {"operationId": "GetLobbyInfo", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Lobby"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for a lobby.", "tags": ["LobbyV2"], "deprecated": true, "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/lobby/v2/{appId}/setState/{roomId}": {"post": {"operationId": "SetLobbyState", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Lobby"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Set the state of a lobby. State is intended to be set by the server and must be smaller than 1MB. Use this endpoint to store match data like live player count to enforce max number of clients or persist end-game data (i.e. winner or final scores).", "tags": ["LobbyV2"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SetLobbyStateParams"}}}}}}, "/lobby/v3/{appId}/create": {"post": {"operationId": "CreateLobby", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LobbyV3"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Create a new lobby for an [application](https://hathora.dev/docs/concepts/hathora-entities#application). A lobby object is a wrapper around a [room](https://hathora.dev/docs/concepts/hathora-entities#room) object. With a lobby, you get additional functionality like configuring the visibility of the room, managing the state of a match, and retrieving a list of public lobbies to display to players.", "tags": ["LobbyV3"], "security": [{"playerAuth": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "shortCode", "required": false, "schema": {"$ref": "#/components/schemas/ShortCode"}}, {"in": "query", "name": "roomId", "required": false, "schema": {"$ref": "#/components/schemas/RoomId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateLobbyV3Params"}}}}}}, "/lobby/v3/{appId}/list/public": {"get": {"operationId": "ListActivePublicLobbies", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/LobbyV3"}, "type": "array"}}}}}, "description": "Get all active lobbies for a given [application](https://hathora.dev/docs/concepts/hathora-entities#application). Filter the array by optionally passing in a `region`. Use this endpoint to display all public lobbies that a player can join in the game client.", "tags": ["LobbyV3"], "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"description": "If omitted, active public lobbies in all regions will be returned.", "in": "query", "name": "region", "required": false, "schema": {"$ref": "#/components/schemas/Region"}}]}}, "/lobby/v3/{appId}/info/roomid/{roomId}": {"get": {"operationId": "GetLobbyInfoByRoomId", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LobbyV3"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for a lobby.", "tags": ["LobbyV3"], "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/lobby/v3/{appId}/info/shortcode/{shortCode}": {"get": {"operationId": "GetLobbyInfoByShortCode", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LobbyV3"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for a lobby. If 2 or more lobbies have the same `shortCode`, then the most recently created lobby will be returned.", "tags": ["LobbyV3"], "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "shortCode", "required": true, "schema": {"$ref": "#/components/schemas/ShortCode"}}]}}, "/logs/v1/{appId}/all": {"get": {"operationId": "GetLogsForApp", "responses": {"200": {"description": "Ok", "content": {"application/octet-stream": {"schema": {"type": "string", "format": "binary"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns a stream of logs for an [application](https://hathora.dev/docs/concepts/hathora-entities#application) using `appId`.", "tags": ["LogV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "follow", "required": false, "schema": {"$ref": "#/components/schemas/LogsFollow"}}, {"in": "query", "name": "tailLines", "required": false, "schema": {"$ref": "#/components/schemas/TailLines"}}, {"in": "query", "name": "region", "required": false, "schema": {"$ref": "#/components/schemas/Region"}}]}}, "/logs/v1/{appId}/process/{processId}": {"get": {"operationId": "GetLogsForProcess", "responses": {"200": {"description": "Ok", "content": {"application/octet-stream": {"schema": {"type": "string", "format": "binary"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "410": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns a stream of logs for a [process](https://hathora.dev/docs/concepts/hathora-entities#process) using `appId` and `processId`.", "tags": ["LogV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}, {"in": "query", "name": "follow", "required": false, "schema": {"$ref": "#/components/schemas/LogsFollow"}}, {"in": "query", "name": "tailLines", "required": false, "schema": {"$ref": "#/components/schemas/TailLines"}}]}}, "/logs/v1/{appId}/process/{processId}/download": {"get": {"operationId": "DownloadLogForProcess", "responses": {"200": {"description": "Ok", "content": {"application/octet-stream": {"schema": {"type": "string", "format": "binary"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "410": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Download entire log file for a stopped process.", "tags": ["LogV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}]}}, "/logs/v1/{appId}/deployment/{deploymentId}": {"get": {"operationId": "GetLogsForDeployment", "responses": {"200": {"description": "Ok", "content": {"application/octet-stream": {"schema": {"type": "string", "format": "binary"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Returns a stream of logs for a [deployment](https://hathora.dev/docs/concepts/hathora-entities#deployment) using `appId` and `deploymentId`.", "tags": ["LogV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "deploymentId", "required": true, "schema": {"$ref": "#/components/schemas/DeploymentId"}}, {"in": "query", "name": "follow", "required": false, "schema": {"$ref": "#/components/schemas/LogsFollow"}}, {"in": "query", "name": "tailLines", "required": false, "schema": {"$ref": "#/components/schemas/TailLines"}}]}}, "/management/v1/sendverificationemail": {"post": {"operationId": "SendVerificationEmail", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VerificationEmailSuccess"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["ManagementV1"], "security": [], "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VerificationEmailRequest"}}}}}}, "/metrics/v1/{appId}/process/{processId}": {"get": {"operationId": "GetMetrics", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetricsData"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get metrics for a [process](https://hathora.dev/docs/concepts/hathora-entities#process) using `appId` and `processId`.", "tags": ["MetricsV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}, {"description": "Available metrics to query over time.", "in": "query", "name": "metrics", "required": false, "schema": {"default": ["cpu", "memory", "rate_egress"], "type": "array", "items": {"$ref": "#/components/schemas/MetricName"}}}, {"description": "Unix timestamp. Default is current time.", "in": "query", "name": "end", "required": false, "schema": {"format": "double", "type": "number"}}, {"description": "Unix timestamp. Default is -1 hour from `end`.", "in": "query", "name": "start", "required": false, "schema": {"format": "double", "type": "number"}}, {"in": "query", "name": "step", "required": false, "schema": {"$ref": "#/components/schemas/MetricsStep"}}]}}, "/orgs/v1/{orgId}/invites": {"put": {"operationId": "InviteUser", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OrgPermission"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["OrganizationsV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "orgId", "required": true, "schema": {"$ref": "#/components/schemas/OrgId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateUserInvite"}}}}}}, "/orgs/v1/{orgId}/invites/rescind": {"post": {"operationId": "RescindInvite", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["OrganizationsV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "orgId", "required": true, "schema": {"$ref": "#/components/schemas/OrgId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RescindUserInvite"}}}}}}, "/orgs/v1/{orgId}/invites/pending": {"get": {"operationId": "GetOrgPendingInvites", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OrgInvitesPage"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["OrganizationsV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "orgId", "required": true, "schema": {"$ref": "#/components/schemas/OrgId"}}]}}, "/orgs/v1/user/invites/pending": {"get": {"operationId": "GetUserPendingInvites", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OrgInvitesPage"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["OrganizationsV1"], "security": [{"hathoraDevToken": []}], "parameters": []}}, "/orgs/v1/{orgId}/invites/accept": {"post": {"operationId": "AcceptInvite", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["OrganizationsV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "orgId", "required": true, "schema": {"$ref": "#/components/schemas/OrgId"}}]}}, "/orgs/v1/{orgId}/invites/reject": {"post": {"operationId": "RejectInvite", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["OrganizationsV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "orgId", "required": true, "schema": {"$ref": "#/components/schemas/OrgId"}}]}}, "/processes/v1/{appId}/list/running": {"get": {"operationId": "GetRunningProcesses", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ProcessWithRooms"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Retrieve 10 most recently started [process](https://hathora.dev/docs/concepts/hathora-entities#process) objects for an [application](https://hathora.dev/docs/concepts/hathora-entities#application). Filter the array by optionally passing in a `region`.", "tags": ["ProcessesV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "region", "required": false, "schema": {"$ref": "#/components/schemas/Region"}}]}}, "/processes/v1/{appId}/list/stopped": {"get": {"operationId": "GetStoppedProcesses", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Process"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Retrieve 10 most recently stopped [process](https://hathora.dev/docs/concepts/hathora-entities#process) objects for an [application](https://hathora.dev/docs/concepts/hathora-entities#application). Filter the array by optionally passing in a `region`.", "tags": ["ProcessesV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "region", "required": false, "schema": {"$ref": "#/components/schemas/Region"}}]}}, "/processes/v1/{appId}/info/{processId}": {"get": {"operationId": "GetProcessInfoDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Process"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for a [process](https://hathora.dev/docs/concepts/hathora-entities#process).", "tags": ["ProcessesV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}]}}, "/processes/v2/{appId}/info/{processId}": {"get": {"operationId": "GetProcessInfo", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProcessV2"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get details for a [process](https://hathora.dev/docs/concepts/hathora-entities#process).", "tags": ["ProcessesV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}]}}, "/processes/v2/{appId}/list/latest": {"get": {"operationId": "GetLatestProcesses", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ProcessV2"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Retrieve the 10 most recent [processes](https://hathora.dev/docs/concepts/hathora-entities#process) objects for an [application](https://hathora.dev/docs/concepts/hathora-entities#application). Filter the array by optionally passing in a `status` or `region`.", "tags": ["ProcessesV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "status", "required": false, "schema": {"type": "array", "items": {"$ref": "#/components/schemas/ProcessStatus"}}}, {"in": "query", "name": "region", "required": false, "schema": {"type": "array", "items": {"$ref": "#/components/schemas/Region"}}}]}}, "/processes/v2/{appId}/stop/{processId}": {"post": {"operationId": "StopProcess", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Stops a [process](https://hathora.dev/docs/concepts/hathora-entities#process) immediately.", "tags": ["ProcessesV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}]}}, "/processes/v2/{appId}/create/{region}": {"post": {"operationId": "CreateProcess", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProcessV2"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Creates a [process](https://hathora.dev/docs/concepts/hathora-entities#process) without a room. Use this to pre-allocate processes ahead of time so that subsequent room assignment via [CreateRoom()](https://hathora.dev/api#tag/RoomV2/operation/CreateRoom) can be instant.", "tags": ["ProcessesV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "region", "required": true, "schema": {"$ref": "#/components/schemas/Region"}}]}}, "/rooms/v1/{appId}/create": {"post": {"operationId": "CreateRoomDeprecated", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomId"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "403": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["RoomV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "roomId", "required": false, "schema": {"$ref": "#/components/schemas/RoomId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateRoomParams"}}}}}}, "/rooms/v1/{appId}/info/{roomId}": {"get": {"operationId": "GetRoomInfoDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Room"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["RoomV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/rooms/v1/{appId}/list/{processId}/active": {"get": {"operationId": "GetActiveRoomsForProcessDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/RoomWithoutAllocations"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["RoomV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}]}}, "/rooms/v1/{appId}/list/{processId}/inactive": {"get": {"operationId": "GetInactiveRoomsForProcessDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/RoomWithoutAllocations"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["RoomV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}]}}, "/rooms/v1/{appId}/destroy/{roomId}": {"post": {"operationId": "DestroyRoomDeprecated", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["RoomV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/rooms/v1/{appId}/suspend/{roomId}": {"post": {"operationId": "SuspendRoomDeprecated", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["RoomV1"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/rooms/v1/{appId}/connectioninfo/{roomId}": {"get": {"operationId": "GetConnectionInfoDeprecated", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConnectionInfo"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["RoomV1"], "deprecated": true, "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/rooms/v2/{appId}/create": {"post": {"operationId": "CreateRoom", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomConnectionData"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "403": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Create a new [room](https://hathora.dev/docs/concepts/hathora-entities#room) for an existing [application](https://hathora.dev/docs/concepts/hathora-entities#application). Poll the [`GetConnectionInfo()`](https://hathora.dev/api#tag/RoomV2/operation/GetConnectionInfo) endpoint to get connection details for an active room.", "tags": ["RoomV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "query", "name": "roomId", "required": false, "schema": {"$ref": "#/components/schemas/RoomId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateRoomParams"}}}}}}, "/rooms/v2/{appId}/info/{roomId}": {"get": {"operationId": "GetRoomInfo", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Room"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Retreive current and historical allocation data for a [room](https://hathora.dev/docs/concepts/hathora-entities#room).", "tags": ["RoomV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/rooms/v2/{appId}/list/{processId}/active": {"get": {"operationId": "GetActiveRoomsForProcess", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/RoomWithoutAllocations"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get all active [rooms](https://hathora.dev/docs/concepts/hathora-entities#room) for a given [process](https://hathora.dev/docs/concepts/hathora-entities#process).", "tags": ["RoomV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}]}}, "/rooms/v2/{appId}/list/{processId}/inactive": {"get": {"operationId": "GetInactiveRoomsForProcess", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/RoomWithoutAllocations"}, "type": "array"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Get all inactive [rooms](https://hathora.dev/docs/concepts/hathora-entities#room) for a given [process](https://hathora.dev/docs/concepts/hathora-entities#process).", "tags": ["RoomV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "processId", "required": true, "schema": {"$ref": "#/components/schemas/ProcessId"}}]}}, "/rooms/v2/{appId}/destroy/{roomId}": {"post": {"operationId": "DestroyRoom", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Destroy a [room](https://hathora.dev/docs/concepts/hathora-entities#room). All associated metadata is deleted.", "tags": ["RoomV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/rooms/v2/{appId}/suspend/{roomId}": {"post": {"operationId": "SuspendRoomV2Deprecated", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Suspend a [room](https://hathora.dev/docs/concepts/hathora-entities#room). The room is unallocated from the process but can be rescheduled later using the same `roomId`.", "tags": ["RoomV2"], "deprecated": true, "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/rooms/v2/{appId}/connectioninfo/{roomId}": {"get": {"operationId": "GetConnectionInfo", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConnectionInfoV2"}}}}, "400": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "402": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Poll this endpoint to get connection details to a [room](https://hathora.dev/docs/concepts/hathora-entities#room). Clients can call this endpoint without authentication.", "tags": ["RoomV2"], "security": [], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}]}}, "/rooms/v2/{appId}/update/{roomId}": {"post": {"operationId": "UpdateRoomConfig", "responses": {"204": {"description": "No content"}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "429": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "500": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "tags": ["RoomV2"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "appId", "required": true, "schema": {"$ref": "#/components/schemas/AppId"}}, {"in": "path", "name": "roomId", "required": true, "schema": {"$ref": "#/components/schemas/RoomId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateRoomConfigParams"}}}}}}, "/tokens/v1/orgs/{orgId}": {"get": {"operationId": "GetOrgTokens", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListOrgTokens"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "List all organization tokens for a given org.", "tags": ["OrgTokensV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "orgId", "required": true, "schema": {"$ref": "#/components/schemas/OrgId"}}]}}, "/tokens/v1/orgs/{orgId}/create": {"post": {"operationId": "CreateOrgToken", "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreatedOrgToken"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "422": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Create a new organization token.", "tags": ["OrgTokensV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "orgId", "required": true, "schema": {"$ref": "#/components/schemas/OrgId"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateOrgToken"}}}}}}, "/tokens/v1/orgs/{orgId}/tokens/{orgTokenId}/revoke": {"post": {"operationId": "RevokeOrgToken", "responses": {"200": {"description": "Ok", "content": {"application/json": {"schema": {"type": "boolean"}}}}, "401": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}, "404": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiError"}}}}}, "description": "Revoke an organization token.", "tags": ["OrgTokensV1"], "security": [{"hathoraDevToken": []}], "parameters": [{"in": "path", "name": "orgId", "required": true, "schema": {"$ref": "#/components/schemas/OrgId"}}, {"in": "path", "name": "orgTokenId", "required": true, "schema": {"$ref": "#/components/schemas/OrgId"}}]}}}, "servers": [{"url": "https://api.hathora.dev"}, {"url": "/"}], "tags": [{"name": "AppV1", "description": "Operations that allow you manage your [applications](https://hathora.dev/docs/concepts/hathora-entities#application)."}, {"name": "AuthV1", "description": "Operations that allow you to generate a Hathora-signed [JSON web token (JWT)](https://jwt.io/) for [player authentication](https://hathora.dev/docs/lobbies-and-matchmaking/auth-service)."}, {"name": "BillingV1", "description": " "}, {"name": "BuildV2", "description": "Operations that allow you create and manage your [builds](https://hathora.dev/docs/concepts/hathora-entities#build)."}, {"name": "BuildV1", "description": "Deprecated. Use [BuildV2](https://hathora.dev/api#tag/BuildV2)."}, {"name": "DeploymentV2", "description": "Operations that allow you configure and manage an application's [build](https://hathora.dev/docs/concepts/hathora-entities#build) at runtime."}, {"name": "DeploymentV1", "description": "Deprecated. Use [DeploymentV2](https://hathora.dev/api#tag/DeploymentV2)."}, {"name": "DiscoveryV1", "description": "Service that allows clients to directly ping all Hathora regions to get latency information"}, {"name": "LobbyV3", "description": "Operations to create and manage lobbies using our [Lobby Service](https://hathora.dev/docs/lobbies-and-matchmaking/lobby-service)."}, {"name": "LobbyV2", "description": "Deprecated. Use [LobbyV3](https://hathora.dev/api#tag/LobbyV3)."}, {"name": "LobbyV1", "description": "Deprecated. Use [LobbyV3](https://hathora.dev/api#tag/LobbyV3)."}, {"name": "LogV1", "description": "Operations to get logs by [applications](https://hathora.dev/docs/concepts/hathora-entities#application), [processes](https://hathora.dev/docs/concepts/hathora-entities#process), and [deployments](https://hathora.dev/docs/concepts/hathora-entities#deployment). We store 20GB of logs data."}, {"name": "ManagementV1", "description": " "}, {"name": "MetricsV1", "description": "Operations to get metrics by [process](https://hathora.dev/docs/concepts/hathora-entities#process). We store 72 hours of metrics data."}, {"name": "ProcessesV2", "description": "Operations to get data on active and stopped [processes](https://hathora.dev/docs/concepts/hathora-entities#process)."}, {"name": "ProcessesV1", "description": "Deprecated. Use [ProcessesV2](https://hathora.dev/api#tag/ProcessesV2)."}, {"name": "RoomV2", "description": "Operations to create, manage, and connect to [rooms](https://hathora.dev/docs/concepts/hathora-entities#room)."}, {"name": "RoomV1", "description": "Deprecated. Use [RoomV2](https://hathora.dev/api#tag/RoomV2)."}, {"name": "OrgTokensV1", "description": " "}], "x-speakeasy-globals": {"parameters": [{"in": "path", "name": "appId", "schema": {"$ref": "#/components/schemas/AppId"}}]}}