Files
godoxy/internal/api/v1/docs/swagger.json

5718 lines
142 KiB
JSON

{
"swagger": "2.0",
"info": {
"description": "GoDoxy API",
"title": "GoDoxy API",
"termsOfService": "https://github.com/yusing/godoxy/blob/main/LICENSE",
"contact": {
"name": "Yusing",
"url": "https://github.com/yusing/godoxy/issues"
},
"license": {
"name": "MIT",
"url": "https://github.com/yusing/godoxy/blob/main/LICENSE"
},
"version": "1.0"
},
"basePath": "/api/v1",
"paths": {
"/agent/create": {
"post": {
"description": "Create a new agent and return the docker compose file, encrypted CA and client PEMs\nThe returned PEMs are encrypted with a random key and will be used for verification when adding a new agent",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"agent"
],
"summary": "Create a new agent",
"parameters": [
{
"description": "Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/NewAgentRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/NewAgentResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"409": {
"description": "Conflict",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "create",
"operationId": "create"
}
},
"/agent/list": {
"get": {
"description": "List agents",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"agent",
"websocket"
],
"summary": "List agents",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Agent"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "list",
"operationId": "list"
}
},
"/agent/verify": {
"post": {
"description": "Verify a new agent and return the number of routes added",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"agent"
],
"summary": "Verify a new agent",
"parameters": [
{
"description": "Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/VerifyNewAgentRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "verify",
"operationId": "verify"
}
},
"/auth/callback": {
"post": {
"description": "Handles the callback from the provider after successful authentication",
"produces": [
"text/plain"
],
"tags": [
"auth"
],
"summary": "Auth Callback",
"parameters": [
{
"description": "Userpass only",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/auth.UserPassAuthCallbackRequest"
}
}
],
"responses": {
"200": {
"description": "Userpass: OK",
"schema": {
"type": "string"
}
},
"302": {
"description": "OIDC: Redirects to home page",
"schema": {
"type": "string"
}
},
"400": {
"description": "Userpass: invalid request / credentials",
"schema": {
"type": "string"
}
},
"500": {
"description": "Internal server error",
"schema": {
"type": "string"
}
}
},
"x-id": "callback",
"operationId": "callback"
}
},
"/auth/check": {
"head": {
"description": "Checks if the user is authenticated by validating their token",
"produces": [
"text/plain"
],
"tags": [
"auth"
],
"summary": "Check authentication status",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "string"
}
},
"302": {
"description": "Redirects to login page or IdP",
"schema": {
"type": "string"
}
}
},
"x-id": "check",
"operationId": "check"
}
},
"/auth/login": {
"post": {
"description": "Initiates the login process by redirecting the user to the provider's login page",
"produces": [
"text/plain"
],
"tags": [
"auth"
],
"summary": "Login",
"responses": {
"302": {
"description": "Redirects to login page or IdP",
"schema": {
"type": "string"
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "string"
}
}
},
"x-id": "login",
"operationId": "login"
}
},
"/auth/logout": {
"get": {
"description": "Logs out the user by invalidating the token",
"produces": [
"text/plain"
],
"tags": [
"auth"
],
"summary": "Logout",
"responses": {
"302": {
"description": "Redirects to home page",
"schema": {
"type": "string"
}
}
},
"x-id": "logout",
"operationId": "logout"
},
"post": {
"description": "Logs out the user by invalidating the token",
"produces": [
"text/plain"
],
"tags": [
"auth"
],
"summary": "Logout",
"responses": {
"302": {
"description": "Redirects to home page",
"schema": {
"type": "string"
}
}
},
"x-id": "logout",
"operationId": "logout"
}
},
"/cert/info": {
"get": {
"description": "Get cert info",
"produces": [
"application/json"
],
"tags": [
"cert"
],
"summary": "Get cert info",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/CertInfo"
}
}
},
"403": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"404": {
"description": "No certificates found or autocert is not enabled",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "info",
"operationId": "info"
}
},
"/cert/renew": {
"get": {
"description": "Renew cert",
"produces": [
"text/plain"
],
"tags": [
"cert",
"websocket"
],
"summary": "Renew cert",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "renew",
"operationId": "renew"
}
},
"/docker/container/{id}": {
"get": {
"description": "Get container by container id",
"produces": [
"application/json"
],
"tags": [
"docker"
],
"summary": "Get container",
"parameters": [
{
"type": "string",
"description": "Container ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/ContainerResponse"
}
},
"400": {
"description": "ID is required",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"404": {
"description": "Container not found",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "container",
"operationId": "container"
}
},
"/docker/containers": {
"get": {
"description": "Get containers",
"produces": [
"application/json"
],
"tags": [
"docker"
],
"summary": "Get containers",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ContainerResponse"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "containers",
"operationId": "containers"
}
},
"/docker/info": {
"get": {
"description": "Get docker info",
"produces": [
"application/json"
],
"tags": [
"docker"
],
"summary": "Get docker info",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/ServerInfo"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "info",
"operationId": "info"
}
},
"/docker/logs/{id}": {
"get": {
"description": "Get docker container logs by container id",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"docker",
"websocket"
],
"summary": "Get docker container logs",
"parameters": [
{
"type": "string",
"description": "container id",
"name": "id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "show stdout",
"name": "stdout",
"in": "query"
},
{
"type": "boolean",
"description": "show stderr",
"name": "stderr",
"in": "query"
},
{
"type": "string",
"description": "from timestamp",
"name": "from",
"in": "query"
},
{
"type": "string",
"description": "to timestamp",
"name": "to",
"in": "query"
},
{
"type": "string",
"description": "levels",
"name": "levels",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK"
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"404": {
"description": "server not found or container not found",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "logs",
"operationId": "logs"
}
},
"/docker/restart": {
"post": {
"description": "Restart container by container id",
"produces": [
"application/json"
],
"tags": [
"docker"
],
"summary": "Restart container",
"parameters": [
{
"description": "Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dockerapi.RestartRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Invalid request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"404": {
"description": "Container not found",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "restart",
"operationId": "restart"
}
},
"/docker/start": {
"post": {
"description": "Start container by container id",
"produces": [
"application/json"
],
"tags": [
"docker"
],
"summary": "Start container",
"parameters": [
{
"description": "Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dockerapi.StartRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Invalid request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"404": {
"description": "Container not found",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "start",
"operationId": "start"
}
},
"/docker/stop": {
"post": {
"description": "Stop container by container id",
"produces": [
"application/json"
],
"tags": [
"docker"
],
"summary": "Stop container",
"parameters": [
{
"description": "Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dockerapi.StopRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Invalid request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"404": {
"description": "Container not found",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "stop",
"operationId": "stop"
}
},
"/favicon": {
"get": {
"description": "Get favicon",
"consumes": [
"application/json"
],
"produces": [
"image/svg+xml",
"image/x-icon",
"image/png",
"image/webp"
],
"tags": [
"v1"
],
"summary": "Get favicon",
"parameters": [
{
"type": "string",
"description": "URL of the route",
"name": "url",
"in": "query"
},
{
"type": "string",
"description": "Alias of the route",
"name": "alias",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/IconFetchResult"
}
}
},
"400": {
"description": "Bad Request: alias is empty or route is not HTTPRoute",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden: unauthorized",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"404": {
"description": "Not Found: route or icon not found",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error: internal error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "favicon",
"operationId": "favicon"
}
},
"/file/content": {
"get": {
"description": "Get file content",
"consumes": [
"application/json"
],
"produces": [
"application/json",
"application/godoxy+yaml"
],
"tags": [
"file"
],
"summary": "Get file content",
"parameters": [
{
"type": "string",
"format": "filename",
"name": "filename",
"in": "query",
"required": true
},
{
"enum": [
"config",
"provider",
"middleware"
],
"type": "string",
"x-enum-varnames": [
"FileTypeConfig",
"FileTypeProvider",
"FileTypeMiddleware"
],
"name": "type",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "string"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "get",
"operationId": "get"
},
"put": {
"description": "Set file content",
"consumes": [
"text/plain"
],
"produces": [
"application/json"
],
"tags": [
"file"
],
"summary": "Set file content",
"parameters": [
{
"enum": [
"config",
"provider",
"middleware"
],
"type": "string",
"description": "Type",
"name": "type",
"in": "query",
"required": true
},
{
"type": "string",
"description": "Filename",
"name": "filename",
"in": "query",
"required": true
},
{
"description": "File",
"name": "file",
"in": "body",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "set",
"operationId": "set"
}
},
"/file/list": {
"get": {
"description": "List files",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"file"
],
"summary": "List files",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/ListFilesResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "list",
"operationId": "list"
}
},
"/file/validate": {
"post": {
"description": "Validate file",
"consumes": [
"text/plain"
],
"produces": [
"application/json"
],
"tags": [
"file"
],
"summary": "Validate file",
"parameters": [
{
"enum": [
"config",
"provider",
"middleware"
],
"type": "string",
"description": "Type",
"name": "type",
"in": "query",
"required": true
},
{
"description": "File content",
"name": "file",
"in": "body",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "File validated",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"417": {
"description": "Validation failed",
"schema": {}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "validate",
"operationId": "validate"
}
},
"/health": {
"get": {
"description": "Get health info by route name",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"v1",
"websocket"
],
"summary": "Get routes health info",
"responses": {
"200": {
"description": "Health info by route name",
"schema": {
"$ref": "#/definitions/HealthMap"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "health",
"operationId": "health"
}
},
"/homepage/categories": {
"get": {
"description": "List homepage categories",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "List homepage categories",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "categories",
"operationId": "categories"
}
},
"/homepage/item_click": {
"post": {
"description": "Increment item click.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "Increment item click",
"parameters": [
{
"type": "string",
"name": "which",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "item-click",
"operationId": "item-click"
}
},
"/homepage/items": {
"get": {
"description": "Homepage items",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage",
"websocket"
],
"summary": "Homepage items",
"parameters": [
{
"type": "string",
"description": "Category filter",
"name": "category",
"in": "query"
},
{
"type": "string",
"description": "Provider filter",
"name": "provider",
"in": "query"
},
{
"type": "string",
"description": "Search query",
"name": "search",
"in": "query"
},
{
"enum": [
"clicks",
"alphabetical",
"custom"
],
"type": "string",
"default": "alphabetical",
"description": "Sort method",
"name": "sort_method",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/HomepageCategory"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "items",
"operationId": "items"
}
},
"/homepage/set/category_order": {
"post": {
"description": "Set homepage category order.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "Set homepage category order",
"parameters": [
{
"description": "Override category order",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/HomepageOverrideCategoryOrderParams"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "set-category-order",
"operationId": "set-category-order"
}
},
"/homepage/set/item": {
"post": {
"description": "Override single homepage item.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "Override single homepage item",
"parameters": [
{
"description": "Override single item",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/HomepageOverrideItemParams"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "set-item",
"operationId": "set-item"
}
},
"/homepage/set/item_all_sort_order": {
"post": {
"description": "Set homepage item all sort order.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "Set homepage item all sort order",
"parameters": [
{
"description": "Set item all sort order",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/HomepageOverrideItemAllSortOrderParams"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "set-item-all-sort-order",
"operationId": "set-item-all-sort-order"
}
},
"/homepage/set/item_fav_sort_order": {
"post": {
"description": "Set homepage item fav sort order.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "Set homepage item fav sort order",
"parameters": [
{
"description": "Set item fav sort order",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/HomepageOverrideItemFavSortOrderParams"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "set-item-fav-sort-order",
"operationId": "set-item-fav-sort-order"
}
},
"/homepage/set/item_favorite": {
"post": {
"description": "Set homepage item favorite.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "Set homepage item favorite",
"parameters": [
{
"description": "Set item favorite",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/HomepageOverrideItemFavoriteParams"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "set-item-favorite",
"operationId": "set-item-favorite"
}
},
"/homepage/set/item_sort_order": {
"post": {
"description": "Set homepage item sort order.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "Set homepage item sort order",
"parameters": [
{
"description": "Set item sort order",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/HomepageOverrideItemSortOrderParams"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "set-item-sort-order",
"operationId": "set-item-sort-order"
}
},
"/homepage/set/item_visible": {
"post": {
"description": "POST list of item ids and visibility value.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "Set homepage item visibility",
"parameters": [
{
"description": "Set item visibility",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/HomepageOverrideItemVisibleParams"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "set-item-visible",
"operationId": "set-item-visible"
}
},
"/homepage/set/items_batch": {
"post": {
"description": "Override multiple homepage items.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"homepage"
],
"summary": "Override multiple homepage items",
"parameters": [
{
"description": "Override multiple items",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/HomepageOverrideItemsBatchParams"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "set-items-batch",
"operationId": "set-items-batch"
}
},
"/icons": {
"get": {
"description": "List icons",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"v1"
],
"summary": "List icons",
"parameters": [
{
"type": "integer",
"description": "Limit",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "Keyword",
"name": "keyword",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/IconMetaSearch"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "icons",
"operationId": "icons"
}
},
"/metrics/all_system_info": {
"get": {
"description": "Get system info",
"produces": [
"application/json"
],
"tags": [
"metrics",
"websocket"
],
"summary": "Get system info",
"parameters": [
{
"enum": [
"cpu_average",
"memory_usage",
"memory_usage_percent",
"disks_read_speed",
"disks_write_speed",
"disks_iops",
"disk_usage",
"network_speed",
"network_transfer",
"sensor_temperature"
],
"type": "string",
"x-enum-varnames": [
"SystemInfoAggregateModeCPUAverage",
"SystemInfoAggregateModeMemoryUsage",
"SystemInfoAggregateModeMemoryUsagePercent",
"SystemInfoAggregateModeDisksReadSpeed",
"SystemInfoAggregateModeDisksWriteSpeed",
"SystemInfoAggregateModeDisksIOPS",
"SystemInfoAggregateModeDiskUsage",
"SystemInfoAggregateModeNetworkSpeed",
"SystemInfoAggregateModeNetworkTransfer",
"SystemInfoAggregateModeSensorTemperature"
],
"name": "aggregate",
"in": "query"
},
{
"type": "string",
"format": "duration",
"name": "interval",
"in": "query"
},
{
"enum": [
"5m",
"15m",
"1h",
"1d",
"1mo"
],
"type": "string",
"x-enum-varnames": [
"MetricsPeriod5m",
"MetricsPeriod15m",
"MetricsPeriod1h",
"MetricsPeriod1d",
"MetricsPeriod1mo"
],
"name": "period",
"in": "query"
}
],
"responses": {
"200": {
"description": "period specified, aggregated system info by agent name",
"schema": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/SystemInfoAggregate"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "all_system_info",
"operationId": "all_system_info"
}
},
"/metrics/system_info": {
"get": {
"description": "Get system info",
"produces": [
"application/json"
],
"tags": [
"metrics",
"websocket"
],
"summary": "Get system info",
"parameters": [
{
"type": "string",
"name": "agentAddr",
"in": "query"
},
{
"type": "string",
"name": "agentName",
"in": "query"
},
{
"enum": [
"cpu_average",
"memory_usage",
"memory_usage_percent",
"disks_read_speed",
"disks_write_speed",
"disks_iops",
"disk_usage",
"network_speed",
"network_transfer",
"sensor_temperature"
],
"type": "string",
"x-enum-varnames": [
"SystemInfoAggregateModeCPUAverage",
"SystemInfoAggregateModeMemoryUsage",
"SystemInfoAggregateModeMemoryUsagePercent",
"SystemInfoAggregateModeDisksReadSpeed",
"SystemInfoAggregateModeDisksWriteSpeed",
"SystemInfoAggregateModeDisksIOPS",
"SystemInfoAggregateModeDiskUsage",
"SystemInfoAggregateModeNetworkSpeed",
"SystemInfoAggregateModeNetworkTransfer",
"SystemInfoAggregateModeSensorTemperature"
],
"name": "aggregate",
"in": "query"
},
{
"enum": [
"5m",
"15m",
"1h",
"1d",
"1mo"
],
"type": "string",
"x-enum-varnames": [
"MetricsPeriod5m",
"MetricsPeriod15m",
"MetricsPeriod1h",
"MetricsPeriod1d",
"MetricsPeriod1mo"
],
"name": "period",
"in": "query"
}
],
"responses": {
"200": {
"description": "period specified",
"schema": {
"$ref": "#/definitions/SystemInfoAggregate"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "system_info",
"operationId": "system_info"
}
},
"/metrics/uptime": {
"get": {
"description": "Get uptime",
"produces": [
"application/json"
],
"tags": [
"metrics",
"websocket"
],
"summary": "Get uptime",
"parameters": [
{
"enum": [
"5m",
"15m",
"1h",
"1d",
"1mo"
],
"type": "string",
"example": "1m",
"x-enum-varnames": [
"MetricsPeriod5m",
"MetricsPeriod15m",
"MetricsPeriod1h",
"MetricsPeriod1d",
"MetricsPeriod1mo"
],
"name": "interval",
"in": "query"
},
{
"type": "string",
"example": "",
"name": "keyword",
"in": "query"
},
{
"type": "integer",
"default": 0,
"example": 10,
"name": "limit",
"in": "query"
},
{
"type": "integer",
"default": 0,
"example": 10,
"name": "offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "period specified",
"schema": {
"$ref": "#/definitions/UptimeAggregate"
}
},
"204": {
"description": "No Content",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "uptime",
"operationId": "uptime"
}
},
"/reload": {
"post": {
"description": "Reload config",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"v1"
],
"summary": "Reload config",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "reload",
"operationId": "reload"
}
},
"/route/by_provider": {
"get": {
"description": "List routes by provider",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"route"
],
"summary": "List routes by provider",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/routeApi.RoutesByProvider"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "byProvider",
"operationId": "byProvider"
}
},
"/route/list": {
"get": {
"description": "List routes",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"route",
"websocket"
],
"summary": "List routes",
"parameters": [
{
"type": "string",
"description": "Provider",
"name": "provider",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Route"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "routes",
"operationId": "routes"
}
},
"/route/playground": {
"post": {
"description": "Test rules against mock request/response",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"route"
],
"summary": "Rule Playground",
"parameters": [
{
"description": "Playground request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/PlaygroundRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/PlaygroundResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "playground",
"operationId": "playground"
}
},
"/route/providers": {
"get": {
"description": "List route providers",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"route",
"websocket"
],
"summary": "List route providers",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/RouteProvider"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "providers",
"operationId": "providers"
}
},
"/route/{which}": {
"get": {
"description": "List route",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"route"
],
"summary": "List route",
"parameters": [
{
"type": "string",
"description": "Route name",
"name": "which",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Route"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "route",
"operationId": "route"
}
},
"/stats": {
"get": {
"description": "Get stats",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"v1",
"websocket"
],
"summary": "Get GoDoxy stats",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/StatsResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
},
"x-id": "stats",
"operationId": "stats"
}
},
"/version": {
"get": {
"description": "Get the version of the GoDoxy",
"consumes": [
"application/json"
],
"produces": [
"text/plain"
],
"tags": [
"v1"
],
"summary": "Get version",
"responses": {
"200": {
"description": "version",
"schema": {
"type": "string"
}
}
},
"x-id": "version",
"operationId": "version"
}
}
},
"definitions": {
"Agent": {
"type": "object",
"properties": {
"addr": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"runtime": {
"$ref": "#/definitions/agent.ContainerRuntime",
"x-nullable": false,
"x-omitempty": false
},
"supports_tcp_stream": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"supports_udp_stream": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"version": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"CIDR": {
"type": "object",
"properties": {
"ip": {
"description": "network number",
"type": "array",
"items": {
"type": "integer",
"format": "int32"
},
"x-nullable": false,
"x-omitempty": false
},
"mask": {
"description": "network mask",
"type": "array",
"items": {
"type": "integer",
"format": "int32"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"CertInfo": {
"type": "object",
"properties": {
"dns_names": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"email_addresses": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"issuer": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"not_after": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"not_before": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"subject": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"Container": {
"type": "object",
"properties": {
"agent": {
"$ref": "#/definitions/agentpool.Agent",
"x-nullable": false,
"x-omitempty": false
},
"aliases": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"container_id": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"container_name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"docker_cfg": {
"$ref": "#/definitions/DockerProviderConfig",
"x-nullable": false,
"x-omitempty": false
},
"errors": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"idlewatcher_config": {
"$ref": "#/definitions/IdlewatcherConfig",
"x-nullable": false,
"x-omitempty": false
},
"image": {
"$ref": "#/definitions/ContainerImage",
"x-nullable": false,
"x-omitempty": false
},
"is_excluded": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"is_explicit": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"is_host_network_mode": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"labels": {
"description": "for displaying in UI",
"type": "object",
"additionalProperties": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"mounts": {
"description": "source:destination",
"type": "object",
"additionalProperties": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"network": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"private_hostname": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"private_ports": {
"description": "privatePort:types.Port",
"allOf": [
{
"$ref": "#/definitions/types.PortMapping"
}
],
"x-nullable": false,
"x-omitempty": false
},
"public_hostname": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"public_ports": {
"description": "non-zero publicPort:types.Port",
"allOf": [
{
"$ref": "#/definitions/types.PortMapping"
}
],
"x-nullable": false,
"x-omitempty": false
},
"running": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"state": {
"$ref": "#/definitions/container.ContainerState",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"ContainerImage": {
"type": "object",
"properties": {
"author": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"sha256": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"tag": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"version": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"ContainerResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"image": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"server": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"state": {
"allOf": [
{
"$ref": "#/definitions/ContainerState"
}
],
"x-nullable": true
}
},
"x-nullable": false,
"x-omitempty": false
},
"ContainerState": {
"type": "string",
"enum": [
"created",
"running",
"paused",
"restarting",
"removing",
"exited",
"dead"
],
"x-enum-comments": {
"StateCreated": "StateCreated indicates the container is created, but not (yet) started.",
"StateDead": "StateDead indicates that the container failed to be deleted. Containers in this state are attempted to be cleaned up when the daemon restarts.",
"StateExited": "StateExited indicates that the container exited.",
"StatePaused": "StatePaused indicates that the container's current state is paused.",
"StateRemoving": "StateRemoving indicates that the container is being removed.",
"StateRestarting": "StateRestarting indicates that the container is currently restarting.",
"StateRunning": "StateRunning indicates that the container is running."
},
"x-enum-descriptions": [
"StateCreated indicates the container is created, but not (yet) started.",
"StateRunning indicates that the container is running.",
"StatePaused indicates that the container's current state is paused.",
"StateRestarting indicates that the container is currently restarting.",
"StateRemoving indicates that the container is being removed.",
"StateExited indicates that the container exited.",
"StateDead indicates that the container failed to be deleted. Containers in this state are attempted to be cleaned up when the daemon restarts."
],
"x-enum-varnames": [
"StateCreated",
"StateRunning",
"StatePaused",
"StateRestarting",
"StateRemoving",
"StateExited",
"StateDead"
],
"x-nullable": false,
"x-omitempty": false
},
"ContainerStats": {
"type": "object",
"properties": {
"paused": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"running": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"stopped": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"total": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"ContainerStopMethod": {
"type": "string",
"enum": [
"pause",
"stop",
"kill"
],
"x-enum-varnames": [
"ContainerStopMethodPause",
"ContainerStopMethodStop",
"ContainerStopMethodKill"
],
"x-nullable": false,
"x-omitempty": false
},
"DockerConfig": {
"type": "object",
"required": [
"container_id",
"container_name",
"docker_cfg"
],
"properties": {
"container_id": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"container_name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"docker_cfg": {
"$ref": "#/definitions/DockerProviderConfig",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"DockerProviderConfig": {
"type": "object",
"properties": {
"tls": {
"$ref": "#/definitions/DockerTLSConfig",
"x-nullable": false,
"x-omitempty": false
},
"url": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"DockerTLSConfig": {
"type": "object",
"required": [
"ca_file"
],
"properties": {
"ca_file": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"cert_file": {
"type": "string"
},
"key_file": {
"type": "string"
}
},
"x-nullable": false,
"x-omitempty": false
},
"ErrorResponse": {
"type": "object",
"properties": {
"error": {
"type": "string",
"x-nullable": true
},
"message": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"FileType": {
"type": "string",
"enum": [
"config",
"provider",
"middleware"
],
"x-enum-varnames": [
"FileTypeConfig",
"FileTypeProvider",
"FileTypeMiddleware"
],
"x-nullable": false,
"x-omitempty": false
},
"FinalRequest": {
"type": "object",
"properties": {
"body": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-nullable": false,
"x-omitempty": false
},
"host": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"method": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"path": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"query": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"FinalResponse": {
"type": "object",
"properties": {
"body": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-nullable": false,
"x-omitempty": false
},
"statusCode": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HTTPHeader": {
"type": "object",
"properties": {
"key": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"value": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HealthCheckConfig": {
"type": "object",
"properties": {
"disable": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"interval": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"path": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"retries": {
"description": "<0: immediate, 0: default, >0: threshold",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"timeout": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"use_get": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HealthExtra": {
"type": "object",
"properties": {
"config": {
"$ref": "#/definitions/LoadBalancerConfig",
"x-nullable": false,
"x-omitempty": false
},
"pool": {
"type": "object",
"additionalProperties": {},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HealthInfoWithoutDetail": {
"type": "object",
"properties": {
"latency": {
"description": "latency in microseconds",
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"status": {
"type": "string",
"enum": [
"healthy",
"unhealthy",
"napping",
"starting",
"error",
"unknown"
],
"x-nullable": false,
"x-omitempty": false
},
"uptime": {
"description": "uptime in milliseconds",
"type": "number",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HealthJSON": {
"type": "object",
"properties": {
"config": {
"$ref": "#/definitions/HealthCheckConfig",
"x-nullable": false,
"x-omitempty": false
},
"detail": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"extra": {
"allOf": [
{
"$ref": "#/definitions/HealthExtra"
}
],
"x-nullable": true
},
"lastSeen": {
"description": "unix timestamp in seconds",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"latency": {
"description": "latency in milliseconds",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"started": {
"description": "unix timestamp in seconds",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"status": {
"$ref": "#/definitions/HealthStatusString",
"x-nullable": false,
"x-omitempty": false
},
"uptime": {
"description": "uptime in seconds",
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"url": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HealthMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/HealthStatusString"
},
"x-nullable": false,
"x-omitempty": false
},
"HealthStatusString": {
"type": "string",
"enum": [
"unknown",
"healthy",
"napping",
"starting",
"unhealthy",
"error"
],
"x-enum-varnames": [
"StatusUnknownStr",
"StatusHealthyStr",
"StatusNappingStr",
"StatusStartingStr",
"StatusUnhealthyStr",
"StatusErrorStr"
],
"x-nullable": false,
"x-omitempty": false
},
"HomepageCategory": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/HomepageItem"
},
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageItem": {
"type": "object",
"properties": {
"alias": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"all_sort_order": {
"description": "sort order in all",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"category": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"clicks": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"container_id": {
"type": "string",
"x-nullable": true
},
"description": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"fav_sort_order": {
"description": "sort order in favorite",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"favorite": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"icon": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"description": "display name",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"origin_url": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"provider": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"show": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"sort_order": {
"description": "sort order in category",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"url": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"widget_config": {
"allOf": [
{
"$ref": "#/definitions/widgets.Config"
}
],
"x-nullable": true
},
"widgets": {
"type": "array",
"items": {
"$ref": "#/definitions/HomepageItemWidget"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageItemConfig": {
"type": "object",
"properties": {
"category": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"description": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"favorite": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"icon": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"description": "display name",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"show": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"url": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"widget_config": {
"allOf": [
{
"$ref": "#/definitions/widgets.Config"
}
],
"x-nullable": true
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageItemWidget": {
"type": "object",
"properties": {
"label": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"value": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageOverrideCategoryOrderParams": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"which": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageOverrideItemAllSortOrderParams": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"which": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageOverrideItemFavSortOrderParams": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"which": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageOverrideItemFavoriteParams": {
"type": "object",
"properties": {
"value": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"which": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageOverrideItemParams": {
"type": "object",
"properties": {
"value": {
"$ref": "#/definitions/HomepageItemConfig",
"x-nullable": false,
"x-omitempty": false
},
"which": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageOverrideItemSortOrderParams": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"which": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageOverrideItemVisibleParams": {
"type": "object",
"properties": {
"value": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"which": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"HomepageOverrideItemsBatchParams": {
"type": "object",
"properties": {
"value": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/HomepageItemConfig"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"IconFetchResult": {
"type": "object",
"properties": {
"icon": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
},
"x-nullable": false,
"x-omitempty": false
},
"statusCode": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"IconMetaSearch": {
"type": "object",
"properties": {
"Dark": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"Light": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"PNG": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"Ref": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"SVG": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"Source": {
"$ref": "#/definitions/icons.Source",
"x-nullable": false,
"x-omitempty": false
},
"WebP": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"IdlewatcherConfig": {
"type": "object",
"properties": {
"depends_on": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"docker": {
"$ref": "#/definitions/DockerConfig",
"x-nullable": false,
"x-omitempty": false
},
"idle_timeout": {
"description": "0: no idle watcher.\nPositive: idle watcher with idle timeout.\nNegative: idle watcher as a dependency.",
"allOf": [
{
"$ref": "#/definitions/time.Duration"
}
],
"x-nullable": false,
"x-omitempty": false
},
"no_loading_page": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"proxmox": {
"$ref": "#/definitions/ProxmoxConfig",
"x-nullable": false,
"x-omitempty": false
},
"start_endpoint": {
"description": "Optional path that must be hit to start container",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"stop_method": {
"$ref": "#/definitions/ContainerStopMethod",
"x-nullable": false,
"x-omitempty": false
},
"stop_signal": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"stop_timeout": {
"$ref": "#/definitions/time.Duration",
"x-nullable": false,
"x-omitempty": false
},
"wake_timeout": {
"$ref": "#/definitions/time.Duration",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"ListFilesResponse": {
"type": "object",
"properties": {
"config": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"middleware": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"provider": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"LoadBalancerConfig": {
"type": "object",
"properties": {
"link": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"mode": {
"$ref": "#/definitions/LoadBalancerMode",
"x-nullable": false,
"x-omitempty": false
},
"options": {
"type": "object",
"additionalProperties": {},
"x-nullable": false,
"x-omitempty": false
},
"sticky": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"sticky_max_age": {
"$ref": "#/definitions/time.Duration",
"x-nullable": false,
"x-omitempty": false
},
"weight": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"LoadBalancerMode": {
"type": "string",
"enum": [
"",
"roundrobin",
"leastconn",
"iphash"
],
"x-enum-varnames": [
"LoadbalanceModeUnset",
"LoadbalanceModeRoundRobin",
"LoadbalanceModeLeastConn",
"LoadbalanceModeIPHash"
],
"x-nullable": false,
"x-omitempty": false
},
"LogFilter-CIDR": {
"type": "object",
"properties": {
"negative": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"values": {
"type": "array",
"items": {
"$ref": "#/definitions/CIDR"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"LogFilter-HTTPHeader": {
"type": "object",
"properties": {
"negative": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"values": {
"type": "array",
"items": {
"$ref": "#/definitions/HTTPHeader"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"LogFilter-HTTPMethod": {
"type": "object",
"properties": {
"negative": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"values": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"LogFilter-Host": {
"type": "object",
"properties": {
"negative": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"values": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"LogFilter-StatusCodeRange": {
"type": "object",
"properties": {
"negative": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"values": {
"type": "array",
"items": {
"$ref": "#/definitions/StatusCodeRange"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"LogRetention": {
"type": "object",
"properties": {
"days": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"keep_size": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"last": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"MetricsPeriod": {
"type": "string",
"enum": [
"5m",
"15m",
"1h",
"1d",
"1mo"
],
"x-enum-varnames": [
"MetricsPeriod5m",
"MetricsPeriod15m",
"MetricsPeriod1h",
"MetricsPeriod1d",
"MetricsPeriod1mo"
],
"x-nullable": false,
"x-omitempty": false
},
"MockCookie": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"value": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"MockRequest": {
"type": "object",
"properties": {
"body": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"cookies": {
"type": "array",
"items": {
"$ref": "#/definitions/MockCookie"
},
"x-nullable": false,
"x-omitempty": false
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-nullable": false,
"x-omitempty": false
},
"host": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"method": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"path": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"query": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-nullable": false,
"x-omitempty": false
},
"remoteIP": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"MockResponse": {
"type": "object",
"properties": {
"body": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-nullable": false,
"x-omitempty": false
},
"statusCode": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"NewAgentRequest": {
"type": "object",
"required": [
"host",
"name",
"port",
"type"
],
"properties": {
"container_runtime": {
"default": "docker",
"enum": [
"docker",
"podman"
],
"allOf": [
{
"$ref": "#/definitions/agent.ContainerRuntime"
}
]
},
"host": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"nightly": {
"type": "boolean"
},
"port": {
"type": "integer",
"maximum": 65535,
"minimum": 1,
"x-nullable": false,
"x-omitempty": false
},
"type": {
"type": "string",
"enum": [
"docker",
"system"
],
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"NewAgentResponse": {
"type": "object",
"properties": {
"ca": {
"$ref": "#/definitions/PEMPairResponse",
"x-nullable": false,
"x-omitempty": false
},
"client": {
"$ref": "#/definitions/PEMPairResponse",
"x-nullable": false,
"x-omitempty": false
},
"compose": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"PEMPairResponse": {
"type": "object",
"properties": {
"cert": {
"type": "string",
"format": "base64",
"x-nullable": false,
"x-omitempty": false
},
"key": {
"type": "string",
"format": "base64",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"ParsedRule": {
"type": "object",
"properties": {
"do": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"isResponseRule": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"on": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"validationError": {
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"PlaygroundRequest": {
"type": "object",
"required": [
"rules"
],
"properties": {
"mockRequest": {
"$ref": "#/definitions/MockRequest"
},
"mockResponse": {
"$ref": "#/definitions/MockResponse"
},
"rules": {
"type": "array",
"items": {
"$ref": "#/definitions/routeApi.RawRule"
},
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"PlaygroundResponse": {
"type": "object",
"properties": {
"executionError": {
"x-nullable": false,
"x-omitempty": false
},
"finalRequest": {
"$ref": "#/definitions/FinalRequest",
"x-nullable": false,
"x-omitempty": false
},
"finalResponse": {
"$ref": "#/definitions/FinalResponse",
"x-nullable": false,
"x-omitempty": false
},
"matchedRules": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"parsedRules": {
"type": "array",
"items": {
"$ref": "#/definitions/ParsedRule"
},
"x-nullable": false,
"x-omitempty": false
},
"upstreamCalled": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"Port": {
"type": "object",
"properties": {
"listening": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"proxy": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"ProviderStats": {
"type": "object",
"properties": {
"reverse_proxies": {
"$ref": "#/definitions/RouteStats",
"x-nullable": false,
"x-omitempty": false
},
"streams": {
"$ref": "#/definitions/RouteStats",
"x-nullable": false,
"x-omitempty": false
},
"total": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"type": {
"$ref": "#/definitions/ProviderType",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"ProviderType": {
"type": "string",
"enum": [
"docker",
"file",
"agent"
],
"x-enum-varnames": [
"ProviderTypeDocker",
"ProviderTypeFile",
"ProviderTypeAgent"
],
"x-nullable": false,
"x-omitempty": false
},
"ProxmoxConfig": {
"type": "object",
"required": [
"node",
"vmid"
],
"properties": {
"node": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"vmid": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"ProxyStats": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/ProviderStats"
},
"x-nullable": false,
"x-omitempty": false
},
"reverse_proxies": {
"$ref": "#/definitions/RouteStats",
"x-nullable": false,
"x-omitempty": false
},
"streams": {
"$ref": "#/definitions/RouteStats",
"x-nullable": false,
"x-omitempty": false
},
"total": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"RequestLoggerConfig": {
"type": "object",
"properties": {
"buffer_size": {
"description": "Deprecated: buffer size is adjusted dynamically",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"fields": {
"$ref": "#/definitions/accesslog.Fields",
"x-nullable": false,
"x-omitempty": false
},
"filters": {
"$ref": "#/definitions/accesslog.Filters",
"x-nullable": false,
"x-omitempty": false
},
"format": {
"type": "string",
"enum": [
"common",
"combined",
"json"
],
"x-nullable": false,
"x-omitempty": false
},
"path": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"retention": {
"$ref": "#/definitions/LogRetention",
"x-nullable": false,
"x-omitempty": false
},
"rotate_interval": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"stdout": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"Route": {
"type": "object",
"properties": {
"access_log": {
"allOf": [
{
"$ref": "#/definitions/RequestLoggerConfig"
}
],
"x-nullable": true
},
"agent": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"alias": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"bind": {
"description": "for TCP and UDP routes, bind address to listen on",
"type": "string",
"x-nullable": true
},
"container": {
"description": "Docker only",
"allOf": [
{
"$ref": "#/definitions/Container"
}
],
"x-nullable": true
},
"disable_compression": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"excluded": {
"type": "boolean",
"x-nullable": true
},
"excluded_reason": {
"type": "string",
"x-nullable": true
},
"health": {
"description": "for swagger",
"allOf": [
{
"$ref": "#/definitions/HealthJSON"
}
],
"x-nullable": false,
"x-omitempty": false
},
"healthcheck": {
"description": "null on load-balancer routes",
"allOf": [
{
"$ref": "#/definitions/HealthCheckConfig"
}
],
"x-nullable": true
},
"homepage": {
"$ref": "#/definitions/HomepageItemConfig",
"x-nullable": false,
"x-omitempty": false
},
"host": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"idlewatcher": {
"allOf": [
{
"$ref": "#/definitions/IdlewatcherConfig"
}
],
"x-nullable": true
},
"index": {
"description": "Index file to serve for single-page app mode",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"load_balance": {
"allOf": [
{
"$ref": "#/definitions/LoadBalancerConfig"
}
],
"x-nullable": true
},
"lurl": {
"description": "private fields",
"type": "string",
"x-nullable": true
},
"middlewares": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/types.LabelMap"
},
"x-nullable": true
},
"no_tls_verify": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"path_patterns": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": true
},
"port": {
"$ref": "#/definitions/Port",
"x-nullable": false,
"x-omitempty": false
},
"provider": {
"description": "for backward compatibility",
"type": "string",
"x-nullable": true
},
"purl": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"response_header_timeout": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"root": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"rule_file": {
"type": "string",
"x-nullable": true
},
"rules": {
"type": "array",
"items": {
"$ref": "#/definitions/rules.Rule"
},
"x-nullable": true
},
"scheme": {
"type": "string",
"enum": [
"http",
"https",
"h2c",
"tcp",
"udp",
"fileserver"
],
"x-nullable": false,
"x-omitempty": false
},
"spa": {
"description": "Single-page app mode: serves index for non-existent paths",
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"ssl_certificate": {
"description": "Path to client certificate",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"ssl_certificate_key": {
"description": "Path to client certificate key",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"ssl_protocols": {
"description": "Allowed TLS protocols",
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"ssl_server_name": {
"description": "SSL/TLS proxy options (nginx-like)",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"ssl_trusted_certificate": {
"description": "Path to trusted CA certificates",
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"RouteProvider": {
"type": "object",
"properties": {
"full_name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"short_name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"RouteStats": {
"type": "object",
"properties": {
"error": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"healthy": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"napping": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"total": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"unhealthy": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"unknown": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"RouteStatus": {
"type": "object",
"properties": {
"latency": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"status": {
"type": "string",
"enum": [
"healthy",
"unhealthy",
"unknown",
"napping",
"starting"
],
"x-nullable": false,
"x-omitempty": false
},
"timestamp": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"RouteStatusesByAlias": {
"type": "object",
"properties": {
"statuses": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/HealthInfoWithoutDetail"
},
"x-nullable": false,
"x-omitempty": false
},
"timestamp": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"RouteUptimeAggregate": {
"type": "object",
"properties": {
"alias": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"avg_latency": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"current_status": {
"type": "string",
"enum": [
"healthy",
"unhealthy",
"unknown",
"napping",
"starting"
],
"x-nullable": false,
"x-omitempty": false
},
"display_name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"downtime": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"idle": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"is_docker": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"is_excluded": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"statuses": {
"type": "array",
"items": {
"$ref": "#/definitions/RouteStatus"
},
"x-nullable": false,
"x-omitempty": false
},
"uptime": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"ServerInfo": {
"type": "object",
"properties": {
"containers": {
"$ref": "#/definitions/ContainerStats",
"x-nullable": false,
"x-omitempty": false
},
"images": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"memory": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"n_cpu": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"version": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"StatsResponse": {
"type": "object",
"properties": {
"proxies": {
"$ref": "#/definitions/ProxyStats",
"x-nullable": false,
"x-omitempty": false
},
"uptime": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"StatusCodeRange": {
"type": "object",
"properties": {
"end": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"start": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"SuccessResponse": {
"type": "object",
"properties": {
"details": {
"type": "object",
"additionalProperties": {},
"x-nullable": true
},
"message": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"SystemInfo": {
"type": "object",
"properties": {
"cpu_average": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"disks": {
"description": "disk usage by partition",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/disk.UsageStat"
},
"x-nullable": false,
"x-omitempty": false
},
"disks_io": {
"description": "disk IO by device",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/disk.IOCountersStat"
},
"x-nullable": false,
"x-omitempty": false
},
"memory": {
"$ref": "#/definitions/mem.VirtualMemoryStat",
"x-nullable": false,
"x-omitempty": false
},
"network": {
"$ref": "#/definitions/net.IOCountersStat",
"x-nullable": false,
"x-omitempty": false
},
"sensors": {
"description": "sensor temperature by key",
"type": "array",
"items": {
"$ref": "#/definitions/sensors.TemperatureStat"
},
"x-nullable": false,
"x-omitempty": false
},
"timestamp": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"SystemInfoAggregate": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {}
},
"x-nullable": false,
"x-omitempty": false
},
"total": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"SystemInfoAggregateMode": {
"type": "string",
"enum": [
"cpu_average",
"memory_usage",
"memory_usage_percent",
"disks_read_speed",
"disks_write_speed",
"disks_iops",
"disk_usage",
"network_speed",
"network_transfer",
"sensor_temperature"
],
"x-enum-varnames": [
"SystemInfoAggregateModeCPUAverage",
"SystemInfoAggregateModeMemoryUsage",
"SystemInfoAggregateModeMemoryUsagePercent",
"SystemInfoAggregateModeDisksReadSpeed",
"SystemInfoAggregateModeDisksWriteSpeed",
"SystemInfoAggregateModeDisksIOPS",
"SystemInfoAggregateModeDiskUsage",
"SystemInfoAggregateModeNetworkSpeed",
"SystemInfoAggregateModeNetworkTransfer",
"SystemInfoAggregateModeSensorTemperature"
],
"x-nullable": false,
"x-omitempty": false
},
"UptimeAggregate": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/RouteUptimeAggregate"
},
"x-nullable": false,
"x-omitempty": false
},
"total": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"VerifyNewAgentRequest": {
"type": "object",
"properties": {
"ca": {
"$ref": "#/definitions/PEMPairResponse",
"x-nullable": false,
"x-omitempty": false
},
"client": {
"$ref": "#/definitions/PEMPairResponse",
"x-nullable": false,
"x-omitempty": false
},
"container_runtime": {
"$ref": "#/definitions/agent.ContainerRuntime",
"x-nullable": false,
"x-omitempty": false
},
"host": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"accesslog.FieldConfig": {
"type": "object",
"properties": {
"config": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/accesslog.FieldMode"
},
"x-nullable": false,
"x-omitempty": false
},
"default": {
"enum": [
"keep",
"drop",
"redact"
],
"allOf": [
{
"$ref": "#/definitions/accesslog.FieldMode"
}
],
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"accesslog.FieldMode": {
"type": "string",
"enum": [
"keep",
"drop",
"redact"
],
"x-enum-varnames": [
"FieldModeKeep",
"FieldModeDrop",
"FieldModeRedact"
],
"x-nullable": false,
"x-omitempty": false
},
"accesslog.Fields": {
"type": "object",
"properties": {
"cookies": {
"$ref": "#/definitions/accesslog.FieldConfig",
"x-nullable": false,
"x-omitempty": false
},
"headers": {
"$ref": "#/definitions/accesslog.FieldConfig",
"x-nullable": false,
"x-omitempty": false
},
"query": {
"$ref": "#/definitions/accesslog.FieldConfig",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"accesslog.Filters": {
"type": "object",
"properties": {
"cidr": {
"$ref": "#/definitions/LogFilter-CIDR",
"x-nullable": false,
"x-omitempty": false
},
"headers": {
"description": "header exists or header == value",
"allOf": [
{
"$ref": "#/definitions/LogFilter-HTTPHeader"
}
],
"x-nullable": false,
"x-omitempty": false
},
"host": {
"$ref": "#/definitions/LogFilter-Host",
"x-nullable": false,
"x-omitempty": false
},
"method": {
"$ref": "#/definitions/LogFilter-HTTPMethod",
"x-nullable": false,
"x-omitempty": false
},
"status_codes": {
"$ref": "#/definitions/LogFilter-StatusCodeRange",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"agent.ContainerRuntime": {
"type": "string",
"enum": [
"docker",
"podman"
],
"x-enum-varnames": [
"ContainerRuntimeDocker",
"ContainerRuntimePodman"
],
"x-nullable": false,
"x-omitempty": false
},
"agentpool.Agent": {
"type": "object",
"properties": {
"addr": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"runtime": {
"$ref": "#/definitions/agent.ContainerRuntime",
"x-nullable": false,
"x-omitempty": false
},
"supports_tcp_stream": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"supports_udp_stream": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"version": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"auth.UserPassAuthCallbackRequest": {
"type": "object",
"properties": {
"password": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"username": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"container.ContainerState": {
"type": "string",
"enum": [
"created",
"running",
"paused",
"restarting",
"removing",
"exited",
"dead"
],
"x-enum-comments": {
"StateCreated": "StateCreated indicates the container is created, but not (yet) started.",
"StateDead": "StateDead indicates that the container failed to be deleted. Containers in this state are attempted to be cleaned up when the daemon restarts.",
"StateExited": "StateExited indicates that the container exited.",
"StatePaused": "StatePaused indicates that the container's current state is paused.",
"StateRemoving": "StateRemoving indicates that the container is being removed.",
"StateRestarting": "StateRestarting indicates that the container is currently restarting.",
"StateRunning": "StateRunning indicates that the container is running."
},
"x-enum-descriptions": [
"StateCreated indicates the container is created, but not (yet) started.",
"StateRunning indicates that the container is running.",
"StatePaused indicates that the container's current state is paused.",
"StateRestarting indicates that the container is currently restarting.",
"StateRemoving indicates that the container is being removed.",
"StateExited indicates that the container exited.",
"StateDead indicates that the container failed to be deleted. Containers in this state are attempted to be cleaned up when the daemon restarts."
],
"x-enum-varnames": [
"StateCreated",
"StateRunning",
"StatePaused",
"StateRestarting",
"StateRemoving",
"StateExited",
"StateDead"
],
"x-nullable": false,
"x-omitempty": false
},
"container.PortSummary": {
"type": "object",
"properties": {
"IP": {
"description": "Host IP address that the container's port is mapped to",
"allOf": [
{
"$ref": "#/definitions/netip.Addr"
}
],
"x-nullable": false,
"x-omitempty": false
},
"PrivatePort": {
"description": "Port on the container\nRequired: true",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"PublicPort": {
"description": "Port exposed on the host",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"Type": {
"description": "type\nRequired: true\nEnum: [\"tcp\",\"udp\",\"sctp\"]",
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"disk.IOCountersStat": {
"type": "object",
"properties": {
"iops": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"description": "ReadCount uint64 `json:\"readCount\"`\nMergedReadCount uint64 `json:\"mergedReadCount\"`\nWriteCount uint64 `json:\"writeCount\"`\nMergedWriteCount uint64 `json:\"mergedWriteCount\"`\nReadBytes uint64 `json:\"readBytes\"`\nWriteBytes uint64 `json:\"writeBytes\"`\nReadTime uint64 `json:\"readTime\"`\nWriteTime uint64 `json:\"writeTime\"`\nIopsInProgress uint64 `json:\"iopsInProgress\"`\nIoTime uint64 `json:\"ioTime\"`\nWeightedIO uint64 `json:\"weightedIO\"`",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"read_bytes": {
"description": "SerialNumber string `json:\"serialNumber\"`\nLabel string `json:\"label\"`",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"read_count": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"read_speed": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"write_bytes": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"write_count": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"write_speed": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"disk.UsageStat": {
"type": "object",
"properties": {
"free": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"fstype": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"path": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"total": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"used": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"used_percent": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"dockerapi.RestartRequest": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"signal": {
"description": "Signal (optional) is the signal to send to the container to (gracefully)\nstop it before forcibly terminating the container with SIGKILL after the\ntimeout expires. If no value is set, the default (SIGTERM) is used.",
"type": "string"
},
"timeout": {
"description": "Timeout (optional) is the timeout (in seconds) to wait for the container\nto stop gracefully before forcibly terminating it with SIGKILL.\n\n- Use nil to use the default timeout (10 seconds).\n- Use '-1' to wait indefinitely.\n- Use '0' to not wait for the container to exit gracefully, and\n immediately proceeds to forcibly terminating the container.\n- Other positive values are used as timeout (in seconds).",
"type": "integer"
}
},
"x-nullable": false,
"x-omitempty": false
},
"dockerapi.StartRequest": {
"type": "object",
"required": [
"id"
],
"properties": {
"checkpointDir": {
"type": "string"
},
"checkpointID": {
"type": "string"
},
"id": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"dockerapi.StopRequest": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"signal": {
"description": "Signal (optional) is the signal to send to the container to (gracefully)\nstop it before forcibly terminating the container with SIGKILL after the\ntimeout expires. If no value is set, the default (SIGTERM) is used.",
"type": "string"
},
"timeout": {
"description": "Timeout (optional) is the timeout (in seconds) to wait for the container\nto stop gracefully before forcibly terminating it with SIGKILL.\n\n- Use nil to use the default timeout (10 seconds).\n- Use '-1' to wait indefinitely.\n- Use '0' to not wait for the container to exit gracefully, and\n immediately proceeds to forcibly terminating the container.\n- Other positive values are used as timeout (in seconds).",
"type": "integer"
}
},
"x-nullable": false,
"x-omitempty": false
},
"icons.Source": {
"type": "string",
"enum": [
"https://",
"@target",
"@walkxcode",
"@selfhst"
],
"x-enum-varnames": [
"SourceAbsolute",
"SourceRelative",
"SourceWalkXCode",
"SourceSelfhSt"
],
"x-nullable": false,
"x-omitempty": false
},
"mem.VirtualMemoryStat": {
"type": "object",
"properties": {
"available": {
"description": "RAM available for programs to allocate\n\nThis value is computed from the kernel specific values.",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"total": {
"description": "Total amount of RAM on this system",
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"used": {
"description": "RAM used by programs\n\nThis value is computed from the kernel specific values.",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"used_percent": {
"description": "Percentage of RAM used by programs\n\nThis value is computed from the kernel specific values.",
"type": "number",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"net.IOCountersStat": {
"type": "object",
"properties": {
"bytes_recv": {
"description": "number of bytes received",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"bytes_sent": {
"description": "Name string `json:\"name\"` // interface name",
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"download_speed": {
"description": "godoxy",
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"upload_speed": {
"description": "godoxy",
"type": "number",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"netip.Addr": {
"anyOf": [
{
"type": "string",
"format": "ipv4"
},
{
"type": "string",
"format": "ipv6"
}
],
"x-nullable": false,
"x-omitempty": false
},
"route.Route": {
"type": "object",
"properties": {
"access_log": {
"allOf": [
{
"$ref": "#/definitions/RequestLoggerConfig"
}
],
"x-nullable": true
},
"agent": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"alias": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"bind": {
"description": "for TCP and UDP routes, bind address to listen on",
"type": "string",
"x-nullable": true
},
"container": {
"description": "Docker only",
"allOf": [
{
"$ref": "#/definitions/Container"
}
],
"x-nullable": true
},
"disable_compression": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"excluded": {
"type": "boolean",
"x-nullable": true
},
"excluded_reason": {
"type": "string",
"x-nullable": true
},
"health": {
"description": "for swagger",
"allOf": [
{
"$ref": "#/definitions/HealthJSON"
}
],
"x-nullable": false,
"x-omitempty": false
},
"healthcheck": {
"description": "null on load-balancer routes",
"allOf": [
{
"$ref": "#/definitions/HealthCheckConfig"
}
],
"x-nullable": true
},
"homepage": {
"$ref": "#/definitions/HomepageItemConfig",
"x-nullable": false,
"x-omitempty": false
},
"host": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"idlewatcher": {
"allOf": [
{
"$ref": "#/definitions/IdlewatcherConfig"
}
],
"x-nullable": true
},
"index": {
"description": "Index file to serve for single-page app mode",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"load_balance": {
"allOf": [
{
"$ref": "#/definitions/LoadBalancerConfig"
}
],
"x-nullable": true
},
"lurl": {
"description": "private fields",
"type": "string",
"x-nullable": true
},
"middlewares": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/types.LabelMap"
},
"x-nullable": true
},
"no_tls_verify": {
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"path_patterns": {
"type": "array",
"items": {
"type": "string"
},
"x-nullable": true
},
"port": {
"$ref": "#/definitions/Port",
"x-nullable": false,
"x-omitempty": false
},
"provider": {
"description": "for backward compatibility",
"type": "string",
"x-nullable": true
},
"purl": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"response_header_timeout": {
"type": "integer",
"x-nullable": false,
"x-omitempty": false
},
"root": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"rule_file": {
"type": "string",
"x-nullable": true
},
"rules": {
"type": "array",
"items": {
"$ref": "#/definitions/rules.Rule"
},
"x-nullable": true
},
"scheme": {
"type": "string",
"enum": [
"http",
"https",
"h2c",
"tcp",
"udp",
"fileserver"
],
"x-nullable": false,
"x-omitempty": false
},
"spa": {
"description": "Single-page app mode: serves index for non-existent paths",
"type": "boolean",
"x-nullable": false,
"x-omitempty": false
},
"ssl_certificate": {
"description": "Path to client certificate",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"ssl_certificate_key": {
"description": "Path to client certificate key",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"ssl_protocols": {
"description": "Allowed TLS protocols",
"type": "array",
"items": {
"type": "string"
},
"x-nullable": false,
"x-omitempty": false
},
"ssl_server_name": {
"description": "SSL/TLS proxy options (nginx-like)",
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"ssl_trusted_certificate": {
"description": "Path to trusted CA certificates",
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"routeApi.RawRule": {
"type": "object",
"properties": {
"do": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"on": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"routeApi.RoutesByProvider": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/definitions/route.Route"
}
},
"x-nullable": false,
"x-omitempty": false
},
"rules.Rule": {
"type": "object",
"properties": {
"do": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"on": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"sensors.TemperatureStat": {
"type": "object",
"properties": {
"critical": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"high": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
},
"name": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
},
"temperature": {
"type": "number",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
},
"time.Duration": {
"type": "integer",
"format": "int64",
"enum": [
-9223372036854775808,
9223372036854775807,
1,
1000,
1000000,
1000000000,
60000000000,
3600000000000
],
"x-enum-varnames": [
"minDuration",
"maxDuration",
"Nanosecond",
"Microsecond",
"Millisecond",
"Second",
"Minute",
"Hour"
],
"x-nullable": false,
"x-omitempty": false
},
"types.LabelMap": {
"type": "object",
"additionalProperties": {},
"x-nullable": false,
"x-omitempty": false
},
"types.PortMapping": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/container.PortSummary"
},
"x-nullable": false,
"x-omitempty": false
},
"widgets.Config": {
"type": "object",
"properties": {
"config": {
"x-nullable": false,
"x-omitempty": false
},
"provider": {
"type": "string",
"x-nullable": false,
"x-omitempty": false
}
},
"x-nullable": false,
"x-omitempty": false
}
},
"externalDocs": {
"description": "GoDoxy Docs",
"url": "https://docs.godoxy.dev"
}
}