"""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 DocumentResendDocumentRequestBodyTypedDict(TypedDict):
    document_id: float
    recipients: List[float]
    r"""The IDs of the recipients to redistribute the document to."""


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

    recipients: List[float]
    r"""The IDs of the recipients to redistribute the document to."""


class DocumentResendDocumentDocumentsIssuesTypedDict(TypedDict):
    message: str


class DocumentResendDocumentDocumentsIssues(BaseModel):
    message: str


class DocumentResendDocumentDocumentsResponseResponseBodyData(BaseModel):
    message: str

    code: str

    issues: Optional[List[DocumentResendDocumentDocumentsIssues]] = None


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

    data: DocumentResendDocumentDocumentsResponseResponseBodyData

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

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


class DocumentResendDocumentIssuesTypedDict(TypedDict):
    message: str


class DocumentResendDocumentIssues(BaseModel):
    message: str


class DocumentResendDocumentDocumentsResponseBodyData(BaseModel):
    message: str

    code: str

    issues: Optional[List[DocumentResendDocumentIssues]] = None


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

    data: DocumentResendDocumentDocumentsResponseBodyData

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

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


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

    success: bool


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

    success: bool
