Files
godoxy-yusing/internal/api/v1/docs/swagger.yaml
yusing aaa3c9a8d8 fix(swagger): correct type names in swagger docs
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
2026-01-10 15:57:56 +08:00

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"