# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Optional

from pydantic import Field as FieldInfo

from ....._models import BaseModel

__all__ = ["SocialShareConfig", "Email", "Facebook", "SMS", "Twitter"]


class Email(BaseModel):
    api_type: Optional[str] = FieldInfo(alias="_type", default=None)
    """object name (non-null, const)"""

    body: Optional[str] = None
    """Email body (nonnull, allow empty)."""

    subject: Optional[str] = None
    """Email subject (nonnull, allow empty)."""


class Facebook(BaseModel):
    api_type: Optional[str] = FieldInfo(alias="_type", default=None)
    """object name (non-null, const)"""

    url: Optional[str] = None
    """A link points to an external resource. For images we using IMGX.

    To get the right size see link "https://docs.imgix.com/apis/url/size"
    """


class SMS(BaseModel):
    api_type: Optional[str] = FieldInfo(alias="_type", default=None)
    """object name (non-null, const)"""

    message: Optional[str] = None
    """Message to send by SMS (nonnull, empty)."""


class Twitter(BaseModel):
    api_type: Optional[str] = FieldInfo(alias="_type", default=None)
    """object name (non-null, const)"""

    message: Optional[str] = None
    """Message to post on Twitter (nonnull, empty)."""


class SocialShareConfig(BaseModel):
    api_type: Optional[str] = FieldInfo(alias="_type", default=None)

    email: Optional[Email] = None

    facebook: Optional[Facebook] = None

    sms: Optional[SMS] = None

    twitter: Optional[Twitter] = None
