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

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


class RemovePartyRequestCreateTypedDict(TypedDict):
    r"""A request to remove a party from an account"""

    name: str
    r"""The ID of the party to remove Format: accounts/{account}/parties/{party}"""
    authorized_by_party_ids: NotRequired[List[str]]
    r"""A list of Party IDs on the account that have approved the removal of a party. The required signers are defined by the Registration Type of the Account. e.g. Individual Registrations require one signer, Joint Registrations require all Joint Owners to sign"""


class RemovePartyRequestCreate(BaseModel):
    r"""A request to remove a party from an account"""

    name: str
    r"""The ID of the party to remove Format: accounts/{account}/parties/{party}"""

    authorized_by_party_ids: Optional[List[str]] = None
    r"""A list of Party IDs on the account that have approved the removal of a party. The required signers are defined by the Registration Type of the Account. e.g. Individual Registrations require one signer, Joint Registrations require all Joint Owners to sign"""
