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

from __future__ import annotations
from .v3_extensions_msteams_channelconfiguration import (
    V3ExtensionsMSTeamsChannelConfiguration,
    V3ExtensionsMSTeamsChannelConfigurationTypedDict,
)
from squadcast_sdk.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class V3ExtensionsMSTeamsConnectedTeamsTypedDict(TypedDict):
    r"""Represents a connected MS Team and its channel configurations."""

    team_id: str
    r"""The unique identifier for the team in MS Teams."""
    team_name: str
    r"""The display name of the team in MS Teams."""
    channel_configurations: List[V3ExtensionsMSTeamsChannelConfigurationTypedDict]
    r"""A list of channel routing configurations for this team."""
    id: NotRequired[str]
    r"""The MongoDB ObjectID for this connected team entry."""


class V3ExtensionsMSTeamsConnectedTeams(BaseModel):
    r"""Represents a connected MS Team and its channel configurations."""

    team_id: str
    r"""The unique identifier for the team in MS Teams."""

    team_name: str
    r"""The display name of the team in MS Teams."""

    channel_configurations: List[V3ExtensionsMSTeamsChannelConfiguration]
    r"""A list of channel routing configurations for this team."""

    id: Optional[str] = None
    r"""The MongoDB ObjectID for this connected team entry."""
