{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/Domain",
  "title": "Domain",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "The unique ID of this domain."
    },
    "domain": {
      "type": "string",
      "description": "The domain name."
    },
    "type": {
      "type": "string",
      "enum": [
        "master",
        "slave"
      ],
      "description": "Whether this is a master or slave zone."
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "disabled",
        "edit_mode"
      ],
      "description": "The status of this domain."
    },
    "soa_email": {
      "type": "string",
      "format": "email",
      "description": "The SOA email address for this domain."
    },
    "description": {
      "type": "string",
      "description": "A description for this domain."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tags for this domain."
    },
    "created": {
      "type": "string",
      "format": "date-time",
      "description": "When this domain was created."
    },
    "updated": {
      "type": "string",
      "format": "date-time",
      "description": "When this domain was last updated."
    },
    "ttl_sec": {
      "type": "integer",
      "description": "The default TTL in seconds."
    },
    "retry_sec": {
      "type": "integer",
      "description": "The retry interval in seconds."
    },
    "refresh_sec": {
      "type": "integer",
      "description": "The refresh interval in seconds."
    },
    "expire_sec": {
      "type": "integer",
      "description": "The expiry time in seconds."
    }
  }
}