Files
Vantz Stockwell 651a35d4be
All checks were successful
CI / backend-types (push) Successful in 10s
CI / frontend-build (push) Successful in 15s
CI / agent-tests (push) Successful in 39s
CI / integration (push) Successful in 22s
docs(reference): import Dune: Awakening server-manager references
Phase 2 references for the host-agent Dune adapter, moved out of volatile /tmp
into docs/reference-repos/ (per Commander). Three upstream projects, .git +
node_modules + compiled binaries stripped (16MB source). Nested AI-instruction
files (.claude/, CLAUDE.md) removed so they don't pollute Corrosion sessions.

- icehunter/    dune-admin (Go+React) — 4 control planes; SETUP_DOCKER.md is the
                closest analog to our agent's Dune docker control plane (compose
                lifecycle, docker logs, RabbitMQ-via-exec, dune Postgres schema)
- adainrivers/  Rust/Tauri desktop — SSH+k8s BattleGroup control, maintenance
                daemon, in-game admin console (Rust idiom reference)
- the4rchangel/ Node web UI replacing battlegroup.bat — matches the Commander's
                Hyper-V self-host path + game-config schema

See docs/reference-repos/README.md for the full index + how we use each.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 21:08:05 -04:00

6010 lines
203 KiB
Go

// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs
import "github.com/swaggo/swag"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"contact": {},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/api/v1/bases": {
"get": {
"produces": [
"application/json"
],
"tags": [
"bases"
],
"summary": "List all player bases",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/bases/{id}/export": {
"get": {
"produces": [
"application/octet-stream"
],
"tags": [
"bases"
],
"summary": "Export a base as a downloadable blueprint JSON file",
"parameters": [
{
"type": "integer",
"description": "Base (building) ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Base blueprint JSON file",
"schema": {
"type": "file"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/battlegroup/backup-files": {
"get": {
"produces": [
"application/json"
],
"tags": [
"battlegroup"
],
"summary": "List available database backup files in the backup directory",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.backupFile"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/battlegroup/backup-files/download": {
"get": {
"produces": [
"application/zip"
],
"tags": [
"battlegroup"
],
"summary": "Download a backup file (and its YAML metadata) as a zip archive",
"parameters": [
{
"type": "string",
"description": "Backup filename (must end in .backup)",
"name": "file",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "file"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/battlegroup/backup-files/upload": {
"post": {
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"battlegroup"
],
"summary": "Upload a backup file (.backup or .zip) to the backup directory",
"parameters": [
{
"type": "file",
"description": "Backup file (.backup or .zip)",
"name": "backup",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/battlegroup/exec": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"battlegroup"
],
"summary": "Execute a battlegroup lifecycle command via the control plane",
"parameters": [
{
"description": "Command: start, stop, restart, update, or backup",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/battlegroup/pods": {
"get": {
"produces": [
"application/json"
],
"tags": [
"battlegroup"
],
"summary": "List battlegroup pods/processes and their namespace",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/battlegroup/restore": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"battlegroup"
],
"summary": "Restore the database from a named backup file via the control plane",
"parameters": [
{
"description": "Backup filename (must end in .backup)",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/battlegroup/status": {
"get": {
"produces": [
"application/json"
],
"tags": [
"battlegroup"
],
"summary": "Get battlegroup and server status from the control plane",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/blueprints": {
"get": {
"produces": [
"application/json"
],
"tags": [
"blueprints"
],
"summary": "List all building blueprints",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/blueprints/import": {
"post": {
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"blueprints"
],
"summary": "Import a blueprint JSON file into a player's inventory",
"parameters": [
{
"type": "file",
"description": "Blueprint JSON file",
"name": "blueprint",
"in": "formData",
"required": true
},
{
"type": "integer",
"description": "Player pawn ID to receive the blueprint",
"name": "player_id",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/blueprints/{id}/export": {
"get": {
"produces": [
"application/octet-stream"
],
"tags": [
"blueprints"
],
"summary": "Export a blueprint as a downloadable JSON file",
"parameters": [
{
"type": "integer",
"description": "Blueprint ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Blueprint JSON file",
"schema": {
"type": "file"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/broadcast": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"broadcast"
],
"summary": "Send server-wide broadcast message via RabbitMQ",
"parameters": [
{
"description": "Localized texts and optional duration in seconds",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/broadcast/shutdown": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"broadcast"
],
"summary": "Send shutdown broadcast command via RabbitMQ",
"parameters": [
{
"description": "Shutdown type, delay, frequency, duration, and cancel flag",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/chat/whisper": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Send whisper message to a player via RabbitMQ (experimental)",
"parameters": [
{
"description": "Target FLS ID, target name, sender name, message, and optional impersonated FLS ID",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/config": {
"get": {
"produces": [
"application/json"
],
"tags": [
"config"
],
"summary": "Get current runtime configuration (secrets masked)",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/main.appConfig"
}
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"config"
],
"summary": "Save configuration and reconnect",
"parameters": [
{
"description": "Updated configuration",
"name": "config",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/main.appConfig"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/contracts": {
"get": {
"produces": [
"application/json"
],
"tags": [
"contracts"
],
"summary": "List the catalog of known contracts",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
}
},
"/api/v1/database/describe": {
"get": {
"produces": [
"application/json"
],
"tags": [
"database"
],
"summary": "Describe columns of a table",
"parameters": [
{
"type": "string",
"description": "Table name",
"name": "table",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/database/sample": {
"get": {
"produces": [
"application/json"
],
"tags": [
"database"
],
"summary": "Return sample rows from a table",
"parameters": [
{
"type": "string",
"description": "Table name",
"name": "table",
"in": "query",
"required": true
},
{
"type": "integer",
"description": "Number of rows to return (default 20, max 500)",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/database/search": {
"get": {
"produces": [
"application/json"
],
"tags": [
"database"
],
"summary": "Search for a term across all table columns",
"parameters": [
{
"type": "string",
"description": "Search term",
"name": "term",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/database/sql": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"database"
],
"summary": "Execute a read-only SQL query (SELECT/EXPLAIN/SHOW only)",
"parameters": [
{
"description": "SQL query",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/database/tables": {
"get": {
"produces": [
"application/json"
],
"tags": [
"database"
],
"summary": "List all tables in the dune schema",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/logs/cheats": {
"get": {
"produces": [
"application/json"
],
"tags": [
"logs"
],
"summary": "Fetch the cheat detection log",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.cheatEntry"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/logs/pods": {
"get": {
"produces": [
"application/json"
],
"tags": [
"logs"
],
"summary": "List available log sources",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.logPod"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/logs/stream": {
"get": {
"produces": [
"text/plain"
],
"tags": [
"logs"
],
"summary": "Stream log via WebSocket",
"parameters": [
{
"type": "string",
"description": "Namespace or log source",
"name": "ns",
"in": "query",
"required": true
},
{
"type": "string",
"description": "Pod or log file name",
"name": "pod",
"in": "query",
"required": true
}
],
"responses": {
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/market-bot/cleanup": {
"post": {
"produces": [
"application/json"
],
"tags": [
"market-bot"
],
"summary": "Trigger market bot listing cleanup",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/market-bot/config": {
"put": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"market-bot"
],
"summary": "Update market bot configuration",
"parameters": [
{
"description": "Configuration patch",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/market-bot/exec": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"market-bot"
],
"summary": "Execute a lifecycle command on the market bot (start/stop/restart)",
"parameters": [
{
"description": "Command: start, stop, or restart",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/market-bot/logs": {
"get": {
"produces": [
"text/plain"
],
"tags": [
"market-bot"
],
"summary": "Stream market bot log output via WebSocket",
"responses": {
"101": {
"description": "Switching Protocols",
"schema": {
"type": "string"
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/market-bot/logs-ready": {
"get": {
"produces": [
"application/json"
],
"tags": [
"market-bot"
],
"summary": "Check whether market bot log streaming is available",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/api/v1/market-bot/status": {
"get": {
"produces": [
"application/json"
],
"tags": [
"market-bot"
],
"summary": "Get market bot running status and mode",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/api/v1/market/catalog": {
"get": {
"produces": [
"application/json"
],
"tags": [
"market"
],
"summary": "List all known item templates with display names",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
}
}
}
},
"/api/v1/market/categories": {
"get": {
"produces": [
"application/json"
],
"tags": [
"market"
],
"summary": "List distinct item categories from the item catalog",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"/api/v1/market/items": {
"get": {
"produces": [
"application/json"
],
"tags": [
"market"
],
"summary": "List market items aggregated by template ID",
"parameters": [
{
"type": "string",
"description": "Filter by display name or template ID",
"name": "search",
"in": "query"
},
{
"type": "string",
"description": "Filter by category prefix",
"name": "category",
"in": "query"
},
{
"type": "integer",
"description": "Filter by item tier",
"name": "tier",
"in": "query"
},
{
"type": "string",
"description": "Filter by rarity",
"name": "rarity",
"in": "query"
},
{
"type": "string",
"description": "Filter by owner type (bot|player|all)",
"name": "owner",
"in": "query"
},
{
"type": "integer",
"description": "Page number (0-based)",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "Page size (default 100, max 500)",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/market/listings": {
"get": {
"produces": [
"application/json"
],
"tags": [
"market"
],
"summary": "List individual active market listings",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/market/sales": {
"get": {
"produces": [
"application/json"
],
"tags": [
"market"
],
"summary": "List recent fulfilled market sales",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/market/stats": {
"get": {
"produces": [
"application/json"
],
"tags": [
"market"
],
"summary": "Return aggregate market statistics",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/notify": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"notifications"
],
"summary": "Publish an in-game notification via mq-game RabbitMQ exchange",
"parameters": [
{
"description": "Routing key, keywords, and notification content",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "List all players",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.playerInfo"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/award-char-xp": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Award character XP to a player (live RMQ or DB fallback)",
"parameters": [
{
"description": "fls_id (optional), player_id, amount",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/award-intel": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Award intel points to a player",
"parameters": [
{
"description": "player_id, amount",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/award-xp": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Award XP on a specialization track for a player",
"parameters": [
{
"description": "player_id, track_type, delta",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/cheat-script": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Send cheat script command via RabbitMQ",
"parameters": [
{
"description": "Player FLS ID and script name",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/clean-inventory": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Send clean-inventory command via RabbitMQ",
"parameters": [
{
"description": "Player FLS ID",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/contract/complete": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"contracts"
],
"summary": "Complete a single contract for an account",
"parameters": [
{
"description": "account_id, contract_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/contracts/complete": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"contracts"
],
"summary": "Complete multiple contracts for an account",
"parameters": [
{
"description": "account_id, contract_ids ([]string)",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/contracts/reverse": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"contracts"
],
"summary": "Reverse (undo) multiple completed contracts for an account",
"parameters": [
{
"description": "account_id, contract_ids ([]string)",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/currency": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "List currency balances for all players",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.currencyRow"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/delete-account": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Delete a player account and all associated data",
"parameters": [
{
"description": "account_id, reason",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/delete-tutorials": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Delete all tutorial records for a player",
"parameters": [
{
"description": "player_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/dismiss-returning-player-award": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Dismiss the returning-player award for an account",
"parameters": [
{
"description": "account_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/factions": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "List faction reputation for all players",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.factionRep"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/fill-water": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Send fill-water command via RabbitMQ",
"parameters": [
{
"description": "Player FLS ID and optional water amount",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/give-currency": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Give currency to a player",
"parameters": [
{
"description": "player_id, amount",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/give-faction-rep": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Adjust faction reputation for a player",
"parameters": [
{
"description": "actor_id, faction_id, delta",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/give-item": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Give a single item to a player",
"parameters": [
{
"description": "player_id, template, qty, quality",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/give-item-live": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Send give-item command via RabbitMQ to an online player",
"parameters": [
{
"description": "Actor ID, item template, quantity, and durability",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/give-items": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Give multiple items to a player in a single request",
"parameters": [
{
"description": "player_id and items list",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/main.giveItemsRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/give-scrip": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Adjust Landsraad scrip for a player",
"parameters": [
{
"description": "actor_id, delta",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/grant-all-keystones": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Grant all keystones to a player",
"parameters": [
{
"description": "player_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/grant-job-skills": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Grant job skills for a specific job to an account",
"parameters": [
{
"description": "account_id, job",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/grant-live": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Grant an item to a player via FLS/PlayFab live path",
"parameters": [
{
"description": "controller_id, template, amount",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/grant-max-spec": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Grant max level on a specialization track for a player",
"parameters": [
{
"description": "player_id, track_type",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/item/{id}": {
"delete": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Delete a specific inventory item by item ID",
"parameters": [
{
"type": "integer",
"description": "Item ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/journey/complete": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Mark a journey node as complete for an account",
"parameters": [
{
"description": "account_id, node_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/journey/reset": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Reset (incomplete) a journey node for an account",
"parameters": [
{
"description": "account_id, node_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/journey/wipe": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Wipe all journey nodes for an account",
"parameters": [
{
"description": "account_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/kick": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Send kick command via RabbitMQ",
"parameters": [
{
"description": "Player FLS ID",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/online": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get online state for all players",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/partitions": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "List available teleport partition locations",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.teleportLocation"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/progression-reverse": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"progression"
],
"summary": "Reverse a previously unlocked progression preset for a player",
"parameters": [
{
"description": "player_id, faction, preset",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/progression-unlock": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"progression"
],
"summary": "Unlock a progression preset for a player",
"parameters": [
{
"description": "player_id, faction, preset",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/refuel-vehicle": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Refuel a player's vehicle to full fuel",
"parameters": [
{
"description": "player_id, vehicle_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/rename": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Rename a player's character",
"parameters": [
{
"description": "account_id, name",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/repair-gear": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Repair all equipped gear for a player",
"parameters": [
{
"description": "player_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/repair-item": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Repair a single inventory item to full durability",
"parameters": [
{
"description": "id (item ID)",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/repair-vehicle": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Repair a player's vehicle to full durability",
"parameters": [
{
"description": "player_id, vehicle_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/reset-all-keystones": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Reset all keystones for a player",
"parameters": [
{
"description": "player_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/reset-job-skills": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Reset job skills for an account",
"parameters": [
{
"description": "account_id, job",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/reset-progression": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Send reset-progression command via RabbitMQ",
"parameters": [
{
"description": "Player FLS ID",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/reset-spec": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Reset a specialization track for a player",
"parameters": [
{
"description": "player_id, track_type",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/returning-player-award": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Grant the returning-player award to an account",
"parameters": [
{
"description": "account_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/set-faction-tier": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Set a player's tier within a faction",
"parameters": [
{
"description": "actor_id, faction_id, tier",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/set-skill-module": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Send set-skill-module command via RabbitMQ",
"parameters": [
{
"description": "Player FLS ID, module name, and level",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/set-skill-points": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Send set-skill-points command via RabbitMQ",
"parameters": [
{
"description": "Player FLS ID and skill points value",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/set-starter-class": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Set the starter class (job) for an account",
"parameters": [
{
"description": "account_id, job",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/specs": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "List specialization tracks for all players",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.specTrack"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/teleport": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Teleport a player to a named partition location",
"parameters": [
{
"description": "fls_id, partition_label",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/teleport-to-player": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Teleport a player to another player's current position",
"parameters": [
{
"description": "source_fls_id, target_id (actor ID)",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/templates": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "List all known item templates",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
}
},
"/api/v1/players/update-tags": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Add or remove tags on a player account",
"parameters": [
{
"description": "account_id, add ([]string), remove ([]string)",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/wipe-codex": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Wipe the codex for an account",
"parameters": [
{
"description": "account_id",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/char-xp": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get character XP and level for a player",
"parameters": [
{
"type": "integer",
"description": "Player ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/dungeons": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get dungeon run records for a player",
"parameters": [
{
"type": "integer",
"description": "Player ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.dungeonRecord"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/events": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get event log entries for a player",
"parameters": [
{
"type": "integer",
"description": "Player ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.gameEvent"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/export": {
"get": {
"produces": [
"application/octet-stream"
],
"tags": [
"players"
],
"summary": "Export a character's data as a JSON attachment",
"parameters": [
{
"type": "integer",
"description": "Account ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "character-{id}.json attachment",
"schema": {
"type": "string"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/inventory": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get inventory for a player",
"parameters": [
{
"type": "integer",
"description": "Player ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.itemInfo"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/journey": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get journey node state for an account",
"parameters": [
{
"type": "integer",
"description": "Account ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/keystones": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get keystones owned by a player",
"parameters": [
{
"type": "integer",
"description": "Player ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/player-ids": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Resolve actor ID to both ID forms and render a sample RMQ envelope",
"parameters": [
{
"type": "integer",
"description": "Actor (pawn) ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/position": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get world position of a player's character",
"parameters": [
{
"type": "integer",
"description": "Player ID (actor ID)",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/specs": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get specialization tracks for a specific player",
"parameters": [
{
"type": "integer",
"description": "Player ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.specTrack"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/tags": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get tags assigned to a player account",
"parameters": [
{
"type": "integer",
"description": "Account ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/players/{id}/vehicles": {
"get": {
"produces": [
"application/json"
],
"tags": [
"players"
],
"summary": "Get vehicles owned by a player",
"parameters": [
{
"type": "integer",
"description": "Player ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/main.vehicleRow"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/reconnect": {
"post": {
"produces": [
"application/json"
],
"tags": [
"status"
],
"summary": "Tear down and re-establish all backend connections",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/server-settings": {
"get": {
"produces": [
"application/json"
],
"tags": [
"server-settings"
],
"summary": "Get server INI settings and raw sections",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"server-settings"
],
"summary": "Apply one or more server setting changes",
"parameters": [
{
"description": "List of setting updates",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/server-settings/raw": {
"put": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"server-settings"
],
"summary": "Replace a raw INI section (array lines included)",
"parameters": [
{
"description": "Section name and raw INI lines",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/status": {
"get": {
"produces": [
"application/json"
],
"tags": [
"status"
],
"summary": "Return connection state and build info",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/api/v1/storage": {
"get": {
"produces": [
"application/json"
],
"tags": [
"storage"
],
"summary": "List all storage containers",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/storage/{id}/give-item": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"storage"
],
"summary": "Give a single item to a storage container",
"parameters": [
{
"type": "integer",
"description": "Container ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Item to give",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/storage/{id}/give-items": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"storage"
],
"summary": "Give multiple items to a storage container",
"parameters": [
{
"type": "integer",
"description": "Container ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Items to give",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/storage/{id}/items": {
"get": {
"produces": [
"application/json"
],
"tags": [
"storage"
],
"summary": "Get items inside a storage container",
"parameters": [
{
"type": "integer",
"description": "Container ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/storage/{id}/owner-debug": {
"get": {
"produces": [
"application/json"
],
"tags": [
"storage"
],
"summary": "Debug ownership chain for a storage container",
"parameters": [
{
"type": "integer",
"description": "Container ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"503": {
"description": "Service Unavailable",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/update/apply": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"update"
],
"summary": "Download and apply the latest release, then restart",
"parameters": [
{
"description": "Set force=true to reinstall even when up to date",
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/main.updateApplyRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/main.updateApplyResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"502": {
"description": "Bad Gateway",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/update/check": {
"get": {
"produces": [
"application/json"
],
"tags": [
"update"
],
"summary": "Check for a newer release on GitHub",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/main.updateCheckResponse"
}
},
"502": {
"description": "Bad Gateway",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/vehicles/spawn": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"vehicles"
],
"summary": "Send vehicle spawn command via RabbitMQ",
"parameters": [
{
"description": "FLS ID, class name, coordinates, rotation, template, persistence, and faction",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
}
},
"definitions": {
"main.appConfig": {
"type": "object",
"properties": {
"amp_container": {
"type": "string"
},
"amp_data_root": {
"type": "string"
},
"amp_instance": {
"description": "AMP-specific — used when Control == \"amp\" (CubeCoders AMP w/ podman).",
"type": "string"
},
"amp_log_path": {
"type": "string"
},
"amp_use_container": {
"type": "boolean"
},
"amp_user": {
"type": "string"
},
"backup_dir": {
"description": "Backups — optional path accessed via the executor.",
"type": "string"
},
"broker_admin_addr": {
"type": "string"
},
"broker_exec_prefix": {
"description": "BrokerExecPrefix is prepended to all rabbitmqctl calls. Use when the\nbroker runs inside a container that isn't managed by the docker control\nplane — e.g. \"podman exec AMP_MehDune01\" or \"docker exec my-broker\".",
"type": "string"
},
"broker_game_addr": {
"description": "Broker — optional; if set, notifications and capture are available.",
"type": "string"
},
"broker_jwt_secret": {
"description": "BrokerJWTSecret is the base64-encoded HMAC key used to re-sign\nServiceAuthTokens for CaptureJWT. Optional override for the baked-in\ndefault signing key (captureJWTSecretB64).",
"type": "string"
},
"broker_pass": {
"type": "string"
},
"broker_tls": {
"type": "boolean"
},
"broker_user": {
"type": "string"
},
"cmd_restart": {
"type": "string"
},
"cmd_start": {
"description": "local-specific — configurable shell commands",
"type": "string"
},
"cmd_status": {
"type": "string"
},
"cmd_stop": {
"type": "string"
},
"control": {
"description": "Control plane: \"kubectl\" | \"docker\" | \"local\" | \"amp\"",
"type": "string"
},
"control_namespace": {
"description": "kubectl-specific",
"type": "string"
},
"db_host": {
"description": "Database — always required.",
"type": "string"
},
"db_name": {
"type": "string"
},
"db_pass": {
"type": "string"
},
"db_port": {
"type": "integer"
},
"db_schema": {
"type": "string"
},
"db_user": {
"type": "string"
},
"default_ini_dir": {
"description": "DefaultIniDir is a local or remote path that contains DefaultGame.ini and\nDefaultEngine.ini — the base layer of the INI hierarchy.",
"type": "string"
},
"director_url": {
"type": "string"
},
"docker_broker_admin": {
"type": "string"
},
"docker_broker_game": {
"type": "string"
},
"docker_db": {
"type": "string"
},
"docker_gameserver": {
"description": "docker-specific — container names",
"type": "string"
},
"listen_addr": {
"type": "string"
},
"market_bot_buy_interval": {
"type": "string"
},
"market_bot_buy_threshold": {
"type": "number"
},
"market_bot_cache_db": {
"type": "string"
},
"market_bot_enabled": {
"description": "── Embedded market bot ────────────────────────────────────────────────\nMarketBotEnabled starts the market bot as an in-process goroutine.\nPointer so we can distinguish \"unset\" (default-on) from \"explicitly false\".",
"type": "boolean"
},
"market_bot_item_data": {
"type": "string"
},
"market_bot_list_interval": {
"type": "string"
},
"market_bot_max_buys": {
"type": "integer"
},
"market_bot_remote_token": {
"type": "string"
},
"market_bot_remote_url": {
"type": "string"
},
"market_bot_state": {
"type": "string"
},
"scrip_currency": {
"type": "integer"
},
"server_ini_dir": {
"description": "ServerIniDir is the directory containing UserGame.ini and UserOverrides.ini.",
"type": "string"
},
"ssh_host": {
"description": "Transport — SSH fields. If ssh_host is set all commands + TCP connections\ntunnel through SSH. If omitted everything runs/connects locally.",
"type": "string"
},
"ssh_key": {
"type": "string"
},
"ssh_user": {
"type": "string"
}
}
},
"main.backupFile": {
"type": "object",
"properties": {
"has_yaml": {
"type": "boolean"
},
"modified": {
"type": "string"
},
"name": {
"type": "string"
},
"size_bytes": {
"type": "integer"
}
}
},
"main.cheatEntry": {
"type": "object",
"properties": {
"character_name": {
"type": "string"
},
"cheat_type": {
"type": "string"
},
"event_time": {
"type": "string"
},
"fls_id": {
"type": "string"
}
}
},
"main.currencyRow": {
"type": "object",
"properties": {
"balance": {
"type": "integer"
},
"currency_id": {
"type": "integer"
},
"player_id": {
"type": "integer"
}
}
},
"main.dungeonRecord": {
"type": "object",
"properties": {
"completion_id": {
"type": "integer"
},
"difficulty": {
"type": "string"
},
"dungeon_id": {
"type": "string"
},
"duration_ms": {
"type": "integer"
},
"players_num": {
"type": "integer"
}
}
},
"main.factionRep": {
"type": "object",
"properties": {
"actor_id": {
"type": "integer"
},
"faction_id": {
"type": "integer"
},
"faction_name": {
"type": "string"
},
"reputation": {
"type": "integer"
},
"scrips": {
"type": "integer"
}
}
},
"main.gameEvent": {
"type": "object",
"properties": {
"actor_id": {
"type": "integer"
},
"custom_data": {
"type": "string"
},
"event_type": {
"type": "integer"
},
"map": {
"type": "string"
},
"universe_time": {
"type": "string"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
}
}
},
"main.giveItemInput": {
"type": "object",
"properties": {
"qty": {
"type": "integer"
},
"quality": {
"type": "integer"
},
"template": {
"type": "string"
}
}
},
"main.giveItemsRequest": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/main.giveItemInput"
}
},
"player_id": {
"type": "integer"
}
}
},
"main.itemInfo": {
"type": "object",
"properties": {
"durability": {
"type": "string"
},
"id": {
"type": "integer"
},
"max_durability": {
"type": "string"
},
"name": {
"type": "string"
},
"quality": {
"type": "integer"
},
"stack_size": {
"type": "integer"
},
"template_id": {
"type": "string"
}
}
},
"main.logPod": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"namespace": {
"type": "string"
}
}
},
"main.playerInfo": {
"type": "object",
"properties": {
"account_id": {
"type": "integer"
},
"class": {
"type": "string"
},
"controller_id": {
"type": "integer"
},
"faction_id": {
"type": "integer"
},
"fls_id": {
"type": "string"
},
"id": {
"type": "integer"
},
"map": {
"type": "string"
},
"name": {
"type": "string"
},
"online_status": {
"type": "string"
}
}
},
"main.specTrack": {
"type": "object",
"properties": {
"level": {
"type": "number"
},
"player_id": {
"type": "integer"
},
"track_type": {
"type": "string"
},
"xp": {
"type": "integer"
}
}
},
"main.teleportLocation": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
}
}
},
"main.updateApplyRequest": {
"type": "object",
"properties": {
"force": {
"type": "boolean"
}
}
},
"main.updateApplyResponse": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"updated": {
"type": "boolean"
},
"version": {
"type": "string"
}
}
},
"main.updateCheckResponse": {
"type": "object",
"properties": {
"current": {
"type": "string"
},
"latest": {
"type": "string"
},
"needs_update": {
"type": "boolean"
},
"release_url": {
"type": "string"
}
}
},
"main.vehicleRow": {
"type": "object",
"properties": {
"chassis_durability": {
"type": "number"
},
"class": {
"type": "string"
},
"id": {
"type": "integer"
},
"is_backup": {
"type": "boolean"
},
"is_recovered": {
"type": "boolean"
},
"map": {
"type": "string"
},
"vehicle_name": {
"type": "string"
}
}
}
}
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "1.0",
Host: "localhost:8080",
BasePath: "/",
Schemes: []string{},
Title: "dune-admin API",
Description: "Admin panel API for a Dune Awakening private server.",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}