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

from __future__ import annotations
from novu_py.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class CreateUpdateTopicRequestDtoTypedDict(TypedDict):
    key: str
    r"""The unique key identifier for the topic. The key must contain only alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), underscores (_), colons (:), or be a valid email address."""
    name: NotRequired[str]
    r"""The display name for the topic"""


class CreateUpdateTopicRequestDto(BaseModel):
    key: str
    r"""The unique key identifier for the topic. The key must contain only alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), underscores (_), colons (:), or be a valid email address."""

    name: Optional[str] = None
    r"""The display name for the topic"""
