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

from __future__ import annotations
from moovio_sdk.types import BaseModel
import pydantic
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class ManualTypedDict(TypedDict):
    accepted_date: NotRequired[str]
    accepted_domain: NotRequired[str]
    accepted_ip: NotRequired[str]
    accepted_user_agent: NotRequired[str]


class Manual(BaseModel):
    accepted_date: Annotated[Optional[str], pydantic.Field(alias="acceptedDate")] = None

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

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

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


class TermsOfServiceErrorTypedDict(TypedDict):
    token: NotRequired[str]
    manual: NotRequired[ManualTypedDict]


class TermsOfServiceError(BaseModel):
    token: Optional[str] = None

    manual: Optional[Manual] = None
