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

from __future__ import annotations
from enum import Enum
from novu_py.types import BaseModel
import pydantic
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class IssueType(str, Enum):
    MISSING_VALUE = "MISSING_VALUE"
    MAX_LENGTH_ACCESSED = "MAX_LENGTH_ACCESSED"
    WORKFLOW_ID_ALREADY_EXISTS = "WORKFLOW_ID_ALREADY_EXISTS"
    DUPLICATED_VALUE = "DUPLICATED_VALUE"
    LIMIT_REACHED = "LIMIT_REACHED"


class RuntimeIssueDtoTypedDict(TypedDict):
    issue_type: IssueType
    message: str
    variable_name: NotRequired[str]


class RuntimeIssueDto(BaseModel):
    issue_type: Annotated[IssueType, pydantic.Field(alias="issueType")]

    message: str

    variable_name: Annotated[Optional[str], pydantic.Field(alias="variableName")] = None
