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

from __future__ import annotations
from .meta import Meta, MetaTypedDict
from .permission import Permission, PermissionTypedDict
from typing import List
from typing_extensions import TypedDict
from unkey.py.types import BaseModel


class V2KeysRemovePermissionsResponseBodyTypedDict(TypedDict):
    meta: MetaTypedDict
    r"""Metadata object included in every API response. This provides context about the request and is essential for debugging, audit trails, and support inquiries. The `requestId` is particularly important when troubleshooting issues with the Unkey support team."""
    data: List[PermissionTypedDict]
    r"""Complete list of all permissions directly assigned to the key after the removal operation (remaining permissions only).

    Notes:
    - This list does NOT include permissions granted through roles
    - For a complete permission picture, use `/v2/keys.getKey` instead
    - An empty array indicates the key has no direct permissions assigned
    - Any cached versions of the key are immediately invalidated to ensure consistency
    - Changes to permissions take effect within seconds for new verifications
    """


class V2KeysRemovePermissionsResponseBody(BaseModel):
    meta: Meta
    r"""Metadata object included in every API response. This provides context about the request and is essential for debugging, audit trails, and support inquiries. The `requestId` is particularly important when troubleshooting issues with the Unkey support team."""

    data: List[Permission]
    r"""Complete list of all permissions directly assigned to the key after the removal operation (remaining permissions only).

    Notes:
    - This list does NOT include permissions granted through roles
    - For a complete permission picture, use `/v2/keys.getKey` instead
    - An empty array indicates the key has no direct permissions assigned
    - Any cached versions of the key are immediately invalidated to ensure consistency
    - Changes to permissions take effect within seconds for new verifications
    """
