# !!!
# 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, Optional

from stytch.b2b.models.scim import (
    SCIMConnection,
    SCIMConnectionWithNextToken,
    SCIMConnectionWithToken,
)
from stytch.core.response_base import ResponseBase


class CreateRequestIdp(str, enum.Enum):
    UNKNOWN = "unknown"
    OKTA = "okta"
    MICROSOFTENTRA = "microsoft-entra"


class UpdateRequestIdp(str, enum.Enum):
    UNKNOWN = "unknown"
    OKTA = "okta"
    MICROSOFTENTRA = "microsoft-entra"


class CreateResponse(ResponseBase):
    """Response type for `Connections.create`.
    Fields:
      - connection: The `SCIM Connection` object affected by this API call. See the [SCIM Connection Object](https://stytch.com/docs/b2b/api/scim-connection-object) for complete response field details.
    """  # noqa

    connection: Optional[SCIMConnectionWithToken] = None


class DeleteResponse(ResponseBase):
    """Response type for `Connections.delete`.
    Fields:
      - connection_id: The `connection_id` that was deleted as part of the delete request.
    """  # noqa

    connection_id: str


class GetResponse(ResponseBase):
    """Response type for `Connections.get`.
    Fields:
      - connections: (no documentation yet)
    """  # noqa

    connections: List[SCIMConnection]


class RotateCancelResponse(ResponseBase):
    """Response type for `Connections.rotate_cancel`.
    Fields:
      - connection: The `SCIM Connection` object affected by this API call. See the [SCIM Connection Object](https://stytch.com/docs/b2b/api/scim-connection-object) for complete response field details.
    """  # noqa

    connection: Optional[SCIMConnection] = None


class RotateCompleteResponse(ResponseBase):
    """Response type for `Connections.rotate_complete`.
    Fields:
      - connection: The `SCIM Connection` object affected by this API call. See the [SCIM Connection Object](https://stytch.com/docs/b2b/api/scim-connection-object) for complete response field details.
    """  # noqa

    connection: Optional[SCIMConnection] = None


class RotateStartResponse(ResponseBase):
    """Response type for `Connections.rotate_start`.
    Fields:
      - connection: The `SCIM Connection` object affected by this API call. See the [SCIM Connection Object](https://stytch.com/docs/b2b/api/scim-connection-object) for complete response field details.
    """  # noqa

    connection: Optional[SCIMConnectionWithNextToken] = None


class UpdateResponse(ResponseBase):
    """Response type for `Connections.update`.
    Fields:
      - connection: The `SAML Connection` object affected by this API call. See the [SAML Connection Object](https://stytch.com/docs/b2b/api/saml-connection-object) for complete response field details.
    """  # noqa

    connection: Optional[SCIMConnection] = None
