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

from __future__ import annotations
from novu_py.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class TopicSubscriberDtoTypedDict(TypedDict):
    organization_id: str
    r"""Unique identifier for the organization"""
    environment_id: str
    r"""Unique identifier for the environment"""
    subscriber_id: str
    r"""Unique identifier for the subscriber"""
    topic_id: str
    r"""Unique identifier for the topic"""
    topic_key: str
    r"""Key associated with the topic"""
    external_subscriber_id: str
    r"""External identifier for the subscriber"""


class TopicSubscriberDto(BaseModel):
    organization_id: Annotated[str, pydantic.Field(alias="_organizationId")]
    r"""Unique identifier for the organization"""

    environment_id: Annotated[str, pydantic.Field(alias="_environmentId")]
    r"""Unique identifier for the environment"""

    subscriber_id: Annotated[str, pydantic.Field(alias="_subscriberId")]
    r"""Unique identifier for the subscriber"""

    topic_id: Annotated[str, pydantic.Field(alias="_topicId")]
    r"""Unique identifier for the topic"""

    topic_key: Annotated[str, pydantic.Field(alias="topicKey")]
    r"""Key associated with the topic"""

    external_subscriber_id: Annotated[str, pydantic.Field(alias="externalSubscriberId")]
    r"""External identifier for the subscriber"""
