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

from __future__ import annotations

import datetime
from typing import List, Optional

import pydantic


class SCIMGroupImplicitRoleAssignments(pydantic.BaseModel):
    role_id: str
    group_id: str
    group_name: str


class SCIMConnection(pydantic.BaseModel):
    organization_id: str
    connection_id: str
    status: str
    display_name: str
    identity_provider: str
    base_url: str
    bearer_token_last_four: str
    scim_group_implicit_role_assignments: List[SCIMGroupImplicitRoleAssignments]
    next_bearer_token_last_four: str
    bearer_token_expires_at: Optional[datetime.datetime] = None
    next_bearer_token_expires_at: Optional[datetime.datetime] = None


class SCIMConnectionWithNextToken(pydantic.BaseModel):
    organization_id: str
    connection_id: str
    status: str
    display_name: str
    base_url: str
    identity_provider: str
    bearer_token_last_four: str
    next_bearer_token: str
    scim_group_implicit_role_assignments: List[SCIMGroupImplicitRoleAssignments]
    bearer_token_expires_at: Optional[datetime.datetime] = None
    next_bearer_token_expires_at: Optional[datetime.datetime] = None


class SCIMConnectionWithToken(pydantic.BaseModel):
    organization_id: str
    connection_id: str
    status: str
    display_name: str
    identity_provider: str
    base_url: str
    bearer_token: str
    scim_group_implicit_role_assignments: List[SCIMGroupImplicitRoleAssignments]
    bearer_token_expires_at: Optional[datetime.datetime] = None
