# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing import List
from typing_extensions import Literal, Required, TypedDict

from ..._types import SequenceNotStr

__all__ = ["ResourceSharingListParams"]


class ResourceSharingListParams(TypedDict, total=False):
    account_id: Required[str]
    """Account identifier."""

    direction: Literal["asc", "desc"]
    """Direction to sort objects."""

    include_recipient_counts: bool
    """Include recipient counts in the response."""

    include_resources: bool
    """Include resources in the response."""

    kind: Literal["sent", "received"]
    """Filter shares by kind."""

    order: Literal["name", "created"]
    """Order shares by values in the given field."""

    page: int
    """Page number.

    Defaults to `1` when `per_page` is supplied without `page`. May be omitted
    entirely along with `per_page` to receive a non-paginated response.
    """

    per_page: int
    """Number of objects to return per page.

    Defaults to `20` when `page` is supplied without `per_page`. May be omitted
    entirely along with `page` to receive a non-paginated response.
    """

    resource_types: List[
        Literal[
            "custom-ruleset",
            "gateway-policy",
            "gateway-destination-ip",
            "gateway-block-page-settings",
            "gateway-extended-email-matching",
            "idp-federation-grant",
        ]
    ]
    """Filter share resources by resource_types."""

    status: Literal["active", "deleting", "deleted"]
    """Filter shares by status."""

    tag: SequenceNotStr[str]
    """Filter shares by tag.

    Each value is either `key=value` (matches shares whose tags contain that
    key/value pair) or `key` alone (matches shares that have any value for that
    key). May be repeated; multiple `tag` parameters are ANDed together. Maximum 20
    `tag` parameters per request.
    """

    target_type: Literal["account", "organization"]
    """Filter shares by target_type."""
