{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/groundmail-dev/json-schema/groundmail-dev-remote-apply-dns-credentials-schema.json",
  "title": "RemoteApplyDnsCredentials",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/groundmail-dev-openapi.yaml#/components/schemas/RemoteApplyDnsCredentials",
  "type": "object",
  "properties": {
    "apiToken": {
      "type": "string",
      "description": "Inline API token for the chosen provider (Cloudflare, Vercel, GoDaddy Personal Access Token, Netlify, DigitalOcean or DNSimple) instead of the stored dashboard integration"
    },
    "zoneId": {
      "type": "string",
      "description": "Optional Cloudflare zone id when using an inline token"
    },
    "cloudflareApiToken": {
      "type": "string",
      "description": "Alias for apiToken"
    },
    "cloudflareZoneId": {
      "type": "string",
      "description": "Alias for zoneId"
    },
    "godaddyApiToken": {
      "type": "string",
      "description": "GoDaddy Personal Access Token (alias for apiToken when provider is godaddy). Needs the domains.domain:read and domains.dns:update scopes"
    },
    "apiKey": {
      "type": "string",
      "description": "GoDaddy API key (classic credential GoDaddy is retiring for domains; prefer apiToken)"
    },
    "apiSecret": {
      "type": "string",
      "description": "GoDaddy API secret (classic credential; prefer apiToken)"
    },
    "godaddyApiKey": {
      "type": "string",
      "description": "Alias for apiKey"
    },
    "godaddyApiSecret": {
      "type": "string",
      "description": "Alias for apiSecret"
    },
    "vercelApiToken": {
      "type": "string",
      "description": "Alias for apiToken when provider is vercel"
    },
    "vercelTeamId": {
      "type": "string",
      "description": "Optional Vercel team id for team-scoped DNS"
    },
    "teamId": {
      "type": "string",
      "description": "Inline Vercel team id (alias for vercelTeamId)"
    },
    "netlifyApiToken": {
      "type": "string",
      "description": "Alias for apiToken when provider is netlify (a Netlify personal access token)"
    },
    "digitaloceanApiToken": {
      "type": "string",
      "description": "Alias for apiToken when provider is digitalocean (needs domain read, create and update scopes)"
    },
    "dnsimpleApiToken": {
      "type": "string",
      "description": "Alias for apiToken when provider is dnsimple"
    },
    "accountId": {
      "type": "string",
      "description": "DNSimple account id, required with an inline DNSimple token"
    },
    "dnsimpleAccountId": {
      "type": "string",
      "description": "Alias for accountId"
    }
  }
}