# !!!
# WARNING: This file is autogenerated
# Only modify code within MANUAL() sections
# or your changes may be overwritten later!
# !!!

from __future__ import annotations

from typing import Dict, List

from stytch.b2b.models.organizations import Member, Organization, ResultsMetadata
from stytch.core.response_base import ResponseBase


class CreateResponse(ResponseBase):
    """Response type for `Members.create`.
    Fields:
      - member_id: Globally unique UUID that identifies a specific Member.
      - member: The [Member object](https://stytch.com/docs/b2b/api/member-object).
      - organization: The [Organization object](https://stytch.com/docs/b2b/api/organization-object).
    """  # noqa

    member_id: str
    member: Member
    organization: Organization


class DeletePasswordResponse(ResponseBase):
    """Response type for `Members.delete_password`.
    Fields:
      - member_id: Globally unique UUID that identifies a specific Member.
      - member: The [Member object](https://stytch.com/docs/b2b/api/member-object).
      - organization: The [Organization object](https://stytch.com/docs/b2b/api/organization-object).
    """  # noqa

    member_id: str
    member: Member
    organization: Organization


class DeleteResponse(ResponseBase):
    """Response type for `Members.delete`.
    Fields:
      - member_id: Globally unique UUID that identifies a specific Member.
    """  # noqa

    member_id: str


class GetResponse(ResponseBase):
    """Response type for `Members.get`.
    Fields:
      - member_id: Globally unique UUID that identifies a specific Member.
      - member: The [Member object](https://stytch.com/docs/b2b/api/member-object).
      - organization: The [Organization object](https://stytch.com/docs/b2b/api/organization-object).
    """  # noqa

    member_id: str
    member: Member
    organization: Organization


class SearchResponse(ResponseBase):
    """Response type for `Members.search`.
    Fields:
      - members: An array of [Member objects](member-object).
      - results_metadata: The search `results_metadata` object contains metadata relevant to your specific query like `total` and `next_cursor`.
      - organizations: A map from `organization_id` to [Organization object](https://stytch.com/docs/b2b/api/organization-object). The map only contains the Organizations that the Members belongs to.
    """  # noqa

    members: List[Member]
    results_metadata: ResultsMetadata
    organizations: Dict[str, Organization]


class UpdateResponse(ResponseBase):
    """Response type for `Members.update`.
    Fields:
      - member_id: Globally unique UUID that identifies a specific Member.
      - member: The [Member object](https://stytch.com/docs/b2b/api/member-object).
      - organization: The [Organization object](https://stytch.com/docs/b2b/api/organization-object).
    """  # noqa

    member_id: str
    member: Member
    organization: Organization
