Last active
April 3, 2025 00:07
-
-
Save loriopatrick/57e7362d68228726f6077b25ca83490a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "openapi": "3.0.0", | |
| "info": { | |
| "title": "playit.gg's api", | |
| "version": "unstable" | |
| }, | |
| "servers": [ | |
| { | |
| "url": "https://api.playit.gg" | |
| } | |
| ], | |
| "paths": { | |
| "/tunnels/create": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqTunnelsCreate" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/ObjectId" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "fail" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/TunnelCreateError" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "ApiKey": [] | |
| }, | |
| { | |
| "AgentKey": [] | |
| } | |
| ] | |
| } | |
| }, | |
| "/tunnels/delete": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqTunnelsDelete" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "ApiKey": [] | |
| }, | |
| { | |
| "AgentKey": [] | |
| } | |
| ] | |
| } | |
| }, | |
| "/claim/details": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqClaimDetails" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AgentClaimDetails" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "fail" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/ClaimDetailsError" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "ApiKey": [] | |
| } | |
| ] | |
| } | |
| }, | |
| "/claim/setup": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqClaimSetup" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/ClaimSetupResponse" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "fail" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/ClaimSetupError" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| } | |
| } | |
| }, | |
| "/claim/exchange": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqClaimExchange" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AgentSecretKey" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "fail" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/ClaimExchangeError" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| } | |
| } | |
| }, | |
| "/claim/accept": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqClaimAccept" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AgentAccepted" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "fail" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/ClaimAcceptError" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "ApiKey": [] | |
| } | |
| ] | |
| } | |
| }, | |
| "/claim/reject": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqClaimReject" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "fail" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/ClaimRejectError" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "ApiKey": [] | |
| } | |
| ] | |
| } | |
| }, | |
| "/proto/register": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqProtoRegister" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/SignedAgentKey" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "AgentKey": [] | |
| } | |
| ] | |
| } | |
| }, | |
| "/login/guest": { | |
| "post": { | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/WebSession" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "AgentKey": [] | |
| } | |
| ] | |
| } | |
| }, | |
| "/agents/routing/get": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqAgentsRoutingGet" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AgentRouting" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "fail" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AgentRoutingGetError" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "ApiKey": [] | |
| }, | |
| { | |
| "AgentKey": [] | |
| } | |
| ] | |
| } | |
| }, | |
| "/agents/rundata": { | |
| "post": { | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AgentRunData" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "AgentKey": [] | |
| } | |
| ] | |
| } | |
| }, | |
| "/tunnels/list": { | |
| "post": { | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReqTunnelsList" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "success" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AccountTunnels" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "validation" | |
| ] | |
| }, | |
| "message": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/AuthError" | |
| }, | |
| "500": { | |
| "$ref": "#/components/responses/AppInternalError" | |
| } | |
| }, | |
| "security": [ | |
| { | |
| "ApiKey": [] | |
| }, | |
| { | |
| "AgentKey": [] | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "components": { | |
| "securitySchemes": { | |
| "ApiKey": { | |
| "type": "apiKey", | |
| "in": "header", | |
| "name": "Authorization" | |
| }, | |
| "AgentKey": { | |
| "type": "apiKey", | |
| "in": "header", | |
| "name": "Authorization" | |
| } | |
| }, | |
| "responses": { | |
| "AuthError": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "auth" | |
| ] | |
| }, | |
| "message": { | |
| "$ref": "#/components/schemas/AuthError" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "message" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "AppInternalError": { | |
| "description": "", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "error" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "internal" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "type" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "schemas": { | |
| "TunnelOriginCreate": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "default" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AssignedDefaultCreate" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "agent" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AssignedAgentCreate" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "managed" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AssignedManagedCreate" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "data" | |
| ] | |
| } | |
| ] | |
| }, | |
| "AgentAccepted": { | |
| "type": "object", | |
| "properties": { | |
| "agent_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| } | |
| }, | |
| "required": [ | |
| "agent_id" | |
| ] | |
| }, | |
| "AccountFeatures": { | |
| "type": "object", | |
| "properties": { | |
| "regional_tunnels": { | |
| "$ref": "#/components/schemas/bool" | |
| } | |
| }, | |
| "required": [ | |
| "regional_tunnels" | |
| ] | |
| }, | |
| "GuestLoginError": { | |
| "type": "string", | |
| "enum": [ | |
| "AccountIsNotGuest" | |
| ] | |
| }, | |
| "AccountTunnels": { | |
| "type": "object", | |
| "properties": { | |
| "tcp_alloc": { | |
| "$ref": "#/components/schemas/AllocatedPorts" | |
| }, | |
| "udp_alloc": { | |
| "$ref": "#/components/schemas/AllocatedPorts" | |
| }, | |
| "tunnels": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/AccountTunnel" | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "tcp_alloc", | |
| "udp_alloc", | |
| "tunnels" | |
| ] | |
| }, | |
| "AssignedAgentCreate": { | |
| "type": "object", | |
| "properties": { | |
| "agent_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "local_ip": { | |
| "$ref": "#/components/schemas/IpAddr" | |
| }, | |
| "local_port": { | |
| "$ref": "#/components/schemas/u16" | |
| } | |
| }, | |
| "required": [ | |
| "agent_id", | |
| "local_ip" | |
| ] | |
| }, | |
| "WebSession": { | |
| "type": "object", | |
| "properties": { | |
| "session_key": { | |
| "type": "string" | |
| }, | |
| "auth": { | |
| "$ref": "#/components/schemas/WebAuth" | |
| } | |
| }, | |
| "required": [ | |
| "session_key", | |
| "auth" | |
| ] | |
| }, | |
| "AccountTunnelAllocation": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "disabled" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/TunnelDisabled" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "allocated" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/TunnelAllocated" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "data" | |
| ] | |
| } | |
| ] | |
| }, | |
| "TunnelDedicatedIp": { | |
| "type": "object", | |
| "properties": { | |
| "sub_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "region": { | |
| "$ref": "#/components/schemas/AllocationRegion" | |
| } | |
| }, | |
| "required": [ | |
| "sub_id", | |
| "region" | |
| ] | |
| }, | |
| "TunnelDomainSource": { | |
| "type": "string", | |
| "enum": [ | |
| "from-ip", | |
| "from-tunnel", | |
| "from-agent-ip" | |
| ] | |
| }, | |
| "DeleteError": { | |
| "type": "string", | |
| "enum": [ | |
| "TunnelNotFound" | |
| ] | |
| }, | |
| "Uuid": { | |
| "type": "string" | |
| }, | |
| "UseRegion": { | |
| "type": "object", | |
| "properties": { | |
| "region": { | |
| "$ref": "#/components/schemas/AllocationRegion" | |
| } | |
| }, | |
| "required": [ | |
| "region" | |
| ] | |
| }, | |
| "SignedEpoch": { | |
| "type": "object", | |
| "properties": { | |
| "epoch_sec": { | |
| "$ref": "#/components/schemas/u32" | |
| } | |
| }, | |
| "required": [ | |
| "epoch_sec" | |
| ] | |
| }, | |
| "TunnelDisabled": { | |
| "type": "object", | |
| "properties": { | |
| "reason": { | |
| "$ref": "#/components/schemas/TunnelDisabledReason" | |
| } | |
| }, | |
| "required": [ | |
| "reason" | |
| ] | |
| }, | |
| "TunnelOrigin": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "default" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AssignedDefault" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "agent" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AssignedAgent" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "data" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "managed" | |
| ] | |
| }, | |
| "data": { | |
| "$ref": "#/components/schemas/AssignedManaged" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "data" | |
| ] | |
| } | |
| ] | |
| }, | |
| "PortType": { | |
| "type": "string", | |
| "enum": [ | |
| "tcp", | |
| "udp", | |
| "both" | |
| ] | |
| }, | |
| "IpAddr": { | |
| "type": "string" | |
| }, | |
| "AgentClaimDetails": { | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string" | |
| }, | |
| "remote_ip": { | |
| "$ref": "#/components/schemas/IpAddr" | |
| }, | |
| "agent_type": { | |
| "$ref": "#/components/schemas/AgentType" | |
| }, | |
| "version": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "name", | |
| "remote_ip", | |
| "agent_type", | |
| "version" | |
| ] | |
| }, | |
| "ObjectId": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| } | |
| }, | |
| "required": [ | |
| "id" | |
| ] | |
| }, | |
| "PortRange": { | |
| "type": "object", | |
| "properties": { | |
| "from": { | |
| "$ref": "#/components/schemas/u16" | |
| }, | |
| "to": { | |
| "$ref": "#/components/schemas/u16" | |
| } | |
| }, | |
| "required": [ | |
| "from", | |
| "to" | |
| ] | |
| }, | |
| "bool": { | |
| "type": "boolean" | |
| }, | |
| "UseAllocDedicatedIp": { | |
| "type": "object", | |
| "properties": { | |
| "ip_hostname": { | |
| "type": "string" | |
| }, | |
| "port": { | |
| "$ref": "#/components/schemas/u16" | |
| } | |
| }, | |
| "required": [ | |
| "ip_hostname" | |
| ] | |
| }, | |
| "ReqTunnelsDelete": { | |
| "type": "object", | |
| "properties": { | |
| "tunnel_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| } | |
| }, | |
| "required": [ | |
| "tunnel_id" | |
| ] | |
| }, | |
| "AgentVersion": { | |
| "type": "object", | |
| "properties": { | |
| "platform": { | |
| "$ref": "#/components/schemas/Platform" | |
| }, | |
| "version": { | |
| "type": "string" | |
| }, | |
| "has_expired": { | |
| "$ref": "#/components/schemas/bool" | |
| } | |
| }, | |
| "required": [ | |
| "platform", | |
| "version", | |
| "has_expired" | |
| ] | |
| }, | |
| "ReqTunnelsList": { | |
| "type": "object", | |
| "properties": { | |
| "tunnel_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "agent_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| } | |
| } | |
| }, | |
| "ClaimSetupError": { | |
| "type": "string", | |
| "enum": [ | |
| "InvalidCode", | |
| "CodeExpired", | |
| "VersionTextTooLong" | |
| ] | |
| }, | |
| "ReqClaimSetup": { | |
| "type": "object", | |
| "properties": { | |
| "code": { | |
| "type": "string" | |
| }, | |
| "agent_type": { | |
| "$ref": "#/components/schemas/AgentType" | |
| }, | |
| "version": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "code", | |
| "agent_type", | |
| "version" | |
| ] | |
| }, | |
| "AgentTunnelDisabled": { | |
| "type": "string", | |
| "enum": [ | |
| "ByUser", | |
| "BySystem" | |
| ] | |
| }, | |
| "DateTimeUtc": { | |
| "type": "string" | |
| }, | |
| "AssignedAgent": { | |
| "type": "object", | |
| "properties": { | |
| "agent_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "agent_name": { | |
| "type": "string" | |
| }, | |
| "local_ip": { | |
| "$ref": "#/components/schemas/IpAddr" | |
| }, | |
| "local_port": { | |
| "$ref": "#/components/schemas/u16" | |
| } | |
| }, | |
| "required": [ | |
| "agent_id", | |
| "agent_name", | |
| "local_ip" | |
| ] | |
| }, | |
| "ReqAgentsRoutingGet": { | |
| "type": "object", | |
| "properties": { | |
| "agent_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| } | |
| } | |
| }, | |
| "ReqLoginGuest": { | |
| "type": "object" | |
| }, | |
| "AssignedManaged": { | |
| "type": "object", | |
| "properties": { | |
| "agent_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "agent_name": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "agent_id", | |
| "agent_name" | |
| ] | |
| }, | |
| "u32": { | |
| "type": "number" | |
| }, | |
| "u16": { | |
| "type": "number" | |
| }, | |
| "AllocationRegion": { | |
| "type": "string", | |
| "enum": [ | |
| "smart-global", | |
| "global", | |
| "north-america", | |
| "europe", | |
| "asia", | |
| "india", | |
| "south-america" | |
| ] | |
| }, | |
| "DateTime": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "ReqClaimReject": { | |
| "type": "object", | |
| "properties": { | |
| "code": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "code" | |
| ] | |
| }, | |
| "ClaimExchangeError": { | |
| "type": "string", | |
| "enum": [ | |
| "CodeNotFound", | |
| "CodeExpired", | |
| "UserRejected", | |
| "NotAccepted", | |
| "NotSetup" | |
| ] | |
| }, | |
| "TunnelType": { | |
| "type": "string", | |
| "enum": [ | |
| "minecraft-java", | |
| "minecraft-bedrock", | |
| "valheim", | |
| "terraria", | |
| "starbound", | |
| "rust", | |
| "7days", | |
| "unturned" | |
| ] | |
| }, | |
| "ReqClaimDetails": { | |
| "type": "object", | |
| "properties": { | |
| "code": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "code" | |
| ] | |
| }, | |
| "PlayitAgentVersion": { | |
| "type": "object", | |
| "properties": { | |
| "version": { | |
| "$ref": "#/components/schemas/AgentVersion" | |
| }, | |
| "official": { | |
| "$ref": "#/components/schemas/bool" | |
| }, | |
| "details_website": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "version", | |
| "official" | |
| ] | |
| }, | |
| "TunnelDisabledReason": { | |
| "type": "string", | |
| "enum": [ | |
| "requires-premium", | |
| "over-port-limit", | |
| "ip-used-in-gre" | |
| ] | |
| }, | |
| "AccountStatus": { | |
| "type": "string", | |
| "enum": [ | |
| "guest", | |
| "email-not-verified", | |
| "verified" | |
| ] | |
| }, | |
| "AgentRoutingGetError": { | |
| "type": "string", | |
| "enum": [ | |
| "MissingAgentId", | |
| "AgentIdNotSupported", | |
| "InvalidAgentId" | |
| ] | |
| }, | |
| "AgentPendingTunnel": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "proto": { | |
| "$ref": "#/components/schemas/PortType" | |
| }, | |
| "port_count": { | |
| "$ref": "#/components/schemas/u16" | |
| }, | |
| "tunnel_type": { | |
| "type": "string" | |
| }, | |
| "is_disabled": { | |
| "$ref": "#/components/schemas/bool" | |
| }, | |
| "region_num": { | |
| "$ref": "#/components/schemas/u16" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "proto", | |
| "port_count", | |
| "is_disabled", | |
| "region_num" | |
| ] | |
| }, | |
| "ProxyProtocol": { | |
| "type": "string", | |
| "enum": [ | |
| "proxy-protocol-v1", | |
| "proxy-protocol-v2" | |
| ] | |
| }, | |
| "AgentType": { | |
| "type": "string", | |
| "enum": [ | |
| "default", | |
| "assignable", | |
| "self-managed" | |
| ] | |
| }, | |
| "IpType": { | |
| "type": "string", | |
| "enum": [ | |
| "both", | |
| "ip4", | |
| "ip6" | |
| ] | |
| }, | |
| "ClaimDetailsError": { | |
| "type": "string", | |
| "enum": [ | |
| "AlreadyClaimed", | |
| "AlreadyRejected", | |
| "ClaimExpired", | |
| "DifferentOwner", | |
| "WaitingForAgent", | |
| "InvalidCode" | |
| ] | |
| }, | |
| "AuthError": { | |
| "type": "string", | |
| "enum": [ | |
| "AuthRequired", | |
| "InvalidHeader", | |
| "InvalidSignature", | |
| "InvalidTimestamp", | |
| "InvalidApiKey", | |
| "InvalidAgentKey", | |
| "SessionExpired", | |
| "InvalidAuthType", | |
| "ScopeNotAllowed", | |
| "NoLongerValid", | |
| "GuestAccountNotAllowed", | |
| "EmailMustBeVerified", | |
| "AccountDoesNotExist", | |
| "AdminOnly", | |
| "InvalidToken", | |
| "TotpRequred" | |
| ] | |
| }, | |
| "UseAllocPortAlloc": { | |
| "type": "object", | |
| "properties": { | |
| "alloc_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| } | |
| }, | |
| "required": [ | |
| "alloc_id" | |
| ] | |
| }, | |
| "ClaimSetupResponse": { | |
| "type": "string", | |
| "enum": [ | |
| "WaitingForUserVisit", | |
| "WaitingForUser", | |
| "UserAccepted", | |
| "UserRejected" | |
| ] | |
| }, | |
| "ClaimAcceptError": { | |
| "type": "string", | |
| "enum": [ | |
| "InvalidCode", | |
| "AgentNotReady", | |
| "CodeNotFound", | |
| "InvalidAgentType", | |
| "ClaimAlreadyAccepted", | |
| "ClaimRejected", | |
| "CodeExpired", | |
| "InvalidName" | |
| ] | |
| }, | |
| "ClaimRejectError": { | |
| "type": "string", | |
| "enum": [ | |
| "InvalidCode", | |
| "CodeNotFound", | |
| "ClaimAccepted", | |
| "ClaimAlreadyRejected" | |
| ] | |
| }, | |
| "WebAuth": { | |
| "type": "object", | |
| "properties": { | |
| "update_version": { | |
| "$ref": "#/components/schemas/u32" | |
| }, | |
| "account_id": { | |
| "$ref": "#/components/schemas/u64" | |
| }, | |
| "timestamp": { | |
| "$ref": "#/components/schemas/u64" | |
| }, | |
| "account_status": { | |
| "$ref": "#/components/schemas/AccountStatus" | |
| }, | |
| "totp_status": { | |
| "$ref": "#/components/schemas/TotpStatus" | |
| }, | |
| "admin_id": { | |
| "$ref": "#/components/schemas/u64" | |
| } | |
| }, | |
| "required": [ | |
| "update_version", | |
| "account_id", | |
| "timestamp", | |
| "account_status", | |
| "totp_status" | |
| ] | |
| }, | |
| "Ipv4Addr": { | |
| "type": "string" | |
| }, | |
| "SocketAddr": { | |
| "type": "string" | |
| }, | |
| "TunnelExpireNotice": { | |
| "type": "object", | |
| "properties": { | |
| "disable_at": { | |
| "$ref": "#/components/schemas/DateTime" | |
| }, | |
| "remove_at": { | |
| "$ref": "#/components/schemas/DateTime" | |
| } | |
| }, | |
| "required": [ | |
| "disable_at", | |
| "remove_at" | |
| ] | |
| }, | |
| "TunnelAssignment": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "dedicated-ip" | |
| ] | |
| }, | |
| "subscription": { | |
| "$ref": "#/components/schemas/TunnelDedicatedIp" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "subscription" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "dedicated-port" | |
| ] | |
| }, | |
| "subscription": { | |
| "$ref": "#/components/schemas/SubscriptionId" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "subscription" | |
| ] | |
| } | |
| ] | |
| }, | |
| "AllocatedPorts": { | |
| "type": "object", | |
| "properties": { | |
| "allowed": { | |
| "$ref": "#/components/schemas/u32" | |
| }, | |
| "claimed": { | |
| "$ref": "#/components/schemas/u32" | |
| }, | |
| "desired": { | |
| "$ref": "#/components/schemas/u32" | |
| } | |
| }, | |
| "required": [ | |
| "allowed", | |
| "claimed", | |
| "desired" | |
| ] | |
| }, | |
| "AssignedDefaultCreate": { | |
| "type": "object", | |
| "properties": { | |
| "local_ip": { | |
| "$ref": "#/components/schemas/IpAddr" | |
| }, | |
| "local_port": { | |
| "$ref": "#/components/schemas/u16" | |
| } | |
| }, | |
| "required": [ | |
| "local_ip" | |
| ] | |
| }, | |
| "String": { | |
| "type": "string" | |
| }, | |
| "AgentRunData": { | |
| "type": "object", | |
| "properties": { | |
| "agent_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "agent_type": { | |
| "$ref": "#/components/schemas/AgentType" | |
| }, | |
| "account_status": { | |
| "$ref": "#/components/schemas/AgentAccountStatus" | |
| }, | |
| "tunnels": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/AgentTunnel" | |
| } | |
| }, | |
| "pending": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/AgentPendingTunnel" | |
| } | |
| }, | |
| "account_features": { | |
| "$ref": "#/components/schemas/AccountFeatures" | |
| } | |
| }, | |
| "required": [ | |
| "agent_id", | |
| "agent_type", | |
| "account_status", | |
| "tunnels", | |
| "pending", | |
| "account_features" | |
| ] | |
| }, | |
| "ReqClaimAccept": { | |
| "type": "object", | |
| "properties": { | |
| "code": { | |
| "type": "string" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "agent_type": { | |
| "$ref": "#/components/schemas/AgentType" | |
| } | |
| }, | |
| "required": [ | |
| "code", | |
| "name", | |
| "agent_type" | |
| ] | |
| }, | |
| "AgentAccountStatus": { | |
| "type": "string", | |
| "enum": [ | |
| "account-delete-scheduled", | |
| "banned", | |
| "has-message", | |
| "email-not-verified", | |
| "guest", | |
| "ready", | |
| "agent-over-limit", | |
| "agent-disabled" | |
| ] | |
| }, | |
| "AccountTunnel": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "tunnel_type": { | |
| "$ref": "#/components/schemas/TunnelType" | |
| }, | |
| "created_at": { | |
| "$ref": "#/components/schemas/DateTime" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "port_type": { | |
| "$ref": "#/components/schemas/PortType" | |
| }, | |
| "port_count": { | |
| "$ref": "#/components/schemas/u16" | |
| }, | |
| "alloc": { | |
| "$ref": "#/components/schemas/AccountTunnelAllocation" | |
| }, | |
| "origin": { | |
| "$ref": "#/components/schemas/TunnelOrigin" | |
| }, | |
| "domain": { | |
| "$ref": "#/components/schemas/TunnelDomain" | |
| }, | |
| "firewall_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "ratelimit": { | |
| "$ref": "#/components/schemas/Ratelimit" | |
| }, | |
| "active": { | |
| "$ref": "#/components/schemas/bool" | |
| }, | |
| "disabled_reason": { | |
| "$ref": "#/components/schemas/TunnelDisabledReason" | |
| }, | |
| "region": { | |
| "$ref": "#/components/schemas/AllocationRegion" | |
| }, | |
| "expire_notice": { | |
| "$ref": "#/components/schemas/TunnelExpireNotice" | |
| }, | |
| "proxy_protocol": { | |
| "$ref": "#/components/schemas/ProxyProtocol" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "created_at", | |
| "port_type", | |
| "port_count", | |
| "alloc", | |
| "origin", | |
| "ratelimit", | |
| "active" | |
| ] | |
| }, | |
| "ReqClaimExchange": { | |
| "type": "object", | |
| "properties": { | |
| "code": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "code" | |
| ] | |
| }, | |
| "u64": { | |
| "type": "number" | |
| }, | |
| "ReqAgentsRundata": { | |
| "type": "object" | |
| }, | |
| "ReqProtoRegister": { | |
| "type": "object", | |
| "properties": { | |
| "agent_version": { | |
| "$ref": "#/components/schemas/PlayitAgentVersion" | |
| }, | |
| "client_addr": { | |
| "$ref": "#/components/schemas/SocketAddr" | |
| }, | |
| "tunnel_addr": { | |
| "$ref": "#/components/schemas/SocketAddr" | |
| } | |
| }, | |
| "required": [ | |
| "agent_version", | |
| "client_addr", | |
| "tunnel_addr" | |
| ] | |
| }, | |
| "AgentTunnel": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "ip_num": { | |
| "$ref": "#/components/schemas/u64" | |
| }, | |
| "region_num": { | |
| "$ref": "#/components/schemas/u16" | |
| }, | |
| "port": { | |
| "$ref": "#/components/schemas/PortRange" | |
| }, | |
| "proto": { | |
| "$ref": "#/components/schemas/PortType" | |
| }, | |
| "local_ip": { | |
| "$ref": "#/components/schemas/IpAddr" | |
| }, | |
| "local_port": { | |
| "$ref": "#/components/schemas/u16" | |
| }, | |
| "tunnel_type": { | |
| "type": "string" | |
| }, | |
| "assigned_domain": { | |
| "type": "string" | |
| }, | |
| "custom_domain": { | |
| "type": "string" | |
| }, | |
| "disabled": { | |
| "$ref": "#/components/schemas/AgentTunnelDisabled" | |
| }, | |
| "proxy_protocol": { | |
| "$ref": "#/components/schemas/ProxyProtocol" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "ip_num", | |
| "region_num", | |
| "port", | |
| "proto", | |
| "local_ip", | |
| "local_port", | |
| "assigned_domain" | |
| ] | |
| }, | |
| "ReqTunnelsCreate": { | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string" | |
| }, | |
| "tunnel_type": { | |
| "$ref": "#/components/schemas/TunnelType" | |
| }, | |
| "port_type": { | |
| "$ref": "#/components/schemas/PortType" | |
| }, | |
| "port_count": { | |
| "$ref": "#/components/schemas/u16" | |
| }, | |
| "origin": { | |
| "$ref": "#/components/schemas/TunnelOriginCreate" | |
| }, | |
| "enabled": { | |
| "$ref": "#/components/schemas/bool" | |
| }, | |
| "alloc": { | |
| "$ref": "#/components/schemas/TunnelCreateUseAllocation" | |
| }, | |
| "firewall_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "proxy_protocol": { | |
| "$ref": "#/components/schemas/ProxyProtocol" | |
| } | |
| }, | |
| "required": [ | |
| "port_type", | |
| "port_count", | |
| "origin", | |
| "enabled" | |
| ] | |
| }, | |
| "AssignedManagedCreate": { | |
| "type": "object", | |
| "properties": { | |
| "agent_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| } | |
| } | |
| }, | |
| "AgentSecretKey": { | |
| "type": "object", | |
| "properties": { | |
| "secret_key": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "secret_key" | |
| ] | |
| }, | |
| "Ipv6Addr": { | |
| "type": "string" | |
| }, | |
| "SubscriptionId": { | |
| "type": "object", | |
| "properties": { | |
| "sub_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| } | |
| }, | |
| "required": [ | |
| "sub_id" | |
| ] | |
| }, | |
| "AssignedDefault": { | |
| "type": "object", | |
| "properties": { | |
| "local_ip": { | |
| "$ref": "#/components/schemas/IpAddr" | |
| }, | |
| "local_port": { | |
| "$ref": "#/components/schemas/u16" | |
| } | |
| }, | |
| "required": [ | |
| "local_ip" | |
| ] | |
| }, | |
| "TunnelCreateUseAllocation": { | |
| "oneOf": [ | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "dedicated-ip" | |
| ] | |
| }, | |
| "details": { | |
| "$ref": "#/components/schemas/UseAllocDedicatedIp" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "details" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "port-allocation" | |
| ] | |
| }, | |
| "details": { | |
| "$ref": "#/components/schemas/UseAllocPortAlloc" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "details" | |
| ] | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "region" | |
| ] | |
| }, | |
| "details": { | |
| "$ref": "#/components/schemas/UseRegion" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "details" | |
| ] | |
| } | |
| ] | |
| }, | |
| "TunnelCreateError": { | |
| "type": "string", | |
| "enum": [ | |
| "AgentIdRequired", | |
| "AgentNotFound", | |
| "InvalidAgentId", | |
| "DedicatedIpNotFound", | |
| "DedicatedIpPortNotAvailable", | |
| "DedicatedIpNotEnoughSpace", | |
| "PortAllocNotFound", | |
| "InvalidIpHostname", | |
| "ManagedMissingAgentId", | |
| "InvalidPortCount", | |
| "RequiresVerifiedAccount" | |
| ] | |
| }, | |
| "Platform": { | |
| "type": "string", | |
| "enum": [ | |
| "linux", | |
| "freebsd", | |
| "windows", | |
| "macos", | |
| "android", | |
| "ios", | |
| "docker", | |
| "minecraft-plugin", | |
| "unknown" | |
| ] | |
| }, | |
| "SignedAgentKey": { | |
| "type": "object", | |
| "properties": { | |
| "key": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "key" | |
| ] | |
| }, | |
| "TunnelAllocated": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "ip_hostname": { | |
| "type": "string" | |
| }, | |
| "static_ip4": { | |
| "$ref": "#/components/schemas/Ipv4Addr" | |
| }, | |
| "static_ip6": { | |
| "$ref": "#/components/schemas/Ipv6Addr" | |
| }, | |
| "assigned_domain": { | |
| "type": "string" | |
| }, | |
| "assigned_srv": { | |
| "type": "string" | |
| }, | |
| "tunnel_ip": { | |
| "$ref": "#/components/schemas/IpAddr" | |
| }, | |
| "port_start": { | |
| "$ref": "#/components/schemas/u16" | |
| }, | |
| "port_end": { | |
| "$ref": "#/components/schemas/u16" | |
| }, | |
| "assignment": { | |
| "$ref": "#/components/schemas/TunnelAssignment" | |
| }, | |
| "ip_type": { | |
| "$ref": "#/components/schemas/IpType" | |
| }, | |
| "region": { | |
| "$ref": "#/components/schemas/AllocationRegion" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "ip_hostname", | |
| "static_ip6", | |
| "assigned_domain", | |
| "tunnel_ip", | |
| "port_start", | |
| "port_end", | |
| "assignment", | |
| "ip_type", | |
| "region" | |
| ] | |
| }, | |
| "TunnelDomain": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "is_external": { | |
| "$ref": "#/components/schemas/bool" | |
| }, | |
| "parent": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "source": { | |
| "$ref": "#/components/schemas/TunnelDomainSource" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "name", | |
| "is_external", | |
| "source" | |
| ] | |
| }, | |
| "Ratelimit": { | |
| "type": "object", | |
| "properties": { | |
| "bytes_per_second": { | |
| "$ref": "#/components/schemas/u32" | |
| }, | |
| "packets_per_second": { | |
| "$ref": "#/components/schemas/u32" | |
| } | |
| } | |
| }, | |
| "TotpStatus": { | |
| "oneOf": [ | |
| { | |
| "allOf": [ | |
| { | |
| "$ref": "#/components/schemas/SignedEpoch" | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "signed" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "status" | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "AgentRouting": { | |
| "type": "object", | |
| "properties": { | |
| "agent_id": { | |
| "$ref": "#/components/schemas/Uuid" | |
| }, | |
| "targets4": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/Ipv4Addr" | |
| } | |
| }, | |
| "targets6": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/Ipv6Addr" | |
| } | |
| }, | |
| "disable_ip6": { | |
| "$ref": "#/components/schemas/bool" | |
| } | |
| }, | |
| "required": [ | |
| "agent_id", | |
| "targets4", | |
| "targets6", | |
| "disable_ip6" | |
| ] | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment