{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/dnsmint-com/json-schema/dnsmint-com-create-record-request-schema.json",
  "title": "CreateRecordRequest",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/dnsmint-com-api-openapi.json#/components/schemas/CreateRecordRequest",
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "TXT",
        "TLSA",
        "CAA",
        "MX",
        "SRV",
        "SSHFP",
        "HTTPS",
        "SVCB"
      ],
      "description": "A hostname's address is set by PUT on the hostname itself, and CAA is operator policy, so neither is accepted here."
    },
    "name": {
      "type": "string",
      "description": "Label under the hostname. Omit for a record on the hostname itself. `_acme-challenge` is reserved: certificate issuance publishes there. TLSA requires `_<port>._<proto>`, e.g. `_443._tcp` - RFC 6698 puts the port and protocol in the owner name and a client looks nowhere else."
    },
    "text": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 255
          },
          "minItems": 1
        }
      ],
      "description": "TXT only. A string, or a list of strings to send as-is. No control characters. RFC 1035 caps each character-string at 255 bytes and a TXT record holds a sequence of them which the client concatenates, so a longer value is split for you at 255 and a list you supply is sent unchanged, each string checked against that limit. 2048 bytes in total. This is how a 2048-bit DKIM key or a full MCP discovery record is carried."
    },
    "usage": {
      "type": "integer",
      "enum": [
        0,
        1,
        2,
        3
      ],
      "description": "TLSA certificate usage. 3 is DANE-EE."
    },
    "selector": {
      "type": "integer",
      "enum": [
        0,
        1
      ],
      "description": "TLSA selector. 0 full certificate, 1 SubjectPublicKeyInfo."
    },
    "matching_type": {
      "type": "integer",
      "enum": [
        0,
        1,
        2
      ],
      "description": "TLSA matching type. 0 full, 1 SHA-256, 2 SHA-512. The association length must match: 64 hex digits for SHA-256, 128 for SHA-512."
    },
    "association": {
      "type": "string",
      "description": "TLSA certificate-association data, lowercase hex, no separators."
    },
    "preference": {
      "type": "integer",
      "minimum": 0,
      "maximum": 65535,
      "description": "MX only. Lower is preferred. 0 with an exchange of `.` is the RFC 7505 null MX, which says this name accepts no mail."
    },
    "exchange": {
      "type": "string",
      "description": "MX only. The mail host. `.` is the root, for the null MX."
    },
    "priority": {
      "type": "integer",
      "minimum": 0,
      "maximum": 65535,
      "description": "SRV: lower is tried first. HTTPS and SVCB: 1 or above. 0 is AliasMode, which we do not serve, because it aliases a zone apex and a hostname is never an apex."
    },
    "weight": {
      "type": "integer",
      "minimum": 0,
      "maximum": 65535,
      "description": "SRV only. Relative share among targets of equal priority."
    },
    "port": {
      "type": "integer",
      "minimum": 0,
      "maximum": 65535,
      "description": "SRV only. The port the service listens on."
    },
    "target": {
      "type": "string",
      "description": "SRV: the host offering the service, or `.` to say it is decidedly not offered here. HTTPS and SVCB: the endpoint, or `.` for this name, which is the ordinary case."
    },
    "algorithm": {
      "type": "integer",
      "description": "SSHFP only. 1 RSA, 2 DSA, 3 ECDSA, 4 Ed25519, 6 Ed448."
    },
    "fptype": {
      "type": "integer",
      "description": "SSHFP only. 1 for SHA-1, 2 for SHA-256. The fingerprint length follows from it."
    },
    "fingerprint": {
      "type": "string",
      "description": "SSHFP only. Lowercase hex, no separators. 40 digits for SHA-1, 64 for SHA-256."
    },
    "params": {
      "type": "object",
      "description": "HTTPS and SVCB only. RFC 9460 service parameters: `alpn` (list, e.g. h2 or h3), `noDefaultAlpn` (boolean, only meaningful with `alpn`), `port`, `ipv4hint` and `ipv6hint` (lists of literal addresses), `ech` (base64), and `mandatory` (the parameter names a client must understand, which may not name itself or a parameter this record does not set). Send them as fields; we emit them in the ascending key order the wire format requires."
    }
  }
}