"Fossies" - the Fresh Open Source Software Archive

Member "AdGuardHome-0.104.3/openapi/openapi.yaml" (19 Nov 2020, 70492 Bytes) of package /linux/misc/dns/AdGuardHome-0.104.3.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Ansible YAML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "openapi.yaml": 0.104.1_vs_0.104.3.

    1 openapi: 3.0.3
    2 info:
    3     title: AdGuard Home
    4     description: AdGuard Home REST API. Admin web interface is built on top of this REST API.
    5     version: "0.104"
    6     contact:
    7         name: "AdGuard Home"
    8         url: "https://github.com/AdguardTeam/AdGuardHome"
    9 
   10 servers:
   11     - url: /control
   12 
   13 tags:
   14     - name: clients
   15       description: Clients list operations
   16     - name: dhcp
   17       description: Built-in DHCP server controls
   18     - name: filtering
   19       description: Rule-based filtering
   20     - name: global
   21       description: AdGuard Home server general settings and controls
   22     - name: i18n
   23       description: Application localization
   24     - name: install
   25       description: First-time install configuration handlers
   26     - name: log
   27       description: AdGuard Home query log
   28     - name: parental
   29       description: Blocking adult and explicit materials
   30     - name: safebrowsing
   31       description: Blocking malware/phishing sites
   32     - name: safesearch
   33       description: Enforce family-friendly results in search engines
   34     - name: stats
   35       description: AdGuard Home statistics
   36     - name: tls
   37       description: AdGuard Home HTTPS/DOH/DOT settings
   38     - name: mobileconfig
   39       description: Apple .mobileconfig
   40 
   41 paths:
   42     /status:
   43         get:
   44             tags:
   45                 - global
   46             operationId: status
   47             summary: Get DNS server current status and general settings
   48             responses:
   49                 "200":
   50                     description: OK
   51                     content:
   52                         application/json:
   53                             schema:
   54                                 $ref: "#/components/schemas/ServerStatus"
   55     /dns_info:
   56         get:
   57             tags:
   58                 - global
   59             operationId: dnsInfo
   60             summary: Get general DNS parameters
   61             responses:
   62                 "200":
   63                     description: OK
   64                     content:
   65                         application/json:
   66                             schema:
   67                                 $ref: "#/components/schemas/DNSConfig"
   68     /dns_config:
   69         post:
   70             tags:
   71                 - global
   72             operationId: dnsConfig
   73             summary: Set general DNS parameters
   74             requestBody:
   75                 content:
   76                     application/json:
   77                         schema:
   78                             $ref: "#/components/schemas/DNSConfig"
   79             responses:
   80                 "200":
   81                     description: OK
   82     /test_upstream_dns:
   83         post:
   84             tags:
   85                 - global
   86             operationId: testUpstreamDNS
   87             summary: Test upstream configuration
   88             requestBody:
   89                 content:
   90                     application/json:
   91                         schema:
   92                             $ref: "#/components/schemas/UpstreamsConfig"
   93                 description: Upstream configuration to be tested
   94             responses:
   95                 "200":
   96                     description: Status of testing each requested server, with "OK" meaning that
   97                         server works, any other text means an error.
   98                     content:
   99                         application/json:
  100                             examples:
  101                                 response:
  102                                     value:
  103                                         1.1.1.1: OK
  104                                         1.0.0.1: OK
  105                                         8.8.8.8: OK
  106                                         8.8.4.4: OK
  107                                         192.168.1.104:53535: Couldn't communicate with DNS server
  108     /version.json:
  109         post:
  110             tags:
  111                 - global
  112             operationId: getVersionJson
  113             summary: Gets information about the latest available version of AdGuard
  114             requestBody:
  115                 content:
  116                     application/json:
  117                         schema:
  118                             $ref: "#/components/schemas/GetVersionRequest"
  119                 required: true
  120             responses:
  121                 "200":
  122                     description: Version info.  If response message is empty, UI does not show a
  123                         version update message.
  124                     content:
  125                         application/json:
  126                             schema:
  127                                 $ref: "#/components/schemas/VersionInfo"
  128                 "500":
  129                     description: Cannot write answer
  130                 "502":
  131                     description: Cannot retrieve the version.json file contents
  132     /update:
  133         post:
  134             tags:
  135                 - global
  136             operationId: beginUpdate
  137             summary: Begin auto-upgrade procedure
  138             responses:
  139                 "200":
  140                     description: OK
  141                 "500":
  142                     description: Failed
  143     /querylog:
  144         get:
  145             tags:
  146                 - log
  147             operationId: queryLog
  148             summary: Get DNS server query log.
  149             parameters:
  150                 - name: older_than
  151                   in: query
  152                   description: Filter by older than
  153                   schema:
  154                       type: string
  155                 - name: offset
  156                   in: query
  157                   description:
  158                     Specify the ranking number of the first item on the page.
  159                     Even though it is possible to use "offset" and "older_than",
  160                     we recommend choosing one of them and sticking to it.
  161                   schema:
  162                       type: integer
  163                 - name: limit
  164                   in: query
  165                   description: Limit the number of records to be returned
  166                   schema:
  167                       type: integer
  168                 - name: search
  169                   in: query
  170                   description: Filter by domain name or client IP
  171                   schema:
  172                       type: string
  173                 - name: response_status
  174                   in: query
  175                   description: Filter by response status
  176                   schema:
  177                       type: string
  178                       enum:
  179                           - all
  180                           - filtered
  181                           - blocked
  182                           - blocked_safebrowsing
  183                           - blocked_parental
  184                           - whitelisted
  185                           - rewritten
  186                           - safe_search
  187                           - processed
  188             responses:
  189                 "200":
  190                     description: OK
  191                     content:
  192                         application/json:
  193                             schema:
  194                                 $ref: "#/components/schemas/QueryLog"
  195     /querylog_info:
  196         get:
  197             tags:
  198                 - log
  199             operationId: queryLogInfo
  200             summary: Get query log parameters
  201             responses:
  202                 "200":
  203                     description: OK
  204                     content:
  205                         application/json:
  206                             schema:
  207                                 $ref: "#/components/schemas/QueryLogConfig"
  208     /querylog_config:
  209         post:
  210             tags:
  211                 - log
  212             operationId: queryLogConfig
  213             summary: Set query log parameters
  214             requestBody:
  215                 content:
  216                     application/json:
  217                         schema:
  218                             $ref: "#/components/schemas/QueryLogConfig"
  219             responses:
  220                 "200":
  221                     description: OK
  222     /querylog_clear:
  223         post:
  224             tags:
  225                 - log
  226             operationId: querylogClear
  227             summary: Clear query log
  228             responses:
  229                 "200":
  230                     description: OK
  231     /stats:
  232         get:
  233             tags:
  234                 - stats
  235             operationId: stats
  236             summary: Get DNS server statistics
  237             responses:
  238                 "200":
  239                     description: Returns statistics data
  240                     content:
  241                         application/json:
  242                             schema:
  243                                 $ref: "#/components/schemas/Stats"
  244     /stats_reset:
  245         post:
  246             tags:
  247                 - stats
  248             operationId: statsReset
  249             summary: Reset all statistics to zeroes
  250             responses:
  251                 "200":
  252                     description: OK
  253     /stats_info:
  254         get:
  255             tags:
  256                 - stats
  257             operationId: statsInfo
  258             summary: Get statistics parameters
  259             responses:
  260                 "200":
  261                     description: OK
  262                     content:
  263                         application/json:
  264                             schema:
  265                                 $ref: "#/components/schemas/StatsConfig"
  266     /stats_config:
  267         post:
  268             tags:
  269                 - stats
  270             operationId: statsConfig
  271             summary: Set statistics parameters
  272             requestBody:
  273                 content:
  274                     application/json:
  275                         schema:
  276                             $ref: "#/components/schemas/StatsConfig"
  277             responses:
  278                 "200":
  279                     description: OK
  280     /tls/status:
  281         get:
  282             tags:
  283                 - tls
  284             operationId: tlsStatus
  285             summary: Returns TLS configuration and its status
  286             responses:
  287                 "200":
  288                     description: OK
  289                     content:
  290                         application/json:
  291                             schema:
  292                                 $ref: "#/components/schemas/TlsConfig"
  293     /tls/configure:
  294         post:
  295             tags:
  296                 - tls
  297             operationId: tlsConfigure
  298             summary: Updates current TLS configuration
  299             requestBody:
  300                 $ref: "#/components/requestBodies/TlsConfig"
  301             responses:
  302                 "200":
  303                     description: TLS configuration and its status
  304                     content:
  305                         application/json:
  306                             schema:
  307                                 $ref: "#/components/schemas/TlsConfig"
  308                 "400":
  309                     description: Invalid configuration or unavailable port
  310                 "500":
  311                     description: Error occurred while applying configuration
  312     /tls/validate:
  313         post:
  314             tags:
  315                 - tls
  316             operationId: tlsValidate
  317             summary: Checks if the current TLS configuration is valid
  318             requestBody:
  319                 $ref: "#/components/requestBodies/TlsConfig"
  320             responses:
  321                 "200":
  322                     description: TLS configuration and its status
  323                     content:
  324                         application/json:
  325                             schema:
  326                                 $ref: "#/components/schemas/TlsConfig"
  327                 "400":
  328                     description: Invalid configuration or unavailable port
  329     /dhcp/status:
  330         get:
  331             tags:
  332                 - dhcp
  333             operationId: dhcpStatus
  334             summary: Gets the current DHCP settings and status
  335             responses:
  336                 "200":
  337                     description: OK
  338                     content:
  339                         application/json:
  340                             schema:
  341                                 $ref: "#/components/schemas/DhcpStatus"
  342                 "501":
  343                     content:
  344                         application/json:
  345                             schema:
  346                                 $ref: "#/components/schemas/Error"
  347                     description: Not implemented (for example, on Windows).
  348     /dhcp/set_config:
  349         post:
  350             tags:
  351                 - dhcp
  352             operationId: dhcpSetConfig
  353             summary: Updates the current DHCP server configuration
  354             requestBody:
  355                 content:
  356                     application/json:
  357                         schema:
  358                             $ref: "#/components/schemas/DhcpConfig"
  359             responses:
  360                 "200":
  361                     description: OK
  362                 "501":
  363                     content:
  364                         application/json:
  365                             schema:
  366                                 $ref: "#/components/schemas/Error"
  367                     description: Not implemented (for example, on Windows).
  368     /dhcp/find_active_dhcp:
  369         post:
  370             tags:
  371                 - dhcp
  372             operationId: checkActiveDhcp
  373             summary: Searches for an active DHCP server on the network
  374             responses:
  375                 "200":
  376                     description: OK
  377                     content:
  378                         application/json:
  379                             schema:
  380                                 $ref: "#/components/schemas/DhcpSearchResult"
  381                 "501":
  382                     content:
  383                         application/json:
  384                             schema:
  385                                 $ref: "#/components/schemas/Error"
  386                     description: Not implemented (for example, on Windows).
  387     /dhcp/add_static_lease:
  388         post:
  389             tags:
  390                 - dhcp
  391             operationId: dhcpAddStaticLease
  392             summary: Adds a static lease
  393             requestBody:
  394                 $ref: "#/components/requestBodies/DhcpStaticLease"
  395             responses:
  396                 "200":
  397                     description: OK
  398                 "501":
  399                     content:
  400                         application/json:
  401                             schema:
  402                                 $ref: "#/components/schemas/Error"
  403                     description: Not implemented (for example, on Windows).
  404     /dhcp/remove_static_lease:
  405         post:
  406             tags:
  407                 - dhcp
  408             operationId: dhcpRemoveStaticLease
  409             summary: Removes a static lease
  410             requestBody:
  411                 $ref: "#/components/requestBodies/DhcpStaticLease"
  412             responses:
  413                 "200":
  414                     description: OK
  415                 "501":
  416                     content:
  417                         application/json:
  418                             schema:
  419                                 $ref: "#/components/schemas/Error"
  420                     description: Not implemented (for example, on Windows).
  421     /dhcp/reset:
  422         post:
  423             tags:
  424                 - dhcp
  425             operationId: dhcpReset
  426             summary: Reset DHCP configuration
  427             responses:
  428                 "200":
  429                     description: OK
  430                 "501":
  431                     content:
  432                         application/json:
  433                             schema:
  434                                 $ref: "#/components/schemas/Error"
  435                     description: Not implemented (for example, on Windows).
  436     /filtering/status:
  437         get:
  438             tags:
  439                 - filtering
  440             operationId: filteringStatus
  441             summary: Get filtering parameters
  442             responses:
  443                 "200":
  444                     description: OK
  445                     content:
  446                         application/json:
  447                             schema:
  448                                 $ref: "#/components/schemas/FilterStatus"
  449     /filtering/config:
  450         post:
  451             tags:
  452                 - filtering
  453             operationId: filteringConfig
  454             summary: Set filtering parameters
  455             requestBody:
  456                 content:
  457                     application/json:
  458                         schema:
  459                             $ref: "#/components/schemas/FilterConfig"
  460                 required: true
  461             responses:
  462                 "200":
  463                     description: OK
  464     /filtering/add_url:
  465         post:
  466             tags:
  467                 - filtering
  468             operationId: filteringAddURL
  469             summary: Add filter URL or an absolute file path
  470             requestBody:
  471                 content:
  472                     application/json:
  473                         schema:
  474                             $ref: "#/components/schemas/AddUrlRequest"
  475                 required: true
  476             responses:
  477                 "200":
  478                     description: OK
  479     /filtering/remove_url:
  480         post:
  481             tags:
  482                 - filtering
  483             operationId: filteringRemoveURL
  484             summary: Remove filter URL
  485             requestBody:
  486                 content:
  487                     application/json:
  488                         schema:
  489                             $ref: "#/components/schemas/RemoveUrlRequest"
  490                 required: true
  491             responses:
  492                 "200":
  493                     description: OK
  494     /filtering/set_url:
  495         post:
  496             tags:
  497                 - filtering
  498             operationId: filteringSetURL
  499             summary: Set URL parameters
  500             requestBody:
  501                 content:
  502                     application/json:
  503                         schema:
  504                             $ref: "#/components/schemas/FilterSetUrl"
  505             responses:
  506                 "200":
  507                     description: OK
  508     /filtering/refresh:
  509         post:
  510             tags:
  511                 - filtering
  512             operationId: filteringRefresh
  513             summary: >
  514                 Reload filtering rules from URLs
  515 
  516 
  517                 This might be needed if new URL was just added and you dont want to wait for automatic refresh to kick in.
  518 
  519 
  520                 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.
  521 
  522 
  523                 This should work as intended, a `force` parameter is offered as last-resort attempt to make filter lists fresh.
  524 
  525 
  526                 If you ever find yourself using `force` to make something work that otherwise wont, this is a bug and report it accordingly.
  527             requestBody:
  528                 content:
  529                     application/json:
  530                         schema:
  531                             $ref: "#/components/schemas/FilterRefreshRequest"
  532             responses:
  533                 "200":
  534                     description: OK
  535                     content:
  536                         application/json:
  537                             schema:
  538                                 $ref: "#/components/schemas/FilterRefreshResponse"
  539     /filtering/set_rules:
  540         post:
  541             tags:
  542                 - filtering
  543             operationId: filteringSetRules
  544             summary: Set user-defined filter rules
  545             requestBody:
  546                 content:
  547                     text/plain:
  548                         schema:
  549                             type: string
  550                             example: "@@||yandex.ru^|"
  551                 description: All filtering rules, one line per rule
  552             responses:
  553                 "200":
  554                     description: OK
  555     /filtering/check_host:
  556         get:
  557             tags:
  558                 - filtering
  559             operationId: filteringCheckHost
  560             summary: Check if host name is filtered
  561             parameters:
  562                 - name: name
  563                   in: query
  564                   description: Filter by host name
  565                   schema:
  566                       type: string
  567             responses:
  568                 "200":
  569                     description: OK
  570                     content:
  571                         application/json:
  572                             schema:
  573                                 $ref: "#/components/schemas/FilterCheckHostResponse"
  574     /safebrowsing/enable:
  575         post:
  576             tags:
  577                 - safebrowsing
  578             operationId: safebrowsingEnable
  579             summary: Enable safebrowsing
  580             responses:
  581                 "200":
  582                     description: OK
  583     /safebrowsing/disable:
  584         post:
  585             tags:
  586                 - safebrowsing
  587             operationId: safebrowsingDisable
  588             summary: Disable safebrowsing
  589             responses:
  590                 "200":
  591                     description: OK
  592     /safebrowsing/status:
  593         get:
  594             tags:
  595                 - safebrowsing
  596             operationId: safebrowsingStatus
  597             summary: Get safebrowsing status
  598             responses:
  599                 "200":
  600                     description: OK
  601                     content:
  602                         application/json:
  603                             examples:
  604                                 response:
  605                                     value:
  606                                         enabled: false
  607     /parental/enable:
  608         post:
  609             tags:
  610                 - parental
  611             operationId: parentalEnable
  612             summary: Enable parental filtering
  613             requestBody:
  614                 content:
  615                     text/plain:
  616                         schema:
  617                             type: string
  618                             enum:
  619                                 - EARLY_CHILDHOOD
  620                                 - YOUNG
  621                                 - TEEN
  622                                 - MATURE
  623                             example: sensitivity=TEEN
  624                 description: |
  625                     Age sensitivity for parental filtering,
  626                     EARLY_CHILDHOOD is 3
  627                     YOUNG is 10
  628                     TEEN is 13
  629                     MATURE is 17
  630                 required: true
  631             responses:
  632                 "200":
  633                     description: OK
  634     /parental/disable:
  635         post:
  636             tags:
  637                 - parental
  638             operationId: parentalDisable
  639             summary: Disable parental filtering
  640             responses:
  641                 "200":
  642                     description: OK
  643     /parental/status:
  644         get:
  645             tags:
  646                 - parental
  647             operationId: parentalStatus
  648             summary: Get parental filtering status
  649             responses:
  650                 "200":
  651                     description: OK
  652                     content:
  653                         application/json:
  654                             examples:
  655                                 response:
  656                                     value:
  657                                         enabled: true
  658                                         sensitivity: 13
  659     /safesearch/enable:
  660         post:
  661             tags:
  662                 - safesearch
  663             operationId: safesearchEnable
  664             summary: Enable safesearch
  665             responses:
  666                 "200":
  667                     description: OK
  668     /safesearch/disable:
  669         post:
  670             tags:
  671                 - safesearch
  672             operationId: safesearchDisable
  673             summary: Disable safesearch
  674             responses:
  675                 "200":
  676                     description: OK
  677     /safesearch/status:
  678         get:
  679             tags:
  680                 - safesearch
  681             operationId: safesearchStatus
  682             summary: Get safesearch status
  683             responses:
  684                 "200":
  685                     description: OK
  686                     content:
  687                         application/json:
  688                             examples:
  689                                 response:
  690                                     value:
  691                                         enabled: false
  692     /clients:
  693         get:
  694             tags:
  695                 - clients
  696             operationId: clientsStatus
  697             summary: Get information about configured clients
  698             responses:
  699                 "200":
  700                     description: OK
  701                     content:
  702                         application/json:
  703                             schema:
  704                                 $ref: "#/components/schemas/Clients"
  705     /clients/add:
  706         post:
  707             tags:
  708                 - clients
  709             operationId: clientsAdd
  710             summary: Add a new client
  711             requestBody:
  712                 content:
  713                     application/json:
  714                         schema:
  715                             $ref: "#/components/schemas/Client"
  716                 required: true
  717             responses:
  718                 "200":
  719                     description: OK
  720     /clients/delete:
  721         post:
  722             tags:
  723                 - clients
  724             operationId: clientsDelete
  725             summary: Remove a client
  726             requestBody:
  727                 content:
  728                     application/json:
  729                         schema:
  730                             $ref: "#/components/schemas/ClientDelete"
  731                 required: true
  732             responses:
  733                 "200":
  734                     description: OK
  735     /clients/update:
  736         post:
  737             tags:
  738                 - clients
  739             operationId: clientsUpdate
  740             summary: Update client information
  741             requestBody:
  742                 content:
  743                     application/json:
  744                         schema:
  745                             $ref: "#/components/schemas/ClientUpdate"
  746                 required: true
  747             responses:
  748                 "200":
  749                     description: OK
  750     /clients/find:
  751         get:
  752             tags:
  753                 - clients
  754             operationId: clientsFind
  755             summary: Get information about selected clients by their IP address
  756             parameters:
  757                 - name: ip0
  758                   in: query
  759                   description: Filter by IP address
  760                   schema:
  761                       type: string
  762             responses:
  763                 "200":
  764                     description: OK
  765                     content:
  766                         application/json:
  767                             schema:
  768                                 $ref: "#/components/schemas/ClientsFindResponse"
  769     /blocked_services/list:
  770         get:
  771             tags:
  772                 - blocked_services
  773             operationId: blockedServicesList
  774             summary: Get blocked services list
  775             responses:
  776                 "200":
  777                     description: OK
  778                     content:
  779                         application/json:
  780                             schema:
  781                                 $ref: "#/components/schemas/BlockedServicesArray"
  782     /blocked_services/set:
  783         post:
  784             tags:
  785                 - blocked_services
  786             operationId: blockedServicesSet
  787             summary: Set blocked services list
  788             requestBody:
  789                 content:
  790                     application/json:
  791                         schema:
  792                             $ref: "#/components/schemas/BlockedServicesArray"
  793             responses:
  794                 "200":
  795                     description: OK
  796     /rewrite/list:
  797         get:
  798             tags:
  799                 - rewrite
  800             operationId: rewriteList
  801             summary: Get list of Rewrite rules
  802             responses:
  803                 "200":
  804                     description: OK
  805                     content:
  806                         application/json:
  807                             schema:
  808                                 $ref: "#/components/schemas/RewriteList"
  809     /rewrite/add:
  810         post:
  811             tags:
  812                 - rewrite
  813             operationId: rewriteAdd
  814             summary: Add a new Rewrite rule
  815             requestBody:
  816                 $ref: "#/components/requestBodies/RewriteEntry"
  817             responses:
  818                 "200":
  819                     description: OK
  820     /rewrite/delete:
  821         post:
  822             tags:
  823                 - rewrite
  824             operationId: rewriteDelete
  825             summary: Remove a Rewrite rule
  826             requestBody:
  827                 $ref: "#/components/requestBodies/RewriteEntry"
  828             responses:
  829                 "200":
  830                     description: OK
  831     /i18n/change_language:
  832         post:
  833             tags:
  834                 - i18n
  835             operationId: changeLanguage
  836             summary: Change current language. Argument must be an ISO 639-1 two-letter code
  837             requestBody:
  838                 content:
  839                     text/plain:
  840                         schema:
  841                             type: string
  842                             example: en
  843                 description: New language. It must be known to the server and must be an ISO 639-1
  844                     two-letter code
  845             responses:
  846                 "200":
  847                     description: OK
  848     /i18n/current_language:
  849         get:
  850             tags:
  851                 - i18n
  852             operationId: currentLanguage
  853             summary: Get currently set language. Result is ISO 639-1 two-letter code. Empty
  854                 result means default language.
  855             responses:
  856                 "200":
  857                     description: OK
  858                     content:
  859                         text/plain:
  860                             examples:
  861                                 response:
  862                                     value: en
  863     /install/get_addresses:
  864         get:
  865             tags:
  866                 - install
  867             operationId: installGetAddresses
  868             summary: Gets the network interfaces information.
  869             responses:
  870                 "200":
  871                     description: OK
  872                     content:
  873                         application/json:
  874                             schema:
  875                                 $ref: "#/components/schemas/AddressesInfo"
  876     /install/check_config:
  877         post:
  878             tags:
  879                 - install
  880             operationId: installCheckConfig
  881             summary: Checks configuration
  882             requestBody:
  883                 content:
  884                     application/json:
  885                         schema:
  886                             $ref: "#/components/schemas/CheckConfigRequest"
  887                 description: Configuration to be checked
  888                 required: true
  889             responses:
  890                 "200":
  891                     description: OK
  892                     content:
  893                         application/json:
  894                             schema:
  895                                 $ref: "#/components/schemas/CheckConfigResponse"
  896                 "400":
  897                     description: Failed to parse JSON or cannot listen on the specified address
  898     /install/configure:
  899         post:
  900             tags:
  901                 - install
  902             operationId: installConfigure
  903             summary: Applies the initial configuration.
  904             requestBody:
  905                 content:
  906                     application/json:
  907                         schema:
  908                             $ref: "#/components/schemas/InitialConfiguration"
  909                 description: Initial configuration JSON
  910                 required: true
  911             responses:
  912                 "200":
  913                     description: OK
  914                 "400":
  915                     description: Failed to parse initial configuration or cannot listen to the
  916                         specified addresses
  917                 "500":
  918                     description: Cannot start the DNS server
  919     /login:
  920         post:
  921             tags:
  922                 - global
  923             operationId: login
  924             summary: Perform administrator log-in
  925             requestBody:
  926                 content:
  927                     application/json:
  928                         schema:
  929                             $ref: "#/components/schemas/Login"
  930                 required: true
  931             responses:
  932                 "200":
  933                     description: OK
  934     /logout:
  935         get:
  936             tags:
  937                 - global
  938             operationId: logout
  939             summary: Perform administrator log-out
  940             responses:
  941                 "302":
  942                     description: OK
  943     /profile:
  944         get:
  945             tags:
  946                 - global
  947             operationId: getProfile
  948             summary: ""
  949             responses:
  950                 "200":
  951                     description: OK
  952                     content:
  953                         application/json:
  954                             schema:
  955                                 $ref: "#/components/schemas/ProfileInfo"
  956     /apple/doh.mobileconfig:
  957         get:
  958             tags:
  959                 - mobileconfig
  960                 - global
  961             operationId: mobileConfigDoH
  962             summary: Get DNS over HTTPS .mobileconfig
  963             responses:
  964                 "200":
  965                     description: DNS over HTTPS plist file
  966 
  967     /apple/dot.mobileconfig:
  968         get:
  969             tags:
  970                 - mobileconfig
  971                 - global
  972             operationId: mobileConfigDoT
  973             summary: Get TLS over TLS .mobileconfig
  974             responses:
  975                 "200":
  976                     description: DNS over TLS plist file
  977 
  978 components:
  979     requestBodies:
  980         TlsConfig:
  981             content:
  982                 application/json:
  983                     schema:
  984                         $ref: "#/components/schemas/TlsConfig"
  985             description: TLS configuration JSON
  986             required: true
  987         DhcpStaticLease:
  988             content:
  989                 application/json:
  990                     schema:
  991                         $ref: "#/components/schemas/DhcpStaticLease"
  992             required: true
  993         RewriteEntry:
  994             content:
  995                 application/json:
  996                     schema:
  997                         $ref: "#/components/schemas/RewriteEntry"
  998             required: true
  999     schemas:
 1000         ServerStatus:
 1001             type: object
 1002             description: AdGuard Home server status and configuration
 1003             required:
 1004                 - dns_address
 1005                 - dns_port
 1006                 - protection_enabled
 1007                 - querylog_enabled
 1008                 - running
 1009                 - bootstrap_dns
 1010                 - upstream_dns
 1011                 - version
 1012                 - language
 1013             properties:
 1014                 dns_address:
 1015                     type: string
 1016                     example: 127.0.0.1
 1017                 dns_port:
 1018                     type: integer
 1019                     format: int32
 1020                     example: 53
 1021                     minimum: 1
 1022                     maximum: 65535
 1023                 protection_enabled:
 1024                     type: boolean
 1025                 dhcp_available:
 1026                     type: boolean
 1027                 querylog_enabled:
 1028                     type: boolean
 1029                 running:
 1030                     type: boolean
 1031                 version:
 1032                     type: string
 1033                     example: "0.1"
 1034                 language:
 1035                     type: string
 1036                     example: en
 1037         DNSConfig:
 1038             type: object
 1039             description: Query log configuration
 1040             properties:
 1041                 bootstrap_dns:
 1042                     type: array
 1043                     description: Bootstrap servers, port is optional after colon. Empty value will
 1044                         reset it to default values
 1045                     items:
 1046                         type: string
 1047                     example:
 1048                         - 8.8.8.8:53
 1049                         - 1.1.1.1:53
 1050                 upstream_dns:
 1051                     type: array
 1052                     description: Upstream servers, port is optional after colon. Empty value will
 1053                         reset it to default values
 1054                     items:
 1055                         type: string
 1056                     example:
 1057                         - tls://1.1.1.1
 1058                         - tls://1.0.0.1
 1059                 upstream_dns_file:
 1060                     type: string
 1061                 protection_enabled:
 1062                     type: boolean
 1063                 dhcp_available:
 1064                     type: boolean
 1065                 ratelimit:
 1066                     type: integer
 1067                 blocking_mode:
 1068                     type: string
 1069                     enum:
 1070                         - default
 1071                         - refused
 1072                         - nxdomain
 1073                         - null_ip
 1074                         - custom_ip
 1075                 blocking_ipv4:
 1076                     type: string
 1077                 blocking_ipv6:
 1078                     type: string
 1079                 edns_cs_enabled:
 1080                     type: boolean
 1081                 dnssec_enabled:
 1082                     type: boolean
 1083                 cache_size:
 1084                     type: integer
 1085                 cache_ttl_min:
 1086                     type: integer
 1087                 cache_ttl_max:
 1088                     type: integer
 1089                 upstream_mode:
 1090                     enum:
 1091                         - ""
 1092                         - parallel
 1093                         - fastest_addr
 1094         UpstreamsConfig:
 1095             type: object
 1096             description: Upstreams configuration
 1097             required:
 1098                 - bootstrap_dns
 1099                 - upstream_dns
 1100             properties:
 1101                 bootstrap_dns:
 1102                     type: array
 1103                     description: Bootstrap servers, port is optional after colon. Empty value will
 1104                         reset it to default values
 1105                     items:
 1106                         type: string
 1107                     example:
 1108                         - 8.8.8.8:53
 1109                         - 1.1.1.1:53
 1110                 upstream_dns:
 1111                     type: array
 1112                     description: Upstream servers, port is optional after colon. Empty value will
 1113                         reset it to default values
 1114                     items:
 1115                         type: string
 1116                     example:
 1117                         - tls://1.1.1.1
 1118                         - tls://1.0.0.1
 1119         Filter:
 1120             type: object
 1121             description: Filter subscription info
 1122             required:
 1123                 - enabled
 1124                 - id
 1125                 - lastUpdated
 1126                 - name
 1127                 - rulesCount
 1128                 - url
 1129             properties:
 1130                 enabled:
 1131                     type: boolean
 1132                 id:
 1133                     type: integer
 1134                     example: 1234
 1135                 lastUpdated:
 1136                     type: string
 1137                     format: date-time
 1138                     example: 2018-10-30T12:18:57+03:00
 1139                 name:
 1140                     type: string
 1141                     example: AdGuard Simplified Domain Names filter
 1142                 rulesCount:
 1143                     type: integer
 1144                     example: 5912
 1145                 url:
 1146                     type: string
 1147                     example: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
 1148         FilterStatus:
 1149             type: object
 1150             description: Filtering settings
 1151             properties:
 1152                 enabled:
 1153                     type: boolean
 1154                 interval:
 1155                     type: integer
 1156                 filters:
 1157                     type: array
 1158                     items:
 1159                         $ref: "#/components/schemas/Filter"
 1160                 user_rules:
 1161                     type: array
 1162                     items:
 1163                         type: string
 1164         FilterConfig:
 1165             type: object
 1166             description: Filtering settings
 1167             properties:
 1168                 enabled:
 1169                     type: boolean
 1170                 interval:
 1171                     type: integer
 1172         FilterSetUrl:
 1173             type: object
 1174             description: Filtering URL settings
 1175             properties:
 1176                 data:
 1177                     properties:
 1178                         enabled:
 1179                             type: boolean
 1180                         name:
 1181                             type: string
 1182                         url:
 1183                             type: string
 1184                     type: object
 1185                 url:
 1186                     type: string
 1187                 whitelist:
 1188                     type: boolean
 1189         FilterRefreshRequest:
 1190             type: object
 1191             description: Refresh Filters request data
 1192             properties:
 1193                 whitelist:
 1194                     type: boolean
 1195         FilterCheckHostResponse:
 1196             type: object
 1197             description: Check Host Result
 1198             properties:
 1199                 reason:
 1200                     type: string
 1201                     description: DNS filter status
 1202                     enum:
 1203                         - NotFilteredNotFound
 1204                         - NotFilteredWhiteList
 1205                         - NotFilteredError
 1206                         - FilteredBlackList
 1207                         - FilteredSafeBrowsing
 1208                         - FilteredParental
 1209                         - FilteredInvalid
 1210                         - FilteredSafeSearch
 1211                         - FilteredBlockedService
 1212                         - ReasonRewrite
 1213                 filter_id:
 1214                     type: integer
 1215                 rule:
 1216                     type: string
 1217                     example: "||example.org^"
 1218                     description: Filtering rule applied to the request (if any)
 1219                 service_name:
 1220                     type: string
 1221                     description: Set if reason=FilteredBlockedService
 1222                 cname:
 1223                     type: string
 1224                     description: Set if reason=ReasonRewrite
 1225                 ip_addrs:
 1226                     type: array
 1227                     items:
 1228                         type: string
 1229                     description: Set if reason=ReasonRewrite
 1230         FilterRefreshResponse:
 1231             type: object
 1232             description: /filtering/refresh response data
 1233             properties:
 1234                 updated:
 1235                     type: integer
 1236         GetVersionRequest:
 1237             type: object
 1238             description: /version.json request data
 1239             properties:
 1240                 recheck_now:
 1241                     description: If false, server will check for a new version data only once in
 1242                         several hours
 1243                     type: boolean
 1244         VersionInfo:
 1245             type: object
 1246             description: Information about the latest available version of AdGuard Home
 1247             properties:
 1248                 new_version:
 1249                     type: string
 1250                     example: v0.9
 1251                 announcement:
 1252                     type: string
 1253                     example: AdGuard Home v0.9 is now available!
 1254                 announcement_url:
 1255                     type: string
 1256                     example: https://github.com/AdguardTeam/AdGuardHome/releases/tag/v0.9
 1257                 can_autoupdate:
 1258                     type: boolean
 1259         Stats:
 1260             type: object
 1261             description: Server statistics data
 1262             properties:
 1263                 time_units:
 1264                     type: string
 1265                     description: Time units (hours | days)
 1266                     example: hours
 1267                 num_dns_queries:
 1268                     type: integer
 1269                     description: Total number of DNS queries
 1270                     example: 123
 1271                 num_blocked_filtering:
 1272                     type: integer
 1273                     description: Number of requests blocked by filtering rules
 1274                     example: 50
 1275                 num_replaced_safebrowsing:
 1276                     type: integer
 1277                     description: Number of requests blocked by safebrowsing module
 1278                     example: 5
 1279                 num_replaced_safesearch:
 1280                     type: integer
 1281                     description: Number of requests blocked by safesearch module
 1282                     example: 5
 1283                 num_replaced_parental:
 1284                     type: integer
 1285                     description: Number of blocked adult websites
 1286                     example: 15
 1287                 avg_processing_time:
 1288                     type: number
 1289                     format: float
 1290                     description: Average time in milliseconds on processing a DNS
 1291                     example: 0.34
 1292                 top_queried_domains:
 1293                     type: array
 1294                     items:
 1295                         $ref: "#/components/schemas/TopArrayEntry"
 1296                 top_clients:
 1297                     type: array
 1298                     items:
 1299                         $ref: "#/components/schemas/TopArrayEntry"
 1300                 top_blocked_domains:
 1301                     type: array
 1302                     items:
 1303                         $ref: "#/components/schemas/TopArrayEntry"
 1304                 dns_queries:
 1305                     type: array
 1306                     items:
 1307                         type: integer
 1308                 blocked_filtering:
 1309                     type: array
 1310                     items:
 1311                         type: integer
 1312                 replaced_safebrowsing:
 1313                     type: array
 1314                     items:
 1315                         type: integer
 1316                 replaced_parental:
 1317                     type: array
 1318                     items:
 1319                         type: integer
 1320         TopArrayEntry:
 1321             type: object
 1322             description: Represent the number of hits per key (domain or client IP)
 1323             properties:
 1324                 domain_or_ip:
 1325                     type: integer
 1326         StatsConfig:
 1327             type: object
 1328             description: Statistics configuration
 1329             properties:
 1330                 interval:
 1331                     type: integer
 1332                     description: Time period to keep data (1 | 7 | 30 | 90)
 1333         DhcpConfig:
 1334             type: object
 1335             properties:
 1336                 enabled:
 1337                     type: boolean
 1338                 interface_name:
 1339                     type: string
 1340                 v4:
 1341                     $ref: "#/components/schemas/DhcpConfigV4"
 1342                 v6:
 1343                     $ref: "#/components/schemas/DhcpConfigV6"
 1344         DhcpConfigV4:
 1345             type: object
 1346             properties:
 1347                 gateway_ip:
 1348                     type: string
 1349                     example: 192.168.1.1
 1350                 subnet_mask:
 1351                     type: string
 1352                     example: 255.255.255.0
 1353                 range_start:
 1354                     type: string
 1355                     example: 192.168.1.2
 1356                 range_end:
 1357                     type: string
 1358                     example: 192.168.10.50
 1359                 lease_duration:
 1360                     type: integer
 1361         DhcpConfigV6:
 1362             type: object
 1363             properties:
 1364                 range_start:
 1365                     type: string
 1366                 lease_duration:
 1367                     type: integer
 1368         DhcpLease:
 1369             type: object
 1370             description: DHCP lease information
 1371             required:
 1372                 - mac
 1373                 - ip
 1374                 - hostname
 1375                 - expires
 1376             properties:
 1377                 mac:
 1378                     type: string
 1379                     example: 00:11:09:b3:b3:b8
 1380                 ip:
 1381                     type: string
 1382                     example: 192.168.1.22
 1383                 hostname:
 1384                     type: string
 1385                     example: dell
 1386                 expires:
 1387                     type: string
 1388                     example: "2017-07-21T17:32:28Z"
 1389         DhcpStaticLease:
 1390             type: object
 1391             description: DHCP static lease information
 1392             required:
 1393                 - mac
 1394                 - ip
 1395                 - hostname
 1396                 - expires
 1397             properties:
 1398                 mac:
 1399                     type: string
 1400                     example: 00:11:09:b3:b3:b8
 1401                 ip:
 1402                     type: string
 1403                     example: 192.168.1.22
 1404                 hostname:
 1405                     type: string
 1406                     example: dell
 1407         DhcpStatus:
 1408             type: object
 1409             description: Built-in DHCP server configuration and status
 1410             required:
 1411                 - config
 1412                 - leases
 1413             properties:
 1414                 enabled:
 1415                     type: boolean
 1416                 interface_name:
 1417                     type: string
 1418                 v4:
 1419                     $ref: "#/components/schemas/DhcpConfigV4"
 1420                 v6:
 1421                     $ref: "#/components/schemas/DhcpConfigV6"
 1422                 leases:
 1423                     type: array
 1424                     items:
 1425                         $ref: "#/components/schemas/DhcpLease"
 1426                 static_leases:
 1427                     type: array
 1428                     items:
 1429                         $ref: "#/components/schemas/DhcpStaticLease"
 1430 
 1431         DhcpSearchResult:
 1432             type: object
 1433             description: Information about a DHCP server discovered in the current network
 1434             properties:
 1435                 v4:
 1436                     $ref: "#/components/schemas/DhcpSearchV4"
 1437                 v6:
 1438                     $ref: "#/components/schemas/DhcpSearchV6"
 1439 
 1440         DhcpSearchV4:
 1441             type: object
 1442             properties:
 1443                 other_server:
 1444                     $ref: "#/components/schemas/DhcpSearchResultOtherServer"
 1445                 static_ip:
 1446                     $ref: "#/components/schemas/DhcpSearchResultStaticIP"
 1447 
 1448         DhcpSearchV6:
 1449             type: object
 1450             properties:
 1451                 other_server:
 1452                     $ref: "#/components/schemas/DhcpSearchResultOtherServer"
 1453 
 1454         DhcpSearchResultOtherServer:
 1455             type: object
 1456             properties:
 1457                 found:
 1458                     type: string
 1459                     description: yes|no|error
 1460                     example: no
 1461                 error:
 1462                     type: string
 1463                     description: Set if found=error
 1464                     example: ""
 1465 
 1466         DhcpSearchResultStaticIP:
 1467             type: object
 1468             properties:
 1469                 static:
 1470                     type: string
 1471                     description: yes|no|error
 1472                     example: yes
 1473                 ip:
 1474                     type: string
 1475                     description: Set if static=no
 1476                     example: ""
 1477 
 1478         DnsAnswer:
 1479             type: object
 1480             description: DNS answer section
 1481             properties:
 1482                 ttl:
 1483                     type: integer
 1484                     example: 55
 1485                 type:
 1486                     type: string
 1487                     example: A
 1488                 value:
 1489                     type: string
 1490                     example: 217.69.139.201
 1491         DnsQuestion:
 1492             type: object
 1493             description: DNS question section
 1494             properties:
 1495                 class:
 1496                     type: string
 1497                     example: IN
 1498                 host:
 1499                     type: string
 1500                     example: example.org
 1501                 type:
 1502                     type: string
 1503                     example: A
 1504         AddUrlRequest:
 1505             type: object
 1506             description: /add_url request data
 1507             properties:
 1508                 name:
 1509                     type: string
 1510                 url:
 1511                     description: URL or an absolute path to the file containing filtering rules
 1512                     type: string
 1513                     example: https://filters.adtidy.org/windows/filters/15.txt
 1514                 whitelist:
 1515                     type: boolean
 1516         RemoveUrlRequest:
 1517             type: object
 1518             description: /remove_url request data
 1519             properties:
 1520                 url:
 1521                     description: Previously added URL containing filtering rules
 1522                     type: string
 1523                     example: https://filters.adtidy.org/windows/filters/15.txt
 1524         QueryLogItem:
 1525             type: object
 1526             description: Query log item
 1527             properties:
 1528                 answer:
 1529                     type: array
 1530                     items:
 1531                         $ref: "#/components/schemas/DnsAnswer"
 1532                 original_answer:
 1533                     type: array
 1534                     description: Answer from upstream server (optional)
 1535                     items:
 1536                         $ref: "#/components/schemas/DnsAnswer"
 1537                 upstream:
 1538                     type: string
 1539                     description: Upstream URL starting with tcp://, tls://, https://, or with an IP address
 1540                 answer_dnssec:
 1541                     type: boolean
 1542                 client:
 1543                     type: string
 1544                     example: 192.168.0.1
 1545                 client_proto:
 1546                     enum:
 1547                         - dot
 1548                         - doh
 1549                         - doq
 1550                         - ""
 1551                 elapsedMs:
 1552                     type: string
 1553                     example: "54.023928"
 1554                 question:
 1555                     $ref: "#/components/schemas/DnsQuestion"
 1556                 filterId:
 1557                     type: integer
 1558                     example: 123123
 1559                     description: In case if there's a rule applied to this DNS request, this is ID of
 1560                         the filter that rule belongs to.
 1561                 rule:
 1562                     type: string
 1563                     example: "||example.org^"
 1564                     description: Filtering rule applied to the request (if any)
 1565                 reason:
 1566                     type: string
 1567                     description: DNS filter status
 1568                     enum:
 1569                         - NotFilteredNotFound
 1570                         - NotFilteredWhiteList
 1571                         - NotFilteredError
 1572                         - FilteredBlackList
 1573                         - FilteredSafeBrowsing
 1574                         - FilteredParental
 1575                         - FilteredInvalid
 1576                         - FilteredSafeSearch
 1577                         - FilteredBlockedService
 1578                         - ReasonRewrite
 1579                 service_name:
 1580                     type: string
 1581                     description: Set if reason=FilteredBlockedService
 1582                 status:
 1583                     type: string
 1584                     description: DNS response status
 1585                     example: NOERROR
 1586                 time:
 1587                     type: string
 1588                     description: DNS request processing start time
 1589                     example: 2018-11-26T00:02:41+03:00
 1590         QueryLog:
 1591             type: object
 1592             description: Query log
 1593             properties:
 1594                 oldest:
 1595                     type: string
 1596                     example: 2018-11-26T00:02:41+03:00
 1597                 data:
 1598                     type: array
 1599                     items:
 1600                         $ref: "#/components/schemas/QueryLogItem"
 1601         QueryLogConfig:
 1602             type: object
 1603             description: Query log configuration
 1604             properties:
 1605                 enabled:
 1606                     type: boolean
 1607                     description: Is query log enabled
 1608                 interval:
 1609                     type: integer
 1610                     description: Time period to keep data (1 | 7 | 30 | 90)
 1611                 anonymize_client_ip:
 1612                     type: boolean
 1613                     description: Anonymize clients' IP addresses
 1614         TlsConfig:
 1615             type: object
 1616             description: TLS configuration settings and status
 1617             properties:
 1618                 enabled:
 1619                     type: boolean
 1620                     example: "true"
 1621                     description: enabled is the encryption (DOT/DOH/HTTPS) status
 1622                 server_name:
 1623                     type: string
 1624                     example: example.org
 1625                     description: server_name is the hostname of your HTTPS/TLS server
 1626                 force_https:
 1627                     type: boolean
 1628                     example: "true"
 1629                     description: if true, forces HTTP->HTTPS redirect
 1630                 port_https:
 1631                     type: integer
 1632                     format: int32
 1633                     example: 443
 1634                     description: HTTPS port. If 0, HTTPS will be disabled.
 1635                 port_dns_over_tls:
 1636                     type: integer
 1637                     format: int32
 1638                     example: 853
 1639                     description: DNS-over-TLS port. If 0, DOT will be disabled.
 1640                 port_dns_over_quic:
 1641                     type: integer
 1642                     format: int32
 1643                     example: 784
 1644                     description: DNS-over-QUIC port. If 0, DOQ will be disabled.
 1645                 certificate_chain:
 1646                     type: string
 1647                     description: Base64 string with PEM-encoded certificates chain
 1648                 private_key:
 1649                     type: string
 1650                     description: Base64 string with PEM-encoded private key
 1651                 certificate_path:
 1652                     type: string
 1653                     description: Path to certificate file
 1654                 private_key_path:
 1655                     type: string
 1656                     description: Path to private key file
 1657                 valid_cert:
 1658                     type: boolean
 1659                     example: "true"
 1660                     description: valid_cert is true if the specified certificates chain is a valid
 1661                         chain of X509 certificates
 1662                 valid_chain:
 1663                     type: boolean
 1664                     example: "true"
 1665                     description: valid_chain is true if the specified certificates chain is verified
 1666                         and issued by a known CA
 1667                 subject:
 1668                     type: string
 1669                     example: CN=example.org
 1670                     description: subject is the subject of the first certificate in the chain
 1671                 issuer:
 1672                     type: string
 1673                     example: CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US
 1674                     description: issuer is the issuer of the first certificate in the chain
 1675                 not_before:
 1676                     type: string
 1677                     example: 2019-01-31T10:47:32Z
 1678                     description: not_before is the NotBefore field of the first certificate in the
 1679                         chain
 1680                 not_after:
 1681                     type: string
 1682                     example: 2019-05-01T10:47:32Z
 1683                     description: not_after is the NotAfter field of the first certificate in the chain
 1684                 dns_names:
 1685                     type: array
 1686                     items:
 1687                         type: string
 1688                     description: dns_names is the value of SubjectAltNames field of the first
 1689                         certificate in the chain
 1690                     example:
 1691                         - "*.example.org"
 1692                 valid_key:
 1693                     type: boolean
 1694                     example: "true"
 1695                     description: valid_key is true if the key is a valid private key
 1696                 key_type:
 1697                     type: string
 1698                     example: RSA
 1699                     description: key_type is either RSA or ECDSA
 1700                 warning_validation:
 1701                     type: string
 1702                     example: You have specified an empty certificate
 1703                     description: warning_validation is a validation warning message with the issue
 1704                         description
 1705                 valid_pair:
 1706                     type: boolean
 1707                     example: "true"
 1708                     description: valid_pair is true if both certificate and private key are correct
 1709         NetInterface:
 1710             type: object
 1711             description: Network interface info
 1712             properties:
 1713                 flags:
 1714                     type: string
 1715                     example: up|broadcast|multicast
 1716                 hardware_address:
 1717                     type: string
 1718                     example: 52:54:00:11:09:ba
 1719                 name:
 1720                     type: string
 1721                     example: eth0
 1722                 ipv4_addresses:
 1723                     type: array
 1724                     items:
 1725                         type: string
 1726                 ipv6_addresses:
 1727                     type: array
 1728                     items:
 1729                         type: string
 1730                 gateway_ip:
 1731                     type: string
 1732         AddressInfo:
 1733             type: object
 1734             description: Port information
 1735             properties:
 1736                 ip:
 1737                     type: string
 1738                     example: 127.0.0.1
 1739                 port:
 1740                     type: integer
 1741                     format: int32
 1742                     example: 53
 1743         AddressesInfo:
 1744             type: object
 1745             description: AdGuard Home addresses configuration
 1746             properties:
 1747                 dns_port:
 1748                     type: integer
 1749                     format: int32
 1750                     example: 53
 1751                 web_port:
 1752                     type: integer
 1753                     format: int32
 1754                     example: 80
 1755                 interfaces:
 1756                     type: object
 1757                     description: Network interfaces dictionary (key is the interface name)
 1758                     additionalProperties:
 1759                         $ref: "#/components/schemas/NetInterface"
 1760         ProfileInfo:
 1761             type: object
 1762             description: Information about the current user
 1763             properties:
 1764                 name:
 1765                     type: string
 1766         Client:
 1767             type: object
 1768             description: Client information
 1769             properties:
 1770                 name:
 1771                     type: string
 1772                     description: Name
 1773                     example: localhost
 1774                 ids:
 1775                     type: array
 1776                     description: IP, CIDR or MAC address
 1777                     items:
 1778                         type: string
 1779                 use_global_settings:
 1780                     type: boolean
 1781                 filtering_enabled:
 1782                     type: boolean
 1783                 parental_enabled:
 1784                     type: boolean
 1785                 safebrowsing_enabled:
 1786                     type: boolean
 1787                 safesearch_enabled:
 1788                     type: boolean
 1789                 use_global_blocked_services:
 1790                     type: boolean
 1791                 blocked_services:
 1792                     type: array
 1793                     items:
 1794                         type: string
 1795                 upstreams:
 1796                     type: array
 1797                     items:
 1798                         type: string
 1799         ClientAuto:
 1800             type: object
 1801             description: Auto-Client information
 1802             properties:
 1803                 ip:
 1804                     type: string
 1805                     description: IP address
 1806                     example: 127.0.0.1
 1807                 name:
 1808                     type: string
 1809                     description: Name
 1810                     example: localhost
 1811                 source:
 1812                     type: string
 1813                     description: The source of this information
 1814                     example: etc/hosts
 1815         ClientUpdate:
 1816             type: object
 1817             description: Client update request
 1818             properties:
 1819                 name:
 1820                     type: string
 1821                 data:
 1822                     $ref: "#/components/schemas/Client"
 1823         ClientDelete:
 1824             type: object
 1825             description: Client delete request
 1826             properties:
 1827                 name:
 1828                     type: string
 1829         ClientsFindResponse:
 1830             type: array
 1831             description: Response to clients find operation
 1832             items:
 1833                 $ref: "#/components/schemas/ClientsFindEntry"
 1834         ClientsFindEntry:
 1835             type: object
 1836             properties:
 1837                 1.2.3.4:
 1838                     items:
 1839                         $ref: "#/components/schemas/ClientFindSubEntry"
 1840 
 1841         ClientFindSubEntry:
 1842             type: object
 1843             properties:
 1844                 name:
 1845                     type: string
 1846                     description: Name
 1847                     example: localhost
 1848                 ids:
 1849                     type: array
 1850                     description: IP, CIDR or MAC address
 1851                     items:
 1852                         type: string
 1853                 use_global_settings:
 1854                     type: boolean
 1855                 filtering_enabled:
 1856                     type: boolean
 1857                 parental_enabled:
 1858                     type: boolean
 1859                 safebrowsing_enabled:
 1860                     type: boolean
 1861                 safesearch_enabled:
 1862                     type: boolean
 1863                 use_global_blocked_services:
 1864                     type: boolean
 1865                 blocked_services:
 1866                     type: array
 1867                     items:
 1868                         type: string
 1869                 upstreams:
 1870                     type: array
 1871                     items:
 1872                         type: string
 1873                 whois_info:
 1874                     type: array
 1875                     items:
 1876                         $ref: "#/components/schemas/WhoisInfo"
 1877                 disallowed:
 1878                     type: boolean
 1879                     description: >
 1880                         Whether the client's IP is blocked or not.
 1881                 disallowed_rule:
 1882                     type: string
 1883                     description: >
 1884                         The rule due to which the client is disallowed.
 1885                         If `disallowed` is `true`, and this string is empty - it means that
 1886                         the client IP is disallowed by the "allowed IP list", i.e. it is not included in allowed list.
 1887 
 1888         WhoisInfo:
 1889             type: object
 1890             properties:
 1891                 key:
 1892                     type: string
 1893 
 1894         Clients:
 1895             type: object
 1896             properties:
 1897                 clients:
 1898                     $ref: "#/components/schemas/ClientsArray"
 1899                 auto_clients:
 1900                     $ref: "#/components/schemas/ClientsAutoArray"
 1901         ClientsArray:
 1902             type: array
 1903             items:
 1904                 $ref: "#/components/schemas/Client"
 1905             description: Clients array
 1906         ClientsAutoArray:
 1907             type: array
 1908             items:
 1909                 $ref: "#/components/schemas/ClientAuto"
 1910             description: Auto-Clients array
 1911         RewriteList:
 1912             type: array
 1913             items:
 1914                 $ref: "#/components/schemas/RewriteEntry"
 1915             description: Rewrite rules array
 1916         RewriteEntry:
 1917             type: object
 1918             description: Rewrite rule
 1919             properties:
 1920                 domain:
 1921                     type: string
 1922                     description: Domain name
 1923                     example: example.org
 1924                 answer:
 1925                     type: string
 1926                     description: value of A, AAAA or CNAME DNS record
 1927                     example: 127.0.0.1
 1928         BlockedServicesArray:
 1929             type: array
 1930             items:
 1931                 type: string
 1932         CheckConfigRequest:
 1933             type: object
 1934             description: Configuration to be checked
 1935             properties:
 1936                 dns:
 1937                     $ref: "#/components/schemas/CheckConfigRequestInfo"
 1938                 web:
 1939                     $ref: "#/components/schemas/CheckConfigRequestInfo"
 1940                 set_static_ip:
 1941                     type: boolean
 1942                     example: false
 1943         CheckConfigRequestInfo:
 1944             type: object
 1945             properties:
 1946                 ip:
 1947                     type: string
 1948                     example: 127.0.0.1
 1949                 port:
 1950                     type: integer
 1951                     format: int32
 1952                     example: 53
 1953                 autofix:
 1954                     type: boolean
 1955                     example: false
 1956         CheckConfigResponse:
 1957             type: object
 1958             properties:
 1959                 dns:
 1960                     $ref: "#/components/schemas/CheckConfigResponseInfo"
 1961                 web:
 1962                     $ref: "#/components/schemas/CheckConfigResponseInfo"
 1963                 static_ip:
 1964                     $ref: "#/components/schemas/CheckConfigStaticIpInfo"
 1965         CheckConfigResponseInfo:
 1966             type: object
 1967             properties:
 1968                 status:
 1969                     type: string
 1970                     example: ""
 1971                 can_autofix:
 1972                     type: boolean
 1973                     example: false
 1974         CheckConfigStaticIpInfo:
 1975             type: object
 1976             properties:
 1977                 static:
 1978                     type: string
 1979                     example: no
 1980                     description: "Can be: yes, no, error"
 1981                 ip:
 1982                     type: string
 1983                     example: 192.168.1.1
 1984                     description: Current dynamic IP address. Set if static=no
 1985                 error:
 1986                     type: string
 1987                     example: ""
 1988                     description: Error text. Set if static=error
 1989         InitialConfiguration:
 1990             type: object
 1991             description: AdGuard Home initial configuration (for the first-install wizard)
 1992             properties:
 1993                 dns:
 1994                     $ref: "#/components/schemas/AddressInfo"
 1995                 web:
 1996                     $ref: "#/components/schemas/AddressInfo"
 1997                 username:
 1998                     type: string
 1999                     description: Basic auth username
 2000                     example: admin
 2001                 password:
 2002                     type: string
 2003                     description: Basic auth password
 2004                     example: password
 2005         Login:
 2006             type: object
 2007             description: Login request data
 2008             properties:
 2009                 username:
 2010                     type: string
 2011                     description: User name
 2012                 password:
 2013                     type: string
 2014                     description: Password
 2015         Error:
 2016             description: A generic JSON error response.
 2017             properties:
 2018                 message:
 2019                     type: string
 2020                     description: The error message, an opaque string.
 2021             type: object