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

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2
from ..core.unchecked_base_model import UncheckedBaseModel
from .notion_filter_options import NotionFilterOptions


class SourceSyncNotionSettingsOutput(UncheckedBaseModel):
    source_archetype_id: typing.Literal["com.notion.notion"] = "com.notion.notion"
    api_key: typing.Optional[str] = pydantic.Field(default=None)
    """
    The API key used for authentication with Notion.
    """

    filter_options: typing.Optional[typing.List[NotionFilterOptions]] = pydantic.Field(default=None)
    """
    Narrow down pages you sync from Notion by page URL or page title.
    For example, you can search for page titles like 'blog' and filter out pages with titles containing 'faq'
    """

    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
