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

from __future__ import annotations
from documenso_sdk import utils
from documenso_sdk.types import BaseModel
import pydantic
from typing import List, Optional
from typing_extensions import Annotated, TypedDict


class DocumentDuplicateDocumentRequestBodyTypedDict(TypedDict):
    document_id: float


class DocumentDuplicateDocumentRequestBody(BaseModel):
    document_id: Annotated[float, pydantic.Field(alias="documentId")]


class DocumentDuplicateDocumentDocumentsIssuesTypedDict(TypedDict):
    message: str


class DocumentDuplicateDocumentDocumentsIssues(BaseModel):
    message: str


class DocumentDuplicateDocumentDocumentsResponseResponseBodyData(BaseModel):
    message: str

    code: str

    issues: Optional[List[DocumentDuplicateDocumentDocumentsIssues]] = None


class DocumentDuplicateDocumentDocumentsResponseResponseBody(Exception):
    r"""Internal server error"""

    data: DocumentDuplicateDocumentDocumentsResponseResponseBodyData

    def __init__(
        self, data: DocumentDuplicateDocumentDocumentsResponseResponseBodyData
    ):
        self.data = data

    def __str__(self) -> str:
        return utils.marshal_json(
            self.data, DocumentDuplicateDocumentDocumentsResponseResponseBodyData
        )


class DocumentDuplicateDocumentIssuesTypedDict(TypedDict):
    message: str


class DocumentDuplicateDocumentIssues(BaseModel):
    message: str


class DocumentDuplicateDocumentDocumentsResponseBodyData(BaseModel):
    message: str

    code: str

    issues: Optional[List[DocumentDuplicateDocumentIssues]] = None


class DocumentDuplicateDocumentDocumentsResponseBody(Exception):
    r"""Invalid input data"""

    data: DocumentDuplicateDocumentDocumentsResponseBodyData

    def __init__(self, data: DocumentDuplicateDocumentDocumentsResponseBodyData):
        self.data = data

    def __str__(self) -> str:
        return utils.marshal_json(
            self.data, DocumentDuplicateDocumentDocumentsResponseBodyData
        )


class DocumentDuplicateDocumentResponseBodyTypedDict(TypedDict):
    r"""Successful response"""

    document_id: float


class DocumentDuplicateDocumentResponseBody(BaseModel):
    r"""Successful response"""

    document_id: Annotated[float, pydantic.Field(alias="documentId")]
