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

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


class GroupReferenceTypedDict(TypedDict):
    id: NotRequired[str]
    r"""Unique identifier for the group."""


class GroupReference(BaseModel):
    id: Optional[str] = None
    r"""Unique identifier for the group."""


class CompanyRequestBodyTypedDict(TypedDict):
    name: str
    r"""Name of company being connected."""
    description: NotRequired[str]
    r"""Additional information about the company. This can be used to store foreign IDs, references, etc."""
    groups: NotRequired[List[GroupReferenceTypedDict]]
    r"""Reference to the groups that the company is assigned to."""


class CompanyRequestBody(BaseModel):
    name: str
    r"""Name of company being connected."""

    description: Optional[str] = None
    r"""Additional information about the company. This can be used to store foreign IDs, references, etc."""

    groups: Optional[List[GroupReference]] = None
    r"""Reference to the groups that the company is assigned to."""
