Skip to content

Instantly share code, notes, and snippets.

@if1live
Created August 22, 2023 01:41
Show Gist options
  • Save if1live/cac5880000a42024aebf6a99cacb513b to your computer and use it in GitHub Desktop.
Save if1live/cac5880000a42024aebf6a99cacb513b to your computer and use it in GitHub Desktop.
PufferPanel API
{
"schemes": [],
"swagger": "2.0",
"info": {
"description": "PufferPanel API interface for both the panel and daemon. Endpoints starting with /daemon or /proxy are for nodes.",
"title": "PufferPanel API",
"contact": {
"name": "PufferPanel",
"url": "https://pufferpanel.com"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "2.0"
},
"host": "",
"basePath": "",
"paths": {
"/api/nodes": {
"get": {
"description": "Gets all nodes registered to the panel",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get nodes",
"responses": {
"200": {
"description": "Nodes",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.NodeView"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"post": {
"description": "Creates a node",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Create node",
"responses": {
"200": {
"description": "Node created",
"schema": {
"$ref": "#/definitions/models.NodeView"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/nodes/{id}": {
"get": {
"description": "Gets information about a single node",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get node",
"parameters": [
{
"type": "string",
"description": "Node Id",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Nodes",
"schema": {
"$ref": "#/definitions/models.NodeView"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"put": {
"description": "Updates a node with given information",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Update node",
"parameters": [
{
"type": "string",
"description": "Node Id",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Node information",
"name": "node",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.NodeView"
}
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"delete": {
"description": "Deletes the node",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Deletes a node",
"parameters": [
{
"type": "string",
"description": "Node Id",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/nodes/{id}/deployment": {
"get": {
"description": "Gets the secret information needed to deploy a node.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets the data to deploy a node",
"parameters": [
{
"type": "string",
"description": "Node Id",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Deployment"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/self": {
"get": {
"description": "Gets the user information of the current user",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get your user info",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.UserView"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"put": {
"description": "Updates the value of a panel setting",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Update a panel setting",
"parameters": [
{
"type": "string",
"description": "The config key",
"name": "key",
"in": "path",
"required": true
},
{
"description": "The new value for the setting",
"name": "value",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.ChangeSetting"
}
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/self/oauth2": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets registered oauth2 clients under this user",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Client"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Create an account-level OAuth2 client",
"parameters": [
{
"description": "Information for the client to create",
"name": "client",
"in": "body",
"schema": {
"$ref": "#/definitions/models.Client"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.CreatedClient"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/self/oauth2/{id}": {
"delete": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Deletes an account-level OAuth2 client",
"parameters": [
{
"type": "string",
"description": "Information for the client to create",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/servers": {
"get": {
"description": "Gets servers, and allowing for filtering of servers. * is a wildcard that can be used for text inputs",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get servers",
"parameters": [
{
"type": "string",
"description": "Username to filter on, default is current user if NOT admin",
"name": "username",
"in": "query"
},
{
"type": "integer",
"description": "Node ID to filter on",
"name": "node",
"in": "query"
},
{
"type": "string",
"description": "Name of server to filter on",
"name": "name",
"in": "query"
},
{
"type": "integer",
"description": "Max number of results to return",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "What page to get back for many results",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.ServerSearchResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"post": {
"description": "Creates a server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Makes a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path"
},
{
"description": "Creation information",
"name": "server",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.ServerCreation"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.CreateServerResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/servers/{id}": {
"get": {
"description": "Gets a particular server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.GetServerResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"put": {
"description": "Creates a server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Makes a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path"
},
{
"description": "Creation information",
"name": "server",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.ServerCreation"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.CreateServerResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"delete": {
"description": "Deletes a server from the panel",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Deletes a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/servers/{id}/name": {
"post": {
"description": "Renames a server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Rename server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path"
},
{
"type": "string",
"description": "Server Name",
"name": "name",
"in": "path"
}
],
"responses": {
"200": {
"description": "OK"
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/servers/{id}/oauth2": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets server-level OAuth2 credentials for the logged in user",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Client"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Creates server-level OAuth2 credentials for the logged in user",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Client to create",
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/models.Client"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.CreatedClient"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/servers/{id}/oauth2/{clientId}": {
"delete": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Deletes server-level OAuth2 credential",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Client ID",
"name": "clientId",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/servers/{id}/user": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets all users for a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PermissionView"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/servers/{id}/users/{email}": {
"put": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Edits access to a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Email of user",
"name": "email",
"in": "path",
"required": true
},
{
"description": "New permissions to apply",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.PermissionView"
}
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"delete": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Removes access to a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Email of user",
"name": "email",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/settings/{key}": {
"get": {
"description": "Gets the value currently being used for the specified config key",
"produces": [
"application/json"
],
"summary": "Value a panel setting",
"parameters": [
{
"type": "string",
"description": "The config key",
"name": "key",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.SettingResponse"
}
}
}
}
},
"/api/templates": {
"get": {
"description": "Gets a template if registered",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get single template",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Template"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/templates/import": {
"post": {
"description": "Gets all templates which can be imported from https://github.com/PufferPanel/templates",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets importable templates",
"parameters": [
{
"description": "Template",
"name": "template",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/pufferpanel.Server"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/templates/import/{name}": {
"post": {
"description": "Imports the given template from our main repo",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Import template from repo",
"parameters": [
{
"type": "string",
"description": "Template",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/templates/{name}": {
"put": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Adds or updates a template",
"parameters": [
{
"description": "Template",
"name": "template",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/pufferpanel.Server"
}
},
{
"type": "string",
"description": "Template name",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"delete": {
"description": "Deletes template",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Deletes template",
"parameters": [
{
"type": "string",
"description": "Template",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/userSettings": {
"get": {
"description": "Gets all settings specific to the current user",
"produces": [
"application/json"
],
"summary": "Get a user setting",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.UserSettingView"
}
}
}
}
}
},
"/api/userSettings/{key}": {
"put": {
"description": "Updates the value of a user setting",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Update a user setting",
"parameters": [
{
"type": "string",
"description": "The config key",
"name": "key",
"in": "path",
"required": true
},
{
"description": "The new value for the setting",
"name": "value",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.ChangeUserSetting"
}
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/users": {
"get": {
"description": "Gets users, and allowing for filtering of users. * is a wildcard that can be used for text inputs",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get users",
"parameters": [
{
"description": "Filters to search on",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.UserSearch"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.UserSearchResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Create user",
"parameters": [
{
"description": "New user information",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.UserView"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.UserView"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/users/{id}": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get a user",
"parameters": [
{
"type": "integer",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.UserView"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Update user",
"parameters": [
{
"type": "integer",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "New user information",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.UserView"
}
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"delete": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Delete user",
"parameters": [
{
"type": "integer",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/api/users/{id}/perms": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets user permissions",
"parameters": [
{
"type": "integer",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.PermissionView"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"put": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Sets user permissions",
"parameters": [
{
"type": "integer",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "New permissions",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.PermissionView"
}
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon": {
"get": {
"description": "Easy way to tell if the daemon is running is by using this endpoint",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Is daemon up",
"responses": {
"200": {
"description": "Service running",
"schema": {
"$ref": "#/definitions/pufferpanel.DaemonRunning"
}
}
}
},
"head": {
"description": "Gets a list of features supported by the node",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get supported features",
"responses": {
"200": {
"description": "Features",
"schema": {
"$ref": "#/definitions/daemon.Features"
}
}
}
}
},
"/daemon/server/{id}": {
"get": {
"description": "Gets the given server data from an admin's view",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets server data as admin",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Data for this server",
"schema": {
"$ref": "#/definitions/pufferpanel.ServerDataAdmin"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"put": {
"description": "Creates the server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Create server",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Server to create",
"name": "server",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/pufferpanel.Server"
}
}
],
"responses": {
"200": {
"description": "Server created",
"schema": {
"$ref": "#/definitions/pufferpanel.ServerIdResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"post": {
"description": "Updates a server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Updates a server",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"delete": {
"description": "Deletes the given server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Deletes server",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "Server deleted",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/archive/{filename}": {
"post": {
"description": "Archives file(s) with the",
"consumes": [
"application/json"
],
"summary": "Archive file(s)",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Destination",
"name": "filename",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "If file(s) was archived",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/console": {
"get": {
"description": "Gets the given server logs since a certain time period",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets server logs",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
"default": 0,
"description": "Only get data from after this UNIX timestamp",
"name": "time",
"in": "query"
}
],
"responses": {
"200": {
"description": "Logs for this server",
"schema": {
"$ref": "#/definitions/pufferpanel.ServerLogs"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"post": {
"description": "Runs a command in the server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Run command",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Command to run",
"name": "commands",
"in": "body",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "If command was ran",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/data": {
"get": {
"description": "Gets the given server data",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets server data",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Data for this server",
"schema": {
"$ref": "#/definitions/pufferpanel.ServerData"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"post": {
"description": "Edits the given server data",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Edit server data",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Server data",
"name": "data",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/pufferpanel.ServerData"
}
}
],
"responses": {
"204": {
"description": "Server edited",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/extract/{filename}": {
"get": {
"description": "Extracts files from an archive",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Extract files",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "File name",
"name": "filename",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Destination directory (URI Parameter)",
"name": "destination",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "If file was extracted",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/file/{filename}": {
"get": {
"description": "Gets a file or a file list from the server",
"consumes": [
"application/json"
],
"produces": [
"application/json",
"application/octet-stream"
],
"summary": "Get file/list",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "File name",
"name": "filename",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "File List",
"schema": {
"$ref": "#/definitions/messages.FileDesc"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"put": {
"description": "Puts a file or folder on the server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Put file/folder",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "File name",
"name": "filename",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "If this is a folder",
"name": "folder",
"in": "path",
"required": true
},
{
"type": "file",
"description": "File to place",
"name": "file",
"in": "formData"
}
],
"responses": {
"204": {
"description": "If file/folder was created",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
},
"delete": {
"description": "Deletes a file from the server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Delete file",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "File name",
"name": "filename",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "If file was deleted",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/install": {
"post": {
"description": "installs the given server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Installs server",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "Wait for the operation to complete",
"name": "wait",
"in": "query"
}
],
"responses": {
"202": {
"description": "Install has been queued",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/kill": {
"post": {
"description": "Stops the given server forcefully",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Kill server",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "Server killed",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/reload": {
"post": {
"description": "Reloads the server from disk",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Reload server",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "Reloaded server",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/start": {
"post": {
"description": "Starts the given server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Starts server",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "Wait for the operation to complete",
"name": "wait",
"in": "query"
}
],
"responses": {
"202": {
"description": "Start has been queued",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"204": {
"description": "Server started",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/stats": {
"get": {
"description": "Gets the given server stats",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets server stats",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Stats for this server",
"schema": {
"$ref": "#/definitions/pufferpanel.ServerStats"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/status": {
"get": {
"description": "Gets the given server status",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Gets server status",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/pufferpanel.ServerRunning"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
},
"/daemon/server/{id}/stop": {
"post": {
"description": "Stops the given server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Stop server",
"parameters": [
{
"type": "string",
"description": "Server Identifier",
"name": "id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "Wait for the operation to complete",
"name": "wait",
"in": "query"
}
],
"responses": {
"202": {
"description": "Stop has been queued",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"204": {
"description": "Server stopped",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.Error"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Empty"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Error"
}
}
}
}
}
},
"definitions": {
"daemon.Features": {
"type": "object",
"properties": {
"features": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"messages.FileDesc": {
"type": "object",
"properties": {
"extension": {
"type": "string"
},
"isFile": {
"type": "boolean"
},
"modifyTime": {
"type": "integer"
},
"name": {
"type": "string"
},
"size": {
"type": "integer"
}
}
},
"models.ChangeSetting": {
"type": "object",
"properties": {
"value": {}
}
},
"models.ChangeUserSetting": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"models.Client": {
"type": "object",
"properties": {
"client_id": {
"type": "string"
},
"description": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"models.CreateServerResponse": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"models.CreatedClient": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"secret": {
"type": "string"
}
}
},
"models.Deployment": {
"type": "object",
"properties": {
"clientId": {
"type": "string"
},
"clientSecret": {
"type": "string"
},
"publicKey": {
"type": "string"
}
}
},
"models.GetServerResponse": {
"type": "object",
"properties": {
"permissions": {
"$ref": "#/definitions/models.PermissionView"
},
"server": {
"$ref": "#/definitions/models.ServerView"
}
}
},
"models.NodeView": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"isLocal": {
"type": "boolean"
},
"name": {
"type": "string"
},
"privateHost": {
"type": "string"
},
"privatePort": {
"type": "integer"
},
"publicHost": {
"type": "string"
},
"publicPort": {
"type": "integer"
},
"sftpPort": {
"type": "integer"
}
}
},
"models.PermissionView": {
"type": "object",
"properties": {
"admin": {
"type": "boolean"
},
"createServers": {
"type": "boolean"
},
"deleteServers": {
"type": "boolean"
},
"deployNodes": {
"type": "boolean"
},
"editNodes": {
"type": "boolean"
},
"editServerAdmin": {
"type": "boolean"
},
"editServerData": {
"type": "boolean"
},
"editServerUsers": {
"type": "boolean"
},
"editTemplates": {
"type": "boolean"
},
"editUsers": {
"type": "boolean"
},
"email": {
"type": "string"
},
"installServer": {
"type": "boolean"
},
"panelSettings": {
"type": "boolean"
},
"putServerFiles": {
"type": "boolean"
},
"sendServerConsole": {
"type": "boolean"
},
"serverIdentifier": {
"type": "string"
},
"sftpServer": {
"type": "boolean"
},
"startServer": {
"type": "boolean"
},
"stopServer": {
"type": "boolean"
},
"username": {
"type": "string"
},
"viewNodes": {
"type": "boolean"
},
"viewServerConsole": {
"type": "boolean"
},
"viewServerFiles": {
"type": "boolean"
},
"viewServerStats": {
"type": "boolean"
},
"viewServers": {
"type": "boolean"
},
"viewTemplates": {
"type": "boolean"
},
"viewUsers": {
"type": "boolean"
}
}
},
"models.ServerCreation": {
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/pufferpanel.Variable"
}
},
"display": {
"type": "string"
},
"environment": {},
"id": {
"type": "string"
},
"install": {
"type": "array",
"items": {}
},
"name": {
"type": "string"
},
"node": {
"type": "integer"
},
"requirements": {
"$ref": "#/definitions/pufferpanel.Requirements"
},
"run": {
"$ref": "#/definitions/pufferpanel.Execution"
},
"supportedEnvironments": {
"type": "array",
"items": {}
},
"tasks": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/pufferpanel.Task"
}
},
"type": {
"type": "string"
},
"uninstall": {
"type": "array",
"items": {}
},
"users": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"models.ServerSearchResponse": {
"type": "object",
"properties": {
"paging": {
"$ref": "#/definitions/response.Paging"
},
"servers": {
"type": "array",
"items": {
"$ref": "#/definitions/models.ServerView"
}
}
}
},
"models.ServerUserView": {
"type": "object",
"properties": {
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"username": {
"type": "string"
}
}
},
"models.ServerView": {
"type": "object",
"properties": {
"data": {},
"id": {
"type": "string"
},
"ip": {
"type": "string"
},
"name": {
"type": "string"
},
"node": {
"$ref": "#/definitions/models.NodeView"
},
"nodeId": {
"type": "integer"
},
"port": {
"type": "integer"
},
"type": {
"type": "string"
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/models.ServerUserView"
}
}
}
},
"models.SettingResponse": {
"type": "object",
"properties": {
"value": {}
}
},
"models.Template": {
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/pufferpanel.Variable"
}
},
"display": {
"type": "string"
},
"environment": {},
"id": {
"type": "string"
},
"install": {
"type": "array",
"items": {}
},
"name": {
"type": "string"
},
"readme": {
"type": "string"
},
"requirements": {
"$ref": "#/definitions/pufferpanel.Requirements"
},
"run": {
"$ref": "#/definitions/pufferpanel.Execution"
},
"supportedEnvironments": {
"type": "array",
"items": {}
},
"tasks": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/pufferpanel.Task"
}
},
"type": {
"type": "string"
},
"uninstall": {
"type": "array",
"items": {}
}
}
},
"models.User": {
"type": "object",
"properties": {
"otpActive": {
"type": "boolean"
}
}
},
"models.UserSearch": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"page": {
"type": "integer"
},
"pageLimit": {
"type": "integer"
},
"username": {
"type": "string"
}
}
},
"models.UserSearchResponse": {
"type": "object",
"properties": {
"paging": {
"$ref": "#/definitions/response.Paging"
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/models.UserView"
}
}
}
},
"models.UserSettingView": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"models.UserView": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"id": {
"type": "integer"
},
"newPassword": {
"type": "string"
},
"password": {
"description": "ONLY SHOW WHEN COPYING",
"type": "string"
},
"username": {
"type": "string"
}
}
},
"pufferpanel.DaemonRunning": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
},
"pufferpanel.Error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": true
},
"msg": {
"type": "string"
}
}
},
"pufferpanel.Execution": {
"type": "object",
"properties": {
"arguments": {
"type": "array",
"items": {
"type": "string"
}
},
"autorecover": {
"type": "boolean"
},
"autorestart": {
"type": "boolean"
},
"autostart": {
"type": "boolean"
},
"command": {
"type": "string"
},
"disabled": {
"type": "boolean"
},
"environmentVars": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"post": {
"type": "array",
"items": {}
},
"pre": {
"type": "array",
"items": {}
},
"program": {
"type": "string"
},
"stop": {
"type": "string"
},
"stopCode": {
"type": "integer"
},
"workingDirectory": {
"type": "string"
}
}
},
"pufferpanel.Requirements": {
"type": "object",
"properties": {
"arch": {
"type": "string"
},
"binaries": {
"type": "array",
"items": {
"type": "string"
}
},
"os": {
"type": "string"
}
}
},
"pufferpanel.Server": {
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/pufferpanel.Variable"
}
},
"display": {
"type": "string"
},
"environment": {},
"id": {
"type": "string"
},
"install": {
"type": "array",
"items": {}
},
"requirements": {
"$ref": "#/definitions/pufferpanel.Requirements"
},
"run": {
"$ref": "#/definitions/pufferpanel.Execution"
},
"supportedEnvironments": {
"type": "array",
"items": {}
},
"tasks": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/pufferpanel.Task"
}
},
"type": {
"type": "string"
},
"uninstall": {
"type": "array",
"items": {}
}
}
},
"pufferpanel.ServerData": {
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/pufferpanel.Variable"
}
}
}
},
"pufferpanel.ServerDataAdmin": {
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/pufferpanel.Variable"
}
},
"display": {
"type": "string"
},
"environment": {},
"id": {
"type": "string"
},
"install": {
"type": "array",
"items": {}
},
"requirements": {
"$ref": "#/definitions/pufferpanel.Requirements"
},
"run": {
"$ref": "#/definitions/pufferpanel.Execution"
},
"supportedEnvironments": {
"type": "array",
"items": {}
},
"tasks": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/pufferpanel.Task"
}
},
"type": {
"type": "string"
},
"uninstall": {
"type": "array",
"items": {}
}
}
},
"pufferpanel.ServerIdResponse": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"pufferpanel.ServerLogs": {
"type": "object",
"properties": {
"epoch": {
"type": "integer"
},
"logs": {
"type": "string"
}
}
},
"pufferpanel.ServerRunning": {
"type": "object",
"properties": {
"running": {
"type": "boolean"
}
}
},
"pufferpanel.ServerStats": {
"type": "object",
"properties": {
"cpu": {
"type": "number"
},
"memory": {
"type": "number"
}
}
},
"pufferpanel.Task": {
"type": "object",
"required": [
"name",
"operations"
],
"properties": {
"cronSchedule": {
"type": "string"
},
"name": {
"type": "string"
},
"operations": {
"type": "array",
"items": {}
}
}
},
"pufferpanel.Variable": {
"type": "object",
"properties": {
"desc": {
"type": "string"
},
"display": {
"type": "string"
},
"internal": {
"type": "boolean"
},
"options": {
"type": "array",
"items": {
"$ref": "#/definitions/pufferpanel.VariableOption"
}
},
"required": {
"type": "boolean"
},
"type": {
"type": "string"
},
"userEdit": {
"type": "boolean"
},
"value": {}
}
},
"pufferpanel.VariableOption": {
"type": "object",
"properties": {
"display": {
"type": "string"
},
"value": {}
}
},
"response.Empty": {
"type": "object"
},
"response.Error": {
"type": "object",
"properties": {
"error": {
"$ref": "#/definitions/pufferpanel.Error"
}
}
},
"response.Paging": {
"type": "object",
"properties": {
"maxSize": {
"type": "integer"
},
"page": {
"type": "integer"
},
"pageSize": {
"type": "integer"
},
"total": {
"type": "integer"
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment