import typing as _typing
import dynamix_sdk.base as _base


class CloudbrokerUserGetResultModel(_base.BaseAPIResultModel):
    active: bool
    api_access_groups: dict[str, str]
    auth_key: str
    auth_keys: list[_typing.Any]
    blocked: bool | None = None
    ckey: str | None = None
    data: str
    description: str
    domain_name: str | None
    emails: list[str]
    grid_id: int
    groups: list[str]
    guid: str
    id: str
    last_check_timestamp: int
    meta: list[_typing.Any] | None = None
    mobile: list[_typing.Any]
    password: str
    protected: bool | None = None
    roles: list[_typing.Any]
    service_account: bool
    xmpp: list[_typing.Any]

    @_base.computed_field
    def last_check_datetime(self) -> _base.datetime | None:
        return self._get_datetime_from_timestamp(self.last_check_timestamp)


class CloudbrokerUserGetProtocol(_base.BasePostAPIFunctionProtocol):
    def get(self, *, user_name: str) -> CloudbrokerUserGetResultModel:
        ...
