{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/beyond-identity/json-schema/beyond-identity-theme-schema.json",
  "title": "Theme",
  "description": "A theme is a collection of configurable assets that unifies the end user login experience with your brand and products. It is primarily used to change the styling of the credential binding email.\n",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/beyond-identity-themes-api-openapi.yml#/components/schemas/Theme",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "A unique identifier for a theme. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm.\n",
      "readOnly": true
    },
    "tenant_id": {
      "type": "string",
      "description": "A unique identifier for the theme's tenant. This is automatically set on creation. This field is immutable and read-only.\n",
      "readOnly": true
    },
    "realm_id": {
      "type": "string",
      "description": "A unique identifier for the theme's realm. This is automatically set on creation. This field is immutable and read-only.\n",
      "readOnly": true
    },
    "create_time": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp of when the theme was created. This field is immutable and read-only.\n",
      "readOnly": true
    },
    "update_time": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp of when the theme was last updated. This field is read-only.\n",
      "readOnly": true
    },
    "email_realm_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[^{}[\\]<>;:?\\\\/|*^%$#=~`!]*$",
      "description": "Realm name that is used in email templates."
    },
    "logo_url_light": {
      "type": "string",
      "description": "URL for resolving the logo image for light mode."
    },
    "logo_url_dark": {
      "type": "string",
      "description": "URL for resolving the logo image for dark mode."
    },
    "support_url": {
      "type": "string",
      "format": "url",
      "description": "URL for the customer support portal."
    },
    "button_color": {
      "type": "string",
      "description": "Hexadecimal color code to use for buttons."
    },
    "button_text_color": {
      "type": "string",
      "description": "Hexadecimal color code to use for button text."
    }
  }
}