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

from __future__ import annotations
from datetime import datetime
from moovio_sdk.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class ManualTermsOfServiceTypedDict(TypedDict):
    r"""Describes the acceptance of the Terms of Service. All data is required, and must be from the user."""

    accepted_date: datetime
    r"""The date and time the terms of service were accepted."""
    accepted_ip: str
    r"""The IP address from which the terms of service were accepted."""
    accepted_user_agent: str
    r"""The user-agent of the user making the request."""
    accepted_domain: str


class ManualTermsOfService(BaseModel):
    r"""Describes the acceptance of the Terms of Service. All data is required, and must be from the user."""

    accepted_date: Annotated[datetime, pydantic.Field(alias="acceptedDate")]
    r"""The date and time the terms of service were accepted."""

    accepted_ip: Annotated[str, pydantic.Field(alias="acceptedIP")]
    r"""The IP address from which the terms of service were accepted."""

    accepted_user_agent: Annotated[str, pydantic.Field(alias="acceptedUserAgent")]
    r"""The user-agent of the user making the request."""

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


try:
    ManualTermsOfService.model_rebuild()
except NameError:
    pass
