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

from __future__ import annotations
from .v3_workflows_communicationchannel import (
    V3WorkflowsCommunicationChannel,
    V3WorkflowsCommunicationChannelTypedDict,
)
from squadcast_sdk.types import BaseModel
from typing import List, Literal, Optional
from typing_extensions import NotRequired, TypedDict


V3WorkflowsSqAddCommunicationChannelUpdateName = Literal[
    "sq_add_communication_channel",
]


class V3WorkflowsSqAddCommunicationChannelUpdateDataTypedDict(TypedDict):
    channels: NotRequired[List[V3WorkflowsCommunicationChannelTypedDict]]


class V3WorkflowsSqAddCommunicationChannelUpdateData(BaseModel):
    channels: Optional[List[V3WorkflowsCommunicationChannel]] = None


class V3WorkflowsSqAddCommunicationChannelUpdateTypedDict(TypedDict):
    name: V3WorkflowsSqAddCommunicationChannelUpdateName
    data: NotRequired[V3WorkflowsSqAddCommunicationChannelUpdateDataTypedDict]


class V3WorkflowsSqAddCommunicationChannelUpdate(BaseModel):
    name: V3WorkflowsSqAddCommunicationChannelUpdateName

    data: Optional[V3WorkflowsSqAddCommunicationChannelUpdateData] = None
