content: {
    "$id": "https://martinheidegger.github.io/dns-query/resolvers.schema.json",
    "$schema": "https://json-schema.org/draft-07/schema",
    "description": "DNS Endpoint consumable JSON format",
    "properties": {
      "resolvers": {
        "items": {
          "additionalProperties": false,
          "properties": {
            "cors": {
              "description": "true, if endpoint supports http/https CORS headers, defaults to false",
              "type": "boolean"
            },
            "country": {
              "type": "string"
            },
            "description": {
              "description": "Description as provided by hoster.",
              "type": "string"
            },
            "docs": {
              "description": "link to documentation",
              "format": "uri",
              "type": "string"
            },
            "endpoint": {
              "oneOf": [
                {
                  "additionalProperties": false,
                  "description": "http/https endpoints",
                  "properties": {
                    "cors": {
                      "description": "(DEPRECATED: Use resolver.cors instead!) true, if endpoint supports http/https CORS headers, defaults to false",
                      "type": "boolean"
                    },
                    "host": {
                      "description": "DNS host for the endpoint",
                      "type": "string"
                    },
                    "ipv4": {
                      "description": "well-known ipv4 address for the host",
                      "format": "ipv4",
                      "type": "string"
                    },
                    "ipv6": {
                      "description": "well-known ipv6 address for the host",
                      "format": "ipv6",
                      "type": "string"
                    },
                    "method": {
                      "description": "Method to request in case of http/https, defaults to GET",
                      "enum": [
                        "POST",
                        "GET"
                      ]
                    },
                    "path": {
                      "description": "Path, prefixed with /, defaults to /dns-query",
                      "type": "string"
                    },
                    "port": {
                      "description": "port to connect to, defaults to 443 for https, 80 for http",
                      "type": "integer"
                    },
                    "protocol": {
                      "description": "https is the default for DoH endpoints, http for debug only!",
                      "enum": [
                        "http:",
                        "https:"
                      ]
                    }
                  },
                  "required": [
                    "protocol",
                    "host"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "description": "udp4 endpoints",
                  "properties": {
                    "ipv4": {
                      "format": "ipv4",
                      "type": "string"
                    },
                    "pk": {
                      "description": "public key for dnscrypt verification",
                      "type": "string"
                    },
                    "port": {
                      "description": "port to connect to, defaults to 53",
                      "type": "integer"
                    },
                    "protocol": {
                      "enum": [
                        "udp4:"
                      ]
                    }
                  },
                  "required": [
                    "protocol",
                    "ipv4"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "description": "udp6 endpoints",
                  "properties": {
                    "ipv6": {
                      "format": "ipv6",
                      "type": "string"
                    },
                    "pk": {
                      "description": "public key for dnscrypt verification",
                      "type": "string"
                    },
                    "port": {
                      "description": "port to connect to, defaults to 53",
                      "type": "integer"
                    },
                    "protocol": {
                      "enum": [
                        "udp6:"
                      ]
                    }
                  },
                  "required": [
                    "protocol",
                    "ipv6"
                  ],
                  "type": "object"
                }
              ]
            },
            "filter": {
              "description": "true, if endpoint is known to filters/redirects DNS packets, defaults to false",
              "type": "boolean"
            },
            "location": {
              "additionalProperties": false,
              "properties": {
                "lat": {
                  "type": "number"
                },
                "long": {
                  "type": "number"
                }
              },
              "type": "object"
            },
            "log": {
              "description": "true, if endpoint is known to log requests, defaults to false",
              "type": "boolean"
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "endpoint"
          ],
          "type": "object"
        },
        "type": "array"
      }
    },
    "title": "DNS Endpoint JSON Table",
    "type": "object"
  }