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

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


class V2PermissionsCreateRoleRequestBodyTypedDict(TypedDict):
    name: str
    r"""The unique name for this role. Must be unique within your workspace and clearly indicate the role's purpose. Use descriptive names like 'admin', 'editor', or 'billing_manager'.

    Examples: 'admin.billing', 'support.readonly', 'developer.api', 'manager.analytics'

    """
    description: NotRequired[str]
    r"""Provides comprehensive documentation of what this role encompasses and what access it grants.
    Include information about the intended use case, what permissions should be assigned, and any important considerations.
    This internal documentation helps team members understand role boundaries and security implications.
    Not visible to end users - designed for administration teams and access control audits.

    Consider documenting:
    - The role's intended purpose and scope
    - What types of users should receive this role
    - What permissions are typically associated with it
    - Any security considerations or limitations
    - Related roles that might be used together

    """


class V2PermissionsCreateRoleRequestBody(BaseModel):
    name: str
    r"""The unique name for this role. Must be unique within your workspace and clearly indicate the role's purpose. Use descriptive names like 'admin', 'editor', or 'billing_manager'.

    Examples: 'admin.billing', 'support.readonly', 'developer.api', 'manager.analytics'

    """

    description: Optional[str] = None
    r"""Provides comprehensive documentation of what this role encompasses and what access it grants.
    Include information about the intended use case, what permissions should be assigned, and any important considerations.
    This internal documentation helps team members understand role boundaries and security implications.
    Not visible to end users - designed for administration teams and access control audits.

    Consider documenting:
    - The role's intended purpose and scope
    - What types of users should receive this role
    - What permissions are typically associated with it
    - Any security considerations or limitations
    - Related roles that might be used together

    """
