"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .channelctatypeenum import ChannelCTATypeEnum
from .messageaction import MessageAction, MessageActionTypedDict
from .messagectadata import MessageCTAData, MessageCTADataTypedDict
from novu_py.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class MessageCTATypedDict(TypedDict):
    type: NotRequired[ChannelCTATypeEnum]
    r"""Type of call to action"""
    data: NotRequired[MessageCTADataTypedDict]
    r"""Data associated with the call to action"""
    action: NotRequired[MessageActionTypedDict]
    r"""Action associated with the call to action"""


class MessageCTA(BaseModel):
    type: Optional[ChannelCTATypeEnum] = None
    r"""Type of call to action"""

    data: Optional[MessageCTAData] = None
    r"""Data associated with the call to action"""

    action: Optional[MessageAction] = None
    r"""Action associated with the call to action"""
