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