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

from __future__ import annotations

import enum
from typing import List

from stytch.consumer.models.connected_apps import (
    ConnectedApp,
    ConnectedAppWithClientSecret,
    ResultsMetadata,
)
from stytch.core.response_base import ResponseBase


class CreateRequestClientType(str, enum.Enum):
    FIRST_PARTY = "first_party"
    FIRST_PARTY_PUBLIC = "first_party_public"
    THIRD_PARTY = "third_party"
    THIRD_PARTY_PUBLIC = "third_party_public"


class CreateResponse(ResponseBase):
    """Response type for `Clients.create`.
    Fields:
      - connected_app: The Connected App created by this API call.
    """  # noqa

    connected_app: ConnectedAppWithClientSecret


class DeleteResponse(ResponseBase):
    """Response type for `Clients.delete`.
    Fields:
      - client_id: The ID of the client.
    """  # noqa

    client_id: str


class GetResponse(ResponseBase):
    """Response type for `Clients.get`.
    Fields:
      - connected_app: The Connected App affected by this operation.
    """  # noqa

    connected_app: ConnectedApp


class SearchResponse(ResponseBase):
    """Response type for `Clients.search`.
    Fields:
      - connected_apps: (no documentation yet)
      - results_metadata: The search `results_metadata` object contains metadata relevant to your specific query like total and `next_cursor`.
    """  # noqa

    connected_apps: List[ConnectedApp]
    results_metadata: ResultsMetadata


class UpdateResponse(ResponseBase):
    """Response type for `Clients.update`.
    Fields:
      - connected_app: The Connected App affected by this operation.
    """  # noqa

    connected_app: ConnectedApp
