"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from censys_platform.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class ByRoleTypedDict(TypedDict):
    r"""The number of members users in the organization, split by role."""

    admin: NotRequired[int]
    r"""The number of users with the admin role."""
    api_access: NotRequired[int]
    r"""The number of users with the API access role."""


class ByRole(BaseModel):
    r"""The number of members users in the organization, split by role."""

    admin: Optional[int] = None
    r"""The number of users with the admin role."""

    api_access: Optional[int] = None
    r"""The number of users with the API access role."""


class MemberCountsTypedDict(TypedDict):
    by_role: ByRoleTypedDict
    r"""The number of members users in the organization, split by role."""
    total: int
    r"""The total number of members users in the organization."""


class MemberCounts(BaseModel):
    by_role: ByRole
    r"""The number of members users in the organization, split by role."""

    total: int
    r"""The total number of members users in the organization."""
