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

from __future__ import annotations
from ascend_sdk.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class LegalAgreementTypedDict(TypedDict):
    r"""A legal Agreement for an Enrollment."""

    agreement_name: NotRequired[str]
    r"""The friendly name of the agreement; Typically mirrors the enrollment it is attached to (e.g., `LENDING_FULLY_PAID_STOCK_LOAN`)"""
    agreement_uri: NotRequired[str]
    r"""A URI referencing a static PDF containing the legalese of a given agreement; All agreements of the same nature link to the same publicly-available PDF."""
    agreement_version: NotRequired[str]
    r"""An internal version number based on typographical revisions of the related agreement; Version numbers are automatically updated when new agreements are available and should be of no technical concern to the integrator"""


class LegalAgreement(BaseModel):
    r"""A legal Agreement for an Enrollment."""

    agreement_name: Optional[str] = None
    r"""The friendly name of the agreement; Typically mirrors the enrollment it is attached to (e.g., `LENDING_FULLY_PAID_STOCK_LOAN`)"""

    agreement_uri: Optional[str] = None
    r"""A URI referencing a static PDF containing the legalese of a given agreement; All agreements of the same nature link to the same publicly-available PDF."""

    agreement_version: Optional[str] = None
    r"""An internal version number based on typographical revisions of the related agreement; Version numbers are automatically updated when new agreements are available and should be of no technical concern to the integrator"""
