# This file was generated by liblab | https://liblab.com/

from typing import List
from .utils.json_map import JsonMap
from .base import BaseModel


@JsonMap({"id_": "id"})
class DataRoles1(BaseModel):
    """DataRoles1

    :param id_: id_, defaults to None
    :type id_: int, optional
    :param name: name, defaults to None
    :type name: str, optional
    """

    def __init__(self, id_: int = None, name: str = None):
        if id_ is not None:
            self.id_ = id_
        if name is not None:
            self.name = name


@JsonMap({"id_": "id", "type_": "type"})
class GetAllOrgStructuresContainerData(BaseModel):
    """GetAllOrgStructuresContainerData

    :param id_: id_, defaults to None
    :type id_: str, optional
    :param name: name, defaults to None
    :type name: str, optional
    :param type_: type_, defaults to None
    :type type_: str, optional
    :param roles: roles, defaults to None
    :type roles: List[DataRoles1], optional
    :param teams: teams, defaults to None
    :type teams: List[dict], optional
    :param external_id: external_id, defaults to None
    :type external_id: str, optional
    :param teams_count: teams_count, defaults to None
    :type teams_count: int, optional
    :param enable_roles: enable_roles, defaults to None
    :type enable_roles: bool, optional
    :param is_multiselect: is_multiselect, defaults to None
    :type is_multiselect: bool, optional
    """

    def __init__(
        self,
        id_: str = None,
        name: str = None,
        type_: str = None,
        roles: List[DataRoles1] = None,
        teams: List[dict] = None,
        external_id: str = None,
        teams_count: int = None,
        enable_roles: bool = None,
        is_multiselect: bool = None,
    ):
        if id_ is not None:
            self.id_ = id_
        if name is not None:
            self.name = name
        if type_ is not None:
            self.type_ = type_
        if roles is not None:
            self.roles = self._define_list(roles, DataRoles1)
        if teams is not None:
            self.teams = teams
        if external_id is not None:
            self.external_id = external_id
        if teams_count is not None:
            self.teams_count = teams_count
        if enable_roles is not None:
            self.enable_roles = enable_roles
        if is_multiselect is not None:
            self.is_multiselect = is_multiselect


@JsonMap({})
class GetAllOrgStructuresContainer(BaseModel):
    """GetAllOrgStructuresContainer

    :param data: data, defaults to None
    :type data: List[GetAllOrgStructuresContainerData], optional
    """

    def __init__(self, data: List[GetAllOrgStructuresContainerData] = None):
        if data is not None:
            self.data = self._define_list(data, GetAllOrgStructuresContainerData)
