ceedc2d1ff
Actually, this is a serious refactoring of the query log module. The rest API part is refactored, it's now more clear how the search is conducted. Split the logic into more files and added more tests. Closes: https://github.com/AdguardTeam/AdGuardHome/issues/1559
1834 lines
62 KiB
YAML
1834 lines
62 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: AdGuard Home
|
|
description: AdGuard Home REST API. Admin web interface is built on top of this REST API.
|
|
version: "0.102"
|
|
contact:
|
|
name: "AdGuard Home"
|
|
url: "https://github.com/AdguardTeam/AdGuardHome"
|
|
|
|
servers:
|
|
- url: /control
|
|
|
|
tags:
|
|
- name: clients
|
|
description: Clients list operations
|
|
- name: dhcp
|
|
description: Built-in DHCP server controls
|
|
- name: filtering
|
|
description: Rule-based filtering
|
|
- name: global
|
|
description: AdGuard Home server general settings and controls
|
|
- name: i18n
|
|
description: Application localization
|
|
- name: install
|
|
description: First-time install configuration handlers
|
|
- name: log
|
|
description: AdGuard Home query log
|
|
- name: parental
|
|
description: Blocking adult and explicit materials
|
|
- name: safebrowsing
|
|
description: Blocking malware/phishing sites
|
|
- name: safesearch
|
|
description: Enforce family-friendly results in search engines
|
|
- name: stats
|
|
description: AdGuard Home statistics
|
|
- name: tls
|
|
description: AdGuard Home HTTPS/DOH/DOT settings
|
|
|
|
paths:
|
|
/status:
|
|
get:
|
|
tags:
|
|
- global
|
|
operationId: status
|
|
summary: Get DNS server current status and general settings
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ServerStatus"
|
|
/dns_info:
|
|
get:
|
|
tags:
|
|
- global
|
|
operationId: dnsInfo
|
|
summary: Get general DNS parameters
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DNSConfig"
|
|
/dns_config:
|
|
post:
|
|
tags:
|
|
- global
|
|
operationId: dnsConfig
|
|
summary: Set general DNS parameters
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DNSConfig"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/test_upstream_dns:
|
|
post:
|
|
tags:
|
|
- global
|
|
operationId: testUpstreamDNS
|
|
summary: Test upstream configuration
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpstreamsConfig"
|
|
description: Upstream configuration to be tested
|
|
responses:
|
|
"200":
|
|
description: Status of testing each requested server, with "OK" meaning that
|
|
server works, any other text means an error.
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
1.1.1.1: OK
|
|
1.0.0.1: OK
|
|
8.8.8.8: OK
|
|
8.8.4.4: OK
|
|
192.168.1.104:53535: Couldn't communicate with DNS server
|
|
/version.json:
|
|
post:
|
|
tags:
|
|
- global
|
|
operationId: getVersionJson
|
|
summary: Gets information about the latest available version of AdGuard
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GetVersionRequest"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: Version info. If response message is empty, UI does not show a
|
|
version update message.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/VersionInfo"
|
|
"500":
|
|
description: Cannot write answer
|
|
"502":
|
|
description: Cannot retrieve the version.json file contents
|
|
/update:
|
|
post:
|
|
tags:
|
|
- global
|
|
operationId: beginUpdate
|
|
summary: Begin auto-upgrade procedure
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"500":
|
|
description: Failed
|
|
/querylog:
|
|
get:
|
|
tags:
|
|
- log
|
|
operationId: queryLog
|
|
summary: Get DNS server query log.
|
|
parameters:
|
|
- name: older_than
|
|
in: query
|
|
description: Filter by older than
|
|
schema:
|
|
type: string
|
|
- name: offset
|
|
in: query
|
|
description:
|
|
Specify the ranking number of the first item on the page.
|
|
Even though it is possible to use "offset" and "older_than",
|
|
we recommend choosing one of them and sticking to it.
|
|
schema:
|
|
type: integer
|
|
- name: limit
|
|
in: query
|
|
description: Limit the number of records to be returned
|
|
schema:
|
|
type: integer
|
|
- name: filter_domain
|
|
in: query
|
|
description: Filter by domain name
|
|
schema:
|
|
type: string
|
|
- name: filter_client
|
|
in: query
|
|
description: Filter by client
|
|
schema:
|
|
type: string
|
|
- name: filter_question_type
|
|
in: query
|
|
description: Filter by question type
|
|
schema:
|
|
type: string
|
|
- name: filter_response_status
|
|
in: query
|
|
description: Filter by response status
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- null
|
|
- filtered
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/QueryLog"
|
|
/querylog_info:
|
|
get:
|
|
tags:
|
|
- log
|
|
operationId: queryLogInfo
|
|
summary: Get query log parameters
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/QueryLogConfig"
|
|
/querylog_config:
|
|
post:
|
|
tags:
|
|
- log
|
|
operationId: queryLogConfig
|
|
summary: Set query log parameters
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/QueryLogConfig"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/querylog_clear:
|
|
post:
|
|
tags:
|
|
- log
|
|
operationId: querylogClear
|
|
summary: Clear query log
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/stats:
|
|
get:
|
|
tags:
|
|
- stats
|
|
operationId: stats
|
|
summary: Get DNS server statistics
|
|
responses:
|
|
"200":
|
|
description: Returns statistics data
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Stats"
|
|
/stats_reset:
|
|
post:
|
|
tags:
|
|
- stats
|
|
operationId: statsReset
|
|
summary: Reset all statistics to zeroes
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/stats_info:
|
|
get:
|
|
tags:
|
|
- stats
|
|
operationId: statsInfo
|
|
summary: Get statistics parameters
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/StatsConfig"
|
|
/stats_config:
|
|
post:
|
|
tags:
|
|
- stats
|
|
operationId: statsConfig
|
|
summary: Set statistics parameters
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/StatsConfig"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/tls/status:
|
|
get:
|
|
tags:
|
|
- tls
|
|
operationId: tlsStatus
|
|
summary: Returns TLS configuration and its status
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TlsConfig"
|
|
/tls/configure:
|
|
post:
|
|
tags:
|
|
- tls
|
|
operationId: tlsConfigure
|
|
summary: Updates current TLS configuration
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/TlsConfig"
|
|
responses:
|
|
"200":
|
|
description: TLS configuration and its status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TlsConfig"
|
|
"400":
|
|
description: Invalid configuration or unavailable port
|
|
"500":
|
|
description: Error occurred while applying configuration
|
|
/tls/validate:
|
|
post:
|
|
tags:
|
|
- tls
|
|
operationId: tlsValidate
|
|
summary: Checks if the current TLS configuration is valid
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/TlsConfig"
|
|
responses:
|
|
"200":
|
|
description: TLS configuration and its status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TlsConfig"
|
|
"400":
|
|
description: Invalid configuration or unavailable port
|
|
/dhcp/status:
|
|
get:
|
|
tags:
|
|
- dhcp
|
|
operationId: dhcpStatus
|
|
summary: Gets the current DHCP settings and status
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DhcpStatus"
|
|
/dhcp/set_config:
|
|
post:
|
|
tags:
|
|
- dhcp
|
|
operationId: dhcpSetConfig
|
|
summary: Updates the current DHCP server configuration
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DhcpConfig"
|
|
description: DHCP configuration JSON
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/dhcp/find_active_dhcp:
|
|
post:
|
|
tags:
|
|
- dhcp
|
|
operationId: checkActiveDhcp
|
|
summary: Searches for an active DHCP server on the network
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DhcpSearchResult"
|
|
/dhcp/add_static_lease:
|
|
post:
|
|
tags:
|
|
- dhcp
|
|
operationId: dhcpAddStaticLease
|
|
summary: Adds a static lease
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/DhcpStaticLease"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/dhcp/remove_static_lease:
|
|
post:
|
|
tags:
|
|
- dhcp
|
|
operationId: dhcpRemoveStaticLease
|
|
summary: Removes a static lease
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/DhcpStaticLease"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/dhcp/reset:
|
|
post:
|
|
tags:
|
|
- dhcp
|
|
operationId: dhcpReset
|
|
summary: Reset DHCP configuration
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/filtering/status:
|
|
get:
|
|
tags:
|
|
- filtering
|
|
operationId: filteringStatus
|
|
summary: Get filtering parameters
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FilterStatus"
|
|
/filtering/config:
|
|
post:
|
|
tags:
|
|
- filtering
|
|
operationId: filteringConfig
|
|
summary: Set filtering parameters
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FilterConfig"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/filtering/add_url:
|
|
post:
|
|
tags:
|
|
- filtering
|
|
operationId: filteringAddURL
|
|
summary: Add filter URL or an absolute file path
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AddUrlRequest"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/filtering/remove_url:
|
|
post:
|
|
tags:
|
|
- filtering
|
|
operationId: filteringRemoveURL
|
|
summary: Remove filter URL
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/RemoveUrlRequest"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/filtering/set_url:
|
|
post:
|
|
tags:
|
|
- filtering
|
|
operationId: filteringSetURL
|
|
summary: Set URL parameters
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FilterSetUrl"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/filtering/refresh:
|
|
post:
|
|
tags:
|
|
- filtering
|
|
operationId: filteringRefresh
|
|
summary: >
|
|
Reload filtering rules from URLs
|
|
|
|
|
|
This might be needed if new URL was just added and you dont want to wait for automatic refresh to kick in.
|
|
|
|
|
|
This API request is ratelimited, so you can call it freely as often as you like, it wont create unneccessary burden on servers that host the URL.
|
|
|
|
|
|
This should work as intended, a `force` parameter is offered as last-resort attempt to make filter lists fresh.
|
|
|
|
|
|
If you ever find yourself using `force` to make something work that otherwise wont, this is a bug and report it accordingly.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FilterRefreshRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FilterRefreshResponse"
|
|
/filtering/set_rules:
|
|
post:
|
|
tags:
|
|
- filtering
|
|
operationId: filteringSetRules
|
|
summary: Set user-defined filter rules
|
|
requestBody:
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
example: "@@||yandex.ru^|"
|
|
description: All filtering rules, one line per rule
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/filtering/check_host:
|
|
get:
|
|
tags:
|
|
- filtering
|
|
operationId: filteringCheckHost
|
|
summary: Check if host name is filtered
|
|
parameters:
|
|
- name: name
|
|
in: query
|
|
description: Filter by host name
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FilterCheckHostResponse"
|
|
/safebrowsing/enable:
|
|
post:
|
|
tags:
|
|
- safebrowsing
|
|
operationId: safebrowsingEnable
|
|
summary: Enable safebrowsing
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/safebrowsing/disable:
|
|
post:
|
|
tags:
|
|
- safebrowsing
|
|
operationId: safebrowsingDisable
|
|
summary: Disable safebrowsing
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/safebrowsing/status:
|
|
get:
|
|
tags:
|
|
- safebrowsing
|
|
operationId: safebrowsingStatus
|
|
summary: Get safebrowsing status
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
enabled: false
|
|
/parental/enable:
|
|
post:
|
|
tags:
|
|
- parental
|
|
operationId: parentalEnable
|
|
summary: Enable parental filtering
|
|
requestBody:
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- EARLY_CHILDHOOD
|
|
- YOUNG
|
|
- TEEN
|
|
- MATURE
|
|
example: sensitivity=TEEN
|
|
description: |
|
|
Age sensitivity for parental filtering,
|
|
EARLY_CHILDHOOD is 3
|
|
YOUNG is 10
|
|
TEEN is 13
|
|
MATURE is 17
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/parental/disable:
|
|
post:
|
|
tags:
|
|
- parental
|
|
operationId: parentalDisable
|
|
summary: Disable parental filtering
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/parental/status:
|
|
get:
|
|
tags:
|
|
- parental
|
|
operationId: parentalStatus
|
|
summary: Get parental filtering status
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
enabled: true
|
|
sensitivity: 13
|
|
/safesearch/enable:
|
|
post:
|
|
tags:
|
|
- safesearch
|
|
operationId: safesearchEnable
|
|
summary: Enable safesearch
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/safesearch/disable:
|
|
post:
|
|
tags:
|
|
- safesearch
|
|
operationId: safesearchDisable
|
|
summary: Disable safesearch
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/safesearch/status:
|
|
get:
|
|
tags:
|
|
- safesearch
|
|
operationId: safesearchStatus
|
|
summary: Get safesearch status
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
enabled: false
|
|
/clients:
|
|
get:
|
|
tags:
|
|
- clients
|
|
operationId: clientsStatus
|
|
summary: Get information about configured clients
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Clients"
|
|
/clients/add:
|
|
post:
|
|
tags:
|
|
- clients
|
|
operationId: clientsAdd
|
|
summary: Add a new client
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Client"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/clients/delete:
|
|
post:
|
|
tags:
|
|
- clients
|
|
operationId: clientsDelete
|
|
summary: Remove a client
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ClientDelete"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/clients/update:
|
|
post:
|
|
tags:
|
|
- clients
|
|
operationId: clientsUpdate
|
|
summary: Update client information
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ClientUpdate"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/clients/find:
|
|
get:
|
|
tags:
|
|
- clients
|
|
operationId: clientsFind
|
|
summary: Get information about selected clients by their IP address
|
|
parameters:
|
|
- name: ip0
|
|
in: query
|
|
description: Filter by IP address
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ClientsFindResponse"
|
|
/blocked_services/list:
|
|
get:
|
|
tags:
|
|
- blocked_services
|
|
operationId: blockedServicesList
|
|
summary: Get blocked services list
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BlockedServicesArray"
|
|
/blocked_services/set:
|
|
post:
|
|
tags:
|
|
- blocked_services
|
|
operationId: blockedServicesSet
|
|
summary: Set blocked services list
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BlockedServicesArray"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/rewrite/list:
|
|
get:
|
|
tags:
|
|
- rewrite
|
|
operationId: rewriteList
|
|
summary: Get list of Rewrite rules
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/RewriteList"
|
|
/rewrite/add:
|
|
post:
|
|
tags:
|
|
- rewrite
|
|
operationId: rewriteAdd
|
|
summary: Add a new Rewrite rule
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/RewriteEntry"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/rewrite/delete:
|
|
post:
|
|
tags:
|
|
- rewrite
|
|
operationId: rewriteDelete
|
|
summary: Remove a Rewrite rule
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/RewriteEntry"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/i18n/change_language:
|
|
post:
|
|
tags:
|
|
- i18n
|
|
operationId: changeLanguage
|
|
summary: Change current language. Argument must be an ISO 639-1 two-letter code
|
|
requestBody:
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
example: en
|
|
description: New language. It must be known to the server and must be an ISO 639-1
|
|
two-letter code
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/i18n/current_language:
|
|
get:
|
|
tags:
|
|
- i18n
|
|
operationId: currentLanguage
|
|
summary: Get currently set language. Result is ISO 639-1 two-letter code. Empty
|
|
result means default language.
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
text/plain:
|
|
examples:
|
|
response:
|
|
value: en
|
|
/install/get_addresses:
|
|
get:
|
|
tags:
|
|
- install
|
|
operationId: installGetAddresses
|
|
summary: Gets the network interfaces information.
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AddressesInfo"
|
|
/install/check_config:
|
|
post:
|
|
tags:
|
|
- install
|
|
operationId: installCheckConfig
|
|
summary: Checks configuration
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CheckConfigRequest"
|
|
description: Configuration to be checked
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CheckConfigResponse"
|
|
"400":
|
|
description: Failed to parse JSON or cannot listen on the specified address
|
|
/install/configure:
|
|
post:
|
|
tags:
|
|
- install
|
|
operationId: installConfigure
|
|
summary: Applies the initial configuration.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InitialConfiguration"
|
|
description: Initial configuration JSON
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"400":
|
|
description: Failed to parse initial configuration or cannot listen to the
|
|
specified addresses
|
|
"500":
|
|
description: Cannot start the DNS server
|
|
/login:
|
|
post:
|
|
tags:
|
|
- global
|
|
operationId: login
|
|
summary: Perform administrator log-in
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Login"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/logout:
|
|
get:
|
|
tags:
|
|
- global
|
|
operationId: logout
|
|
summary: Perform administrator log-out
|
|
responses:
|
|
"302":
|
|
description: OK
|
|
/profile:
|
|
get:
|
|
tags:
|
|
- global
|
|
operationId: getProfile
|
|
summary: ""
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ProfileInfo"
|
|
|
|
components:
|
|
requestBodies:
|
|
TlsConfig:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TlsConfig"
|
|
description: TLS configuration JSON
|
|
required: true
|
|
DhcpStaticLease:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DhcpStaticLease"
|
|
required: true
|
|
RewriteEntry:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/RewriteEntry"
|
|
required: true
|
|
schemas:
|
|
ServerStatus:
|
|
type: object
|
|
description: AdGuard Home server status and configuration
|
|
required:
|
|
- dns_address
|
|
- dns_port
|
|
- protection_enabled
|
|
- querylog_enabled
|
|
- running
|
|
- bootstrap_dns
|
|
- upstream_dns
|
|
- version
|
|
- language
|
|
properties:
|
|
dns_address:
|
|
type: string
|
|
example: 127.0.0.1
|
|
dns_port:
|
|
type: integer
|
|
format: int32
|
|
example: 53
|
|
minimum: 1
|
|
maximum: 65535
|
|
protection_enabled:
|
|
type: boolean
|
|
querylog_enabled:
|
|
type: boolean
|
|
running:
|
|
type: boolean
|
|
version:
|
|
type: string
|
|
example: "0.1"
|
|
language:
|
|
type: string
|
|
example: en
|
|
DNSConfig:
|
|
type: object
|
|
description: Query log configuration
|
|
properties:
|
|
bootstrap_dns:
|
|
type: array
|
|
description: Bootstrap servers, port is optional after colon. Empty value will
|
|
reset it to default values
|
|
items:
|
|
type: string
|
|
example:
|
|
- 8.8.8.8:53
|
|
- 1.1.1.1:53
|
|
upstream_dns:
|
|
type: array
|
|
description: Upstream servers, port is optional after colon. Empty value will
|
|
reset it to default values
|
|
items:
|
|
type: string
|
|
example:
|
|
- tls://1.1.1.1
|
|
- tls://1.0.0.1
|
|
protection_enabled:
|
|
type: boolean
|
|
ratelimit:
|
|
type: integer
|
|
blocking_mode:
|
|
type: string
|
|
enum:
|
|
- default
|
|
- nxdomain
|
|
- null_ip
|
|
- custom_ip
|
|
blocking_ipv4:
|
|
type: string
|
|
blocking_ipv6:
|
|
type: string
|
|
edns_cs_enabled:
|
|
type: boolean
|
|
dnssec_enabled:
|
|
type: boolean
|
|
fastest_addr:
|
|
type: boolean
|
|
parallel_requests:
|
|
type: boolean
|
|
description: If true, parallel queries to all configured upstream servers are
|
|
enabled
|
|
UpstreamsConfig:
|
|
type: object
|
|
description: Upstreams configuration
|
|
required:
|
|
- bootstrap_dns
|
|
- upstream_dns
|
|
properties:
|
|
bootstrap_dns:
|
|
type: array
|
|
description: Bootstrap servers, port is optional after colon. Empty value will
|
|
reset it to default values
|
|
items:
|
|
type: string
|
|
example:
|
|
- 8.8.8.8:53
|
|
- 1.1.1.1:53
|
|
upstream_dns:
|
|
type: array
|
|
description: Upstream servers, port is optional after colon. Empty value will
|
|
reset it to default values
|
|
items:
|
|
type: string
|
|
example:
|
|
- tls://1.1.1.1
|
|
- tls://1.0.0.1
|
|
Filter:
|
|
type: object
|
|
description: Filter subscription info
|
|
required:
|
|
- enabled
|
|
- id
|
|
- lastUpdated
|
|
- name
|
|
- rulesCount
|
|
- url
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
id:
|
|
type: integer
|
|
example: 1234
|
|
lastUpdated:
|
|
type: string
|
|
format: date-time
|
|
example: 2018-10-30T12:18:57+03:00
|
|
name:
|
|
type: string
|
|
example: AdGuard Simplified Domain Names filter
|
|
rulesCount:
|
|
type: integer
|
|
example: 5912
|
|
url:
|
|
type: string
|
|
example: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
|
|
FilterStatus:
|
|
type: object
|
|
description: Filtering settings
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
interval:
|
|
type: integer
|
|
filters:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Filter"
|
|
user_rules:
|
|
type: array
|
|
items:
|
|
type: string
|
|
FilterConfig:
|
|
type: object
|
|
description: Filtering settings
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
interval:
|
|
type: integer
|
|
FilterSetUrl:
|
|
type: object
|
|
description: Filtering URL settings
|
|
properties:
|
|
url:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
FilterRefreshRequest:
|
|
type: object
|
|
description: Refresh Filters request data
|
|
properties:
|
|
whitelist:
|
|
type: boolean
|
|
FilterCheckHostResponse:
|
|
type: object
|
|
description: Check Host Result
|
|
properties:
|
|
reason:
|
|
type: string
|
|
description: DNS filter status
|
|
enum:
|
|
- NotFilteredNotFound
|
|
- NotFilteredWhiteList
|
|
- NotFilteredError
|
|
- FilteredBlackList
|
|
- FilteredSafeBrowsing
|
|
- FilteredParental
|
|
- FilteredInvalid
|
|
- FilteredSafeSearch
|
|
- FilteredBlockedService
|
|
- ReasonRewrite
|
|
filter_id:
|
|
type: integer
|
|
rule:
|
|
type: string
|
|
example: "||example.org^"
|
|
description: Filtering rule applied to the request (if any)
|
|
service_name:
|
|
type: string
|
|
description: Set if reason=FilteredBlockedService
|
|
cname:
|
|
type: string
|
|
description: Set if reason=ReasonRewrite
|
|
ip_addrs:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Set if reason=ReasonRewrite
|
|
FilterRefreshResponse:
|
|
type: object
|
|
description: /filtering/refresh response data
|
|
properties:
|
|
updated:
|
|
type: integer
|
|
GetVersionRequest:
|
|
type: object
|
|
description: /version.json request data
|
|
properties:
|
|
recheck_now:
|
|
description: If false, server will check for a new version data only once in
|
|
several hours
|
|
type: boolean
|
|
VersionInfo:
|
|
type: object
|
|
description: Information about the latest available version of AdGuard Home
|
|
properties:
|
|
new_version:
|
|
type: string
|
|
example: v0.9
|
|
announcement:
|
|
type: string
|
|
example: AdGuard Home v0.9 is now available!
|
|
announcement_url:
|
|
type: string
|
|
example: https://github.com/AdguardTeam/AdGuardHome/releases/tag/v0.9
|
|
can_autoupdate:
|
|
type: boolean
|
|
Stats:
|
|
type: object
|
|
description: Server statistics data
|
|
properties:
|
|
time_units:
|
|
type: string
|
|
description: Time units (hours | days)
|
|
example: hours
|
|
num_dns_queries:
|
|
type: integer
|
|
description: Total number of DNS queries
|
|
example: 123
|
|
num_blocked_filtering:
|
|
type: integer
|
|
description: Number of requests blocked by filtering rules
|
|
example: 50
|
|
num_replaced_safebrowsing:
|
|
type: integer
|
|
description: Number of requests blocked by safebrowsing module
|
|
example: 5
|
|
num_replaced_safesearch:
|
|
type: integer
|
|
description: Number of requests blocked by safesearch module
|
|
example: 5
|
|
num_replaced_parental:
|
|
type: integer
|
|
description: Number of blocked adult websites
|
|
example: 15
|
|
avg_processing_time:
|
|
type: number
|
|
format: float
|
|
description: Average time in milliseconds on processing a DNS
|
|
example: 0.34
|
|
top_queried_domains:
|
|
type: array
|
|
items:
|
|
type: object
|
|
top_clients:
|
|
type: array
|
|
items:
|
|
type: object
|
|
top_blocked_domains:
|
|
type: array
|
|
items:
|
|
type: object
|
|
dns_queries:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
blocked_filtering:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
replaced_safebrowsing:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
replaced_parental:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
StatsConfig:
|
|
type: object
|
|
description: Statistics configuration
|
|
properties:
|
|
interval:
|
|
type: integer
|
|
description: Time period to keep data (1 | 7 | 30 | 90)
|
|
DhcpConfig:
|
|
type: object
|
|
description: Built-in DHCP server configuration
|
|
required:
|
|
- enabled
|
|
- gateway_ip
|
|
- subnet_mask
|
|
- range_start
|
|
- range_end
|
|
- lease_duration
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
gateway_ip:
|
|
type: string
|
|
example: 192.168.1.1
|
|
subnet_mask:
|
|
type: string
|
|
example: 255.255.255.0
|
|
range_start:
|
|
type: string
|
|
example: 192.168.1.2
|
|
range_end:
|
|
type: string
|
|
example: 192.168.10.50
|
|
lease_duration:
|
|
type: string
|
|
example: 12h
|
|
DhcpLease:
|
|
type: object
|
|
description: DHCP lease information
|
|
required:
|
|
- mac
|
|
- ip
|
|
- hostname
|
|
- expires
|
|
properties:
|
|
mac:
|
|
type: string
|
|
example: 00:11:09:b3:b3:b8
|
|
ip:
|
|
type: string
|
|
example: 192.168.1.22
|
|
hostname:
|
|
type: string
|
|
example: dell
|
|
expires:
|
|
type: string
|
|
format: date-time
|
|
example: 2017-07-21T17:32:28Z
|
|
DhcpStaticLease:
|
|
type: object
|
|
description: DHCP static lease information
|
|
required:
|
|
- mac
|
|
- ip
|
|
- hostname
|
|
- expires
|
|
properties:
|
|
mac:
|
|
type: string
|
|
example: 00:11:09:b3:b3:b8
|
|
ip:
|
|
type: string
|
|
example: 192.168.1.22
|
|
hostname:
|
|
type: string
|
|
example: dell
|
|
DhcpStatus:
|
|
type: object
|
|
description: Built-in DHCP server configuration and status
|
|
required:
|
|
- config
|
|
- leases
|
|
properties:
|
|
config:
|
|
$ref: "#/components/schemas/DhcpConfig"
|
|
leases:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DhcpLease"
|
|
static_leases:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DhcpStaticLease"
|
|
DhcpSearchResult:
|
|
type: object
|
|
description: Information about a DHCP server discovered in the current network
|
|
properties:
|
|
other_server:
|
|
$ref: "#/components/schemas/DhcpSearchResultOtherServer"
|
|
static_ip:
|
|
$ref: "#/components/schemas/DhcpSearchResultStaticIP"
|
|
DhcpSearchResultOtherServer:
|
|
type: object
|
|
properties:
|
|
found:
|
|
type: string
|
|
description: yes|no|error
|
|
example: no
|
|
error:
|
|
type: string
|
|
description: Set if found=error
|
|
example: ""
|
|
DhcpSearchResultStaticIP:
|
|
type: object
|
|
properties:
|
|
static:
|
|
type: string
|
|
description: yes|no|error
|
|
example: yes
|
|
ip:
|
|
type: string
|
|
description: Set if static=no
|
|
example: ""
|
|
DnsAnswer:
|
|
type: object
|
|
description: DNS answer section
|
|
properties:
|
|
ttl:
|
|
type: integer
|
|
example: 55
|
|
type:
|
|
type: string
|
|
example: A
|
|
value:
|
|
type: string
|
|
example: 217.69.139.201
|
|
DnsQuestion:
|
|
type: object
|
|
description: DNS question section
|
|
properties:
|
|
class:
|
|
type: string
|
|
example: IN
|
|
host:
|
|
type: string
|
|
example: example.org
|
|
type:
|
|
type: string
|
|
example: A
|
|
AddUrlRequest:
|
|
type: object
|
|
description: /add_url request data
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
description: URL or an absolute path to the file containing filtering rules
|
|
type: string
|
|
example: https://filters.adtidy.org/windows/filters/15.txt
|
|
RemoveUrlRequest:
|
|
type: object
|
|
description: /remove_url request data
|
|
properties:
|
|
url:
|
|
description: Previously added URL containing filtering rules
|
|
type: string
|
|
example: https://filters.adtidy.org/windows/filters/15.txt
|
|
QueryLogItem:
|
|
type: object
|
|
description: Query log item
|
|
properties:
|
|
answer:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DnsAnswer"
|
|
original_answer:
|
|
type: array
|
|
description: Answer from upstream server (optional)
|
|
items:
|
|
$ref: "#/components/schemas/DnsAnswer"
|
|
answer_dnssec:
|
|
type: boolean
|
|
client:
|
|
type: string
|
|
example: 192.168.0.1
|
|
elapsedMs:
|
|
type: string
|
|
example: "54.023928"
|
|
question:
|
|
$ref: "#/components/schemas/DnsQuestion"
|
|
filterId:
|
|
type: integer
|
|
example: 123123
|
|
description: In case if there's a rule applied to this DNS request, this is ID of
|
|
the filter that rule belongs to.
|
|
rule:
|
|
type: string
|
|
example: "||example.org^"
|
|
description: Filtering rule applied to the request (if any)
|
|
reason:
|
|
type: string
|
|
description: DNS filter status
|
|
enum:
|
|
- NotFilteredNotFound
|
|
- NotFilteredWhiteList
|
|
- NotFilteredError
|
|
- FilteredBlackList
|
|
- FilteredSafeBrowsing
|
|
- FilteredParental
|
|
- FilteredInvalid
|
|
- FilteredSafeSearch
|
|
- FilteredBlockedService
|
|
- ReasonRewrite
|
|
service_name:
|
|
type: string
|
|
description: Set if reason=FilteredBlockedService
|
|
status:
|
|
type: string
|
|
description: DNS response status
|
|
example: NOERROR
|
|
time:
|
|
type: string
|
|
description: DNS request processing start time
|
|
example: 2018-11-26T00:02:41+03:00
|
|
QueryLog:
|
|
type: object
|
|
description: Query log
|
|
properties:
|
|
oldest:
|
|
type: string
|
|
example: 2018-11-26T00:02:41+03:00
|
|
data:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/QueryLogItem"
|
|
QueryLogConfig:
|
|
type: object
|
|
description: Query log configuration
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
description: Is query log enabled
|
|
interval:
|
|
type: integer
|
|
description: Time period to keep data (1 | 7 | 30 | 90)
|
|
anonymize_client_ip:
|
|
type: boolean
|
|
description: Anonymize clients' IP addresses
|
|
TlsConfig:
|
|
type: object
|
|
description: TLS configuration settings and status
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
example: "true"
|
|
description: enabled is the encryption (DOT/DOH/HTTPS) status
|
|
server_name:
|
|
type: string
|
|
example: example.org
|
|
description: server_name is the hostname of your HTTPS/TLS server
|
|
force_https:
|
|
type: boolean
|
|
example: "true"
|
|
description: if true, forces HTTP->HTTPS redirect
|
|
port_https:
|
|
type: integer
|
|
format: int32
|
|
example: 443
|
|
description: HTTPS port. If 0, HTTPS will be disabled.
|
|
port_dns_over_tls:
|
|
type: integer
|
|
format: int32
|
|
example: 853
|
|
description: DNS-over-TLS port. If 0, DOT will be disabled.
|
|
certificate_chain:
|
|
type: string
|
|
description: Base64 string with PEM-encoded certificates chain
|
|
private_key:
|
|
type: string
|
|
description: Base64 string with PEM-encoded private key
|
|
certificate_path:
|
|
type: string
|
|
description: Path to certificate file
|
|
private_key_path:
|
|
type: string
|
|
description: Path to private key file
|
|
valid_cert:
|
|
type: boolean
|
|
example: "true"
|
|
description: valid_cert is true if the specified certificates chain is a valid
|
|
chain of X509 certificates
|
|
valid_chain:
|
|
type: boolean
|
|
example: "true"
|
|
description: valid_chain is true if the specified certificates chain is verified
|
|
and issued by a known CA
|
|
subject:
|
|
type: string
|
|
example: CN=example.org
|
|
description: subject is the subject of the first certificate in the chain
|
|
issuer:
|
|
type: string
|
|
example: CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US
|
|
description: issuer is the issuer of the first certificate in the chain
|
|
not_before:
|
|
type: string
|
|
example: 2019-01-31T10:47:32Z
|
|
description: not_before is the NotBefore field of the first certificate in the
|
|
chain
|
|
not_after:
|
|
type: string
|
|
example: 2019-05-01T10:47:32Z
|
|
description: not_after is the NotAfter field of the first certificate in the chain
|
|
dns_names:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: dns_names is the value of SubjectAltNames field of the first
|
|
certificate in the chain
|
|
example:
|
|
- "*.example.org"
|
|
valid_key:
|
|
type: boolean
|
|
example: "true"
|
|
description: valid_key is true if the key is a valid private key
|
|
key_type:
|
|
type: string
|
|
example: RSA
|
|
description: key_type is either RSA or ECDSA
|
|
warning_validation:
|
|
type: string
|
|
example: You have specified an empty certificate
|
|
description: warning_validation is a validation warning message with the issue
|
|
description
|
|
valid_pair:
|
|
type: boolean
|
|
example: "true"
|
|
description: valid_pair is true if both certificate and private key are correct
|
|
NetInterface:
|
|
type: object
|
|
description: Network interface info
|
|
properties:
|
|
flags:
|
|
type: string
|
|
example: up|broadcast|multicast
|
|
hardware_address:
|
|
type: string
|
|
example: 52:54:00:11:09:ba
|
|
mtu:
|
|
type: integer
|
|
format: int32
|
|
example: 1500
|
|
name:
|
|
type: string
|
|
example: eth0
|
|
ip_addresses:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- 127.0.0.1
|
|
AddressInfo:
|
|
type: object
|
|
description: Port information
|
|
properties:
|
|
ip:
|
|
type: string
|
|
example: 127.0.0.1
|
|
port:
|
|
type: integer
|
|
format: int32
|
|
example: 53
|
|
AddressesInfo:
|
|
type: object
|
|
description: AdGuard Home addresses configuration
|
|
properties:
|
|
dns_port:
|
|
type: integer
|
|
format: int32
|
|
example: 53
|
|
web_port:
|
|
type: integer
|
|
format: int32
|
|
example: 80
|
|
interfaces:
|
|
type: object
|
|
description: Network interfaces dictionary (key is the interface name)
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/NetInterface"
|
|
ProfileInfo:
|
|
type: object
|
|
description: Information about the current user
|
|
properties:
|
|
name:
|
|
type: string
|
|
Client:
|
|
type: object
|
|
description: Client information
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Name
|
|
example: localhost
|
|
ids:
|
|
type: array
|
|
description: IP, CIDR or MAC address
|
|
items:
|
|
type: string
|
|
use_global_settings:
|
|
type: boolean
|
|
filtering_enabled:
|
|
type: boolean
|
|
parental_enabled:
|
|
type: boolean
|
|
safebrowsing_enabled:
|
|
type: boolean
|
|
safesearch_enabled:
|
|
type: boolean
|
|
use_global_blocked_services:
|
|
type: boolean
|
|
blocked_services:
|
|
type: array
|
|
items:
|
|
type: string
|
|
upstreams:
|
|
type: array
|
|
items:
|
|
type: string
|
|
ClientAuto:
|
|
type: object
|
|
description: Auto-Client information
|
|
properties:
|
|
ip:
|
|
type: string
|
|
description: IP address
|
|
example: 127.0.0.1
|
|
name:
|
|
type: string
|
|
description: Name
|
|
example: localhost
|
|
source:
|
|
type: string
|
|
description: The source of this information
|
|
example: etc/hosts
|
|
ClientUpdate:
|
|
type: object
|
|
description: Client update request
|
|
properties:
|
|
name:
|
|
type: string
|
|
data:
|
|
$ref: "#/components/schemas/Client"
|
|
ClientDelete:
|
|
type: object
|
|
description: Client delete request
|
|
properties:
|
|
name:
|
|
type: string
|
|
ClientsFindResponse:
|
|
type: array
|
|
description: Response to clients find operation
|
|
items:
|
|
$ref: "#/components/schemas/ClientsFindEntry"
|
|
ClientsFindEntry:
|
|
type: object
|
|
properties:
|
|
1.2.3.4:
|
|
items:
|
|
$ref: "#/components/schemas/Client"
|
|
Clients:
|
|
type: object
|
|
properties:
|
|
clients:
|
|
$ref: "#/components/schemas/ClientsArray"
|
|
auto_clients:
|
|
$ref: "#/components/schemas/ClientsAutoArray"
|
|
ClientsArray:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Client"
|
|
description: Clients array
|
|
ClientsAutoArray:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ClientAuto"
|
|
description: Auto-Clients array
|
|
RewriteList:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RewriteEntry"
|
|
description: Rewrite rules array
|
|
RewriteEntry:
|
|
type: object
|
|
description: Rewrite rule
|
|
properties:
|
|
domain:
|
|
type: string
|
|
description: Domain name
|
|
example: example.org
|
|
answer:
|
|
type: string
|
|
description: value of A, AAAA or CNAME DNS record
|
|
example: 127.0.0.1
|
|
BlockedServicesArray:
|
|
type: array
|
|
items:
|
|
type: string
|
|
CheckConfigRequest:
|
|
type: object
|
|
description: Configuration to be checked
|
|
properties:
|
|
dns:
|
|
$ref: "#/components/schemas/CheckConfigRequestInfo"
|
|
web:
|
|
$ref: "#/components/schemas/CheckConfigRequestInfo"
|
|
set_static_ip:
|
|
type: boolean
|
|
example: false
|
|
CheckConfigRequestInfo:
|
|
type: object
|
|
properties:
|
|
ip:
|
|
type: string
|
|
example: 127.0.0.1
|
|
port:
|
|
type: integer
|
|
format: int32
|
|
example: 53
|
|
autofix:
|
|
type: boolean
|
|
example: false
|
|
CheckConfigResponse:
|
|
type: object
|
|
properties:
|
|
dns:
|
|
$ref: "#/components/schemas/CheckConfigResponseInfo"
|
|
web:
|
|
$ref: "#/components/schemas/CheckConfigResponseInfo"
|
|
static_ip:
|
|
$ref: "#/components/schemas/CheckConfigStaticIpInfo"
|
|
CheckConfigResponseInfo:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
example: ""
|
|
can_autofix:
|
|
type: boolean
|
|
example: false
|
|
CheckConfigStaticIpInfo:
|
|
type: object
|
|
properties:
|
|
static:
|
|
type: string
|
|
example: no
|
|
description: "Can be: yes, no, error"
|
|
ip:
|
|
type: string
|
|
example: 192.168.1.1
|
|
description: Current dynamic IP address. Set if static=no
|
|
error:
|
|
type: string
|
|
example: ""
|
|
description: Error text. Set if static=error
|
|
InitialConfiguration:
|
|
type: object
|
|
description: AdGuard Home initial configuration (for the first-install wizard)
|
|
properties:
|
|
dns:
|
|
$ref: "#/components/schemas/AddressInfo"
|
|
web:
|
|
$ref: "#/components/schemas/AddressInfo"
|
|
username:
|
|
type: string
|
|
description: Basic auth username
|
|
example: admin
|
|
password:
|
|
type: string
|
|
description: Basic auth password
|
|
example: password
|
|
Login:
|
|
type: object
|
|
description: Login request data
|
|
properties:
|
|
username:
|
|
type: string
|
|
description: User name
|
|
password:
|
|
type: string
|
|
description: Password
|