{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/intodns-ai/json-schema/intodns-ai-dnssecresult-schema.json",
  "title": "DNSSECResult",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/intodns-ai-openapi.json#/components/schemas/DNSSECResult",
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "signed": {
      "type": "boolean",
      "description": "Whether the domain has DNSKEY records (DNSSEC enabled)"
    },
    "valid": {
      "type": "boolean",
      "description": "Whether DNSSEC validation passes (AD flag set by resolver)"
    },
    "chain": {
      "type": "array",
      "description": "DNSKEY and DS records forming the chain of trust",
      "items": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string"
          },
          "algorithm": {
            "type": "integer"
          },
          "digestType": {
            "type": "integer",
            "description": "0 for DNSKEY, 1=SHA-1, 2=SHA-256, 4=SHA-384 for DS"
          },
          "digest": {
            "type": "string"
          },
          "flags": {
            "type": "integer",
            "description": "DNSKEY flags (256=ZSK, 257=KSK)"
          },
          "protocol": {
            "type": "integer"
          },
          "publicKey": {
            "type": "string"
          }
        }
      }
    },
    "nsec3param": {
      "type": "object",
      "description": "NSEC3 parameter check results",
      "properties": {
        "exists": {
          "type": "boolean"
        },
        "hashAlgorithm": {
          "type": "integer"
        },
        "flags": {
          "type": "integer"
        },
        "iterations": {
          "type": "integer"
        },
        "salt": {
          "type": "string"
        },
        "rfc9276Compliant": {
          "type": "boolean"
        },
        "issues": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      }
    },
    "rrsig": {
      "type": "object",
      "description": "RRSIG signature check results",
      "properties": {
        "exists": {
          "type": "boolean"
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "typeCovered": {
                "type": "string"
              },
              "algorithm": {
                "type": "integer"
              },
              "originalTTL": {
                "type": "integer"
              },
              "daysUntilExpiry": {
                "type": "integer"
              },
              "isExpired": {
                "type": "boolean"
              }
            }
          }
        },
        "algorithmSecurity": {
          "type": "string",
          "enum": [
            "modern",
            "acceptable",
            "deprecated",
            "insecure",
            "unknown"
          ]
        },
        "issues": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      }
    },
    "errors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}