"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL from openrouter.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata from pydantic import model_serializer from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict class ListGuardrailMemberAssignmentsRequestTypedDict(TypedDict): id: str r"""The unique identifier of the guardrail""" offset: NotRequired[str] r"""Number of records to skip for pagination""" limit: NotRequired[str] r"""Maximum number of records to return (max 100)""" class ListGuardrailMemberAssignmentsRequest(BaseModel): id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] r"""The unique identifier of the guardrail""" offset: Annotated[ Optional[str], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = None r"""Number of records to skip for pagination""" limit: Annotated[ Optional[str], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = None r"""Maximum number of records to return (max 100)""" class ListGuardrailMemberAssignmentsDataTypedDict(TypedDict): id: str r"""Unique identifier for the assignment""" user_id: str r"""Clerk user ID of the assigned member""" organization_id: str r"""Organization ID""" guardrail_id: str r"""ID of the guardrail""" assigned_by: Nullable[str] r"""User ID of who made the assignment""" created_at: str r"""ISO 8601 timestamp of when the assignment was created""" class ListGuardrailMemberAssignmentsData(BaseModel): id: str r"""Unique identifier for the assignment""" user_id: str r"""Clerk user ID of the assigned member""" organization_id: str r"""Organization ID""" guardrail_id: str r"""ID of the guardrail""" assigned_by: Nullable[str] r"""User ID of who made the assignment""" created_at: str r"""ISO 8601 timestamp of when the assignment was created""" @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = [] nullable_fields = ["assigned_by"] null_default_fields = [] serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): k = f.alias or n val = serialized.get(k) serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields is_set = ( self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val elif val != UNSET_SENTINEL and ( not k in optional_fields or (optional_nullable and is_set) ): m[k] = val return m class ListGuardrailMemberAssignmentsResponseTypedDict(TypedDict): r"""List of member assignments""" data: List[ListGuardrailMemberAssignmentsDataTypedDict] r"""List of member assignments""" total_count: float r"""Total number of member assignments""" class ListGuardrailMemberAssignmentsResponse(BaseModel): r"""List of member assignments""" data: List[ListGuardrailMemberAssignmentsData] r"""List of member assignments""" total_count: float r"""Total number of member assignments"""