# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .branding_theme_font_body_text import BrandingThemeFontBodyText
from .branding_theme_font_buttons_text import BrandingThemeFontButtonsText
from .branding_theme_font_input_labels import BrandingThemeFontInputLabels
from .branding_theme_font_links import BrandingThemeFontLinks
from .branding_theme_font_links_style_enum import BrandingThemeFontLinksStyleEnum
from .branding_theme_font_subtitle import BrandingThemeFontSubtitle
from .branding_theme_font_title import BrandingThemeFontTitle


class BrandingThemeFonts(UniversalBaseModel):
    body_text: BrandingThemeFontBodyText
    buttons_text: BrandingThemeFontButtonsText
    font_url: str = pydantic.Field()
    """
    Font URL
    """

    input_labels: BrandingThemeFontInputLabels
    links: BrandingThemeFontLinks
    links_style: BrandingThemeFontLinksStyleEnum
    reference_text_size: float = pydantic.Field()
    """
    Reference text size
    """

    subtitle: BrandingThemeFontSubtitle
    title: BrandingThemeFontTitle

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
