# -*- coding: utf-8 -*-
# code generated by Prisma. DO NOT EDIT.
# pyright: reportUnusedImport=false
# fmt: off
from __future__ import annotations

# global imports for type checking
from builtins import bool as _bool
from builtins import int as _int
from builtins import float as _float
from builtins import str as _str
import sys
import decimal
import datetime
from typing import (
    TYPE_CHECKING,
    Optional,
    Iterable,
    Iterator,
    Sequence,
    Callable,
    ClassVar,
    NoReturn,
    TypeVar,
    Generic,
    Mapping,
    Tuple,
    Union,
    List,
    Dict,
    Type,
    Any,
    Set,
    overload,
    cast,
)
from typing_extensions import TypedDict, Literal


LiteralString = str
# -- template client.py.jinja --
import warnings
import logging
from datetime import timedelta
from pathlib import Path
from types import TracebackType
from typing_extensions import override

from pydantic import BaseModel

from . import types, models, errors, actions
from ._base_client import BasePrisma, UseClientDefault, USE_CLIENT_DEFAULT
from .types import DatasourceOverride, HttpConfig, MetricsFormat
from ._types import BaseModelT, PrismaMethod, TransactionId, Datasource
from .bases import _PrismaModel
from ._builder import QueryBuilder, dumps
from .generator.models import EngineType, OptionalValueFromEnvVar, BinaryPaths
from ._compat import removeprefix, model_parse
from ._constants import CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED, DEFAULT_CONNECT_TIMEOUT, DEFAULT_TX_MAX_WAIT, DEFAULT_TX_TIMEOUT
from ._raw_query import deserialize_raw_results
from ._metrics import Metrics
from .metadata import PRISMA_MODELS, RELATIONAL_FIELD_MAPPINGS
from ._transactions import AsyncTransactionManager, SyncTransactionManager

# re-exports
from ._base_client import SyncBasePrisma, AsyncBasePrisma, load_env as load_env
from ._registry import (
    register as register,
    get_client as get_client,
    RegisteredClient as RegisteredClient,
)


__all__ = (
    'ENGINE_TYPE',
    'SCHEMA_PATH',
    'BINARY_PATHS',
    'Batch',
    'Prisma',
    'Client',
    'load_env',
    'register',
    'get_client',
)

log: logging.Logger = logging.getLogger(__name__)

SCHEMA_PATH = Path('/home/app/Keep/data/litellm-main/schema.prisma')
PACKAGED_SCHEMA_PATH = Path(__file__).parent.joinpath('schema.prisma')
ENGINE_TYPE: EngineType = EngineType.binary
BINARY_PATHS = model_parse(BinaryPaths, {'queryEngine': {'rhel-openssl-1.0.x': '/root/.cache/prisma-python/binaries/5.17.0/393aa359c9ad4a4bb28630fb5613f9c281cde053/node_modules/prisma/query-engine-rhel-openssl-1.0.x', 'debian-openssl-1.1.x': '/root/.cache/prisma-python/binaries/5.17.0/393aa359c9ad4a4bb28630fb5613f9c281cde053/node_modules/prisma/query-engine-debian-openssl-1.1.x', 'debian-openssl-3.0.x': '/root/.cache/prisma-python/binaries/5.17.0/393aa359c9ad4a4bb28630fb5613f9c281cde053/node_modules/prisma/query-engine-debian-openssl-3.0.x', 'linux-musl': '/root/.cache/prisma-python/binaries/5.17.0/393aa359c9ad4a4bb28630fb5613f9c281cde053/node_modules/prisma/query-engine-linux-musl', 'linux-musl-openssl-3.0.x': '/root/.cache/prisma-python/binaries/5.17.0/393aa359c9ad4a4bb28630fb5613f9c281cde053/node_modules/prisma/query-engine-linux-musl-openssl-3.0.x'}, 'introspectionEngine': {}, 'migrationEngine': {}, 'libqueryEngine': {}, 'prismaFmt': {}})


class Prisma(AsyncBasePrisma):
    # Note: these property names can be customised using `/// @Python(instance_name: '...')`
    # https://prisma-client-py.readthedocs.io/en/stable/reference/schema-extensions/#instance_name
    litellm_budgettable: 'actions.LiteLLM_BudgetTableActions[models.LiteLLM_BudgetTable]'
    litellm_credentialstable: 'actions.LiteLLM_CredentialsTableActions[models.LiteLLM_CredentialsTable]'
    litellm_proxymodeltable: 'actions.LiteLLM_ProxyModelTableActions[models.LiteLLM_ProxyModelTable]'
    litellm_agentstable: 'actions.LiteLLM_AgentsTableActions[models.LiteLLM_AgentsTable]'
    litellm_organizationtable: 'actions.LiteLLM_OrganizationTableActions[models.LiteLLM_OrganizationTable]'
    litellm_modeltable: 'actions.LiteLLM_ModelTableActions[models.LiteLLM_ModelTable]'
    litellm_teamtable: 'actions.LiteLLM_TeamTableActions[models.LiteLLM_TeamTable]'
    litellm_projecttable: 'actions.LiteLLM_ProjectTableActions[models.LiteLLM_ProjectTable]'
    litellm_deletedteamtable: 'actions.LiteLLM_DeletedTeamTableActions[models.LiteLLM_DeletedTeamTable]'
    litellm_usertable: 'actions.LiteLLM_UserTableActions[models.LiteLLM_UserTable]'
    litellm_objectpermissiontable: 'actions.LiteLLM_ObjectPermissionTableActions[models.LiteLLM_ObjectPermissionTable]'
    litellm_mcpservertable: 'actions.LiteLLM_MCPServerTableActions[models.LiteLLM_MCPServerTable]'
    litellm_mcpusercredentials: 'actions.LiteLLM_MCPUserCredentialsActions[models.LiteLLM_MCPUserCredentials]'
    litellm_verificationtoken: 'actions.LiteLLM_VerificationTokenActions[models.LiteLLM_VerificationToken]'
    litellm_jwtkeymapping: 'actions.LiteLLM_JWTKeyMappingActions[models.LiteLLM_JWTKeyMapping]'
    litellm_deprecatedverificationtoken: 'actions.LiteLLM_DeprecatedVerificationTokenActions[models.LiteLLM_DeprecatedVerificationToken]'
    litellm_deletedverificationtoken: 'actions.LiteLLM_DeletedVerificationTokenActions[models.LiteLLM_DeletedVerificationToken]'
    litellm_endusertable: 'actions.LiteLLM_EndUserTableActions[models.LiteLLM_EndUserTable]'
    litellm_tagtable: 'actions.LiteLLM_TagTableActions[models.LiteLLM_TagTable]'
    litellm_config: 'actions.LiteLLM_ConfigActions[models.LiteLLM_Config]'
    litellm_spendlogs: 'actions.LiteLLM_SpendLogsActions[models.LiteLLM_SpendLogs]'
    litellm_errorlogs: 'actions.LiteLLM_ErrorLogsActions[models.LiteLLM_ErrorLogs]'
    litellm_usernotifications: 'actions.LiteLLM_UserNotificationsActions[models.LiteLLM_UserNotifications]'
    litellm_teammembership: 'actions.LiteLLM_TeamMembershipActions[models.LiteLLM_TeamMembership]'
    litellm_organizationmembership: 'actions.LiteLLM_OrganizationMembershipActions[models.LiteLLM_OrganizationMembership]'
    litellm_invitationlink: 'actions.LiteLLM_InvitationLinkActions[models.LiteLLM_InvitationLink]'
    litellm_auditlog: 'actions.LiteLLM_AuditLogActions[models.LiteLLM_AuditLog]'
    litellm_dailyuserspend: 'actions.LiteLLM_DailyUserSpendActions[models.LiteLLM_DailyUserSpend]'
    litellm_dailyorganizationspend: 'actions.LiteLLM_DailyOrganizationSpendActions[models.LiteLLM_DailyOrganizationSpend]'
    litellm_dailyenduserspend: 'actions.LiteLLM_DailyEndUserSpendActions[models.LiteLLM_DailyEndUserSpend]'
    litellm_dailyagentspend: 'actions.LiteLLM_DailyAgentSpendActions[models.LiteLLM_DailyAgentSpend]'
    litellm_dailyteamspend: 'actions.LiteLLM_DailyTeamSpendActions[models.LiteLLM_DailyTeamSpend]'
    litellm_dailytagspend: 'actions.LiteLLM_DailyTagSpendActions[models.LiteLLM_DailyTagSpend]'
    litellm_cronjob: 'actions.LiteLLM_CronJobActions[models.LiteLLM_CronJob]'
    litellm_managedfiletable: 'actions.LiteLLM_ManagedFileTableActions[models.LiteLLM_ManagedFileTable]'
    litellm_managedobjecttable: 'actions.LiteLLM_ManagedObjectTableActions[models.LiteLLM_ManagedObjectTable]'
    litellm_managedvectorstoretable: 'actions.LiteLLM_ManagedVectorStoreTableActions[models.LiteLLM_ManagedVectorStoreTable]'
    litellm_managedvectorstorestable: 'actions.LiteLLM_ManagedVectorStoresTableActions[models.LiteLLM_ManagedVectorStoresTable]'
    litellm_guardrailstable: 'actions.LiteLLM_GuardrailsTableActions[models.LiteLLM_GuardrailsTable]'
    litellm_dailyguardrailmetrics: 'actions.LiteLLM_DailyGuardrailMetricsActions[models.LiteLLM_DailyGuardrailMetrics]'
    litellm_dailypolicymetrics: 'actions.LiteLLM_DailyPolicyMetricsActions[models.LiteLLM_DailyPolicyMetrics]'
    litellm_spendlogguardrailindex: 'actions.LiteLLM_SpendLogGuardrailIndexActions[models.LiteLLM_SpendLogGuardrailIndex]'
    litellm_spendlogtoolindex: 'actions.LiteLLM_SpendLogToolIndexActions[models.LiteLLM_SpendLogToolIndex]'
    litellm_prompttable: 'actions.LiteLLM_PromptTableActions[models.LiteLLM_PromptTable]'
    litellm_healthchecktable: 'actions.LiteLLM_HealthCheckTableActions[models.LiteLLM_HealthCheckTable]'
    litellm_searchtoolstable: 'actions.LiteLLM_SearchToolsTableActions[models.LiteLLM_SearchToolsTable]'
    litellm_ssoconfig: 'actions.LiteLLM_SSOConfigActions[models.LiteLLM_SSOConfig]'
    litellm_managedvectorstoreindextable: 'actions.LiteLLM_ManagedVectorStoreIndexTableActions[models.LiteLLM_ManagedVectorStoreIndexTable]'
    litellm_cacheconfig: 'actions.LiteLLM_CacheConfigActions[models.LiteLLM_CacheConfig]'
    litellm_uisettings: 'actions.LiteLLM_UISettingsActions[models.LiteLLM_UISettings]'
    litellm_configoverrides: 'actions.LiteLLM_ConfigOverridesActions[models.LiteLLM_ConfigOverrides]'
    litellm_skillstable: 'actions.LiteLLM_SkillsTableActions[models.LiteLLM_SkillsTable]'
    litellm_policytable: 'actions.LiteLLM_PolicyTableActions[models.LiteLLM_PolicyTable]'
    litellm_policyattachmenttable: 'actions.LiteLLM_PolicyAttachmentTableActions[models.LiteLLM_PolicyAttachmentTable]'
    litellm_tooltable: 'actions.LiteLLM_ToolTableActions[models.LiteLLM_ToolTable]'
    litellm_accessgrouptable: 'actions.LiteLLM_AccessGroupTableActions[models.LiteLLM_AccessGroupTable]'
    litellm_claudecodeplugintable: 'actions.LiteLLM_ClaudeCodePluginTableActions[models.LiteLLM_ClaudeCodePluginTable]'

    __slots__ = (
        'litellm_budgettable',
        'litellm_credentialstable',
        'litellm_proxymodeltable',
        'litellm_agentstable',
        'litellm_organizationtable',
        'litellm_modeltable',
        'litellm_teamtable',
        'litellm_projecttable',
        'litellm_deletedteamtable',
        'litellm_usertable',
        'litellm_objectpermissiontable',
        'litellm_mcpservertable',
        'litellm_mcpusercredentials',
        'litellm_verificationtoken',
        'litellm_jwtkeymapping',
        'litellm_deprecatedverificationtoken',
        'litellm_deletedverificationtoken',
        'litellm_endusertable',
        'litellm_tagtable',
        'litellm_config',
        'litellm_spendlogs',
        'litellm_errorlogs',
        'litellm_usernotifications',
        'litellm_teammembership',
        'litellm_organizationmembership',
        'litellm_invitationlink',
        'litellm_auditlog',
        'litellm_dailyuserspend',
        'litellm_dailyorganizationspend',
        'litellm_dailyenduserspend',
        'litellm_dailyagentspend',
        'litellm_dailyteamspend',
        'litellm_dailytagspend',
        'litellm_cronjob',
        'litellm_managedfiletable',
        'litellm_managedobjecttable',
        'litellm_managedvectorstoretable',
        'litellm_managedvectorstorestable',
        'litellm_guardrailstable',
        'litellm_dailyguardrailmetrics',
        'litellm_dailypolicymetrics',
        'litellm_spendlogguardrailindex',
        'litellm_spendlogtoolindex',
        'litellm_prompttable',
        'litellm_healthchecktable',
        'litellm_searchtoolstable',
        'litellm_ssoconfig',
        'litellm_managedvectorstoreindextable',
        'litellm_cacheconfig',
        'litellm_uisettings',
        'litellm_configoverrides',
        'litellm_skillstable',
        'litellm_policytable',
        'litellm_policyattachmenttable',
        'litellm_tooltable',
        'litellm_accessgrouptable',
        'litellm_claudecodeplugintable',
    )

    def __init__(
        self,
        *,
        use_dotenv: bool = True,
        log_queries: bool = False,
        auto_register: bool = False,
        datasource: DatasourceOverride | None = None,
        connect_timeout: int | timedelta = DEFAULT_CONNECT_TIMEOUT,
        http: HttpConfig | None = None,
    ) -> None:
        super().__init__(
            http=http,
            use_dotenv=use_dotenv,
            log_queries=log_queries,
            datasource=datasource,
            connect_timeout=connect_timeout,
        )
        self._set_generated_properties(
            schema_path=SCHEMA_PATH,
            engine_type=ENGINE_TYPE,
            prisma_models=PRISMA_MODELS,
            packaged_schema_path=PACKAGED_SCHEMA_PATH,
            relational_field_mappings=RELATIONAL_FIELD_MAPPINGS,
            preview_features=set([]),
            active_provider='postgresql',
            default_datasource_name='client',
        )

        self.litellm_budgettable = actions.LiteLLM_BudgetTableActions[models.LiteLLM_BudgetTable](self, models.LiteLLM_BudgetTable)
        self.litellm_credentialstable = actions.LiteLLM_CredentialsTableActions[models.LiteLLM_CredentialsTable](self, models.LiteLLM_CredentialsTable)
        self.litellm_proxymodeltable = actions.LiteLLM_ProxyModelTableActions[models.LiteLLM_ProxyModelTable](self, models.LiteLLM_ProxyModelTable)
        self.litellm_agentstable = actions.LiteLLM_AgentsTableActions[models.LiteLLM_AgentsTable](self, models.LiteLLM_AgentsTable)
        self.litellm_organizationtable = actions.LiteLLM_OrganizationTableActions[models.LiteLLM_OrganizationTable](self, models.LiteLLM_OrganizationTable)
        self.litellm_modeltable = actions.LiteLLM_ModelTableActions[models.LiteLLM_ModelTable](self, models.LiteLLM_ModelTable)
        self.litellm_teamtable = actions.LiteLLM_TeamTableActions[models.LiteLLM_TeamTable](self, models.LiteLLM_TeamTable)
        self.litellm_projecttable = actions.LiteLLM_ProjectTableActions[models.LiteLLM_ProjectTable](self, models.LiteLLM_ProjectTable)
        self.litellm_deletedteamtable = actions.LiteLLM_DeletedTeamTableActions[models.LiteLLM_DeletedTeamTable](self, models.LiteLLM_DeletedTeamTable)
        self.litellm_usertable = actions.LiteLLM_UserTableActions[models.LiteLLM_UserTable](self, models.LiteLLM_UserTable)
        self.litellm_objectpermissiontable = actions.LiteLLM_ObjectPermissionTableActions[models.LiteLLM_ObjectPermissionTable](self, models.LiteLLM_ObjectPermissionTable)
        self.litellm_mcpservertable = actions.LiteLLM_MCPServerTableActions[models.LiteLLM_MCPServerTable](self, models.LiteLLM_MCPServerTable)
        self.litellm_mcpusercredentials = actions.LiteLLM_MCPUserCredentialsActions[models.LiteLLM_MCPUserCredentials](self, models.LiteLLM_MCPUserCredentials)
        self.litellm_verificationtoken = actions.LiteLLM_VerificationTokenActions[models.LiteLLM_VerificationToken](self, models.LiteLLM_VerificationToken)
        self.litellm_jwtkeymapping = actions.LiteLLM_JWTKeyMappingActions[models.LiteLLM_JWTKeyMapping](self, models.LiteLLM_JWTKeyMapping)
        self.litellm_deprecatedverificationtoken = actions.LiteLLM_DeprecatedVerificationTokenActions[models.LiteLLM_DeprecatedVerificationToken](self, models.LiteLLM_DeprecatedVerificationToken)
        self.litellm_deletedverificationtoken = actions.LiteLLM_DeletedVerificationTokenActions[models.LiteLLM_DeletedVerificationToken](self, models.LiteLLM_DeletedVerificationToken)
        self.litellm_endusertable = actions.LiteLLM_EndUserTableActions[models.LiteLLM_EndUserTable](self, models.LiteLLM_EndUserTable)
        self.litellm_tagtable = actions.LiteLLM_TagTableActions[models.LiteLLM_TagTable](self, models.LiteLLM_TagTable)
        self.litellm_config = actions.LiteLLM_ConfigActions[models.LiteLLM_Config](self, models.LiteLLM_Config)
        self.litellm_spendlogs = actions.LiteLLM_SpendLogsActions[models.LiteLLM_SpendLogs](self, models.LiteLLM_SpendLogs)
        self.litellm_errorlogs = actions.LiteLLM_ErrorLogsActions[models.LiteLLM_ErrorLogs](self, models.LiteLLM_ErrorLogs)
        self.litellm_usernotifications = actions.LiteLLM_UserNotificationsActions[models.LiteLLM_UserNotifications](self, models.LiteLLM_UserNotifications)
        self.litellm_teammembership = actions.LiteLLM_TeamMembershipActions[models.LiteLLM_TeamMembership](self, models.LiteLLM_TeamMembership)
        self.litellm_organizationmembership = actions.LiteLLM_OrganizationMembershipActions[models.LiteLLM_OrganizationMembership](self, models.LiteLLM_OrganizationMembership)
        self.litellm_invitationlink = actions.LiteLLM_InvitationLinkActions[models.LiteLLM_InvitationLink](self, models.LiteLLM_InvitationLink)
        self.litellm_auditlog = actions.LiteLLM_AuditLogActions[models.LiteLLM_AuditLog](self, models.LiteLLM_AuditLog)
        self.litellm_dailyuserspend = actions.LiteLLM_DailyUserSpendActions[models.LiteLLM_DailyUserSpend](self, models.LiteLLM_DailyUserSpend)
        self.litellm_dailyorganizationspend = actions.LiteLLM_DailyOrganizationSpendActions[models.LiteLLM_DailyOrganizationSpend](self, models.LiteLLM_DailyOrganizationSpend)
        self.litellm_dailyenduserspend = actions.LiteLLM_DailyEndUserSpendActions[models.LiteLLM_DailyEndUserSpend](self, models.LiteLLM_DailyEndUserSpend)
        self.litellm_dailyagentspend = actions.LiteLLM_DailyAgentSpendActions[models.LiteLLM_DailyAgentSpend](self, models.LiteLLM_DailyAgentSpend)
        self.litellm_dailyteamspend = actions.LiteLLM_DailyTeamSpendActions[models.LiteLLM_DailyTeamSpend](self, models.LiteLLM_DailyTeamSpend)
        self.litellm_dailytagspend = actions.LiteLLM_DailyTagSpendActions[models.LiteLLM_DailyTagSpend](self, models.LiteLLM_DailyTagSpend)
        self.litellm_cronjob = actions.LiteLLM_CronJobActions[models.LiteLLM_CronJob](self, models.LiteLLM_CronJob)
        self.litellm_managedfiletable = actions.LiteLLM_ManagedFileTableActions[models.LiteLLM_ManagedFileTable](self, models.LiteLLM_ManagedFileTable)
        self.litellm_managedobjecttable = actions.LiteLLM_ManagedObjectTableActions[models.LiteLLM_ManagedObjectTable](self, models.LiteLLM_ManagedObjectTable)
        self.litellm_managedvectorstoretable = actions.LiteLLM_ManagedVectorStoreTableActions[models.LiteLLM_ManagedVectorStoreTable](self, models.LiteLLM_ManagedVectorStoreTable)
        self.litellm_managedvectorstorestable = actions.LiteLLM_ManagedVectorStoresTableActions[models.LiteLLM_ManagedVectorStoresTable](self, models.LiteLLM_ManagedVectorStoresTable)
        self.litellm_guardrailstable = actions.LiteLLM_GuardrailsTableActions[models.LiteLLM_GuardrailsTable](self, models.LiteLLM_GuardrailsTable)
        self.litellm_dailyguardrailmetrics = actions.LiteLLM_DailyGuardrailMetricsActions[models.LiteLLM_DailyGuardrailMetrics](self, models.LiteLLM_DailyGuardrailMetrics)
        self.litellm_dailypolicymetrics = actions.LiteLLM_DailyPolicyMetricsActions[models.LiteLLM_DailyPolicyMetrics](self, models.LiteLLM_DailyPolicyMetrics)
        self.litellm_spendlogguardrailindex = actions.LiteLLM_SpendLogGuardrailIndexActions[models.LiteLLM_SpendLogGuardrailIndex](self, models.LiteLLM_SpendLogGuardrailIndex)
        self.litellm_spendlogtoolindex = actions.LiteLLM_SpendLogToolIndexActions[models.LiteLLM_SpendLogToolIndex](self, models.LiteLLM_SpendLogToolIndex)
        self.litellm_prompttable = actions.LiteLLM_PromptTableActions[models.LiteLLM_PromptTable](self, models.LiteLLM_PromptTable)
        self.litellm_healthchecktable = actions.LiteLLM_HealthCheckTableActions[models.LiteLLM_HealthCheckTable](self, models.LiteLLM_HealthCheckTable)
        self.litellm_searchtoolstable = actions.LiteLLM_SearchToolsTableActions[models.LiteLLM_SearchToolsTable](self, models.LiteLLM_SearchToolsTable)
        self.litellm_ssoconfig = actions.LiteLLM_SSOConfigActions[models.LiteLLM_SSOConfig](self, models.LiteLLM_SSOConfig)
        self.litellm_managedvectorstoreindextable = actions.LiteLLM_ManagedVectorStoreIndexTableActions[models.LiteLLM_ManagedVectorStoreIndexTable](self, models.LiteLLM_ManagedVectorStoreIndexTable)
        self.litellm_cacheconfig = actions.LiteLLM_CacheConfigActions[models.LiteLLM_CacheConfig](self, models.LiteLLM_CacheConfig)
        self.litellm_uisettings = actions.LiteLLM_UISettingsActions[models.LiteLLM_UISettings](self, models.LiteLLM_UISettings)
        self.litellm_configoverrides = actions.LiteLLM_ConfigOverridesActions[models.LiteLLM_ConfigOverrides](self, models.LiteLLM_ConfigOverrides)
        self.litellm_skillstable = actions.LiteLLM_SkillsTableActions[models.LiteLLM_SkillsTable](self, models.LiteLLM_SkillsTable)
        self.litellm_policytable = actions.LiteLLM_PolicyTableActions[models.LiteLLM_PolicyTable](self, models.LiteLLM_PolicyTable)
        self.litellm_policyattachmenttable = actions.LiteLLM_PolicyAttachmentTableActions[models.LiteLLM_PolicyAttachmentTable](self, models.LiteLLM_PolicyAttachmentTable)
        self.litellm_tooltable = actions.LiteLLM_ToolTableActions[models.LiteLLM_ToolTable](self, models.LiteLLM_ToolTable)
        self.litellm_accessgrouptable = actions.LiteLLM_AccessGroupTableActions[models.LiteLLM_AccessGroupTable](self, models.LiteLLM_AccessGroupTable)
        self.litellm_claudecodeplugintable = actions.LiteLLM_ClaudeCodePluginTableActions[models.LiteLLM_ClaudeCodePluginTable](self, models.LiteLLM_ClaudeCodePluginTable)

        if auto_register:
            register(self)

    @property
    @override
    def _default_datasource(self) -> Datasource:
        return {
            'name': 'client',
            'url': OptionalValueFromEnvVar(**{'value': None, 'fromEnvVar': 'DATABASE_URL'}).resolve(),
            'source_file_path': '/home/app/Keep/data/litellm-main/schema.prisma',
        }

    async def execute_raw(self, query: LiteralString, *args: Any) -> int:
        resp = await self._execute(
            method='execute_raw',
            arguments={
                'query': query,
                'parameters': args,
            },
            model=None,
        )
        return int(resp['data']['result'])

    @overload
    async def query_first(
        self,
        query: LiteralString,
        *args: Any,
    ) -> dict[str, Any]:
        ...

    @overload
    async def query_first(
        self,
        query: LiteralString,
        *args: Any,
        model: Type[BaseModelT],
    ) -> Optional[BaseModelT]:
        ...

    async def query_first(
        self,
        query: LiteralString,
        *args: Any,
        model: Optional[Type[BaseModelT]] = None,
    ) -> Union[Optional[BaseModelT], dict[str, Any]]:
        """This function is the exact same as `query_raw()` but returns the first result.

        If model is given, the returned record is converted to the pydantic model first,
        otherwise a raw dictionary will be returned.
        """
        results: Sequence[Union[BaseModelT, dict[str, Any]]]
        if model is not None:
            results = await self.query_raw(query, *args, model=model)
        else:
            results = await self.query_raw(query, *args)

        if not results:
            return None

        return results[0]

    @overload
    async def query_raw(
        self,
        query: LiteralString,
        *args: Any,
    ) -> List[dict[str, Any]]:
        ...

    @overload
    async def query_raw(
        self,
        query: LiteralString,
        *args: Any,
        model: Type[BaseModelT],
    ) -> List[BaseModelT]:
        ...

    async def query_raw(
        self,
        query: LiteralString,
        *args: Any,
        model: Optional[Type[BaseModelT]] = None,
    ) -> Union[List[BaseModelT], List[dict[str, Any]]]:
        """Execute a raw SQL query against the database.

        If model is given, each returned record is converted to the pydantic model first,
        otherwise results will be raw dictionaries.
        """
        resp = await self._execute(
            method='query_raw',
            arguments={
                'query': query,
                'parameters': args,
            },
            model=model,
        )
        result = resp['data']['result']
        if model is not None:
            return deserialize_raw_results(result, model=model)

        return deserialize_raw_results(result)

    def batch_(self) -> Batch:
        """Returns a context manager for grouping write queries into a single transaction."""
        return Batch(client=self)

    def tx(
        self,
        *,
        max_wait: Union[int, timedelta] = DEFAULT_TX_MAX_WAIT,
        timeout: Union[int, timedelta] = DEFAULT_TX_TIMEOUT,
    ) -> TransactionManager:
        """Returns a context manager for executing queries within a database transaction.

        Entering the context manager returns a new Prisma instance wrapping all
        actions within a transaction, queries will be isolated to the Prisma instance and
        will not be commited to the database until the context manager exits.

        By default, Prisma will wait a maximum of 2 seconds to acquire a transaction from the database. You can modify this
        default with the `max_wait` argument which accepts a value in milliseconds or `datetime.timedelta`.

        By default, Prisma will cancel and rollback ay transactions that last longer than 5 seconds. You can modify this timeout
        with the `timeout` argument which accepts a value in milliseconds or `datetime.timedelta`.

        Example usage:

        ```py
        async with client.tx() as transaction:
            user1 = await client.user.create({'name': 'Robert'})
            user2 = await client.user.create({'name': 'Tegan'})
        ```

        In the above example, if the first database call succeeds but the second does not then neither of the records will be created.
        """
        return TransactionManager(
            client=self,
            max_wait=max_wait,
            timeout=timeout,
        )


TransactionManager = AsyncTransactionManager[Prisma]


# TODO: this should return the results as well
# TODO: don't require copy-pasting arguments between actions and batch actions
class Batch:
    litellm_budgettable: 'LiteLLM_BudgetTableBatchActions'
    litellm_credentialstable: 'LiteLLM_CredentialsTableBatchActions'
    litellm_proxymodeltable: 'LiteLLM_ProxyModelTableBatchActions'
    litellm_agentstable: 'LiteLLM_AgentsTableBatchActions'
    litellm_organizationtable: 'LiteLLM_OrganizationTableBatchActions'
    litellm_modeltable: 'LiteLLM_ModelTableBatchActions'
    litellm_teamtable: 'LiteLLM_TeamTableBatchActions'
    litellm_projecttable: 'LiteLLM_ProjectTableBatchActions'
    litellm_deletedteamtable: 'LiteLLM_DeletedTeamTableBatchActions'
    litellm_usertable: 'LiteLLM_UserTableBatchActions'
    litellm_objectpermissiontable: 'LiteLLM_ObjectPermissionTableBatchActions'
    litellm_mcpservertable: 'LiteLLM_MCPServerTableBatchActions'
    litellm_mcpusercredentials: 'LiteLLM_MCPUserCredentialsBatchActions'
    litellm_verificationtoken: 'LiteLLM_VerificationTokenBatchActions'
    litellm_jwtkeymapping: 'LiteLLM_JWTKeyMappingBatchActions'
    litellm_deprecatedverificationtoken: 'LiteLLM_DeprecatedVerificationTokenBatchActions'
    litellm_deletedverificationtoken: 'LiteLLM_DeletedVerificationTokenBatchActions'
    litellm_endusertable: 'LiteLLM_EndUserTableBatchActions'
    litellm_tagtable: 'LiteLLM_TagTableBatchActions'
    litellm_config: 'LiteLLM_ConfigBatchActions'
    litellm_spendlogs: 'LiteLLM_SpendLogsBatchActions'
    litellm_errorlogs: 'LiteLLM_ErrorLogsBatchActions'
    litellm_usernotifications: 'LiteLLM_UserNotificationsBatchActions'
    litellm_teammembership: 'LiteLLM_TeamMembershipBatchActions'
    litellm_organizationmembership: 'LiteLLM_OrganizationMembershipBatchActions'
    litellm_invitationlink: 'LiteLLM_InvitationLinkBatchActions'
    litellm_auditlog: 'LiteLLM_AuditLogBatchActions'
    litellm_dailyuserspend: 'LiteLLM_DailyUserSpendBatchActions'
    litellm_dailyorganizationspend: 'LiteLLM_DailyOrganizationSpendBatchActions'
    litellm_dailyenduserspend: 'LiteLLM_DailyEndUserSpendBatchActions'
    litellm_dailyagentspend: 'LiteLLM_DailyAgentSpendBatchActions'
    litellm_dailyteamspend: 'LiteLLM_DailyTeamSpendBatchActions'
    litellm_dailytagspend: 'LiteLLM_DailyTagSpendBatchActions'
    litellm_cronjob: 'LiteLLM_CronJobBatchActions'
    litellm_managedfiletable: 'LiteLLM_ManagedFileTableBatchActions'
    litellm_managedobjecttable: 'LiteLLM_ManagedObjectTableBatchActions'
    litellm_managedvectorstoretable: 'LiteLLM_ManagedVectorStoreTableBatchActions'
    litellm_managedvectorstorestable: 'LiteLLM_ManagedVectorStoresTableBatchActions'
    litellm_guardrailstable: 'LiteLLM_GuardrailsTableBatchActions'
    litellm_dailyguardrailmetrics: 'LiteLLM_DailyGuardrailMetricsBatchActions'
    litellm_dailypolicymetrics: 'LiteLLM_DailyPolicyMetricsBatchActions'
    litellm_spendlogguardrailindex: 'LiteLLM_SpendLogGuardrailIndexBatchActions'
    litellm_spendlogtoolindex: 'LiteLLM_SpendLogToolIndexBatchActions'
    litellm_prompttable: 'LiteLLM_PromptTableBatchActions'
    litellm_healthchecktable: 'LiteLLM_HealthCheckTableBatchActions'
    litellm_searchtoolstable: 'LiteLLM_SearchToolsTableBatchActions'
    litellm_ssoconfig: 'LiteLLM_SSOConfigBatchActions'
    litellm_managedvectorstoreindextable: 'LiteLLM_ManagedVectorStoreIndexTableBatchActions'
    litellm_cacheconfig: 'LiteLLM_CacheConfigBatchActions'
    litellm_uisettings: 'LiteLLM_UISettingsBatchActions'
    litellm_configoverrides: 'LiteLLM_ConfigOverridesBatchActions'
    litellm_skillstable: 'LiteLLM_SkillsTableBatchActions'
    litellm_policytable: 'LiteLLM_PolicyTableBatchActions'
    litellm_policyattachmenttable: 'LiteLLM_PolicyAttachmentTableBatchActions'
    litellm_tooltable: 'LiteLLM_ToolTableBatchActions'
    litellm_accessgrouptable: 'LiteLLM_AccessGroupTableBatchActions'
    litellm_claudecodeplugintable: 'LiteLLM_ClaudeCodePluginTableBatchActions'

    def __init__(self, client: Prisma) -> None:
        self.__client = client
        self.__queries: List[str] = []
        self._active_provider = client._active_provider
        self.litellm_budgettable = LiteLLM_BudgetTableBatchActions(self)
        self.litellm_credentialstable = LiteLLM_CredentialsTableBatchActions(self)
        self.litellm_proxymodeltable = LiteLLM_ProxyModelTableBatchActions(self)
        self.litellm_agentstable = LiteLLM_AgentsTableBatchActions(self)
        self.litellm_organizationtable = LiteLLM_OrganizationTableBatchActions(self)
        self.litellm_modeltable = LiteLLM_ModelTableBatchActions(self)
        self.litellm_teamtable = LiteLLM_TeamTableBatchActions(self)
        self.litellm_projecttable = LiteLLM_ProjectTableBatchActions(self)
        self.litellm_deletedteamtable = LiteLLM_DeletedTeamTableBatchActions(self)
        self.litellm_usertable = LiteLLM_UserTableBatchActions(self)
        self.litellm_objectpermissiontable = LiteLLM_ObjectPermissionTableBatchActions(self)
        self.litellm_mcpservertable = LiteLLM_MCPServerTableBatchActions(self)
        self.litellm_mcpusercredentials = LiteLLM_MCPUserCredentialsBatchActions(self)
        self.litellm_verificationtoken = LiteLLM_VerificationTokenBatchActions(self)
        self.litellm_jwtkeymapping = LiteLLM_JWTKeyMappingBatchActions(self)
        self.litellm_deprecatedverificationtoken = LiteLLM_DeprecatedVerificationTokenBatchActions(self)
        self.litellm_deletedverificationtoken = LiteLLM_DeletedVerificationTokenBatchActions(self)
        self.litellm_endusertable = LiteLLM_EndUserTableBatchActions(self)
        self.litellm_tagtable = LiteLLM_TagTableBatchActions(self)
        self.litellm_config = LiteLLM_ConfigBatchActions(self)
        self.litellm_spendlogs = LiteLLM_SpendLogsBatchActions(self)
        self.litellm_errorlogs = LiteLLM_ErrorLogsBatchActions(self)
        self.litellm_usernotifications = LiteLLM_UserNotificationsBatchActions(self)
        self.litellm_teammembership = LiteLLM_TeamMembershipBatchActions(self)
        self.litellm_organizationmembership = LiteLLM_OrganizationMembershipBatchActions(self)
        self.litellm_invitationlink = LiteLLM_InvitationLinkBatchActions(self)
        self.litellm_auditlog = LiteLLM_AuditLogBatchActions(self)
        self.litellm_dailyuserspend = LiteLLM_DailyUserSpendBatchActions(self)
        self.litellm_dailyorganizationspend = LiteLLM_DailyOrganizationSpendBatchActions(self)
        self.litellm_dailyenduserspend = LiteLLM_DailyEndUserSpendBatchActions(self)
        self.litellm_dailyagentspend = LiteLLM_DailyAgentSpendBatchActions(self)
        self.litellm_dailyteamspend = LiteLLM_DailyTeamSpendBatchActions(self)
        self.litellm_dailytagspend = LiteLLM_DailyTagSpendBatchActions(self)
        self.litellm_cronjob = LiteLLM_CronJobBatchActions(self)
        self.litellm_managedfiletable = LiteLLM_ManagedFileTableBatchActions(self)
        self.litellm_managedobjecttable = LiteLLM_ManagedObjectTableBatchActions(self)
        self.litellm_managedvectorstoretable = LiteLLM_ManagedVectorStoreTableBatchActions(self)
        self.litellm_managedvectorstorestable = LiteLLM_ManagedVectorStoresTableBatchActions(self)
        self.litellm_guardrailstable = LiteLLM_GuardrailsTableBatchActions(self)
        self.litellm_dailyguardrailmetrics = LiteLLM_DailyGuardrailMetricsBatchActions(self)
        self.litellm_dailypolicymetrics = LiteLLM_DailyPolicyMetricsBatchActions(self)
        self.litellm_spendlogguardrailindex = LiteLLM_SpendLogGuardrailIndexBatchActions(self)
        self.litellm_spendlogtoolindex = LiteLLM_SpendLogToolIndexBatchActions(self)
        self.litellm_prompttable = LiteLLM_PromptTableBatchActions(self)
        self.litellm_healthchecktable = LiteLLM_HealthCheckTableBatchActions(self)
        self.litellm_searchtoolstable = LiteLLM_SearchToolsTableBatchActions(self)
        self.litellm_ssoconfig = LiteLLM_SSOConfigBatchActions(self)
        self.litellm_managedvectorstoreindextable = LiteLLM_ManagedVectorStoreIndexTableBatchActions(self)
        self.litellm_cacheconfig = LiteLLM_CacheConfigBatchActions(self)
        self.litellm_uisettings = LiteLLM_UISettingsBatchActions(self)
        self.litellm_configoverrides = LiteLLM_ConfigOverridesBatchActions(self)
        self.litellm_skillstable = LiteLLM_SkillsTableBatchActions(self)
        self.litellm_policytable = LiteLLM_PolicyTableBatchActions(self)
        self.litellm_policyattachmenttable = LiteLLM_PolicyAttachmentTableBatchActions(self)
        self.litellm_tooltable = LiteLLM_ToolTableBatchActions(self)
        self.litellm_accessgrouptable = LiteLLM_AccessGroupTableBatchActions(self)
        self.litellm_claudecodeplugintable = LiteLLM_ClaudeCodePluginTableBatchActions(self)

    def _add(self, **kwargs: Any) -> None:
        builder = QueryBuilder(
            **kwargs,
            prisma_models=PRISMA_MODELS,
            relational_field_mappings=RELATIONAL_FIELD_MAPPINGS,
        )
        self.__queries.append(builder.build_query())

    async def commit(self) -> None:
        """Execute the queries"""
        # TODO: normalise this, we should still call client._execute
        queries = self.__queries
        self.__queries = []

        payload = {
            'batch': [
                {
                    'query': query,
                    'variables': {},
                }
                for query in queries
            ],
            'transaction': True,
        }
        await self.__client._engine.query(
            dumps(payload),
            tx_id=self.__client._tx_id,
        )

    def execute_raw(self, query: LiteralString, *args: Any) -> None:
        self._add(
            method='execute_raw',
            arguments={
                'query': query,
                'parameters': args,
            }
        )

    async def __aenter__(self) -> 'Batch':
        return self

    async def __aexit__(
        self,
        exc_type: Optional[Type[BaseException]],
        exc: Optional[BaseException],
        exc_tb: Optional[TracebackType],
    ) -> None:
        if exc is None:
            await self.commit()


# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_BudgetTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_BudgetTableCreateInput,
        include: Optional[types.LiteLLM_BudgetTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_BudgetTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_BudgetTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_BudgetTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_BudgetTableWhereUniqueInput,
        include: Optional[types.LiteLLM_BudgetTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_BudgetTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_BudgetTableUpdateInput,
        where: types.LiteLLM_BudgetTableWhereUniqueInput,
        include: Optional[types.LiteLLM_BudgetTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_BudgetTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_BudgetTableWhereUniqueInput,
        data: types.LiteLLM_BudgetTableUpsertInput,
        include: Optional[types.LiteLLM_BudgetTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_BudgetTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_BudgetTableUpdateManyMutationInput,
        where: types.LiteLLM_BudgetTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_BudgetTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_BudgetTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_BudgetTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_CredentialsTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_CredentialsTableCreateInput,
        include: Optional[types.LiteLLM_CredentialsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_CredentialsTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_CredentialsTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_CredentialsTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_CredentialsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_CredentialsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_CredentialsTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_CredentialsTableUpdateInput,
        where: types.LiteLLM_CredentialsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_CredentialsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_CredentialsTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_CredentialsTableWhereUniqueInput,
        data: types.LiteLLM_CredentialsTableUpsertInput,
        include: Optional[types.LiteLLM_CredentialsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_CredentialsTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_CredentialsTableUpdateManyMutationInput,
        where: types.LiteLLM_CredentialsTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_CredentialsTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_CredentialsTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_CredentialsTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ProxyModelTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ProxyModelTableCreateInput,
        include: Optional[types.LiteLLM_ProxyModelTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ProxyModelTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ProxyModelTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ProxyModelTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ProxyModelTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ProxyModelTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ProxyModelTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ProxyModelTableUpdateInput,
        where: types.LiteLLM_ProxyModelTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ProxyModelTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ProxyModelTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ProxyModelTableWhereUniqueInput,
        data: types.LiteLLM_ProxyModelTableUpsertInput,
        include: Optional[types.LiteLLM_ProxyModelTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ProxyModelTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ProxyModelTableUpdateManyMutationInput,
        where: types.LiteLLM_ProxyModelTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ProxyModelTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ProxyModelTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ProxyModelTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_AgentsTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_AgentsTableCreateInput,
        include: Optional[types.LiteLLM_AgentsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_AgentsTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_AgentsTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_AgentsTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_AgentsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_AgentsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_AgentsTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_AgentsTableUpdateInput,
        where: types.LiteLLM_AgentsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_AgentsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_AgentsTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_AgentsTableWhereUniqueInput,
        data: types.LiteLLM_AgentsTableUpsertInput,
        include: Optional[types.LiteLLM_AgentsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_AgentsTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_AgentsTableUpdateManyMutationInput,
        where: types.LiteLLM_AgentsTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_AgentsTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_AgentsTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_AgentsTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_OrganizationTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_OrganizationTableCreateInput,
        include: Optional[types.LiteLLM_OrganizationTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_OrganizationTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_OrganizationTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_OrganizationTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_OrganizationTableWhereUniqueInput,
        include: Optional[types.LiteLLM_OrganizationTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_OrganizationTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_OrganizationTableUpdateInput,
        where: types.LiteLLM_OrganizationTableWhereUniqueInput,
        include: Optional[types.LiteLLM_OrganizationTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_OrganizationTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_OrganizationTableWhereUniqueInput,
        data: types.LiteLLM_OrganizationTableUpsertInput,
        include: Optional[types.LiteLLM_OrganizationTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_OrganizationTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_OrganizationTableUpdateManyMutationInput,
        where: types.LiteLLM_OrganizationTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_OrganizationTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_OrganizationTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_OrganizationTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ModelTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ModelTableCreateInput,
        include: Optional[types.LiteLLM_ModelTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ModelTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ModelTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ModelTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ModelTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ModelTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ModelTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ModelTableUpdateInput,
        where: types.LiteLLM_ModelTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ModelTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ModelTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ModelTableWhereUniqueInput,
        data: types.LiteLLM_ModelTableUpsertInput,
        include: Optional[types.LiteLLM_ModelTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ModelTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ModelTableUpdateManyMutationInput,
        where: types.LiteLLM_ModelTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ModelTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ModelTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ModelTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_TeamTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_TeamTableCreateInput,
        include: Optional[types.LiteLLM_TeamTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_TeamTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_TeamTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_TeamTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_TeamTableWhereUniqueInput,
        include: Optional[types.LiteLLM_TeamTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_TeamTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_TeamTableUpdateInput,
        where: types.LiteLLM_TeamTableWhereUniqueInput,
        include: Optional[types.LiteLLM_TeamTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_TeamTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_TeamTableWhereUniqueInput,
        data: types.LiteLLM_TeamTableUpsertInput,
        include: Optional[types.LiteLLM_TeamTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_TeamTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_TeamTableUpdateManyMutationInput,
        where: types.LiteLLM_TeamTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_TeamTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_TeamTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_TeamTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ProjectTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ProjectTableCreateInput,
        include: Optional[types.LiteLLM_ProjectTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ProjectTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ProjectTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ProjectTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ProjectTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ProjectTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ProjectTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ProjectTableUpdateInput,
        where: types.LiteLLM_ProjectTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ProjectTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ProjectTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ProjectTableWhereUniqueInput,
        data: types.LiteLLM_ProjectTableUpsertInput,
        include: Optional[types.LiteLLM_ProjectTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ProjectTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ProjectTableUpdateManyMutationInput,
        where: types.LiteLLM_ProjectTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ProjectTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ProjectTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ProjectTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DeletedTeamTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DeletedTeamTableCreateInput,
        include: Optional[types.LiteLLM_DeletedTeamTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DeletedTeamTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DeletedTeamTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DeletedTeamTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DeletedTeamTableWhereUniqueInput,
        include: Optional[types.LiteLLM_DeletedTeamTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DeletedTeamTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DeletedTeamTableUpdateInput,
        where: types.LiteLLM_DeletedTeamTableWhereUniqueInput,
        include: Optional[types.LiteLLM_DeletedTeamTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DeletedTeamTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DeletedTeamTableWhereUniqueInput,
        data: types.LiteLLM_DeletedTeamTableUpsertInput,
        include: Optional[types.LiteLLM_DeletedTeamTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DeletedTeamTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DeletedTeamTableUpdateManyMutationInput,
        where: types.LiteLLM_DeletedTeamTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DeletedTeamTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DeletedTeamTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DeletedTeamTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_UserTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_UserTableCreateInput,
        include: Optional[types.LiteLLM_UserTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_UserTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_UserTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_UserTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_UserTableWhereUniqueInput,
        include: Optional[types.LiteLLM_UserTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_UserTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_UserTableUpdateInput,
        where: types.LiteLLM_UserTableWhereUniqueInput,
        include: Optional[types.LiteLLM_UserTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_UserTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_UserTableWhereUniqueInput,
        data: types.LiteLLM_UserTableUpsertInput,
        include: Optional[types.LiteLLM_UserTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_UserTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_UserTableUpdateManyMutationInput,
        where: types.LiteLLM_UserTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_UserTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_UserTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_UserTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ObjectPermissionTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ObjectPermissionTableCreateInput,
        include: Optional[types.LiteLLM_ObjectPermissionTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ObjectPermissionTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ObjectPermissionTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ObjectPermissionTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ObjectPermissionTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ObjectPermissionTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ObjectPermissionTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ObjectPermissionTableUpdateInput,
        where: types.LiteLLM_ObjectPermissionTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ObjectPermissionTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ObjectPermissionTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ObjectPermissionTableWhereUniqueInput,
        data: types.LiteLLM_ObjectPermissionTableUpsertInput,
        include: Optional[types.LiteLLM_ObjectPermissionTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ObjectPermissionTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ObjectPermissionTableUpdateManyMutationInput,
        where: types.LiteLLM_ObjectPermissionTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ObjectPermissionTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ObjectPermissionTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ObjectPermissionTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_MCPServerTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_MCPServerTableCreateInput,
        include: Optional[types.LiteLLM_MCPServerTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_MCPServerTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_MCPServerTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_MCPServerTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_MCPServerTableWhereUniqueInput,
        include: Optional[types.LiteLLM_MCPServerTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_MCPServerTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_MCPServerTableUpdateInput,
        where: types.LiteLLM_MCPServerTableWhereUniqueInput,
        include: Optional[types.LiteLLM_MCPServerTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_MCPServerTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_MCPServerTableWhereUniqueInput,
        data: types.LiteLLM_MCPServerTableUpsertInput,
        include: Optional[types.LiteLLM_MCPServerTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_MCPServerTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_MCPServerTableUpdateManyMutationInput,
        where: types.LiteLLM_MCPServerTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_MCPServerTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_MCPServerTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_MCPServerTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_MCPUserCredentialsBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_MCPUserCredentialsCreateInput,
        include: Optional[types.LiteLLM_MCPUserCredentialsInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_MCPUserCredentials,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_MCPUserCredentialsCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_MCPUserCredentials,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_MCPUserCredentialsWhereUniqueInput,
        include: Optional[types.LiteLLM_MCPUserCredentialsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_MCPUserCredentials,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_MCPUserCredentialsUpdateInput,
        where: types.LiteLLM_MCPUserCredentialsWhereUniqueInput,
        include: Optional[types.LiteLLM_MCPUserCredentialsInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_MCPUserCredentials,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_MCPUserCredentialsWhereUniqueInput,
        data: types.LiteLLM_MCPUserCredentialsUpsertInput,
        include: Optional[types.LiteLLM_MCPUserCredentialsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_MCPUserCredentials,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_MCPUserCredentialsUpdateManyMutationInput,
        where: types.LiteLLM_MCPUserCredentialsWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_MCPUserCredentials,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_MCPUserCredentialsWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_MCPUserCredentials,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_VerificationTokenBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_VerificationTokenCreateInput,
        include: Optional[types.LiteLLM_VerificationTokenInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_VerificationToken,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_VerificationTokenCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_VerificationToken,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_VerificationTokenWhereUniqueInput,
        include: Optional[types.LiteLLM_VerificationTokenInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_VerificationToken,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_VerificationTokenUpdateInput,
        where: types.LiteLLM_VerificationTokenWhereUniqueInput,
        include: Optional[types.LiteLLM_VerificationTokenInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_VerificationToken,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_VerificationTokenWhereUniqueInput,
        data: types.LiteLLM_VerificationTokenUpsertInput,
        include: Optional[types.LiteLLM_VerificationTokenInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_VerificationToken,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_VerificationTokenUpdateManyMutationInput,
        where: types.LiteLLM_VerificationTokenWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_VerificationToken,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_VerificationTokenWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_VerificationToken,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_JWTKeyMappingBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_JWTKeyMappingCreateInput,
        include: Optional[types.LiteLLM_JWTKeyMappingInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_JWTKeyMapping,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_JWTKeyMappingCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_JWTKeyMapping,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_JWTKeyMappingWhereUniqueInput,
        include: Optional[types.LiteLLM_JWTKeyMappingInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_JWTKeyMapping,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_JWTKeyMappingUpdateInput,
        where: types.LiteLLM_JWTKeyMappingWhereUniqueInput,
        include: Optional[types.LiteLLM_JWTKeyMappingInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_JWTKeyMapping,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_JWTKeyMappingWhereUniqueInput,
        data: types.LiteLLM_JWTKeyMappingUpsertInput,
        include: Optional[types.LiteLLM_JWTKeyMappingInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_JWTKeyMapping,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_JWTKeyMappingUpdateManyMutationInput,
        where: types.LiteLLM_JWTKeyMappingWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_JWTKeyMapping,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_JWTKeyMappingWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_JWTKeyMapping,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DeprecatedVerificationTokenBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DeprecatedVerificationTokenCreateInput,
        include: Optional[types.LiteLLM_DeprecatedVerificationTokenInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DeprecatedVerificationToken,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DeprecatedVerificationTokenCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DeprecatedVerificationToken,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DeprecatedVerificationTokenWhereUniqueInput,
        include: Optional[types.LiteLLM_DeprecatedVerificationTokenInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DeprecatedVerificationToken,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DeprecatedVerificationTokenUpdateInput,
        where: types.LiteLLM_DeprecatedVerificationTokenWhereUniqueInput,
        include: Optional[types.LiteLLM_DeprecatedVerificationTokenInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DeprecatedVerificationToken,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DeprecatedVerificationTokenWhereUniqueInput,
        data: types.LiteLLM_DeprecatedVerificationTokenUpsertInput,
        include: Optional[types.LiteLLM_DeprecatedVerificationTokenInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DeprecatedVerificationToken,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DeprecatedVerificationTokenUpdateManyMutationInput,
        where: types.LiteLLM_DeprecatedVerificationTokenWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DeprecatedVerificationToken,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DeprecatedVerificationTokenWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DeprecatedVerificationToken,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DeletedVerificationTokenBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DeletedVerificationTokenCreateInput,
        include: Optional[types.LiteLLM_DeletedVerificationTokenInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DeletedVerificationToken,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DeletedVerificationTokenCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DeletedVerificationToken,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DeletedVerificationTokenWhereUniqueInput,
        include: Optional[types.LiteLLM_DeletedVerificationTokenInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DeletedVerificationToken,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DeletedVerificationTokenUpdateInput,
        where: types.LiteLLM_DeletedVerificationTokenWhereUniqueInput,
        include: Optional[types.LiteLLM_DeletedVerificationTokenInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DeletedVerificationToken,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DeletedVerificationTokenWhereUniqueInput,
        data: types.LiteLLM_DeletedVerificationTokenUpsertInput,
        include: Optional[types.LiteLLM_DeletedVerificationTokenInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DeletedVerificationToken,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DeletedVerificationTokenUpdateManyMutationInput,
        where: types.LiteLLM_DeletedVerificationTokenWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DeletedVerificationToken,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DeletedVerificationTokenWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DeletedVerificationToken,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_EndUserTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_EndUserTableCreateInput,
        include: Optional[types.LiteLLM_EndUserTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_EndUserTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_EndUserTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_EndUserTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_EndUserTableWhereUniqueInput,
        include: Optional[types.LiteLLM_EndUserTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_EndUserTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_EndUserTableUpdateInput,
        where: types.LiteLLM_EndUserTableWhereUniqueInput,
        include: Optional[types.LiteLLM_EndUserTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_EndUserTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_EndUserTableWhereUniqueInput,
        data: types.LiteLLM_EndUserTableUpsertInput,
        include: Optional[types.LiteLLM_EndUserTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_EndUserTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_EndUserTableUpdateManyMutationInput,
        where: types.LiteLLM_EndUserTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_EndUserTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_EndUserTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_EndUserTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_TagTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_TagTableCreateInput,
        include: Optional[types.LiteLLM_TagTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_TagTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_TagTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_TagTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_TagTableWhereUniqueInput,
        include: Optional[types.LiteLLM_TagTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_TagTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_TagTableUpdateInput,
        where: types.LiteLLM_TagTableWhereUniqueInput,
        include: Optional[types.LiteLLM_TagTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_TagTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_TagTableWhereUniqueInput,
        data: types.LiteLLM_TagTableUpsertInput,
        include: Optional[types.LiteLLM_TagTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_TagTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_TagTableUpdateManyMutationInput,
        where: types.LiteLLM_TagTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_TagTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_TagTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_TagTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ConfigBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ConfigCreateInput,
        include: Optional[types.LiteLLM_ConfigInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_Config,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ConfigCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_Config,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ConfigWhereUniqueInput,
        include: Optional[types.LiteLLM_ConfigInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_Config,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ConfigUpdateInput,
        where: types.LiteLLM_ConfigWhereUniqueInput,
        include: Optional[types.LiteLLM_ConfigInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_Config,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ConfigWhereUniqueInput,
        data: types.LiteLLM_ConfigUpsertInput,
        include: Optional[types.LiteLLM_ConfigInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_Config,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ConfigUpdateManyMutationInput,
        where: types.LiteLLM_ConfigWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_Config,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ConfigWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_Config,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_SpendLogsBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_SpendLogsCreateInput,
        include: Optional[types.LiteLLM_SpendLogsInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_SpendLogs,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_SpendLogsCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_SpendLogs,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_SpendLogsWhereUniqueInput,
        include: Optional[types.LiteLLM_SpendLogsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_SpendLogs,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_SpendLogsUpdateInput,
        where: types.LiteLLM_SpendLogsWhereUniqueInput,
        include: Optional[types.LiteLLM_SpendLogsInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_SpendLogs,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_SpendLogsWhereUniqueInput,
        data: types.LiteLLM_SpendLogsUpsertInput,
        include: Optional[types.LiteLLM_SpendLogsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_SpendLogs,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_SpendLogsUpdateManyMutationInput,
        where: types.LiteLLM_SpendLogsWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_SpendLogs,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_SpendLogsWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_SpendLogs,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ErrorLogsBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ErrorLogsCreateInput,
        include: Optional[types.LiteLLM_ErrorLogsInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ErrorLogs,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ErrorLogsCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ErrorLogs,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ErrorLogsWhereUniqueInput,
        include: Optional[types.LiteLLM_ErrorLogsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ErrorLogs,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ErrorLogsUpdateInput,
        where: types.LiteLLM_ErrorLogsWhereUniqueInput,
        include: Optional[types.LiteLLM_ErrorLogsInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ErrorLogs,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ErrorLogsWhereUniqueInput,
        data: types.LiteLLM_ErrorLogsUpsertInput,
        include: Optional[types.LiteLLM_ErrorLogsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ErrorLogs,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ErrorLogsUpdateManyMutationInput,
        where: types.LiteLLM_ErrorLogsWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ErrorLogs,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ErrorLogsWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ErrorLogs,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_UserNotificationsBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_UserNotificationsCreateInput,
        include: Optional[types.LiteLLM_UserNotificationsInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_UserNotifications,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_UserNotificationsCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_UserNotifications,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_UserNotificationsWhereUniqueInput,
        include: Optional[types.LiteLLM_UserNotificationsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_UserNotifications,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_UserNotificationsUpdateInput,
        where: types.LiteLLM_UserNotificationsWhereUniqueInput,
        include: Optional[types.LiteLLM_UserNotificationsInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_UserNotifications,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_UserNotificationsWhereUniqueInput,
        data: types.LiteLLM_UserNotificationsUpsertInput,
        include: Optional[types.LiteLLM_UserNotificationsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_UserNotifications,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_UserNotificationsUpdateManyMutationInput,
        where: types.LiteLLM_UserNotificationsWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_UserNotifications,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_UserNotificationsWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_UserNotifications,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_TeamMembershipBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_TeamMembershipCreateInput,
        include: Optional[types.LiteLLM_TeamMembershipInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_TeamMembership,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_TeamMembershipCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_TeamMembership,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_TeamMembershipWhereUniqueInput,
        include: Optional[types.LiteLLM_TeamMembershipInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_TeamMembership,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_TeamMembershipUpdateInput,
        where: types.LiteLLM_TeamMembershipWhereUniqueInput,
        include: Optional[types.LiteLLM_TeamMembershipInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_TeamMembership,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_TeamMembershipWhereUniqueInput,
        data: types.LiteLLM_TeamMembershipUpsertInput,
        include: Optional[types.LiteLLM_TeamMembershipInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_TeamMembership,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_TeamMembershipUpdateManyMutationInput,
        where: types.LiteLLM_TeamMembershipWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_TeamMembership,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_TeamMembershipWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_TeamMembership,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_OrganizationMembershipBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_OrganizationMembershipCreateInput,
        include: Optional[types.LiteLLM_OrganizationMembershipInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_OrganizationMembership,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_OrganizationMembershipCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_OrganizationMembership,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_OrganizationMembershipWhereUniqueInput,
        include: Optional[types.LiteLLM_OrganizationMembershipInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_OrganizationMembership,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_OrganizationMembershipUpdateInput,
        where: types.LiteLLM_OrganizationMembershipWhereUniqueInput,
        include: Optional[types.LiteLLM_OrganizationMembershipInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_OrganizationMembership,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_OrganizationMembershipWhereUniqueInput,
        data: types.LiteLLM_OrganizationMembershipUpsertInput,
        include: Optional[types.LiteLLM_OrganizationMembershipInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_OrganizationMembership,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_OrganizationMembershipUpdateManyMutationInput,
        where: types.LiteLLM_OrganizationMembershipWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_OrganizationMembership,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_OrganizationMembershipWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_OrganizationMembership,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_InvitationLinkBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_InvitationLinkCreateInput,
        include: Optional[types.LiteLLM_InvitationLinkInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_InvitationLink,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_InvitationLinkCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_InvitationLink,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_InvitationLinkWhereUniqueInput,
        include: Optional[types.LiteLLM_InvitationLinkInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_InvitationLink,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_InvitationLinkUpdateInput,
        where: types.LiteLLM_InvitationLinkWhereUniqueInput,
        include: Optional[types.LiteLLM_InvitationLinkInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_InvitationLink,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_InvitationLinkWhereUniqueInput,
        data: types.LiteLLM_InvitationLinkUpsertInput,
        include: Optional[types.LiteLLM_InvitationLinkInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_InvitationLink,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_InvitationLinkUpdateManyMutationInput,
        where: types.LiteLLM_InvitationLinkWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_InvitationLink,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_InvitationLinkWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_InvitationLink,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_AuditLogBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_AuditLogCreateInput,
        include: Optional[types.LiteLLM_AuditLogInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_AuditLog,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_AuditLogCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_AuditLog,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_AuditLogWhereUniqueInput,
        include: Optional[types.LiteLLM_AuditLogInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_AuditLog,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_AuditLogUpdateInput,
        where: types.LiteLLM_AuditLogWhereUniqueInput,
        include: Optional[types.LiteLLM_AuditLogInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_AuditLog,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_AuditLogWhereUniqueInput,
        data: types.LiteLLM_AuditLogUpsertInput,
        include: Optional[types.LiteLLM_AuditLogInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_AuditLog,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_AuditLogUpdateManyMutationInput,
        where: types.LiteLLM_AuditLogWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_AuditLog,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_AuditLogWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_AuditLog,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DailyUserSpendBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DailyUserSpendCreateInput,
        include: Optional[types.LiteLLM_DailyUserSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DailyUserSpend,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DailyUserSpendCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DailyUserSpend,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DailyUserSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyUserSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DailyUserSpend,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DailyUserSpendUpdateInput,
        where: types.LiteLLM_DailyUserSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyUserSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DailyUserSpend,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DailyUserSpendWhereUniqueInput,
        data: types.LiteLLM_DailyUserSpendUpsertInput,
        include: Optional[types.LiteLLM_DailyUserSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DailyUserSpend,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DailyUserSpendUpdateManyMutationInput,
        where: types.LiteLLM_DailyUserSpendWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DailyUserSpend,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DailyUserSpendWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DailyUserSpend,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DailyOrganizationSpendBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DailyOrganizationSpendCreateInput,
        include: Optional[types.LiteLLM_DailyOrganizationSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DailyOrganizationSpend,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DailyOrganizationSpendCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DailyOrganizationSpend,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DailyOrganizationSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyOrganizationSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DailyOrganizationSpend,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DailyOrganizationSpendUpdateInput,
        where: types.LiteLLM_DailyOrganizationSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyOrganizationSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DailyOrganizationSpend,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DailyOrganizationSpendWhereUniqueInput,
        data: types.LiteLLM_DailyOrganizationSpendUpsertInput,
        include: Optional[types.LiteLLM_DailyOrganizationSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DailyOrganizationSpend,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DailyOrganizationSpendUpdateManyMutationInput,
        where: types.LiteLLM_DailyOrganizationSpendWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DailyOrganizationSpend,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DailyOrganizationSpendWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DailyOrganizationSpend,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DailyEndUserSpendBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DailyEndUserSpendCreateInput,
        include: Optional[types.LiteLLM_DailyEndUserSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DailyEndUserSpend,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DailyEndUserSpendCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DailyEndUserSpend,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DailyEndUserSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyEndUserSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DailyEndUserSpend,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DailyEndUserSpendUpdateInput,
        where: types.LiteLLM_DailyEndUserSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyEndUserSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DailyEndUserSpend,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DailyEndUserSpendWhereUniqueInput,
        data: types.LiteLLM_DailyEndUserSpendUpsertInput,
        include: Optional[types.LiteLLM_DailyEndUserSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DailyEndUserSpend,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DailyEndUserSpendUpdateManyMutationInput,
        where: types.LiteLLM_DailyEndUserSpendWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DailyEndUserSpend,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DailyEndUserSpendWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DailyEndUserSpend,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DailyAgentSpendBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DailyAgentSpendCreateInput,
        include: Optional[types.LiteLLM_DailyAgentSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DailyAgentSpend,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DailyAgentSpendCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DailyAgentSpend,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DailyAgentSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyAgentSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DailyAgentSpend,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DailyAgentSpendUpdateInput,
        where: types.LiteLLM_DailyAgentSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyAgentSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DailyAgentSpend,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DailyAgentSpendWhereUniqueInput,
        data: types.LiteLLM_DailyAgentSpendUpsertInput,
        include: Optional[types.LiteLLM_DailyAgentSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DailyAgentSpend,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DailyAgentSpendUpdateManyMutationInput,
        where: types.LiteLLM_DailyAgentSpendWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DailyAgentSpend,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DailyAgentSpendWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DailyAgentSpend,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DailyTeamSpendBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DailyTeamSpendCreateInput,
        include: Optional[types.LiteLLM_DailyTeamSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DailyTeamSpend,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DailyTeamSpendCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DailyTeamSpend,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DailyTeamSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyTeamSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DailyTeamSpend,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DailyTeamSpendUpdateInput,
        where: types.LiteLLM_DailyTeamSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyTeamSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DailyTeamSpend,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DailyTeamSpendWhereUniqueInput,
        data: types.LiteLLM_DailyTeamSpendUpsertInput,
        include: Optional[types.LiteLLM_DailyTeamSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DailyTeamSpend,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DailyTeamSpendUpdateManyMutationInput,
        where: types.LiteLLM_DailyTeamSpendWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DailyTeamSpend,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DailyTeamSpendWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DailyTeamSpend,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DailyTagSpendBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DailyTagSpendCreateInput,
        include: Optional[types.LiteLLM_DailyTagSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DailyTagSpend,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DailyTagSpendCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DailyTagSpend,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DailyTagSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyTagSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DailyTagSpend,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DailyTagSpendUpdateInput,
        where: types.LiteLLM_DailyTagSpendWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyTagSpendInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DailyTagSpend,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DailyTagSpendWhereUniqueInput,
        data: types.LiteLLM_DailyTagSpendUpsertInput,
        include: Optional[types.LiteLLM_DailyTagSpendInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DailyTagSpend,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DailyTagSpendUpdateManyMutationInput,
        where: types.LiteLLM_DailyTagSpendWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DailyTagSpend,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DailyTagSpendWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DailyTagSpend,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_CronJobBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_CronJobCreateInput,
        include: Optional[types.LiteLLM_CronJobInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_CronJob,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_CronJobCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_CronJob,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_CronJobWhereUniqueInput,
        include: Optional[types.LiteLLM_CronJobInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_CronJob,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_CronJobUpdateInput,
        where: types.LiteLLM_CronJobWhereUniqueInput,
        include: Optional[types.LiteLLM_CronJobInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_CronJob,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_CronJobWhereUniqueInput,
        data: types.LiteLLM_CronJobUpsertInput,
        include: Optional[types.LiteLLM_CronJobInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_CronJob,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_CronJobUpdateManyMutationInput,
        where: types.LiteLLM_CronJobWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_CronJob,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_CronJobWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_CronJob,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ManagedFileTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ManagedFileTableCreateInput,
        include: Optional[types.LiteLLM_ManagedFileTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ManagedFileTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ManagedFileTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ManagedFileTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ManagedFileTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedFileTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ManagedFileTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ManagedFileTableUpdateInput,
        where: types.LiteLLM_ManagedFileTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedFileTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ManagedFileTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ManagedFileTableWhereUniqueInput,
        data: types.LiteLLM_ManagedFileTableUpsertInput,
        include: Optional[types.LiteLLM_ManagedFileTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ManagedFileTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ManagedFileTableUpdateManyMutationInput,
        where: types.LiteLLM_ManagedFileTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ManagedFileTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ManagedFileTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ManagedFileTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ManagedObjectTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ManagedObjectTableCreateInput,
        include: Optional[types.LiteLLM_ManagedObjectTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ManagedObjectTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ManagedObjectTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ManagedObjectTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ManagedObjectTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedObjectTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ManagedObjectTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ManagedObjectTableUpdateInput,
        where: types.LiteLLM_ManagedObjectTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedObjectTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ManagedObjectTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ManagedObjectTableWhereUniqueInput,
        data: types.LiteLLM_ManagedObjectTableUpsertInput,
        include: Optional[types.LiteLLM_ManagedObjectTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ManagedObjectTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ManagedObjectTableUpdateManyMutationInput,
        where: types.LiteLLM_ManagedObjectTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ManagedObjectTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ManagedObjectTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ManagedObjectTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ManagedVectorStoreTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ManagedVectorStoreTableCreateInput,
        include: Optional[types.LiteLLM_ManagedVectorStoreTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ManagedVectorStoreTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ManagedVectorStoreTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ManagedVectorStoreTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ManagedVectorStoreTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedVectorStoreTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ManagedVectorStoreTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ManagedVectorStoreTableUpdateInput,
        where: types.LiteLLM_ManagedVectorStoreTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedVectorStoreTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ManagedVectorStoreTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ManagedVectorStoreTableWhereUniqueInput,
        data: types.LiteLLM_ManagedVectorStoreTableUpsertInput,
        include: Optional[types.LiteLLM_ManagedVectorStoreTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ManagedVectorStoreTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ManagedVectorStoreTableUpdateManyMutationInput,
        where: types.LiteLLM_ManagedVectorStoreTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ManagedVectorStoreTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ManagedVectorStoreTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ManagedVectorStoreTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ManagedVectorStoresTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ManagedVectorStoresTableCreateInput,
        include: Optional[types.LiteLLM_ManagedVectorStoresTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ManagedVectorStoresTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ManagedVectorStoresTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ManagedVectorStoresTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ManagedVectorStoresTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedVectorStoresTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ManagedVectorStoresTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ManagedVectorStoresTableUpdateInput,
        where: types.LiteLLM_ManagedVectorStoresTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedVectorStoresTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ManagedVectorStoresTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ManagedVectorStoresTableWhereUniqueInput,
        data: types.LiteLLM_ManagedVectorStoresTableUpsertInput,
        include: Optional[types.LiteLLM_ManagedVectorStoresTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ManagedVectorStoresTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ManagedVectorStoresTableUpdateManyMutationInput,
        where: types.LiteLLM_ManagedVectorStoresTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ManagedVectorStoresTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ManagedVectorStoresTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ManagedVectorStoresTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_GuardrailsTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_GuardrailsTableCreateInput,
        include: Optional[types.LiteLLM_GuardrailsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_GuardrailsTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_GuardrailsTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_GuardrailsTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_GuardrailsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_GuardrailsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_GuardrailsTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_GuardrailsTableUpdateInput,
        where: types.LiteLLM_GuardrailsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_GuardrailsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_GuardrailsTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_GuardrailsTableWhereUniqueInput,
        data: types.LiteLLM_GuardrailsTableUpsertInput,
        include: Optional[types.LiteLLM_GuardrailsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_GuardrailsTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_GuardrailsTableUpdateManyMutationInput,
        where: types.LiteLLM_GuardrailsTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_GuardrailsTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_GuardrailsTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_GuardrailsTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DailyGuardrailMetricsBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DailyGuardrailMetricsCreateInput,
        include: Optional[types.LiteLLM_DailyGuardrailMetricsInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DailyGuardrailMetrics,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DailyGuardrailMetricsCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DailyGuardrailMetrics,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DailyGuardrailMetricsWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyGuardrailMetricsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DailyGuardrailMetrics,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DailyGuardrailMetricsUpdateInput,
        where: types.LiteLLM_DailyGuardrailMetricsWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyGuardrailMetricsInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DailyGuardrailMetrics,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DailyGuardrailMetricsWhereUniqueInput,
        data: types.LiteLLM_DailyGuardrailMetricsUpsertInput,
        include: Optional[types.LiteLLM_DailyGuardrailMetricsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DailyGuardrailMetrics,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DailyGuardrailMetricsUpdateManyMutationInput,
        where: types.LiteLLM_DailyGuardrailMetricsWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DailyGuardrailMetrics,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DailyGuardrailMetricsWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DailyGuardrailMetrics,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_DailyPolicyMetricsBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_DailyPolicyMetricsCreateInput,
        include: Optional[types.LiteLLM_DailyPolicyMetricsInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_DailyPolicyMetrics,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_DailyPolicyMetricsCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_DailyPolicyMetrics,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_DailyPolicyMetricsWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyPolicyMetricsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_DailyPolicyMetrics,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_DailyPolicyMetricsUpdateInput,
        where: types.LiteLLM_DailyPolicyMetricsWhereUniqueInput,
        include: Optional[types.LiteLLM_DailyPolicyMetricsInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_DailyPolicyMetrics,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_DailyPolicyMetricsWhereUniqueInput,
        data: types.LiteLLM_DailyPolicyMetricsUpsertInput,
        include: Optional[types.LiteLLM_DailyPolicyMetricsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_DailyPolicyMetrics,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_DailyPolicyMetricsUpdateManyMutationInput,
        where: types.LiteLLM_DailyPolicyMetricsWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_DailyPolicyMetrics,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_DailyPolicyMetricsWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_DailyPolicyMetrics,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_SpendLogGuardrailIndexBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_SpendLogGuardrailIndexCreateInput,
        include: Optional[types.LiteLLM_SpendLogGuardrailIndexInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_SpendLogGuardrailIndex,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_SpendLogGuardrailIndexCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_SpendLogGuardrailIndex,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_SpendLogGuardrailIndexWhereUniqueInput,
        include: Optional[types.LiteLLM_SpendLogGuardrailIndexInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_SpendLogGuardrailIndex,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_SpendLogGuardrailIndexUpdateInput,
        where: types.LiteLLM_SpendLogGuardrailIndexWhereUniqueInput,
        include: Optional[types.LiteLLM_SpendLogGuardrailIndexInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_SpendLogGuardrailIndex,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_SpendLogGuardrailIndexWhereUniqueInput,
        data: types.LiteLLM_SpendLogGuardrailIndexUpsertInput,
        include: Optional[types.LiteLLM_SpendLogGuardrailIndexInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_SpendLogGuardrailIndex,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_SpendLogGuardrailIndexUpdateManyMutationInput,
        where: types.LiteLLM_SpendLogGuardrailIndexWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_SpendLogGuardrailIndex,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_SpendLogGuardrailIndexWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_SpendLogGuardrailIndex,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_SpendLogToolIndexBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_SpendLogToolIndexCreateInput,
        include: Optional[types.LiteLLM_SpendLogToolIndexInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_SpendLogToolIndex,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_SpendLogToolIndexCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_SpendLogToolIndex,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_SpendLogToolIndexWhereUniqueInput,
        include: Optional[types.LiteLLM_SpendLogToolIndexInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_SpendLogToolIndex,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_SpendLogToolIndexUpdateInput,
        where: types.LiteLLM_SpendLogToolIndexWhereUniqueInput,
        include: Optional[types.LiteLLM_SpendLogToolIndexInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_SpendLogToolIndex,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_SpendLogToolIndexWhereUniqueInput,
        data: types.LiteLLM_SpendLogToolIndexUpsertInput,
        include: Optional[types.LiteLLM_SpendLogToolIndexInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_SpendLogToolIndex,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_SpendLogToolIndexUpdateManyMutationInput,
        where: types.LiteLLM_SpendLogToolIndexWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_SpendLogToolIndex,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_SpendLogToolIndexWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_SpendLogToolIndex,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_PromptTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_PromptTableCreateInput,
        include: Optional[types.LiteLLM_PromptTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_PromptTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_PromptTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_PromptTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_PromptTableWhereUniqueInput,
        include: Optional[types.LiteLLM_PromptTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_PromptTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_PromptTableUpdateInput,
        where: types.LiteLLM_PromptTableWhereUniqueInput,
        include: Optional[types.LiteLLM_PromptTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_PromptTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_PromptTableWhereUniqueInput,
        data: types.LiteLLM_PromptTableUpsertInput,
        include: Optional[types.LiteLLM_PromptTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_PromptTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_PromptTableUpdateManyMutationInput,
        where: types.LiteLLM_PromptTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_PromptTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_PromptTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_PromptTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_HealthCheckTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_HealthCheckTableCreateInput,
        include: Optional[types.LiteLLM_HealthCheckTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_HealthCheckTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_HealthCheckTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_HealthCheckTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_HealthCheckTableWhereUniqueInput,
        include: Optional[types.LiteLLM_HealthCheckTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_HealthCheckTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_HealthCheckTableUpdateInput,
        where: types.LiteLLM_HealthCheckTableWhereUniqueInput,
        include: Optional[types.LiteLLM_HealthCheckTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_HealthCheckTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_HealthCheckTableWhereUniqueInput,
        data: types.LiteLLM_HealthCheckTableUpsertInput,
        include: Optional[types.LiteLLM_HealthCheckTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_HealthCheckTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_HealthCheckTableUpdateManyMutationInput,
        where: types.LiteLLM_HealthCheckTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_HealthCheckTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_HealthCheckTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_HealthCheckTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_SearchToolsTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_SearchToolsTableCreateInput,
        include: Optional[types.LiteLLM_SearchToolsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_SearchToolsTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_SearchToolsTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_SearchToolsTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_SearchToolsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_SearchToolsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_SearchToolsTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_SearchToolsTableUpdateInput,
        where: types.LiteLLM_SearchToolsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_SearchToolsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_SearchToolsTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_SearchToolsTableWhereUniqueInput,
        data: types.LiteLLM_SearchToolsTableUpsertInput,
        include: Optional[types.LiteLLM_SearchToolsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_SearchToolsTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_SearchToolsTableUpdateManyMutationInput,
        where: types.LiteLLM_SearchToolsTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_SearchToolsTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_SearchToolsTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_SearchToolsTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_SSOConfigBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_SSOConfigCreateInput,
        include: Optional[types.LiteLLM_SSOConfigInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_SSOConfig,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_SSOConfigCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_SSOConfig,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_SSOConfigWhereUniqueInput,
        include: Optional[types.LiteLLM_SSOConfigInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_SSOConfig,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_SSOConfigUpdateInput,
        where: types.LiteLLM_SSOConfigWhereUniqueInput,
        include: Optional[types.LiteLLM_SSOConfigInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_SSOConfig,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_SSOConfigWhereUniqueInput,
        data: types.LiteLLM_SSOConfigUpsertInput,
        include: Optional[types.LiteLLM_SSOConfigInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_SSOConfig,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_SSOConfigUpdateManyMutationInput,
        where: types.LiteLLM_SSOConfigWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_SSOConfig,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_SSOConfigWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_SSOConfig,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ManagedVectorStoreIndexTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ManagedVectorStoreIndexTableCreateInput,
        include: Optional[types.LiteLLM_ManagedVectorStoreIndexTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ManagedVectorStoreIndexTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ManagedVectorStoreIndexTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ManagedVectorStoreIndexTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ManagedVectorStoreIndexTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedVectorStoreIndexTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ManagedVectorStoreIndexTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ManagedVectorStoreIndexTableUpdateInput,
        where: types.LiteLLM_ManagedVectorStoreIndexTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ManagedVectorStoreIndexTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ManagedVectorStoreIndexTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ManagedVectorStoreIndexTableWhereUniqueInput,
        data: types.LiteLLM_ManagedVectorStoreIndexTableUpsertInput,
        include: Optional[types.LiteLLM_ManagedVectorStoreIndexTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ManagedVectorStoreIndexTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ManagedVectorStoreIndexTableUpdateManyMutationInput,
        where: types.LiteLLM_ManagedVectorStoreIndexTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ManagedVectorStoreIndexTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ManagedVectorStoreIndexTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ManagedVectorStoreIndexTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_CacheConfigBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_CacheConfigCreateInput,
        include: Optional[types.LiteLLM_CacheConfigInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_CacheConfig,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_CacheConfigCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_CacheConfig,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_CacheConfigWhereUniqueInput,
        include: Optional[types.LiteLLM_CacheConfigInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_CacheConfig,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_CacheConfigUpdateInput,
        where: types.LiteLLM_CacheConfigWhereUniqueInput,
        include: Optional[types.LiteLLM_CacheConfigInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_CacheConfig,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_CacheConfigWhereUniqueInput,
        data: types.LiteLLM_CacheConfigUpsertInput,
        include: Optional[types.LiteLLM_CacheConfigInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_CacheConfig,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_CacheConfigUpdateManyMutationInput,
        where: types.LiteLLM_CacheConfigWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_CacheConfig,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_CacheConfigWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_CacheConfig,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_UISettingsBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_UISettingsCreateInput,
        include: Optional[types.LiteLLM_UISettingsInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_UISettings,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_UISettingsCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_UISettings,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_UISettingsWhereUniqueInput,
        include: Optional[types.LiteLLM_UISettingsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_UISettings,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_UISettingsUpdateInput,
        where: types.LiteLLM_UISettingsWhereUniqueInput,
        include: Optional[types.LiteLLM_UISettingsInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_UISettings,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_UISettingsWhereUniqueInput,
        data: types.LiteLLM_UISettingsUpsertInput,
        include: Optional[types.LiteLLM_UISettingsInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_UISettings,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_UISettingsUpdateManyMutationInput,
        where: types.LiteLLM_UISettingsWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_UISettings,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_UISettingsWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_UISettings,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ConfigOverridesBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ConfigOverridesCreateInput,
        include: Optional[types.LiteLLM_ConfigOverridesInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ConfigOverrides,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ConfigOverridesCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ConfigOverrides,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ConfigOverridesWhereUniqueInput,
        include: Optional[types.LiteLLM_ConfigOverridesInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ConfigOverrides,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ConfigOverridesUpdateInput,
        where: types.LiteLLM_ConfigOverridesWhereUniqueInput,
        include: Optional[types.LiteLLM_ConfigOverridesInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ConfigOverrides,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ConfigOverridesWhereUniqueInput,
        data: types.LiteLLM_ConfigOverridesUpsertInput,
        include: Optional[types.LiteLLM_ConfigOverridesInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ConfigOverrides,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ConfigOverridesUpdateManyMutationInput,
        where: types.LiteLLM_ConfigOverridesWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ConfigOverrides,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ConfigOverridesWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ConfigOverrides,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_SkillsTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_SkillsTableCreateInput,
        include: Optional[types.LiteLLM_SkillsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_SkillsTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_SkillsTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_SkillsTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_SkillsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_SkillsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_SkillsTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_SkillsTableUpdateInput,
        where: types.LiteLLM_SkillsTableWhereUniqueInput,
        include: Optional[types.LiteLLM_SkillsTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_SkillsTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_SkillsTableWhereUniqueInput,
        data: types.LiteLLM_SkillsTableUpsertInput,
        include: Optional[types.LiteLLM_SkillsTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_SkillsTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_SkillsTableUpdateManyMutationInput,
        where: types.LiteLLM_SkillsTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_SkillsTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_SkillsTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_SkillsTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_PolicyTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_PolicyTableCreateInput,
        include: Optional[types.LiteLLM_PolicyTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_PolicyTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_PolicyTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_PolicyTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_PolicyTableWhereUniqueInput,
        include: Optional[types.LiteLLM_PolicyTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_PolicyTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_PolicyTableUpdateInput,
        where: types.LiteLLM_PolicyTableWhereUniqueInput,
        include: Optional[types.LiteLLM_PolicyTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_PolicyTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_PolicyTableWhereUniqueInput,
        data: types.LiteLLM_PolicyTableUpsertInput,
        include: Optional[types.LiteLLM_PolicyTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_PolicyTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_PolicyTableUpdateManyMutationInput,
        where: types.LiteLLM_PolicyTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_PolicyTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_PolicyTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_PolicyTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_PolicyAttachmentTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_PolicyAttachmentTableCreateInput,
        include: Optional[types.LiteLLM_PolicyAttachmentTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_PolicyAttachmentTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_PolicyAttachmentTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_PolicyAttachmentTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_PolicyAttachmentTableWhereUniqueInput,
        include: Optional[types.LiteLLM_PolicyAttachmentTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_PolicyAttachmentTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_PolicyAttachmentTableUpdateInput,
        where: types.LiteLLM_PolicyAttachmentTableWhereUniqueInput,
        include: Optional[types.LiteLLM_PolicyAttachmentTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_PolicyAttachmentTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_PolicyAttachmentTableWhereUniqueInput,
        data: types.LiteLLM_PolicyAttachmentTableUpsertInput,
        include: Optional[types.LiteLLM_PolicyAttachmentTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_PolicyAttachmentTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_PolicyAttachmentTableUpdateManyMutationInput,
        where: types.LiteLLM_PolicyAttachmentTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_PolicyAttachmentTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_PolicyAttachmentTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_PolicyAttachmentTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ToolTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ToolTableCreateInput,
        include: Optional[types.LiteLLM_ToolTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ToolTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ToolTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ToolTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ToolTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ToolTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ToolTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ToolTableUpdateInput,
        where: types.LiteLLM_ToolTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ToolTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ToolTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ToolTableWhereUniqueInput,
        data: types.LiteLLM_ToolTableUpsertInput,
        include: Optional[types.LiteLLM_ToolTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ToolTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ToolTableUpdateManyMutationInput,
        where: types.LiteLLM_ToolTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ToolTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ToolTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ToolTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_AccessGroupTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_AccessGroupTableCreateInput,
        include: Optional[types.LiteLLM_AccessGroupTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_AccessGroupTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_AccessGroupTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_AccessGroupTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_AccessGroupTableWhereUniqueInput,
        include: Optional[types.LiteLLM_AccessGroupTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_AccessGroupTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_AccessGroupTableUpdateInput,
        where: types.LiteLLM_AccessGroupTableWhereUniqueInput,
        include: Optional[types.LiteLLM_AccessGroupTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_AccessGroupTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_AccessGroupTableWhereUniqueInput,
        data: types.LiteLLM_AccessGroupTableUpsertInput,
        include: Optional[types.LiteLLM_AccessGroupTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_AccessGroupTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_AccessGroupTableUpdateManyMutationInput,
        where: types.LiteLLM_AccessGroupTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_AccessGroupTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_AccessGroupTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_AccessGroupTable,
            arguments={'where': where},
            root_selection=['count'],
        )



# NOTE: some arguments are meaningless in this context but are included
# for completeness sake
class LiteLLM_ClaudeCodePluginTableBatchActions:
    def __init__(self, batcher: Batch) -> None:
        self._batcher = batcher

    def create(
        self,
        data: types.LiteLLM_ClaudeCodePluginTableCreateInput,
        include: Optional[types.LiteLLM_ClaudeCodePluginTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='create',
            model=models.LiteLLM_ClaudeCodePluginTable,
            arguments={
                'data': data,
                'include': include,
            },
        )

    def create_many(
        self,
        data: List[types.LiteLLM_ClaudeCodePluginTableCreateWithoutRelationsInput],
        *,
        skip_duplicates: Optional[bool] = None,
    ) -> None:
        if skip_duplicates and self._batcher._active_provider in CREATE_MANY_SKIP_DUPLICATES_UNSUPPORTED:
            raise errors.UnsupportedDatabaseError(self._batcher._active_provider, 'create_many_skip_duplicates')

        self._batcher._add(
            method='create_many',
            model=models.LiteLLM_ClaudeCodePluginTable,
            arguments={
                'data': data,
                'skipDuplicates': skip_duplicates,
            },
            root_selection=['count'],
        )

    def delete(
        self,
        where: types.LiteLLM_ClaudeCodePluginTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ClaudeCodePluginTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='delete',
            model=models.LiteLLM_ClaudeCodePluginTable,
            arguments={
                'where': where,
                'include': include,
            },
        )

    def update(
        self,
        data: types.LiteLLM_ClaudeCodePluginTableUpdateInput,
        where: types.LiteLLM_ClaudeCodePluginTableWhereUniqueInput,
        include: Optional[types.LiteLLM_ClaudeCodePluginTableInclude] = None
    ) -> None:
        self._batcher._add(
            method='update',
            model=models.LiteLLM_ClaudeCodePluginTable,
            arguments={
                'data': data,
                'where': where,
                'include': include,
            },
        )

    def upsert(
        self,
        where: types.LiteLLM_ClaudeCodePluginTableWhereUniqueInput,
        data: types.LiteLLM_ClaudeCodePluginTableUpsertInput,
        include: Optional[types.LiteLLM_ClaudeCodePluginTableInclude] = None,
    ) -> None:
        self._batcher._add(
            method='upsert',
            model=models.LiteLLM_ClaudeCodePluginTable,
            arguments={
                'where': where,
                'include': include,
                'create': data.get('create'),
                'update': data.get('update'),
            },
        )

    def update_many(
        self,
        data: types.LiteLLM_ClaudeCodePluginTableUpdateManyMutationInput,
        where: types.LiteLLM_ClaudeCodePluginTableWhereInput,
    ) -> None:
        self._batcher._add(
            method='update_many',
            model=models.LiteLLM_ClaudeCodePluginTable,
            arguments={'data': data, 'where': where,},
            root_selection=['count'],
        )

    def delete_many(
        self,
        where: Optional[types.LiteLLM_ClaudeCodePluginTableWhereInput] = None,
    ) -> None:
        self._batcher._add(
            method='delete_many',
            model=models.LiteLLM_ClaudeCodePluginTable,
            arguments={'where': where},
            root_selection=['count'],
        )



Client = Prisma