{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/customdomain-ai/json-schema/customdomain-ai-email-sender-schema.json",
  "title": "EmailSender",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/customdomain-ai-applications-api-openapi.yml#/components/schemas/EmailSender",
  "type": "object",
  "required": [
    "application_id",
    "mode",
    "smtp_host",
    "smtp_port",
    "smtp_username",
    "password_set",
    "tls",
    "from_address",
    "from_name",
    "reply_to",
    "verified_at",
    "last_error",
    "last_error_at"
  ],
  "properties": {
    "application_id": {
      "type": "string"
    },
    "mode": {
      "type": "string",
      "enum": [
        "default",
        "smtp",
        "none"
      ]
    },
    "smtp_host": {
      "type": "string"
    },
    "smtp_port": {
      "type": "integer"
    },
    "smtp_username": {
      "type": "string"
    },
    "password_set": {
      "type": "boolean",
      "description": "Whether a password is stored. The password itself is never returned."
    },
    "tls": {
      "type": "string",
      "enum": [
        "implicit",
        "starttls"
      ]
    },
    "from_address": {
      "type": "string"
    },
    "from_name": {
      "type": "string"
    },
    "reply_to": {
      "type": "string"
    },
    "verified_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "last_error": {
      "type": "string",
      "description": "The last failure, with no secret in it. Empty after a success."
    },
    "last_error_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "updated_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  }
}