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 ContainerStatsResponse: properties: blkio_stats: allOf: - $ref: '#/definitions/container.BlkioStats' description: |- BlkioStats stores all IO service stats for data read and write. This type is Linux-specific and holds many fields that are specific to cgroups v1. On a cgroup v2 host, all fields other than "io_service_bytes_recursive" are omitted or "null". This type is only populated on Linux and omitted for Windows containers. cpu_stats: allOf: - $ref: '#/definitions/container.CPUStats' description: CPUStats contains CPU related info of the container. id: description: ID is the ID of the container for which the stats were collected. type: string memory_stats: allOf: - $ref: '#/definitions/container.MemoryStats' description: |- MemoryStats aggregates all memory stats since container inception on Linux. Windows returns stats for commit and private working set only. name: description: Name is the name of the container for which the stats were collected. type: string networks: additionalProperties: $ref: '#/definitions/container.NetworkStats' description: |- Networks contains Nntwork statistics for the container per interface. This field is omitted if the container has no networking enabled. type: object num_procs: description: |- NumProcs is the number of processors on the system. This field is Windows-specific and always zero for Linux containers. type: integer os_type: description: |- OSType is the OS of the container ("linux" or "windows") to allow platform-specific handling of stats. type: string pids_stats: allOf: - $ref: '#/definitions/container.PidsStats' description: |- PidsStats contains Linux-specific stats of a container's process-IDs (PIDs). This field is Linux-specific and omitted for Windows containers. precpu_stats: allOf: - $ref: '#/definitions/container.CPUStats' description: PreCPUStats contains the CPUStats of the previous sample. preread: description: |- PreRead is the date and time at which this first sample was collected. This field is not propagated if the "one-shot" option is set. If the "one-shot" option is set, this field may be omitted, empty, or set to a default date (`0001-01-01T00:00:00Z`). type: string read: description: Read is the date and time at which this sample was collected. type: string storage_stats: allOf: - $ref: '#/definitions/container.StorageStats' description: |- StorageStats is the disk I/O stats for read/write on Windows. This type is Windows-specific and omitted for Linux containers. type: object ContainerStopMethod: enum: - pause - stop - kill type: string x-enum-varnames: - ContainerStopMethodPause - ContainerStopMethodStop - ContainerStopMethodKill 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 IconFetchResult: properties: icon: items: format: int32 type: integer type: array statusCode: type: integer type: object 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 IdlewatcherConfig: properties: depends_on: items: type: string type: array docker: $ref: '#/definitions/IdlewatcherDockerConfig' idle_timeout: allOf: - $ref: '#/definitions/time.Duration' description: |- 0: no idle watcher. Positive: idle watcher with idle timeout. Negative: idle watcher as a dependency. no_loading_page: type: boolean proxmox: $ref: '#/definitions/IdlewatcherProxmoxNodeConfig' 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 IdlewatcherDockerConfig: properties: container_id: type: string container_name: type: string docker_cfg: $ref: '#/definitions/DockerProviderConfig' required: - container_id - container_name - docker_cfg type: object IdlewatcherProxmoxNodeConfig: properties: node: type: string vmid: type: integer required: - node - vmid 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 ProxmoxNodeConfig: properties: files: items: type: string type: array node: type: string services: items: type: string type: array vmid: description: 'unset: auto discover; explicit 0: node-level route; >0: lxc/qemu resource route' type: integer vmname: type: string 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: 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 proxmox: allOf: - $ref: '#/definitions/ProxmoxNodeConfig' 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 downtime: type: number idle: type: number 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.BlkioStatEntry: properties: major: type: integer minor: type: integer op: type: string value: type: integer type: object container.BlkioStats: properties: io_merged_recursive: items: $ref: '#/definitions/container.BlkioStatEntry' type: array io_queue_recursive: items: $ref: '#/definitions/container.BlkioStatEntry' type: array io_service_bytes_recursive: description: number of bytes transferred to and from the block device items: $ref: '#/definitions/container.BlkioStatEntry' type: array io_service_time_recursive: items: $ref: '#/definitions/container.BlkioStatEntry' type: array io_serviced_recursive: items: $ref: '#/definitions/container.BlkioStatEntry' type: array io_time_recursive: items: $ref: '#/definitions/container.BlkioStatEntry' type: array io_wait_time_recursive: items: $ref: '#/definitions/container.BlkioStatEntry' type: array sectors_recursive: items: $ref: '#/definitions/container.BlkioStatEntry' type: array type: object container.CPUStats: properties: cpu_usage: allOf: - $ref: '#/definitions/container.CPUUsage' description: CPU Usage. Linux and Windows. online_cpus: description: Online CPUs. Linux only. type: integer system_cpu_usage: description: System Usage. Linux only. type: integer throttling_data: allOf: - $ref: '#/definitions/container.ThrottlingData' description: Throttling Data. Linux only. type: object container.CPUUsage: properties: percpu_usage: description: |- Total CPU time consumed per core (Linux). Not used on Windows. Units: nanoseconds. items: type: integer type: array total_usage: description: |- Total CPU time consumed. Units: nanoseconds (Linux) Units: 100's of nanoseconds (Windows) type: integer usage_in_kernelmode: description: |- Time spent by tasks of the cgroup in kernel mode (Linux). Time spent by all container processes in kernel mode (Windows). Units: nanoseconds (Linux). Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers. type: integer usage_in_usermode: description: |- Time spent by tasks of the cgroup in user mode (Linux). Time spent by all container processes in user mode (Windows). Units: nanoseconds (Linux). Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers type: integer 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.MemoryStats: properties: commitbytes: description: committed bytes type: integer commitpeakbytes: description: peak committed bytes type: integer failcnt: description: number of times memory usage hits limits. type: integer limit: type: integer max_usage: description: maximum usage ever recorded. type: integer privateworkingset: description: private working set type: integer stats: additionalProperties: format: int64 type: integer description: |- TODO(vishh): Export these as stronger types. all the stats exported via memory.stat. type: object usage: description: current res_counter usage for memory type: integer type: object container.NetworkStats: properties: endpoint_id: description: Endpoint ID. Not used on Linux. type: string instance_id: description: Instance ID. Not used on Linux. type: string rx_bytes: description: Bytes received. Windows and Linux. type: integer rx_dropped: description: Incoming packets dropped. Windows and Linux. type: integer rx_errors: description: |- Received errors. Not used on Windows. Note that we don't `omitempty` this field as it is expected in the >=v1.21 API stats structure. type: integer rx_packets: description: Packets received. Windows and Linux. type: integer tx_bytes: description: Bytes sent. Windows and Linux. type: integer tx_dropped: description: Outgoing packets dropped. Windows and Linux. type: integer tx_errors: description: |- Sent errors. Not used on Windows. Note that we don't `omitempty` this field as it is expected in the >=v1.21 API stats structure. type: integer tx_packets: description: Packets sent. Windows and Linux. type: integer type: object container.PidsStats: properties: current: description: Current is the number of pids in the cgroup type: integer limit: description: |- Limit is the hard limit on the number of pids in the cgroup. A "Limit" of 0 means that there is no limit. type: integer type: object 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 container.StorageStats: properties: read_count_normalized: type: integer read_size_bytes: type: integer write_count_normalized: type: integer write_size_bytes: type: integer type: object container.ThrottlingData: properties: periods: description: Number of periods with throttling active type: integer throttled_periods: description: Number of periods when the container hits its throttling limit. type: integer throttled_time: description: Aggregate time the container was throttled for in nanoseconds. type: integer 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 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 proxmox.NodeStats: properties: cpu_model: type: string cpu_usage: type: string kernel_version: type: string load_avg_15m: type: string load_avg_1m: type: string load_avg_5m: type: string mem_pct: type: string mem_total: type: string mem_usage: type: string pve_version: type: string rootfs_pct: type: string rootfs_total: type: string rootfs_usage: type: string uptime: 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' 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 - description: limit in: query name: limit type: integer 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/stats/{id}: get: description: Get container stats by container id parameters: - description: Container ID or route alias in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/ContainerStatsResponse' "400": description: 'Invalid request: id is required or route is not a docker container' 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 stats tags: - docker - websocket x-id: stats /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/IconFetchResult' 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: - application/yaml 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/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 /proxmox/journalctl: get: consumes: - application/json description: Get journalctl output for node or LXC container. If vmid is not provided, streams node journalctl. parameters: - default: 100 description: Limit output lines (1-1000) in: query maximum: 1000 minimum: 1 name: limit type: integer - description: Node name in: query name: node required: true type: string - collectionFormat: csv description: Service names in: query items: type: string name: service type: array - description: Container VMID (optional - if not provided, streams node journalctl) in: query name: vmid type: integer produces: - application/json responses: "200": description: Journalctl output schema: type: string "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "403": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/ErrorResponse' summary: Get journalctl output tags: - proxmox - websocket x-id: journalctl /proxmox/journalctl/{node}: get: consumes: - application/json description: Get journalctl output for node or LXC container. If vmid is not provided, streams node journalctl. parameters: - default: 100 description: Limit output lines (1-1000) in: query maximum: 1000 minimum: 1 name: limit type: integer - description: Node name in: query name: node required: true type: string - collectionFormat: csv description: Service names in: query items: type: string name: service type: array - description: Container VMID (optional - if not provided, streams node journalctl) in: query name: vmid type: integer - description: Node name in: path name: node required: true type: string produces: - application/json responses: "200": description: Journalctl output schema: type: string "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "403": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/ErrorResponse' summary: Get journalctl output tags: - proxmox - websocket x-id: journalctl /proxmox/journalctl/{node}/{vmid}: get: consumes: - application/json description: Get journalctl output for node or LXC container. If vmid is not provided, streams node journalctl. parameters: - default: 100 description: Limit output lines (1-1000) in: query maximum: 1000 minimum: 1 name: limit type: integer - description: Node name in: query name: node required: true type: string - collectionFormat: csv description: Service names in: query items: type: string name: service type: array - description: Container VMID (optional - if not provided, streams node journalctl) in: query name: vmid type: integer - description: Node name in: path name: node required: true type: string - description: Container VMID (optional - if not provided, streams node journalctl) in: path name: vmid type: integer produces: - application/json responses: "200": description: Journalctl output schema: type: string "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "403": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/ErrorResponse' summary: Get journalctl output tags: - proxmox - websocket x-id: journalctl /proxmox/journalctl/{node}/{vmid}/{service}: get: consumes: - application/json description: Get journalctl output for node or LXC container. If vmid is not provided, streams node journalctl. parameters: - default: 100 description: Limit output lines (1-1000) in: query maximum: 1000 minimum: 1 name: limit type: integer - description: Node name in: query name: node required: true type: string - collectionFormat: csv description: Service names in: query items: type: string name: service type: array - description: Container VMID (optional - if not provided, streams node journalctl) in: query name: vmid type: integer - description: Node name in: path name: node required: true type: string - collectionFormat: csv description: Service names in: path items: type: string name: service type: array - description: Container VMID (optional - if not provided, streams node journalctl) in: path name: vmid type: integer produces: - application/json responses: "200": description: Journalctl output schema: type: string "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "403": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/ErrorResponse' summary: Get journalctl output tags: - proxmox - websocket x-id: journalctl /proxmox/lxc/:node/:vmid/restart: post: description: Restart LXC container by node and vmid parameters: - in: path name: node required: true type: string - in: path name: vmid required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/SuccessResponse' "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal Server Error schema: $ref: '#/definitions/ErrorResponse' summary: Restart LXC container tags: - proxmox x-id: lxcRestart /proxmox/lxc/:node/:vmid/start: post: description: Start LXC container by node and vmid parameters: - in: path name: node required: true type: string - in: path name: vmid required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/SuccessResponse' "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal Server Error schema: $ref: '#/definitions/ErrorResponse' summary: Start LXC container tags: - proxmox x-id: lxcStart /proxmox/lxc/:node/:vmid/stop: post: description: Stop LXC container by node and vmid parameters: - in: path name: node required: true type: string - in: path name: vmid required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/SuccessResponse' "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal Server Error schema: $ref: '#/definitions/ErrorResponse' summary: Stop LXC container tags: - proxmox x-id: lxcStop /proxmox/stats/{node}: get: description: Get proxmox node stats in json parameters: - description: Node name in: path name: node required: true type: string produces: - application/json responses: "200": description: Stats output schema: $ref: '#/definitions/proxmox.NodeStats' "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "403": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/ErrorResponse' summary: Get proxmox node stats tags: - proxmox - websocket x-id: nodeStats /proxmox/stats/{node}/{vmid}: get: description: Get proxmox VM stats in format of "STATUS|CPU%%|MEM USAGE/LIMIT|MEM%%|NET I/O|BLOCK I/O" parameters: - in: path name: node required: true type: string - in: path name: vmid required: true type: integer produces: - text/plain responses: "200": description: Stats output schema: type: string "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "403": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/ErrorResponse' summary: Get proxmox VM stats tags: - proxmox - websocket x-id: vmStats /proxmox/tail: get: consumes: - application/json description: Get tail output for node or LXC container. If vmid is not provided, streams node tail. parameters: - collectionFormat: csv description: File paths in: query items: type: string name: file required: true type: array - default: 100 description: Limit output lines (1-1000) in: query maximum: 1000 minimum: 1 name: limit type: integer - description: Node name in: query name: node required: true type: string - description: Container VMID (optional - if not provided, streams node journalctl) in: query name: vmid type: integer produces: - application/json responses: "200": description: Tail output schema: type: string "400": description: Invalid request schema: $ref: '#/definitions/ErrorResponse' "403": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "404": description: Node not found schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/ErrorResponse' summary: Get tail output tags: - proxmox - websocket x-id: tail /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 /route/validate: get: consumes: - application/yaml description: Validate route, parameters: - description: Route in: body name: route required: true schema: $ref: '#/definitions/Route' produces: - application/json responses: "200": description: Route 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 route tags: - route - websocket x-id: validate post: consumes: - application/yaml description: Validate route, parameters: - description: Route in: body name: route required: true schema: $ref: '#/definitions/Route' produces: - application/json responses: "200": description: Route 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 route tags: - route - websocket x-id: validate /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"