"""
Auto-generated typed NetBox 4.3 API bindings from OpenAPI.

Do not edit by hand. Regenerate with scripts/generate_typed_sdk.py.
"""

from __future__ import annotations

from typing import Any, Literal

from pydantic import BaseModel, Field

from netbox_sdk.client import NetBoxApiClient
from netbox_sdk.models.v4_3 import *  # noqa: F403, F405
from netbox_sdk.typed_runtime import TypedApiBase, TypedAppBase, build_typed_client


class CircuitsCircuitGroupAssignmentsRootGetQuery(BaseModel):
    circuit: list[str] | None = None
    circuit_id: list[int] | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[int] | None = None
    group_id_n: list[int] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    member_id: list[int] | None = None
    member_id_empty: bool | None = Field(None, alias="member_id__empty")
    member_id_gt: list[int] | None = Field(None, alias="member_id__gt")
    member_id_gte: list[int] | None = Field(None, alias="member_id__gte")
    member_id_lt: list[int] | None = Field(None, alias="member_id__lt")
    member_id_lte: list[int] | None = Field(None, alias="member_id__lte")
    member_id_n: list[int] | None = Field(None, alias="member_id__n")
    member_type: str | None = None
    member_type_n: str | None = Field(None, alias="member_type__n")
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    priority: Literal["inactive", "primary", "secondary", "tertiary"] | None = None
    provider: list[str] | None = None
    provider_id: list[int] | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_circuit: list[str] | None = None
    virtual_circuit_id: list[int] | None = None


class CircuitsCircuitGroupsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class CircuitsCircuitTerminationsRootGetQuery(BaseModel):
    cable_end: Literal["A", "B"] | None = None
    cable_id: list[int] | None = None
    cable_id_n: list[int] | None = Field(None, alias="cable_id__n")
    cabled: bool | None = None
    circuit_id: list[int] | None = None
    circuit_id_n: list[int] | None = Field(None, alias="circuit_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[str] | None = None
    location_id_n: list[str] | None = Field(None, alias="location_id__n")
    mark_connected: bool | None = None
    modified_by_request: str | None = None
    occupied: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    port_speed: list[int] | None = None
    port_speed_empty: bool | None = Field(None, alias="port_speed__empty")
    port_speed_gt: list[int] | None = Field(None, alias="port_speed__gt")
    port_speed_gte: list[int] | None = Field(None, alias="port_speed__gte")
    port_speed_lt: list[int] | None = Field(None, alias="port_speed__lt")
    port_speed_lte: list[int] | None = Field(None, alias="port_speed__lte")
    port_speed_n: list[int] | None = Field(None, alias="port_speed__n")
    pp_info: list[str] | None = None
    pp_info_empty: bool | None = Field(None, alias="pp_info__empty")
    pp_info_ic: list[str] | None = Field(None, alias="pp_info__ic")
    pp_info_ie: list[str] | None = Field(None, alias="pp_info__ie")
    pp_info_iew: list[str] | None = Field(None, alias="pp_info__iew")
    pp_info_isw: list[str] | None = Field(None, alias="pp_info__isw")
    pp_info_n: list[str] | None = Field(None, alias="pp_info__n")
    pp_info_nic: list[str] | None = Field(None, alias="pp_info__nic")
    pp_info_nie: list[str] | None = Field(None, alias="pp_info__nie")
    pp_info_niew: list[str] | None = Field(None, alias="pp_info__niew")
    pp_info_nisw: list[str] | None = Field(None, alias="pp_info__nisw")
    provider: list[str] | None = None
    provider_n: list[str] | None = Field(None, alias="provider__n")
    provider_id: list[int] | None = None
    provider_id_n: list[int] | None = Field(None, alias="provider_id__n")
    provider_network_id: list[int] | None = None
    provider_network_id_n: list[int] | None = Field(None, alias="provider_network_id__n")
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    term_side: Literal["A", "Z"] | None = None
    termination_id: list[int] | None = None
    termination_id_empty: bool | None = Field(None, alias="termination_id__empty")
    termination_id_gt: list[int] | None = Field(None, alias="termination_id__gt")
    termination_id_gte: list[int] | None = Field(None, alias="termination_id__gte")
    termination_id_lt: list[int] | None = Field(None, alias="termination_id__lt")
    termination_id_lte: list[int] | None = Field(None, alias="termination_id__lte")
    termination_id_n: list[int] | None = Field(None, alias="termination_id__n")
    termination_type: str | None = None
    termination_type_n: str | None = Field(None, alias="termination_type__n")
    updated_by_request: str | None = None
    upstream_speed: list[int] | None = None
    upstream_speed_empty: bool | None = Field(None, alias="upstream_speed__empty")
    upstream_speed_gt: list[int] | None = Field(None, alias="upstream_speed__gt")
    upstream_speed_gte: list[int] | None = Field(None, alias="upstream_speed__gte")
    upstream_speed_lt: list[int] | None = Field(None, alias="upstream_speed__lt")
    upstream_speed_lte: list[int] | None = Field(None, alias="upstream_speed__lte")
    upstream_speed_n: list[int] | None = Field(None, alias="upstream_speed__n")
    xconnect_id: list[str] | None = None
    xconnect_id_empty: bool | None = Field(None, alias="xconnect_id__empty")
    xconnect_id_ic: list[str] | None = Field(None, alias="xconnect_id__ic")
    xconnect_id_ie: list[str] | None = Field(None, alias="xconnect_id__ie")
    xconnect_id_iew: list[str] | None = Field(None, alias="xconnect_id__iew")
    xconnect_id_isw: list[str] | None = Field(None, alias="xconnect_id__isw")
    xconnect_id_n: list[str] | None = Field(None, alias="xconnect_id__n")
    xconnect_id_nic: list[str] | None = Field(None, alias="xconnect_id__nic")
    xconnect_id_nie: list[str] | None = Field(None, alias="xconnect_id__nie")
    xconnect_id_niew: list[str] | None = Field(None, alias="xconnect_id__niew")
    xconnect_id_nisw: list[str] | None = Field(None, alias="xconnect_id__nisw")


class CircuitsCircuitTypesRootGetQuery(BaseModel):
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class CircuitsCircuitsRootGetQuery(BaseModel):
    cid: list[str] | None = None
    cid_empty: bool | None = Field(None, alias="cid__empty")
    cid_ic: list[str] | None = Field(None, alias="cid__ic")
    cid_ie: list[str] | None = Field(None, alias="cid__ie")
    cid_iew: list[str] | None = Field(None, alias="cid__iew")
    cid_isw: list[str] | None = Field(None, alias="cid__isw")
    cid_n: list[str] | None = Field(None, alias="cid__n")
    cid_nic: list[str] | None = Field(None, alias="cid__nic")
    cid_nie: list[str] | None = Field(None, alias="cid__nie")
    cid_niew: list[str] | None = Field(None, alias="cid__niew")
    cid_nisw: list[str] | None = Field(None, alias="cid__nisw")
    commit_rate: list[int] | None = None
    commit_rate_empty: bool | None = Field(None, alias="commit_rate__empty")
    commit_rate_gt: list[int] | None = Field(None, alias="commit_rate__gt")
    commit_rate_gte: list[int] | None = Field(None, alias="commit_rate__gte")
    commit_rate_lt: list[int] | None = Field(None, alias="commit_rate__lt")
    commit_rate_lte: list[int] | None = Field(None, alias="commit_rate__lte")
    commit_rate_n: list[int] | None = Field(None, alias="commit_rate__n")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    distance: list[float] | None = None
    distance_empty: bool | None = Field(None, alias="distance__empty")
    distance_gt: list[float] | None = Field(None, alias="distance__gt")
    distance_gte: list[float] | None = Field(None, alias="distance__gte")
    distance_lt: list[float] | None = Field(None, alias="distance__lt")
    distance_lte: list[float] | None = Field(None, alias="distance__lte")
    distance_n: list[float] | None = Field(None, alias="distance__n")
    distance_unit: Literal["ft", "km", "m", "mi"] | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    install_date: list[str] | None = None
    install_date_empty: bool | None = Field(None, alias="install_date__empty")
    install_date_gt: list[str] | None = Field(None, alias="install_date__gt")
    install_date_gte: list[str] | None = Field(None, alias="install_date__gte")
    install_date_lt: list[str] | None = Field(None, alias="install_date__lt")
    install_date_lte: list[str] | None = Field(None, alias="install_date__lte")
    install_date_n: list[str] | None = Field(None, alias="install_date__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    provider: list[str] | None = None
    provider_n: list[str] | None = Field(None, alias="provider__n")
    provider_account: list[str] | None = None
    provider_account_n: list[str] | None = Field(None, alias="provider_account__n")
    provider_account_id: list[int] | None = None
    provider_account_id_n: list[int] | None = Field(None, alias="provider_account_id__n")
    provider_id: list[int] | None = None
    provider_id_n: list[int] | None = Field(None, alias="provider_id__n")
    provider_network_id: list[int] | None = None
    provider_network_id_n: list[int] | None = Field(None, alias="provider_network_id__n")
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    termination_a_id: list[int] | None = None
    termination_a_id_n: list[int] | None = Field(None, alias="termination_a_id__n")
    termination_date: list[str] | None = None
    termination_date_empty: bool | None = Field(None, alias="termination_date__empty")
    termination_date_gt: list[str] | None = Field(None, alias="termination_date__gt")
    termination_date_gte: list[str] | None = Field(None, alias="termination_date__gte")
    termination_date_lt: list[str] | None = Field(None, alias="termination_date__lt")
    termination_date_lte: list[str] | None = Field(None, alias="termination_date__lte")
    termination_date_n: list[str] | None = Field(None, alias="termination_date__n")
    termination_z_id: list[int] | None = None
    termination_z_id_n: list[int] | None = Field(None, alias="termination_z_id__n")
    type: list[str] | None = None
    type_n: list[str] | None = Field(None, alias="type__n")
    type_id: list[int] | None = None
    type_id_n: list[int] | None = Field(None, alias="type_id__n")
    updated_by_request: str | None = None


class CircuitsProviderAccountsRootGetQuery(BaseModel):
    account: list[str] | None = None
    account_empty: bool | None = Field(None, alias="account__empty")
    account_ic: list[str] | None = Field(None, alias="account__ic")
    account_ie: list[str] | None = Field(None, alias="account__ie")
    account_iew: list[str] | None = Field(None, alias="account__iew")
    account_isw: list[str] | None = Field(None, alias="account__isw")
    account_n: list[str] | None = Field(None, alias="account__n")
    account_nic: list[str] | None = Field(None, alias="account__nic")
    account_nie: list[str] | None = Field(None, alias="account__nie")
    account_niew: list[str] | None = Field(None, alias="account__niew")
    account_nisw: list[str] | None = Field(None, alias="account__nisw")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    provider: list[str] | None = None
    provider_n: list[str] | None = Field(None, alias="provider__n")
    provider_id: list[int] | None = None
    provider_id_n: list[int] | None = Field(None, alias="provider_id__n")
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class CircuitsProviderNetworksRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    provider: list[str] | None = None
    provider_n: list[str] | None = Field(None, alias="provider__n")
    provider_id: list[int] | None = None
    provider_id_n: list[int] | None = Field(None, alias="provider_id__n")
    q: str | None = None
    service_id: list[str] | None = None
    service_id_empty: bool | None = Field(None, alias="service_id__empty")
    service_id_ic: list[str] | None = Field(None, alias="service_id__ic")
    service_id_ie: list[str] | None = Field(None, alias="service_id__ie")
    service_id_iew: list[str] | None = Field(None, alias="service_id__iew")
    service_id_isw: list[str] | None = Field(None, alias="service_id__isw")
    service_id_n: list[str] | None = Field(None, alias="service_id__n")
    service_id_nic: list[str] | None = Field(None, alias="service_id__nic")
    service_id_nie: list[str] | None = Field(None, alias="service_id__nie")
    service_id_niew: list[str] | None = Field(None, alias="service_id__niew")
    service_id_nisw: list[str] | None = Field(None, alias="service_id__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class CircuitsProvidersRootGetQuery(BaseModel):
    asn: list[int] | None = None
    asn_n: list[int] | None = Field(None, alias="asn__n")
    asn_id: list[int] | None = None
    asn_id_n: list[int] | None = Field(None, alias="asn_id__n")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class CircuitsVirtualCircuitTerminationsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface_id: list[int] | None = None
    interface_id_n: list[int] | None = Field(None, alias="interface_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    provider: list[str] | None = None
    provider_n: list[str] | None = Field(None, alias="provider__n")
    provider_account: list[str] | None = None
    provider_account_n: list[str] | None = Field(None, alias="provider_account__n")
    provider_account_id: list[int] | None = None
    provider_account_id_n: list[int] | None = Field(None, alias="provider_account_id__n")
    provider_id: list[int] | None = None
    provider_id_n: list[int] | None = Field(None, alias="provider_id__n")
    provider_network_id: list[int] | None = None
    provider_network_id_n: list[int] | None = Field(None, alias="provider_network_id__n")
    q: str | None = None
    role: list[str] | None = None
    role_empty: bool | None = Field(None, alias="role__empty")
    role_ic: list[str] | None = Field(None, alias="role__ic")
    role_ie: list[str] | None = Field(None, alias="role__ie")
    role_iew: list[str] | None = Field(None, alias="role__iew")
    role_isw: list[str] | None = Field(None, alias="role__isw")
    role_n: list[str] | None = Field(None, alias="role__n")
    role_nic: list[str] | None = Field(None, alias="role__nic")
    role_nie: list[str] | None = Field(None, alias="role__nie")
    role_niew: list[str] | None = Field(None, alias="role__niew")
    role_nisw: list[str] | None = Field(None, alias="role__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_circuit_id: list[int] | None = None
    virtual_circuit_id_n: list[int] | None = Field(None, alias="virtual_circuit_id__n")


class CircuitsVirtualCircuitTypesRootGetQuery(BaseModel):
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class CircuitsVirtualCircuitsRootGetQuery(BaseModel):
    cid: list[str] | None = None
    cid_empty: bool | None = Field(None, alias="cid__empty")
    cid_ic: list[str] | None = Field(None, alias="cid__ic")
    cid_ie: list[str] | None = Field(None, alias="cid__ie")
    cid_iew: list[str] | None = Field(None, alias="cid__iew")
    cid_isw: list[str] | None = Field(None, alias="cid__isw")
    cid_n: list[str] | None = Field(None, alias="cid__n")
    cid_nic: list[str] | None = Field(None, alias="cid__nic")
    cid_nie: list[str] | None = Field(None, alias="cid__nie")
    cid_niew: list[str] | None = Field(None, alias="cid__niew")
    cid_nisw: list[str] | None = Field(None, alias="cid__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    provider: list[str] | None = None
    provider_n: list[str] | None = Field(None, alias="provider__n")
    provider_account: list[str] | None = None
    provider_account_n: list[str] | None = Field(None, alias="provider_account__n")
    provider_account_id: list[int] | None = None
    provider_account_id_n: list[int] | None = Field(None, alias="provider_account_id__n")
    provider_id: list[int] | None = None
    provider_id_n: list[int] | None = Field(None, alias="provider_id__n")
    provider_network_id: list[int] | None = None
    provider_network_id_n: list[int] | None = Field(None, alias="provider_network_id__n")
    q: str | None = None
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    type: list[str] | None = None
    type_n: list[str] | None = Field(None, alias="type__n")
    type_id: list[int] | None = None
    type_id_n: list[int] | None = Field(None, alias="type_id__n")
    updated_by_request: str | None = None


class CoreDataFilesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    hash: list[str] | None = None
    hash_empty: bool | None = Field(None, alias="hash__empty")
    hash_ic: list[str] | None = Field(None, alias="hash__ic")
    hash_ie: list[str] | None = Field(None, alias="hash__ie")
    hash_iew: list[str] | None = Field(None, alias="hash__iew")
    hash_isw: list[str] | None = Field(None, alias="hash__isw")
    hash_n: list[str] | None = Field(None, alias="hash__n")
    hash_nic: list[str] | None = Field(None, alias="hash__nic")
    hash_nie: list[str] | None = Field(None, alias="hash__nie")
    hash_niew: list[str] | None = Field(None, alias="hash__niew")
    hash_nisw: list[str] | None = Field(None, alias="hash__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    path: list[str] | None = None
    path_empty: bool | None = Field(None, alias="path__empty")
    path_ic: list[str] | None = Field(None, alias="path__ic")
    path_ie: list[str] | None = Field(None, alias="path__ie")
    path_iew: list[str] | None = Field(None, alias="path__iew")
    path_isw: list[str] | None = Field(None, alias="path__isw")
    path_n: list[str] | None = Field(None, alias="path__n")
    path_nic: list[str] | None = Field(None, alias="path__nic")
    path_nie: list[str] | None = Field(None, alias="path__nie")
    path_niew: list[str] | None = Field(None, alias="path__niew")
    path_nisw: list[str] | None = Field(None, alias="path__nisw")
    q: str | None = None
    size: list[int] | None = None
    size_empty: bool | None = Field(None, alias="size__empty")
    size_gt: list[int] | None = Field(None, alias="size__gt")
    size_gte: list[int] | None = Field(None, alias="size__gte")
    size_lt: list[int] | None = Field(None, alias="size__lt")
    size_lte: list[int] | None = Field(None, alias="size__lte")
    size_n: list[int] | None = Field(None, alias="size__n")
    source: list[str] | None = None
    source_n: list[str] | None = Field(None, alias="source__n")
    source_id: list[int] | None = None
    source_id_n: list[int] | None = Field(None, alias="source_id__n")
    updated_by_request: str | None = None


class CoreDataSourcesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    enabled: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_synced: list[str] | None = None
    last_synced_empty: bool | None = Field(None, alias="last_synced__empty")
    last_synced_gt: list[str] | None = Field(None, alias="last_synced__gt")
    last_synced_gte: list[str] | None = Field(None, alias="last_synced__gte")
    last_synced_lt: list[str] | None = Field(None, alias="last_synced__lt")
    last_synced_lte: list[str] | None = Field(None, alias="last_synced__lte")
    last_synced_n: list[str] | None = Field(None, alias="last_synced__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    source_url: list[str] | None = None
    source_url_empty: bool | None = Field(None, alias="source_url__empty")
    source_url_ic: list[str] | None = Field(None, alias="source_url__ic")
    source_url_ie: list[str] | None = Field(None, alias="source_url__ie")
    source_url_iew: list[str] | None = Field(None, alias="source_url__iew")
    source_url_isw: list[str] | None = Field(None, alias="source_url__isw")
    source_url_n: list[str] | None = Field(None, alias="source_url__n")
    source_url_nic: list[str] | None = Field(None, alias="source_url__nic")
    source_url_nie: list[str] | None = Field(None, alias="source_url__nie")
    source_url_niew: list[str] | None = Field(None, alias="source_url__niew")
    source_url_nisw: list[str] | None = Field(None, alias="source_url__nisw")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    sync_interval: list[int] | None = None
    sync_interval_ic: list[int] | None = Field(None, alias="sync_interval__ic")
    sync_interval_ie: list[int] | None = Field(None, alias="sync_interval__ie")
    sync_interval_iew: list[int] | None = Field(None, alias="sync_interval__iew")
    sync_interval_isw: list[int] | None = Field(None, alias="sync_interval__isw")
    sync_interval_n: list[int] | None = Field(None, alias="sync_interval__n")
    sync_interval_nic: list[int] | None = Field(None, alias="sync_interval__nic")
    sync_interval_nie: list[int] | None = Field(None, alias="sync_interval__nie")
    sync_interval_niew: list[int] | None = Field(None, alias="sync_interval__niew")
    sync_interval_nisw: list[int] | None = Field(None, alias="sync_interval__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None


class CoreJobsRootGetQuery(BaseModel):
    completed: str | None = None
    completed_after: str | None = Field(None, alias="completed__after")
    completed_before: str | None = Field(None, alias="completed__before")
    created: str | None = None
    created_after: str | None = Field(None, alias="created__after")
    created_before: str | None = Field(None, alias="created__before")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interval: list[int] | None = None
    interval_empty: bool | None = Field(None, alias="interval__empty")
    interval_gt: list[int] | None = Field(None, alias="interval__gt")
    interval_gte: list[int] | None = Field(None, alias="interval__gte")
    interval_lt: list[int] | None = Field(None, alias="interval__lt")
    interval_lte: list[int] | None = Field(None, alias="interval__lte")
    interval_n: list[int] | None = Field(None, alias="interval__n")
    job_id: str | None = None
    limit: int | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    object_id: list[int] | None = None
    object_id_empty: bool | None = Field(None, alias="object_id__empty")
    object_id_gt: list[int] | None = Field(None, alias="object_id__gt")
    object_id_gte: list[int] | None = Field(None, alias="object_id__gte")
    object_id_lt: list[int] | None = Field(None, alias="object_id__lt")
    object_id_lte: list[int] | None = Field(None, alias="object_id__lte")
    object_id_n: list[int] | None = Field(None, alias="object_id__n")
    object_type: int | None = None
    object_type_n: int | None = Field(None, alias="object_type__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    scheduled: str | None = None
    scheduled_after: str | None = Field(None, alias="scheduled__after")
    scheduled_before: str | None = Field(None, alias="scheduled__before")
    started: str | None = None
    started_after: str | None = Field(None, alias="started__after")
    started_before: str | None = Field(None, alias="started__before")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    user: int | None = None
    user_n: int | None = Field(None, alias="user__n")


class CoreObjectChangesRootGetQuery(BaseModel):
    action: Literal["create", "delete", "update"] | None = None
    changed_object_id: list[int] | None = None
    changed_object_id_empty: bool | None = Field(None, alias="changed_object_id__empty")
    changed_object_id_gt: list[int] | None = Field(None, alias="changed_object_id__gt")
    changed_object_id_gte: list[int] | None = Field(None, alias="changed_object_id__gte")
    changed_object_id_lt: list[int] | None = Field(None, alias="changed_object_id__lt")
    changed_object_id_lte: list[int] | None = Field(None, alias="changed_object_id__lte")
    changed_object_id_n: list[int] | None = Field(None, alias="changed_object_id__n")
    changed_object_type: str | None = None
    changed_object_type_n: str | None = Field(None, alias="changed_object_type__n")
    changed_object_type_id: list[int] | None = None
    changed_object_type_id_n: list[int] | None = Field(None, alias="changed_object_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    limit: int | None = None
    object_repr: list[str] | None = None
    object_repr_empty: bool | None = Field(None, alias="object_repr__empty")
    object_repr_ic: list[str] | None = Field(None, alias="object_repr__ic")
    object_repr_ie: list[str] | None = Field(None, alias="object_repr__ie")
    object_repr_iew: list[str] | None = Field(None, alias="object_repr__iew")
    object_repr_isw: list[str] | None = Field(None, alias="object_repr__isw")
    object_repr_n: list[str] | None = Field(None, alias="object_repr__n")
    object_repr_nic: list[str] | None = Field(None, alias="object_repr__nic")
    object_repr_nie: list[str] | None = Field(None, alias="object_repr__nie")
    object_repr_niew: list[str] | None = Field(None, alias="object_repr__niew")
    object_repr_nisw: list[str] | None = Field(None, alias="object_repr__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    related_object_id: list[int] | None = None
    related_object_id_empty: bool | None = Field(None, alias="related_object_id__empty")
    related_object_id_gt: list[int] | None = Field(None, alias="related_object_id__gt")
    related_object_id_gte: list[int] | None = Field(None, alias="related_object_id__gte")
    related_object_id_lt: list[int] | None = Field(None, alias="related_object_id__lt")
    related_object_id_lte: list[int] | None = Field(None, alias="related_object_id__lte")
    related_object_id_n: list[int] | None = Field(None, alias="related_object_id__n")
    related_object_type: int | None = None
    related_object_type_n: int | None = Field(None, alias="related_object_type__n")
    request_id: str | None = None
    time_after: str | None = None
    time_before: str | None = None
    user: list[str] | None = None
    user_n: list[str] | None = Field(None, alias="user__n")
    user_id: list[int] | None = None
    user_id_n: list[int] | None = Field(None, alias="user_id__n")
    user_name: list[str] | None = None
    user_name_empty: bool | None = Field(None, alias="user_name__empty")
    user_name_ic: list[str] | None = Field(None, alias="user_name__ic")
    user_name_ie: list[str] | None = Field(None, alias="user_name__ie")
    user_name_iew: list[str] | None = Field(None, alias="user_name__iew")
    user_name_isw: list[str] | None = Field(None, alias="user_name__isw")
    user_name_n: list[str] | None = Field(None, alias="user_name__n")
    user_name_nic: list[str] | None = Field(None, alias="user_name__nic")
    user_name_nie: list[str] | None = Field(None, alias="user_name__nie")
    user_name_niew: list[str] | None = Field(None, alias="user_name__niew")
    user_name_nisw: list[str] | None = Field(None, alias="user_name__nisw")


class DcimCableTerminationsRootGetQuery(BaseModel):
    cable: int | None = None
    cable_n: int | None = Field(None, alias="cable__n")
    cable_end: Literal["A", "B"] | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    termination_id: list[int] | None = None
    termination_id_empty: bool | None = Field(None, alias="termination_id__empty")
    termination_id_gt: list[int] | None = Field(None, alias="termination_id__gt")
    termination_id_gte: list[int] | None = Field(None, alias="termination_id__gte")
    termination_id_lt: list[int] | None = Field(None, alias="termination_id__lt")
    termination_id_lte: list[int] | None = Field(None, alias="termination_id__lte")
    termination_id_n: list[int] | None = Field(None, alias="termination_id__n")
    termination_type: str | None = None
    termination_type_n: str | None = Field(None, alias="termination_type__n")
    updated_by_request: str | None = None


class DcimCablesRootGetQuery(BaseModel):
    circuittermination_id: list[int] | None = None
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    consoleport_id: list[int] | None = None
    consoleserverport_id: list[int] | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_id: list[int] | None = None
    frontport_id: list[int] | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface_id: list[int] | None = None
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    length: list[float] | None = None
    length_empty: bool | None = Field(None, alias="length__empty")
    length_gt: list[float] | None = Field(None, alias="length__gt")
    length_gte: list[float] | None = Field(None, alias="length__gte")
    length_lt: list[float] | None = Field(None, alias="length__lt")
    length_lte: list[float] | None = Field(None, alias="length__lte")
    length_n: list[float] | None = Field(None, alias="length__n")
    length_unit: Literal["cm", "ft", "in", "km", "m", "mi"] | None = None
    limit: int | None = None
    location: list[str] | None = None
    location_id: list[int] | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    powerfeed_id: list[int] | None = None
    poweroutlet_id: list[int] | None = None
    powerport_id: list[int] | None = None
    q: str | None = None
    rack: list[str] | None = None
    rack_id: list[int] | None = None
    rearport_id: list[int] | None = None
    site: list[str] | None = None
    site_id: list[int] | None = None
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    termination_a_id: list[int] | None = None
    termination_a_type: str | None = None
    termination_a_type_n: str | None = Field(None, alias="termination_a_type__n")
    termination_b_id: list[int] | None = None
    termination_b_type: str | None = None
    termination_b_type_n: str | None = Field(None, alias="termination_b_type__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    unterminated: bool | None = None
    updated_by_request: str | None = None


class DcimConnectedDeviceRootGetQuery(BaseModel):
    peer_device: str = ...
    peer_interface: str = ...


class DcimConsolePortTemplatesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    module_type_id: list[int] | None = None
    module_type_id_n: list[int] | None = Field(None, alias="module_type_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    type: Literal["Other", "Serial", "USB"] | None = None
    updated_by_request: str | None = None


class DcimConsolePortsRootGetQuery(BaseModel):
    cable_end: Literal["A", "B"] | None = None
    cable_id: list[int] | None = None
    cable_id_n: list[int] | None = Field(None, alias="cable_id__n")
    cabled: bool | None = None
    connected: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    mark_connected: bool | None = None
    modified_by_request: str | None = None
    module_id: list[int] | None = None
    module_id_n: list[int] | None = Field(None, alias="module_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    occupied: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    speed: Literal[115200, 1200, 19200, 2400, 38400, 4800, 57600, 9600] | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")


class DcimConsoleServerPortTemplatesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    module_type_id: list[int] | None = None
    module_type_id_n: list[int] | None = Field(None, alias="module_type_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    type: Literal["Other", "Serial", "USB"] | None = None
    updated_by_request: str | None = None


class DcimConsoleServerPortsRootGetQuery(BaseModel):
    cable_end: Literal["A", "B"] | None = None
    cable_id: list[int] | None = None
    cable_id_n: list[int] | None = Field(None, alias="cable_id__n")
    cabled: bool | None = None
    connected: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    mark_connected: bool | None = None
    modified_by_request: str | None = None
    module_id: list[int] | None = None
    module_id_n: list[int] | None = Field(None, alias="module_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    occupied: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    speed: Literal[115200, 1200, 19200, 2400, 38400, 4800, 57600, 9600] | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")


class DcimDeviceBayTemplatesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    updated_by_request: str | None = None


class DcimDeviceBaysRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    installed_device: list[str] | None = None
    installed_device_n: list[str] | None = Field(None, alias="installed_device__n")
    installed_device_id: list[int] | None = None
    installed_device_id_n: list[int] | None = Field(None, alias="installed_device_id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")


class DcimDeviceRolesRootGetQuery(BaseModel):
    ancestor: list[str] | None = None
    ancestor_n: list[str] | None = Field(None, alias="ancestor__n")
    ancestor_id: list[str] | None = None
    ancestor_id_n: list[str] | None = Field(None, alias="ancestor_id__n")
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    config_template_id: list[int] | None = None
    config_template_id_n: list[int] | None = Field(None, alias="config_template_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent: list[str] | None = None
    parent_n: list[str] | None = Field(None, alias="parent__n")
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    vm_role: bool | None = None


class DcimDeviceTypesRootGetQuery(BaseModel):
    airflow: (
        Literal[
            "bottom-to-top",
            "front-to-rear",
            "left-to-right",
            "mixed",
            "passive",
            "rear-to-front",
            "rear-to-side",
            "right-to-left",
            "side-to-rear",
            "top-to-bottom",
        ]
        | None
    ) = None
    console_port_template_count: list[int] | None = None
    console_port_template_count_empty: bool | None = Field(
        None, alias="console_port_template_count__empty"
    )
    console_port_template_count_gt: list[int] | None = Field(
        None, alias="console_port_template_count__gt"
    )
    console_port_template_count_gte: list[int] | None = Field(
        None, alias="console_port_template_count__gte"
    )
    console_port_template_count_lt: list[int] | None = Field(
        None, alias="console_port_template_count__lt"
    )
    console_port_template_count_lte: list[int] | None = Field(
        None, alias="console_port_template_count__lte"
    )
    console_port_template_count_n: list[int] | None = Field(
        None, alias="console_port_template_count__n"
    )
    console_ports: bool | None = None
    console_server_port_template_count: list[int] | None = None
    console_server_port_template_count_empty: bool | None = Field(
        None, alias="console_server_port_template_count__empty"
    )
    console_server_port_template_count_gt: list[int] | None = Field(
        None, alias="console_server_port_template_count__gt"
    )
    console_server_port_template_count_gte: list[int] | None = Field(
        None, alias="console_server_port_template_count__gte"
    )
    console_server_port_template_count_lt: list[int] | None = Field(
        None, alias="console_server_port_template_count__lt"
    )
    console_server_port_template_count_lte: list[int] | None = Field(
        None, alias="console_server_port_template_count__lte"
    )
    console_server_port_template_count_n: list[int] | None = Field(
        None, alias="console_server_port_template_count__n"
    )
    console_server_ports: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    default_platform: list[str] | None = None
    default_platform_n: list[str] | None = Field(None, alias="default_platform__n")
    default_platform_id: list[int] | None = None
    default_platform_id_n: list[int] | None = Field(None, alias="default_platform_id__n")
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_bay_template_count: list[int] | None = None
    device_bay_template_count_empty: bool | None = Field(
        None, alias="device_bay_template_count__empty"
    )
    device_bay_template_count_gt: list[int] | None = Field(
        None, alias="device_bay_template_count__gt"
    )
    device_bay_template_count_gte: list[int] | None = Field(
        None, alias="device_bay_template_count__gte"
    )
    device_bay_template_count_lt: list[int] | None = Field(
        None, alias="device_bay_template_count__lt"
    )
    device_bay_template_count_lte: list[int] | None = Field(
        None, alias="device_bay_template_count__lte"
    )
    device_bay_template_count_n: list[int] | None = Field(
        None, alias="device_bay_template_count__n"
    )
    device_bays: bool | None = None
    exclude_from_utilization: bool | None = None
    front_port_template_count: list[int] | None = None
    front_port_template_count_empty: bool | None = Field(
        None, alias="front_port_template_count__empty"
    )
    front_port_template_count_gt: list[int] | None = Field(
        None, alias="front_port_template_count__gt"
    )
    front_port_template_count_gte: list[int] | None = Field(
        None, alias="front_port_template_count__gte"
    )
    front_port_template_count_lt: list[int] | None = Field(
        None, alias="front_port_template_count__lt"
    )
    front_port_template_count_lte: list[int] | None = Field(
        None, alias="front_port_template_count__lte"
    )
    front_port_template_count_n: list[int] | None = Field(
        None, alias="front_port_template_count__n"
    )
    has_front_image: bool | None = None
    has_rear_image: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface_template_count: list[int] | None = None
    interface_template_count_empty: bool | None = Field(
        None, alias="interface_template_count__empty"
    )
    interface_template_count_gt: list[int] | None = Field(
        None, alias="interface_template_count__gt"
    )
    interface_template_count_gte: list[int] | None = Field(
        None, alias="interface_template_count__gte"
    )
    interface_template_count_lt: list[int] | None = Field(
        None, alias="interface_template_count__lt"
    )
    interface_template_count_lte: list[int] | None = Field(
        None, alias="interface_template_count__lte"
    )
    interface_template_count_n: list[int] | None = Field(None, alias="interface_template_count__n")
    interfaces: bool | None = None
    inventory_item_template_count: list[int] | None = None
    inventory_item_template_count_empty: bool | None = Field(
        None, alias="inventory_item_template_count__empty"
    )
    inventory_item_template_count_gt: list[int] | None = Field(
        None, alias="inventory_item_template_count__gt"
    )
    inventory_item_template_count_gte: list[int] | None = Field(
        None, alias="inventory_item_template_count__gte"
    )
    inventory_item_template_count_lt: list[int] | None = Field(
        None, alias="inventory_item_template_count__lt"
    )
    inventory_item_template_count_lte: list[int] | None = Field(
        None, alias="inventory_item_template_count__lte"
    )
    inventory_item_template_count_n: list[int] | None = Field(
        None, alias="inventory_item_template_count__n"
    )
    inventory_items: bool | None = None
    is_full_depth: bool | None = None
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    manufacturer: list[str] | None = None
    manufacturer_n: list[str] | None = Field(None, alias="manufacturer__n")
    manufacturer_id: list[int] | None = None
    manufacturer_id_n: list[int] | None = Field(None, alias="manufacturer_id__n")
    model: list[str] | None = None
    model_empty: bool | None = Field(None, alias="model__empty")
    model_ic: list[str] | None = Field(None, alias="model__ic")
    model_ie: list[str] | None = Field(None, alias="model__ie")
    model_iew: list[str] | None = Field(None, alias="model__iew")
    model_isw: list[str] | None = Field(None, alias="model__isw")
    model_n: list[str] | None = Field(None, alias="model__n")
    model_nic: list[str] | None = Field(None, alias="model__nic")
    model_nie: list[str] | None = Field(None, alias="model__nie")
    model_niew: list[str] | None = Field(None, alias="model__niew")
    model_nisw: list[str] | None = Field(None, alias="model__nisw")
    modified_by_request: str | None = None
    module_bay_template_count: list[int] | None = None
    module_bay_template_count_empty: bool | None = Field(
        None, alias="module_bay_template_count__empty"
    )
    module_bay_template_count_gt: list[int] | None = Field(
        None, alias="module_bay_template_count__gt"
    )
    module_bay_template_count_gte: list[int] | None = Field(
        None, alias="module_bay_template_count__gte"
    )
    module_bay_template_count_lt: list[int] | None = Field(
        None, alias="module_bay_template_count__lt"
    )
    module_bay_template_count_lte: list[int] | None = Field(
        None, alias="module_bay_template_count__lte"
    )
    module_bay_template_count_n: list[int] | None = Field(
        None, alias="module_bay_template_count__n"
    )
    module_bays: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    part_number: list[str] | None = None
    part_number_empty: bool | None = Field(None, alias="part_number__empty")
    part_number_ic: list[str] | None = Field(None, alias="part_number__ic")
    part_number_ie: list[str] | None = Field(None, alias="part_number__ie")
    part_number_iew: list[str] | None = Field(None, alias="part_number__iew")
    part_number_isw: list[str] | None = Field(None, alias="part_number__isw")
    part_number_n: list[str] | None = Field(None, alias="part_number__n")
    part_number_nic: list[str] | None = Field(None, alias="part_number__nic")
    part_number_nie: list[str] | None = Field(None, alias="part_number__nie")
    part_number_niew: list[str] | None = Field(None, alias="part_number__niew")
    part_number_nisw: list[str] | None = Field(None, alias="part_number__nisw")
    pass_through_ports: bool | None = None
    power_outlet_template_count: list[int] | None = None
    power_outlet_template_count_empty: bool | None = Field(
        None, alias="power_outlet_template_count__empty"
    )
    power_outlet_template_count_gt: list[int] | None = Field(
        None, alias="power_outlet_template_count__gt"
    )
    power_outlet_template_count_gte: list[int] | None = Field(
        None, alias="power_outlet_template_count__gte"
    )
    power_outlet_template_count_lt: list[int] | None = Field(
        None, alias="power_outlet_template_count__lt"
    )
    power_outlet_template_count_lte: list[int] | None = Field(
        None, alias="power_outlet_template_count__lte"
    )
    power_outlet_template_count_n: list[int] | None = Field(
        None, alias="power_outlet_template_count__n"
    )
    power_outlets: bool | None = None
    power_port_template_count: list[int] | None = None
    power_port_template_count_empty: bool | None = Field(
        None, alias="power_port_template_count__empty"
    )
    power_port_template_count_gt: list[int] | None = Field(
        None, alias="power_port_template_count__gt"
    )
    power_port_template_count_gte: list[int] | None = Field(
        None, alias="power_port_template_count__gte"
    )
    power_port_template_count_lt: list[int] | None = Field(
        None, alias="power_port_template_count__lt"
    )
    power_port_template_count_lte: list[int] | None = Field(
        None, alias="power_port_template_count__lte"
    )
    power_port_template_count_n: list[int] | None = Field(
        None, alias="power_port_template_count__n"
    )
    power_ports: bool | None = None
    q: str | None = None
    rear_port_template_count: list[int] | None = None
    rear_port_template_count_empty: bool | None = Field(
        None, alias="rear_port_template_count__empty"
    )
    rear_port_template_count_gt: list[int] | None = Field(
        None, alias="rear_port_template_count__gt"
    )
    rear_port_template_count_gte: list[int] | None = Field(
        None, alias="rear_port_template_count__gte"
    )
    rear_port_template_count_lt: list[int] | None = Field(
        None, alias="rear_port_template_count__lt"
    )
    rear_port_template_count_lte: list[int] | None = Field(
        None, alias="rear_port_template_count__lte"
    )
    rear_port_template_count_n: list[int] | None = Field(None, alias="rear_port_template_count__n")
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    subdevice_role: Literal["child", "parent"] | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    u_height: list[float] | None = None
    u_height_empty: bool | None = Field(None, alias="u_height__empty")
    u_height_gt: list[float] | None = Field(None, alias="u_height__gt")
    u_height_gte: list[float] | None = Field(None, alias="u_height__gte")
    u_height_lt: list[float] | None = Field(None, alias="u_height__lt")
    u_height_lte: list[float] | None = Field(None, alias="u_height__lte")
    u_height_n: list[float] | None = Field(None, alias="u_height__n")
    updated_by_request: str | None = None
    weight: list[float] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[float] | None = Field(None, alias="weight__gt")
    weight_gte: list[float] | None = Field(None, alias="weight__gte")
    weight_lt: list[float] | None = Field(None, alias="weight__lt")
    weight_lte: list[float] | None = Field(None, alias="weight__lte")
    weight_n: list[float] | None = Field(None, alias="weight__n")
    weight_unit: Literal["g", "kg", "lb", "oz"] | None = None


class DcimDevicesRenderConfigPostQuery(BaseModel):
    format: Literal["json", "txt"] | None = None


class DcimDevicesRootGetQuery(BaseModel):
    airflow: (
        Literal[
            "bottom-to-top",
            "front-to-rear",
            "left-to-right",
            "mixed",
            "passive",
            "rear-to-front",
            "rear-to-side",
            "right-to-left",
            "side-to-rear",
            "top-to-bottom",
        ]
        | None
    ) = None
    asset_tag: list[str] | None = None
    asset_tag_empty: bool | None = Field(None, alias="asset_tag__empty")
    asset_tag_ic: list[str] | None = Field(None, alias="asset_tag__ic")
    asset_tag_ie: list[str] | None = Field(None, alias="asset_tag__ie")
    asset_tag_iew: list[str] | None = Field(None, alias="asset_tag__iew")
    asset_tag_isw: list[str] | None = Field(None, alias="asset_tag__isw")
    asset_tag_n: list[str] | None = Field(None, alias="asset_tag__n")
    asset_tag_nic: list[str] | None = Field(None, alias="asset_tag__nic")
    asset_tag_nie: list[str] | None = Field(None, alias="asset_tag__nie")
    asset_tag_niew: list[str] | None = Field(None, alias="asset_tag__niew")
    asset_tag_nisw: list[str] | None = Field(None, alias="asset_tag__nisw")
    cluster_group: list[str] | None = None
    cluster_group_n: list[str] | None = Field(None, alias="cluster_group__n")
    cluster_group_id: list[int] | None = None
    cluster_group_id_n: list[int] | None = Field(None, alias="cluster_group_id__n")
    cluster_id: list[int] | None = None
    cluster_id_n: list[int] | None = Field(None, alias="cluster_id__n")
    config_template_id: list[int] | None = None
    config_template_id_n: list[int] | None = Field(None, alias="config_template_id__n")
    console_port_count: list[int] | None = None
    console_port_count_empty: bool | None = Field(None, alias="console_port_count__empty")
    console_port_count_gt: list[int] | None = Field(None, alias="console_port_count__gt")
    console_port_count_gte: list[int] | None = Field(None, alias="console_port_count__gte")
    console_port_count_lt: list[int] | None = Field(None, alias="console_port_count__lt")
    console_port_count_lte: list[int] | None = Field(None, alias="console_port_count__lte")
    console_port_count_n: list[int] | None = Field(None, alias="console_port_count__n")
    console_ports: bool | None = None
    console_server_port_count: list[int] | None = None
    console_server_port_count_empty: bool | None = Field(
        None, alias="console_server_port_count__empty"
    )
    console_server_port_count_gt: list[int] | None = Field(
        None, alias="console_server_port_count__gt"
    )
    console_server_port_count_gte: list[int] | None = Field(
        None, alias="console_server_port_count__gte"
    )
    console_server_port_count_lt: list[int] | None = Field(
        None, alias="console_server_port_count__lt"
    )
    console_server_port_count_lte: list[int] | None = Field(
        None, alias="console_server_port_count__lte"
    )
    console_server_port_count_n: list[int] | None = Field(
        None, alias="console_server_port_count__n"
    )
    console_server_ports: bool | None = None
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_bay_count: list[int] | None = None
    device_bay_count_empty: bool | None = Field(None, alias="device_bay_count__empty")
    device_bay_count_gt: list[int] | None = Field(None, alias="device_bay_count__gt")
    device_bay_count_gte: list[int] | None = Field(None, alias="device_bay_count__gte")
    device_bay_count_lt: list[int] | None = Field(None, alias="device_bay_count__lt")
    device_bay_count_lte: list[int] | None = Field(None, alias="device_bay_count__lte")
    device_bay_count_n: list[int] | None = Field(None, alias="device_bay_count__n")
    device_bays: bool | None = None
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    face: Literal["front", "rear"] | None = None
    front_port_count: list[int] | None = None
    front_port_count_empty: bool | None = Field(None, alias="front_port_count__empty")
    front_port_count_gt: list[int] | None = Field(None, alias="front_port_count__gt")
    front_port_count_gte: list[int] | None = Field(None, alias="front_port_count__gte")
    front_port_count_lt: list[int] | None = Field(None, alias="front_port_count__lt")
    front_port_count_lte: list[int] | None = Field(None, alias="front_port_count__lte")
    front_port_count_n: list[int] | None = Field(None, alias="front_port_count__n")
    has_oob_ip: bool | None = None
    has_primary_ip: bool | None = None
    has_virtual_device_context: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface_count: list[int] | None = None
    interface_count_empty: bool | None = Field(None, alias="interface_count__empty")
    interface_count_gt: list[int] | None = Field(None, alias="interface_count__gt")
    interface_count_gte: list[int] | None = Field(None, alias="interface_count__gte")
    interface_count_lt: list[int] | None = Field(None, alias="interface_count__lt")
    interface_count_lte: list[int] | None = Field(None, alias="interface_count__lte")
    interface_count_n: list[int] | None = Field(None, alias="interface_count__n")
    interfaces: bool | None = None
    inventory_item_count: list[int] | None = None
    inventory_item_count_empty: bool | None = Field(None, alias="inventory_item_count__empty")
    inventory_item_count_gt: list[int] | None = Field(None, alias="inventory_item_count__gt")
    inventory_item_count_gte: list[int] | None = Field(None, alias="inventory_item_count__gte")
    inventory_item_count_lt: list[int] | None = Field(None, alias="inventory_item_count__lt")
    inventory_item_count_lte: list[int] | None = Field(None, alias="inventory_item_count__lte")
    inventory_item_count_n: list[int] | None = Field(None, alias="inventory_item_count__n")
    is_full_depth: bool | None = None
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    latitude: list[float] | None = None
    latitude_empty: bool | None = Field(None, alias="latitude__empty")
    latitude_gt: list[float] | None = Field(None, alias="latitude__gt")
    latitude_gte: list[float] | None = Field(None, alias="latitude__gte")
    latitude_lt: list[float] | None = Field(None, alias="latitude__lt")
    latitude_lte: list[float] | None = Field(None, alias="latitude__lte")
    latitude_n: list[float] | None = Field(None, alias="latitude__n")
    limit: int | None = None
    local_context_data: bool | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[str] | None = None
    location_id_n: list[str] | None = Field(None, alias="location_id__n")
    longitude: list[float] | None = None
    longitude_empty: bool | None = Field(None, alias="longitude__empty")
    longitude_gt: list[float] | None = Field(None, alias="longitude__gt")
    longitude_gte: list[float] | None = Field(None, alias="longitude__gte")
    longitude_lt: list[float] | None = Field(None, alias="longitude__lt")
    longitude_lte: list[float] | None = Field(None, alias="longitude__lte")
    longitude_n: list[float] | None = Field(None, alias="longitude__n")
    mac_address: list[str] | None = None
    mac_address_ic: list[str] | None = Field(None, alias="mac_address__ic")
    mac_address_ie: list[str] | None = Field(None, alias="mac_address__ie")
    mac_address_iew: list[str] | None = Field(None, alias="mac_address__iew")
    mac_address_isw: list[str] | None = Field(None, alias="mac_address__isw")
    mac_address_n: list[str] | None = Field(None, alias="mac_address__n")
    mac_address_nic: list[str] | None = Field(None, alias="mac_address__nic")
    mac_address_nie: list[str] | None = Field(None, alias="mac_address__nie")
    mac_address_niew: list[str] | None = Field(None, alias="mac_address__niew")
    mac_address_nisw: list[str] | None = Field(None, alias="mac_address__nisw")
    manufacturer: list[str] | None = None
    manufacturer_n: list[str] | None = Field(None, alias="manufacturer__n")
    manufacturer_id: list[int] | None = None
    manufacturer_id_n: list[int] | None = Field(None, alias="manufacturer_id__n")
    model: list[str] | None = None
    model_n: list[str] | None = Field(None, alias="model__n")
    modified_by_request: str | None = None
    module_bay_count: list[int] | None = None
    module_bay_count_empty: bool | None = Field(None, alias="module_bay_count__empty")
    module_bay_count_gt: list[int] | None = Field(None, alias="module_bay_count__gt")
    module_bay_count_gte: list[int] | None = Field(None, alias="module_bay_count__gte")
    module_bay_count_lt: list[int] | None = Field(None, alias="module_bay_count__lt")
    module_bay_count_lte: list[int] | None = Field(None, alias="module_bay_count__lte")
    module_bay_count_n: list[int] | None = Field(None, alias="module_bay_count__n")
    module_bays: bool | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    oob_ip_id: list[int] | None = None
    oob_ip_id_n: list[int] | None = Field(None, alias="oob_ip_id__n")
    ordering: str | None = None
    parent_bay_id: list[int] | None = None
    parent_bay_id_n: list[int] | None = Field(None, alias="parent_bay_id__n")
    parent_device_id: list[int] | None = None
    parent_device_id_n: list[int] | None = Field(None, alias="parent_device_id__n")
    pass_through_ports: bool | None = None
    platform: list[str] | None = None
    platform_n: list[str] | None = Field(None, alias="platform__n")
    platform_id: list[int] | None = None
    platform_id_n: list[int] | None = Field(None, alias="platform_id__n")
    position: list[float] | None = None
    position_empty: bool | None = Field(None, alias="position__empty")
    position_gt: list[float] | None = Field(None, alias="position__gt")
    position_gte: list[float] | None = Field(None, alias="position__gte")
    position_lt: list[float] | None = Field(None, alias="position__lt")
    position_lte: list[float] | None = Field(None, alias="position__lte")
    position_n: list[float] | None = Field(None, alias="position__n")
    power_outlet_count: list[int] | None = None
    power_outlet_count_empty: bool | None = Field(None, alias="power_outlet_count__empty")
    power_outlet_count_gt: list[int] | None = Field(None, alias="power_outlet_count__gt")
    power_outlet_count_gte: list[int] | None = Field(None, alias="power_outlet_count__gte")
    power_outlet_count_lt: list[int] | None = Field(None, alias="power_outlet_count__lt")
    power_outlet_count_lte: list[int] | None = Field(None, alias="power_outlet_count__lte")
    power_outlet_count_n: list[int] | None = Field(None, alias="power_outlet_count__n")
    power_outlets: bool | None = None
    power_port_count: list[int] | None = None
    power_port_count_empty: bool | None = Field(None, alias="power_port_count__empty")
    power_port_count_gt: list[int] | None = Field(None, alias="power_port_count__gt")
    power_port_count_gte: list[int] | None = Field(None, alias="power_port_count__gte")
    power_port_count_lt: list[int] | None = Field(None, alias="power_port_count__lt")
    power_port_count_lte: list[int] | None = Field(None, alias="power_port_count__lte")
    power_port_count_n: list[int] | None = Field(None, alias="power_port_count__n")
    power_ports: bool | None = None
    primary_ip4: list[str] | None = None
    primary_ip4_n: list[str] | None = Field(None, alias="primary_ip4__n")
    primary_ip4_id: list[int] | None = None
    primary_ip4_id_n: list[int] | None = Field(None, alias="primary_ip4_id__n")
    primary_ip6: list[str] | None = None
    primary_ip6_n: list[str] | None = Field(None, alias="primary_ip6__n")
    primary_ip6_id: list[int] | None = None
    primary_ip6_id_n: list[int] | None = Field(None, alias="primary_ip6_id__n")
    q: str | None = None
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    rear_port_count: list[int] | None = None
    rear_port_count_empty: bool | None = Field(None, alias="rear_port_count__empty")
    rear_port_count_gt: list[int] | None = Field(None, alias="rear_port_count__gt")
    rear_port_count_gte: list[int] | None = Field(None, alias="rear_port_count__gte")
    rear_port_count_lt: list[int] | None = Field(None, alias="rear_port_count__lt")
    rear_port_count_lte: list[int] | None = Field(None, alias="rear_port_count__lte")
    rear_port_count_n: list[int] | None = Field(None, alias="rear_port_count__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    role: list[str] | None = None
    role_n: list[str] | None = Field(None, alias="role__n")
    role_id: list[str] | None = None
    role_id_n: list[str] | None = Field(None, alias="role_id__n")
    serial: list[str] | None = None
    serial_empty: bool | None = Field(None, alias="serial__empty")
    serial_ic: list[str] | None = Field(None, alias="serial__ic")
    serial_ie: list[str] | None = Field(None, alias="serial__ie")
    serial_iew: list[str] | None = Field(None, alias="serial__iew")
    serial_isw: list[str] | None = Field(None, alias="serial__isw")
    serial_n: list[str] | None = Field(None, alias="serial__n")
    serial_nic: list[str] | None = Field(None, alias="serial__nic")
    serial_nie: list[str] | None = Field(None, alias="serial__nie")
    serial_niew: list[str] | None = Field(None, alias="serial__niew")
    serial_nisw: list[str] | None = Field(None, alias="serial__nisw")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None
    vc_position: list[int] | None = None
    vc_position_empty: bool | None = Field(None, alias="vc_position__empty")
    vc_position_gt: list[int] | None = Field(None, alias="vc_position__gt")
    vc_position_gte: list[int] | None = Field(None, alias="vc_position__gte")
    vc_position_lt: list[int] | None = Field(None, alias="vc_position__lt")
    vc_position_lte: list[int] | None = Field(None, alias="vc_position__lte")
    vc_position_n: list[int] | None = Field(None, alias="vc_position__n")
    vc_priority: list[int] | None = None
    vc_priority_empty: bool | None = Field(None, alias="vc_priority__empty")
    vc_priority_gt: list[int] | None = Field(None, alias="vc_priority__gt")
    vc_priority_gte: list[int] | None = Field(None, alias="vc_priority__gte")
    vc_priority_lt: list[int] | None = Field(None, alias="vc_priority__lt")
    vc_priority_lte: list[int] | None = Field(None, alias="vc_priority__lte")
    vc_priority_n: list[int] | None = Field(None, alias="vc_priority__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")
    virtual_chassis_member: bool | None = None


class DcimFrontPortTemplatesRootGetQuery(BaseModel):
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    module_type_id: list[int] | None = None
    module_type_id_n: list[int] | None = Field(None, alias="module_type_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rear_port_id: list[int] | None = None
    rear_port_id_n: list[int] | None = Field(None, alias="rear_port_id__n")
    rear_port_position: list[int] | None = None
    rear_port_position_empty: bool | None = Field(None, alias="rear_port_position__empty")
    rear_port_position_gt: list[int] | None = Field(None, alias="rear_port_position__gt")
    rear_port_position_gte: list[int] | None = Field(None, alias="rear_port_position__gte")
    rear_port_position_lt: list[int] | None = Field(None, alias="rear_port_position__lt")
    rear_port_position_lte: list[int] | None = Field(None, alias="rear_port_position__lte")
    rear_port_position_n: list[int] | None = Field(None, alias="rear_port_position__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None


class DcimFrontPortsRootGetQuery(BaseModel):
    cable_end: Literal["A", "B"] | None = None
    cable_id: list[int] | None = None
    cable_id_n: list[int] | None = Field(None, alias="cable_id__n")
    cabled: bool | None = None
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    mark_connected: bool | None = None
    modified_by_request: str | None = None
    module_id: list[int] | None = None
    module_id_n: list[int] | None = Field(None, alias="module_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    occupied: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    rear_port_id: list[int] | None = None
    rear_port_id_n: list[int] | None = Field(None, alias="rear_port_id__n")
    rear_port_position: list[int] | None = None
    rear_port_position_empty: bool | None = Field(None, alias="rear_port_position__empty")
    rear_port_position_gt: list[int] | None = Field(None, alias="rear_port_position__gt")
    rear_port_position_gte: list[int] | None = Field(None, alias="rear_port_position__gte")
    rear_port_position_lt: list[int] | None = Field(None, alias="rear_port_position__lt")
    rear_port_position_lte: list[int] | None = Field(None, alias="rear_port_position__lte")
    rear_port_position_n: list[int] | None = Field(None, alias="rear_port_position__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")


class DcimInterfaceTemplatesRootGetQuery(BaseModel):
    bridge_id: list[int] | None = None
    bridge_id_n: list[int] | None = Field(None, alias="bridge_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    enabled: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mgmt_only: bool | None = None
    modified_by_request: str | None = None
    module_type_id: list[int] | None = None
    module_type_id_n: list[int] | None = Field(None, alias="module_type_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    poe_mode: list[str] | None = None
    poe_mode_empty: bool | None = Field(None, alias="poe_mode__empty")
    poe_mode_ic: list[str] | None = Field(None, alias="poe_mode__ic")
    poe_mode_ie: list[str] | None = Field(None, alias="poe_mode__ie")
    poe_mode_iew: list[str] | None = Field(None, alias="poe_mode__iew")
    poe_mode_isw: list[str] | None = Field(None, alias="poe_mode__isw")
    poe_mode_n: list[str] | None = Field(None, alias="poe_mode__n")
    poe_mode_nic: list[str] | None = Field(None, alias="poe_mode__nic")
    poe_mode_nie: list[str] | None = Field(None, alias="poe_mode__nie")
    poe_mode_niew: list[str] | None = Field(None, alias="poe_mode__niew")
    poe_mode_nisw: list[str] | None = Field(None, alias="poe_mode__nisw")
    poe_type: list[str] | None = None
    poe_type_empty: bool | None = Field(None, alias="poe_type__empty")
    poe_type_ic: list[str] | None = Field(None, alias="poe_type__ic")
    poe_type_ie: list[str] | None = Field(None, alias="poe_type__ie")
    poe_type_iew: list[str] | None = Field(None, alias="poe_type__iew")
    poe_type_isw: list[str] | None = Field(None, alias="poe_type__isw")
    poe_type_n: list[str] | None = Field(None, alias="poe_type__n")
    poe_type_nic: list[str] | None = Field(None, alias="poe_type__nic")
    poe_type_nie: list[str] | None = Field(None, alias="poe_type__nie")
    poe_type_niew: list[str] | None = Field(None, alias="poe_type__niew")
    poe_type_nisw: list[str] | None = Field(None, alias="poe_type__nisw")
    q: str | None = None
    rf_role: list[str] | None = None
    rf_role_empty: bool | None = Field(None, alias="rf_role__empty")
    rf_role_ic: list[str] | None = Field(None, alias="rf_role__ic")
    rf_role_ie: list[str] | None = Field(None, alias="rf_role__ie")
    rf_role_iew: list[str] | None = Field(None, alias="rf_role__iew")
    rf_role_isw: list[str] | None = Field(None, alias="rf_role__isw")
    rf_role_n: list[str] | None = Field(None, alias="rf_role__n")
    rf_role_nic: list[str] | None = Field(None, alias="rf_role__nic")
    rf_role_nie: list[str] | None = Field(None, alias="rf_role__nie")
    rf_role_niew: list[str] | None = Field(None, alias="rf_role__niew")
    rf_role_nisw: list[str] | None = Field(None, alias="rf_role__nisw")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None


class DcimInterfacesRootGetQuery(BaseModel):
    bridge_id: list[int] | None = None
    bridge_id_n: list[int] | None = Field(None, alias="bridge_id__n")
    cable_end: Literal["A", "B"] | None = None
    cable_id: list[int] | None = None
    cable_id_n: list[int] | None = Field(None, alias="cable_id__n")
    cabled: bool | None = None
    connected: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    duplex: list[str] | None = None
    duplex_empty: bool | None = Field(None, alias="duplex__empty")
    duplex_ic: list[str] | None = Field(None, alias="duplex__ic")
    duplex_ie: list[str] | None = Field(None, alias="duplex__ie")
    duplex_iew: list[str] | None = Field(None, alias="duplex__iew")
    duplex_isw: list[str] | None = Field(None, alias="duplex__isw")
    duplex_n: list[str] | None = Field(None, alias="duplex__n")
    duplex_nic: list[str] | None = Field(None, alias="duplex__nic")
    duplex_nie: list[str] | None = Field(None, alias="duplex__nie")
    duplex_niew: list[str] | None = Field(None, alias="duplex__niew")
    duplex_nisw: list[str] | None = Field(None, alias="duplex__nisw")
    enabled: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    kind: str | None = None
    l2vpn: list[int] | None = None
    l2vpn_n: list[int] | None = Field(None, alias="l2vpn__n")
    l2vpn_id: list[int] | None = None
    l2vpn_id_n: list[int] | None = Field(None, alias="l2vpn_id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    lag_id: list[int] | None = None
    lag_id_n: list[int] | None = Field(None, alias="lag_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    mac_address: list[str] | None = None
    mac_address_ic: list[str] | None = Field(None, alias="mac_address__ic")
    mac_address_ie: list[str] | None = Field(None, alias="mac_address__ie")
    mac_address_iew: list[str] | None = Field(None, alias="mac_address__iew")
    mac_address_isw: list[str] | None = Field(None, alias="mac_address__isw")
    mac_address_n: list[str] | None = Field(None, alias="mac_address__n")
    mac_address_nic: list[str] | None = Field(None, alias="mac_address__nic")
    mac_address_nie: list[str] | None = Field(None, alias="mac_address__nie")
    mac_address_niew: list[str] | None = Field(None, alias="mac_address__niew")
    mac_address_nisw: list[str] | None = Field(None, alias="mac_address__nisw")
    mark_connected: bool | None = None
    mgmt_only: bool | None = None
    mode: list[str] | None = None
    mode_empty: bool | None = Field(None, alias="mode__empty")
    mode_ic: list[str] | None = Field(None, alias="mode__ic")
    mode_ie: list[str] | None = Field(None, alias="mode__ie")
    mode_iew: list[str] | None = Field(None, alias="mode__iew")
    mode_isw: list[str] | None = Field(None, alias="mode__isw")
    mode_n: list[str] | None = Field(None, alias="mode__n")
    mode_nic: list[str] | None = Field(None, alias="mode__nic")
    mode_nie: list[str] | None = Field(None, alias="mode__nie")
    mode_niew: list[str] | None = Field(None, alias="mode__niew")
    mode_nisw: list[str] | None = Field(None, alias="mode__nisw")
    modified_by_request: str | None = None
    module_id: list[int] | None = None
    module_id_n: list[int] | None = Field(None, alias="module_id__n")
    mtu: list[int] | None = None
    mtu_empty: bool | None = Field(None, alias="mtu__empty")
    mtu_gt: list[int] | None = Field(None, alias="mtu__gt")
    mtu_gte: list[int] | None = Field(None, alias="mtu__gte")
    mtu_lt: list[int] | None = Field(None, alias="mtu__lt")
    mtu_lte: list[int] | None = Field(None, alias="mtu__lte")
    mtu_n: list[int] | None = Field(None, alias="mtu__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    occupied: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    poe_mode: list[str] | None = None
    poe_mode_empty: bool | None = Field(None, alias="poe_mode__empty")
    poe_mode_ic: list[str] | None = Field(None, alias="poe_mode__ic")
    poe_mode_ie: list[str] | None = Field(None, alias="poe_mode__ie")
    poe_mode_iew: list[str] | None = Field(None, alias="poe_mode__iew")
    poe_mode_isw: list[str] | None = Field(None, alias="poe_mode__isw")
    poe_mode_n: list[str] | None = Field(None, alias="poe_mode__n")
    poe_mode_nic: list[str] | None = Field(None, alias="poe_mode__nic")
    poe_mode_nie: list[str] | None = Field(None, alias="poe_mode__nie")
    poe_mode_niew: list[str] | None = Field(None, alias="poe_mode__niew")
    poe_mode_nisw: list[str] | None = Field(None, alias="poe_mode__nisw")
    poe_type: list[str] | None = None
    poe_type_empty: bool | None = Field(None, alias="poe_type__empty")
    poe_type_ic: list[str] | None = Field(None, alias="poe_type__ic")
    poe_type_ie: list[str] | None = Field(None, alias="poe_type__ie")
    poe_type_iew: list[str] | None = Field(None, alias="poe_type__iew")
    poe_type_isw: list[str] | None = Field(None, alias="poe_type__isw")
    poe_type_n: list[str] | None = Field(None, alias="poe_type__n")
    poe_type_nic: list[str] | None = Field(None, alias="poe_type__nic")
    poe_type_nie: list[str] | None = Field(None, alias="poe_type__nie")
    poe_type_niew: list[str] | None = Field(None, alias="poe_type__niew")
    poe_type_nisw: list[str] | None = Field(None, alias="poe_type__nisw")
    primary_mac_address: list[str] | None = None
    primary_mac_address_n: list[str] | None = Field(None, alias="primary_mac_address__n")
    primary_mac_address_id: list[int] | None = None
    primary_mac_address_id_n: list[int] | None = Field(None, alias="primary_mac_address_id__n")
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    rf_channel: list[str] | None = None
    rf_channel_empty: bool | None = Field(None, alias="rf_channel__empty")
    rf_channel_ic: list[str] | None = Field(None, alias="rf_channel__ic")
    rf_channel_ie: list[str] | None = Field(None, alias="rf_channel__ie")
    rf_channel_iew: list[str] | None = Field(None, alias="rf_channel__iew")
    rf_channel_isw: list[str] | None = Field(None, alias="rf_channel__isw")
    rf_channel_n: list[str] | None = Field(None, alias="rf_channel__n")
    rf_channel_nic: list[str] | None = Field(None, alias="rf_channel__nic")
    rf_channel_nie: list[str] | None = Field(None, alias="rf_channel__nie")
    rf_channel_niew: list[str] | None = Field(None, alias="rf_channel__niew")
    rf_channel_nisw: list[str] | None = Field(None, alias="rf_channel__nisw")
    rf_channel_frequency: list[float] | None = None
    rf_channel_frequency_empty: bool | None = Field(None, alias="rf_channel_frequency__empty")
    rf_channel_frequency_gt: list[float] | None = Field(None, alias="rf_channel_frequency__gt")
    rf_channel_frequency_gte: list[float] | None = Field(None, alias="rf_channel_frequency__gte")
    rf_channel_frequency_lt: list[float] | None = Field(None, alias="rf_channel_frequency__lt")
    rf_channel_frequency_lte: list[float] | None = Field(None, alias="rf_channel_frequency__lte")
    rf_channel_frequency_n: list[float] | None = Field(None, alias="rf_channel_frequency__n")
    rf_channel_width: list[float] | None = None
    rf_channel_width_empty: bool | None = Field(None, alias="rf_channel_width__empty")
    rf_channel_width_gt: list[float] | None = Field(None, alias="rf_channel_width__gt")
    rf_channel_width_gte: list[float] | None = Field(None, alias="rf_channel_width__gte")
    rf_channel_width_lt: list[float] | None = Field(None, alias="rf_channel_width__lt")
    rf_channel_width_lte: list[float] | None = Field(None, alias="rf_channel_width__lte")
    rf_channel_width_n: list[float] | None = Field(None, alias="rf_channel_width__n")
    rf_role: list[str] | None = None
    rf_role_empty: bool | None = Field(None, alias="rf_role__empty")
    rf_role_ic: list[str] | None = Field(None, alias="rf_role__ic")
    rf_role_ie: list[str] | None = Field(None, alias="rf_role__ie")
    rf_role_iew: list[str] | None = Field(None, alias="rf_role__iew")
    rf_role_isw: list[str] | None = Field(None, alias="rf_role__isw")
    rf_role_n: list[str] | None = Field(None, alias="rf_role__n")
    rf_role_nic: list[str] | None = Field(None, alias="rf_role__nic")
    rf_role_nie: list[str] | None = Field(None, alias="rf_role__nie")
    rf_role_niew: list[str] | None = Field(None, alias="rf_role__niew")
    rf_role_nisw: list[str] | None = Field(None, alias="rf_role__nisw")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    speed: list[int] | None = None
    speed_empty: list[int] | None = Field(None, alias="speed__empty")
    speed_gt: list[int] | None = Field(None, alias="speed__gt")
    speed_gte: list[int] | None = Field(None, alias="speed__gte")
    speed_lt: list[int] | None = Field(None, alias="speed__lt")
    speed_lte: list[int] | None = Field(None, alias="speed__lte")
    speed_n: list[int] | None = Field(None, alias="speed__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tx_power: list[int] | None = None
    tx_power_empty: bool | None = Field(None, alias="tx_power__empty")
    tx_power_gt: list[int] | None = Field(None, alias="tx_power__gt")
    tx_power_gte: list[int] | None = Field(None, alias="tx_power__gte")
    tx_power_lt: list[int] | None = Field(None, alias="tx_power__lt")
    tx_power_lte: list[int] | None = Field(None, alias="tx_power__lte")
    tx_power_n: list[int] | None = Field(None, alias="tx_power__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None
    vdc: list[str] | None = None
    vdc_n: list[str] | None = Field(None, alias="vdc__n")
    vdc_id: list[int] | None = None
    vdc_id_n: list[int] | None = Field(None, alias="vdc_id__n")
    vdc_identifier: list[int] | None = None
    vdc_identifier_n: list[int] | None = Field(None, alias="vdc_identifier__n")
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")
    virtual_chassis_member: list[str] | None = None
    virtual_chassis_member_id: list[int] | None = None
    virtual_circuit_id: list[int] | None = None
    virtual_circuit_id_n: list[int] | None = Field(None, alias="virtual_circuit_id__n")
    virtual_circuit_termination_id: list[int] | None = None
    virtual_circuit_termination_id_n: list[int] | None = Field(
        None, alias="virtual_circuit_termination_id__n"
    )
    vlan: str | None = None
    vlan_id: str | None = None
    vlan_translation_policy: list[str] | None = None
    vlan_translation_policy_n: list[str] | None = Field(None, alias="vlan_translation_policy__n")
    vlan_translation_policy_id: list[int] | None = None
    vlan_translation_policy_id_n: list[int] | None = Field(
        None, alias="vlan_translation_policy_id__n"
    )
    vrf: list[str] | None = None
    vrf_n: list[str] | None = Field(None, alias="vrf__n")
    vrf_id: list[int] | None = None
    vrf_id_n: list[int] | None = Field(None, alias="vrf_id__n")
    wireless_lan_id: list[int] | None = None
    wireless_lan_id_n: list[int] | None = Field(None, alias="wireless_lan_id__n")
    wireless_link_id: list[int] | None = None
    wireless_link_id_n: list[int] | None = Field(None, alias="wireless_link_id__n")
    wwn: list[str] | None = None
    wwn_ic: list[str] | None = Field(None, alias="wwn__ic")
    wwn_ie: list[str] | None = Field(None, alias="wwn__ie")
    wwn_iew: list[str] | None = Field(None, alias="wwn__iew")
    wwn_isw: list[str] | None = Field(None, alias="wwn__isw")
    wwn_n: list[str] | None = Field(None, alias="wwn__n")
    wwn_nic: list[str] | None = Field(None, alias="wwn__nic")
    wwn_nie: list[str] | None = Field(None, alias="wwn__nie")
    wwn_niew: list[str] | None = Field(None, alias="wwn__niew")
    wwn_nisw: list[str] | None = Field(None, alias="wwn__nisw")


class DcimInventoryItemRolesRootGetQuery(BaseModel):
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class DcimInventoryItemTemplatesRootGetQuery(BaseModel):
    component_id: list[int] | None = None
    component_id_empty: list[int] | None = Field(None, alias="component_id__empty")
    component_id_gt: list[int] | None = Field(None, alias="component_id__gt")
    component_id_gte: list[int] | None = Field(None, alias="component_id__gte")
    component_id_lt: list[int] | None = Field(None, alias="component_id__lt")
    component_id_lte: list[int] | None = Field(None, alias="component_id__lte")
    component_id_n: list[int] | None = Field(None, alias="component_id__n")
    component_type: str | None = None
    component_type_n: str | None = Field(None, alias="component_type__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    manufacturer: list[str] | None = None
    manufacturer_n: list[str] | None = Field(None, alias="manufacturer__n")
    manufacturer_id: list[int] | None = None
    manufacturer_id_n: list[int] | None = Field(None, alias="manufacturer_id__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    part_id: list[str] | None = None
    part_id_empty: bool | None = Field(None, alias="part_id__empty")
    part_id_ic: list[str] | None = Field(None, alias="part_id__ic")
    part_id_ie: list[str] | None = Field(None, alias="part_id__ie")
    part_id_iew: list[str] | None = Field(None, alias="part_id__iew")
    part_id_isw: list[str] | None = Field(None, alias="part_id__isw")
    part_id_n: list[str] | None = Field(None, alias="part_id__n")
    part_id_nic: list[str] | None = Field(None, alias="part_id__nic")
    part_id_nie: list[str] | None = Field(None, alias="part_id__nie")
    part_id_niew: list[str] | None = Field(None, alias="part_id__niew")
    part_id_nisw: list[str] | None = Field(None, alias="part_id__nisw")
    q: str | None = None
    role: list[str] | None = None
    role_n: list[str] | None = Field(None, alias="role__n")
    role_id: list[int] | None = None
    role_id_n: list[int] | None = Field(None, alias="role_id__n")
    updated_by_request: str | None = None


class DcimInventoryItemsRootGetQuery(BaseModel):
    asset_tag: list[str] | None = None
    asset_tag_empty: bool | None = Field(None, alias="asset_tag__empty")
    asset_tag_ic: list[str] | None = Field(None, alias="asset_tag__ic")
    asset_tag_ie: list[str] | None = Field(None, alias="asset_tag__ie")
    asset_tag_iew: list[str] | None = Field(None, alias="asset_tag__iew")
    asset_tag_isw: list[str] | None = Field(None, alias="asset_tag__isw")
    asset_tag_n: list[str] | None = Field(None, alias="asset_tag__n")
    asset_tag_nic: list[str] | None = Field(None, alias="asset_tag__nic")
    asset_tag_nie: list[str] | None = Field(None, alias="asset_tag__nie")
    asset_tag_niew: list[str] | None = Field(None, alias="asset_tag__niew")
    asset_tag_nisw: list[str] | None = Field(None, alias="asset_tag__nisw")
    component_id: list[int] | None = None
    component_id_empty: list[int] | None = Field(None, alias="component_id__empty")
    component_id_gt: list[int] | None = Field(None, alias="component_id__gt")
    component_id_gte: list[int] | None = Field(None, alias="component_id__gte")
    component_id_lt: list[int] | None = Field(None, alias="component_id__lt")
    component_id_lte: list[int] | None = Field(None, alias="component_id__lte")
    component_id_n: list[int] | None = Field(None, alias="component_id__n")
    component_type: str | None = None
    component_type_n: str | None = Field(None, alias="component_type__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    discovered: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    manufacturer: list[str] | None = None
    manufacturer_n: list[str] | None = Field(None, alias="manufacturer__n")
    manufacturer_id: list[int] | None = None
    manufacturer_id_n: list[int] | None = Field(None, alias="manufacturer_id__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    part_id: list[str] | None = None
    part_id_empty: bool | None = Field(None, alias="part_id__empty")
    part_id_ic: list[str] | None = Field(None, alias="part_id__ic")
    part_id_ie: list[str] | None = Field(None, alias="part_id__ie")
    part_id_iew: list[str] | None = Field(None, alias="part_id__iew")
    part_id_isw: list[str] | None = Field(None, alias="part_id__isw")
    part_id_n: list[str] | None = Field(None, alias="part_id__n")
    part_id_nic: list[str] | None = Field(None, alias="part_id__nic")
    part_id_nie: list[str] | None = Field(None, alias="part_id__nie")
    part_id_niew: list[str] | None = Field(None, alias="part_id__niew")
    part_id_nisw: list[str] | None = Field(None, alias="part_id__nisw")
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    role: list[str] | None = None
    role_n: list[str] | None = Field(None, alias="role__n")
    role_id: list[int] | None = None
    role_id_n: list[int] | None = Field(None, alias="role_id__n")
    serial: list[str] | None = None
    serial_empty: bool | None = Field(None, alias="serial__empty")
    serial_ic: list[str] | None = Field(None, alias="serial__ic")
    serial_ie: list[str] | None = Field(None, alias="serial__ie")
    serial_iew: list[str] | None = Field(None, alias="serial__iew")
    serial_isw: list[str] | None = Field(None, alias="serial__isw")
    serial_n: list[str] | None = Field(None, alias="serial__n")
    serial_nic: list[str] | None = Field(None, alias="serial__nic")
    serial_nie: list[str] | None = Field(None, alias="serial__nie")
    serial_niew: list[str] | None = Field(None, alias="serial__niew")
    serial_nisw: list[str] | None = Field(None, alias="serial__nisw")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")


class DcimLocationsRootGetQuery(BaseModel):
    ancestor: list[str] | None = None
    ancestor_n: list[str] | None = Field(None, alias="ancestor__n")
    ancestor_id: list[str] | None = None
    ancestor_id_n: list[str] | None = Field(None, alias="ancestor_id__n")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    facility: list[str] | None = None
    facility_empty: bool | None = Field(None, alias="facility__empty")
    facility_ic: list[str] | None = Field(None, alias="facility__ic")
    facility_ie: list[str] | None = Field(None, alias="facility__ie")
    facility_iew: list[str] | None = Field(None, alias="facility__iew")
    facility_isw: list[str] | None = Field(None, alias="facility__isw")
    facility_n: list[str] | None = Field(None, alias="facility__n")
    facility_nic: list[str] | None = Field(None, alias="facility__nic")
    facility_nie: list[str] | None = Field(None, alias="facility__nie")
    facility_niew: list[str] | None = Field(None, alias="facility__niew")
    facility_nisw: list[str] | None = Field(None, alias="facility__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent: list[str] | None = None
    parent_n: list[str] | None = Field(None, alias="parent__n")
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class DcimMacAddressesRootGetQuery(BaseModel):
    assigned_object_id: list[int] | None = None
    assigned_object_id_empty: bool | None = Field(None, alias="assigned_object_id__empty")
    assigned_object_id_gt: list[int] | None = Field(None, alias="assigned_object_id__gt")
    assigned_object_id_gte: list[int] | None = Field(None, alias="assigned_object_id__gte")
    assigned_object_id_lt: list[int] | None = Field(None, alias="assigned_object_id__lt")
    assigned_object_id_lte: list[int] | None = Field(None, alias="assigned_object_id__lte")
    assigned_object_id_n: list[int] | None = Field(None, alias="assigned_object_id__n")
    assigned_object_type: int | None = None
    assigned_object_type_n: int | None = Field(None, alias="assigned_object_type__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_id: list[int] | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface: list[str] | None = None
    interface_n: list[str] | None = Field(None, alias="interface__n")
    interface_id: list[int] | None = None
    interface_id_n: list[int] | None = Field(None, alias="interface_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mac_address: list[str] | None = None
    mac_address_ic: list[str] | None = Field(None, alias="mac_address__ic")
    mac_address_ie: list[str] | None = Field(None, alias="mac_address__ie")
    mac_address_iew: list[str] | None = Field(None, alias="mac_address__iew")
    mac_address_isw: list[str] | None = Field(None, alias="mac_address__isw")
    mac_address_n: list[str] | None = Field(None, alias="mac_address__n")
    mac_address_nic: list[str] | None = Field(None, alias="mac_address__nic")
    mac_address_nie: list[str] | None = Field(None, alias="mac_address__nie")
    mac_address_niew: list[str] | None = Field(None, alias="mac_address__niew")
    mac_address_nisw: list[str] | None = Field(None, alias="mac_address__nisw")
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_machine: list[str] | None = None
    virtual_machine_id: list[int] | None = None
    vminterface: list[str] | None = None
    vminterface_n: list[str] | None = Field(None, alias="vminterface__n")
    vminterface_id: list[int] | None = None
    vminterface_id_n: list[int] | None = Field(None, alias="vminterface_id__n")


class DcimManufacturersRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class DcimModuleBayTemplatesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    module_type_id: list[int] | None = None
    module_type_id_n: list[int] | None = Field(None, alias="module_type_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    position: list[str] | None = None
    position_empty: bool | None = Field(None, alias="position__empty")
    position_ic: list[str] | None = Field(None, alias="position__ic")
    position_ie: list[str] | None = Field(None, alias="position__ie")
    position_iew: list[str] | None = Field(None, alias="position__iew")
    position_isw: list[str] | None = Field(None, alias="position__isw")
    position_n: list[str] | None = Field(None, alias="position__n")
    position_nic: list[str] | None = Field(None, alias="position__nic")
    position_nie: list[str] | None = Field(None, alias="position__nie")
    position_niew: list[str] | None = Field(None, alias="position__niew")
    position_nisw: list[str] | None = Field(None, alias="position__nisw")
    q: str | None = None
    updated_by_request: str | None = None


class DcimModuleBaysRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    installed_module_id: list[int] | None = None
    installed_module_id_n: list[int] | None = Field(None, alias="installed_module_id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    modified_by_request: str | None = None
    module_id: list[int] | None = None
    module_id_n: list[int] | None = Field(None, alias="module_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    position: list[str] | None = None
    position_empty: bool | None = Field(None, alias="position__empty")
    position_ic: list[str] | None = Field(None, alias="position__ic")
    position_ie: list[str] | None = Field(None, alias="position__ie")
    position_iew: list[str] | None = Field(None, alias="position__iew")
    position_isw: list[str] | None = Field(None, alias="position__isw")
    position_n: list[str] | None = Field(None, alias="position__n")
    position_nic: list[str] | None = Field(None, alias="position__nic")
    position_nie: list[str] | None = Field(None, alias="position__nie")
    position_niew: list[str] | None = Field(None, alias="position__niew")
    position_nisw: list[str] | None = Field(None, alias="position__nisw")
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")


class DcimModuleTypeProfilesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class DcimModuleTypesRootGetQuery(BaseModel):
    airflow: (
        Literal[
            "front-to-rear",
            "left-to-right",
            "passive",
            "rear-to-front",
            "right-to-left",
            "side-to-rear",
        ]
        | None
    ) = None
    console_ports: bool | None = None
    console_server_ports: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interfaces: bool | None = None
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    manufacturer: list[str] | None = None
    manufacturer_n: list[str] | None = Field(None, alias="manufacturer__n")
    manufacturer_id: list[int] | None = None
    manufacturer_id_n: list[int] | None = Field(None, alias="manufacturer_id__n")
    model: list[str] | None = None
    model_empty: bool | None = Field(None, alias="model__empty")
    model_ic: list[str] | None = Field(None, alias="model__ic")
    model_ie: list[str] | None = Field(None, alias="model__ie")
    model_iew: list[str] | None = Field(None, alias="model__iew")
    model_isw: list[str] | None = Field(None, alias="model__isw")
    model_n: list[str] | None = Field(None, alias="model__n")
    model_nic: list[str] | None = Field(None, alias="model__nic")
    model_nie: list[str] | None = Field(None, alias="model__nie")
    model_niew: list[str] | None = Field(None, alias="model__niew")
    model_nisw: list[str] | None = Field(None, alias="model__nisw")
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    part_number: list[str] | None = None
    part_number_empty: bool | None = Field(None, alias="part_number__empty")
    part_number_ic: list[str] | None = Field(None, alias="part_number__ic")
    part_number_ie: list[str] | None = Field(None, alias="part_number__ie")
    part_number_iew: list[str] | None = Field(None, alias="part_number__iew")
    part_number_isw: list[str] | None = Field(None, alias="part_number__isw")
    part_number_n: list[str] | None = Field(None, alias="part_number__n")
    part_number_nic: list[str] | None = Field(None, alias="part_number__nic")
    part_number_nie: list[str] | None = Field(None, alias="part_number__nie")
    part_number_niew: list[str] | None = Field(None, alias="part_number__niew")
    part_number_nisw: list[str] | None = Field(None, alias="part_number__nisw")
    pass_through_ports: bool | None = None
    power_outlets: bool | None = None
    power_ports: bool | None = None
    profile: list[str] | None = None
    profile_n: list[str] | None = Field(None, alias="profile__n")
    profile_id: list[int] | None = None
    profile_id_n: list[int] | None = Field(None, alias="profile_id__n")
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    weight: list[float] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[float] | None = Field(None, alias="weight__gt")
    weight_gte: list[float] | None = Field(None, alias="weight__gte")
    weight_lt: list[float] | None = Field(None, alias="weight__lt")
    weight_lte: list[float] | None = Field(None, alias="weight__lte")
    weight_n: list[float] | None = Field(None, alias="weight__n")
    weight_unit: Literal["g", "kg", "lb", "oz"] | None = None


class DcimModulesRootGetQuery(BaseModel):
    asset_tag: list[str] | None = None
    asset_tag_empty: bool | None = Field(None, alias="asset_tag__empty")
    asset_tag_ic: list[str] | None = Field(None, alias="asset_tag__ic")
    asset_tag_ie: list[str] | None = Field(None, alias="asset_tag__ie")
    asset_tag_iew: list[str] | None = Field(None, alias="asset_tag__iew")
    asset_tag_isw: list[str] | None = Field(None, alias="asset_tag__isw")
    asset_tag_n: list[str] | None = Field(None, alias="asset_tag__n")
    asset_tag_nic: list[str] | None = Field(None, alias="asset_tag__nic")
    asset_tag_nie: list[str] | None = Field(None, alias="asset_tag__nie")
    asset_tag_niew: list[str] | None = Field(None, alias="asset_tag__niew")
    asset_tag_nisw: list[str] | None = Field(None, alias="asset_tag__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    manufacturer: list[str] | None = None
    manufacturer_n: list[str] | None = Field(None, alias="manufacturer__n")
    manufacturer_id: list[int] | None = None
    manufacturer_id_n: list[int] | None = Field(None, alias="manufacturer_id__n")
    modified_by_request: str | None = None
    module_bay_id: list[str] | None = None
    module_bay_id_n: list[str] | None = Field(None, alias="module_bay_id__n")
    module_type: list[str] | None = None
    module_type_n: list[str] | None = Field(None, alias="module_type__n")
    module_type_id: list[int] | None = None
    module_type_id_n: list[int] | None = Field(None, alias="module_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    serial: list[str] | None = None
    serial_empty: bool | None = Field(None, alias="serial__empty")
    serial_ic: list[str] | None = Field(None, alias="serial__ic")
    serial_ie: list[str] | None = Field(None, alias="serial__ie")
    serial_iew: list[str] | None = Field(None, alias="serial__iew")
    serial_isw: list[str] | None = Field(None, alias="serial__isw")
    serial_n: list[str] | None = Field(None, alias="serial__n")
    serial_nic: list[str] | None = Field(None, alias="serial__nic")
    serial_nie: list[str] | None = Field(None, alias="serial__nie")
    serial_niew: list[str] | None = Field(None, alias="serial__niew")
    serial_nisw: list[str] | None = Field(None, alias="serial__nisw")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class DcimPlatformsRootGetQuery(BaseModel):
    available_for_device_type: str | None = None
    config_template_id: list[int] | None = None
    config_template_id_n: list[int] | None = Field(None, alias="config_template_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    manufacturer: list[str] | None = None
    manufacturer_n: list[str] | None = Field(None, alias="manufacturer__n")
    manufacturer_id: list[int] | None = None
    manufacturer_id_n: list[int] | None = Field(None, alias="manufacturer_id__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class DcimPowerFeedsRootGetQuery(BaseModel):
    amperage: list[int] | None = None
    amperage_empty: bool | None = Field(None, alias="amperage__empty")
    amperage_gt: list[int] | None = Field(None, alias="amperage__gt")
    amperage_gte: list[int] | None = Field(None, alias="amperage__gte")
    amperage_lt: list[int] | None = Field(None, alias="amperage__lt")
    amperage_lte: list[int] | None = Field(None, alias="amperage__lte")
    amperage_n: list[int] | None = Field(None, alias="amperage__n")
    available_power: list[int] | None = None
    available_power_empty: bool | None = Field(None, alias="available_power__empty")
    available_power_gt: list[int] | None = Field(None, alias="available_power__gt")
    available_power_gte: list[int] | None = Field(None, alias="available_power__gte")
    available_power_lt: list[int] | None = Field(None, alias="available_power__lt")
    available_power_lte: list[int] | None = Field(None, alias="available_power__lte")
    available_power_n: list[int] | None = Field(None, alias="available_power__n")
    cable_end: Literal["A", "B"] | None = None
    cable_id: list[int] | None = None
    cable_id_n: list[int] | None = Field(None, alias="cable_id__n")
    cabled: bool | None = None
    connected: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mark_connected: bool | None = None
    max_utilization: list[int] | None = None
    max_utilization_empty: bool | None = Field(None, alias="max_utilization__empty")
    max_utilization_gt: list[int] | None = Field(None, alias="max_utilization__gt")
    max_utilization_gte: list[int] | None = Field(None, alias="max_utilization__gte")
    max_utilization_lt: list[int] | None = Field(None, alias="max_utilization__lt")
    max_utilization_lte: list[int] | None = Field(None, alias="max_utilization__lte")
    max_utilization_n: list[int] | None = Field(None, alias="max_utilization__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    occupied: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    phase: Literal["single-phase", "three-phase"] | None = None
    power_panel_id: list[int] | None = None
    power_panel_id_n: list[int] | None = Field(None, alias="power_panel_id__n")
    q: str | None = None
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    supply: Literal["ac", "dc"] | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    type: Literal["primary", "redundant"] | None = None
    updated_by_request: str | None = None
    voltage: list[int] | None = None
    voltage_empty: bool | None = Field(None, alias="voltage__empty")
    voltage_gt: list[int] | None = Field(None, alias="voltage__gt")
    voltage_gte: list[int] | None = Field(None, alias="voltage__gte")
    voltage_lt: list[int] | None = Field(None, alias="voltage__lt")
    voltage_lte: list[int] | None = Field(None, alias="voltage__lte")
    voltage_n: list[int] | None = Field(None, alias="voltage__n")


class DcimPowerOutletTemplatesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    feed_leg: list[str] | None = None
    feed_leg_empty: bool | None = Field(None, alias="feed_leg__empty")
    feed_leg_ic: list[str] | None = Field(None, alias="feed_leg__ic")
    feed_leg_ie: list[str] | None = Field(None, alias="feed_leg__ie")
    feed_leg_iew: list[str] | None = Field(None, alias="feed_leg__iew")
    feed_leg_isw: list[str] | None = Field(None, alias="feed_leg__isw")
    feed_leg_n: list[str] | None = Field(None, alias="feed_leg__n")
    feed_leg_nic: list[str] | None = Field(None, alias="feed_leg__nic")
    feed_leg_nie: list[str] | None = Field(None, alias="feed_leg__nie")
    feed_leg_niew: list[str] | None = Field(None, alias="feed_leg__niew")
    feed_leg_nisw: list[str] | None = Field(None, alias="feed_leg__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    module_type_id: list[int] | None = None
    module_type_id_n: list[int] | None = Field(None, alias="module_type_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    power_port_id: list[int] | None = None
    power_port_id_n: list[int] | None = Field(None, alias="power_port_id__n")
    q: str | None = None
    type: (
        Literal[
            "California Style",
            "DC",
            "IEC 60309",
            "IEC 60320",
            "IEC 60906-1",
            "ITA/International",
            "Molex",
            "NEMA (Locking)",
            "NEMA (Non-locking)",
            "Other",
            "Proprietary",
            "USB",
        ]
        | None
    ) = None
    updated_by_request: str | None = None


class DcimPowerOutletsRootGetQuery(BaseModel):
    cable_end: Literal["A", "B"] | None = None
    cable_id: list[int] | None = None
    cable_id_n: list[int] | None = Field(None, alias="cable_id__n")
    cabled: bool | None = None
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    connected: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    feed_leg: list[str] | None = None
    feed_leg_empty: bool | None = Field(None, alias="feed_leg__empty")
    feed_leg_ic: list[str] | None = Field(None, alias="feed_leg__ic")
    feed_leg_ie: list[str] | None = Field(None, alias="feed_leg__ie")
    feed_leg_iew: list[str] | None = Field(None, alias="feed_leg__iew")
    feed_leg_isw: list[str] | None = Field(None, alias="feed_leg__isw")
    feed_leg_n: list[str] | None = Field(None, alias="feed_leg__n")
    feed_leg_nic: list[str] | None = Field(None, alias="feed_leg__nic")
    feed_leg_nie: list[str] | None = Field(None, alias="feed_leg__nie")
    feed_leg_niew: list[str] | None = Field(None, alias="feed_leg__niew")
    feed_leg_nisw: list[str] | None = Field(None, alias="feed_leg__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    mark_connected: bool | None = None
    modified_by_request: str | None = None
    module_id: list[int] | None = None
    module_id_n: list[int] | None = Field(None, alias="module_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    occupied: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    power_port_id: list[int] | None = None
    power_port_id_n: list[int] | None = Field(None, alias="power_port_id__n")
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")


class DcimPowerPanelsRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location_id: list[str] | None = None
    location_id_n: list[str] | None = Field(None, alias="location_id__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class DcimPowerPortTemplatesRootGetQuery(BaseModel):
    allocated_draw: list[int] | None = None
    allocated_draw_empty: bool | None = Field(None, alias="allocated_draw__empty")
    allocated_draw_gt: list[int] | None = Field(None, alias="allocated_draw__gt")
    allocated_draw_gte: list[int] | None = Field(None, alias="allocated_draw__gte")
    allocated_draw_lt: list[int] | None = Field(None, alias="allocated_draw__lt")
    allocated_draw_lte: list[int] | None = Field(None, alias="allocated_draw__lte")
    allocated_draw_n: list[int] | None = Field(None, alias="allocated_draw__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    maximum_draw: list[int] | None = None
    maximum_draw_empty: bool | None = Field(None, alias="maximum_draw__empty")
    maximum_draw_gt: list[int] | None = Field(None, alias="maximum_draw__gt")
    maximum_draw_gte: list[int] | None = Field(None, alias="maximum_draw__gte")
    maximum_draw_lt: list[int] | None = Field(None, alias="maximum_draw__lt")
    maximum_draw_lte: list[int] | None = Field(None, alias="maximum_draw__lte")
    maximum_draw_n: list[int] | None = Field(None, alias="maximum_draw__n")
    modified_by_request: str | None = None
    module_type_id: list[int] | None = None
    module_type_id_n: list[int] | None = Field(None, alias="module_type_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    type: (
        Literal[
            "California Style",
            "DC",
            "IEC 60309",
            "IEC 60320",
            "IEC 60906-1",
            "International/ITA",
            "Molex",
            "NEMA (Locking)",
            "NEMA (Non-locking)",
            "Other",
            "Proprietary",
            "USB",
        ]
        | None
    ) = None
    updated_by_request: str | None = None


class DcimPowerPortsRootGetQuery(BaseModel):
    allocated_draw: list[int] | None = None
    allocated_draw_empty: bool | None = Field(None, alias="allocated_draw__empty")
    allocated_draw_gt: list[int] | None = Field(None, alias="allocated_draw__gt")
    allocated_draw_gte: list[int] | None = Field(None, alias="allocated_draw__gte")
    allocated_draw_lt: list[int] | None = Field(None, alias="allocated_draw__lt")
    allocated_draw_lte: list[int] | None = Field(None, alias="allocated_draw__lte")
    allocated_draw_n: list[int] | None = Field(None, alias="allocated_draw__n")
    cable_end: Literal["A", "B"] | None = None
    cable_id: list[int] | None = None
    cable_id_n: list[int] | None = Field(None, alias="cable_id__n")
    cabled: bool | None = None
    connected: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    mark_connected: bool | None = None
    maximum_draw: list[int] | None = None
    maximum_draw_empty: bool | None = Field(None, alias="maximum_draw__empty")
    maximum_draw_gt: list[int] | None = Field(None, alias="maximum_draw__gt")
    maximum_draw_gte: list[int] | None = Field(None, alias="maximum_draw__gte")
    maximum_draw_lt: list[int] | None = Field(None, alias="maximum_draw__lt")
    maximum_draw_lte: list[int] | None = Field(None, alias="maximum_draw__lte")
    maximum_draw_n: list[int] | None = Field(None, alias="maximum_draw__n")
    modified_by_request: str | None = None
    module_id: list[int] | None = None
    module_id_n: list[int] | None = Field(None, alias="module_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    occupied: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")


class DcimRackReservationsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[str] | None = None
    location_id_n: list[str] | None = Field(None, alias="location_id__n")
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    unit: float | None = None
    updated_by_request: str | None = None
    user: list[str] | None = None
    user_n: list[str] | None = Field(None, alias="user__n")
    user_id: list[int] | None = None
    user_id_n: list[int] | None = Field(None, alias="user_id__n")


class DcimRackRolesRootGetQuery(BaseModel):
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class DcimRackTypesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    desc_units: bool | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    form_factor: list[str] | None = None
    form_factor_empty: bool | None = Field(None, alias="form_factor__empty")
    form_factor_ic: list[str] | None = Field(None, alias="form_factor__ic")
    form_factor_ie: list[str] | None = Field(None, alias="form_factor__ie")
    form_factor_iew: list[str] | None = Field(None, alias="form_factor__iew")
    form_factor_isw: list[str] | None = Field(None, alias="form_factor__isw")
    form_factor_n: list[str] | None = Field(None, alias="form_factor__n")
    form_factor_nic: list[str] | None = Field(None, alias="form_factor__nic")
    form_factor_nie: list[str] | None = Field(None, alias="form_factor__nie")
    form_factor_niew: list[str] | None = Field(None, alias="form_factor__niew")
    form_factor_nisw: list[str] | None = Field(None, alias="form_factor__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    manufacturer: list[str] | None = None
    manufacturer_n: list[str] | None = Field(None, alias="manufacturer__n")
    manufacturer_id: list[int] | None = None
    manufacturer_id_n: list[int] | None = Field(None, alias="manufacturer_id__n")
    max_weight: list[int] | None = None
    max_weight_empty: bool | None = Field(None, alias="max_weight__empty")
    max_weight_gt: list[int] | None = Field(None, alias="max_weight__gt")
    max_weight_gte: list[int] | None = Field(None, alias="max_weight__gte")
    max_weight_lt: list[int] | None = Field(None, alias="max_weight__lt")
    max_weight_lte: list[int] | None = Field(None, alias="max_weight__lte")
    max_weight_n: list[int] | None = Field(None, alias="max_weight__n")
    model: list[str] | None = None
    model_empty: bool | None = Field(None, alias="model__empty")
    model_ic: list[str] | None = Field(None, alias="model__ic")
    model_ie: list[str] | None = Field(None, alias="model__ie")
    model_iew: list[str] | None = Field(None, alias="model__iew")
    model_isw: list[str] | None = Field(None, alias="model__isw")
    model_n: list[str] | None = Field(None, alias="model__n")
    model_nic: list[str] | None = Field(None, alias="model__nic")
    model_nie: list[str] | None = Field(None, alias="model__nie")
    model_niew: list[str] | None = Field(None, alias="model__niew")
    model_nisw: list[str] | None = Field(None, alias="model__nisw")
    modified_by_request: str | None = None
    mounting_depth: list[int] | None = None
    mounting_depth_empty: bool | None = Field(None, alias="mounting_depth__empty")
    mounting_depth_gt: list[int] | None = Field(None, alias="mounting_depth__gt")
    mounting_depth_gte: list[int] | None = Field(None, alias="mounting_depth__gte")
    mounting_depth_lt: list[int] | None = Field(None, alias="mounting_depth__lt")
    mounting_depth_lte: list[int] | None = Field(None, alias="mounting_depth__lte")
    mounting_depth_n: list[int] | None = Field(None, alias="mounting_depth__n")
    offset: int | None = None
    ordering: str | None = None
    outer_depth: list[int] | None = None
    outer_depth_empty: bool | None = Field(None, alias="outer_depth__empty")
    outer_depth_gt: list[int] | None = Field(None, alias="outer_depth__gt")
    outer_depth_gte: list[int] | None = Field(None, alias="outer_depth__gte")
    outer_depth_lt: list[int] | None = Field(None, alias="outer_depth__lt")
    outer_depth_lte: list[int] | None = Field(None, alias="outer_depth__lte")
    outer_depth_n: list[int] | None = Field(None, alias="outer_depth__n")
    outer_height: list[int] | None = None
    outer_height_empty: bool | None = Field(None, alias="outer_height__empty")
    outer_height_gt: list[int] | None = Field(None, alias="outer_height__gt")
    outer_height_gte: list[int] | None = Field(None, alias="outer_height__gte")
    outer_height_lt: list[int] | None = Field(None, alias="outer_height__lt")
    outer_height_lte: list[int] | None = Field(None, alias="outer_height__lte")
    outer_height_n: list[int] | None = Field(None, alias="outer_height__n")
    outer_unit: Literal["in", "mm"] | None = None
    outer_width: list[int] | None = None
    outer_width_empty: bool | None = Field(None, alias="outer_width__empty")
    outer_width_gt: list[int] | None = Field(None, alias="outer_width__gt")
    outer_width_gte: list[int] | None = Field(None, alias="outer_width__gte")
    outer_width_lt: list[int] | None = Field(None, alias="outer_width__lt")
    outer_width_lte: list[int] | None = Field(None, alias="outer_width__lte")
    outer_width_n: list[int] | None = Field(None, alias="outer_width__n")
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    starting_unit: list[int] | None = None
    starting_unit_empty: bool | None = Field(None, alias="starting_unit__empty")
    starting_unit_gt: list[int] | None = Field(None, alias="starting_unit__gt")
    starting_unit_gte: list[int] | None = Field(None, alias="starting_unit__gte")
    starting_unit_lt: list[int] | None = Field(None, alias="starting_unit__lt")
    starting_unit_lte: list[int] | None = Field(None, alias="starting_unit__lte")
    starting_unit_n: list[int] | None = Field(None, alias="starting_unit__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    u_height: list[int] | None = None
    u_height_empty: bool | None = Field(None, alias="u_height__empty")
    u_height_gt: list[int] | None = Field(None, alias="u_height__gt")
    u_height_gte: list[int] | None = Field(None, alias="u_height__gte")
    u_height_lt: list[int] | None = Field(None, alias="u_height__lt")
    u_height_lte: list[int] | None = Field(None, alias="u_height__lte")
    u_height_n: list[int] | None = Field(None, alias="u_height__n")
    updated_by_request: str | None = None
    weight: list[float] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[float] | None = Field(None, alias="weight__gt")
    weight_gte: list[float] | None = Field(None, alias="weight__gte")
    weight_lt: list[float] | None = Field(None, alias="weight__lt")
    weight_lte: list[float] | None = Field(None, alias="weight__lte")
    weight_n: list[float] | None = Field(None, alias="weight__n")
    weight_unit: Literal["g", "kg", "lb", "oz"] | None = None
    width: list[int] | None = None
    width_ic: list[int] | None = Field(None, alias="width__ic")
    width_ie: list[int] | None = Field(None, alias="width__ie")
    width_iew: list[int] | None = Field(None, alias="width__iew")
    width_isw: list[int] | None = Field(None, alias="width__isw")
    width_n: list[int] | None = Field(None, alias="width__n")
    width_nic: list[int] | None = Field(None, alias="width__nic")
    width_nie: list[int] | None = Field(None, alias="width__nie")
    width_niew: list[int] | None = Field(None, alias="width__niew")
    width_nisw: list[int] | None = Field(None, alias="width__nisw")


class DcimRacksElevationGetQuery(BaseModel):
    exclude: int | None = None
    expand_devices: bool | None = None
    face: Literal["front", "rear"] | None = None
    include_images: bool | None = None
    legend_width: int | None = None
    limit: int | None = None
    margin_width: int | None = None
    offset: int | None = None
    q: str | None = None
    render: Literal["json", "svg"] | None = None
    unit_height: int | None = None
    unit_width: int | None = None


class DcimRacksRootGetQuery(BaseModel):
    airflow: Literal["front-to-rear", "rear-to-front"] | None = None
    asset_tag: list[str] | None = None
    asset_tag_empty: bool | None = Field(None, alias="asset_tag__empty")
    asset_tag_ic: list[str] | None = Field(None, alias="asset_tag__ic")
    asset_tag_ie: list[str] | None = Field(None, alias="asset_tag__ie")
    asset_tag_iew: list[str] | None = Field(None, alias="asset_tag__iew")
    asset_tag_isw: list[str] | None = Field(None, alias="asset_tag__isw")
    asset_tag_n: list[str] | None = Field(None, alias="asset_tag__n")
    asset_tag_nic: list[str] | None = Field(None, alias="asset_tag__nic")
    asset_tag_nie: list[str] | None = Field(None, alias="asset_tag__nie")
    asset_tag_niew: list[str] | None = Field(None, alias="asset_tag__niew")
    asset_tag_nisw: list[str] | None = Field(None, alias="asset_tag__nisw")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    desc_units: bool | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    facility_id: list[str] | None = None
    facility_id_empty: bool | None = Field(None, alias="facility_id__empty")
    facility_id_ic: list[str] | None = Field(None, alias="facility_id__ic")
    facility_id_ie: list[str] | None = Field(None, alias="facility_id__ie")
    facility_id_iew: list[str] | None = Field(None, alias="facility_id__iew")
    facility_id_isw: list[str] | None = Field(None, alias="facility_id__isw")
    facility_id_n: list[str] | None = Field(None, alias="facility_id__n")
    facility_id_nic: list[str] | None = Field(None, alias="facility_id__nic")
    facility_id_nie: list[str] | None = Field(None, alias="facility_id__nie")
    facility_id_niew: list[str] | None = Field(None, alias="facility_id__niew")
    facility_id_nisw: list[str] | None = Field(None, alias="facility_id__nisw")
    form_factor: list[str] | None = None
    form_factor_empty: bool | None = Field(None, alias="form_factor__empty")
    form_factor_ic: list[str] | None = Field(None, alias="form_factor__ic")
    form_factor_ie: list[str] | None = Field(None, alias="form_factor__ie")
    form_factor_iew: list[str] | None = Field(None, alias="form_factor__iew")
    form_factor_isw: list[str] | None = Field(None, alias="form_factor__isw")
    form_factor_n: list[str] | None = Field(None, alias="form_factor__n")
    form_factor_nic: list[str] | None = Field(None, alias="form_factor__nic")
    form_factor_nie: list[str] | None = Field(None, alias="form_factor__nie")
    form_factor_niew: list[str] | None = Field(None, alias="form_factor__niew")
    form_factor_nisw: list[str] | None = Field(None, alias="form_factor__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[str] | None = None
    location_id_n: list[str] | None = Field(None, alias="location_id__n")
    manufacturer: list[str] | None = None
    manufacturer_n: list[str] | None = Field(None, alias="manufacturer__n")
    manufacturer_id: list[int] | None = None
    manufacturer_id_n: list[int] | None = Field(None, alias="manufacturer_id__n")
    max_weight: list[int] | None = None
    max_weight_empty: bool | None = Field(None, alias="max_weight__empty")
    max_weight_gt: list[int] | None = Field(None, alias="max_weight__gt")
    max_weight_gte: list[int] | None = Field(None, alias="max_weight__gte")
    max_weight_lt: list[int] | None = Field(None, alias="max_weight__lt")
    max_weight_lte: list[int] | None = Field(None, alias="max_weight__lte")
    max_weight_n: list[int] | None = Field(None, alias="max_weight__n")
    modified_by_request: str | None = None
    mounting_depth: list[int] | None = None
    mounting_depth_empty: bool | None = Field(None, alias="mounting_depth__empty")
    mounting_depth_gt: list[int] | None = Field(None, alias="mounting_depth__gt")
    mounting_depth_gte: list[int] | None = Field(None, alias="mounting_depth__gte")
    mounting_depth_lt: list[int] | None = Field(None, alias="mounting_depth__lt")
    mounting_depth_lte: list[int] | None = Field(None, alias="mounting_depth__lte")
    mounting_depth_n: list[int] | None = Field(None, alias="mounting_depth__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    outer_depth: list[int] | None = None
    outer_depth_empty: bool | None = Field(None, alias="outer_depth__empty")
    outer_depth_gt: list[int] | None = Field(None, alias="outer_depth__gt")
    outer_depth_gte: list[int] | None = Field(None, alias="outer_depth__gte")
    outer_depth_lt: list[int] | None = Field(None, alias="outer_depth__lt")
    outer_depth_lte: list[int] | None = Field(None, alias="outer_depth__lte")
    outer_depth_n: list[int] | None = Field(None, alias="outer_depth__n")
    outer_height: list[int] | None = None
    outer_height_empty: bool | None = Field(None, alias="outer_height__empty")
    outer_height_gt: list[int] | None = Field(None, alias="outer_height__gt")
    outer_height_gte: list[int] | None = Field(None, alias="outer_height__gte")
    outer_height_lt: list[int] | None = Field(None, alias="outer_height__lt")
    outer_height_lte: list[int] | None = Field(None, alias="outer_height__lte")
    outer_height_n: list[int] | None = Field(None, alias="outer_height__n")
    outer_unit: Literal["in", "mm"] | None = None
    outer_width: list[int] | None = None
    outer_width_empty: bool | None = Field(None, alias="outer_width__empty")
    outer_width_gt: list[int] | None = Field(None, alias="outer_width__gt")
    outer_width_gte: list[int] | None = Field(None, alias="outer_width__gte")
    outer_width_lt: list[int] | None = Field(None, alias="outer_width__lt")
    outer_width_lte: list[int] | None = Field(None, alias="outer_width__lte")
    outer_width_n: list[int] | None = Field(None, alias="outer_width__n")
    q: str | None = None
    rack_type: list[str] | None = None
    rack_type_n: list[str] | None = Field(None, alias="rack_type__n")
    rack_type_id: list[int] | None = None
    rack_type_id_n: list[int] | None = Field(None, alias="rack_type_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    role: list[str] | None = None
    role_n: list[str] | None = Field(None, alias="role__n")
    role_id: list[int] | None = None
    role_id_n: list[int] | None = Field(None, alias="role_id__n")
    serial: list[str] | None = None
    serial_empty: bool | None = Field(None, alias="serial__empty")
    serial_ic: list[str] | None = Field(None, alias="serial__ic")
    serial_ie: list[str] | None = Field(None, alias="serial__ie")
    serial_iew: list[str] | None = Field(None, alias="serial__iew")
    serial_isw: list[str] | None = Field(None, alias="serial__isw")
    serial_n: list[str] | None = Field(None, alias="serial__n")
    serial_nic: list[str] | None = Field(None, alias="serial__nic")
    serial_nie: list[str] | None = Field(None, alias="serial__nie")
    serial_niew: list[str] | None = Field(None, alias="serial__niew")
    serial_nisw: list[str] | None = Field(None, alias="serial__nisw")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    starting_unit: list[int] | None = None
    starting_unit_empty: bool | None = Field(None, alias="starting_unit__empty")
    starting_unit_gt: list[int] | None = Field(None, alias="starting_unit__gt")
    starting_unit_gte: list[int] | None = Field(None, alias="starting_unit__gte")
    starting_unit_lt: list[int] | None = Field(None, alias="starting_unit__lt")
    starting_unit_lte: list[int] | None = Field(None, alias="starting_unit__lte")
    starting_unit_n: list[int] | None = Field(None, alias="starting_unit__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    u_height: list[int] | None = None
    u_height_empty: bool | None = Field(None, alias="u_height__empty")
    u_height_gt: list[int] | None = Field(None, alias="u_height__gt")
    u_height_gte: list[int] | None = Field(None, alias="u_height__gte")
    u_height_lt: list[int] | None = Field(None, alias="u_height__lt")
    u_height_lte: list[int] | None = Field(None, alias="u_height__lte")
    u_height_n: list[int] | None = Field(None, alias="u_height__n")
    updated_by_request: str | None = None
    weight: list[float] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[float] | None = Field(None, alias="weight__gt")
    weight_gte: list[float] | None = Field(None, alias="weight__gte")
    weight_lt: list[float] | None = Field(None, alias="weight__lt")
    weight_lte: list[float] | None = Field(None, alias="weight__lte")
    weight_n: list[float] | None = Field(None, alias="weight__n")
    weight_unit: Literal["g", "kg", "lb", "oz"] | None = None
    width: list[int] | None = None
    width_ic: list[int] | None = Field(None, alias="width__ic")
    width_ie: list[int] | None = Field(None, alias="width__ie")
    width_iew: list[int] | None = Field(None, alias="width__iew")
    width_isw: list[int] | None = Field(None, alias="width__isw")
    width_n: list[int] | None = Field(None, alias="width__n")
    width_nic: list[int] | None = Field(None, alias="width__nic")
    width_nie: list[int] | None = Field(None, alias="width__nie")
    width_niew: list[int] | None = Field(None, alias="width__niew")
    width_nisw: list[int] | None = Field(None, alias="width__nisw")


class DcimRearPortTemplatesRootGetQuery(BaseModel):
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    module_type_id: list[int] | None = None
    module_type_id_n: list[int] | None = Field(None, alias="module_type_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    positions: list[int] | None = None
    positions_empty: bool | None = Field(None, alias="positions__empty")
    positions_gt: list[int] | None = Field(None, alias="positions__gt")
    positions_gte: list[int] | None = Field(None, alias="positions__gte")
    positions_lt: list[int] | None = Field(None, alias="positions__lt")
    positions_lte: list[int] | None = Field(None, alias="positions__lte")
    positions_n: list[int] | None = Field(None, alias="positions__n")
    q: str | None = None
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None


class DcimRearPortsRootGetQuery(BaseModel):
    cable_end: Literal["A", "B"] | None = None
    cable_id: list[int] | None = None
    cable_id_n: list[int] | None = Field(None, alias="cable_id__n")
    cabled: bool | None = None
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_status: list[str] | None = None
    device_status_empty: bool | None = Field(None, alias="device_status__empty")
    device_status_ic: list[str] | None = Field(None, alias="device_status__ic")
    device_status_ie: list[str] | None = Field(None, alias="device_status__ie")
    device_status_iew: list[str] | None = Field(None, alias="device_status__iew")
    device_status_isw: list[str] | None = Field(None, alias="device_status__isw")
    device_status_n: list[str] | None = Field(None, alias="device_status__n")
    device_status_nic: list[str] | None = Field(None, alias="device_status__nic")
    device_status_nie: list[str] | None = Field(None, alias="device_status__nie")
    device_status_niew: list[str] | None = Field(None, alias="device_status__niew")
    device_status_nisw: list[str] | None = Field(None, alias="device_status__nisw")
    device_type: list[str] | None = None
    device_type_n: list[str] | None = Field(None, alias="device_type__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    mark_connected: bool | None = None
    modified_by_request: str | None = None
    module_id: list[int] | None = None
    module_id_n: list[int] | None = Field(None, alias="module_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    occupied: bool | None = None
    offset: int | None = None
    ordering: str | None = None
    positions: list[int] | None = None
    positions_empty: bool | None = Field(None, alias="positions__empty")
    positions_gt: list[int] | None = Field(None, alias="positions__gt")
    positions_gte: list[int] | None = Field(None, alias="positions__gte")
    positions_lt: list[int] | None = Field(None, alias="positions__lt")
    positions_lte: list[int] | None = Field(None, alias="positions__lte")
    positions_n: list[int] | None = Field(None, alias="positions__n")
    q: str | None = None
    rack: list[str] | None = None
    rack_n: list[str] | None = Field(None, alias="rack__n")
    rack_id: list[int] | None = None
    rack_id_n: list[int] | None = Field(None, alias="rack_id__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None
    virtual_chassis: list[str] | None = None
    virtual_chassis_n: list[str] | None = Field(None, alias="virtual_chassis__n")
    virtual_chassis_id: list[int] | None = None
    virtual_chassis_id_n: list[int] | None = Field(None, alias="virtual_chassis_id__n")


class DcimRegionsRootGetQuery(BaseModel):
    ancestor: list[str] | None = None
    ancestor_n: list[str] | None = Field(None, alias="ancestor__n")
    ancestor_id: list[str] | None = None
    ancestor_id_n: list[str] | None = Field(None, alias="ancestor_id__n")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent: list[str] | None = None
    parent_n: list[str] | None = Field(None, alias="parent__n")
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class DcimSiteGroupsRootGetQuery(BaseModel):
    ancestor: list[str] | None = None
    ancestor_n: list[str] | None = Field(None, alias="ancestor__n")
    ancestor_id: list[str] | None = None
    ancestor_id_n: list[str] | None = Field(None, alias="ancestor_id__n")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent: list[str] | None = None
    parent_n: list[str] | None = Field(None, alias="parent__n")
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class DcimSitesRootGetQuery(BaseModel):
    asn: list[int] | None = None
    asn_n: list[int] | None = Field(None, alias="asn__n")
    asn_id: list[int] | None = None
    asn_id_n: list[int] | None = Field(None, alias="asn_id__n")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    facility: list[str] | None = None
    facility_empty: bool | None = Field(None, alias="facility__empty")
    facility_ic: list[str] | None = Field(None, alias="facility__ic")
    facility_ie: list[str] | None = Field(None, alias="facility__ie")
    facility_iew: list[str] | None = Field(None, alias="facility__iew")
    facility_isw: list[str] | None = Field(None, alias="facility__isw")
    facility_n: list[str] | None = Field(None, alias="facility__n")
    facility_nic: list[str] | None = Field(None, alias="facility__nic")
    facility_nie: list[str] | None = Field(None, alias="facility__nie")
    facility_niew: list[str] | None = Field(None, alias="facility__niew")
    facility_nisw: list[str] | None = Field(None, alias="facility__nisw")
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[str] | None = None
    group_id_n: list[str] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    latitude: list[float] | None = None
    latitude_empty: bool | None = Field(None, alias="latitude__empty")
    latitude_gt: list[float] | None = Field(None, alias="latitude__gt")
    latitude_gte: list[float] | None = Field(None, alias="latitude__gte")
    latitude_lt: list[float] | None = Field(None, alias="latitude__lt")
    latitude_lte: list[float] | None = Field(None, alias="latitude__lte")
    latitude_n: list[float] | None = Field(None, alias="latitude__n")
    limit: int | None = None
    longitude: list[float] | None = None
    longitude_empty: bool | None = Field(None, alias="longitude__empty")
    longitude_gt: list[float] | None = Field(None, alias="longitude__gt")
    longitude_gte: list[float] | None = Field(None, alias="longitude__gte")
    longitude_lt: list[float] | None = Field(None, alias="longitude__lt")
    longitude_lte: list[float] | None = Field(None, alias="longitude__lte")
    longitude_n: list[float] | None = Field(None, alias="longitude__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    time_zone: list[str] | None = None
    time_zone_ic: list[str] | None = Field(None, alias="time_zone__ic")
    time_zone_ie: list[str] | None = Field(None, alias="time_zone__ie")
    time_zone_iew: list[str] | None = Field(None, alias="time_zone__iew")
    time_zone_isw: list[str] | None = Field(None, alias="time_zone__isw")
    time_zone_n: list[str] | None = Field(None, alias="time_zone__n")
    time_zone_nic: list[str] | None = Field(None, alias="time_zone__nic")
    time_zone_nie: list[str] | None = Field(None, alias="time_zone__nie")
    time_zone_niew: list[str] | None = Field(None, alias="time_zone__niew")
    time_zone_nisw: list[str] | None = Field(None, alias="time_zone__nisw")
    updated_by_request: str | None = None


class DcimVirtualChassisRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    domain: list[str] | None = None
    domain_empty: bool | None = Field(None, alias="domain__empty")
    domain_ic: list[str] | None = Field(None, alias="domain__ic")
    domain_ie: list[str] | None = Field(None, alias="domain__ie")
    domain_iew: list[str] | None = Field(None, alias="domain__iew")
    domain_isw: list[str] | None = Field(None, alias="domain__isw")
    domain_n: list[str] | None = Field(None, alias="domain__n")
    domain_nic: list[str] | None = Field(None, alias="domain__nic")
    domain_nie: list[str] | None = Field(None, alias="domain__nie")
    domain_niew: list[str] | None = Field(None, alias="domain__niew")
    domain_nisw: list[str] | None = Field(None, alias="domain__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    master: list[str] | None = None
    master_n: list[str] | None = Field(None, alias="master__n")
    master_id: list[int] | None = None
    master_id_n: list[int] | None = Field(None, alias="master_id__n")
    member_count: list[int] | None = None
    member_count_empty: bool | None = Field(None, alias="member_count__empty")
    member_count_gt: list[int] | None = Field(None, alias="member_count__gt")
    member_count_gte: list[int] | None = Field(None, alias="member_count__gte")
    member_count_lt: list[int] | None = Field(None, alias="member_count__lt")
    member_count_lte: list[int] | None = Field(None, alias="member_count__lte")
    member_count_n: list[int] | None = Field(None, alias="member_count__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class DcimVirtualDeviceContextsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[int] | None = None
    device_n: list[int] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    has_primary_ip: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    identifier: list[int] | None = None
    identifier_empty: bool | None = Field(None, alias="identifier__empty")
    identifier_gt: list[int] | None = Field(None, alias="identifier__gt")
    identifier_gte: list[int] | None = Field(None, alias="identifier__gte")
    identifier_lt: list[int] | None = Field(None, alias="identifier__lt")
    identifier_lte: list[int] | None = Field(None, alias="identifier__lte")
    identifier_n: list[int] | None = Field(None, alias="identifier__n")
    interface_id: list[int] | None = None
    interface_id_n: list[int] | None = Field(None, alias="interface_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    primary_ip4: list[str] | None = None
    primary_ip4_n: list[str] | None = Field(None, alias="primary_ip4__n")
    primary_ip4_id: list[int] | None = None
    primary_ip4_id_n: list[int] | None = Field(None, alias="primary_ip4_id__n")
    primary_ip6: list[str] | None = None
    primary_ip6_n: list[str] | None = Field(None, alias="primary_ip6__n")
    primary_ip6_id: list[int] | None = None
    primary_ip6_id_n: list[int] | None = Field(None, alias="primary_ip6_id__n")
    q: str | None = None
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class ExtrasBookmarksRootGetQuery(BaseModel):
    created: str | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    limit: int | None = None
    object_id: list[int] | None = None
    object_id_empty: bool | None = Field(None, alias="object_id__empty")
    object_id_gt: list[int] | None = Field(None, alias="object_id__gt")
    object_id_gte: list[int] | None = Field(None, alias="object_id__gte")
    object_id_lt: list[int] | None = Field(None, alias="object_id__lt")
    object_id_lte: list[int] | None = Field(None, alias="object_id__lte")
    object_id_n: list[int] | None = Field(None, alias="object_id__n")
    object_type: str | None = None
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_id: list[int] | None = None
    object_type_id_empty: list[int] | None = Field(None, alias="object_type_id__empty")
    object_type_id_gt: list[int] | None = Field(None, alias="object_type_id__gt")
    object_type_id_gte: list[int] | None = Field(None, alias="object_type_id__gte")
    object_type_id_lt: list[int] | None = Field(None, alias="object_type_id__lt")
    object_type_id_lte: list[int] | None = Field(None, alias="object_type_id__lte")
    object_type_id_n: list[int] | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    user: list[str] | None = None
    user_n: list[str] | None = Field(None, alias="user__n")
    user_id: list[int] | None = None
    user_id_n: list[int] | None = Field(None, alias="user_id__n")


class ExtrasConfigContextsRootGetQuery(BaseModel):
    auto_sync_enabled: bool | None = None
    cluster_group: list[str] | None = None
    cluster_group_n: list[str] | None = Field(None, alias="cluster_group__n")
    cluster_group_id: list[int] | None = None
    cluster_group_id_n: list[int] | None = Field(None, alias="cluster_group_id__n")
    cluster_id: list[int] | None = None
    cluster_id_n: list[int] | None = Field(None, alias="cluster_id__n")
    cluster_type: list[str] | None = None
    cluster_type_n: list[str] | None = Field(None, alias="cluster_type__n")
    cluster_type_id: list[int] | None = None
    cluster_type_id_n: list[int] | None = Field(None, alias="cluster_type_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    data_file_id: list[int] | None = None
    data_file_id_n: list[int] | None = Field(None, alias="data_file_id__n")
    data_source_id: list[int] | None = None
    data_source_id_n: list[int] | None = Field(None, alias="data_source_id__n")
    data_synced: list[str] | None = None
    data_synced_empty: bool | None = Field(None, alias="data_synced__empty")
    data_synced_gt: list[str] | None = Field(None, alias="data_synced__gt")
    data_synced_gte: list[str] | None = Field(None, alias="data_synced__gte")
    data_synced_lt: list[str] | None = Field(None, alias="data_synced__lt")
    data_synced_lte: list[str] | None = Field(None, alias="data_synced__lte")
    data_synced_n: list[str] | None = Field(None, alias="data_synced__n")
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device_role: list[str] | None = None
    device_role_n: list[str] | None = Field(None, alias="device_role__n")
    device_role_id: list[int] | None = None
    device_role_id_n: list[int] | None = Field(None, alias="device_role_id__n")
    device_type_id: list[int] | None = None
    device_type_id_n: list[int] | None = Field(None, alias="device_type_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    is_active: bool | None = None
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[int] | None = None
    location_id_n: list[int] | None = Field(None, alias="location_id__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    platform: list[str] | None = None
    platform_n: list[str] | None = Field(None, alias="platform__n")
    platform_id: list[int] | None = None
    platform_id_n: list[int] | None = Field(None, alias="platform_id__n")
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[int] | None = None
    region_id_n: list[int] | None = Field(None, alias="region_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[int] | None = None
    site_group_id_n: list[int] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[int] | None = None
    tenant_group_id_n: list[int] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None
    weight: list[int] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[int] | None = Field(None, alias="weight__gt")
    weight_gte: list[int] | None = Field(None, alias="weight__gte")
    weight_lt: list[int] | None = Field(None, alias="weight__lt")
    weight_lte: list[int] | None = Field(None, alias="weight__lte")
    weight_n: list[int] | None = Field(None, alias="weight__n")


class ExtrasConfigTemplatesRenderPostQuery(BaseModel):
    format: Literal["json", "txt"] | None = None


class ExtrasConfigTemplatesRootGetQuery(BaseModel):
    as_attachment: bool | None = None
    auto_sync_enabled: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    data_file_id: list[int] | None = None
    data_file_id_n: list[int] | None = Field(None, alias="data_file_id__n")
    data_source_id: list[int] | None = None
    data_source_id_n: list[int] | None = Field(None, alias="data_source_id__n")
    data_synced: list[str] | None = None
    data_synced_empty: bool | None = Field(None, alias="data_synced__empty")
    data_synced_gt: list[str] | None = Field(None, alias="data_synced__gt")
    data_synced_gte: list[str] | None = Field(None, alias="data_synced__gte")
    data_synced_lt: list[str] | None = Field(None, alias="data_synced__lt")
    data_synced_lte: list[str] | None = Field(None, alias="data_synced__lte")
    data_synced_n: list[str] | None = Field(None, alias="data_synced__n")
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    file_extension: list[str] | None = None
    file_extension_empty: bool | None = Field(None, alias="file_extension__empty")
    file_extension_ic: list[str] | None = Field(None, alias="file_extension__ic")
    file_extension_ie: list[str] | None = Field(None, alias="file_extension__ie")
    file_extension_iew: list[str] | None = Field(None, alias="file_extension__iew")
    file_extension_isw: list[str] | None = Field(None, alias="file_extension__isw")
    file_extension_n: list[str] | None = Field(None, alias="file_extension__n")
    file_extension_nic: list[str] | None = Field(None, alias="file_extension__nic")
    file_extension_nie: list[str] | None = Field(None, alias="file_extension__nie")
    file_extension_niew: list[str] | None = Field(None, alias="file_extension__niew")
    file_extension_nisw: list[str] | None = Field(None, alias="file_extension__nisw")
    file_name: list[str] | None = None
    file_name_empty: bool | None = Field(None, alias="file_name__empty")
    file_name_ic: list[str] | None = Field(None, alias="file_name__ic")
    file_name_ie: list[str] | None = Field(None, alias="file_name__ie")
    file_name_iew: list[str] | None = Field(None, alias="file_name__iew")
    file_name_isw: list[str] | None = Field(None, alias="file_name__isw")
    file_name_n: list[str] | None = Field(None, alias="file_name__n")
    file_name_nic: list[str] | None = Field(None, alias="file_name__nic")
    file_name_nie: list[str] | None = Field(None, alias="file_name__nie")
    file_name_niew: list[str] | None = Field(None, alias="file_name__niew")
    file_name_nisw: list[str] | None = Field(None, alias="file_name__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mime_type: list[str] | None = None
    mime_type_empty: bool | None = Field(None, alias="mime_type__empty")
    mime_type_ic: list[str] | None = Field(None, alias="mime_type__ic")
    mime_type_ie: list[str] | None = Field(None, alias="mime_type__ie")
    mime_type_iew: list[str] | None = Field(None, alias="mime_type__iew")
    mime_type_isw: list[str] | None = Field(None, alias="mime_type__isw")
    mime_type_n: list[str] | None = Field(None, alias="mime_type__n")
    mime_type_nic: list[str] | None = Field(None, alias="mime_type__nic")
    mime_type_nie: list[str] | None = Field(None, alias="mime_type__nie")
    mime_type_niew: list[str] | None = Field(None, alias="mime_type__niew")
    mime_type_nisw: list[str] | None = Field(None, alias="mime_type__nisw")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class ExtrasCustomFieldChoiceSetsRootGetQuery(BaseModel):
    base_choices: Literal["IATA", "ISO_3166", "UN_LOCODE"] | None = None
    choice: list[str] | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    order_alphabetically: bool | None = None
    ordering: str | None = None
    q: str | None = None
    updated_by_request: str | None = None


class ExtrasCustomFieldsRootGetQuery(BaseModel):
    choice_set: list[str] | None = None
    choice_set_n: list[str] | None = Field(None, alias="choice_set__n")
    choice_set_id: list[int] | None = None
    choice_set_id_n: list[int] | None = Field(None, alias="choice_set_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    filter_logic: Literal["disabled", "exact", "loose"] | None = None
    group_name: list[str] | None = None
    group_name_empty: bool | None = Field(None, alias="group_name__empty")
    group_name_ic: list[str] | None = Field(None, alias="group_name__ic")
    group_name_ie: list[str] | None = Field(None, alias="group_name__ie")
    group_name_iew: list[str] | None = Field(None, alias="group_name__iew")
    group_name_isw: list[str] | None = Field(None, alias="group_name__isw")
    group_name_n: list[str] | None = Field(None, alias="group_name__n")
    group_name_nic: list[str] | None = Field(None, alias="group_name__nic")
    group_name_nie: list[str] | None = Field(None, alias="group_name__nie")
    group_name_niew: list[str] | None = Field(None, alias="group_name__niew")
    group_name_nisw: list[str] | None = Field(None, alias="group_name__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    is_cloneable: bool | None = None
    label: list[str] | None = None
    label_empty: bool | None = Field(None, alias="label__empty")
    label_ic: list[str] | None = Field(None, alias="label__ic")
    label_ie: list[str] | None = Field(None, alias="label__ie")
    label_iew: list[str] | None = Field(None, alias="label__iew")
    label_isw: list[str] | None = Field(None, alias="label__isw")
    label_n: list[str] | None = Field(None, alias="label__n")
    label_nic: list[str] | None = Field(None, alias="label__nic")
    label_nie: list[str] | None = Field(None, alias="label__nie")
    label_niew: list[str] | None = Field(None, alias="label__niew")
    label_nisw: list[str] | None = Field(None, alias="label__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    object_type: str | None = None
    object_type_ic: str | None = Field(None, alias="object_type__ic")
    object_type_ie: str | None = Field(None, alias="object_type__ie")
    object_type_iew: str | None = Field(None, alias="object_type__iew")
    object_type_isw: str | None = Field(None, alias="object_type__isw")
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_nic: str | None = Field(None, alias="object_type__nic")
    object_type_nie: str | None = Field(None, alias="object_type__nie")
    object_type_niew: str | None = Field(None, alias="object_type__niew")
    object_type_nisw: str | None = Field(None, alias="object_type__nisw")
    object_type_id: list[int] | None = None
    object_type_id_n: list[int] | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    related_object_type: str | None = None
    related_object_type_n: str | None = Field(None, alias="related_object_type__n")
    related_object_type_id: list[int] | None = None
    related_object_type_id_n: list[int] | None = Field(None, alias="related_object_type_id__n")
    required: bool | None = None
    search_weight: list[int] | None = None
    search_weight_empty: bool | None = Field(None, alias="search_weight__empty")
    search_weight_gt: list[int] | None = Field(None, alias="search_weight__gt")
    search_weight_gte: list[int] | None = Field(None, alias="search_weight__gte")
    search_weight_lt: list[int] | None = Field(None, alias="search_weight__lt")
    search_weight_lte: list[int] | None = Field(None, alias="search_weight__lte")
    search_weight_n: list[int] | None = Field(None, alias="search_weight__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    ui_editable: Literal["hidden", "no", "yes"] | None = None
    ui_visible: Literal["always", "hidden", "if-set"] | None = None
    unique: bool | None = None
    updated_by_request: str | None = None
    validation_maximum: list[int] | None = None
    validation_maximum_empty: bool | None = Field(None, alias="validation_maximum__empty")
    validation_maximum_gt: list[int] | None = Field(None, alias="validation_maximum__gt")
    validation_maximum_gte: list[int] | None = Field(None, alias="validation_maximum__gte")
    validation_maximum_lt: list[int] | None = Field(None, alias="validation_maximum__lt")
    validation_maximum_lte: list[int] | None = Field(None, alias="validation_maximum__lte")
    validation_maximum_n: list[int] | None = Field(None, alias="validation_maximum__n")
    validation_minimum: list[int] | None = None
    validation_minimum_empty: bool | None = Field(None, alias="validation_minimum__empty")
    validation_minimum_gt: list[int] | None = Field(None, alias="validation_minimum__gt")
    validation_minimum_gte: list[int] | None = Field(None, alias="validation_minimum__gte")
    validation_minimum_lt: list[int] | None = Field(None, alias="validation_minimum__lt")
    validation_minimum_lte: list[int] | None = Field(None, alias="validation_minimum__lte")
    validation_minimum_n: list[int] | None = Field(None, alias="validation_minimum__n")
    validation_regex: list[str] | None = None
    validation_regex_empty: bool | None = Field(None, alias="validation_regex__empty")
    validation_regex_ic: list[str] | None = Field(None, alias="validation_regex__ic")
    validation_regex_ie: list[str] | None = Field(None, alias="validation_regex__ie")
    validation_regex_iew: list[str] | None = Field(None, alias="validation_regex__iew")
    validation_regex_isw: list[str] | None = Field(None, alias="validation_regex__isw")
    validation_regex_n: list[str] | None = Field(None, alias="validation_regex__n")
    validation_regex_nic: list[str] | None = Field(None, alias="validation_regex__nic")
    validation_regex_nie: list[str] | None = Field(None, alias="validation_regex__nie")
    validation_regex_niew: list[str] | None = Field(None, alias="validation_regex__niew")
    validation_regex_nisw: list[str] | None = Field(None, alias="validation_regex__nisw")
    weight: list[int] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[int] | None = Field(None, alias="weight__gt")
    weight_gte: list[int] | None = Field(None, alias="weight__gte")
    weight_lt: list[int] | None = Field(None, alias="weight__lt")
    weight_lte: list[int] | None = Field(None, alias="weight__lte")
    weight_n: list[int] | None = Field(None, alias="weight__n")


class ExtrasCustomLinksRootGetQuery(BaseModel):
    button_class: (
        Literal[
            "black",
            "blue",
            "cyan",
            "default",
            "ghost-dark",
            "gray",
            "green",
            "indigo",
            "orange",
            "pink",
            "purple",
            "red",
            "teal",
            "white",
            "yellow",
        ]
        | None
    ) = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    enabled: bool | None = None
    group_name: list[str] | None = None
    group_name_empty: bool | None = Field(None, alias="group_name__empty")
    group_name_ic: list[str] | None = Field(None, alias="group_name__ic")
    group_name_ie: list[str] | None = Field(None, alias="group_name__ie")
    group_name_iew: list[str] | None = Field(None, alias="group_name__iew")
    group_name_isw: list[str] | None = Field(None, alias="group_name__isw")
    group_name_n: list[str] | None = Field(None, alias="group_name__n")
    group_name_nic: list[str] | None = Field(None, alias="group_name__nic")
    group_name_nie: list[str] | None = Field(None, alias="group_name__nie")
    group_name_niew: list[str] | None = Field(None, alias="group_name__niew")
    group_name_nisw: list[str] | None = Field(None, alias="group_name__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    link_text: str | None = None
    link_text_ic: str | None = Field(None, alias="link_text__ic")
    link_text_ie: str | None = Field(None, alias="link_text__ie")
    link_text_iew: str | None = Field(None, alias="link_text__iew")
    link_text_isw: str | None = Field(None, alias="link_text__isw")
    link_text_n: str | None = Field(None, alias="link_text__n")
    link_text_nic: str | None = Field(None, alias="link_text__nic")
    link_text_nie: str | None = Field(None, alias="link_text__nie")
    link_text_niew: str | None = Field(None, alias="link_text__niew")
    link_text_nisw: str | None = Field(None, alias="link_text__nisw")
    link_url: str | None = None
    link_url_ic: str | None = Field(None, alias="link_url__ic")
    link_url_ie: str | None = Field(None, alias="link_url__ie")
    link_url_iew: str | None = Field(None, alias="link_url__iew")
    link_url_isw: str | None = Field(None, alias="link_url__isw")
    link_url_n: str | None = Field(None, alias="link_url__n")
    link_url_nic: str | None = Field(None, alias="link_url__nic")
    link_url_nie: str | None = Field(None, alias="link_url__nie")
    link_url_niew: str | None = Field(None, alias="link_url__niew")
    link_url_nisw: str | None = Field(None, alias="link_url__nisw")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    new_window: bool | None = None
    object_type: str | None = None
    object_type_ic: str | None = Field(None, alias="object_type__ic")
    object_type_ie: str | None = Field(None, alias="object_type__ie")
    object_type_iew: str | None = Field(None, alias="object_type__iew")
    object_type_isw: str | None = Field(None, alias="object_type__isw")
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_nic: str | None = Field(None, alias="object_type__nic")
    object_type_nie: str | None = Field(None, alias="object_type__nie")
    object_type_niew: str | None = Field(None, alias="object_type__niew")
    object_type_nisw: str | None = Field(None, alias="object_type__nisw")
    object_type_id: list[int] | None = None
    object_type_id_n: list[int] | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    updated_by_request: str | None = None
    weight: list[int] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[int] | None = Field(None, alias="weight__gt")
    weight_gte: list[int] | None = Field(None, alias="weight__gte")
    weight_lt: list[int] | None = Field(None, alias="weight__lt")
    weight_lte: list[int] | None = Field(None, alias="weight__lte")
    weight_n: list[int] | None = Field(None, alias="weight__n")


class ExtrasEventRulesRootGetQuery(BaseModel):
    action_object_id: list[int] | None = None
    action_object_id_empty: list[int] | None = Field(None, alias="action_object_id__empty")
    action_object_id_gt: list[int] | None = Field(None, alias="action_object_id__gt")
    action_object_id_gte: list[int] | None = Field(None, alias="action_object_id__gte")
    action_object_id_lt: list[int] | None = Field(None, alias="action_object_id__lt")
    action_object_id_lte: list[int] | None = Field(None, alias="action_object_id__lte")
    action_object_id_n: list[int] | None = Field(None, alias="action_object_id__n")
    action_object_type: str | None = None
    action_object_type_n: str | None = Field(None, alias="action_object_type__n")
    action_type: list[str] | None = None
    action_type_empty: bool | None = Field(None, alias="action_type__empty")
    action_type_ic: list[str] | None = Field(None, alias="action_type__ic")
    action_type_ie: list[str] | None = Field(None, alias="action_type__ie")
    action_type_iew: list[str] | None = Field(None, alias="action_type__iew")
    action_type_isw: list[str] | None = Field(None, alias="action_type__isw")
    action_type_n: list[str] | None = Field(None, alias="action_type__n")
    action_type_nic: list[str] | None = Field(None, alias="action_type__nic")
    action_type_nie: list[str] | None = Field(None, alias="action_type__nie")
    action_type_niew: list[str] | None = Field(None, alias="action_type__niew")
    action_type_nisw: list[str] | None = Field(None, alias="action_type__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    enabled: bool | None = None
    event_type: list[str] | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    object_type: str | None = None
    object_type_ic: str | None = Field(None, alias="object_type__ic")
    object_type_ie: str | None = Field(None, alias="object_type__ie")
    object_type_iew: str | None = Field(None, alias="object_type__iew")
    object_type_isw: str | None = Field(None, alias="object_type__isw")
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_nic: str | None = Field(None, alias="object_type__nic")
    object_type_nie: str | None = Field(None, alias="object_type__nie")
    object_type_niew: str | None = Field(None, alias="object_type__niew")
    object_type_nisw: str | None = Field(None, alias="object_type__nisw")
    object_type_id: list[int] | None = None
    object_type_id_n: list[int] | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class ExtrasExportTemplatesRootGetQuery(BaseModel):
    as_attachment: bool | None = None
    auto_sync_enabled: bool | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    data_file_id: list[int] | None = None
    data_file_id_n: list[int] | None = Field(None, alias="data_file_id__n")
    data_source_id: list[int] | None = None
    data_source_id_n: list[int] | None = Field(None, alias="data_source_id__n")
    data_synced: list[str] | None = None
    data_synced_empty: bool | None = Field(None, alias="data_synced__empty")
    data_synced_gt: list[str] | None = Field(None, alias="data_synced__gt")
    data_synced_gte: list[str] | None = Field(None, alias="data_synced__gte")
    data_synced_lt: list[str] | None = Field(None, alias="data_synced__lt")
    data_synced_lte: list[str] | None = Field(None, alias="data_synced__lte")
    data_synced_n: list[str] | None = Field(None, alias="data_synced__n")
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    file_extension: list[str] | None = None
    file_extension_empty: bool | None = Field(None, alias="file_extension__empty")
    file_extension_ic: list[str] | None = Field(None, alias="file_extension__ic")
    file_extension_ie: list[str] | None = Field(None, alias="file_extension__ie")
    file_extension_iew: list[str] | None = Field(None, alias="file_extension__iew")
    file_extension_isw: list[str] | None = Field(None, alias="file_extension__isw")
    file_extension_n: list[str] | None = Field(None, alias="file_extension__n")
    file_extension_nic: list[str] | None = Field(None, alias="file_extension__nic")
    file_extension_nie: list[str] | None = Field(None, alias="file_extension__nie")
    file_extension_niew: list[str] | None = Field(None, alias="file_extension__niew")
    file_extension_nisw: list[str] | None = Field(None, alias="file_extension__nisw")
    file_name: list[str] | None = None
    file_name_empty: bool | None = Field(None, alias="file_name__empty")
    file_name_ic: list[str] | None = Field(None, alias="file_name__ic")
    file_name_ie: list[str] | None = Field(None, alias="file_name__ie")
    file_name_iew: list[str] | None = Field(None, alias="file_name__iew")
    file_name_isw: list[str] | None = Field(None, alias="file_name__isw")
    file_name_n: list[str] | None = Field(None, alias="file_name__n")
    file_name_nic: list[str] | None = Field(None, alias="file_name__nic")
    file_name_nie: list[str] | None = Field(None, alias="file_name__nie")
    file_name_niew: list[str] | None = Field(None, alias="file_name__niew")
    file_name_nisw: list[str] | None = Field(None, alias="file_name__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mime_type: list[str] | None = None
    mime_type_empty: bool | None = Field(None, alias="mime_type__empty")
    mime_type_ic: list[str] | None = Field(None, alias="mime_type__ic")
    mime_type_ie: list[str] | None = Field(None, alias="mime_type__ie")
    mime_type_iew: list[str] | None = Field(None, alias="mime_type__iew")
    mime_type_isw: list[str] | None = Field(None, alias="mime_type__isw")
    mime_type_n: list[str] | None = Field(None, alias="mime_type__n")
    mime_type_nic: list[str] | None = Field(None, alias="mime_type__nic")
    mime_type_nie: list[str] | None = Field(None, alias="mime_type__nie")
    mime_type_niew: list[str] | None = Field(None, alias="mime_type__niew")
    mime_type_nisw: list[str] | None = Field(None, alias="mime_type__nisw")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    object_type: str | None = None
    object_type_ic: str | None = Field(None, alias="object_type__ic")
    object_type_ie: str | None = Field(None, alias="object_type__ie")
    object_type_iew: str | None = Field(None, alias="object_type__iew")
    object_type_isw: str | None = Field(None, alias="object_type__isw")
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_nic: str | None = Field(None, alias="object_type__nic")
    object_type_nie: str | None = Field(None, alias="object_type__nie")
    object_type_niew: str | None = Field(None, alias="object_type__niew")
    object_type_nisw: str | None = Field(None, alias="object_type__nisw")
    object_type_id: list[int] | None = None
    object_type_id_n: list[int] | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    updated_by_request: str | None = None


class ExtrasImageAttachmentsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    image_height: list[int] | None = None
    image_height_empty: bool | None = Field(None, alias="image_height__empty")
    image_height_gt: list[int] | None = Field(None, alias="image_height__gt")
    image_height_gte: list[int] | None = Field(None, alias="image_height__gte")
    image_height_lt: list[int] | None = Field(None, alias="image_height__lt")
    image_height_lte: list[int] | None = Field(None, alias="image_height__lte")
    image_height_n: list[int] | None = Field(None, alias="image_height__n")
    image_width: list[int] | None = None
    image_width_empty: bool | None = Field(None, alias="image_width__empty")
    image_width_gt: list[int] | None = Field(None, alias="image_width__gt")
    image_width_gte: list[int] | None = Field(None, alias="image_width__gte")
    image_width_lt: list[int] | None = Field(None, alias="image_width__lt")
    image_width_lte: list[int] | None = Field(None, alias="image_width__lte")
    image_width_n: list[int] | None = Field(None, alias="image_width__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    object_id: list[int] | None = None
    object_id_empty: bool | None = Field(None, alias="object_id__empty")
    object_id_gt: list[int] | None = Field(None, alias="object_id__gt")
    object_id_gte: list[int] | None = Field(None, alias="object_id__gte")
    object_id_lt: list[int] | None = Field(None, alias="object_id__lt")
    object_id_lte: list[int] | None = Field(None, alias="object_id__lte")
    object_id_n: list[int] | None = Field(None, alias="object_id__n")
    object_type: str | None = None
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_id: int | None = None
    object_type_id_n: int | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    updated_by_request: str | None = None


class ExtrasJournalEntriesRootGetQuery(BaseModel):
    assigned_object_id: list[int] | None = None
    assigned_object_id_empty: bool | None = Field(None, alias="assigned_object_id__empty")
    assigned_object_id_gt: list[int] | None = Field(None, alias="assigned_object_id__gt")
    assigned_object_id_gte: list[int] | None = Field(None, alias="assigned_object_id__gte")
    assigned_object_id_lt: list[int] | None = Field(None, alias="assigned_object_id__lt")
    assigned_object_id_lte: list[int] | None = Field(None, alias="assigned_object_id__lte")
    assigned_object_id_n: list[int] | None = Field(None, alias="assigned_object_id__n")
    assigned_object_type: str | None = None
    assigned_object_type_n: str | None = Field(None, alias="assigned_object_type__n")
    assigned_object_type_id: list[int] | None = None
    assigned_object_type_id_n: list[int] | None = Field(None, alias="assigned_object_type_id__n")
    created_after: str | None = None
    created_before: str | None = None
    created_by: list[str] | None = None
    created_by_n: list[str] | None = Field(None, alias="created_by__n")
    created_by_id: list[int] | None = None
    created_by_id_n: list[int] | None = Field(None, alias="created_by_id__n")
    created_by_request: str | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    kind: list[str] | None = None
    kind_empty: bool | None = Field(None, alias="kind__empty")
    kind_ic: list[str] | None = Field(None, alias="kind__ic")
    kind_ie: list[str] | None = Field(None, alias="kind__ie")
    kind_iew: list[str] | None = Field(None, alias="kind__iew")
    kind_isw: list[str] | None = Field(None, alias="kind__isw")
    kind_n: list[str] | None = Field(None, alias="kind__n")
    kind_nic: list[str] | None = Field(None, alias="kind__nic")
    kind_nie: list[str] | None = Field(None, alias="kind__nie")
    kind_niew: list[str] | None = Field(None, alias="kind__niew")
    kind_nisw: list[str] | None = Field(None, alias="kind__nisw")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class ExtrasNotificationGroupsRootGetQuery(BaseModel):
    limit: int | None = None
    offset: int | None = None
    ordering: str | None = None


class ExtrasNotificationsRootGetQuery(BaseModel):
    limit: int | None = None
    offset: int | None = None
    ordering: str | None = None


class ExtrasObjectTypesRootGetQuery(BaseModel):
    app_label: str | None = None
    id: int | None = None
    limit: int | None = None
    model: str | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None


class ExtrasSavedFiltersRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    enabled: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    object_type: str | None = None
    object_type_ic: str | None = Field(None, alias="object_type__ic")
    object_type_ie: str | None = Field(None, alias="object_type__ie")
    object_type_iew: str | None = Field(None, alias="object_type__iew")
    object_type_isw: str | None = Field(None, alias="object_type__isw")
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_nic: str | None = Field(None, alias="object_type__nic")
    object_type_nie: str | None = Field(None, alias="object_type__nie")
    object_type_niew: str | None = Field(None, alias="object_type__niew")
    object_type_nisw: str | None = Field(None, alias="object_type__nisw")
    object_type_id: list[int] | None = None
    object_type_id_n: list[int] | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    shared: bool | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    updated_by_request: str | None = None
    usable: bool | None = None
    user: list[str] | None = None
    user_n: list[str] | None = Field(None, alias="user__n")
    user_id: list[int] | None = None
    user_id_n: list[int] | None = Field(None, alias="user_id__n")
    weight: list[int] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[int] | None = Field(None, alias="weight__gt")
    weight_gte: list[int] | None = Field(None, alias="weight__gte")
    weight_lt: list[int] | None = Field(None, alias="weight__lt")
    weight_lte: list[int] | None = Field(None, alias="weight__lte")
    weight_n: list[int] | None = Field(None, alias="weight__n")


class ExtrasScriptsRootGetQuery(BaseModel):
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    is_executable: bool | None = None
    limit: int | None = None
    module_id: list[int] | None = None
    module_id_n: list[int] | None = Field(None, alias="module_id__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None


class ExtrasSubscriptionsRootGetQuery(BaseModel):
    limit: int | None = None
    offset: int | None = None
    ordering: str | None = None


class ExtrasTableConfigsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    enabled: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    object_type: str | None = None
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_id: list[int] | None = None
    object_type_id_n: list[int] | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    shared: bool | None = None
    table: list[str] | None = None
    table_empty: bool | None = Field(None, alias="table__empty")
    table_ic: list[str] | None = Field(None, alias="table__ic")
    table_ie: list[str] | None = Field(None, alias="table__ie")
    table_iew: list[str] | None = Field(None, alias="table__iew")
    table_isw: list[str] | None = Field(None, alias="table__isw")
    table_n: list[str] | None = Field(None, alias="table__n")
    table_nic: list[str] | None = Field(None, alias="table__nic")
    table_nie: list[str] | None = Field(None, alias="table__nie")
    table_niew: list[str] | None = Field(None, alias="table__niew")
    table_nisw: list[str] | None = Field(None, alias="table__nisw")
    updated_by_request: str | None = None
    usable: bool | None = None
    user: list[str] | None = None
    user_n: list[str] | None = Field(None, alias="user__n")
    user_id: list[int] | None = None
    user_id_n: list[int] | None = Field(None, alias="user_id__n")
    weight: list[int] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[int] | None = Field(None, alias="weight__gt")
    weight_gte: list[int] | None = Field(None, alias="weight__gte")
    weight_lt: list[int] | None = Field(None, alias="weight__lt")
    weight_lte: list[int] | None = Field(None, alias="weight__lte")
    weight_n: list[int] | None = Field(None, alias="weight__n")


class ExtrasTaggedObjectsRootGetQuery(BaseModel):
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    limit: int | None = None
    object_id: list[int] | None = None
    object_id_empty: bool | None = Field(None, alias="object_id__empty")
    object_id_gt: list[int] | None = Field(None, alias="object_id__gt")
    object_id_gte: list[int] | None = Field(None, alias="object_id__gte")
    object_id_lt: list[int] | None = Field(None, alias="object_id__lt")
    object_id_lte: list[int] | None = Field(None, alias="object_id__lte")
    object_id_n: list[int] | None = Field(None, alias="object_id__n")
    object_type: str | None = None
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_id: list[int] | None = None
    object_type_id_n: list[int] | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")


class ExtrasTagsRootGetQuery(BaseModel):
    color: list[str] | None = None
    color_empty: bool | None = Field(None, alias="color__empty")
    color_ic: list[str] | None = Field(None, alias="color__ic")
    color_ie: list[str] | None = Field(None, alias="color__ie")
    color_iew: list[str] | None = Field(None, alias="color__iew")
    color_isw: list[str] | None = Field(None, alias="color__isw")
    color_n: list[str] | None = Field(None, alias="color__n")
    color_nic: list[str] | None = Field(None, alias="color__nic")
    color_nie: list[str] | None = Field(None, alias="color__nie")
    color_niew: list[str] | None = Field(None, alias="color__niew")
    color_nisw: list[str] | None = Field(None, alias="color__nisw")
    content_type: list[str] | None = None
    content_type_id: list[int] | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    for_object_type_id: list[int] | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    object_types: list[int] | None = None
    object_types_n: list[int] | None = Field(None, alias="object_types__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    updated_by_request: str | None = None
    weight: list[int] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[int] | None = Field(None, alias="weight__gt")
    weight_gte: list[int] | None = Field(None, alias="weight__gte")
    weight_lt: list[int] | None = Field(None, alias="weight__lt")
    weight_lte: list[int] | None = Field(None, alias="weight__lte")
    weight_n: list[int] | None = Field(None, alias="weight__n")


class ExtrasWebhooksRootGetQuery(BaseModel):
    ca_file_path: list[str] | None = None
    ca_file_path_empty: bool | None = Field(None, alias="ca_file_path__empty")
    ca_file_path_ic: list[str] | None = Field(None, alias="ca_file_path__ic")
    ca_file_path_ie: list[str] | None = Field(None, alias="ca_file_path__ie")
    ca_file_path_iew: list[str] | None = Field(None, alias="ca_file_path__iew")
    ca_file_path_isw: list[str] | None = Field(None, alias="ca_file_path__isw")
    ca_file_path_n: list[str] | None = Field(None, alias="ca_file_path__n")
    ca_file_path_nic: list[str] | None = Field(None, alias="ca_file_path__nic")
    ca_file_path_nie: list[str] | None = Field(None, alias="ca_file_path__nie")
    ca_file_path_niew: list[str] | None = Field(None, alias="ca_file_path__niew")
    ca_file_path_nisw: list[str] | None = Field(None, alias="ca_file_path__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    http_content_type: list[str] | None = None
    http_content_type_empty: bool | None = Field(None, alias="http_content_type__empty")
    http_content_type_ic: list[str] | None = Field(None, alias="http_content_type__ic")
    http_content_type_ie: list[str] | None = Field(None, alias="http_content_type__ie")
    http_content_type_iew: list[str] | None = Field(None, alias="http_content_type__iew")
    http_content_type_isw: list[str] | None = Field(None, alias="http_content_type__isw")
    http_content_type_n: list[str] | None = Field(None, alias="http_content_type__n")
    http_content_type_nic: list[str] | None = Field(None, alias="http_content_type__nic")
    http_content_type_nie: list[str] | None = Field(None, alias="http_content_type__nie")
    http_content_type_niew: list[str] | None = Field(None, alias="http_content_type__niew")
    http_content_type_nisw: list[str] | None = Field(None, alias="http_content_type__nisw")
    http_method: list[str] | None = None
    http_method_empty: bool | None = Field(None, alias="http_method__empty")
    http_method_ic: list[str] | None = Field(None, alias="http_method__ic")
    http_method_ie: list[str] | None = Field(None, alias="http_method__ie")
    http_method_iew: list[str] | None = Field(None, alias="http_method__iew")
    http_method_isw: list[str] | None = Field(None, alias="http_method__isw")
    http_method_n: list[str] | None = Field(None, alias="http_method__n")
    http_method_nic: list[str] | None = Field(None, alias="http_method__nic")
    http_method_nie: list[str] | None = Field(None, alias="http_method__nie")
    http_method_niew: list[str] | None = Field(None, alias="http_method__niew")
    http_method_nisw: list[str] | None = Field(None, alias="http_method__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    payload_url: list[str] | None = None
    q: str | None = None
    secret: list[str] | None = None
    secret_empty: bool | None = Field(None, alias="secret__empty")
    secret_ic: list[str] | None = Field(None, alias="secret__ic")
    secret_ie: list[str] | None = Field(None, alias="secret__ie")
    secret_iew: list[str] | None = Field(None, alias="secret__iew")
    secret_isw: list[str] | None = Field(None, alias="secret__isw")
    secret_n: list[str] | None = Field(None, alias="secret__n")
    secret_nic: list[str] | None = Field(None, alias="secret__nic")
    secret_nie: list[str] | None = Field(None, alias="secret__nie")
    secret_niew: list[str] | None = Field(None, alias="secret__niew")
    secret_nisw: list[str] | None = Field(None, alias="secret__nisw")
    ssl_verification: bool | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class IpamAggregatesRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    date_added: list[str] | None = None
    date_added_empty: bool | None = Field(None, alias="date_added__empty")
    date_added_gt: list[str] | None = Field(None, alias="date_added__gt")
    date_added_gte: list[str] | None = Field(None, alias="date_added__gte")
    date_added_lt: list[str] | None = Field(None, alias="date_added__lt")
    date_added_lte: list[str] | None = Field(None, alias="date_added__lte")
    date_added_n: list[str] | None = Field(None, alias="date_added__n")
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    family: float | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    prefix: str | None = None
    q: str | None = None
    rir: list[str] | None = None
    rir_n: list[str] | None = Field(None, alias="rir__n")
    rir_id: list[int] | None = None
    rir_id_n: list[int] | None = Field(None, alias="rir_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class IpamAsnRangesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    end: list[int] | None = None
    end_empty: bool | None = Field(None, alias="end__empty")
    end_gt: list[int] | None = Field(None, alias="end__gt")
    end_gte: list[int] | None = Field(None, alias="end__gte")
    end_lt: list[int] | None = Field(None, alias="end__lt")
    end_lte: list[int] | None = Field(None, alias="end__lte")
    end_n: list[int] | None = Field(None, alias="end__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rir: list[str] | None = None
    rir_n: list[str] | None = Field(None, alias="rir__n")
    rir_id: list[int] | None = None
    rir_id_n: list[int] | None = Field(None, alias="rir_id__n")
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    start: list[int] | None = None
    start_empty: bool | None = Field(None, alias="start__empty")
    start_gt: list[int] | None = Field(None, alias="start__gt")
    start_gte: list[int] | None = Field(None, alias="start__gte")
    start_lt: list[int] | None = Field(None, alias="start__lt")
    start_lte: list[int] | None = Field(None, alias="start__lte")
    start_n: list[int] | None = Field(None, alias="start__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class IpamAsnsRootGetQuery(BaseModel):
    asn: list[int] | None = None
    asn_empty: bool | None = Field(None, alias="asn__empty")
    asn_gt: list[int] | None = Field(None, alias="asn__gt")
    asn_gte: list[int] | None = Field(None, alias="asn__gte")
    asn_lt: list[int] | None = Field(None, alias="asn__lt")
    asn_lte: list[int] | None = Field(None, alias="asn__lte")
    asn_n: list[int] | None = Field(None, alias="asn__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    provider: list[str] | None = None
    provider_n: list[str] | None = Field(None, alias="provider__n")
    provider_id: list[int] | None = None
    provider_id_n: list[int] | None = Field(None, alias="provider_id__n")
    q: str | None = None
    rir: list[str] | None = None
    rir_n: list[str] | None = Field(None, alias="rir__n")
    rir_id: list[int] | None = None
    rir_id_n: list[int] | None = Field(None, alias="rir_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class IpamFhrpGroupAssignmentsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    device: list[str] | None = None
    device_id: list[int] | None = None
    group_id: list[int] | None = None
    group_id_n: list[int] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface_id: list[int] | None = None
    interface_id_empty: bool | None = Field(None, alias="interface_id__empty")
    interface_id_gt: list[int] | None = Field(None, alias="interface_id__gt")
    interface_id_gte: list[int] | None = Field(None, alias="interface_id__gte")
    interface_id_lt: list[int] | None = Field(None, alias="interface_id__lt")
    interface_id_lte: list[int] | None = Field(None, alias="interface_id__lte")
    interface_id_n: list[int] | None = Field(None, alias="interface_id__n")
    interface_type: str | None = None
    interface_type_n: str | None = Field(None, alias="interface_type__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    priority: list[int] | None = None
    priority_empty: bool | None = Field(None, alias="priority__empty")
    priority_gt: list[int] | None = Field(None, alias="priority__gt")
    priority_gte: list[int] | None = Field(None, alias="priority__gte")
    priority_lt: list[int] | None = Field(None, alias="priority__lt")
    priority_lte: list[int] | None = Field(None, alias="priority__lte")
    priority_n: list[int] | None = Field(None, alias="priority__n")
    updated_by_request: str | None = None
    virtual_machine: list[str] | None = None
    virtual_machine_id: list[int] | None = None


class IpamFhrpGroupsRootGetQuery(BaseModel):
    auth_key: list[str] | None = None
    auth_key_empty: bool | None = Field(None, alias="auth_key__empty")
    auth_key_ic: list[str] | None = Field(None, alias="auth_key__ic")
    auth_key_ie: list[str] | None = Field(None, alias="auth_key__ie")
    auth_key_iew: list[str] | None = Field(None, alias="auth_key__iew")
    auth_key_isw: list[str] | None = Field(None, alias="auth_key__isw")
    auth_key_n: list[str] | None = Field(None, alias="auth_key__n")
    auth_key_nic: list[str] | None = Field(None, alias="auth_key__nic")
    auth_key_nie: list[str] | None = Field(None, alias="auth_key__nie")
    auth_key_niew: list[str] | None = Field(None, alias="auth_key__niew")
    auth_key_nisw: list[str] | None = Field(None, alias="auth_key__nisw")
    auth_type: list[str] | None = None
    auth_type_empty: bool | None = Field(None, alias="auth_type__empty")
    auth_type_ic: list[str] | None = Field(None, alias="auth_type__ic")
    auth_type_ie: list[str] | None = Field(None, alias="auth_type__ie")
    auth_type_iew: list[str] | None = Field(None, alias="auth_type__iew")
    auth_type_isw: list[str] | None = Field(None, alias="auth_type__isw")
    auth_type_n: list[str] | None = Field(None, alias="auth_type__n")
    auth_type_nic: list[str] | None = Field(None, alias="auth_type__nic")
    auth_type_nie: list[str] | None = Field(None, alias="auth_type__nie")
    auth_type_niew: list[str] | None = Field(None, alias="auth_type__niew")
    auth_type_nisw: list[str] | None = Field(None, alias="auth_type__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    group_id: list[int] | None = None
    group_id_empty: bool | None = Field(None, alias="group_id__empty")
    group_id_gt: list[int] | None = Field(None, alias="group_id__gt")
    group_id_gte: list[int] | None = Field(None, alias="group_id__gte")
    group_id_lt: list[int] | None = Field(None, alias="group_id__lt")
    group_id_lte: list[int] | None = Field(None, alias="group_id__lte")
    group_id_n: list[int] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    protocol: list[str] | None = None
    protocol_empty: bool | None = Field(None, alias="protocol__empty")
    protocol_ic: list[str] | None = Field(None, alias="protocol__ic")
    protocol_ie: list[str] | None = Field(None, alias="protocol__ie")
    protocol_iew: list[str] | None = Field(None, alias="protocol__iew")
    protocol_isw: list[str] | None = Field(None, alias="protocol__isw")
    protocol_n: list[str] | None = Field(None, alias="protocol__n")
    protocol_nic: list[str] | None = Field(None, alias="protocol__nic")
    protocol_nie: list[str] | None = Field(None, alias="protocol__nie")
    protocol_niew: list[str] | None = Field(None, alias="protocol__niew")
    protocol_nisw: list[str] | None = Field(None, alias="protocol__nisw")
    q: str | None = None
    related_ip: list[str] | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class IpamIpAddressesRootGetQuery(BaseModel):
    address: list[str] | None = None
    assigned: bool | None = None
    assigned_object_id: list[int] | None = None
    assigned_object_id_empty: bool | None = Field(None, alias="assigned_object_id__empty")
    assigned_object_id_gt: list[int] | None = Field(None, alias="assigned_object_id__gt")
    assigned_object_id_gte: list[int] | None = Field(None, alias="assigned_object_id__gte")
    assigned_object_id_lt: list[int] | None = Field(None, alias="assigned_object_id__lt")
    assigned_object_id_lte: list[int] | None = Field(None, alias="assigned_object_id__lte")
    assigned_object_id_n: list[int] | None = Field(None, alias="assigned_object_id__n")
    assigned_object_type: int | None = None
    assigned_object_type_n: int | None = Field(None, alias="assigned_object_type__n")
    assigned_to_interface: bool | None = None
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_id: list[int] | None = None
    dns_name: list[str] | None = None
    dns_name_empty: bool | None = Field(None, alias="dns_name__empty")
    dns_name_ic: list[str] | None = Field(None, alias="dns_name__ic")
    dns_name_ie: list[str] | None = Field(None, alias="dns_name__ie")
    dns_name_iew: list[str] | None = Field(None, alias="dns_name__iew")
    dns_name_isw: list[str] | None = Field(None, alias="dns_name__isw")
    dns_name_n: list[str] | None = Field(None, alias="dns_name__n")
    dns_name_nic: list[str] | None = Field(None, alias="dns_name__nic")
    dns_name_nie: list[str] | None = Field(None, alias="dns_name__nie")
    dns_name_niew: list[str] | None = Field(None, alias="dns_name__niew")
    dns_name_nisw: list[str] | None = Field(None, alias="dns_name__nisw")
    family: float | None = None
    fhrpgroup_id: list[int] | None = None
    fhrpgroup_id_n: list[int] | None = Field(None, alias="fhrpgroup_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface: list[str] | None = None
    interface_n: list[str] | None = Field(None, alias="interface__n")
    interface_id: list[int] | None = None
    interface_id_n: list[int] | None = Field(None, alias="interface_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mask_length: list[int] | None = None
    mask_length_gte: float | None = Field(None, alias="mask_length__gte")
    mask_length_lte: float | None = Field(None, alias="mask_length__lte")
    modified_by_request: str | None = None
    nat_inside_id: list[int] | None = None
    nat_inside_id_n: list[int] | None = Field(None, alias="nat_inside_id__n")
    offset: int | None = None
    ordering: str | None = None
    parent: list[str] | None = None
    present_in_vrf: str | None = None
    present_in_vrf_id: str | None = None
    q: str | None = None
    role: list[str] | None = None
    role_empty: bool | None = Field(None, alias="role__empty")
    role_ic: list[str] | None = Field(None, alias="role__ic")
    role_ie: list[str] | None = Field(None, alias="role__ie")
    role_iew: list[str] | None = Field(None, alias="role__iew")
    role_isw: list[str] | None = Field(None, alias="role__isw")
    role_n: list[str] | None = Field(None, alias="role__n")
    role_nic: list[str] | None = Field(None, alias="role__nic")
    role_nie: list[str] | None = Field(None, alias="role__nie")
    role_niew: list[str] | None = Field(None, alias="role__niew")
    role_nisw: list[str] | None = Field(None, alias="role__nisw")
    service_id: list[int] | None = None
    service_id_n: list[int] | None = Field(None, alias="service_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None
    virtual_machine: list[str] | None = None
    virtual_machine_id: list[int] | None = None
    vminterface: list[str] | None = None
    vminterface_n: list[str] | None = Field(None, alias="vminterface__n")
    vminterface_id: list[int] | None = None
    vminterface_id_n: list[int] | None = Field(None, alias="vminterface_id__n")
    vrf: list[str] | None = None
    vrf_n: list[str] | None = Field(None, alias="vrf__n")
    vrf_id: list[int] | None = None
    vrf_id_n: list[int] | None = Field(None, alias="vrf_id__n")


class IpamIpRangesRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    contains: str | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    end_address: list[str] | None = None
    family: float | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mark_populated: bool | None = None
    mark_utilized: bool | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    parent: list[str] | None = None
    q: str | None = None
    role: list[str] | None = None
    role_n: list[str] | None = Field(None, alias="role__n")
    role_id: list[int] | None = None
    role_id_n: list[int] | None = Field(None, alias="role_id__n")
    size: list[int] | None = None
    size_empty: bool | None = Field(None, alias="size__empty")
    size_gt: list[int] | None = Field(None, alias="size__gt")
    size_gte: list[int] | None = Field(None, alias="size__gte")
    size_lt: list[int] | None = Field(None, alias="size__lt")
    size_lte: list[int] | None = Field(None, alias="size__lte")
    size_n: list[int] | None = Field(None, alias="size__n")
    start_address: list[str] | None = None
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None
    vrf: list[str] | None = None
    vrf_n: list[str] | None = Field(None, alias="vrf__n")
    vrf_id: list[int] | None = None
    vrf_id_n: list[int] | None = Field(None, alias="vrf_id__n")


class IpamPrefixesRootGetQuery(BaseModel):
    children: list[int] | None = None
    children_empty: list[int] | None = Field(None, alias="children__empty")
    children_gt: list[int] | None = Field(None, alias="children__gt")
    children_gte: list[int] | None = Field(None, alias="children__gte")
    children_lt: list[int] | None = Field(None, alias="children__lt")
    children_lte: list[int] | None = Field(None, alias="children__lte")
    children_n: list[int] | None = Field(None, alias="children__n")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    contains: str | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    depth: list[int] | None = None
    depth_empty: list[int] | None = Field(None, alias="depth__empty")
    depth_gt: list[int] | None = Field(None, alias="depth__gt")
    depth_gte: list[int] | None = Field(None, alias="depth__gte")
    depth_lt: list[int] | None = Field(None, alias="depth__lt")
    depth_lte: list[int] | None = Field(None, alias="depth__lte")
    depth_n: list[int] | None = Field(None, alias="depth__n")
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    family: float | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    is_pool: bool | None = None
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[str] | None = None
    location_id_n: list[str] | None = Field(None, alias="location_id__n")
    mark_utilized: bool | None = None
    mask_length: list[int] | None = None
    mask_length_gte: float | None = Field(None, alias="mask_length__gte")
    mask_length_lte: float | None = Field(None, alias="mask_length__lte")
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    prefix: list[str] | None = None
    present_in_vrf: str | None = None
    present_in_vrf_id: str | None = None
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    role: list[str] | None = None
    role_n: list[str] | None = Field(None, alias="role__n")
    role_id: list[int] | None = None
    role_id_n: list[int] | None = Field(None, alias="role_id__n")
    scope_id: list[int] | None = None
    scope_id_empty: bool | None = Field(None, alias="scope_id__empty")
    scope_id_gt: list[int] | None = Field(None, alias="scope_id__gt")
    scope_id_gte: list[int] | None = Field(None, alias="scope_id__gte")
    scope_id_lt: list[int] | None = Field(None, alias="scope_id__lt")
    scope_id_lte: list[int] | None = Field(None, alias="scope_id__lte")
    scope_id_n: list[int] | None = Field(None, alias="scope_id__n")
    scope_type: str | None = None
    scope_type_n: str | None = Field(None, alias="scope_type__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None
    vlan_group: list[str] | None = None
    vlan_group_n: list[str] | None = Field(None, alias="vlan_group__n")
    vlan_group_id: list[int] | None = None
    vlan_group_id_n: list[int] | None = Field(None, alias="vlan_group_id__n")
    vlan_id: list[int] | None = None
    vlan_id_n: list[int] | None = Field(None, alias="vlan_id__n")
    vlan_vid: int | None = None
    vlan_vid_empty: int | None = Field(None, alias="vlan_vid__empty")
    vlan_vid_gt: int | None = Field(None, alias="vlan_vid__gt")
    vlan_vid_gte: int | None = Field(None, alias="vlan_vid__gte")
    vlan_vid_lt: int | None = Field(None, alias="vlan_vid__lt")
    vlan_vid_lte: int | None = Field(None, alias="vlan_vid__lte")
    vlan_vid_n: int | None = Field(None, alias="vlan_vid__n")
    vrf: list[str] | None = None
    vrf_n: list[str] | None = Field(None, alias="vrf__n")
    vrf_id: list[int] | None = None
    vrf_id_n: list[int] | None = Field(None, alias="vrf_id__n")
    within: str | None = None
    within_include: str | None = None


class IpamRirsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    is_private: bool | None = None
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class IpamRolesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    weight: list[int] | None = None
    weight_empty: bool | None = Field(None, alias="weight__empty")
    weight_gt: list[int] | None = Field(None, alias="weight__gt")
    weight_gte: list[int] | None = Field(None, alias="weight__gte")
    weight_lt: list[int] | None = Field(None, alias="weight__lt")
    weight_lte: list[int] | None = Field(None, alias="weight__lte")
    weight_n: list[int] | None = Field(None, alias="weight__n")


class IpamRouteTargetsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    exporting_l2vpn: list[int] | None = None
    exporting_l2vpn_n: list[int] | None = Field(None, alias="exporting_l2vpn__n")
    exporting_l2vpn_id: list[int] | None = None
    exporting_l2vpn_id_n: list[int] | None = Field(None, alias="exporting_l2vpn_id__n")
    exporting_vrf: list[str] | None = None
    exporting_vrf_n: list[str] | None = Field(None, alias="exporting_vrf__n")
    exporting_vrf_id: list[int] | None = None
    exporting_vrf_id_n: list[int] | None = Field(None, alias="exporting_vrf_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    importing_l2vpn: list[int] | None = None
    importing_l2vpn_n: list[int] | None = Field(None, alias="importing_l2vpn__n")
    importing_l2vpn_id: list[int] | None = None
    importing_l2vpn_id_n: list[int] | None = Field(None, alias="importing_l2vpn_id__n")
    importing_vrf: list[str] | None = None
    importing_vrf_n: list[str] | None = Field(None, alias="importing_vrf__n")
    importing_vrf_id: list[int] | None = None
    importing_vrf_id_n: list[int] | None = Field(None, alias="importing_vrf_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class IpamServiceTemplatesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    port: float | None = None
    protocol: Literal["sctp", "tcp", "udp"] | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class IpamServicesRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_id: list[int] | None = None
    fhrpgroup: list[str] | None = None
    fhrpgroup_id: list[int] | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    ip_address: list[str] | None = None
    ip_address_n: list[str] | None = Field(None, alias="ip_address__n")
    ip_address_id: list[int] | None = None
    ip_address_id_n: list[int] | None = Field(None, alias="ip_address_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent_object_id: list[int] | None = None
    parent_object_id_empty: bool | None = Field(None, alias="parent_object_id__empty")
    parent_object_id_gt: list[int] | None = Field(None, alias="parent_object_id__gt")
    parent_object_id_gte: list[int] | None = Field(None, alias="parent_object_id__gte")
    parent_object_id_lt: list[int] | None = Field(None, alias="parent_object_id__lt")
    parent_object_id_lte: list[int] | None = Field(None, alias="parent_object_id__lte")
    parent_object_id_n: list[int] | None = Field(None, alias="parent_object_id__n")
    parent_object_type: int | None = None
    parent_object_type_n: int | None = Field(None, alias="parent_object_type__n")
    port: float | None = None
    protocol: Literal["sctp", "tcp", "udp"] | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_machine: list[str] | None = None
    virtual_machine_id: list[int] | None = None


class IpamVlanGroupsRootGetQuery(BaseModel):
    cluster: int | None = None
    cluster_group: int | None = None
    contains_vid: float | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rack: int | None = None
    region: int | None = None
    scope_id: list[int] | None = None
    scope_id_empty: bool | None = Field(None, alias="scope_id__empty")
    scope_id_gt: list[int] | None = Field(None, alias="scope_id__gt")
    scope_id_gte: list[int] | None = Field(None, alias="scope_id__gte")
    scope_id_lt: list[int] | None = Field(None, alias="scope_id__lt")
    scope_id_lte: list[int] | None = Field(None, alias="scope_id__lte")
    scope_id_n: list[int] | None = Field(None, alias="scope_id__n")
    scope_type: str | None = None
    scope_type_n: str | None = Field(None, alias="scope_type__n")
    site: int | None = None
    site_group: int | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class IpamVlanTranslationPoliciesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class IpamVlanTranslationRulesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    local_vid: list[int] | None = None
    local_vid_empty: bool | None = Field(None, alias="local_vid__empty")
    local_vid_gt: list[int] | None = Field(None, alias="local_vid__gt")
    local_vid_gte: list[int] | None = Field(None, alias="local_vid__gte")
    local_vid_lt: list[int] | None = Field(None, alias="local_vid__lt")
    local_vid_lte: list[int] | None = Field(None, alias="local_vid__lte")
    local_vid_n: list[int] | None = Field(None, alias="local_vid__n")
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    policy: list[str] | None = None
    policy_n: list[str] | None = Field(None, alias="policy__n")
    policy_id: list[int] | None = None
    policy_id_n: list[int] | None = Field(None, alias="policy_id__n")
    q: str | None = None
    remote_vid: list[int] | None = None
    remote_vid_empty: bool | None = Field(None, alias="remote_vid__empty")
    remote_vid_gt: list[int] | None = Field(None, alias="remote_vid__gt")
    remote_vid_gte: list[int] | None = Field(None, alias="remote_vid__gte")
    remote_vid_lt: list[int] | None = Field(None, alias="remote_vid__lt")
    remote_vid_lte: list[int] | None = Field(None, alias="remote_vid__lte")
    remote_vid_n: list[int] | None = Field(None, alias="remote_vid__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class IpamVlansRootGetQuery(BaseModel):
    available_at_site: str | None = None
    available_on_device: str | None = None
    available_on_virtualmachine: str | None = None
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[int] | None = None
    group_id_n: list[int] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface_id: str | None = None
    l2vpn: list[int] | None = None
    l2vpn_n: list[int] | None = Field(None, alias="l2vpn__n")
    l2vpn_id: list[int] | None = None
    l2vpn_id_n: list[int] | None = Field(None, alias="l2vpn_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    qinq_role: list[str] | None = None
    qinq_role_empty: bool | None = Field(None, alias="qinq_role__empty")
    qinq_role_ic: list[str] | None = Field(None, alias="qinq_role__ic")
    qinq_role_ie: list[str] | None = Field(None, alias="qinq_role__ie")
    qinq_role_iew: list[str] | None = Field(None, alias="qinq_role__iew")
    qinq_role_isw: list[str] | None = Field(None, alias="qinq_role__isw")
    qinq_role_n: list[str] | None = Field(None, alias="qinq_role__n")
    qinq_role_nic: list[str] | None = Field(None, alias="qinq_role__nic")
    qinq_role_nie: list[str] | None = Field(None, alias="qinq_role__nie")
    qinq_role_niew: list[str] | None = Field(None, alias="qinq_role__niew")
    qinq_role_nisw: list[str] | None = Field(None, alias="qinq_role__nisw")
    qinq_svlan_id: list[int] | None = None
    qinq_svlan_id_n: list[int] | None = Field(None, alias="qinq_svlan_id__n")
    qinq_svlan_vid: list[int] | None = None
    qinq_svlan_vid_empty: list[int] | None = Field(None, alias="qinq_svlan_vid__empty")
    qinq_svlan_vid_gt: list[int] | None = Field(None, alias="qinq_svlan_vid__gt")
    qinq_svlan_vid_gte: list[int] | None = Field(None, alias="qinq_svlan_vid__gte")
    qinq_svlan_vid_lt: list[int] | None = Field(None, alias="qinq_svlan_vid__lt")
    qinq_svlan_vid_lte: list[int] | None = Field(None, alias="qinq_svlan_vid__lte")
    qinq_svlan_vid_n: list[int] | None = Field(None, alias="qinq_svlan_vid__n")
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    role: list[str] | None = None
    role_n: list[str] | None = Field(None, alias="role__n")
    role_id: list[int] | None = None
    role_id_n: list[int] | None = Field(None, alias="role_id__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None
    vid: list[int] | None = None
    vid_empty: bool | None = Field(None, alias="vid__empty")
    vid_gt: list[int] | None = Field(None, alias="vid__gt")
    vid_gte: list[int] | None = Field(None, alias="vid__gte")
    vid_lt: list[int] | None = Field(None, alias="vid__lt")
    vid_lte: list[int] | None = Field(None, alias="vid__lte")
    vid_n: list[int] | None = Field(None, alias="vid__n")
    vminterface_id: str | None = None


class IpamVrfsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    enforce_unique: bool | None = None
    export_target: list[str] | None = None
    export_target_n: list[str] | None = Field(None, alias="export_target__n")
    export_target_id: list[int] | None = None
    export_target_id_n: list[int] | None = Field(None, alias="export_target_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    import_target: list[str] | None = None
    import_target_n: list[str] | None = Field(None, alias="import_target__n")
    import_target_id: list[int] | None = None
    import_target_id_n: list[int] | None = Field(None, alias="import_target_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    rd: list[str] | None = None
    rd_empty: bool | None = Field(None, alias="rd__empty")
    rd_ic: list[str] | None = Field(None, alias="rd__ic")
    rd_ie: list[str] | None = Field(None, alias="rd__ie")
    rd_iew: list[str] | None = Field(None, alias="rd__iew")
    rd_isw: list[str] | None = Field(None, alias="rd__isw")
    rd_n: list[str] | None = Field(None, alias="rd__n")
    rd_nic: list[str] | None = Field(None, alias="rd__nic")
    rd_nie: list[str] | None = Field(None, alias="rd__nie")
    rd_niew: list[str] | None = Field(None, alias="rd__niew")
    rd_nisw: list[str] | None = Field(None, alias="rd__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class TenancyContactAssignmentsRootGetQuery(BaseModel):
    contact_id: list[int] | None = None
    contact_id_n: list[int] | None = Field(None, alias="contact_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[str] | None = None
    group_id_n: list[str] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    object_id: list[int] | None = None
    object_id_empty: bool | None = Field(None, alias="object_id__empty")
    object_id_gt: list[int] | None = Field(None, alias="object_id__gt")
    object_id_gte: list[int] | None = Field(None, alias="object_id__gte")
    object_id_lt: list[int] | None = Field(None, alias="object_id__lt")
    object_id_lte: list[int] | None = Field(None, alias="object_id__lte")
    object_id_n: list[int] | None = Field(None, alias="object_id__n")
    object_type: str | None = None
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_id: int | None = None
    object_type_id_n: int | None = Field(None, alias="object_type_id__n")
    offset: int | None = None
    ordering: str | None = None
    priority: Literal["inactive", "primary", "secondary", "tertiary"] | None = None
    q: str | None = None
    role: list[str] | None = None
    role_n: list[str] | None = Field(None, alias="role__n")
    role_id: list[int] | None = None
    role_id_n: list[int] | None = Field(None, alias="role_id__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class TenancyContactGroupsRootGetQuery(BaseModel):
    ancestor: list[str] | None = None
    ancestor_n: list[str] | None = Field(None, alias="ancestor__n")
    ancestor_id: list[str] | None = None
    ancestor_id_n: list[str] | None = Field(None, alias="ancestor_id__n")
    contact_id: list[int] | None = None
    contact_id_n: list[int] | None = Field(None, alias="contact_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent: list[str] | None = None
    parent_n: list[str] | None = Field(None, alias="parent__n")
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class TenancyContactRolesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class TenancyContactsRootGetQuery(BaseModel):
    address: list[str] | None = None
    address_empty: bool | None = Field(None, alias="address__empty")
    address_ic: list[str] | None = Field(None, alias="address__ic")
    address_ie: list[str] | None = Field(None, alias="address__ie")
    address_iew: list[str] | None = Field(None, alias="address__iew")
    address_isw: list[str] | None = Field(None, alias="address__isw")
    address_n: list[str] | None = Field(None, alias="address__n")
    address_nic: list[str] | None = Field(None, alias="address__nic")
    address_nie: list[str] | None = Field(None, alias="address__nie")
    address_niew: list[str] | None = Field(None, alias="address__niew")
    address_nisw: list[str] | None = Field(None, alias="address__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    email: list[str] | None = None
    email_empty: bool | None = Field(None, alias="email__empty")
    email_ic: list[str] | None = Field(None, alias="email__ic")
    email_ie: list[str] | None = Field(None, alias="email__ie")
    email_iew: list[str] | None = Field(None, alias="email__iew")
    email_isw: list[str] | None = Field(None, alias="email__isw")
    email_n: list[str] | None = Field(None, alias="email__n")
    email_nic: list[str] | None = Field(None, alias="email__nic")
    email_nie: list[str] | None = Field(None, alias="email__nie")
    email_niew: list[str] | None = Field(None, alias="email__niew")
    email_nisw: list[str] | None = Field(None, alias="email__nisw")
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[str] | None = None
    group_id_n: list[str] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    link: list[str] | None = None
    link_empty: bool | None = Field(None, alias="link__empty")
    link_ic: list[str] | None = Field(None, alias="link__ic")
    link_ie: list[str] | None = Field(None, alias="link__ie")
    link_iew: list[str] | None = Field(None, alias="link__iew")
    link_isw: list[str] | None = Field(None, alias="link__isw")
    link_n: list[str] | None = Field(None, alias="link__n")
    link_nic: list[str] | None = Field(None, alias="link__nic")
    link_nie: list[str] | None = Field(None, alias="link__nie")
    link_niew: list[str] | None = Field(None, alias="link__niew")
    link_nisw: list[str] | None = Field(None, alias="link__nisw")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    phone: list[str] | None = None
    phone_empty: bool | None = Field(None, alias="phone__empty")
    phone_ic: list[str] | None = Field(None, alias="phone__ic")
    phone_ie: list[str] | None = Field(None, alias="phone__ie")
    phone_iew: list[str] | None = Field(None, alias="phone__iew")
    phone_isw: list[str] | None = Field(None, alias="phone__isw")
    phone_n: list[str] | None = Field(None, alias="phone__n")
    phone_nic: list[str] | None = Field(None, alias="phone__nic")
    phone_nie: list[str] | None = Field(None, alias="phone__nie")
    phone_niew: list[str] | None = Field(None, alias="phone__niew")
    phone_nisw: list[str] | None = Field(None, alias="phone__nisw")
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    title: list[str] | None = None
    title_empty: bool | None = Field(None, alias="title__empty")
    title_ic: list[str] | None = Field(None, alias="title__ic")
    title_ie: list[str] | None = Field(None, alias="title__ie")
    title_iew: list[str] | None = Field(None, alias="title__iew")
    title_isw: list[str] | None = Field(None, alias="title__isw")
    title_n: list[str] | None = Field(None, alias="title__n")
    title_nic: list[str] | None = Field(None, alias="title__nic")
    title_nie: list[str] | None = Field(None, alias="title__nie")
    title_niew: list[str] | None = Field(None, alias="title__niew")
    title_nisw: list[str] | None = Field(None, alias="title__nisw")
    updated_by_request: str | None = None


class TenancyTenantGroupsRootGetQuery(BaseModel):
    ancestor: list[str] | None = None
    ancestor_n: list[str] | None = Field(None, alias="ancestor__n")
    ancestor_id: list[str] | None = None
    ancestor_id_n: list[str] | None = Field(None, alias="ancestor_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent: list[str] | None = None
    parent_n: list[str] | None = Field(None, alias="parent__n")
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class TenancyTenantsRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[str] | None = None
    group_id_n: list[str] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class UsersGroupsRootGetQuery(BaseModel):
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    limit: int | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    notification_group_id: list[int] | None = None
    notification_group_id_n: list[int] | None = Field(None, alias="notification_group_id__n")
    offset: int | None = None
    ordering: str | None = None
    permission_id: list[int] | None = None
    permission_id_n: list[int] | None = Field(None, alias="permission_id__n")
    q: str | None = None
    user_id: list[int] | None = None
    user_id_n: list[int] | None = Field(None, alias="user_id__n")


class UsersPermissionsRootGetQuery(BaseModel):
    can_add: bool | None = None
    can_change: bool | None = None
    can_delete: bool | None = None
    can_view: bool | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    enabled: bool | None = None
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[int] | None = None
    group_id_n: list[int] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    limit: int | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    object_type: str | None = None
    object_type_ic: str | None = Field(None, alias="object_type__ic")
    object_type_ie: str | None = Field(None, alias="object_type__ie")
    object_type_iew: str | None = Field(None, alias="object_type__iew")
    object_type_isw: str | None = Field(None, alias="object_type__isw")
    object_type_n: str | None = Field(None, alias="object_type__n")
    object_type_nic: str | None = Field(None, alias="object_type__nic")
    object_type_nie: str | None = Field(None, alias="object_type__nie")
    object_type_niew: str | None = Field(None, alias="object_type__niew")
    object_type_nisw: str | None = Field(None, alias="object_type__nisw")
    object_type_id: list[int] | None = None
    object_type_id_n: list[int] | None = Field(None, alias="object_type_id__n")
    object_types: list[int] | None = None
    object_types_n: list[int] | None = Field(None, alias="object_types__n")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    user: list[str] | None = None
    user_n: list[str] | None = Field(None, alias="user__n")
    user_id: list[int] | None = None
    user_id_n: list[int] | None = Field(None, alias="user_id__n")


class UsersTokensRootGetQuery(BaseModel):
    created: str | None = None
    created_gte: str | None = Field(None, alias="created__gte")
    created_lte: str | None = Field(None, alias="created__lte")
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    expires: str | None = None
    expires_gte: str | None = Field(None, alias="expires__gte")
    expires_lte: str | None = Field(None, alias="expires__lte")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    key: list[str] | None = None
    key_empty: bool | None = Field(None, alias="key__empty")
    key_ic: list[str] | None = Field(None, alias="key__ic")
    key_ie: list[str] | None = Field(None, alias="key__ie")
    key_iew: list[str] | None = Field(None, alias="key__iew")
    key_isw: list[str] | None = Field(None, alias="key__isw")
    key_n: list[str] | None = Field(None, alias="key__n")
    key_nic: list[str] | None = Field(None, alias="key__nic")
    key_nie: list[str] | None = Field(None, alias="key__nie")
    key_niew: list[str] | None = Field(None, alias="key__niew")
    key_nisw: list[str] | None = Field(None, alias="key__nisw")
    last_used: list[str] | None = None
    last_used_empty: bool | None = Field(None, alias="last_used__empty")
    last_used_gt: list[str] | None = Field(None, alias="last_used__gt")
    last_used_gte: list[str] | None = Field(None, alias="last_used__gte")
    last_used_lt: list[str] | None = Field(None, alias="last_used__lt")
    last_used_lte: list[str] | None = Field(None, alias="last_used__lte")
    last_used_n: list[str] | None = Field(None, alias="last_used__n")
    limit: int | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    user: list[str] | None = None
    user_n: list[str] | None = Field(None, alias="user__n")
    user_id: list[int] | None = None
    user_id_n: list[int] | None = Field(None, alias="user_id__n")
    write_enabled: bool | None = None


class UsersUsersRootGetQuery(BaseModel):
    date_joined: list[str] | None = None
    date_joined_empty: bool | None = Field(None, alias="date_joined__empty")
    date_joined_gt: list[str] | None = Field(None, alias="date_joined__gt")
    date_joined_gte: list[str] | None = Field(None, alias="date_joined__gte")
    date_joined_lt: list[str] | None = Field(None, alias="date_joined__lt")
    date_joined_lte: list[str] | None = Field(None, alias="date_joined__lte")
    date_joined_n: list[str] | None = Field(None, alias="date_joined__n")
    email: list[str] | None = None
    email_empty: bool | None = Field(None, alias="email__empty")
    email_ic: list[str] | None = Field(None, alias="email__ic")
    email_ie: list[str] | None = Field(None, alias="email__ie")
    email_iew: list[str] | None = Field(None, alias="email__iew")
    email_isw: list[str] | None = Field(None, alias="email__isw")
    email_n: list[str] | None = Field(None, alias="email__n")
    email_nic: list[str] | None = Field(None, alias="email__nic")
    email_nie: list[str] | None = Field(None, alias="email__nie")
    email_niew: list[str] | None = Field(None, alias="email__niew")
    email_nisw: list[str] | None = Field(None, alias="email__nisw")
    first_name: list[str] | None = None
    first_name_empty: bool | None = Field(None, alias="first_name__empty")
    first_name_ic: list[str] | None = Field(None, alias="first_name__ic")
    first_name_ie: list[str] | None = Field(None, alias="first_name__ie")
    first_name_iew: list[str] | None = Field(None, alias="first_name__iew")
    first_name_isw: list[str] | None = Field(None, alias="first_name__isw")
    first_name_n: list[str] | None = Field(None, alias="first_name__n")
    first_name_nic: list[str] | None = Field(None, alias="first_name__nic")
    first_name_nie: list[str] | None = Field(None, alias="first_name__nie")
    first_name_niew: list[str] | None = Field(None, alias="first_name__niew")
    first_name_nisw: list[str] | None = Field(None, alias="first_name__nisw")
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[int] | None = None
    group_id_n: list[int] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    is_active: bool | None = None
    is_staff: bool | None = None
    is_superuser: bool | None = None
    last_login: list[str] | None = None
    last_login_empty: bool | None = Field(None, alias="last_login__empty")
    last_login_gt: list[str] | None = Field(None, alias="last_login__gt")
    last_login_gte: list[str] | None = Field(None, alias="last_login__gte")
    last_login_lt: list[str] | None = Field(None, alias="last_login__lt")
    last_login_lte: list[str] | None = Field(None, alias="last_login__lte")
    last_login_n: list[str] | None = Field(None, alias="last_login__n")
    last_name: list[str] | None = None
    last_name_empty: bool | None = Field(None, alias="last_name__empty")
    last_name_ic: list[str] | None = Field(None, alias="last_name__ic")
    last_name_ie: list[str] | None = Field(None, alias="last_name__ie")
    last_name_iew: list[str] | None = Field(None, alias="last_name__iew")
    last_name_isw: list[str] | None = Field(None, alias="last_name__isw")
    last_name_n: list[str] | None = Field(None, alias="last_name__n")
    last_name_nic: list[str] | None = Field(None, alias="last_name__nic")
    last_name_nie: list[str] | None = Field(None, alias="last_name__nie")
    last_name_niew: list[str] | None = Field(None, alias="last_name__niew")
    last_name_nisw: list[str] | None = Field(None, alias="last_name__nisw")
    limit: int | None = None
    notification_group_id: list[int] | None = None
    notification_group_id_n: list[int] | None = Field(None, alias="notification_group_id__n")
    offset: int | None = None
    ordering: str | None = None
    permission_id: list[int] | None = None
    permission_id_n: list[int] | None = Field(None, alias="permission_id__n")
    q: str | None = None
    username: list[str] | None = None
    username_empty: bool | None = Field(None, alias="username__empty")
    username_ic: list[str] | None = Field(None, alias="username__ic")
    username_ie: list[str] | None = Field(None, alias="username__ie")
    username_iew: list[str] | None = Field(None, alias="username__iew")
    username_isw: list[str] | None = Field(None, alias="username__isw")
    username_n: list[str] | None = Field(None, alias="username__n")
    username_nic: list[str] | None = Field(None, alias="username__nic")
    username_nie: list[str] | None = Field(None, alias="username__nie")
    username_niew: list[str] | None = Field(None, alias="username__niew")
    username_nisw: list[str] | None = Field(None, alias="username__nisw")


class VirtualizationClusterGroupsRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class VirtualizationClusterTypesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class VirtualizationClustersRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[int] | None = None
    group_id_n: list[int] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[str] | None = None
    location_id_n: list[str] | None = Field(None, alias="location_id__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    scope_id: list[int] | None = None
    scope_id_empty: bool | None = Field(None, alias="scope_id__empty")
    scope_id_gt: list[int] | None = Field(None, alias="scope_id__gt")
    scope_id_gte: list[int] | None = Field(None, alias="scope_id__gte")
    scope_id_lt: list[int] | None = Field(None, alias="scope_id__lt")
    scope_id_lte: list[int] | None = Field(None, alias="scope_id__lte")
    scope_id_n: list[int] | None = Field(None, alias="scope_id__n")
    scope_type: str | None = None
    scope_type_n: str | None = Field(None, alias="scope_type__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    type: list[str] | None = None
    type_n: list[str] | None = Field(None, alias="type__n")
    type_id: list[int] | None = None
    type_id_n: list[int] | None = Field(None, alias="type_id__n")
    updated_by_request: str | None = None


class VirtualizationInterfacesRootGetQuery(BaseModel):
    bridge_id: list[int] | None = None
    bridge_id_n: list[int] | None = Field(None, alias="bridge_id__n")
    cluster: list[str] | None = None
    cluster_n: list[str] | None = Field(None, alias="cluster__n")
    cluster_id: list[int] | None = None
    cluster_id_n: list[int] | None = Field(None, alias="cluster_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    enabled: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    l2vpn: list[int] | None = None
    l2vpn_n: list[int] | None = Field(None, alias="l2vpn__n")
    l2vpn_id: list[int] | None = None
    l2vpn_id_n: list[int] | None = Field(None, alias="l2vpn_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mac_address: list[str] | None = None
    mac_address_ic: list[str] | None = Field(None, alias="mac_address__ic")
    mac_address_ie: list[str] | None = Field(None, alias="mac_address__ie")
    mac_address_iew: list[str] | None = Field(None, alias="mac_address__iew")
    mac_address_isw: list[str] | None = Field(None, alias="mac_address__isw")
    mac_address_n: list[str] | None = Field(None, alias="mac_address__n")
    mac_address_nic: list[str] | None = Field(None, alias="mac_address__nic")
    mac_address_nie: list[str] | None = Field(None, alias="mac_address__nie")
    mac_address_niew: list[str] | None = Field(None, alias="mac_address__niew")
    mac_address_nisw: list[str] | None = Field(None, alias="mac_address__nisw")
    mode: list[str] | None = None
    mode_empty: bool | None = Field(None, alias="mode__empty")
    mode_ic: list[str] | None = Field(None, alias="mode__ic")
    mode_ie: list[str] | None = Field(None, alias="mode__ie")
    mode_iew: list[str] | None = Field(None, alias="mode__iew")
    mode_isw: list[str] | None = Field(None, alias="mode__isw")
    mode_n: list[str] | None = Field(None, alias="mode__n")
    mode_nic: list[str] | None = Field(None, alias="mode__nic")
    mode_nie: list[str] | None = Field(None, alias="mode__nie")
    mode_niew: list[str] | None = Field(None, alias="mode__niew")
    mode_nisw: list[str] | None = Field(None, alias="mode__nisw")
    modified_by_request: str | None = None
    mtu: list[int] | None = None
    mtu_empty: bool | None = Field(None, alias="mtu__empty")
    mtu_gt: list[int] | None = Field(None, alias="mtu__gt")
    mtu_gte: list[int] | None = Field(None, alias="mtu__gte")
    mtu_lt: list[int] | None = Field(None, alias="mtu__lt")
    mtu_lte: list[int] | None = Field(None, alias="mtu__lte")
    mtu_n: list[int] | None = Field(None, alias="mtu__n")
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    primary_mac_address: list[str] | None = None
    primary_mac_address_n: list[str] | None = Field(None, alias="primary_mac_address__n")
    primary_mac_address_id: list[int] | None = None
    primary_mac_address_id_n: list[int] | None = Field(None, alias="primary_mac_address_id__n")
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_machine: list[str] | None = None
    virtual_machine_n: list[str] | None = Field(None, alias="virtual_machine__n")
    virtual_machine_id: list[int] | None = None
    virtual_machine_id_n: list[int] | None = Field(None, alias="virtual_machine_id__n")
    vlan: str | None = None
    vlan_id: str | None = None
    vlan_translation_policy: list[str] | None = None
    vlan_translation_policy_n: list[str] | None = Field(None, alias="vlan_translation_policy__n")
    vlan_translation_policy_id: list[int] | None = None
    vlan_translation_policy_id_n: list[int] | None = Field(
        None, alias="vlan_translation_policy_id__n"
    )
    vrf: list[str] | None = None
    vrf_n: list[str] | None = Field(None, alias="vrf__n")
    vrf_id: list[int] | None = None
    vrf_id_n: list[int] | None = Field(None, alias="vrf_id__n")


class VirtualizationVirtualDisksRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    size: list[int] | None = None
    size_empty: bool | None = Field(None, alias="size__empty")
    size_gt: list[int] | None = Field(None, alias="size__gt")
    size_gte: list[int] | None = Field(None, alias="size__gte")
    size_lt: list[int] | None = Field(None, alias="size__lt")
    size_lte: list[int] | None = Field(None, alias="size__lte")
    size_n: list[int] | None = Field(None, alias="size__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_machine: list[str] | None = None
    virtual_machine_n: list[str] | None = Field(None, alias="virtual_machine__n")
    virtual_machine_id: list[int] | None = None
    virtual_machine_id_n: list[int] | None = Field(None, alias="virtual_machine_id__n")


class VirtualizationVirtualMachinesRenderConfigPostQuery(BaseModel):
    format: Literal["json", "txt"] | None = None


class VirtualizationVirtualMachinesRootGetQuery(BaseModel):
    cluster: list[str] | None = None
    cluster_n: list[str] | None = Field(None, alias="cluster__n")
    cluster_group: list[str] | None = None
    cluster_group_n: list[str] | None = Field(None, alias="cluster_group__n")
    cluster_group_id: list[int] | None = None
    cluster_group_id_n: list[int] | None = Field(None, alias="cluster_group_id__n")
    cluster_id: list[int] | None = None
    cluster_id_n: list[int] | None = Field(None, alias="cluster_id__n")
    cluster_type: list[str] | None = None
    cluster_type_n: list[str] | None = Field(None, alias="cluster_type__n")
    cluster_type_id: list[int] | None = None
    cluster_type_id_n: list[int] | None = Field(None, alias="cluster_type_id__n")
    config_template_id: list[int] | None = None
    config_template_id_n: list[int] | None = Field(None, alias="config_template_id__n")
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    disk: list[int] | None = None
    disk_empty: bool | None = Field(None, alias="disk__empty")
    disk_gt: list[int] | None = Field(None, alias="disk__gt")
    disk_gte: list[int] | None = Field(None, alias="disk__gte")
    disk_lt: list[int] | None = Field(None, alias="disk__lt")
    disk_lte: list[int] | None = Field(None, alias="disk__lte")
    disk_n: list[int] | None = Field(None, alias="disk__n")
    has_primary_ip: bool | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface_count: list[int] | None = None
    interface_count_empty: bool | None = Field(None, alias="interface_count__empty")
    interface_count_gt: list[int] | None = Field(None, alias="interface_count__gt")
    interface_count_gte: list[int] | None = Field(None, alias="interface_count__gte")
    interface_count_lt: list[int] | None = Field(None, alias="interface_count__lt")
    interface_count_lte: list[int] | None = Field(None, alias="interface_count__lte")
    interface_count_n: list[int] | None = Field(None, alias="interface_count__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    local_context_data: bool | None = None
    mac_address: list[str] | None = None
    mac_address_ic: list[str] | None = Field(None, alias="mac_address__ic")
    mac_address_ie: list[str] | None = Field(None, alias="mac_address__ie")
    mac_address_iew: list[str] | None = Field(None, alias="mac_address__iew")
    mac_address_isw: list[str] | None = Field(None, alias="mac_address__isw")
    mac_address_n: list[str] | None = Field(None, alias="mac_address__n")
    mac_address_nic: list[str] | None = Field(None, alias="mac_address__nic")
    mac_address_nie: list[str] | None = Field(None, alias="mac_address__nie")
    mac_address_niew: list[str] | None = Field(None, alias="mac_address__niew")
    mac_address_nisw: list[str] | None = Field(None, alias="mac_address__nisw")
    memory: list[int] | None = None
    memory_empty: bool | None = Field(None, alias="memory__empty")
    memory_gt: list[int] | None = Field(None, alias="memory__gt")
    memory_gte: list[int] | None = Field(None, alias="memory__gte")
    memory_lt: list[int] | None = Field(None, alias="memory__lt")
    memory_lte: list[int] | None = Field(None, alias="memory__lte")
    memory_n: list[int] | None = Field(None, alias="memory__n")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    platform: list[str] | None = None
    platform_n: list[str] | None = Field(None, alias="platform__n")
    platform_id: list[int] | None = None
    platform_id_n: list[int] | None = Field(None, alias="platform_id__n")
    primary_ip4: list[str] | None = None
    primary_ip4_n: list[str] | None = Field(None, alias="primary_ip4__n")
    primary_ip4_id: list[int] | None = None
    primary_ip4_id_n: list[int] | None = Field(None, alias="primary_ip4_id__n")
    primary_ip6: list[str] | None = None
    primary_ip6_n: list[str] | None = Field(None, alias="primary_ip6__n")
    primary_ip6_id: list[int] | None = None
    primary_ip6_id_n: list[int] | None = Field(None, alias="primary_ip6_id__n")
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    role: list[str] | None = None
    role_n: list[str] | None = Field(None, alias="role__n")
    role_id: list[str] | None = None
    role_id_n: list[str] | None = Field(None, alias="role_id__n")
    serial: list[str] | None = None
    serial_empty: bool | None = Field(None, alias="serial__empty")
    serial_ic: list[str] | None = Field(None, alias="serial__ic")
    serial_ie: list[str] | None = Field(None, alias="serial__ie")
    serial_iew: list[str] | None = Field(None, alias="serial__iew")
    serial_isw: list[str] | None = Field(None, alias="serial__isw")
    serial_n: list[str] | None = Field(None, alias="serial__n")
    serial_nic: list[str] | None = Field(None, alias="serial__nic")
    serial_nie: list[str] | None = Field(None, alias="serial__nie")
    serial_niew: list[str] | None = Field(None, alias="serial__niew")
    serial_nisw: list[str] | None = Field(None, alias="serial__nisw")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None
    vcpus: list[float] | None = None
    vcpus_empty: bool | None = Field(None, alias="vcpus__empty")
    vcpus_gt: list[float] | None = Field(None, alias="vcpus__gt")
    vcpus_gte: list[float] | None = Field(None, alias="vcpus__gte")
    vcpus_lt: list[float] | None = Field(None, alias="vcpus__lt")
    vcpus_lte: list[float] | None = Field(None, alias="vcpus__lte")
    vcpus_n: list[float] | None = Field(None, alias="vcpus__n")
    virtual_disk_count: list[int] | None = None
    virtual_disk_count_empty: bool | None = Field(None, alias="virtual_disk_count__empty")
    virtual_disk_count_gt: list[int] | None = Field(None, alias="virtual_disk_count__gt")
    virtual_disk_count_gte: list[int] | None = Field(None, alias="virtual_disk_count__gte")
    virtual_disk_count_lt: list[int] | None = Field(None, alias="virtual_disk_count__lt")
    virtual_disk_count_lte: list[int] | None = Field(None, alias="virtual_disk_count__lte")
    virtual_disk_count_n: list[int] | None = Field(None, alias="virtual_disk_count__n")


class VpnIkePoliciesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    ike_proposal: list[str] | None = None
    ike_proposal_n: list[str] | None = Field(None, alias="ike_proposal__n")
    ike_proposal_id: list[int] | None = None
    ike_proposal_id_n: list[int] | None = Field(None, alias="ike_proposal_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mode: list[str] | None = None
    mode_empty: bool | None = Field(None, alias="mode__empty")
    mode_ic: list[str] | None = Field(None, alias="mode__ic")
    mode_ie: list[str] | None = Field(None, alias="mode__ie")
    mode_iew: list[str] | None = Field(None, alias="mode__iew")
    mode_isw: list[str] | None = Field(None, alias="mode__isw")
    mode_n: list[str] | None = Field(None, alias="mode__n")
    mode_nic: list[str] | None = Field(None, alias="mode__nic")
    mode_nie: list[str] | None = Field(None, alias="mode__nie")
    mode_niew: list[str] | None = Field(None, alias="mode__niew")
    mode_nisw: list[str] | None = Field(None, alias="mode__nisw")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    preshared_key: str | None = None
    preshared_key_ic: str | None = Field(None, alias="preshared_key__ic")
    preshared_key_ie: str | None = Field(None, alias="preshared_key__ie")
    preshared_key_iew: str | None = Field(None, alias="preshared_key__iew")
    preshared_key_isw: str | None = Field(None, alias="preshared_key__isw")
    preshared_key_n: str | None = Field(None, alias="preshared_key__n")
    preshared_key_nic: str | None = Field(None, alias="preshared_key__nic")
    preshared_key_nie: str | None = Field(None, alias="preshared_key__nie")
    preshared_key_niew: str | None = Field(None, alias="preshared_key__niew")
    preshared_key_nisw: str | None = Field(None, alias="preshared_key__nisw")
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    version: list[int] | None = None
    version_ic: list[int] | None = Field(None, alias="version__ic")
    version_ie: list[int] | None = Field(None, alias="version__ie")
    version_iew: list[int] | None = Field(None, alias="version__iew")
    version_isw: list[int] | None = Field(None, alias="version__isw")
    version_n: list[int] | None = Field(None, alias="version__n")
    version_nic: list[int] | None = Field(None, alias="version__nic")
    version_nie: list[int] | None = Field(None, alias="version__nie")
    version_niew: list[int] | None = Field(None, alias="version__niew")
    version_nisw: list[int] | None = Field(None, alias="version__nisw")


class VpnIkeProposalsRootGetQuery(BaseModel):
    authentication_algorithm: list[str] | None = None
    authentication_algorithm_empty: bool | None = Field(
        None, alias="authentication_algorithm__empty"
    )
    authentication_algorithm_ic: list[str] | None = Field(
        None, alias="authentication_algorithm__ic"
    )
    authentication_algorithm_ie: list[str] | None = Field(
        None, alias="authentication_algorithm__ie"
    )
    authentication_algorithm_iew: list[str] | None = Field(
        None, alias="authentication_algorithm__iew"
    )
    authentication_algorithm_isw: list[str] | None = Field(
        None, alias="authentication_algorithm__isw"
    )
    authentication_algorithm_n: list[str] | None = Field(None, alias="authentication_algorithm__n")
    authentication_algorithm_nic: list[str] | None = Field(
        None, alias="authentication_algorithm__nic"
    )
    authentication_algorithm_nie: list[str] | None = Field(
        None, alias="authentication_algorithm__nie"
    )
    authentication_algorithm_niew: list[str] | None = Field(
        None, alias="authentication_algorithm__niew"
    )
    authentication_algorithm_nisw: list[str] | None = Field(
        None, alias="authentication_algorithm__nisw"
    )
    authentication_method: list[str] | None = None
    authentication_method_empty: bool | None = Field(None, alias="authentication_method__empty")
    authentication_method_ic: list[str] | None = Field(None, alias="authentication_method__ic")
    authentication_method_ie: list[str] | None = Field(None, alias="authentication_method__ie")
    authentication_method_iew: list[str] | None = Field(None, alias="authentication_method__iew")
    authentication_method_isw: list[str] | None = Field(None, alias="authentication_method__isw")
    authentication_method_n: list[str] | None = Field(None, alias="authentication_method__n")
    authentication_method_nic: list[str] | None = Field(None, alias="authentication_method__nic")
    authentication_method_nie: list[str] | None = Field(None, alias="authentication_method__nie")
    authentication_method_niew: list[str] | None = Field(None, alias="authentication_method__niew")
    authentication_method_nisw: list[str] | None = Field(None, alias="authentication_method__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    encryption_algorithm: list[str] | None = None
    encryption_algorithm_empty: bool | None = Field(None, alias="encryption_algorithm__empty")
    encryption_algorithm_ic: list[str] | None = Field(None, alias="encryption_algorithm__ic")
    encryption_algorithm_ie: list[str] | None = Field(None, alias="encryption_algorithm__ie")
    encryption_algorithm_iew: list[str] | None = Field(None, alias="encryption_algorithm__iew")
    encryption_algorithm_isw: list[str] | None = Field(None, alias="encryption_algorithm__isw")
    encryption_algorithm_n: list[str] | None = Field(None, alias="encryption_algorithm__n")
    encryption_algorithm_nic: list[str] | None = Field(None, alias="encryption_algorithm__nic")
    encryption_algorithm_nie: list[str] | None = Field(None, alias="encryption_algorithm__nie")
    encryption_algorithm_niew: list[str] | None = Field(None, alias="encryption_algorithm__niew")
    encryption_algorithm_nisw: list[str] | None = Field(None, alias="encryption_algorithm__nisw")
    group: list[int] | None = None
    group_ic: list[int] | None = Field(None, alias="group__ic")
    group_ie: list[int] | None = Field(None, alias="group__ie")
    group_iew: list[int] | None = Field(None, alias="group__iew")
    group_isw: list[int] | None = Field(None, alias="group__isw")
    group_n: list[int] | None = Field(None, alias="group__n")
    group_nic: list[int] | None = Field(None, alias="group__nic")
    group_nie: list[int] | None = Field(None, alias="group__nie")
    group_niew: list[int] | None = Field(None, alias="group__niew")
    group_nisw: list[int] | None = Field(None, alias="group__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    ike_policy: list[str] | None = None
    ike_policy_n: list[str] | None = Field(None, alias="ike_policy__n")
    ike_policy_id: list[int] | None = None
    ike_policy_id_n: list[int] | None = Field(None, alias="ike_policy_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    sa_lifetime: list[int] | None = None
    sa_lifetime_empty: bool | None = Field(None, alias="sa_lifetime__empty")
    sa_lifetime_gt: list[int] | None = Field(None, alias="sa_lifetime__gt")
    sa_lifetime_gte: list[int] | None = Field(None, alias="sa_lifetime__gte")
    sa_lifetime_lt: list[int] | None = Field(None, alias="sa_lifetime__lt")
    sa_lifetime_lte: list[int] | None = Field(None, alias="sa_lifetime__lte")
    sa_lifetime_n: list[int] | None = Field(None, alias="sa_lifetime__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class VpnIpsecPoliciesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    ipsec_proposal: list[str] | None = None
    ipsec_proposal_n: list[str] | None = Field(None, alias="ipsec_proposal__n")
    ipsec_proposal_id: list[int] | None = None
    ipsec_proposal_id_n: list[int] | None = Field(None, alias="ipsec_proposal_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    pfs_group: list[int] | None = None
    pfs_group_ic: list[int] | None = Field(None, alias="pfs_group__ic")
    pfs_group_ie: list[int] | None = Field(None, alias="pfs_group__ie")
    pfs_group_iew: list[int] | None = Field(None, alias="pfs_group__iew")
    pfs_group_isw: list[int] | None = Field(None, alias="pfs_group__isw")
    pfs_group_n: list[int] | None = Field(None, alias="pfs_group__n")
    pfs_group_nic: list[int] | None = Field(None, alias="pfs_group__nic")
    pfs_group_nie: list[int] | None = Field(None, alias="pfs_group__nie")
    pfs_group_niew: list[int] | None = Field(None, alias="pfs_group__niew")
    pfs_group_nisw: list[int] | None = Field(None, alias="pfs_group__nisw")
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class VpnIpsecProfilesRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    ike_policy: list[str] | None = None
    ike_policy_n: list[str] | None = Field(None, alias="ike_policy__n")
    ike_policy_id: list[int] | None = None
    ike_policy_id_n: list[int] | None = Field(None, alias="ike_policy_id__n")
    ipsec_policy: list[str] | None = None
    ipsec_policy_n: list[str] | None = Field(None, alias="ipsec_policy__n")
    ipsec_policy_id: list[int] | None = None
    ipsec_policy_id_n: list[int] | None = Field(None, alias="ipsec_policy_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    mode: list[str] | None = None
    mode_empty: bool | None = Field(None, alias="mode__empty")
    mode_ic: list[str] | None = Field(None, alias="mode__ic")
    mode_ie: list[str] | None = Field(None, alias="mode__ie")
    mode_iew: list[str] | None = Field(None, alias="mode__iew")
    mode_isw: list[str] | None = Field(None, alias="mode__isw")
    mode_n: list[str] | None = Field(None, alias="mode__n")
    mode_nic: list[str] | None = Field(None, alias="mode__nic")
    mode_nie: list[str] | None = Field(None, alias="mode__nie")
    mode_niew: list[str] | None = Field(None, alias="mode__niew")
    mode_nisw: list[str] | None = Field(None, alias="mode__nisw")
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class VpnIpsecProposalsRootGetQuery(BaseModel):
    authentication_algorithm: list[str] | None = None
    authentication_algorithm_empty: bool | None = Field(
        None, alias="authentication_algorithm__empty"
    )
    authentication_algorithm_ic: list[str] | None = Field(
        None, alias="authentication_algorithm__ic"
    )
    authentication_algorithm_ie: list[str] | None = Field(
        None, alias="authentication_algorithm__ie"
    )
    authentication_algorithm_iew: list[str] | None = Field(
        None, alias="authentication_algorithm__iew"
    )
    authentication_algorithm_isw: list[str] | None = Field(
        None, alias="authentication_algorithm__isw"
    )
    authentication_algorithm_n: list[str] | None = Field(None, alias="authentication_algorithm__n")
    authentication_algorithm_nic: list[str] | None = Field(
        None, alias="authentication_algorithm__nic"
    )
    authentication_algorithm_nie: list[str] | None = Field(
        None, alias="authentication_algorithm__nie"
    )
    authentication_algorithm_niew: list[str] | None = Field(
        None, alias="authentication_algorithm__niew"
    )
    authentication_algorithm_nisw: list[str] | None = Field(
        None, alias="authentication_algorithm__nisw"
    )
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    encryption_algorithm: list[str] | None = None
    encryption_algorithm_empty: bool | None = Field(None, alias="encryption_algorithm__empty")
    encryption_algorithm_ic: list[str] | None = Field(None, alias="encryption_algorithm__ic")
    encryption_algorithm_ie: list[str] | None = Field(None, alias="encryption_algorithm__ie")
    encryption_algorithm_iew: list[str] | None = Field(None, alias="encryption_algorithm__iew")
    encryption_algorithm_isw: list[str] | None = Field(None, alias="encryption_algorithm__isw")
    encryption_algorithm_n: list[str] | None = Field(None, alias="encryption_algorithm__n")
    encryption_algorithm_nic: list[str] | None = Field(None, alias="encryption_algorithm__nic")
    encryption_algorithm_nie: list[str] | None = Field(None, alias="encryption_algorithm__nie")
    encryption_algorithm_niew: list[str] | None = Field(None, alias="encryption_algorithm__niew")
    encryption_algorithm_nisw: list[str] | None = Field(None, alias="encryption_algorithm__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    ipsec_policy: list[str] | None = None
    ipsec_policy_n: list[str] | None = Field(None, alias="ipsec_policy__n")
    ipsec_policy_id: list[int] | None = None
    ipsec_policy_id_n: list[int] | None = Field(None, alias="ipsec_policy_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    sa_lifetime_data: list[int] | None = None
    sa_lifetime_data_empty: bool | None = Field(None, alias="sa_lifetime_data__empty")
    sa_lifetime_data_gt: list[int] | None = Field(None, alias="sa_lifetime_data__gt")
    sa_lifetime_data_gte: list[int] | None = Field(None, alias="sa_lifetime_data__gte")
    sa_lifetime_data_lt: list[int] | None = Field(None, alias="sa_lifetime_data__lt")
    sa_lifetime_data_lte: list[int] | None = Field(None, alias="sa_lifetime_data__lte")
    sa_lifetime_data_n: list[int] | None = Field(None, alias="sa_lifetime_data__n")
    sa_lifetime_seconds: list[int] | None = None
    sa_lifetime_seconds_empty: bool | None = Field(None, alias="sa_lifetime_seconds__empty")
    sa_lifetime_seconds_gt: list[int] | None = Field(None, alias="sa_lifetime_seconds__gt")
    sa_lifetime_seconds_gte: list[int] | None = Field(None, alias="sa_lifetime_seconds__gte")
    sa_lifetime_seconds_lt: list[int] | None = Field(None, alias="sa_lifetime_seconds__lt")
    sa_lifetime_seconds_lte: list[int] | None = Field(None, alias="sa_lifetime_seconds__lte")
    sa_lifetime_seconds_n: list[int] | None = Field(None, alias="sa_lifetime_seconds__n")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class VpnL2vpnTerminationsRootGetQuery(BaseModel):
    assigned_object_id: list[int] | None = None
    assigned_object_id_empty: bool | None = Field(None, alias="assigned_object_id__empty")
    assigned_object_id_gt: list[int] | None = Field(None, alias="assigned_object_id__gt")
    assigned_object_id_gte: list[int] | None = Field(None, alias="assigned_object_id__gte")
    assigned_object_id_lt: list[int] | None = Field(None, alias="assigned_object_id__lt")
    assigned_object_id_lte: list[int] | None = Field(None, alias="assigned_object_id__lte")
    assigned_object_id_n: list[int] | None = Field(None, alias="assigned_object_id__n")
    assigned_object_type: str | None = None
    assigned_object_type_n: str | None = Field(None, alias="assigned_object_type__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    device: list[str] | None = None
    device_n: list[str] | None = Field(None, alias="device__n")
    device_id: list[int] | None = None
    device_id_n: list[int] | None = Field(None, alias="device_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface: list[str] | None = None
    interface_n: list[str] | None = Field(None, alias="interface__n")
    interface_id: list[int] | None = None
    interface_id_n: list[int] | None = Field(None, alias="interface_id__n")
    l2vpn: list[str] | None = None
    l2vpn_n: list[str] | None = Field(None, alias="l2vpn__n")
    l2vpn_id: list[int] | None = None
    l2vpn_id_n: list[int] | None = Field(None, alias="l2vpn_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    region: list[str] | None = None
    region_id: list[int] | None = None
    site: list[str] | None = None
    site_id: list[int] | None = None
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None
    virtual_machine: list[str] | None = None
    virtual_machine_n: list[str] | None = Field(None, alias="virtual_machine__n")
    virtual_machine_id: list[int] | None = None
    virtual_machine_id_n: list[int] | None = Field(None, alias="virtual_machine_id__n")
    vlan: list[str] | None = None
    vlan_n: list[str] | None = Field(None, alias="vlan__n")
    vlan_id: list[int] | None = None
    vlan_id_n: list[int] | None = Field(None, alias="vlan_id__n")
    vlan_vid: int | None = None
    vlan_vid_empty: int | None = Field(None, alias="vlan_vid__empty")
    vlan_vid_gt: int | None = Field(None, alias="vlan_vid__gt")
    vlan_vid_gte: int | None = Field(None, alias="vlan_vid__gte")
    vlan_vid_lt: int | None = Field(None, alias="vlan_vid__lt")
    vlan_vid_lte: int | None = Field(None, alias="vlan_vid__lte")
    vlan_vid_n: int | None = Field(None, alias="vlan_vid__n")
    vminterface: list[str] | None = None
    vminterface_n: list[str] | None = Field(None, alias="vminterface__n")
    vminterface_id: list[int] | None = None
    vminterface_id_n: list[int] | None = Field(None, alias="vminterface_id__n")


class VpnL2vpnsRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    export_target: list[str] | None = None
    export_target_n: list[str] | None = Field(None, alias="export_target__n")
    export_target_id: list[int] | None = None
    export_target_id_n: list[int] | None = Field(None, alias="export_target_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    identifier: list[int] | None = None
    identifier_empty: bool | None = Field(None, alias="identifier__empty")
    identifier_gt: list[int] | None = Field(None, alias="identifier__gt")
    identifier_gte: list[int] | None = Field(None, alias="identifier__gte")
    identifier_lt: list[int] | None = Field(None, alias="identifier__lt")
    identifier_lte: list[int] | None = Field(None, alias="identifier__lte")
    identifier_n: list[int] | None = Field(None, alias="identifier__n")
    import_target: list[str] | None = None
    import_target_n: list[str] | None = Field(None, alias="import_target__n")
    import_target_id: list[int] | None = None
    import_target_id_n: list[int] | None = Field(None, alias="import_target_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    type: list[str] | None = None
    type_empty: bool | None = Field(None, alias="type__empty")
    type_ic: list[str] | None = Field(None, alias="type__ic")
    type_ie: list[str] | None = Field(None, alias="type__ie")
    type_iew: list[str] | None = Field(None, alias="type__iew")
    type_isw: list[str] | None = Field(None, alias="type__isw")
    type_n: list[str] | None = Field(None, alias="type__n")
    type_nic: list[str] | None = Field(None, alias="type__nic")
    type_nie: list[str] | None = Field(None, alias="type__nie")
    type_niew: list[str] | None = Field(None, alias="type__niew")
    type_nisw: list[str] | None = Field(None, alias="type__nisw")
    updated_by_request: str | None = None


class VpnTunnelGroupsRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class VpnTunnelTerminationsRootGetQuery(BaseModel):
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface: list[str] | None = None
    interface_n: list[str] | None = Field(None, alias="interface__n")
    interface_id: list[int] | None = None
    interface_id_n: list[int] | None = Field(None, alias="interface_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    outside_ip_id: list[int] | None = None
    outside_ip_id_n: list[int] | None = Field(None, alias="outside_ip_id__n")
    q: str | None = None
    role: list[str] | None = None
    role_empty: bool | None = Field(None, alias="role__empty")
    role_ic: list[str] | None = Field(None, alias="role__ic")
    role_ie: list[str] | None = Field(None, alias="role__ie")
    role_iew: list[str] | None = Field(None, alias="role__iew")
    role_isw: list[str] | None = Field(None, alias="role__isw")
    role_n: list[str] | None = Field(None, alias="role__n")
    role_nic: list[str] | None = Field(None, alias="role__nic")
    role_nie: list[str] | None = Field(None, alias="role__nie")
    role_niew: list[str] | None = Field(None, alias="role__niew")
    role_nisw: list[str] | None = Field(None, alias="role__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    termination_id: list[int] | None = None
    termination_id_empty: bool | None = Field(None, alias="termination_id__empty")
    termination_id_gt: list[int] | None = Field(None, alias="termination_id__gt")
    termination_id_gte: list[int] | None = Field(None, alias="termination_id__gte")
    termination_id_lt: list[int] | None = Field(None, alias="termination_id__lt")
    termination_id_lte: list[int] | None = Field(None, alias="termination_id__lte")
    termination_id_n: list[int] | None = Field(None, alias="termination_id__n")
    termination_type: str | None = None
    termination_type_n: str | None = Field(None, alias="termination_type__n")
    tunnel: list[str] | None = None
    tunnel_n: list[str] | None = Field(None, alias="tunnel__n")
    tunnel_id: list[int] | None = None
    tunnel_id_n: list[int] | None = Field(None, alias="tunnel_id__n")
    updated_by_request: str | None = None
    vminterface: list[str] | None = None
    vminterface_n: list[str] | None = Field(None, alias="vminterface__n")
    vminterface_id: list[int] | None = None
    vminterface_id_n: list[int] | None = Field(None, alias="vminterface_id__n")


class VpnTunnelsRootGetQuery(BaseModel):
    contact: list[int] | None = None
    contact_n: list[int] | None = Field(None, alias="contact__n")
    contact_group: list[str] | None = None
    contact_group_n: list[str] | None = Field(None, alias="contact_group__n")
    contact_role: list[int] | None = None
    contact_role_n: list[int] | None = Field(None, alias="contact_role__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    encapsulation: list[str] | None = None
    encapsulation_empty: bool | None = Field(None, alias="encapsulation__empty")
    encapsulation_ic: list[str] | None = Field(None, alias="encapsulation__ic")
    encapsulation_ie: list[str] | None = Field(None, alias="encapsulation__ie")
    encapsulation_iew: list[str] | None = Field(None, alias="encapsulation__iew")
    encapsulation_isw: list[str] | None = Field(None, alias="encapsulation__isw")
    encapsulation_n: list[str] | None = Field(None, alias="encapsulation__n")
    encapsulation_nic: list[str] | None = Field(None, alias="encapsulation__nic")
    encapsulation_nie: list[str] | None = Field(None, alias="encapsulation__nie")
    encapsulation_niew: list[str] | None = Field(None, alias="encapsulation__niew")
    encapsulation_nisw: list[str] | None = Field(None, alias="encapsulation__nisw")
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[int] | None = None
    group_id_n: list[int] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    ipsec_profile: list[str] | None = None
    ipsec_profile_n: list[str] | None = Field(None, alias="ipsec_profile__n")
    ipsec_profile_id: list[int] | None = None
    ipsec_profile_id_n: list[int] | None = Field(None, alias="ipsec_profile_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    tunnel_id: list[int] | None = None
    tunnel_id_empty: bool | None = Field(None, alias="tunnel_id__empty")
    tunnel_id_gt: list[int] | None = Field(None, alias="tunnel_id__gt")
    tunnel_id_gte: list[int] | None = Field(None, alias="tunnel_id__gte")
    tunnel_id_lt: list[int] | None = Field(None, alias="tunnel_id__lt")
    tunnel_id_lte: list[int] | None = Field(None, alias="tunnel_id__lte")
    tunnel_id_n: list[int] | None = Field(None, alias="tunnel_id__n")
    updated_by_request: str | None = None


class WirelessWirelessLanGroupsRootGetQuery(BaseModel):
    ancestor: list[str] | None = None
    ancestor_n: list[str] | None = Field(None, alias="ancestor__n")
    ancestor_id: list[str] | None = None
    ancestor_id_n: list[str] | None = Field(None, alias="ancestor_id__n")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    name: list[str] | None = None
    name_empty: bool | None = Field(None, alias="name__empty")
    name_ic: list[str] | None = Field(None, alias="name__ic")
    name_ie: list[str] | None = Field(None, alias="name__ie")
    name_iew: list[str] | None = Field(None, alias="name__iew")
    name_isw: list[str] | None = Field(None, alias="name__isw")
    name_n: list[str] | None = Field(None, alias="name__n")
    name_nic: list[str] | None = Field(None, alias="name__nic")
    name_nie: list[str] | None = Field(None, alias="name__nie")
    name_niew: list[str] | None = Field(None, alias="name__niew")
    name_nisw: list[str] | None = Field(None, alias="name__nisw")
    offset: int | None = None
    ordering: str | None = None
    parent: list[str] | None = None
    parent_n: list[str] | None = Field(None, alias="parent__n")
    parent_id: list[int] | None = None
    parent_id_n: list[int] | None = Field(None, alias="parent_id__n")
    q: str | None = None
    slug: list[str] | None = None
    slug_empty: bool | None = Field(None, alias="slug__empty")
    slug_ic: list[str] | None = Field(None, alias="slug__ic")
    slug_ie: list[str] | None = Field(None, alias="slug__ie")
    slug_iew: list[str] | None = Field(None, alias="slug__iew")
    slug_isw: list[str] | None = Field(None, alias="slug__isw")
    slug_n: list[str] | None = Field(None, alias="slug__n")
    slug_nic: list[str] | None = Field(None, alias="slug__nic")
    slug_nie: list[str] | None = Field(None, alias="slug__nie")
    slug_niew: list[str] | None = Field(None, alias="slug__niew")
    slug_nisw: list[str] | None = Field(None, alias="slug__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    updated_by_request: str | None = None


class WirelessWirelessLansRootGetQuery(BaseModel):
    auth_cipher: list[str] | None = None
    auth_cipher_empty: bool | None = Field(None, alias="auth_cipher__empty")
    auth_cipher_ic: list[str] | None = Field(None, alias="auth_cipher__ic")
    auth_cipher_ie: list[str] | None = Field(None, alias="auth_cipher__ie")
    auth_cipher_iew: list[str] | None = Field(None, alias="auth_cipher__iew")
    auth_cipher_isw: list[str] | None = Field(None, alias="auth_cipher__isw")
    auth_cipher_n: list[str] | None = Field(None, alias="auth_cipher__n")
    auth_cipher_nic: list[str] | None = Field(None, alias="auth_cipher__nic")
    auth_cipher_nie: list[str] | None = Field(None, alias="auth_cipher__nie")
    auth_cipher_niew: list[str] | None = Field(None, alias="auth_cipher__niew")
    auth_cipher_nisw: list[str] | None = Field(None, alias="auth_cipher__nisw")
    auth_psk: list[str] | None = None
    auth_psk_empty: bool | None = Field(None, alias="auth_psk__empty")
    auth_psk_ic: list[str] | None = Field(None, alias="auth_psk__ic")
    auth_psk_ie: list[str] | None = Field(None, alias="auth_psk__ie")
    auth_psk_iew: list[str] | None = Field(None, alias="auth_psk__iew")
    auth_psk_isw: list[str] | None = Field(None, alias="auth_psk__isw")
    auth_psk_n: list[str] | None = Field(None, alias="auth_psk__n")
    auth_psk_nic: list[str] | None = Field(None, alias="auth_psk__nic")
    auth_psk_nie: list[str] | None = Field(None, alias="auth_psk__nie")
    auth_psk_niew: list[str] | None = Field(None, alias="auth_psk__niew")
    auth_psk_nisw: list[str] | None = Field(None, alias="auth_psk__nisw")
    auth_type: list[str] | None = None
    auth_type_empty: bool | None = Field(None, alias="auth_type__empty")
    auth_type_ic: list[str] | None = Field(None, alias="auth_type__ic")
    auth_type_ie: list[str] | None = Field(None, alias="auth_type__ie")
    auth_type_iew: list[str] | None = Field(None, alias="auth_type__iew")
    auth_type_isw: list[str] | None = Field(None, alias="auth_type__isw")
    auth_type_n: list[str] | None = Field(None, alias="auth_type__n")
    auth_type_nic: list[str] | None = Field(None, alias="auth_type__nic")
    auth_type_nie: list[str] | None = Field(None, alias="auth_type__nie")
    auth_type_niew: list[str] | None = Field(None, alias="auth_type__niew")
    auth_type_nisw: list[str] | None = Field(None, alias="auth_type__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    group: list[str] | None = None
    group_n: list[str] | None = Field(None, alias="group__n")
    group_id: list[str] | None = None
    group_id_n: list[str] | None = Field(None, alias="group_id__n")
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface_id: list[int] | None = None
    interface_id_n: list[int] | None = Field(None, alias="interface_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    location: list[str] | None = None
    location_n: list[str] | None = Field(None, alias="location__n")
    location_id: list[str] | None = None
    location_id_n: list[str] | None = Field(None, alias="location_id__n")
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    region: list[str] | None = None
    region_n: list[str] | None = Field(None, alias="region__n")
    region_id: list[str] | None = None
    region_id_n: list[str] | None = Field(None, alias="region_id__n")
    scope_id: list[int] | None = None
    scope_id_empty: bool | None = Field(None, alias="scope_id__empty")
    scope_id_gt: list[int] | None = Field(None, alias="scope_id__gt")
    scope_id_gte: list[int] | None = Field(None, alias="scope_id__gte")
    scope_id_lt: list[int] | None = Field(None, alias="scope_id__lt")
    scope_id_lte: list[int] | None = Field(None, alias="scope_id__lte")
    scope_id_n: list[int] | None = Field(None, alias="scope_id__n")
    scope_type: str | None = None
    scope_type_n: str | None = Field(None, alias="scope_type__n")
    site: list[str] | None = None
    site_n: list[str] | None = Field(None, alias="site__n")
    site_group: list[str] | None = None
    site_group_n: list[str] | None = Field(None, alias="site_group__n")
    site_group_id: list[str] | None = None
    site_group_id_n: list[str] | None = Field(None, alias="site_group_id__n")
    site_id: list[int] | None = None
    site_id_n: list[int] | None = Field(None, alias="site_id__n")
    ssid: list[str] | None = None
    ssid_empty: bool | None = Field(None, alias="ssid__empty")
    ssid_ic: list[str] | None = Field(None, alias="ssid__ic")
    ssid_ie: list[str] | None = Field(None, alias="ssid__ie")
    ssid_iew: list[str] | None = Field(None, alias="ssid__iew")
    ssid_isw: list[str] | None = Field(None, alias="ssid__isw")
    ssid_n: list[str] | None = Field(None, alias="ssid__n")
    ssid_nic: list[str] | None = Field(None, alias="ssid__nic")
    ssid_nie: list[str] | None = Field(None, alias="ssid__nie")
    ssid_niew: list[str] | None = Field(None, alias="ssid__niew")
    ssid_nisw: list[str] | None = Field(None, alias="ssid__nisw")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None
    vlan_id: list[int] | None = None
    vlan_id_n: list[int] | None = Field(None, alias="vlan_id__n")


class WirelessWirelessLinksRootGetQuery(BaseModel):
    auth_cipher: list[str] | None = None
    auth_cipher_empty: bool | None = Field(None, alias="auth_cipher__empty")
    auth_cipher_ic: list[str] | None = Field(None, alias="auth_cipher__ic")
    auth_cipher_ie: list[str] | None = Field(None, alias="auth_cipher__ie")
    auth_cipher_iew: list[str] | None = Field(None, alias="auth_cipher__iew")
    auth_cipher_isw: list[str] | None = Field(None, alias="auth_cipher__isw")
    auth_cipher_n: list[str] | None = Field(None, alias="auth_cipher__n")
    auth_cipher_nic: list[str] | None = Field(None, alias="auth_cipher__nic")
    auth_cipher_nie: list[str] | None = Field(None, alias="auth_cipher__nie")
    auth_cipher_niew: list[str] | None = Field(None, alias="auth_cipher__niew")
    auth_cipher_nisw: list[str] | None = Field(None, alias="auth_cipher__nisw")
    auth_psk: list[str] | None = None
    auth_psk_empty: bool | None = Field(None, alias="auth_psk__empty")
    auth_psk_ic: list[str] | None = Field(None, alias="auth_psk__ic")
    auth_psk_ie: list[str] | None = Field(None, alias="auth_psk__ie")
    auth_psk_iew: list[str] | None = Field(None, alias="auth_psk__iew")
    auth_psk_isw: list[str] | None = Field(None, alias="auth_psk__isw")
    auth_psk_n: list[str] | None = Field(None, alias="auth_psk__n")
    auth_psk_nic: list[str] | None = Field(None, alias="auth_psk__nic")
    auth_psk_nie: list[str] | None = Field(None, alias="auth_psk__nie")
    auth_psk_niew: list[str] | None = Field(None, alias="auth_psk__niew")
    auth_psk_nisw: list[str] | None = Field(None, alias="auth_psk__nisw")
    auth_type: list[str] | None = None
    auth_type_empty: bool | None = Field(None, alias="auth_type__empty")
    auth_type_ic: list[str] | None = Field(None, alias="auth_type__ic")
    auth_type_ie: list[str] | None = Field(None, alias="auth_type__ie")
    auth_type_iew: list[str] | None = Field(None, alias="auth_type__iew")
    auth_type_isw: list[str] | None = Field(None, alias="auth_type__isw")
    auth_type_n: list[str] | None = Field(None, alias="auth_type__n")
    auth_type_nic: list[str] | None = Field(None, alias="auth_type__nic")
    auth_type_nie: list[str] | None = Field(None, alias="auth_type__nie")
    auth_type_niew: list[str] | None = Field(None, alias="auth_type__niew")
    auth_type_nisw: list[str] | None = Field(None, alias="auth_type__nisw")
    created: list[str] | None = None
    created_empty: list[str] | None = Field(None, alias="created__empty")
    created_gt: list[str] | None = Field(None, alias="created__gt")
    created_gte: list[str] | None = Field(None, alias="created__gte")
    created_lt: list[str] | None = Field(None, alias="created__lt")
    created_lte: list[str] | None = Field(None, alias="created__lte")
    created_n: list[str] | None = Field(None, alias="created__n")
    created_by_request: str | None = None
    description: list[str] | None = None
    description_empty: bool | None = Field(None, alias="description__empty")
    description_ic: list[str] | None = Field(None, alias="description__ic")
    description_ie: list[str] | None = Field(None, alias="description__ie")
    description_iew: list[str] | None = Field(None, alias="description__iew")
    description_isw: list[str] | None = Field(None, alias="description__isw")
    description_n: list[str] | None = Field(None, alias="description__n")
    description_nic: list[str] | None = Field(None, alias="description__nic")
    description_nie: list[str] | None = Field(None, alias="description__nie")
    description_niew: list[str] | None = Field(None, alias="description__niew")
    description_nisw: list[str] | None = Field(None, alias="description__nisw")
    distance: list[float] | None = None
    distance_empty: bool | None = Field(None, alias="distance__empty")
    distance_gt: list[float] | None = Field(None, alias="distance__gt")
    distance_gte: list[float] | None = Field(None, alias="distance__gte")
    distance_lt: list[float] | None = Field(None, alias="distance__lt")
    distance_lte: list[float] | None = Field(None, alias="distance__lte")
    distance_n: list[float] | None = Field(None, alias="distance__n")
    distance_unit: Literal["ft", "km", "m", "mi"] | None = None
    id: list[int] | None = None
    id_empty: bool | None = Field(None, alias="id__empty")
    id_gt: list[int] | None = Field(None, alias="id__gt")
    id_gte: list[int] | None = Field(None, alias="id__gte")
    id_lt: list[int] | None = Field(None, alias="id__lt")
    id_lte: list[int] | None = Field(None, alias="id__lte")
    id_n: list[int] | None = Field(None, alias="id__n")
    interface_a_id: list[int] | None = None
    interface_a_id_n: list[int] | None = Field(None, alias="interface_a_id__n")
    interface_b_id: list[int] | None = None
    interface_b_id_n: list[int] | None = Field(None, alias="interface_b_id__n")
    last_updated: list[str] | None = None
    last_updated_empty: list[str] | None = Field(None, alias="last_updated__empty")
    last_updated_gt: list[str] | None = Field(None, alias="last_updated__gt")
    last_updated_gte: list[str] | None = Field(None, alias="last_updated__gte")
    last_updated_lt: list[str] | None = Field(None, alias="last_updated__lt")
    last_updated_lte: list[str] | None = Field(None, alias="last_updated__lte")
    last_updated_n: list[str] | None = Field(None, alias="last_updated__n")
    limit: int | None = None
    modified_by_request: str | None = None
    offset: int | None = None
    ordering: str | None = None
    q: str | None = None
    ssid: list[str] | None = None
    ssid_empty: bool | None = Field(None, alias="ssid__empty")
    ssid_ic: list[str] | None = Field(None, alias="ssid__ic")
    ssid_ie: list[str] | None = Field(None, alias="ssid__ie")
    ssid_iew: list[str] | None = Field(None, alias="ssid__iew")
    ssid_isw: list[str] | None = Field(None, alias="ssid__isw")
    ssid_n: list[str] | None = Field(None, alias="ssid__n")
    ssid_nic: list[str] | None = Field(None, alias="ssid__nic")
    ssid_nie: list[str] | None = Field(None, alias="ssid__nie")
    ssid_niew: list[str] | None = Field(None, alias="ssid__niew")
    ssid_nisw: list[str] | None = Field(None, alias="ssid__nisw")
    status: list[str] | None = None
    status_empty: bool | None = Field(None, alias="status__empty")
    status_ic: list[str] | None = Field(None, alias="status__ic")
    status_ie: list[str] | None = Field(None, alias="status__ie")
    status_iew: list[str] | None = Field(None, alias="status__iew")
    status_isw: list[str] | None = Field(None, alias="status__isw")
    status_n: list[str] | None = Field(None, alias="status__n")
    status_nic: list[str] | None = Field(None, alias="status__nic")
    status_nie: list[str] | None = Field(None, alias="status__nie")
    status_niew: list[str] | None = Field(None, alias="status__niew")
    status_nisw: list[str] | None = Field(None, alias="status__nisw")
    tag: list[str] | None = None
    tag_n: list[str] | None = Field(None, alias="tag__n")
    tag_id: list[int] | None = None
    tag_id_n: list[int] | None = Field(None, alias="tag_id__n")
    tenant: list[str] | None = None
    tenant_n: list[str] | None = Field(None, alias="tenant__n")
    tenant_group: list[str] | None = None
    tenant_group_n: list[str] | None = Field(None, alias="tenant_group__n")
    tenant_group_id: list[str] | None = None
    tenant_group_id_n: list[str] | None = Field(None, alias="tenant_group_id__n")
    tenant_id: list[int] | None = None
    tenant_id_n: list[int] | None = Field(None, alias="tenant_id__n")
    updated_by_request: str | None = None


class CircuitsCircuitGroupAssignmentsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CircuitsCircuitGroupAssignmentsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCircuitGroupAssignmentList:
        path = "/api/circuits/circuit-group-assignments/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsCircuitGroupAssignmentsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCircuitGroupAssignmentList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableCircuitGroupAssignmentRequest) -> CircuitGroupAssignment:
        path = "/api/circuits/circuit-group-assignments/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableCircuitGroupAssignmentRequest,
            body=body,
            response_model=CircuitGroupAssignment,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[CircuitGroupAssignmentRequest]
    ) -> list[CircuitGroupAssignment]:
        path = "/api/circuits/circuit-group-assignments/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitGroupAssignmentRequest],
            body=body,
            response_model=list[CircuitGroupAssignment],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[CircuitGroupAssignmentRequest]
    ) -> list[CircuitGroupAssignment]:
        path = "/api/circuits/circuit-group-assignments/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitGroupAssignmentRequest],
            body=body,
            response_model=list[CircuitGroupAssignment],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CircuitGroupAssignmentRequest]) -> None:
        path = "/api/circuits/circuit-group-assignments/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitGroupAssignmentRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> CircuitGroupAssignment | None:
        path = f"/api/circuits/circuit-group-assignments/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CircuitGroupAssignment,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableCircuitGroupAssignmentRequest
    ) -> CircuitGroupAssignment:
        path = f"/api/circuits/circuit-group-assignments/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableCircuitGroupAssignmentRequest,
            body=body,
            response_model=CircuitGroupAssignment,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableCircuitGroupAssignmentRequest
    ) -> CircuitGroupAssignment:
        path = f"/api/circuits/circuit-group-assignments/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableCircuitGroupAssignmentRequest,
            body=body,
            response_model=CircuitGroupAssignment,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/circuit-group-assignments/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsCircuitGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CircuitsCircuitGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCircuitGroupList:
        path = "/api/circuits/circuit-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsCircuitGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCircuitGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: CircuitGroupRequest) -> CircuitGroup:
        path = "/api/circuits/circuit-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=CircuitGroupRequest,
            body=body,
            response_model=CircuitGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[CircuitGroupRequest]) -> list[CircuitGroup]:
        path = "/api/circuits/circuit-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitGroupRequest],
            body=body,
            response_model=list[CircuitGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[CircuitGroupRequest]) -> list[CircuitGroup]:
        path = "/api/circuits/circuit-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitGroupRequest],
            body=body,
            response_model=list[CircuitGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CircuitGroupRequest]) -> None:
        path = "/api/circuits/circuit-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> CircuitGroup | None:
        path = f"/api/circuits/circuit-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CircuitGroup,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: CircuitGroupRequest) -> CircuitGroup:
        path = f"/api/circuits/circuit-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=CircuitGroupRequest,
            body=body,
            response_model=CircuitGroup,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedCircuitGroupRequest) -> CircuitGroup:
        path = f"/api/circuits/circuit-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedCircuitGroupRequest,
            body=body,
            response_model=CircuitGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/circuit-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsCircuitTerminationsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def paths(self) -> CircuitsCircuitTerminationsPaths:
        return CircuitsCircuitTerminationsPaths(self._api)

    async def list(
        self, query: CircuitsCircuitTerminationsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCircuitTerminationList:
        path = "/api/circuits/circuit-terminations/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsCircuitTerminationsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCircuitTerminationList,
            return_none_on_404=False,
        )

    async def create(self, body: CircuitTerminationRequest) -> CircuitTermination:
        path = "/api/circuits/circuit-terminations/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=CircuitTerminationRequest,
            body=body,
            response_model=CircuitTermination,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[CircuitTerminationRequest]) -> list[CircuitTermination]:
        path = "/api/circuits/circuit-terminations/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitTerminationRequest],
            body=body,
            response_model=list[CircuitTermination],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[CircuitTerminationRequest]
    ) -> list[CircuitTermination]:
        path = "/api/circuits/circuit-terminations/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitTerminationRequest],
            body=body,
            response_model=list[CircuitTermination],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CircuitTerminationRequest]) -> None:
        path = "/api/circuits/circuit-terminations/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitTerminationRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> CircuitTermination | None:
        path = f"/api/circuits/circuit-terminations/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CircuitTermination,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: CircuitTerminationRequest) -> CircuitTermination:
        path = f"/api/circuits/circuit-terminations/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=CircuitTerminationRequest,
            body=body,
            response_model=CircuitTermination,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedCircuitTerminationRequest
    ) -> CircuitTermination:
        path = f"/api/circuits/circuit-terminations/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedCircuitTerminationRequest,
            body=body,
            response_model=CircuitTermination,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/circuit-terminations/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsCircuitTerminationsPaths(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> CircuitTermination:
        path = f"/api/circuits/circuit-terminations/{id}/paths/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CircuitTermination,
            return_none_on_404=False,
        )


class CircuitsCircuitTypesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CircuitsCircuitTypesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCircuitTypeList:
        path = "/api/circuits/circuit-types/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsCircuitTypesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCircuitTypeList,
            return_none_on_404=False,
        )

    async def create(self, body: CircuitTypeRequest) -> CircuitType:
        path = "/api/circuits/circuit-types/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=CircuitTypeRequest,
            body=body,
            response_model=CircuitType,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[CircuitTypeRequest]) -> list[CircuitType]:
        path = "/api/circuits/circuit-types/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitTypeRequest],
            body=body,
            response_model=list[CircuitType],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[CircuitTypeRequest]) -> list[CircuitType]:
        path = "/api/circuits/circuit-types/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitTypeRequest],
            body=body,
            response_model=list[CircuitType],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CircuitTypeRequest]) -> None:
        path = "/api/circuits/circuit-types/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitTypeRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> CircuitType | None:
        path = f"/api/circuits/circuit-types/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CircuitType,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: CircuitTypeRequest) -> CircuitType:
        path = f"/api/circuits/circuit-types/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=CircuitTypeRequest,
            body=body,
            response_model=CircuitType,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedCircuitTypeRequest) -> CircuitType:
        path = f"/api/circuits/circuit-types/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedCircuitTypeRequest,
            body=body,
            response_model=CircuitType,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/circuit-types/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsCircuitsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CircuitsCircuitsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCircuitList:
        path = "/api/circuits/circuits/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsCircuitsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCircuitList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableCircuitRequest) -> Circuit:
        path = "/api/circuits/circuits/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableCircuitRequest,
            body=body,
            response_model=Circuit,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[CircuitRequest]) -> list[Circuit]:
        path = "/api/circuits/circuits/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitRequest],
            body=body,
            response_model=list[Circuit],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[CircuitRequest]) -> list[Circuit]:
        path = "/api/circuits/circuits/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitRequest],
            body=body,
            response_model=list[Circuit],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CircuitRequest]) -> None:
        path = "/api/circuits/circuits/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CircuitRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Circuit | None:
        path = f"/api/circuits/circuits/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Circuit,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableCircuitRequest) -> Circuit:
        path = f"/api/circuits/circuits/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableCircuitRequest,
            body=body,
            response_model=Circuit,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableCircuitRequest) -> Circuit:
        path = f"/api/circuits/circuits/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableCircuitRequest,
            body=body,
            response_model=Circuit,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/circuits/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsProviderAccountsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CircuitsProviderAccountsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedProviderAccountList:
        path = "/api/circuits/provider-accounts/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsProviderAccountsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedProviderAccountList,
            return_none_on_404=False,
        )

    async def create(self, body: ProviderAccountRequest) -> ProviderAccount:
        path = "/api/circuits/provider-accounts/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ProviderAccountRequest,
            body=body,
            response_model=ProviderAccount,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ProviderAccountRequest]) -> list[ProviderAccount]:
        path = "/api/circuits/provider-accounts/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ProviderAccountRequest],
            body=body,
            response_model=list[ProviderAccount],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ProviderAccountRequest]
    ) -> list[ProviderAccount]:
        path = "/api/circuits/provider-accounts/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ProviderAccountRequest],
            body=body,
            response_model=list[ProviderAccount],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ProviderAccountRequest]) -> None:
        path = "/api/circuits/provider-accounts/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ProviderAccountRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ProviderAccount | None:
        path = f"/api/circuits/provider-accounts/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ProviderAccount,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ProviderAccountRequest) -> ProviderAccount:
        path = f"/api/circuits/provider-accounts/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ProviderAccountRequest,
            body=body,
            response_model=ProviderAccount,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedProviderAccountRequest
    ) -> ProviderAccount:
        path = f"/api/circuits/provider-accounts/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedProviderAccountRequest,
            body=body,
            response_model=ProviderAccount,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/provider-accounts/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsProviderNetworksEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CircuitsProviderNetworksRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedProviderNetworkList:
        path = "/api/circuits/provider-networks/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsProviderNetworksRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedProviderNetworkList,
            return_none_on_404=False,
        )

    async def create(self, body: ProviderNetworkRequest) -> ProviderNetwork:
        path = "/api/circuits/provider-networks/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ProviderNetworkRequest,
            body=body,
            response_model=ProviderNetwork,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ProviderNetworkRequest]) -> list[ProviderNetwork]:
        path = "/api/circuits/provider-networks/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ProviderNetworkRequest],
            body=body,
            response_model=list[ProviderNetwork],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ProviderNetworkRequest]
    ) -> list[ProviderNetwork]:
        path = "/api/circuits/provider-networks/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ProviderNetworkRequest],
            body=body,
            response_model=list[ProviderNetwork],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ProviderNetworkRequest]) -> None:
        path = "/api/circuits/provider-networks/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ProviderNetworkRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ProviderNetwork | None:
        path = f"/api/circuits/provider-networks/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ProviderNetwork,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ProviderNetworkRequest) -> ProviderNetwork:
        path = f"/api/circuits/provider-networks/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ProviderNetworkRequest,
            body=body,
            response_model=ProviderNetwork,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedProviderNetworkRequest
    ) -> ProviderNetwork:
        path = f"/api/circuits/provider-networks/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedProviderNetworkRequest,
            body=body,
            response_model=ProviderNetwork,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/provider-networks/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsProvidersEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CircuitsProvidersRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedProviderList:
        path = "/api/circuits/providers/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsProvidersRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedProviderList,
            return_none_on_404=False,
        )

    async def create(self, body: ProviderRequest) -> Provider:
        path = "/api/circuits/providers/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ProviderRequest,
            body=body,
            response_model=Provider,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ProviderRequest]) -> list[Provider]:
        path = "/api/circuits/providers/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ProviderRequest],
            body=body,
            response_model=list[Provider],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ProviderRequest]) -> list[Provider]:
        path = "/api/circuits/providers/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ProviderRequest],
            body=body,
            response_model=list[Provider],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ProviderRequest]) -> None:
        path = "/api/circuits/providers/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ProviderRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Provider | None:
        path = f"/api/circuits/providers/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Provider,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ProviderRequest) -> Provider:
        path = f"/api/circuits/providers/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ProviderRequest,
            body=body,
            response_model=Provider,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedProviderRequest) -> Provider:
        path = f"/api/circuits/providers/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedProviderRequest,
            body=body,
            response_model=Provider,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/providers/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsVirtualCircuitTerminationsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def paths(self) -> CircuitsVirtualCircuitTerminationsPaths:
        return CircuitsVirtualCircuitTerminationsPaths(self._api)

    async def list(
        self, query: CircuitsVirtualCircuitTerminationsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVirtualCircuitTerminationList:
        path = "/api/circuits/virtual-circuit-terminations/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsVirtualCircuitTerminationsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVirtualCircuitTerminationList,
            return_none_on_404=False,
        )

    async def create(
        self, body: WritableVirtualCircuitTerminationRequest
    ) -> VirtualCircuitTermination:
        path = "/api/circuits/virtual-circuit-terminations/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualCircuitTerminationRequest,
            body=body,
            response_model=VirtualCircuitTermination,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[VirtualCircuitTerminationRequest]
    ) -> list[VirtualCircuitTermination]:
        path = "/api/circuits/virtual-circuit-terminations/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualCircuitTerminationRequest],
            body=body,
            response_model=list[VirtualCircuitTermination],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[VirtualCircuitTerminationRequest]
    ) -> list[VirtualCircuitTermination]:
        path = "/api/circuits/virtual-circuit-terminations/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualCircuitTerminationRequest],
            body=body,
            response_model=list[VirtualCircuitTermination],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VirtualCircuitTerminationRequest]) -> None:
        path = "/api/circuits/virtual-circuit-terminations/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualCircuitTerminationRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VirtualCircuitTermination | None:
        path = f"/api/circuits/virtual-circuit-terminations/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VirtualCircuitTermination,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableVirtualCircuitTerminationRequest
    ) -> VirtualCircuitTermination:
        path = f"/api/circuits/virtual-circuit-terminations/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualCircuitTerminationRequest,
            body=body,
            response_model=VirtualCircuitTermination,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableVirtualCircuitTerminationRequest
    ) -> VirtualCircuitTermination:
        path = f"/api/circuits/virtual-circuit-terminations/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableVirtualCircuitTerminationRequest,
            body=body,
            response_model=VirtualCircuitTermination,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/virtual-circuit-terminations/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsVirtualCircuitTerminationsPaths(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> VirtualCircuitTermination:
        path = f"/api/circuits/virtual-circuit-terminations/{id}/paths/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VirtualCircuitTermination,
            return_none_on_404=False,
        )


class CircuitsVirtualCircuitTypesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CircuitsVirtualCircuitTypesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVirtualCircuitTypeList:
        path = "/api/circuits/virtual-circuit-types/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsVirtualCircuitTypesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVirtualCircuitTypeList,
            return_none_on_404=False,
        )

    async def create(self, body: VirtualCircuitTypeRequest) -> VirtualCircuitType:
        path = "/api/circuits/virtual-circuit-types/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=VirtualCircuitTypeRequest,
            body=body,
            response_model=VirtualCircuitType,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[VirtualCircuitTypeRequest]) -> list[VirtualCircuitType]:
        path = "/api/circuits/virtual-circuit-types/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualCircuitTypeRequest],
            body=body,
            response_model=list[VirtualCircuitType],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[VirtualCircuitTypeRequest]
    ) -> list[VirtualCircuitType]:
        path = "/api/circuits/virtual-circuit-types/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualCircuitTypeRequest],
            body=body,
            response_model=list[VirtualCircuitType],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VirtualCircuitTypeRequest]) -> None:
        path = "/api/circuits/virtual-circuit-types/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualCircuitTypeRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VirtualCircuitType | None:
        path = f"/api/circuits/virtual-circuit-types/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VirtualCircuitType,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: VirtualCircuitTypeRequest) -> VirtualCircuitType:
        path = f"/api/circuits/virtual-circuit-types/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=VirtualCircuitTypeRequest,
            body=body,
            response_model=VirtualCircuitType,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedVirtualCircuitTypeRequest
    ) -> VirtualCircuitType:
        path = f"/api/circuits/virtual-circuit-types/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedVirtualCircuitTypeRequest,
            body=body,
            response_model=VirtualCircuitType,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/virtual-circuit-types/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsVirtualCircuitsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CircuitsVirtualCircuitsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVirtualCircuitList:
        path = "/api/circuits/virtual-circuits/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CircuitsVirtualCircuitsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVirtualCircuitList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableVirtualCircuitRequest) -> VirtualCircuit:
        path = "/api/circuits/virtual-circuits/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualCircuitRequest,
            body=body,
            response_model=VirtualCircuit,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[VirtualCircuitRequest]) -> list[VirtualCircuit]:
        path = "/api/circuits/virtual-circuits/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualCircuitRequest],
            body=body,
            response_model=list[VirtualCircuit],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[VirtualCircuitRequest]) -> list[VirtualCircuit]:
        path = "/api/circuits/virtual-circuits/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualCircuitRequest],
            body=body,
            response_model=list[VirtualCircuit],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VirtualCircuitRequest]) -> None:
        path = "/api/circuits/virtual-circuits/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualCircuitRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VirtualCircuit | None:
        path = f"/api/circuits/virtual-circuits/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VirtualCircuit,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableVirtualCircuitRequest) -> VirtualCircuit:
        path = f"/api/circuits/virtual-circuits/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualCircuitRequest,
            body=body,
            response_model=VirtualCircuit,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableVirtualCircuitRequest
    ) -> VirtualCircuit:
        path = f"/api/circuits/virtual-circuits/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableVirtualCircuitRequest,
            body=body,
            response_model=VirtualCircuit,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/circuits/virtual-circuits/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CoreBackgroundQueuesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self) -> dict[str, Any]:
        path = "/api/core/background-queues/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=dict[str, Any],
            return_none_on_404=False,
        )

    async def get(self, name: int | str) -> dict[str, Any] | None:
        path = f"/api/core/background-queues/{name}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=dict[str, Any],
            return_none_on_404=True,
        )


class CoreBackgroundTasksEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def delete(self) -> CoreBackgroundTasksDelete:
        return CoreBackgroundTasksDelete(self._api)

    @property
    def enqueue(self) -> CoreBackgroundTasksEnqueue:
        return CoreBackgroundTasksEnqueue(self._api)

    @property
    def requeue(self) -> CoreBackgroundTasksRequeue:
        return CoreBackgroundTasksRequeue(self._api)

    @property
    def stop(self) -> CoreBackgroundTasksStop:
        return CoreBackgroundTasksStop(self._api)

    async def list(self) -> dict[str, Any]:
        path = "/api/core/background-tasks/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=dict[str, Any],
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> dict[str, Any] | None:
        path = f"/api/core/background-tasks/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=dict[str, Any],
            return_none_on_404=True,
        )


class CoreBackgroundTasksDelete(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(self, id: int | str) -> None:
        path = f"/api/core/background-tasks/{id}/delete/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CoreBackgroundTasksEnqueue(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(self, id: int | str) -> None:
        path = f"/api/core/background-tasks/{id}/enqueue/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CoreBackgroundTasksRequeue(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(self, id: int | str) -> None:
        path = f"/api/core/background-tasks/{id}/requeue/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CoreBackgroundTasksStop(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(self, id: int | str) -> None:
        path = f"/api/core/background-tasks/{id}/stop/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CoreBackgroundWorkersEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self) -> dict[str, Any]:
        path = "/api/core/background-workers/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=dict[str, Any],
            return_none_on_404=False,
        )

    async def get(self, name: int | str) -> None:
        path = f"/api/core/background-workers/{name}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=True,
        )


class CoreDataFilesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CoreDataFilesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedDataFileList:
        path = "/api/core/data-files/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CoreDataFilesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedDataFileList,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> DataFile | None:
        path = f"/api/core/data-files/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=DataFile,
            return_none_on_404=True,
        )


class CoreDataSourcesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def sync(self) -> CoreDataSourcesSync:
        return CoreDataSourcesSync(self._api)

    async def list(
        self, query: CoreDataSourcesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedDataSourceList:
        path = "/api/core/data-sources/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CoreDataSourcesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedDataSourceList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableDataSourceRequest) -> DataSource:
        path = "/api/core/data-sources/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableDataSourceRequest,
            body=body,
            response_model=DataSource,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[DataSourceRequest]) -> list[DataSource]:
        path = "/api/core/data-sources/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[DataSourceRequest],
            body=body,
            response_model=list[DataSource],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[DataSourceRequest]) -> list[DataSource]:
        path = "/api/core/data-sources/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[DataSourceRequest],
            body=body,
            response_model=list[DataSource],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[DataSourceRequest]) -> None:
        path = "/api/core/data-sources/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[DataSourceRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> DataSource | None:
        path = f"/api/core/data-sources/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=DataSource,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableDataSourceRequest) -> DataSource:
        path = f"/api/core/data-sources/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableDataSourceRequest,
            body=body,
            response_model=DataSource,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableDataSourceRequest
    ) -> DataSource:
        path = f"/api/core/data-sources/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableDataSourceRequest,
            body=body,
            response_model=DataSource,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/core/data-sources/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CoreDataSourcesSync(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(self, id: int | str, body: WritableDataSourceRequest) -> DataSource:
        path = f"/api/core/data-sources/{id}/sync/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableDataSourceRequest,
            body=body,
            response_model=DataSource,
            return_none_on_404=False,
        )


class CoreJobsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CoreJobsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedJobList:
        path = "/api/core/jobs/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CoreJobsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedJobList,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Job | None:
        path = f"/api/core/jobs/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Job,
            return_none_on_404=True,
        )


class CoreObjectChangesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: CoreObjectChangesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedObjectChangeList:
        path = "/api/core/object-changes/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=CoreObjectChangesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedObjectChangeList,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ObjectChange | None:
        path = f"/api/core/object-changes/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ObjectChange,
            return_none_on_404=True,
        )


class DcimCableTerminationsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimCableTerminationsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCableTerminationList:
        path = "/api/dcim/cable-terminations/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimCableTerminationsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCableTerminationList,
            return_none_on_404=False,
        )

    async def create(self, body: CableTerminationRequest) -> CableTermination:
        path = "/api/dcim/cable-terminations/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=CableTerminationRequest,
            body=body,
            response_model=CableTermination,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[CableTerminationRequest]) -> list[CableTermination]:
        path = "/api/dcim/cable-terminations/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CableTerminationRequest],
            body=body,
            response_model=list[CableTermination],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[CableTerminationRequest]
    ) -> list[CableTermination]:
        path = "/api/dcim/cable-terminations/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CableTerminationRequest],
            body=body,
            response_model=list[CableTermination],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CableTerminationRequest]) -> None:
        path = "/api/dcim/cable-terminations/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CableTerminationRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> CableTermination | None:
        path = f"/api/dcim/cable-terminations/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CableTermination,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: CableTerminationRequest) -> CableTermination:
        path = f"/api/dcim/cable-terminations/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=CableTerminationRequest,
            body=body,
            response_model=CableTermination,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedCableTerminationRequest
    ) -> CableTermination:
        path = f"/api/dcim/cable-terminations/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedCableTerminationRequest,
            body=body,
            response_model=CableTermination,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/cable-terminations/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimCablesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimCablesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCableList:
        path = "/api/dcim/cables/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimCablesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCableList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableCableRequest) -> Cable:
        path = "/api/dcim/cables/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableCableRequest,
            body=body,
            response_model=Cable,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[CableRequest]) -> list[Cable]:
        path = "/api/dcim/cables/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CableRequest],
            body=body,
            response_model=list[Cable],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[CableRequest]) -> list[Cable]:
        path = "/api/dcim/cables/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CableRequest],
            body=body,
            response_model=list[Cable],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CableRequest]) -> None:
        path = "/api/dcim/cables/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CableRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Cable | None:
        path = f"/api/dcim/cables/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Cable,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableCableRequest) -> Cable:
        path = f"/api/dcim/cables/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableCableRequest,
            body=body,
            response_model=Cable,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableCableRequest) -> Cable:
        path = f"/api/dcim/cables/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableCableRequest,
            body=body,
            response_model=Cable,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/cables/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimConnectedDeviceEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimConnectedDeviceRootGetQuery | dict[str, Any] | None = None
    ) -> list[Device]:
        path = "/api/dcim/connected-device/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimConnectedDeviceRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=list[Device],
            return_none_on_404=False,
        )


class DcimConsolePortTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimConsolePortTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedConsolePortTemplateList:
        path = "/api/dcim/console-port-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimConsolePortTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedConsolePortTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableConsolePortTemplateRequest) -> ConsolePortTemplate:
        path = "/api/dcim/console-port-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableConsolePortTemplateRequest,
            body=body,
            response_model=ConsolePortTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[ConsolePortTemplateRequest]
    ) -> list[ConsolePortTemplate]:
        path = "/api/dcim/console-port-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsolePortTemplateRequest],
            body=body,
            response_model=list[ConsolePortTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ConsolePortTemplateRequest]
    ) -> list[ConsolePortTemplate]:
        path = "/api/dcim/console-port-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsolePortTemplateRequest],
            body=body,
            response_model=list[ConsolePortTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ConsolePortTemplateRequest]) -> None:
        path = "/api/dcim/console-port-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsolePortTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ConsolePortTemplate | None:
        path = f"/api/dcim/console-port-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ConsolePortTemplate,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableConsolePortTemplateRequest
    ) -> ConsolePortTemplate:
        path = f"/api/dcim/console-port-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableConsolePortTemplateRequest,
            body=body,
            response_model=ConsolePortTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableConsolePortTemplateRequest
    ) -> ConsolePortTemplate:
        path = f"/api/dcim/console-port-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableConsolePortTemplateRequest,
            body=body,
            response_model=ConsolePortTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/console-port-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimConsolePortsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def trace(self) -> DcimConsolePortsTrace:
        return DcimConsolePortsTrace(self._api)

    async def list(
        self, query: DcimConsolePortsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedConsolePortList:
        path = "/api/dcim/console-ports/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimConsolePortsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedConsolePortList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableConsolePortRequest) -> ConsolePort:
        path = "/api/dcim/console-ports/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableConsolePortRequest,
            body=body,
            response_model=ConsolePort,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ConsolePortRequest]) -> list[ConsolePort]:
        path = "/api/dcim/console-ports/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsolePortRequest],
            body=body,
            response_model=list[ConsolePort],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ConsolePortRequest]) -> list[ConsolePort]:
        path = "/api/dcim/console-ports/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsolePortRequest],
            body=body,
            response_model=list[ConsolePort],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ConsolePortRequest]) -> None:
        path = "/api/dcim/console-ports/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsolePortRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ConsolePort | None:
        path = f"/api/dcim/console-ports/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ConsolePort,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableConsolePortRequest) -> ConsolePort:
        path = f"/api/dcim/console-ports/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableConsolePortRequest,
            body=body,
            response_model=ConsolePort,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableConsolePortRequest
    ) -> ConsolePort:
        path = f"/api/dcim/console-ports/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableConsolePortRequest,
            body=body,
            response_model=ConsolePort,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/console-ports/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimConsolePortsTrace(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> ConsolePort:
        path = f"/api/dcim/console-ports/{id}/trace/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ConsolePort,
            return_none_on_404=False,
        )


class DcimConsoleServerPortTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimConsoleServerPortTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedConsoleServerPortTemplateList:
        path = "/api/dcim/console-server-port-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimConsoleServerPortTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedConsoleServerPortTemplateList,
            return_none_on_404=False,
        )

    async def create(
        self, body: WritableConsoleServerPortTemplateRequest
    ) -> ConsoleServerPortTemplate:
        path = "/api/dcim/console-server-port-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableConsoleServerPortTemplateRequest,
            body=body,
            response_model=ConsoleServerPortTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[ConsoleServerPortTemplateRequest]
    ) -> list[ConsoleServerPortTemplate]:
        path = "/api/dcim/console-server-port-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsoleServerPortTemplateRequest],
            body=body,
            response_model=list[ConsoleServerPortTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ConsoleServerPortTemplateRequest]
    ) -> list[ConsoleServerPortTemplate]:
        path = "/api/dcim/console-server-port-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsoleServerPortTemplateRequest],
            body=body,
            response_model=list[ConsoleServerPortTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ConsoleServerPortTemplateRequest]) -> None:
        path = "/api/dcim/console-server-port-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsoleServerPortTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ConsoleServerPortTemplate | None:
        path = f"/api/dcim/console-server-port-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ConsoleServerPortTemplate,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableConsoleServerPortTemplateRequest
    ) -> ConsoleServerPortTemplate:
        path = f"/api/dcim/console-server-port-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableConsoleServerPortTemplateRequest,
            body=body,
            response_model=ConsoleServerPortTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableConsoleServerPortTemplateRequest
    ) -> ConsoleServerPortTemplate:
        path = f"/api/dcim/console-server-port-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableConsoleServerPortTemplateRequest,
            body=body,
            response_model=ConsoleServerPortTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/console-server-port-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimConsoleServerPortsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def trace(self) -> DcimConsoleServerPortsTrace:
        return DcimConsoleServerPortsTrace(self._api)

    async def list(
        self, query: DcimConsoleServerPortsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedConsoleServerPortList:
        path = "/api/dcim/console-server-ports/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimConsoleServerPortsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedConsoleServerPortList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableConsoleServerPortRequest) -> ConsoleServerPort:
        path = "/api/dcim/console-server-ports/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableConsoleServerPortRequest,
            body=body,
            response_model=ConsoleServerPort,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ConsoleServerPortRequest]) -> list[ConsoleServerPort]:
        path = "/api/dcim/console-server-ports/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsoleServerPortRequest],
            body=body,
            response_model=list[ConsoleServerPort],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ConsoleServerPortRequest]
    ) -> list[ConsoleServerPort]:
        path = "/api/dcim/console-server-ports/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsoleServerPortRequest],
            body=body,
            response_model=list[ConsoleServerPort],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ConsoleServerPortRequest]) -> None:
        path = "/api/dcim/console-server-ports/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ConsoleServerPortRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ConsoleServerPort | None:
        path = f"/api/dcim/console-server-ports/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ConsoleServerPort,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableConsoleServerPortRequest
    ) -> ConsoleServerPort:
        path = f"/api/dcim/console-server-ports/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableConsoleServerPortRequest,
            body=body,
            response_model=ConsoleServerPort,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableConsoleServerPortRequest
    ) -> ConsoleServerPort:
        path = f"/api/dcim/console-server-ports/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableConsoleServerPortRequest,
            body=body,
            response_model=ConsoleServerPort,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/console-server-ports/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimConsoleServerPortsTrace(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> ConsoleServerPort:
        path = f"/api/dcim/console-server-ports/{id}/trace/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ConsoleServerPort,
            return_none_on_404=False,
        )


class DcimDeviceBayTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimDeviceBayTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedDeviceBayTemplateList:
        path = "/api/dcim/device-bay-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimDeviceBayTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedDeviceBayTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: DeviceBayTemplateRequest) -> DeviceBayTemplate:
        path = "/api/dcim/device-bay-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=DeviceBayTemplateRequest,
            body=body,
            response_model=DeviceBayTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[DeviceBayTemplateRequest]) -> list[DeviceBayTemplate]:
        path = "/api/dcim/device-bay-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceBayTemplateRequest],
            body=body,
            response_model=list[DeviceBayTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[DeviceBayTemplateRequest]
    ) -> list[DeviceBayTemplate]:
        path = "/api/dcim/device-bay-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceBayTemplateRequest],
            body=body,
            response_model=list[DeviceBayTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[DeviceBayTemplateRequest]) -> None:
        path = "/api/dcim/device-bay-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceBayTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> DeviceBayTemplate | None:
        path = f"/api/dcim/device-bay-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=DeviceBayTemplate,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: DeviceBayTemplateRequest) -> DeviceBayTemplate:
        path = f"/api/dcim/device-bay-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=DeviceBayTemplateRequest,
            body=body,
            response_model=DeviceBayTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedDeviceBayTemplateRequest
    ) -> DeviceBayTemplate:
        path = f"/api/dcim/device-bay-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedDeviceBayTemplateRequest,
            body=body,
            response_model=DeviceBayTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/device-bay-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimDeviceBaysEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimDeviceBaysRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedDeviceBayList:
        path = "/api/dcim/device-bays/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimDeviceBaysRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedDeviceBayList,
            return_none_on_404=False,
        )

    async def create(self, body: DeviceBayRequest) -> DeviceBay:
        path = "/api/dcim/device-bays/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=DeviceBayRequest,
            body=body,
            response_model=DeviceBay,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[DeviceBayRequest]) -> list[DeviceBay]:
        path = "/api/dcim/device-bays/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceBayRequest],
            body=body,
            response_model=list[DeviceBay],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[DeviceBayRequest]) -> list[DeviceBay]:
        path = "/api/dcim/device-bays/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceBayRequest],
            body=body,
            response_model=list[DeviceBay],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[DeviceBayRequest]) -> None:
        path = "/api/dcim/device-bays/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceBayRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> DeviceBay | None:
        path = f"/api/dcim/device-bays/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=DeviceBay,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: DeviceBayRequest) -> DeviceBay:
        path = f"/api/dcim/device-bays/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=DeviceBayRequest,
            body=body,
            response_model=DeviceBay,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedDeviceBayRequest) -> DeviceBay:
        path = f"/api/dcim/device-bays/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedDeviceBayRequest,
            body=body,
            response_model=DeviceBay,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/device-bays/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimDeviceRolesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimDeviceRolesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedDeviceRoleList:
        path = "/api/dcim/device-roles/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimDeviceRolesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedDeviceRoleList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableDeviceRoleRequest) -> DeviceRole:
        path = "/api/dcim/device-roles/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableDeviceRoleRequest,
            body=body,
            response_model=DeviceRole,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[DeviceRoleRequest]) -> list[DeviceRole]:
        path = "/api/dcim/device-roles/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceRoleRequest],
            body=body,
            response_model=list[DeviceRole],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[DeviceRoleRequest]) -> list[DeviceRole]:
        path = "/api/dcim/device-roles/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceRoleRequest],
            body=body,
            response_model=list[DeviceRole],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[DeviceRoleRequest]) -> None:
        path = "/api/dcim/device-roles/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceRoleRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> DeviceRole | None:
        path = f"/api/dcim/device-roles/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=DeviceRole,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableDeviceRoleRequest) -> DeviceRole:
        path = f"/api/dcim/device-roles/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableDeviceRoleRequest,
            body=body,
            response_model=DeviceRole,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableDeviceRoleRequest
    ) -> DeviceRole:
        path = f"/api/dcim/device-roles/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableDeviceRoleRequest,
            body=body,
            response_model=DeviceRole,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/device-roles/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimDeviceTypesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimDeviceTypesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedDeviceTypeList:
        path = "/api/dcim/device-types/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimDeviceTypesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedDeviceTypeList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableDeviceTypeRequest) -> DeviceType:
        path = "/api/dcim/device-types/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableDeviceTypeRequest,
            body=body,
            response_model=DeviceType,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[DeviceTypeRequest]) -> list[DeviceType]:
        path = "/api/dcim/device-types/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceTypeRequest],
            body=body,
            response_model=list[DeviceType],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[DeviceTypeRequest]) -> list[DeviceType]:
        path = "/api/dcim/device-types/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceTypeRequest],
            body=body,
            response_model=list[DeviceType],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[DeviceTypeRequest]) -> None:
        path = "/api/dcim/device-types/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceTypeRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> DeviceType | None:
        path = f"/api/dcim/device-types/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=DeviceType,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableDeviceTypeRequest) -> DeviceType:
        path = f"/api/dcim/device-types/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableDeviceTypeRequest,
            body=body,
            response_model=DeviceType,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableDeviceTypeRequest
    ) -> DeviceType:
        path = f"/api/dcim/device-types/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableDeviceTypeRequest,
            body=body,
            response_model=DeviceType,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/device-types/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimDevicesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def render_config(self) -> DcimDevicesRenderConfig:
        return DcimDevicesRenderConfig(self._api)

    async def list(
        self, query: DcimDevicesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedDeviceWithConfigContextList:
        path = "/api/dcim/devices/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimDevicesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedDeviceWithConfigContextList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableDeviceWithConfigContextRequest) -> DeviceWithConfigContext:
        path = "/api/dcim/devices/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableDeviceWithConfigContextRequest,
            body=body,
            response_model=DeviceWithConfigContext,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[DeviceWithConfigContextRequest]
    ) -> list[DeviceWithConfigContext]:
        path = "/api/dcim/devices/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceWithConfigContextRequest],
            body=body,
            response_model=list[DeviceWithConfigContext],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[DeviceWithConfigContextRequest]
    ) -> list[DeviceWithConfigContext]:
        path = "/api/dcim/devices/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceWithConfigContextRequest],
            body=body,
            response_model=list[DeviceWithConfigContext],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[DeviceWithConfigContextRequest]) -> None:
        path = "/api/dcim/devices/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[DeviceWithConfigContextRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> DeviceWithConfigContext | None:
        path = f"/api/dcim/devices/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=DeviceWithConfigContext,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableDeviceWithConfigContextRequest
    ) -> DeviceWithConfigContext:
        path = f"/api/dcim/devices/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableDeviceWithConfigContextRequest,
            body=body,
            response_model=DeviceWithConfigContext,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableDeviceWithConfigContextRequest
    ) -> DeviceWithConfigContext:
        path = f"/api/dcim/devices/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableDeviceWithConfigContextRequest,
            body=body,
            response_model=DeviceWithConfigContext,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/devices/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimDevicesRenderConfig(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(
        self,
        id: int | str,
        body: WritableDeviceWithConfigContextRequest,
        query: DcimDevicesRenderConfigPostQuery | dict[str, Any] | None = None,
    ) -> DeviceWithConfigContext:
        path = f"/api/dcim/devices/{id}/render-config/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=DcimDevicesRenderConfigPostQuery,
            query=query,
            body_model=WritableDeviceWithConfigContextRequest,
            body=body,
            response_model=DeviceWithConfigContext,
            return_none_on_404=False,
        )


class DcimFrontPortTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimFrontPortTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedFrontPortTemplateList:
        path = "/api/dcim/front-port-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimFrontPortTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedFrontPortTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableFrontPortTemplateRequest) -> FrontPortTemplate:
        path = "/api/dcim/front-port-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableFrontPortTemplateRequest,
            body=body,
            response_model=FrontPortTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[FrontPortTemplateRequest]) -> list[FrontPortTemplate]:
        path = "/api/dcim/front-port-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[FrontPortTemplateRequest],
            body=body,
            response_model=list[FrontPortTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[FrontPortTemplateRequest]
    ) -> list[FrontPortTemplate]:
        path = "/api/dcim/front-port-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[FrontPortTemplateRequest],
            body=body,
            response_model=list[FrontPortTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[FrontPortTemplateRequest]) -> None:
        path = "/api/dcim/front-port-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[FrontPortTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> FrontPortTemplate | None:
        path = f"/api/dcim/front-port-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=FrontPortTemplate,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableFrontPortTemplateRequest
    ) -> FrontPortTemplate:
        path = f"/api/dcim/front-port-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableFrontPortTemplateRequest,
            body=body,
            response_model=FrontPortTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableFrontPortTemplateRequest
    ) -> FrontPortTemplate:
        path = f"/api/dcim/front-port-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableFrontPortTemplateRequest,
            body=body,
            response_model=FrontPortTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/front-port-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimFrontPortsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def paths(self) -> DcimFrontPortsPaths:
        return DcimFrontPortsPaths(self._api)

    async def list(
        self, query: DcimFrontPortsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedFrontPortList:
        path = "/api/dcim/front-ports/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimFrontPortsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedFrontPortList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableFrontPortRequest) -> FrontPort:
        path = "/api/dcim/front-ports/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableFrontPortRequest,
            body=body,
            response_model=FrontPort,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[FrontPortRequest]) -> list[FrontPort]:
        path = "/api/dcim/front-ports/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[FrontPortRequest],
            body=body,
            response_model=list[FrontPort],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[FrontPortRequest]) -> list[FrontPort]:
        path = "/api/dcim/front-ports/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[FrontPortRequest],
            body=body,
            response_model=list[FrontPort],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[FrontPortRequest]) -> None:
        path = "/api/dcim/front-ports/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[FrontPortRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> FrontPort | None:
        path = f"/api/dcim/front-ports/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=FrontPort,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableFrontPortRequest) -> FrontPort:
        path = f"/api/dcim/front-ports/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableFrontPortRequest,
            body=body,
            response_model=FrontPort,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableFrontPortRequest
    ) -> FrontPort:
        path = f"/api/dcim/front-ports/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableFrontPortRequest,
            body=body,
            response_model=FrontPort,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/front-ports/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimFrontPortsPaths(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> FrontPort:
        path = f"/api/dcim/front-ports/{id}/paths/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=FrontPort,
            return_none_on_404=False,
        )


class DcimInterfaceTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimInterfaceTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedInterfaceTemplateList:
        path = "/api/dcim/interface-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimInterfaceTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedInterfaceTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableInterfaceTemplateRequest) -> InterfaceTemplate:
        path = "/api/dcim/interface-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableInterfaceTemplateRequest,
            body=body,
            response_model=InterfaceTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[InterfaceTemplateRequest]) -> list[InterfaceTemplate]:
        path = "/api/dcim/interface-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[InterfaceTemplateRequest],
            body=body,
            response_model=list[InterfaceTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[InterfaceTemplateRequest]
    ) -> list[InterfaceTemplate]:
        path = "/api/dcim/interface-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[InterfaceTemplateRequest],
            body=body,
            response_model=list[InterfaceTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[InterfaceTemplateRequest]) -> None:
        path = "/api/dcim/interface-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[InterfaceTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> InterfaceTemplate | None:
        path = f"/api/dcim/interface-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=InterfaceTemplate,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableInterfaceTemplateRequest
    ) -> InterfaceTemplate:
        path = f"/api/dcim/interface-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableInterfaceTemplateRequest,
            body=body,
            response_model=InterfaceTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableInterfaceTemplateRequest
    ) -> InterfaceTemplate:
        path = f"/api/dcim/interface-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableInterfaceTemplateRequest,
            body=body,
            response_model=InterfaceTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/interface-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimInterfacesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def trace(self) -> DcimInterfacesTrace:
        return DcimInterfacesTrace(self._api)

    async def list(
        self, query: DcimInterfacesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedInterfaceList:
        path = "/api/dcim/interfaces/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimInterfacesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedInterfaceList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableInterfaceRequest) -> Interface:
        path = "/api/dcim/interfaces/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableInterfaceRequest,
            body=body,
            response_model=Interface,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[InterfaceRequest]) -> list[Interface]:
        path = "/api/dcim/interfaces/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[InterfaceRequest],
            body=body,
            response_model=list[Interface],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[InterfaceRequest]) -> list[Interface]:
        path = "/api/dcim/interfaces/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[InterfaceRequest],
            body=body,
            response_model=list[Interface],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[InterfaceRequest]) -> None:
        path = "/api/dcim/interfaces/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[InterfaceRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Interface | None:
        path = f"/api/dcim/interfaces/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Interface,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableInterfaceRequest) -> Interface:
        path = f"/api/dcim/interfaces/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableInterfaceRequest,
            body=body,
            response_model=Interface,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableInterfaceRequest
    ) -> Interface:
        path = f"/api/dcim/interfaces/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableInterfaceRequest,
            body=body,
            response_model=Interface,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/interfaces/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimInterfacesTrace(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> Interface:
        path = f"/api/dcim/interfaces/{id}/trace/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Interface,
            return_none_on_404=False,
        )


class DcimInventoryItemRolesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimInventoryItemRolesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedInventoryItemRoleList:
        path = "/api/dcim/inventory-item-roles/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimInventoryItemRolesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedInventoryItemRoleList,
            return_none_on_404=False,
        )

    async def create(self, body: InventoryItemRoleRequest) -> InventoryItemRole:
        path = "/api/dcim/inventory-item-roles/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=InventoryItemRoleRequest,
            body=body,
            response_model=InventoryItemRole,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[InventoryItemRoleRequest]) -> list[InventoryItemRole]:
        path = "/api/dcim/inventory-item-roles/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[InventoryItemRoleRequest],
            body=body,
            response_model=list[InventoryItemRole],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[InventoryItemRoleRequest]
    ) -> list[InventoryItemRole]:
        path = "/api/dcim/inventory-item-roles/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[InventoryItemRoleRequest],
            body=body,
            response_model=list[InventoryItemRole],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[InventoryItemRoleRequest]) -> None:
        path = "/api/dcim/inventory-item-roles/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[InventoryItemRoleRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> InventoryItemRole | None:
        path = f"/api/dcim/inventory-item-roles/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=InventoryItemRole,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: InventoryItemRoleRequest) -> InventoryItemRole:
        path = f"/api/dcim/inventory-item-roles/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=InventoryItemRoleRequest,
            body=body,
            response_model=InventoryItemRole,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedInventoryItemRoleRequest
    ) -> InventoryItemRole:
        path = f"/api/dcim/inventory-item-roles/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedInventoryItemRoleRequest,
            body=body,
            response_model=InventoryItemRole,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/inventory-item-roles/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimInventoryItemTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimInventoryItemTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedInventoryItemTemplateList:
        path = "/api/dcim/inventory-item-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimInventoryItemTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedInventoryItemTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: InventoryItemTemplateRequest) -> InventoryItemTemplate:
        path = "/api/dcim/inventory-item-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=InventoryItemTemplateRequest,
            body=body,
            response_model=InventoryItemTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[InventoryItemTemplateRequest]
    ) -> list[InventoryItemTemplate]:
        path = "/api/dcim/inventory-item-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[InventoryItemTemplateRequest],
            body=body,
            response_model=list[InventoryItemTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[InventoryItemTemplateRequest]
    ) -> list[InventoryItemTemplate]:
        path = "/api/dcim/inventory-item-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[InventoryItemTemplateRequest],
            body=body,
            response_model=list[InventoryItemTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[InventoryItemTemplateRequest]) -> None:
        path = "/api/dcim/inventory-item-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[InventoryItemTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> InventoryItemTemplate | None:
        path = f"/api/dcim/inventory-item-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=InventoryItemTemplate,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: InventoryItemTemplateRequest
    ) -> InventoryItemTemplate:
        path = f"/api/dcim/inventory-item-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=InventoryItemTemplateRequest,
            body=body,
            response_model=InventoryItemTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedInventoryItemTemplateRequest
    ) -> InventoryItemTemplate:
        path = f"/api/dcim/inventory-item-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedInventoryItemTemplateRequest,
            body=body,
            response_model=InventoryItemTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/inventory-item-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimInventoryItemsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimInventoryItemsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedInventoryItemList:
        path = "/api/dcim/inventory-items/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimInventoryItemsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedInventoryItemList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableInventoryItemRequest) -> InventoryItem:
        path = "/api/dcim/inventory-items/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableInventoryItemRequest,
            body=body,
            response_model=InventoryItem,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[InventoryItemRequest]) -> list[InventoryItem]:
        path = "/api/dcim/inventory-items/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[InventoryItemRequest],
            body=body,
            response_model=list[InventoryItem],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[InventoryItemRequest]) -> list[InventoryItem]:
        path = "/api/dcim/inventory-items/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[InventoryItemRequest],
            body=body,
            response_model=list[InventoryItem],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[InventoryItemRequest]) -> None:
        path = "/api/dcim/inventory-items/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[InventoryItemRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> InventoryItem | None:
        path = f"/api/dcim/inventory-items/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=InventoryItem,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableInventoryItemRequest) -> InventoryItem:
        path = f"/api/dcim/inventory-items/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableInventoryItemRequest,
            body=body,
            response_model=InventoryItem,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableInventoryItemRequest
    ) -> InventoryItem:
        path = f"/api/dcim/inventory-items/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableInventoryItemRequest,
            body=body,
            response_model=InventoryItem,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/inventory-items/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimLocationsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimLocationsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedLocationList:
        path = "/api/dcim/locations/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimLocationsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedLocationList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableLocationRequest) -> Location:
        path = "/api/dcim/locations/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableLocationRequest,
            body=body,
            response_model=Location,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[LocationRequest]) -> list[Location]:
        path = "/api/dcim/locations/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[LocationRequest],
            body=body,
            response_model=list[Location],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[LocationRequest]) -> list[Location]:
        path = "/api/dcim/locations/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[LocationRequest],
            body=body,
            response_model=list[Location],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[LocationRequest]) -> None:
        path = "/api/dcim/locations/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[LocationRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Location | None:
        path = f"/api/dcim/locations/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Location,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableLocationRequest) -> Location:
        path = f"/api/dcim/locations/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableLocationRequest,
            body=body,
            response_model=Location,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableLocationRequest) -> Location:
        path = f"/api/dcim/locations/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableLocationRequest,
            body=body,
            response_model=Location,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/locations/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimMacAddressesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimMacAddressesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedMACAddressList:
        path = "/api/dcim/mac-addresses/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimMacAddressesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedMACAddressList,
            return_none_on_404=False,
        )

    async def create(self, body: MACAddressRequest) -> MACAddress:
        path = "/api/dcim/mac-addresses/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=MACAddressRequest,
            body=body,
            response_model=MACAddress,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[MACAddressRequest]) -> list[MACAddress]:
        path = "/api/dcim/mac-addresses/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[MACAddressRequest],
            body=body,
            response_model=list[MACAddress],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[MACAddressRequest]) -> list[MACAddress]:
        path = "/api/dcim/mac-addresses/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[MACAddressRequest],
            body=body,
            response_model=list[MACAddress],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[MACAddressRequest]) -> None:
        path = "/api/dcim/mac-addresses/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[MACAddressRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> MACAddress | None:
        path = f"/api/dcim/mac-addresses/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=MACAddress,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: MACAddressRequest) -> MACAddress:
        path = f"/api/dcim/mac-addresses/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=MACAddressRequest,
            body=body,
            response_model=MACAddress,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedMACAddressRequest) -> MACAddress:
        path = f"/api/dcim/mac-addresses/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedMACAddressRequest,
            body=body,
            response_model=MACAddress,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/mac-addresses/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimManufacturersEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimManufacturersRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedManufacturerList:
        path = "/api/dcim/manufacturers/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimManufacturersRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedManufacturerList,
            return_none_on_404=False,
        )

    async def create(self, body: ManufacturerRequest) -> Manufacturer:
        path = "/api/dcim/manufacturers/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ManufacturerRequest,
            body=body,
            response_model=Manufacturer,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ManufacturerRequest]) -> list[Manufacturer]:
        path = "/api/dcim/manufacturers/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ManufacturerRequest],
            body=body,
            response_model=list[Manufacturer],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ManufacturerRequest]) -> list[Manufacturer]:
        path = "/api/dcim/manufacturers/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ManufacturerRequest],
            body=body,
            response_model=list[Manufacturer],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ManufacturerRequest]) -> None:
        path = "/api/dcim/manufacturers/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ManufacturerRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Manufacturer | None:
        path = f"/api/dcim/manufacturers/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Manufacturer,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ManufacturerRequest) -> Manufacturer:
        path = f"/api/dcim/manufacturers/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ManufacturerRequest,
            body=body,
            response_model=Manufacturer,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedManufacturerRequest) -> Manufacturer:
        path = f"/api/dcim/manufacturers/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedManufacturerRequest,
            body=body,
            response_model=Manufacturer,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/manufacturers/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimModuleBayTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimModuleBayTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedModuleBayTemplateList:
        path = "/api/dcim/module-bay-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimModuleBayTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedModuleBayTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: ModuleBayTemplateRequest) -> ModuleBayTemplate:
        path = "/api/dcim/module-bay-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ModuleBayTemplateRequest,
            body=body,
            response_model=ModuleBayTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ModuleBayTemplateRequest]) -> list[ModuleBayTemplate]:
        path = "/api/dcim/module-bay-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleBayTemplateRequest],
            body=body,
            response_model=list[ModuleBayTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ModuleBayTemplateRequest]
    ) -> list[ModuleBayTemplate]:
        path = "/api/dcim/module-bay-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleBayTemplateRequest],
            body=body,
            response_model=list[ModuleBayTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ModuleBayTemplateRequest]) -> None:
        path = "/api/dcim/module-bay-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleBayTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ModuleBayTemplate | None:
        path = f"/api/dcim/module-bay-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ModuleBayTemplate,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ModuleBayTemplateRequest) -> ModuleBayTemplate:
        path = f"/api/dcim/module-bay-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ModuleBayTemplateRequest,
            body=body,
            response_model=ModuleBayTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedModuleBayTemplateRequest
    ) -> ModuleBayTemplate:
        path = f"/api/dcim/module-bay-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedModuleBayTemplateRequest,
            body=body,
            response_model=ModuleBayTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/module-bay-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimModuleBaysEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimModuleBaysRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedModuleBayList:
        path = "/api/dcim/module-bays/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimModuleBaysRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedModuleBayList,
            return_none_on_404=False,
        )

    async def create(self, body: ModuleBayRequest) -> ModuleBay:
        path = "/api/dcim/module-bays/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ModuleBayRequest,
            body=body,
            response_model=ModuleBay,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ModuleBayRequest]) -> list[ModuleBay]:
        path = "/api/dcim/module-bays/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleBayRequest],
            body=body,
            response_model=list[ModuleBay],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ModuleBayRequest]) -> list[ModuleBay]:
        path = "/api/dcim/module-bays/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleBayRequest],
            body=body,
            response_model=list[ModuleBay],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ModuleBayRequest]) -> None:
        path = "/api/dcim/module-bays/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleBayRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ModuleBay | None:
        path = f"/api/dcim/module-bays/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ModuleBay,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ModuleBayRequest) -> ModuleBay:
        path = f"/api/dcim/module-bays/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ModuleBayRequest,
            body=body,
            response_model=ModuleBay,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedModuleBayRequest) -> ModuleBay:
        path = f"/api/dcim/module-bays/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedModuleBayRequest,
            body=body,
            response_model=ModuleBay,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/module-bays/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimModuleTypeProfilesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimModuleTypeProfilesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedModuleTypeProfileList:
        path = "/api/dcim/module-type-profiles/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimModuleTypeProfilesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedModuleTypeProfileList,
            return_none_on_404=False,
        )

    async def create(self, body: ModuleTypeProfileRequest) -> ModuleTypeProfile:
        path = "/api/dcim/module-type-profiles/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ModuleTypeProfileRequest,
            body=body,
            response_model=ModuleTypeProfile,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ModuleTypeProfileRequest]) -> list[ModuleTypeProfile]:
        path = "/api/dcim/module-type-profiles/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleTypeProfileRequest],
            body=body,
            response_model=list[ModuleTypeProfile],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ModuleTypeProfileRequest]
    ) -> list[ModuleTypeProfile]:
        path = "/api/dcim/module-type-profiles/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleTypeProfileRequest],
            body=body,
            response_model=list[ModuleTypeProfile],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ModuleTypeProfileRequest]) -> None:
        path = "/api/dcim/module-type-profiles/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleTypeProfileRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ModuleTypeProfile | None:
        path = f"/api/dcim/module-type-profiles/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ModuleTypeProfile,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ModuleTypeProfileRequest) -> ModuleTypeProfile:
        path = f"/api/dcim/module-type-profiles/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ModuleTypeProfileRequest,
            body=body,
            response_model=ModuleTypeProfile,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedModuleTypeProfileRequest
    ) -> ModuleTypeProfile:
        path = f"/api/dcim/module-type-profiles/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedModuleTypeProfileRequest,
            body=body,
            response_model=ModuleTypeProfile,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/module-type-profiles/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimModuleTypesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimModuleTypesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedModuleTypeList:
        path = "/api/dcim/module-types/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimModuleTypesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedModuleTypeList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableModuleTypeRequest) -> ModuleType:
        path = "/api/dcim/module-types/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableModuleTypeRequest,
            body=body,
            response_model=ModuleType,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ModuleTypeRequest]) -> list[ModuleType]:
        path = "/api/dcim/module-types/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleTypeRequest],
            body=body,
            response_model=list[ModuleType],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ModuleTypeRequest]) -> list[ModuleType]:
        path = "/api/dcim/module-types/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleTypeRequest],
            body=body,
            response_model=list[ModuleType],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ModuleTypeRequest]) -> None:
        path = "/api/dcim/module-types/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleTypeRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ModuleType | None:
        path = f"/api/dcim/module-types/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ModuleType,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableModuleTypeRequest) -> ModuleType:
        path = f"/api/dcim/module-types/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableModuleTypeRequest,
            body=body,
            response_model=ModuleType,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableModuleTypeRequest
    ) -> ModuleType:
        path = f"/api/dcim/module-types/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableModuleTypeRequest,
            body=body,
            response_model=ModuleType,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/module-types/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimModulesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimModulesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedModuleList:
        path = "/api/dcim/modules/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimModulesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedModuleList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableModuleRequest) -> Module:
        path = "/api/dcim/modules/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableModuleRequest,
            body=body,
            response_model=Module,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ModuleRequest]) -> list[Module]:
        path = "/api/dcim/modules/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleRequest],
            body=body,
            response_model=list[Module],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ModuleRequest]) -> list[Module]:
        path = "/api/dcim/modules/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleRequest],
            body=body,
            response_model=list[Module],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ModuleRequest]) -> None:
        path = "/api/dcim/modules/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ModuleRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Module | None:
        path = f"/api/dcim/modules/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Module,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableModuleRequest) -> Module:
        path = f"/api/dcim/modules/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableModuleRequest,
            body=body,
            response_model=Module,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableModuleRequest) -> Module:
        path = f"/api/dcim/modules/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableModuleRequest,
            body=body,
            response_model=Module,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/modules/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimPlatformsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimPlatformsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedPlatformList:
        path = "/api/dcim/platforms/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimPlatformsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedPlatformList,
            return_none_on_404=False,
        )

    async def create(self, body: PlatformRequest) -> Platform:
        path = "/api/dcim/platforms/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=PlatformRequest,
            body=body,
            response_model=Platform,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[PlatformRequest]) -> list[Platform]:
        path = "/api/dcim/platforms/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[PlatformRequest],
            body=body,
            response_model=list[Platform],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[PlatformRequest]) -> list[Platform]:
        path = "/api/dcim/platforms/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[PlatformRequest],
            body=body,
            response_model=list[Platform],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[PlatformRequest]) -> None:
        path = "/api/dcim/platforms/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[PlatformRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Platform | None:
        path = f"/api/dcim/platforms/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Platform,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: PlatformRequest) -> Platform:
        path = f"/api/dcim/platforms/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=PlatformRequest,
            body=body,
            response_model=Platform,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedPlatformRequest) -> Platform:
        path = f"/api/dcim/platforms/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedPlatformRequest,
            body=body,
            response_model=Platform,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/platforms/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimPowerFeedsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def trace(self) -> DcimPowerFeedsTrace:
        return DcimPowerFeedsTrace(self._api)

    async def list(
        self, query: DcimPowerFeedsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedPowerFeedList:
        path = "/api/dcim/power-feeds/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimPowerFeedsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedPowerFeedList,
            return_none_on_404=False,
        )

    async def create(self, body: WritablePowerFeedRequest) -> PowerFeed:
        path = "/api/dcim/power-feeds/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerFeedRequest,
            body=body,
            response_model=PowerFeed,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[PowerFeedRequest]) -> list[PowerFeed]:
        path = "/api/dcim/power-feeds/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerFeedRequest],
            body=body,
            response_model=list[PowerFeed],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[PowerFeedRequest]) -> list[PowerFeed]:
        path = "/api/dcim/power-feeds/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerFeedRequest],
            body=body,
            response_model=list[PowerFeed],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[PowerFeedRequest]) -> None:
        path = "/api/dcim/power-feeds/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerFeedRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> PowerFeed | None:
        path = f"/api/dcim/power-feeds/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=PowerFeed,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritablePowerFeedRequest) -> PowerFeed:
        path = f"/api/dcim/power-feeds/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerFeedRequest,
            body=body,
            response_model=PowerFeed,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritablePowerFeedRequest
    ) -> PowerFeed:
        path = f"/api/dcim/power-feeds/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritablePowerFeedRequest,
            body=body,
            response_model=PowerFeed,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/power-feeds/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimPowerFeedsTrace(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> PowerFeed:
        path = f"/api/dcim/power-feeds/{id}/trace/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=PowerFeed,
            return_none_on_404=False,
        )


class DcimPowerOutletTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimPowerOutletTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedPowerOutletTemplateList:
        path = "/api/dcim/power-outlet-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimPowerOutletTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedPowerOutletTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: WritablePowerOutletTemplateRequest) -> PowerOutletTemplate:
        path = "/api/dcim/power-outlet-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerOutletTemplateRequest,
            body=body,
            response_model=PowerOutletTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[PowerOutletTemplateRequest]
    ) -> list[PowerOutletTemplate]:
        path = "/api/dcim/power-outlet-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerOutletTemplateRequest],
            body=body,
            response_model=list[PowerOutletTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[PowerOutletTemplateRequest]
    ) -> list[PowerOutletTemplate]:
        path = "/api/dcim/power-outlet-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerOutletTemplateRequest],
            body=body,
            response_model=list[PowerOutletTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[PowerOutletTemplateRequest]) -> None:
        path = "/api/dcim/power-outlet-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerOutletTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> PowerOutletTemplate | None:
        path = f"/api/dcim/power-outlet-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=PowerOutletTemplate,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritablePowerOutletTemplateRequest
    ) -> PowerOutletTemplate:
        path = f"/api/dcim/power-outlet-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerOutletTemplateRequest,
            body=body,
            response_model=PowerOutletTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritablePowerOutletTemplateRequest
    ) -> PowerOutletTemplate:
        path = f"/api/dcim/power-outlet-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritablePowerOutletTemplateRequest,
            body=body,
            response_model=PowerOutletTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/power-outlet-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimPowerOutletsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def trace(self) -> DcimPowerOutletsTrace:
        return DcimPowerOutletsTrace(self._api)

    async def list(
        self, query: DcimPowerOutletsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedPowerOutletList:
        path = "/api/dcim/power-outlets/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimPowerOutletsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedPowerOutletList,
            return_none_on_404=False,
        )

    async def create(self, body: WritablePowerOutletRequest) -> PowerOutlet:
        path = "/api/dcim/power-outlets/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerOutletRequest,
            body=body,
            response_model=PowerOutlet,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[PowerOutletRequest]) -> list[PowerOutlet]:
        path = "/api/dcim/power-outlets/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerOutletRequest],
            body=body,
            response_model=list[PowerOutlet],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[PowerOutletRequest]) -> list[PowerOutlet]:
        path = "/api/dcim/power-outlets/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerOutletRequest],
            body=body,
            response_model=list[PowerOutlet],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[PowerOutletRequest]) -> None:
        path = "/api/dcim/power-outlets/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerOutletRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> PowerOutlet | None:
        path = f"/api/dcim/power-outlets/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=PowerOutlet,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritablePowerOutletRequest) -> PowerOutlet:
        path = f"/api/dcim/power-outlets/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerOutletRequest,
            body=body,
            response_model=PowerOutlet,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritablePowerOutletRequest
    ) -> PowerOutlet:
        path = f"/api/dcim/power-outlets/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritablePowerOutletRequest,
            body=body,
            response_model=PowerOutlet,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/power-outlets/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimPowerOutletsTrace(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> PowerOutlet:
        path = f"/api/dcim/power-outlets/{id}/trace/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=PowerOutlet,
            return_none_on_404=False,
        )


class DcimPowerPanelsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimPowerPanelsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedPowerPanelList:
        path = "/api/dcim/power-panels/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimPowerPanelsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedPowerPanelList,
            return_none_on_404=False,
        )

    async def create(self, body: PowerPanelRequest) -> PowerPanel:
        path = "/api/dcim/power-panels/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=PowerPanelRequest,
            body=body,
            response_model=PowerPanel,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[PowerPanelRequest]) -> list[PowerPanel]:
        path = "/api/dcim/power-panels/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerPanelRequest],
            body=body,
            response_model=list[PowerPanel],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[PowerPanelRequest]) -> list[PowerPanel]:
        path = "/api/dcim/power-panels/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerPanelRequest],
            body=body,
            response_model=list[PowerPanel],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[PowerPanelRequest]) -> None:
        path = "/api/dcim/power-panels/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerPanelRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> PowerPanel | None:
        path = f"/api/dcim/power-panels/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=PowerPanel,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: PowerPanelRequest) -> PowerPanel:
        path = f"/api/dcim/power-panels/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=PowerPanelRequest,
            body=body,
            response_model=PowerPanel,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedPowerPanelRequest) -> PowerPanel:
        path = f"/api/dcim/power-panels/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedPowerPanelRequest,
            body=body,
            response_model=PowerPanel,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/power-panels/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimPowerPortTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimPowerPortTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedPowerPortTemplateList:
        path = "/api/dcim/power-port-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimPowerPortTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedPowerPortTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: WritablePowerPortTemplateRequest) -> PowerPortTemplate:
        path = "/api/dcim/power-port-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerPortTemplateRequest,
            body=body,
            response_model=PowerPortTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[PowerPortTemplateRequest]) -> list[PowerPortTemplate]:
        path = "/api/dcim/power-port-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerPortTemplateRequest],
            body=body,
            response_model=list[PowerPortTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[PowerPortTemplateRequest]
    ) -> list[PowerPortTemplate]:
        path = "/api/dcim/power-port-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerPortTemplateRequest],
            body=body,
            response_model=list[PowerPortTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[PowerPortTemplateRequest]) -> None:
        path = "/api/dcim/power-port-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerPortTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> PowerPortTemplate | None:
        path = f"/api/dcim/power-port-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=PowerPortTemplate,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritablePowerPortTemplateRequest
    ) -> PowerPortTemplate:
        path = f"/api/dcim/power-port-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerPortTemplateRequest,
            body=body,
            response_model=PowerPortTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritablePowerPortTemplateRequest
    ) -> PowerPortTemplate:
        path = f"/api/dcim/power-port-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritablePowerPortTemplateRequest,
            body=body,
            response_model=PowerPortTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/power-port-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimPowerPortsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def trace(self) -> DcimPowerPortsTrace:
        return DcimPowerPortsTrace(self._api)

    async def list(
        self, query: DcimPowerPortsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedPowerPortList:
        path = "/api/dcim/power-ports/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimPowerPortsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedPowerPortList,
            return_none_on_404=False,
        )

    async def create(self, body: WritablePowerPortRequest) -> PowerPort:
        path = "/api/dcim/power-ports/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerPortRequest,
            body=body,
            response_model=PowerPort,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[PowerPortRequest]) -> list[PowerPort]:
        path = "/api/dcim/power-ports/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerPortRequest],
            body=body,
            response_model=list[PowerPort],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[PowerPortRequest]) -> list[PowerPort]:
        path = "/api/dcim/power-ports/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerPortRequest],
            body=body,
            response_model=list[PowerPort],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[PowerPortRequest]) -> None:
        path = "/api/dcim/power-ports/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[PowerPortRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> PowerPort | None:
        path = f"/api/dcim/power-ports/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=PowerPort,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritablePowerPortRequest) -> PowerPort:
        path = f"/api/dcim/power-ports/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritablePowerPortRequest,
            body=body,
            response_model=PowerPort,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritablePowerPortRequest
    ) -> PowerPort:
        path = f"/api/dcim/power-ports/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritablePowerPortRequest,
            body=body,
            response_model=PowerPort,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/power-ports/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimPowerPortsTrace(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> PowerPort:
        path = f"/api/dcim/power-ports/{id}/trace/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=PowerPort,
            return_none_on_404=False,
        )


class DcimRackReservationsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimRackReservationsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRackReservationList:
        path = "/api/dcim/rack-reservations/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimRackReservationsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRackReservationList,
            return_none_on_404=False,
        )

    async def create(self, body: RackReservationRequest) -> RackReservation:
        path = "/api/dcim/rack-reservations/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=RackReservationRequest,
            body=body,
            response_model=RackReservation,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RackReservationRequest]) -> list[RackReservation]:
        path = "/api/dcim/rack-reservations/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RackReservationRequest],
            body=body,
            response_model=list[RackReservation],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[RackReservationRequest]
    ) -> list[RackReservation]:
        path = "/api/dcim/rack-reservations/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RackReservationRequest],
            body=body,
            response_model=list[RackReservation],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RackReservationRequest]) -> None:
        path = "/api/dcim/rack-reservations/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RackReservationRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> RackReservation | None:
        path = f"/api/dcim/rack-reservations/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=RackReservation,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: RackReservationRequest) -> RackReservation:
        path = f"/api/dcim/rack-reservations/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=RackReservationRequest,
            body=body,
            response_model=RackReservation,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedRackReservationRequest
    ) -> RackReservation:
        path = f"/api/dcim/rack-reservations/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedRackReservationRequest,
            body=body,
            response_model=RackReservation,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/rack-reservations/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimRackRolesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimRackRolesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRackRoleList:
        path = "/api/dcim/rack-roles/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimRackRolesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRackRoleList,
            return_none_on_404=False,
        )

    async def create(self, body: RackRoleRequest) -> RackRole:
        path = "/api/dcim/rack-roles/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=RackRoleRequest,
            body=body,
            response_model=RackRole,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RackRoleRequest]) -> list[RackRole]:
        path = "/api/dcim/rack-roles/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RackRoleRequest],
            body=body,
            response_model=list[RackRole],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[RackRoleRequest]) -> list[RackRole]:
        path = "/api/dcim/rack-roles/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RackRoleRequest],
            body=body,
            response_model=list[RackRole],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RackRoleRequest]) -> None:
        path = "/api/dcim/rack-roles/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RackRoleRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> RackRole | None:
        path = f"/api/dcim/rack-roles/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=RackRole,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: RackRoleRequest) -> RackRole:
        path = f"/api/dcim/rack-roles/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=RackRoleRequest,
            body=body,
            response_model=RackRole,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedRackRoleRequest) -> RackRole:
        path = f"/api/dcim/rack-roles/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedRackRoleRequest,
            body=body,
            response_model=RackRole,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/rack-roles/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimRackTypesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimRackTypesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRackTypeList:
        path = "/api/dcim/rack-types/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimRackTypesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRackTypeList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableRackTypeRequest) -> RackType:
        path = "/api/dcim/rack-types/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableRackTypeRequest,
            body=body,
            response_model=RackType,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RackTypeRequest]) -> list[RackType]:
        path = "/api/dcim/rack-types/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RackTypeRequest],
            body=body,
            response_model=list[RackType],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[RackTypeRequest]) -> list[RackType]:
        path = "/api/dcim/rack-types/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RackTypeRequest],
            body=body,
            response_model=list[RackType],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RackTypeRequest]) -> None:
        path = "/api/dcim/rack-types/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RackTypeRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> RackType | None:
        path = f"/api/dcim/rack-types/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=RackType,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableRackTypeRequest) -> RackType:
        path = f"/api/dcim/rack-types/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableRackTypeRequest,
            body=body,
            response_model=RackType,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableRackTypeRequest) -> RackType:
        path = f"/api/dcim/rack-types/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableRackTypeRequest,
            body=body,
            response_model=RackType,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/rack-types/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimRacksEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def elevation(self) -> DcimRacksElevation:
        return DcimRacksElevation(self._api)

    async def list(
        self, query: DcimRacksRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRackList:
        path = "/api/dcim/racks/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimRacksRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRackList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableRackRequest) -> Rack:
        path = "/api/dcim/racks/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableRackRequest,
            body=body,
            response_model=Rack,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RackRequest]) -> list[Rack]:
        path = "/api/dcim/racks/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RackRequest],
            body=body,
            response_model=list[Rack],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[RackRequest]) -> list[Rack]:
        path = "/api/dcim/racks/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RackRequest],
            body=body,
            response_model=list[Rack],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RackRequest]) -> None:
        path = "/api/dcim/racks/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RackRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Rack | None:
        path = f"/api/dcim/racks/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Rack,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableRackRequest) -> Rack:
        path = f"/api/dcim/racks/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableRackRequest,
            body=body,
            response_model=Rack,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableRackRequest) -> Rack:
        path = f"/api/dcim/racks/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableRackRequest,
            body=body,
            response_model=Rack,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/racks/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimRacksElevation(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, id: int | str, query: DcimRacksElevationGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRackUnitList:
        path = f"/api/dcim/racks/{id}/elevation/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimRacksElevationGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRackUnitList,
            return_none_on_404=False,
        )


class DcimRearPortTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimRearPortTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRearPortTemplateList:
        path = "/api/dcim/rear-port-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimRearPortTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRearPortTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableRearPortTemplateRequest) -> RearPortTemplate:
        path = "/api/dcim/rear-port-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableRearPortTemplateRequest,
            body=body,
            response_model=RearPortTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RearPortTemplateRequest]) -> list[RearPortTemplate]:
        path = "/api/dcim/rear-port-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RearPortTemplateRequest],
            body=body,
            response_model=list[RearPortTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[RearPortTemplateRequest]
    ) -> list[RearPortTemplate]:
        path = "/api/dcim/rear-port-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RearPortTemplateRequest],
            body=body,
            response_model=list[RearPortTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RearPortTemplateRequest]) -> None:
        path = "/api/dcim/rear-port-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RearPortTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> RearPortTemplate | None:
        path = f"/api/dcim/rear-port-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=RearPortTemplate,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableRearPortTemplateRequest
    ) -> RearPortTemplate:
        path = f"/api/dcim/rear-port-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableRearPortTemplateRequest,
            body=body,
            response_model=RearPortTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableRearPortTemplateRequest
    ) -> RearPortTemplate:
        path = f"/api/dcim/rear-port-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableRearPortTemplateRequest,
            body=body,
            response_model=RearPortTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/rear-port-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimRearPortsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def paths(self) -> DcimRearPortsPaths:
        return DcimRearPortsPaths(self._api)

    async def list(
        self, query: DcimRearPortsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRearPortList:
        path = "/api/dcim/rear-ports/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimRearPortsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRearPortList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableRearPortRequest) -> RearPort:
        path = "/api/dcim/rear-ports/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableRearPortRequest,
            body=body,
            response_model=RearPort,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RearPortRequest]) -> list[RearPort]:
        path = "/api/dcim/rear-ports/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RearPortRequest],
            body=body,
            response_model=list[RearPort],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[RearPortRequest]) -> list[RearPort]:
        path = "/api/dcim/rear-ports/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RearPortRequest],
            body=body,
            response_model=list[RearPort],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RearPortRequest]) -> None:
        path = "/api/dcim/rear-ports/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RearPortRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> RearPort | None:
        path = f"/api/dcim/rear-ports/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=RearPort,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableRearPortRequest) -> RearPort:
        path = f"/api/dcim/rear-ports/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableRearPortRequest,
            body=body,
            response_model=RearPort,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableRearPortRequest) -> RearPort:
        path = f"/api/dcim/rear-ports/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableRearPortRequest,
            body=body,
            response_model=RearPort,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/rear-ports/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimRearPortsPaths(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> RearPort:
        path = f"/api/dcim/rear-ports/{id}/paths/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=RearPort,
            return_none_on_404=False,
        )


class DcimRegionsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimRegionsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRegionList:
        path = "/api/dcim/regions/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimRegionsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRegionList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableRegionRequest) -> Region:
        path = "/api/dcim/regions/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableRegionRequest,
            body=body,
            response_model=Region,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RegionRequest]) -> list[Region]:
        path = "/api/dcim/regions/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RegionRequest],
            body=body,
            response_model=list[Region],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[RegionRequest]) -> list[Region]:
        path = "/api/dcim/regions/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RegionRequest],
            body=body,
            response_model=list[Region],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RegionRequest]) -> None:
        path = "/api/dcim/regions/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RegionRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Region | None:
        path = f"/api/dcim/regions/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Region,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableRegionRequest) -> Region:
        path = f"/api/dcim/regions/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableRegionRequest,
            body=body,
            response_model=Region,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableRegionRequest) -> Region:
        path = f"/api/dcim/regions/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableRegionRequest,
            body=body,
            response_model=Region,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/regions/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimSiteGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimSiteGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedSiteGroupList:
        path = "/api/dcim/site-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimSiteGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedSiteGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableSiteGroupRequest) -> SiteGroup:
        path = "/api/dcim/site-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableSiteGroupRequest,
            body=body,
            response_model=SiteGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[SiteGroupRequest]) -> list[SiteGroup]:
        path = "/api/dcim/site-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[SiteGroupRequest],
            body=body,
            response_model=list[SiteGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[SiteGroupRequest]) -> list[SiteGroup]:
        path = "/api/dcim/site-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[SiteGroupRequest],
            body=body,
            response_model=list[SiteGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[SiteGroupRequest]) -> None:
        path = "/api/dcim/site-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[SiteGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> SiteGroup | None:
        path = f"/api/dcim/site-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=SiteGroup,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableSiteGroupRequest) -> SiteGroup:
        path = f"/api/dcim/site-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableSiteGroupRequest,
            body=body,
            response_model=SiteGroup,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableSiteGroupRequest
    ) -> SiteGroup:
        path = f"/api/dcim/site-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableSiteGroupRequest,
            body=body,
            response_model=SiteGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/site-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimSitesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimSitesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedSiteList:
        path = "/api/dcim/sites/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimSitesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedSiteList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableSiteRequest) -> Site:
        path = "/api/dcim/sites/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableSiteRequest,
            body=body,
            response_model=Site,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[SiteRequest]) -> list[Site]:
        path = "/api/dcim/sites/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[SiteRequest],
            body=body,
            response_model=list[Site],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[SiteRequest]) -> list[Site]:
        path = "/api/dcim/sites/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[SiteRequest],
            body=body,
            response_model=list[Site],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[SiteRequest]) -> None:
        path = "/api/dcim/sites/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[SiteRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Site | None:
        path = f"/api/dcim/sites/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Site,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableSiteRequest) -> Site:
        path = f"/api/dcim/sites/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableSiteRequest,
            body=body,
            response_model=Site,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableSiteRequest) -> Site:
        path = f"/api/dcim/sites/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableSiteRequest,
            body=body,
            response_model=Site,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/sites/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimVirtualChassisEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimVirtualChassisRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVirtualChassisList:
        path = "/api/dcim/virtual-chassis/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimVirtualChassisRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVirtualChassisList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableVirtualChassisRequest) -> VirtualChassis:
        path = "/api/dcim/virtual-chassis/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualChassisRequest,
            body=body,
            response_model=VirtualChassis,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[VirtualChassisRequest]) -> list[VirtualChassis]:
        path = "/api/dcim/virtual-chassis/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualChassisRequest],
            body=body,
            response_model=list[VirtualChassis],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[VirtualChassisRequest]) -> list[VirtualChassis]:
        path = "/api/dcim/virtual-chassis/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualChassisRequest],
            body=body,
            response_model=list[VirtualChassis],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VirtualChassisRequest]) -> None:
        path = "/api/dcim/virtual-chassis/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualChassisRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VirtualChassis | None:
        path = f"/api/dcim/virtual-chassis/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VirtualChassis,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableVirtualChassisRequest) -> VirtualChassis:
        path = f"/api/dcim/virtual-chassis/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualChassisRequest,
            body=body,
            response_model=VirtualChassis,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableVirtualChassisRequest
    ) -> VirtualChassis:
        path = f"/api/dcim/virtual-chassis/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableVirtualChassisRequest,
            body=body,
            response_model=VirtualChassis,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/virtual-chassis/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class DcimVirtualDeviceContextsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: DcimVirtualDeviceContextsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVirtualDeviceContextList:
        path = "/api/dcim/virtual-device-contexts/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=DcimVirtualDeviceContextsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVirtualDeviceContextList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableVirtualDeviceContextRequest) -> VirtualDeviceContext:
        path = "/api/dcim/virtual-device-contexts/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualDeviceContextRequest,
            body=body,
            response_model=VirtualDeviceContext,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[VirtualDeviceContextRequest]
    ) -> list[VirtualDeviceContext]:
        path = "/api/dcim/virtual-device-contexts/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualDeviceContextRequest],
            body=body,
            response_model=list[VirtualDeviceContext],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[VirtualDeviceContextRequest]
    ) -> list[VirtualDeviceContext]:
        path = "/api/dcim/virtual-device-contexts/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualDeviceContextRequest],
            body=body,
            response_model=list[VirtualDeviceContext],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VirtualDeviceContextRequest]) -> None:
        path = "/api/dcim/virtual-device-contexts/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualDeviceContextRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VirtualDeviceContext | None:
        path = f"/api/dcim/virtual-device-contexts/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VirtualDeviceContext,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableVirtualDeviceContextRequest
    ) -> VirtualDeviceContext:
        path = f"/api/dcim/virtual-device-contexts/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualDeviceContextRequest,
            body=body,
            response_model=VirtualDeviceContext,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableVirtualDeviceContextRequest
    ) -> VirtualDeviceContext:
        path = f"/api/dcim/virtual-device-contexts/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableVirtualDeviceContextRequest,
            body=body,
            response_model=VirtualDeviceContext,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/dcim/virtual-device-contexts/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasBookmarksEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasBookmarksRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedBookmarkList:
        path = "/api/extras/bookmarks/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasBookmarksRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedBookmarkList,
            return_none_on_404=False,
        )

    async def create(self, body: BookmarkRequest) -> Bookmark:
        path = "/api/extras/bookmarks/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=BookmarkRequest,
            body=body,
            response_model=Bookmark,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[BookmarkRequest]) -> list[Bookmark]:
        path = "/api/extras/bookmarks/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[BookmarkRequest],
            body=body,
            response_model=list[Bookmark],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[BookmarkRequest]) -> list[Bookmark]:
        path = "/api/extras/bookmarks/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[BookmarkRequest],
            body=body,
            response_model=list[Bookmark],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[BookmarkRequest]) -> None:
        path = "/api/extras/bookmarks/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[BookmarkRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Bookmark | None:
        path = f"/api/extras/bookmarks/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Bookmark,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: BookmarkRequest) -> Bookmark:
        path = f"/api/extras/bookmarks/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=BookmarkRequest,
            body=body,
            response_model=Bookmark,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedBookmarkRequest) -> Bookmark:
        path = f"/api/extras/bookmarks/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedBookmarkRequest,
            body=body,
            response_model=Bookmark,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/bookmarks/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasConfigContextsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def sync(self) -> ExtrasConfigContextsSync:
        return ExtrasConfigContextsSync(self._api)

    async def list(
        self, query: ExtrasConfigContextsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedConfigContextList:
        path = "/api/extras/config-contexts/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasConfigContextsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedConfigContextList,
            return_none_on_404=False,
        )

    async def create(self, body: ConfigContextRequest) -> ConfigContext:
        path = "/api/extras/config-contexts/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ConfigContextRequest,
            body=body,
            response_model=ConfigContext,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ConfigContextRequest]) -> list[ConfigContext]:
        path = "/api/extras/config-contexts/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ConfigContextRequest],
            body=body,
            response_model=list[ConfigContext],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ConfigContextRequest]) -> list[ConfigContext]:
        path = "/api/extras/config-contexts/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ConfigContextRequest],
            body=body,
            response_model=list[ConfigContext],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ConfigContextRequest]) -> None:
        path = "/api/extras/config-contexts/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ConfigContextRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ConfigContext | None:
        path = f"/api/extras/config-contexts/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ConfigContext,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ConfigContextRequest) -> ConfigContext:
        path = f"/api/extras/config-contexts/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ConfigContextRequest,
            body=body,
            response_model=ConfigContext,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedConfigContextRequest
    ) -> ConfigContext:
        path = f"/api/extras/config-contexts/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedConfigContextRequest,
            body=body,
            response_model=ConfigContext,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/config-contexts/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasConfigContextsSync(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(self, id: int | str, body: ConfigContextRequest) -> ConfigContext:
        path = f"/api/extras/config-contexts/{id}/sync/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ConfigContextRequest,
            body=body,
            response_model=ConfigContext,
            return_none_on_404=False,
        )


class ExtrasConfigTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def render(self) -> ExtrasConfigTemplatesRender:
        return ExtrasConfigTemplatesRender(self._api)

    @property
    def sync(self) -> ExtrasConfigTemplatesSync:
        return ExtrasConfigTemplatesSync(self._api)

    async def list(
        self, query: ExtrasConfigTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedConfigTemplateList:
        path = "/api/extras/config-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasConfigTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedConfigTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: ConfigTemplateRequest) -> ConfigTemplate:
        path = "/api/extras/config-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ConfigTemplateRequest,
            body=body,
            response_model=ConfigTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ConfigTemplateRequest]) -> list[ConfigTemplate]:
        path = "/api/extras/config-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ConfigTemplateRequest],
            body=body,
            response_model=list[ConfigTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ConfigTemplateRequest]) -> list[ConfigTemplate]:
        path = "/api/extras/config-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ConfigTemplateRequest],
            body=body,
            response_model=list[ConfigTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ConfigTemplateRequest]) -> None:
        path = "/api/extras/config-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ConfigTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ConfigTemplate | None:
        path = f"/api/extras/config-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ConfigTemplate,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ConfigTemplateRequest) -> ConfigTemplate:
        path = f"/api/extras/config-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ConfigTemplateRequest,
            body=body,
            response_model=ConfigTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedConfigTemplateRequest
    ) -> ConfigTemplate:
        path = f"/api/extras/config-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedConfigTemplateRequest,
            body=body,
            response_model=ConfigTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/config-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasConfigTemplatesRender(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(
        self,
        id: int | str,
        body: ConfigTemplateRequest,
        query: ExtrasConfigTemplatesRenderPostQuery | dict[str, Any] | None = None,
    ) -> ConfigTemplate:
        path = f"/api/extras/config-templates/{id}/render/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=ExtrasConfigTemplatesRenderPostQuery,
            query=query,
            body_model=ConfigTemplateRequest,
            body=body,
            response_model=ConfigTemplate,
            return_none_on_404=False,
        )


class ExtrasConfigTemplatesSync(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(self, id: int | str, body: ConfigTemplateRequest) -> ConfigTemplate:
        path = f"/api/extras/config-templates/{id}/sync/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ConfigTemplateRequest,
            body=body,
            response_model=ConfigTemplate,
            return_none_on_404=False,
        )


class ExtrasCustomFieldChoiceSetsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def choices(self) -> ExtrasCustomFieldChoiceSetsChoices:
        return ExtrasCustomFieldChoiceSetsChoices(self._api)

    async def list(
        self, query: ExtrasCustomFieldChoiceSetsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCustomFieldChoiceSetList:
        path = "/api/extras/custom-field-choice-sets/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasCustomFieldChoiceSetsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCustomFieldChoiceSetList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableCustomFieldChoiceSetRequest) -> CustomFieldChoiceSet:
        path = "/api/extras/custom-field-choice-sets/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableCustomFieldChoiceSetRequest,
            body=body,
            response_model=CustomFieldChoiceSet,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[CustomFieldChoiceSetRequest]
    ) -> list[CustomFieldChoiceSet]:
        path = "/api/extras/custom-field-choice-sets/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CustomFieldChoiceSetRequest],
            body=body,
            response_model=list[CustomFieldChoiceSet],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[CustomFieldChoiceSetRequest]
    ) -> list[CustomFieldChoiceSet]:
        path = "/api/extras/custom-field-choice-sets/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CustomFieldChoiceSetRequest],
            body=body,
            response_model=list[CustomFieldChoiceSet],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CustomFieldChoiceSetRequest]) -> None:
        path = "/api/extras/custom-field-choice-sets/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CustomFieldChoiceSetRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> CustomFieldChoiceSet | None:
        path = f"/api/extras/custom-field-choice-sets/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CustomFieldChoiceSet,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableCustomFieldChoiceSetRequest
    ) -> CustomFieldChoiceSet:
        path = f"/api/extras/custom-field-choice-sets/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableCustomFieldChoiceSetRequest,
            body=body,
            response_model=CustomFieldChoiceSet,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableCustomFieldChoiceSetRequest
    ) -> CustomFieldChoiceSet:
        path = f"/api/extras/custom-field-choice-sets/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableCustomFieldChoiceSetRequest,
            body=body,
            response_model=CustomFieldChoiceSet,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/custom-field-choice-sets/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasCustomFieldChoiceSetsChoices(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> CustomFieldChoiceSet:
        path = f"/api/extras/custom-field-choice-sets/{id}/choices/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CustomFieldChoiceSet,
            return_none_on_404=False,
        )


class ExtrasCustomFieldsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasCustomFieldsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCustomFieldList:
        path = "/api/extras/custom-fields/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasCustomFieldsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCustomFieldList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableCustomFieldRequest) -> CustomField:
        path = "/api/extras/custom-fields/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableCustomFieldRequest,
            body=body,
            response_model=CustomField,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[CustomFieldRequest]) -> list[CustomField]:
        path = "/api/extras/custom-fields/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CustomFieldRequest],
            body=body,
            response_model=list[CustomField],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[CustomFieldRequest]) -> list[CustomField]:
        path = "/api/extras/custom-fields/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CustomFieldRequest],
            body=body,
            response_model=list[CustomField],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CustomFieldRequest]) -> None:
        path = "/api/extras/custom-fields/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CustomFieldRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> CustomField | None:
        path = f"/api/extras/custom-fields/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CustomField,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableCustomFieldRequest) -> CustomField:
        path = f"/api/extras/custom-fields/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableCustomFieldRequest,
            body=body,
            response_model=CustomField,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableCustomFieldRequest
    ) -> CustomField:
        path = f"/api/extras/custom-fields/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableCustomFieldRequest,
            body=body,
            response_model=CustomField,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/custom-fields/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasCustomLinksEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasCustomLinksRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedCustomLinkList:
        path = "/api/extras/custom-links/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasCustomLinksRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedCustomLinkList,
            return_none_on_404=False,
        )

    async def create(self, body: CustomLinkRequest) -> CustomLink:
        path = "/api/extras/custom-links/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=CustomLinkRequest,
            body=body,
            response_model=CustomLink,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[CustomLinkRequest]) -> list[CustomLink]:
        path = "/api/extras/custom-links/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[CustomLinkRequest],
            body=body,
            response_model=list[CustomLink],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[CustomLinkRequest]) -> list[CustomLink]:
        path = "/api/extras/custom-links/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[CustomLinkRequest],
            body=body,
            response_model=list[CustomLink],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[CustomLinkRequest]) -> None:
        path = "/api/extras/custom-links/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[CustomLinkRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> CustomLink | None:
        path = f"/api/extras/custom-links/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=CustomLink,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: CustomLinkRequest) -> CustomLink:
        path = f"/api/extras/custom-links/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=CustomLinkRequest,
            body=body,
            response_model=CustomLink,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedCustomLinkRequest) -> CustomLink:
        path = f"/api/extras/custom-links/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedCustomLinkRequest,
            body=body,
            response_model=CustomLink,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/custom-links/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasDashboardEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self) -> Dashboard:
        path = "/api/extras/dashboard/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Dashboard,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: DashboardRequest) -> Dashboard:
        path = "/api/extras/dashboard/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=DashboardRequest,
            body=body,
            response_model=Dashboard,
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: PatchedDashboardRequest) -> Dashboard:
        path = "/api/extras/dashboard/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedDashboardRequest,
            body=body,
            response_model=Dashboard,
            return_none_on_404=False,
        )

    async def bulk_delete(self) -> None:
        path = "/api/extras/dashboard/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasEventRulesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasEventRulesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedEventRuleList:
        path = "/api/extras/event-rules/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasEventRulesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedEventRuleList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableEventRuleRequest) -> EventRule:
        path = "/api/extras/event-rules/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableEventRuleRequest,
            body=body,
            response_model=EventRule,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[EventRuleRequest]) -> list[EventRule]:
        path = "/api/extras/event-rules/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[EventRuleRequest],
            body=body,
            response_model=list[EventRule],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[EventRuleRequest]) -> list[EventRule]:
        path = "/api/extras/event-rules/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[EventRuleRequest],
            body=body,
            response_model=list[EventRule],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[EventRuleRequest]) -> None:
        path = "/api/extras/event-rules/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[EventRuleRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> EventRule | None:
        path = f"/api/extras/event-rules/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=EventRule,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableEventRuleRequest) -> EventRule:
        path = f"/api/extras/event-rules/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableEventRuleRequest,
            body=body,
            response_model=EventRule,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableEventRuleRequest
    ) -> EventRule:
        path = f"/api/extras/event-rules/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableEventRuleRequest,
            body=body,
            response_model=EventRule,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/event-rules/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasExportTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def sync(self) -> ExtrasExportTemplatesSync:
        return ExtrasExportTemplatesSync(self._api)

    async def list(
        self, query: ExtrasExportTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedExportTemplateList:
        path = "/api/extras/export-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasExportTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedExportTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: ExportTemplateRequest) -> ExportTemplate:
        path = "/api/extras/export-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ExportTemplateRequest,
            body=body,
            response_model=ExportTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ExportTemplateRequest]) -> list[ExportTemplate]:
        path = "/api/extras/export-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ExportTemplateRequest],
            body=body,
            response_model=list[ExportTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ExportTemplateRequest]) -> list[ExportTemplate]:
        path = "/api/extras/export-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ExportTemplateRequest],
            body=body,
            response_model=list[ExportTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ExportTemplateRequest]) -> None:
        path = "/api/extras/export-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ExportTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ExportTemplate | None:
        path = f"/api/extras/export-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ExportTemplate,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ExportTemplateRequest) -> ExportTemplate:
        path = f"/api/extras/export-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ExportTemplateRequest,
            body=body,
            response_model=ExportTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedExportTemplateRequest
    ) -> ExportTemplate:
        path = f"/api/extras/export-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedExportTemplateRequest,
            body=body,
            response_model=ExportTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/export-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasExportTemplatesSync(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(self, id: int | str, body: ExportTemplateRequest) -> ExportTemplate:
        path = f"/api/extras/export-templates/{id}/sync/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ExportTemplateRequest,
            body=body,
            response_model=ExportTemplate,
            return_none_on_404=False,
        )


class ExtrasImageAttachmentsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasImageAttachmentsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedImageAttachmentList:
        path = "/api/extras/image-attachments/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasImageAttachmentsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedImageAttachmentList,
            return_none_on_404=False,
        )

    async def create(self, body: ImageAttachmentRequest) -> ImageAttachment:
        path = "/api/extras/image-attachments/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ImageAttachmentRequest,
            body=body,
            response_model=ImageAttachment,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ImageAttachmentRequest]) -> list[ImageAttachment]:
        path = "/api/extras/image-attachments/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ImageAttachmentRequest],
            body=body,
            response_model=list[ImageAttachment],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ImageAttachmentRequest]
    ) -> list[ImageAttachment]:
        path = "/api/extras/image-attachments/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ImageAttachmentRequest],
            body=body,
            response_model=list[ImageAttachment],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ImageAttachmentRequest]) -> None:
        path = "/api/extras/image-attachments/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ImageAttachmentRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ImageAttachment | None:
        path = f"/api/extras/image-attachments/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ImageAttachment,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ImageAttachmentRequest) -> ImageAttachment:
        path = f"/api/extras/image-attachments/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ImageAttachmentRequest,
            body=body,
            response_model=ImageAttachment,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedImageAttachmentRequest
    ) -> ImageAttachment:
        path = f"/api/extras/image-attachments/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedImageAttachmentRequest,
            body=body,
            response_model=ImageAttachment,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/image-attachments/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasJournalEntriesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasJournalEntriesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedJournalEntryList:
        path = "/api/extras/journal-entries/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasJournalEntriesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedJournalEntryList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableJournalEntryRequest) -> JournalEntry:
        path = "/api/extras/journal-entries/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableJournalEntryRequest,
            body=body,
            response_model=JournalEntry,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[JournalEntryRequest]) -> list[JournalEntry]:
        path = "/api/extras/journal-entries/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[JournalEntryRequest],
            body=body,
            response_model=list[JournalEntry],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[JournalEntryRequest]) -> list[JournalEntry]:
        path = "/api/extras/journal-entries/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[JournalEntryRequest],
            body=body,
            response_model=list[JournalEntry],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[JournalEntryRequest]) -> None:
        path = "/api/extras/journal-entries/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[JournalEntryRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> JournalEntry | None:
        path = f"/api/extras/journal-entries/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=JournalEntry,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableJournalEntryRequest) -> JournalEntry:
        path = f"/api/extras/journal-entries/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableJournalEntryRequest,
            body=body,
            response_model=JournalEntry,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableJournalEntryRequest
    ) -> JournalEntry:
        path = f"/api/extras/journal-entries/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableJournalEntryRequest,
            body=body,
            response_model=JournalEntry,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/journal-entries/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasNotificationGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasNotificationGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedNotificationGroupList:
        path = "/api/extras/notification-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasNotificationGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedNotificationGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: NotificationGroupRequest) -> NotificationGroup:
        path = "/api/extras/notification-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=NotificationGroupRequest,
            body=body,
            response_model=NotificationGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[NotificationGroupRequest]) -> list[NotificationGroup]:
        path = "/api/extras/notification-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[NotificationGroupRequest],
            body=body,
            response_model=list[NotificationGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[NotificationGroupRequest]
    ) -> list[NotificationGroup]:
        path = "/api/extras/notification-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[NotificationGroupRequest],
            body=body,
            response_model=list[NotificationGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[NotificationGroupRequest]) -> None:
        path = "/api/extras/notification-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[NotificationGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> NotificationGroup | None:
        path = f"/api/extras/notification-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=NotificationGroup,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: NotificationGroupRequest) -> NotificationGroup:
        path = f"/api/extras/notification-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=NotificationGroupRequest,
            body=body,
            response_model=NotificationGroup,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedNotificationGroupRequest
    ) -> NotificationGroup:
        path = f"/api/extras/notification-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedNotificationGroupRequest,
            body=body,
            response_model=NotificationGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/notification-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasNotificationsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasNotificationsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedNotificationList:
        path = "/api/extras/notifications/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasNotificationsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedNotificationList,
            return_none_on_404=False,
        )

    async def create(self, body: NotificationRequest) -> Notification:
        path = "/api/extras/notifications/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=NotificationRequest,
            body=body,
            response_model=Notification,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[NotificationRequest]) -> list[Notification]:
        path = "/api/extras/notifications/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[NotificationRequest],
            body=body,
            response_model=list[Notification],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[NotificationRequest]) -> list[Notification]:
        path = "/api/extras/notifications/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[NotificationRequest],
            body=body,
            response_model=list[Notification],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[NotificationRequest]) -> None:
        path = "/api/extras/notifications/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[NotificationRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Notification | None:
        path = f"/api/extras/notifications/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Notification,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: NotificationRequest) -> Notification:
        path = f"/api/extras/notifications/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=NotificationRequest,
            body=body,
            response_model=Notification,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedNotificationRequest) -> Notification:
        path = f"/api/extras/notifications/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedNotificationRequest,
            body=body,
            response_model=Notification,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/notifications/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasObjectTypesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasObjectTypesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedObjectTypeList:
        path = "/api/extras/object-types/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasObjectTypesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedObjectTypeList,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ObjectType | None:
        path = f"/api/extras/object-types/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ObjectType,
            return_none_on_404=True,
        )


class ExtrasSavedFiltersEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasSavedFiltersRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedSavedFilterList:
        path = "/api/extras/saved-filters/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasSavedFiltersRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedSavedFilterList,
            return_none_on_404=False,
        )

    async def create(self, body: SavedFilterRequest) -> SavedFilter:
        path = "/api/extras/saved-filters/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=SavedFilterRequest,
            body=body,
            response_model=SavedFilter,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[SavedFilterRequest]) -> list[SavedFilter]:
        path = "/api/extras/saved-filters/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[SavedFilterRequest],
            body=body,
            response_model=list[SavedFilter],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[SavedFilterRequest]) -> list[SavedFilter]:
        path = "/api/extras/saved-filters/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[SavedFilterRequest],
            body=body,
            response_model=list[SavedFilter],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[SavedFilterRequest]) -> None:
        path = "/api/extras/saved-filters/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[SavedFilterRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> SavedFilter | None:
        path = f"/api/extras/saved-filters/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=SavedFilter,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: SavedFilterRequest) -> SavedFilter:
        path = f"/api/extras/saved-filters/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=SavedFilterRequest,
            body=body,
            response_model=SavedFilter,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedSavedFilterRequest) -> SavedFilter:
        path = f"/api/extras/saved-filters/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedSavedFilterRequest,
            body=body,
            response_model=SavedFilter,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/saved-filters/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasScriptsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasScriptsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedScriptList:
        path = "/api/extras/scripts/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasScriptsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedScriptList,
            return_none_on_404=False,
        )

    async def create(self) -> Script:
        path = "/api/extras/scripts/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Script,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Script | None:
        path = f"/api/extras/scripts/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Script,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ScriptInputRequest) -> Script:
        path = f"/api/extras/scripts/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ScriptInputRequest,
            body=body,
            response_model=Script,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedScriptInputRequest) -> Script:
        path = f"/api/extras/scripts/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedScriptInputRequest,
            body=body,
            response_model=Script,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/scripts/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasSubscriptionsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasSubscriptionsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedSubscriptionList:
        path = "/api/extras/subscriptions/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasSubscriptionsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedSubscriptionList,
            return_none_on_404=False,
        )

    async def create(self, body: SubscriptionRequest) -> Subscription:
        path = "/api/extras/subscriptions/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=SubscriptionRequest,
            body=body,
            response_model=Subscription,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[SubscriptionRequest]) -> list[Subscription]:
        path = "/api/extras/subscriptions/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[SubscriptionRequest],
            body=body,
            response_model=list[Subscription],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[SubscriptionRequest]) -> list[Subscription]:
        path = "/api/extras/subscriptions/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[SubscriptionRequest],
            body=body,
            response_model=list[Subscription],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[SubscriptionRequest]) -> None:
        path = "/api/extras/subscriptions/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[SubscriptionRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Subscription | None:
        path = f"/api/extras/subscriptions/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Subscription,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: SubscriptionRequest) -> Subscription:
        path = f"/api/extras/subscriptions/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=SubscriptionRequest,
            body=body,
            response_model=Subscription,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedSubscriptionRequest) -> Subscription:
        path = f"/api/extras/subscriptions/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedSubscriptionRequest,
            body=body,
            response_model=Subscription,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/subscriptions/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasTableConfigsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasTableConfigsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedTableConfigList:
        path = "/api/extras/table-configs/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasTableConfigsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedTableConfigList,
            return_none_on_404=False,
        )

    async def create(self, body: TableConfigRequest) -> TableConfig:
        path = "/api/extras/table-configs/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=TableConfigRequest,
            body=body,
            response_model=TableConfig,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[TableConfigRequest]) -> list[TableConfig]:
        path = "/api/extras/table-configs/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[TableConfigRequest],
            body=body,
            response_model=list[TableConfig],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[TableConfigRequest]) -> list[TableConfig]:
        path = "/api/extras/table-configs/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[TableConfigRequest],
            body=body,
            response_model=list[TableConfig],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[TableConfigRequest]) -> None:
        path = "/api/extras/table-configs/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[TableConfigRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> TableConfig | None:
        path = f"/api/extras/table-configs/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=TableConfig,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: TableConfigRequest) -> TableConfig:
        path = f"/api/extras/table-configs/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=TableConfigRequest,
            body=body,
            response_model=TableConfig,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedTableConfigRequest) -> TableConfig:
        path = f"/api/extras/table-configs/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedTableConfigRequest,
            body=body,
            response_model=TableConfig,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/table-configs/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasTaggedObjectsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasTaggedObjectsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedTaggedItemList:
        path = "/api/extras/tagged-objects/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasTaggedObjectsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedTaggedItemList,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> TaggedItem | None:
        path = f"/api/extras/tagged-objects/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=TaggedItem,
            return_none_on_404=True,
        )


class ExtrasTagsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasTagsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedTagList:
        path = "/api/extras/tags/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasTagsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedTagList,
            return_none_on_404=False,
        )

    async def create(self, body: TagRequest) -> Tag:
        path = "/api/extras/tags/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=TagRequest,
            body=body,
            response_model=Tag,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[TagRequest]) -> list[Tag]:
        path = "/api/extras/tags/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[TagRequest],
            body=body,
            response_model=list[Tag],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[TagRequest]) -> list[Tag]:
        path = "/api/extras/tags/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[TagRequest],
            body=body,
            response_model=list[Tag],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[TagRequest]) -> None:
        path = "/api/extras/tags/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[TagRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Tag | None:
        path = f"/api/extras/tags/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Tag,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: TagRequest) -> Tag:
        path = f"/api/extras/tags/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=TagRequest,
            body=body,
            response_model=Tag,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedTagRequest) -> Tag:
        path = f"/api/extras/tags/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedTagRequest,
            body=body,
            response_model=Tag,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/tags/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class ExtrasWebhooksEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: ExtrasWebhooksRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedWebhookList:
        path = "/api/extras/webhooks/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=ExtrasWebhooksRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedWebhookList,
            return_none_on_404=False,
        )

    async def create(self, body: WebhookRequest) -> Webhook:
        path = "/api/extras/webhooks/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WebhookRequest,
            body=body,
            response_model=Webhook,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[WebhookRequest]) -> list[Webhook]:
        path = "/api/extras/webhooks/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[WebhookRequest],
            body=body,
            response_model=list[Webhook],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[WebhookRequest]) -> list[Webhook]:
        path = "/api/extras/webhooks/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[WebhookRequest],
            body=body,
            response_model=list[Webhook],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[WebhookRequest]) -> None:
        path = "/api/extras/webhooks/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[WebhookRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Webhook | None:
        path = f"/api/extras/webhooks/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Webhook,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WebhookRequest) -> Webhook:
        path = f"/api/extras/webhooks/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WebhookRequest,
            body=body,
            response_model=Webhook,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWebhookRequest) -> Webhook:
        path = f"/api/extras/webhooks/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWebhookRequest,
            body=body,
            response_model=Webhook,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/extras/webhooks/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamAggregatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamAggregatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedAggregateList:
        path = "/api/ipam/aggregates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamAggregatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedAggregateList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableAggregateRequest) -> Aggregate:
        path = "/api/ipam/aggregates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableAggregateRequest,
            body=body,
            response_model=Aggregate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[AggregateRequest]) -> list[Aggregate]:
        path = "/api/ipam/aggregates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[AggregateRequest],
            body=body,
            response_model=list[Aggregate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[AggregateRequest]) -> list[Aggregate]:
        path = "/api/ipam/aggregates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[AggregateRequest],
            body=body,
            response_model=list[Aggregate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[AggregateRequest]) -> None:
        path = "/api/ipam/aggregates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[AggregateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Aggregate | None:
        path = f"/api/ipam/aggregates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Aggregate,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableAggregateRequest) -> Aggregate:
        path = f"/api/ipam/aggregates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableAggregateRequest,
            body=body,
            response_model=Aggregate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableAggregateRequest
    ) -> Aggregate:
        path = f"/api/ipam/aggregates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableAggregateRequest,
            body=body,
            response_model=Aggregate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/aggregates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamAsnRangesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def available_asns(self) -> IpamAsnRangesAvailableAsns:
        return IpamAsnRangesAvailableAsns(self._api)

    async def list(
        self, query: IpamAsnRangesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedASNRangeList:
        path = "/api/ipam/asn-ranges/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamAsnRangesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedASNRangeList,
            return_none_on_404=False,
        )

    async def create(self, body: ASNRangeRequest) -> ASNRange:
        path = "/api/ipam/asn-ranges/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ASNRangeRequest,
            body=body,
            response_model=ASNRange,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ASNRangeRequest]) -> list[ASNRange]:
        path = "/api/ipam/asn-ranges/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ASNRangeRequest],
            body=body,
            response_model=list[ASNRange],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ASNRangeRequest]) -> list[ASNRange]:
        path = "/api/ipam/asn-ranges/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ASNRangeRequest],
            body=body,
            response_model=list[ASNRange],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ASNRangeRequest]) -> None:
        path = "/api/ipam/asn-ranges/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ASNRangeRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ASNRange | None:
        path = f"/api/ipam/asn-ranges/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ASNRange,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ASNRangeRequest) -> ASNRange:
        path = f"/api/ipam/asn-ranges/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ASNRangeRequest,
            body=body,
            response_model=ASNRange,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedASNRangeRequest) -> ASNRange:
        path = f"/api/ipam/asn-ranges/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedASNRangeRequest,
            body=body,
            response_model=ASNRange,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/asn-ranges/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamAsnRangesAvailableAsns(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> list[AvailableASN]:
        path = f"/api/ipam/asn-ranges/{id}/available-asns/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=list[AvailableASN],
            return_none_on_404=False,
        )

    async def create(self, id: int | str, body: list[ASNRequest]) -> list[ASN]:
        path = f"/api/ipam/asn-ranges/{id}/available-asns/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=list[ASNRequest],
            body=body,
            response_model=list[ASN],
            return_none_on_404=False,
        )


class IpamAsnsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamAsnsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedASNList:
        path = "/api/ipam/asns/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamAsnsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedASNList,
            return_none_on_404=False,
        )

    async def create(self, body: ASNRequest) -> ASN:
        path = "/api/ipam/asns/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ASNRequest,
            body=body,
            response_model=ASN,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ASNRequest]) -> list[ASN]:
        path = "/api/ipam/asns/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ASNRequest],
            body=body,
            response_model=list[ASN],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ASNRequest]) -> list[ASN]:
        path = "/api/ipam/asns/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ASNRequest],
            body=body,
            response_model=list[ASN],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ASNRequest]) -> None:
        path = "/api/ipam/asns/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ASNRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ASN | None:
        path = f"/api/ipam/asns/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ASN,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ASNRequest) -> ASN:
        path = f"/api/ipam/asns/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ASNRequest,
            body=body,
            response_model=ASN,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedASNRequest) -> ASN:
        path = f"/api/ipam/asns/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedASNRequest,
            body=body,
            response_model=ASN,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/asns/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamFhrpGroupAssignmentsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamFhrpGroupAssignmentsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedFHRPGroupAssignmentList:
        path = "/api/ipam/fhrp-group-assignments/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamFhrpGroupAssignmentsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedFHRPGroupAssignmentList,
            return_none_on_404=False,
        )

    async def create(self, body: FHRPGroupAssignmentRequest) -> FHRPGroupAssignment:
        path = "/api/ipam/fhrp-group-assignments/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=FHRPGroupAssignmentRequest,
            body=body,
            response_model=FHRPGroupAssignment,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[FHRPGroupAssignmentRequest]
    ) -> list[FHRPGroupAssignment]:
        path = "/api/ipam/fhrp-group-assignments/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[FHRPGroupAssignmentRequest],
            body=body,
            response_model=list[FHRPGroupAssignment],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[FHRPGroupAssignmentRequest]
    ) -> list[FHRPGroupAssignment]:
        path = "/api/ipam/fhrp-group-assignments/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[FHRPGroupAssignmentRequest],
            body=body,
            response_model=list[FHRPGroupAssignment],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[FHRPGroupAssignmentRequest]) -> None:
        path = "/api/ipam/fhrp-group-assignments/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[FHRPGroupAssignmentRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> FHRPGroupAssignment | None:
        path = f"/api/ipam/fhrp-group-assignments/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=FHRPGroupAssignment,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: FHRPGroupAssignmentRequest) -> FHRPGroupAssignment:
        path = f"/api/ipam/fhrp-group-assignments/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=FHRPGroupAssignmentRequest,
            body=body,
            response_model=FHRPGroupAssignment,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedFHRPGroupAssignmentRequest
    ) -> FHRPGroupAssignment:
        path = f"/api/ipam/fhrp-group-assignments/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedFHRPGroupAssignmentRequest,
            body=body,
            response_model=FHRPGroupAssignment,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/fhrp-group-assignments/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamFhrpGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamFhrpGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedFHRPGroupList:
        path = "/api/ipam/fhrp-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamFhrpGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedFHRPGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: FHRPGroupRequest) -> FHRPGroup:
        path = "/api/ipam/fhrp-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=FHRPGroupRequest,
            body=body,
            response_model=FHRPGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[FHRPGroupRequest]) -> list[FHRPGroup]:
        path = "/api/ipam/fhrp-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[FHRPGroupRequest],
            body=body,
            response_model=list[FHRPGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[FHRPGroupRequest]) -> list[FHRPGroup]:
        path = "/api/ipam/fhrp-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[FHRPGroupRequest],
            body=body,
            response_model=list[FHRPGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[FHRPGroupRequest]) -> None:
        path = "/api/ipam/fhrp-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[FHRPGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> FHRPGroup | None:
        path = f"/api/ipam/fhrp-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=FHRPGroup,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: FHRPGroupRequest) -> FHRPGroup:
        path = f"/api/ipam/fhrp-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=FHRPGroupRequest,
            body=body,
            response_model=FHRPGroup,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedFHRPGroupRequest) -> FHRPGroup:
        path = f"/api/ipam/fhrp-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedFHRPGroupRequest,
            body=body,
            response_model=FHRPGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/fhrp-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamIpAddressesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamIpAddressesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedIPAddressList:
        path = "/api/ipam/ip-addresses/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamIpAddressesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedIPAddressList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableIPAddressRequest) -> IPAddress:
        path = "/api/ipam/ip-addresses/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPAddressRequest,
            body=body,
            response_model=IPAddress,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[IPAddressRequest]) -> list[IPAddress]:
        path = "/api/ipam/ip-addresses/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[IPAddressRequest],
            body=body,
            response_model=list[IPAddress],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[IPAddressRequest]) -> list[IPAddress]:
        path = "/api/ipam/ip-addresses/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[IPAddressRequest],
            body=body,
            response_model=list[IPAddress],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[IPAddressRequest]) -> None:
        path = "/api/ipam/ip-addresses/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[IPAddressRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> IPAddress | None:
        path = f"/api/ipam/ip-addresses/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=IPAddress,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableIPAddressRequest) -> IPAddress:
        path = f"/api/ipam/ip-addresses/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPAddressRequest,
            body=body,
            response_model=IPAddress,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableIPAddressRequest
    ) -> IPAddress:
        path = f"/api/ipam/ip-addresses/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableIPAddressRequest,
            body=body,
            response_model=IPAddress,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/ip-addresses/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamIpRangesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def available_ips(self) -> IpamIpRangesAvailableIps:
        return IpamIpRangesAvailableIps(self._api)

    async def list(
        self, query: IpamIpRangesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedIPRangeList:
        path = "/api/ipam/ip-ranges/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamIpRangesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedIPRangeList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableIPRangeRequest) -> IPRange:
        path = "/api/ipam/ip-ranges/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPRangeRequest,
            body=body,
            response_model=IPRange,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[IPRangeRequest]) -> list[IPRange]:
        path = "/api/ipam/ip-ranges/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[IPRangeRequest],
            body=body,
            response_model=list[IPRange],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[IPRangeRequest]) -> list[IPRange]:
        path = "/api/ipam/ip-ranges/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[IPRangeRequest],
            body=body,
            response_model=list[IPRange],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[IPRangeRequest]) -> None:
        path = "/api/ipam/ip-ranges/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[IPRangeRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> IPRange | None:
        path = f"/api/ipam/ip-ranges/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=IPRange,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableIPRangeRequest) -> IPRange:
        path = f"/api/ipam/ip-ranges/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPRangeRequest,
            body=body,
            response_model=IPRange,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableIPRangeRequest) -> IPRange:
        path = f"/api/ipam/ip-ranges/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableIPRangeRequest,
            body=body,
            response_model=IPRange,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/ip-ranges/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamIpRangesAvailableIps(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> list[AvailableIP]:
        path = f"/api/ipam/ip-ranges/{id}/available-ips/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=list[AvailableIP],
            return_none_on_404=False,
        )

    async def create(self, id: int | str, body: list[IPAddressRequest]) -> list[IPAddress]:
        path = f"/api/ipam/ip-ranges/{id}/available-ips/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=list[IPAddressRequest],
            body=body,
            response_model=list[IPAddress],
            return_none_on_404=False,
        )


class IpamPrefixesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def available_ips(self) -> IpamPrefixesAvailableIps:
        return IpamPrefixesAvailableIps(self._api)

    @property
    def available_prefixes(self) -> IpamPrefixesAvailablePrefixes:
        return IpamPrefixesAvailablePrefixes(self._api)

    async def list(
        self, query: IpamPrefixesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedPrefixList:
        path = "/api/ipam/prefixes/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamPrefixesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedPrefixList,
            return_none_on_404=False,
        )

    async def create(self, body: WritablePrefixRequest) -> Prefix:
        path = "/api/ipam/prefixes/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritablePrefixRequest,
            body=body,
            response_model=Prefix,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[PrefixRequest]) -> list[Prefix]:
        path = "/api/ipam/prefixes/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[PrefixRequest],
            body=body,
            response_model=list[Prefix],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[PrefixRequest]) -> list[Prefix]:
        path = "/api/ipam/prefixes/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[PrefixRequest],
            body=body,
            response_model=list[Prefix],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[PrefixRequest]) -> None:
        path = "/api/ipam/prefixes/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[PrefixRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Prefix | None:
        path = f"/api/ipam/prefixes/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Prefix,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritablePrefixRequest) -> Prefix:
        path = f"/api/ipam/prefixes/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritablePrefixRequest,
            body=body,
            response_model=Prefix,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritablePrefixRequest) -> Prefix:
        path = f"/api/ipam/prefixes/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritablePrefixRequest,
            body=body,
            response_model=Prefix,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/prefixes/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamPrefixesAvailableIps(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> list[AvailableIP]:
        path = f"/api/ipam/prefixes/{id}/available-ips/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=list[AvailableIP],
            return_none_on_404=False,
        )

    async def create(self, id: int | str, body: list[IPAddressRequest]) -> list[IPAddress]:
        path = f"/api/ipam/prefixes/{id}/available-ips/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=list[IPAddressRequest],
            body=body,
            response_model=list[IPAddress],
            return_none_on_404=False,
        )


class IpamPrefixesAvailablePrefixes(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> list[AvailablePrefix]:
        path = f"/api/ipam/prefixes/{id}/available-prefixes/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=list[AvailablePrefix],
            return_none_on_404=False,
        )

    async def create(self, id: int | str, body: list[PrefixRequest]) -> list[Prefix]:
        path = f"/api/ipam/prefixes/{id}/available-prefixes/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=list[PrefixRequest],
            body=body,
            response_model=list[Prefix],
            return_none_on_404=False,
        )


class IpamRirsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamRirsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRIRList:
        path = "/api/ipam/rirs/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamRirsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRIRList,
            return_none_on_404=False,
        )

    async def create(self, body: RIRRequest) -> RIR:
        path = "/api/ipam/rirs/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=RIRRequest,
            body=body,
            response_model=RIR,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RIRRequest]) -> list[RIR]:
        path = "/api/ipam/rirs/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RIRRequest],
            body=body,
            response_model=list[RIR],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[RIRRequest]) -> list[RIR]:
        path = "/api/ipam/rirs/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RIRRequest],
            body=body,
            response_model=list[RIR],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RIRRequest]) -> None:
        path = "/api/ipam/rirs/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RIRRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> RIR | None:
        path = f"/api/ipam/rirs/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=RIR,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: RIRRequest) -> RIR:
        path = f"/api/ipam/rirs/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=RIRRequest,
            body=body,
            response_model=RIR,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedRIRRequest) -> RIR:
        path = f"/api/ipam/rirs/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedRIRRequest,
            body=body,
            response_model=RIR,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/rirs/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamRolesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamRolesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRoleList:
        path = "/api/ipam/roles/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamRolesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRoleList,
            return_none_on_404=False,
        )

    async def create(self, body: RoleRequest) -> Role:
        path = "/api/ipam/roles/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=RoleRequest,
            body=body,
            response_model=Role,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RoleRequest]) -> list[Role]:
        path = "/api/ipam/roles/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RoleRequest],
            body=body,
            response_model=list[Role],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[RoleRequest]) -> list[Role]:
        path = "/api/ipam/roles/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RoleRequest],
            body=body,
            response_model=list[Role],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RoleRequest]) -> None:
        path = "/api/ipam/roles/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RoleRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Role | None:
        path = f"/api/ipam/roles/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Role,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: RoleRequest) -> Role:
        path = f"/api/ipam/roles/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=RoleRequest,
            body=body,
            response_model=Role,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedRoleRequest) -> Role:
        path = f"/api/ipam/roles/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedRoleRequest,
            body=body,
            response_model=Role,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/roles/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamRouteTargetsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamRouteTargetsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedRouteTargetList:
        path = "/api/ipam/route-targets/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamRouteTargetsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedRouteTargetList,
            return_none_on_404=False,
        )

    async def create(self, body: RouteTargetRequest) -> RouteTarget:
        path = "/api/ipam/route-targets/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=RouteTargetRequest,
            body=body,
            response_model=RouteTarget,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[RouteTargetRequest]) -> list[RouteTarget]:
        path = "/api/ipam/route-targets/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[RouteTargetRequest],
            body=body,
            response_model=list[RouteTarget],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[RouteTargetRequest]) -> list[RouteTarget]:
        path = "/api/ipam/route-targets/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[RouteTargetRequest],
            body=body,
            response_model=list[RouteTarget],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[RouteTargetRequest]) -> None:
        path = "/api/ipam/route-targets/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[RouteTargetRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> RouteTarget | None:
        path = f"/api/ipam/route-targets/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=RouteTarget,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: RouteTargetRequest) -> RouteTarget:
        path = f"/api/ipam/route-targets/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=RouteTargetRequest,
            body=body,
            response_model=RouteTarget,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedRouteTargetRequest) -> RouteTarget:
        path = f"/api/ipam/route-targets/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedRouteTargetRequest,
            body=body,
            response_model=RouteTarget,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/route-targets/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamServiceTemplatesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamServiceTemplatesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedServiceTemplateList:
        path = "/api/ipam/service-templates/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamServiceTemplatesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedServiceTemplateList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableServiceTemplateRequest) -> ServiceTemplate:
        path = "/api/ipam/service-templates/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableServiceTemplateRequest,
            body=body,
            response_model=ServiceTemplate,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ServiceTemplateRequest]) -> list[ServiceTemplate]:
        path = "/api/ipam/service-templates/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ServiceTemplateRequest],
            body=body,
            response_model=list[ServiceTemplate],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ServiceTemplateRequest]
    ) -> list[ServiceTemplate]:
        path = "/api/ipam/service-templates/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ServiceTemplateRequest],
            body=body,
            response_model=list[ServiceTemplate],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ServiceTemplateRequest]) -> None:
        path = "/api/ipam/service-templates/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ServiceTemplateRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ServiceTemplate | None:
        path = f"/api/ipam/service-templates/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ServiceTemplate,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableServiceTemplateRequest) -> ServiceTemplate:
        path = f"/api/ipam/service-templates/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableServiceTemplateRequest,
            body=body,
            response_model=ServiceTemplate,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableServiceTemplateRequest
    ) -> ServiceTemplate:
        path = f"/api/ipam/service-templates/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableServiceTemplateRequest,
            body=body,
            response_model=ServiceTemplate,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/service-templates/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamServicesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamServicesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedServiceList:
        path = "/api/ipam/services/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamServicesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedServiceList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableServiceRequest) -> Service:
        path = "/api/ipam/services/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableServiceRequest,
            body=body,
            response_model=Service,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ServiceRequest]) -> list[Service]:
        path = "/api/ipam/services/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ServiceRequest],
            body=body,
            response_model=list[Service],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ServiceRequest]) -> list[Service]:
        path = "/api/ipam/services/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ServiceRequest],
            body=body,
            response_model=list[Service],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ServiceRequest]) -> None:
        path = "/api/ipam/services/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ServiceRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Service | None:
        path = f"/api/ipam/services/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Service,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableServiceRequest) -> Service:
        path = f"/api/ipam/services/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableServiceRequest,
            body=body,
            response_model=Service,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableServiceRequest) -> Service:
        path = f"/api/ipam/services/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableServiceRequest,
            body=body,
            response_model=Service,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/services/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamVlanGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def available_vlans(self) -> IpamVlanGroupsAvailableVlans:
        return IpamVlanGroupsAvailableVlans(self._api)

    async def list(
        self, query: IpamVlanGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVLANGroupList:
        path = "/api/ipam/vlan-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamVlanGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVLANGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: VLANGroupRequest) -> VLANGroup:
        path = "/api/ipam/vlan-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=VLANGroupRequest,
            body=body,
            response_model=VLANGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[VLANGroupRequest]) -> list[VLANGroup]:
        path = "/api/ipam/vlan-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANGroupRequest],
            body=body,
            response_model=list[VLANGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[VLANGroupRequest]) -> list[VLANGroup]:
        path = "/api/ipam/vlan-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANGroupRequest],
            body=body,
            response_model=list[VLANGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VLANGroupRequest]) -> None:
        path = "/api/ipam/vlan-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VLANGroup | None:
        path = f"/api/ipam/vlan-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VLANGroup,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: VLANGroupRequest) -> VLANGroup:
        path = f"/api/ipam/vlan-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=VLANGroupRequest,
            body=body,
            response_model=VLANGroup,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedVLANGroupRequest) -> VLANGroup:
        path = f"/api/ipam/vlan-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedVLANGroupRequest,
            body=body,
            response_model=VLANGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/vlan-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamVlanGroupsAvailableVlans(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self, id: int | str) -> list[AvailableVLAN]:
        path = f"/api/ipam/vlan-groups/{id}/available-vlans/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=list[AvailableVLAN],
            return_none_on_404=False,
        )

    async def create(self, id: int | str, body: list[VLANRequest]) -> list[VLAN]:
        path = f"/api/ipam/vlan-groups/{id}/available-vlans/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANRequest],
            body=body,
            response_model=list[VLAN],
            return_none_on_404=False,
        )


class IpamVlanTranslationPoliciesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamVlanTranslationPoliciesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVLANTranslationPolicyList:
        path = "/api/ipam/vlan-translation-policies/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamVlanTranslationPoliciesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVLANTranslationPolicyList,
            return_none_on_404=False,
        )

    async def create(self, body: VLANTranslationPolicyRequest) -> VLANTranslationPolicy:
        path = "/api/ipam/vlan-translation-policies/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=VLANTranslationPolicyRequest,
            body=body,
            response_model=VLANTranslationPolicy,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[VLANTranslationPolicyRequest]
    ) -> list[VLANTranslationPolicy]:
        path = "/api/ipam/vlan-translation-policies/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANTranslationPolicyRequest],
            body=body,
            response_model=list[VLANTranslationPolicy],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[VLANTranslationPolicyRequest]
    ) -> list[VLANTranslationPolicy]:
        path = "/api/ipam/vlan-translation-policies/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANTranslationPolicyRequest],
            body=body,
            response_model=list[VLANTranslationPolicy],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VLANTranslationPolicyRequest]) -> None:
        path = "/api/ipam/vlan-translation-policies/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANTranslationPolicyRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VLANTranslationPolicy | None:
        path = f"/api/ipam/vlan-translation-policies/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VLANTranslationPolicy,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: VLANTranslationPolicyRequest
    ) -> VLANTranslationPolicy:
        path = f"/api/ipam/vlan-translation-policies/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=VLANTranslationPolicyRequest,
            body=body,
            response_model=VLANTranslationPolicy,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedVLANTranslationPolicyRequest
    ) -> VLANTranslationPolicy:
        path = f"/api/ipam/vlan-translation-policies/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedVLANTranslationPolicyRequest,
            body=body,
            response_model=VLANTranslationPolicy,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/vlan-translation-policies/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamVlanTranslationRulesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamVlanTranslationRulesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVLANTranslationRuleList:
        path = "/api/ipam/vlan-translation-rules/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamVlanTranslationRulesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVLANTranslationRuleList,
            return_none_on_404=False,
        )

    async def create(self, body: VLANTranslationRuleRequest) -> VLANTranslationRule:
        path = "/api/ipam/vlan-translation-rules/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=VLANTranslationRuleRequest,
            body=body,
            response_model=VLANTranslationRule,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[VLANTranslationRuleRequest]
    ) -> list[VLANTranslationRule]:
        path = "/api/ipam/vlan-translation-rules/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANTranslationRuleRequest],
            body=body,
            response_model=list[VLANTranslationRule],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[VLANTranslationRuleRequest]
    ) -> list[VLANTranslationRule]:
        path = "/api/ipam/vlan-translation-rules/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANTranslationRuleRequest],
            body=body,
            response_model=list[VLANTranslationRule],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VLANTranslationRuleRequest]) -> None:
        path = "/api/ipam/vlan-translation-rules/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANTranslationRuleRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VLANTranslationRule | None:
        path = f"/api/ipam/vlan-translation-rules/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VLANTranslationRule,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: VLANTranslationRuleRequest) -> VLANTranslationRule:
        path = f"/api/ipam/vlan-translation-rules/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=VLANTranslationRuleRequest,
            body=body,
            response_model=VLANTranslationRule,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedVLANTranslationRuleRequest
    ) -> VLANTranslationRule:
        path = f"/api/ipam/vlan-translation-rules/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedVLANTranslationRuleRequest,
            body=body,
            response_model=VLANTranslationRule,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/vlan-translation-rules/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamVlansEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamVlansRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVLANList:
        path = "/api/ipam/vlans/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamVlansRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVLANList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableVLANRequest) -> VLAN:
        path = "/api/ipam/vlans/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableVLANRequest,
            body=body,
            response_model=VLAN,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[VLANRequest]) -> list[VLAN]:
        path = "/api/ipam/vlans/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANRequest],
            body=body,
            response_model=list[VLAN],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[VLANRequest]) -> list[VLAN]:
        path = "/api/ipam/vlans/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANRequest],
            body=body,
            response_model=list[VLAN],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VLANRequest]) -> None:
        path = "/api/ipam/vlans/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VLANRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VLAN | None:
        path = f"/api/ipam/vlans/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VLAN,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableVLANRequest) -> VLAN:
        path = f"/api/ipam/vlans/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableVLANRequest,
            body=body,
            response_model=VLAN,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableVLANRequest) -> VLAN:
        path = f"/api/ipam/vlans/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableVLANRequest,
            body=body,
            response_model=VLAN,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/vlans/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class IpamVrfsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: IpamVrfsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVRFList:
        path = "/api/ipam/vrfs/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=IpamVrfsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVRFList,
            return_none_on_404=False,
        )

    async def create(self, body: VRFRequest) -> VRF:
        path = "/api/ipam/vrfs/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=VRFRequest,
            body=body,
            response_model=VRF,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[VRFRequest]) -> list[VRF]:
        path = "/api/ipam/vrfs/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VRFRequest],
            body=body,
            response_model=list[VRF],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[VRFRequest]) -> list[VRF]:
        path = "/api/ipam/vrfs/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VRFRequest],
            body=body,
            response_model=list[VRF],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VRFRequest]) -> None:
        path = "/api/ipam/vrfs/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VRFRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VRF | None:
        path = f"/api/ipam/vrfs/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VRF,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: VRFRequest) -> VRF:
        path = f"/api/ipam/vrfs/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=VRFRequest,
            body=body,
            response_model=VRF,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedVRFRequest) -> VRF:
        path = f"/api/ipam/vrfs/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedVRFRequest,
            body=body,
            response_model=VRF,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/ipam/vrfs/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class TenancyContactAssignmentsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: TenancyContactAssignmentsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedContactAssignmentList:
        path = "/api/tenancy/contact-assignments/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=TenancyContactAssignmentsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedContactAssignmentList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableContactAssignmentRequest) -> ContactAssignment:
        path = "/api/tenancy/contact-assignments/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableContactAssignmentRequest,
            body=body,
            response_model=ContactAssignment,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ContactAssignmentRequest]) -> list[ContactAssignment]:
        path = "/api/tenancy/contact-assignments/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactAssignmentRequest],
            body=body,
            response_model=list[ContactAssignment],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ContactAssignmentRequest]
    ) -> list[ContactAssignment]:
        path = "/api/tenancy/contact-assignments/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactAssignmentRequest],
            body=body,
            response_model=list[ContactAssignment],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ContactAssignmentRequest]) -> None:
        path = "/api/tenancy/contact-assignments/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactAssignmentRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ContactAssignment | None:
        path = f"/api/tenancy/contact-assignments/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ContactAssignment,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableContactAssignmentRequest
    ) -> ContactAssignment:
        path = f"/api/tenancy/contact-assignments/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableContactAssignmentRequest,
            body=body,
            response_model=ContactAssignment,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableContactAssignmentRequest
    ) -> ContactAssignment:
        path = f"/api/tenancy/contact-assignments/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableContactAssignmentRequest,
            body=body,
            response_model=ContactAssignment,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/tenancy/contact-assignments/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class TenancyContactGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: TenancyContactGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedContactGroupList:
        path = "/api/tenancy/contact-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=TenancyContactGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedContactGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableContactGroupRequest) -> ContactGroup:
        path = "/api/tenancy/contact-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableContactGroupRequest,
            body=body,
            response_model=ContactGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ContactGroupRequest]) -> list[ContactGroup]:
        path = "/api/tenancy/contact-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactGroupRequest],
            body=body,
            response_model=list[ContactGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ContactGroupRequest]) -> list[ContactGroup]:
        path = "/api/tenancy/contact-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactGroupRequest],
            body=body,
            response_model=list[ContactGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ContactGroupRequest]) -> None:
        path = "/api/tenancy/contact-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ContactGroup | None:
        path = f"/api/tenancy/contact-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ContactGroup,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableContactGroupRequest) -> ContactGroup:
        path = f"/api/tenancy/contact-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableContactGroupRequest,
            body=body,
            response_model=ContactGroup,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableContactGroupRequest
    ) -> ContactGroup:
        path = f"/api/tenancy/contact-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableContactGroupRequest,
            body=body,
            response_model=ContactGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/tenancy/contact-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class TenancyContactRolesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: TenancyContactRolesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedContactRoleList:
        path = "/api/tenancy/contact-roles/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=TenancyContactRolesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedContactRoleList,
            return_none_on_404=False,
        )

    async def create(self, body: ContactRoleRequest) -> ContactRole:
        path = "/api/tenancy/contact-roles/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ContactRoleRequest,
            body=body,
            response_model=ContactRole,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ContactRoleRequest]) -> list[ContactRole]:
        path = "/api/tenancy/contact-roles/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactRoleRequest],
            body=body,
            response_model=list[ContactRole],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ContactRoleRequest]) -> list[ContactRole]:
        path = "/api/tenancy/contact-roles/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactRoleRequest],
            body=body,
            response_model=list[ContactRole],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ContactRoleRequest]) -> None:
        path = "/api/tenancy/contact-roles/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactRoleRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ContactRole | None:
        path = f"/api/tenancy/contact-roles/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ContactRole,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ContactRoleRequest) -> ContactRole:
        path = f"/api/tenancy/contact-roles/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ContactRoleRequest,
            body=body,
            response_model=ContactRole,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedContactRoleRequest) -> ContactRole:
        path = f"/api/tenancy/contact-roles/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedContactRoleRequest,
            body=body,
            response_model=ContactRole,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/tenancy/contact-roles/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class TenancyContactsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: TenancyContactsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedContactList:
        path = "/api/tenancy/contacts/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=TenancyContactsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedContactList,
            return_none_on_404=False,
        )

    async def create(self, body: ContactRequest) -> Contact:
        path = "/api/tenancy/contacts/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ContactRequest,
            body=body,
            response_model=Contact,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ContactRequest]) -> list[Contact]:
        path = "/api/tenancy/contacts/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactRequest],
            body=body,
            response_model=list[Contact],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ContactRequest]) -> list[Contact]:
        path = "/api/tenancy/contacts/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactRequest],
            body=body,
            response_model=list[Contact],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ContactRequest]) -> None:
        path = "/api/tenancy/contacts/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ContactRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Contact | None:
        path = f"/api/tenancy/contacts/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Contact,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ContactRequest) -> Contact:
        path = f"/api/tenancy/contacts/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ContactRequest,
            body=body,
            response_model=Contact,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedContactRequest) -> Contact:
        path = f"/api/tenancy/contacts/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedContactRequest,
            body=body,
            response_model=Contact,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/tenancy/contacts/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class TenancyTenantGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: TenancyTenantGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedTenantGroupList:
        path = "/api/tenancy/tenant-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=TenancyTenantGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedTenantGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableTenantGroupRequest) -> TenantGroup:
        path = "/api/tenancy/tenant-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableTenantGroupRequest,
            body=body,
            response_model=TenantGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[TenantGroupRequest]) -> list[TenantGroup]:
        path = "/api/tenancy/tenant-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[TenantGroupRequest],
            body=body,
            response_model=list[TenantGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[TenantGroupRequest]) -> list[TenantGroup]:
        path = "/api/tenancy/tenant-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[TenantGroupRequest],
            body=body,
            response_model=list[TenantGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[TenantGroupRequest]) -> None:
        path = "/api/tenancy/tenant-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[TenantGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> TenantGroup | None:
        path = f"/api/tenancy/tenant-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=TenantGroup,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableTenantGroupRequest) -> TenantGroup:
        path = f"/api/tenancy/tenant-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableTenantGroupRequest,
            body=body,
            response_model=TenantGroup,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableTenantGroupRequest
    ) -> TenantGroup:
        path = f"/api/tenancy/tenant-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableTenantGroupRequest,
            body=body,
            response_model=TenantGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/tenancy/tenant-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class TenancyTenantsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: TenancyTenantsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedTenantList:
        path = "/api/tenancy/tenants/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=TenancyTenantsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedTenantList,
            return_none_on_404=False,
        )

    async def create(self, body: TenantRequest) -> Tenant:
        path = "/api/tenancy/tenants/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=TenantRequest,
            body=body,
            response_model=Tenant,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[TenantRequest]) -> list[Tenant]:
        path = "/api/tenancy/tenants/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[TenantRequest],
            body=body,
            response_model=list[Tenant],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[TenantRequest]) -> list[Tenant]:
        path = "/api/tenancy/tenants/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[TenantRequest],
            body=body,
            response_model=list[Tenant],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[TenantRequest]) -> None:
        path = "/api/tenancy/tenants/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[TenantRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Tenant | None:
        path = f"/api/tenancy/tenants/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Tenant,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: TenantRequest) -> Tenant:
        path = f"/api/tenancy/tenants/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=TenantRequest,
            body=body,
            response_model=Tenant,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedTenantRequest) -> Tenant:
        path = f"/api/tenancy/tenants/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedTenantRequest,
            body=body,
            response_model=Tenant,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/tenancy/tenants/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class UsersConfigEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(self) -> dict[str, Any]:
        path = "/api/users/config/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=dict[str, Any],
            return_none_on_404=False,
        )


class UsersGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: UsersGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedGroupList:
        path = "/api/users/groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=UsersGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: GroupRequest) -> Group:
        path = "/api/users/groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=GroupRequest,
            body=body,
            response_model=Group,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[GroupRequest]) -> list[Group]:
        path = "/api/users/groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[GroupRequest],
            body=body,
            response_model=list[Group],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[GroupRequest]) -> list[Group]:
        path = "/api/users/groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[GroupRequest],
            body=body,
            response_model=list[Group],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[GroupRequest]) -> None:
        path = "/api/users/groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[GroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Group | None:
        path = f"/api/users/groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Group,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: GroupRequest) -> Group:
        path = f"/api/users/groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=GroupRequest,
            body=body,
            response_model=Group,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedGroupRequest) -> Group:
        path = f"/api/users/groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedGroupRequest,
            body=body,
            response_model=Group,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/users/groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class UsersPermissionsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: UsersPermissionsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedObjectPermissionList:
        path = "/api/users/permissions/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=UsersPermissionsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedObjectPermissionList,
            return_none_on_404=False,
        )

    async def create(self, body: ObjectPermissionRequest) -> ObjectPermission:
        path = "/api/users/permissions/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ObjectPermissionRequest,
            body=body,
            response_model=ObjectPermission,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ObjectPermissionRequest]) -> list[ObjectPermission]:
        path = "/api/users/permissions/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ObjectPermissionRequest],
            body=body,
            response_model=list[ObjectPermission],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[ObjectPermissionRequest]
    ) -> list[ObjectPermission]:
        path = "/api/users/permissions/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ObjectPermissionRequest],
            body=body,
            response_model=list[ObjectPermission],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ObjectPermissionRequest]) -> None:
        path = "/api/users/permissions/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ObjectPermissionRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ObjectPermission | None:
        path = f"/api/users/permissions/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ObjectPermission,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ObjectPermissionRequest) -> ObjectPermission:
        path = f"/api/users/permissions/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ObjectPermissionRequest,
            body=body,
            response_model=ObjectPermission,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedObjectPermissionRequest
    ) -> ObjectPermission:
        path = f"/api/users/permissions/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedObjectPermissionRequest,
            body=body,
            response_model=ObjectPermission,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/users/permissions/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class UsersTokensEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def provision(self) -> UsersTokensProvision:
        return UsersTokensProvision(self._api)

    async def list(
        self, query: UsersTokensRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedTokenList:
        path = "/api/users/tokens/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=UsersTokensRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedTokenList,
            return_none_on_404=False,
        )

    async def create(self, body: TokenRequest) -> Token:
        path = "/api/users/tokens/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=TokenRequest,
            body=body,
            response_model=Token,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[TokenRequest]) -> list[Token]:
        path = "/api/users/tokens/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[TokenRequest],
            body=body,
            response_model=list[Token],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[TokenRequest]) -> list[Token]:
        path = "/api/users/tokens/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[TokenRequest],
            body=body,
            response_model=list[Token],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[TokenRequest]) -> None:
        path = "/api/users/tokens/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[TokenRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Token | None:
        path = f"/api/users/tokens/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Token,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: TokenRequest) -> Token:
        path = f"/api/users/tokens/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=TokenRequest,
            body=body,
            response_model=Token,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedTokenRequest) -> Token:
        path = f"/api/users/tokens/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedTokenRequest,
            body=body,
            response_model=Token,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/users/tokens/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class UsersTokensProvision(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(self, body: TokenProvisionRequest) -> TokenProvision:
        path = "/api/users/tokens/provision/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=TokenProvisionRequest,
            body=body,
            response_model=TokenProvision,
            return_none_on_404=False,
        )


class UsersUsersEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: UsersUsersRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedUserList:
        path = "/api/users/users/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=UsersUsersRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedUserList,
            return_none_on_404=False,
        )

    async def create(self, body: UserRequest) -> User:
        path = "/api/users/users/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=UserRequest,
            body=body,
            response_model=User,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[UserRequest]) -> list[User]:
        path = "/api/users/users/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[UserRequest],
            body=body,
            response_model=list[User],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[UserRequest]) -> list[User]:
        path = "/api/users/users/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[UserRequest],
            body=body,
            response_model=list[User],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[UserRequest]) -> None:
        path = "/api/users/users/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[UserRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> User | None:
        path = f"/api/users/users/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=User,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: UserRequest) -> User:
        path = f"/api/users/users/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=UserRequest,
            body=body,
            response_model=User,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedUserRequest) -> User:
        path = f"/api/users/users/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedUserRequest,
            body=body,
            response_model=User,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/users/users/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VirtualizationClusterGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VirtualizationClusterGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedClusterGroupList:
        path = "/api/virtualization/cluster-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VirtualizationClusterGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedClusterGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: ClusterGroupRequest) -> ClusterGroup:
        path = "/api/virtualization/cluster-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ClusterGroupRequest,
            body=body,
            response_model=ClusterGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ClusterGroupRequest]) -> list[ClusterGroup]:
        path = "/api/virtualization/cluster-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ClusterGroupRequest],
            body=body,
            response_model=list[ClusterGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ClusterGroupRequest]) -> list[ClusterGroup]:
        path = "/api/virtualization/cluster-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ClusterGroupRequest],
            body=body,
            response_model=list[ClusterGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ClusterGroupRequest]) -> None:
        path = "/api/virtualization/cluster-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ClusterGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ClusterGroup | None:
        path = f"/api/virtualization/cluster-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ClusterGroup,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ClusterGroupRequest) -> ClusterGroup:
        path = f"/api/virtualization/cluster-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ClusterGroupRequest,
            body=body,
            response_model=ClusterGroup,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedClusterGroupRequest) -> ClusterGroup:
        path = f"/api/virtualization/cluster-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedClusterGroupRequest,
            body=body,
            response_model=ClusterGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/virtualization/cluster-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VirtualizationClusterTypesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VirtualizationClusterTypesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedClusterTypeList:
        path = "/api/virtualization/cluster-types/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VirtualizationClusterTypesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedClusterTypeList,
            return_none_on_404=False,
        )

    async def create(self, body: ClusterTypeRequest) -> ClusterType:
        path = "/api/virtualization/cluster-types/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=ClusterTypeRequest,
            body=body,
            response_model=ClusterType,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ClusterTypeRequest]) -> list[ClusterType]:
        path = "/api/virtualization/cluster-types/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ClusterTypeRequest],
            body=body,
            response_model=list[ClusterType],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ClusterTypeRequest]) -> list[ClusterType]:
        path = "/api/virtualization/cluster-types/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ClusterTypeRequest],
            body=body,
            response_model=list[ClusterType],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ClusterTypeRequest]) -> None:
        path = "/api/virtualization/cluster-types/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ClusterTypeRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> ClusterType | None:
        path = f"/api/virtualization/cluster-types/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=ClusterType,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: ClusterTypeRequest) -> ClusterType:
        path = f"/api/virtualization/cluster-types/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=ClusterTypeRequest,
            body=body,
            response_model=ClusterType,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedClusterTypeRequest) -> ClusterType:
        path = f"/api/virtualization/cluster-types/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedClusterTypeRequest,
            body=body,
            response_model=ClusterType,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/virtualization/cluster-types/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VirtualizationClustersEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VirtualizationClustersRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedClusterList:
        path = "/api/virtualization/clusters/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VirtualizationClustersRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedClusterList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableClusterRequest) -> Cluster:
        path = "/api/virtualization/clusters/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableClusterRequest,
            body=body,
            response_model=Cluster,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[ClusterRequest]) -> list[Cluster]:
        path = "/api/virtualization/clusters/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[ClusterRequest],
            body=body,
            response_model=list[Cluster],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[ClusterRequest]) -> list[Cluster]:
        path = "/api/virtualization/clusters/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[ClusterRequest],
            body=body,
            response_model=list[Cluster],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[ClusterRequest]) -> None:
        path = "/api/virtualization/clusters/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[ClusterRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Cluster | None:
        path = f"/api/virtualization/clusters/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Cluster,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableClusterRequest) -> Cluster:
        path = f"/api/virtualization/clusters/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableClusterRequest,
            body=body,
            response_model=Cluster,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableClusterRequest) -> Cluster:
        path = f"/api/virtualization/clusters/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableClusterRequest,
            body=body,
            response_model=Cluster,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/virtualization/clusters/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VirtualizationInterfacesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VirtualizationInterfacesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVMInterfaceList:
        path = "/api/virtualization/interfaces/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VirtualizationInterfacesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVMInterfaceList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableVMInterfaceRequest) -> VMInterface:
        path = "/api/virtualization/interfaces/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableVMInterfaceRequest,
            body=body,
            response_model=VMInterface,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[VMInterfaceRequest]) -> list[VMInterface]:
        path = "/api/virtualization/interfaces/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VMInterfaceRequest],
            body=body,
            response_model=list[VMInterface],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[VMInterfaceRequest]) -> list[VMInterface]:
        path = "/api/virtualization/interfaces/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VMInterfaceRequest],
            body=body,
            response_model=list[VMInterface],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VMInterfaceRequest]) -> None:
        path = "/api/virtualization/interfaces/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VMInterfaceRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VMInterface | None:
        path = f"/api/virtualization/interfaces/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VMInterface,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableVMInterfaceRequest) -> VMInterface:
        path = f"/api/virtualization/interfaces/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableVMInterfaceRequest,
            body=body,
            response_model=VMInterface,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableVMInterfaceRequest
    ) -> VMInterface:
        path = f"/api/virtualization/interfaces/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableVMInterfaceRequest,
            body=body,
            response_model=VMInterface,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/virtualization/interfaces/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VirtualizationVirtualDisksEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VirtualizationVirtualDisksRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVirtualDiskList:
        path = "/api/virtualization/virtual-disks/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VirtualizationVirtualDisksRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVirtualDiskList,
            return_none_on_404=False,
        )

    async def create(self, body: VirtualDiskRequest) -> VirtualDisk:
        path = "/api/virtualization/virtual-disks/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=VirtualDiskRequest,
            body=body,
            response_model=VirtualDisk,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[VirtualDiskRequest]) -> list[VirtualDisk]:
        path = "/api/virtualization/virtual-disks/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualDiskRequest],
            body=body,
            response_model=list[VirtualDisk],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[VirtualDiskRequest]) -> list[VirtualDisk]:
        path = "/api/virtualization/virtual-disks/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualDiskRequest],
            body=body,
            response_model=list[VirtualDisk],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VirtualDiskRequest]) -> None:
        path = "/api/virtualization/virtual-disks/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualDiskRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VirtualDisk | None:
        path = f"/api/virtualization/virtual-disks/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VirtualDisk,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: VirtualDiskRequest) -> VirtualDisk:
        path = f"/api/virtualization/virtual-disks/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=VirtualDiskRequest,
            body=body,
            response_model=VirtualDisk,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedVirtualDiskRequest) -> VirtualDisk:
        path = f"/api/virtualization/virtual-disks/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedVirtualDiskRequest,
            body=body,
            response_model=VirtualDisk,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/virtualization/virtual-disks/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VirtualizationVirtualMachinesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def render_config(self) -> VirtualizationVirtualMachinesRenderConfig:
        return VirtualizationVirtualMachinesRenderConfig(self._api)

    async def list(
        self, query: VirtualizationVirtualMachinesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedVirtualMachineWithConfigContextList:
        path = "/api/virtualization/virtual-machines/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VirtualizationVirtualMachinesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedVirtualMachineWithConfigContextList,
            return_none_on_404=False,
        )

    async def create(
        self, body: WritableVirtualMachineWithConfigContextRequest
    ) -> VirtualMachineWithConfigContext:
        path = "/api/virtualization/virtual-machines/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualMachineWithConfigContextRequest,
            body=body,
            response_model=VirtualMachineWithConfigContext,
            return_none_on_404=False,
        )

    async def bulk_update(
        self, body: list[VirtualMachineWithConfigContextRequest]
    ) -> list[VirtualMachineWithConfigContext]:
        path = "/api/virtualization/virtual-machines/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualMachineWithConfigContextRequest],
            body=body,
            response_model=list[VirtualMachineWithConfigContext],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[VirtualMachineWithConfigContextRequest]
    ) -> list[VirtualMachineWithConfigContext]:
        path = "/api/virtualization/virtual-machines/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualMachineWithConfigContextRequest],
            body=body,
            response_model=list[VirtualMachineWithConfigContext],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[VirtualMachineWithConfigContextRequest]) -> None:
        path = "/api/virtualization/virtual-machines/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[VirtualMachineWithConfigContextRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> VirtualMachineWithConfigContext | None:
        path = f"/api/virtualization/virtual-machines/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=VirtualMachineWithConfigContext,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableVirtualMachineWithConfigContextRequest
    ) -> VirtualMachineWithConfigContext:
        path = f"/api/virtualization/virtual-machines/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableVirtualMachineWithConfigContextRequest,
            body=body,
            response_model=VirtualMachineWithConfigContext,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableVirtualMachineWithConfigContextRequest
    ) -> VirtualMachineWithConfigContext:
        path = f"/api/virtualization/virtual-machines/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableVirtualMachineWithConfigContextRequest,
            body=body,
            response_model=VirtualMachineWithConfigContext,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/virtualization/virtual-machines/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VirtualizationVirtualMachinesRenderConfig(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def create(
        self,
        id: int | str,
        body: WritableVirtualMachineWithConfigContextRequest,
        query: VirtualizationVirtualMachinesRenderConfigPostQuery | dict[str, Any] | None = None,
    ) -> VirtualMachineWithConfigContext:
        path = f"/api/virtualization/virtual-machines/{id}/render-config/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=VirtualizationVirtualMachinesRenderConfigPostQuery,
            query=query,
            body_model=WritableVirtualMachineWithConfigContextRequest,
            body=body,
            response_model=VirtualMachineWithConfigContext,
            return_none_on_404=False,
        )


class VpnIkePoliciesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnIkePoliciesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedIKEPolicyList:
        path = "/api/vpn/ike-policies/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnIkePoliciesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedIKEPolicyList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableIKEPolicyRequest) -> IKEPolicy:
        path = "/api/vpn/ike-policies/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableIKEPolicyRequest,
            body=body,
            response_model=IKEPolicy,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[IKEPolicyRequest]) -> list[IKEPolicy]:
        path = "/api/vpn/ike-policies/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[IKEPolicyRequest],
            body=body,
            response_model=list[IKEPolicy],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[IKEPolicyRequest]) -> list[IKEPolicy]:
        path = "/api/vpn/ike-policies/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[IKEPolicyRequest],
            body=body,
            response_model=list[IKEPolicy],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[IKEPolicyRequest]) -> None:
        path = "/api/vpn/ike-policies/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[IKEPolicyRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> IKEPolicy | None:
        path = f"/api/vpn/ike-policies/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=IKEPolicy,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableIKEPolicyRequest) -> IKEPolicy:
        path = f"/api/vpn/ike-policies/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableIKEPolicyRequest,
            body=body,
            response_model=IKEPolicy,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableIKEPolicyRequest
    ) -> IKEPolicy:
        path = f"/api/vpn/ike-policies/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableIKEPolicyRequest,
            body=body,
            response_model=IKEPolicy,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/ike-policies/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VpnIkeProposalsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnIkeProposalsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedIKEProposalList:
        path = "/api/vpn/ike-proposals/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnIkeProposalsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedIKEProposalList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableIKEProposalRequest) -> IKEProposal:
        path = "/api/vpn/ike-proposals/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableIKEProposalRequest,
            body=body,
            response_model=IKEProposal,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[IKEProposalRequest]) -> list[IKEProposal]:
        path = "/api/vpn/ike-proposals/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[IKEProposalRequest],
            body=body,
            response_model=list[IKEProposal],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[IKEProposalRequest]) -> list[IKEProposal]:
        path = "/api/vpn/ike-proposals/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[IKEProposalRequest],
            body=body,
            response_model=list[IKEProposal],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[IKEProposalRequest]) -> None:
        path = "/api/vpn/ike-proposals/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[IKEProposalRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> IKEProposal | None:
        path = f"/api/vpn/ike-proposals/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=IKEProposal,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableIKEProposalRequest) -> IKEProposal:
        path = f"/api/vpn/ike-proposals/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableIKEProposalRequest,
            body=body,
            response_model=IKEProposal,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableIKEProposalRequest
    ) -> IKEProposal:
        path = f"/api/vpn/ike-proposals/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableIKEProposalRequest,
            body=body,
            response_model=IKEProposal,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/ike-proposals/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VpnIpsecPoliciesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnIpsecPoliciesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedIPSecPolicyList:
        path = "/api/vpn/ipsec-policies/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnIpsecPoliciesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedIPSecPolicyList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableIPSecPolicyRequest) -> IPSecPolicy:
        path = "/api/vpn/ipsec-policies/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPSecPolicyRequest,
            body=body,
            response_model=IPSecPolicy,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[IPSecPolicyRequest]) -> list[IPSecPolicy]:
        path = "/api/vpn/ipsec-policies/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[IPSecPolicyRequest],
            body=body,
            response_model=list[IPSecPolicy],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[IPSecPolicyRequest]) -> list[IPSecPolicy]:
        path = "/api/vpn/ipsec-policies/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[IPSecPolicyRequest],
            body=body,
            response_model=list[IPSecPolicy],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[IPSecPolicyRequest]) -> None:
        path = "/api/vpn/ipsec-policies/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[IPSecPolicyRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> IPSecPolicy | None:
        path = f"/api/vpn/ipsec-policies/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=IPSecPolicy,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableIPSecPolicyRequest) -> IPSecPolicy:
        path = f"/api/vpn/ipsec-policies/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPSecPolicyRequest,
            body=body,
            response_model=IPSecPolicy,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableIPSecPolicyRequest
    ) -> IPSecPolicy:
        path = f"/api/vpn/ipsec-policies/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableIPSecPolicyRequest,
            body=body,
            response_model=IPSecPolicy,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/ipsec-policies/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VpnIpsecProfilesEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnIpsecProfilesRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedIPSecProfileList:
        path = "/api/vpn/ipsec-profiles/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnIpsecProfilesRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedIPSecProfileList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableIPSecProfileRequest) -> IPSecProfile:
        path = "/api/vpn/ipsec-profiles/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPSecProfileRequest,
            body=body,
            response_model=IPSecProfile,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[IPSecProfileRequest]) -> list[IPSecProfile]:
        path = "/api/vpn/ipsec-profiles/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[IPSecProfileRequest],
            body=body,
            response_model=list[IPSecProfile],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[IPSecProfileRequest]) -> list[IPSecProfile]:
        path = "/api/vpn/ipsec-profiles/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[IPSecProfileRequest],
            body=body,
            response_model=list[IPSecProfile],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[IPSecProfileRequest]) -> None:
        path = "/api/vpn/ipsec-profiles/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[IPSecProfileRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> IPSecProfile | None:
        path = f"/api/vpn/ipsec-profiles/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=IPSecProfile,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableIPSecProfileRequest) -> IPSecProfile:
        path = f"/api/vpn/ipsec-profiles/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPSecProfileRequest,
            body=body,
            response_model=IPSecProfile,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableIPSecProfileRequest
    ) -> IPSecProfile:
        path = f"/api/vpn/ipsec-profiles/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableIPSecProfileRequest,
            body=body,
            response_model=IPSecProfile,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/ipsec-profiles/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VpnIpsecProposalsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnIpsecProposalsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedIPSecProposalList:
        path = "/api/vpn/ipsec-proposals/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnIpsecProposalsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedIPSecProposalList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableIPSecProposalRequest) -> IPSecProposal:
        path = "/api/vpn/ipsec-proposals/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPSecProposalRequest,
            body=body,
            response_model=IPSecProposal,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[IPSecProposalRequest]) -> list[IPSecProposal]:
        path = "/api/vpn/ipsec-proposals/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[IPSecProposalRequest],
            body=body,
            response_model=list[IPSecProposal],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[IPSecProposalRequest]) -> list[IPSecProposal]:
        path = "/api/vpn/ipsec-proposals/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[IPSecProposalRequest],
            body=body,
            response_model=list[IPSecProposal],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[IPSecProposalRequest]) -> None:
        path = "/api/vpn/ipsec-proposals/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[IPSecProposalRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> IPSecProposal | None:
        path = f"/api/vpn/ipsec-proposals/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=IPSecProposal,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableIPSecProposalRequest) -> IPSecProposal:
        path = f"/api/vpn/ipsec-proposals/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableIPSecProposalRequest,
            body=body,
            response_model=IPSecProposal,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableIPSecProposalRequest
    ) -> IPSecProposal:
        path = f"/api/vpn/ipsec-proposals/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableIPSecProposalRequest,
            body=body,
            response_model=IPSecProposal,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/ipsec-proposals/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VpnL2vpnTerminationsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnL2vpnTerminationsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedL2VPNTerminationList:
        path = "/api/vpn/l2vpn-terminations/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnL2vpnTerminationsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedL2VPNTerminationList,
            return_none_on_404=False,
        )

    async def create(self, body: L2VPNTerminationRequest) -> L2VPNTermination:
        path = "/api/vpn/l2vpn-terminations/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=L2VPNTerminationRequest,
            body=body,
            response_model=L2VPNTermination,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[L2VPNTerminationRequest]) -> list[L2VPNTermination]:
        path = "/api/vpn/l2vpn-terminations/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[L2VPNTerminationRequest],
            body=body,
            response_model=list[L2VPNTermination],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[L2VPNTerminationRequest]
    ) -> list[L2VPNTermination]:
        path = "/api/vpn/l2vpn-terminations/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[L2VPNTerminationRequest],
            body=body,
            response_model=list[L2VPNTermination],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[L2VPNTerminationRequest]) -> None:
        path = "/api/vpn/l2vpn-terminations/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[L2VPNTerminationRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> L2VPNTermination | None:
        path = f"/api/vpn/l2vpn-terminations/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=L2VPNTermination,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: L2VPNTerminationRequest) -> L2VPNTermination:
        path = f"/api/vpn/l2vpn-terminations/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=L2VPNTerminationRequest,
            body=body,
            response_model=L2VPNTermination,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedL2VPNTerminationRequest
    ) -> L2VPNTermination:
        path = f"/api/vpn/l2vpn-terminations/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedL2VPNTerminationRequest,
            body=body,
            response_model=L2VPNTermination,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/l2vpn-terminations/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VpnL2vpnsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnL2vpnsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedL2VPNList:
        path = "/api/vpn/l2vpns/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnL2vpnsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedL2VPNList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableL2VPNRequest) -> L2VPN:
        path = "/api/vpn/l2vpns/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableL2VPNRequest,
            body=body,
            response_model=L2VPN,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[L2VPNRequest]) -> list[L2VPN]:
        path = "/api/vpn/l2vpns/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[L2VPNRequest],
            body=body,
            response_model=list[L2VPN],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[L2VPNRequest]) -> list[L2VPN]:
        path = "/api/vpn/l2vpns/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[L2VPNRequest],
            body=body,
            response_model=list[L2VPN],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[L2VPNRequest]) -> None:
        path = "/api/vpn/l2vpns/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[L2VPNRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> L2VPN | None:
        path = f"/api/vpn/l2vpns/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=L2VPN,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableL2VPNRequest) -> L2VPN:
        path = f"/api/vpn/l2vpns/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableL2VPNRequest,
            body=body,
            response_model=L2VPN,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableL2VPNRequest) -> L2VPN:
        path = f"/api/vpn/l2vpns/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableL2VPNRequest,
            body=body,
            response_model=L2VPN,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/l2vpns/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VpnTunnelGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnTunnelGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedTunnelGroupList:
        path = "/api/vpn/tunnel-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnTunnelGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedTunnelGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: TunnelGroupRequest) -> TunnelGroup:
        path = "/api/vpn/tunnel-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=TunnelGroupRequest,
            body=body,
            response_model=TunnelGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[TunnelGroupRequest]) -> list[TunnelGroup]:
        path = "/api/vpn/tunnel-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[TunnelGroupRequest],
            body=body,
            response_model=list[TunnelGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[TunnelGroupRequest]) -> list[TunnelGroup]:
        path = "/api/vpn/tunnel-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[TunnelGroupRequest],
            body=body,
            response_model=list[TunnelGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[TunnelGroupRequest]) -> None:
        path = "/api/vpn/tunnel-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[TunnelGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> TunnelGroup | None:
        path = f"/api/vpn/tunnel-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=TunnelGroup,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: TunnelGroupRequest) -> TunnelGroup:
        path = f"/api/vpn/tunnel-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=TunnelGroupRequest,
            body=body,
            response_model=TunnelGroup,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedTunnelGroupRequest) -> TunnelGroup:
        path = f"/api/vpn/tunnel-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedTunnelGroupRequest,
            body=body,
            response_model=TunnelGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/tunnel-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VpnTunnelTerminationsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnTunnelTerminationsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedTunnelTerminationList:
        path = "/api/vpn/tunnel-terminations/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnTunnelTerminationsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedTunnelTerminationList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableTunnelTerminationRequest) -> TunnelTermination:
        path = "/api/vpn/tunnel-terminations/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableTunnelTerminationRequest,
            body=body,
            response_model=TunnelTermination,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[TunnelTerminationRequest]) -> list[TunnelTermination]:
        path = "/api/vpn/tunnel-terminations/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[TunnelTerminationRequest],
            body=body,
            response_model=list[TunnelTermination],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[TunnelTerminationRequest]
    ) -> list[TunnelTermination]:
        path = "/api/vpn/tunnel-terminations/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[TunnelTerminationRequest],
            body=body,
            response_model=list[TunnelTermination],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[TunnelTerminationRequest]) -> None:
        path = "/api/vpn/tunnel-terminations/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[TunnelTerminationRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> TunnelTermination | None:
        path = f"/api/vpn/tunnel-terminations/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=TunnelTermination,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableTunnelTerminationRequest
    ) -> TunnelTermination:
        path = f"/api/vpn/tunnel-terminations/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableTunnelTerminationRequest,
            body=body,
            response_model=TunnelTermination,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableTunnelTerminationRequest
    ) -> TunnelTermination:
        path = f"/api/vpn/tunnel-terminations/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableTunnelTerminationRequest,
            body=body,
            response_model=TunnelTermination,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/tunnel-terminations/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class VpnTunnelsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: VpnTunnelsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedTunnelList:
        path = "/api/vpn/tunnels/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=VpnTunnelsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedTunnelList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableTunnelRequest) -> Tunnel:
        path = "/api/vpn/tunnels/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableTunnelRequest,
            body=body,
            response_model=Tunnel,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[TunnelRequest]) -> list[Tunnel]:
        path = "/api/vpn/tunnels/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[TunnelRequest],
            body=body,
            response_model=list[Tunnel],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[TunnelRequest]) -> list[Tunnel]:
        path = "/api/vpn/tunnels/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[TunnelRequest],
            body=body,
            response_model=list[Tunnel],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[TunnelRequest]) -> None:
        path = "/api/vpn/tunnels/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[TunnelRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> Tunnel | None:
        path = f"/api/vpn/tunnels/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=Tunnel,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableTunnelRequest) -> Tunnel:
        path = f"/api/vpn/tunnels/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableTunnelRequest,
            body=body,
            response_model=Tunnel,
            return_none_on_404=False,
        )

    async def partial_update(self, id: int | str, body: PatchedWritableTunnelRequest) -> Tunnel:
        path = f"/api/vpn/tunnels/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableTunnelRequest,
            body=body,
            response_model=Tunnel,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/vpn/tunnels/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class WirelessWirelessLanGroupsEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: WirelessWirelessLanGroupsRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedWirelessLANGroupList:
        path = "/api/wireless/wireless-lan-groups/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=WirelessWirelessLanGroupsRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedWirelessLANGroupList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableWirelessLANGroupRequest) -> WirelessLANGroup:
        path = "/api/wireless/wireless-lan-groups/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableWirelessLANGroupRequest,
            body=body,
            response_model=WirelessLANGroup,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[WirelessLANGroupRequest]) -> list[WirelessLANGroup]:
        path = "/api/wireless/wireless-lan-groups/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[WirelessLANGroupRequest],
            body=body,
            response_model=list[WirelessLANGroup],
            return_none_on_404=False,
        )

    async def bulk_partial_update(
        self, body: list[WirelessLANGroupRequest]
    ) -> list[WirelessLANGroup]:
        path = "/api/wireless/wireless-lan-groups/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[WirelessLANGroupRequest],
            body=body,
            response_model=list[WirelessLANGroup],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[WirelessLANGroupRequest]) -> None:
        path = "/api/wireless/wireless-lan-groups/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[WirelessLANGroupRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> WirelessLANGroup | None:
        path = f"/api/wireless/wireless-lan-groups/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=WirelessLANGroup,
            return_none_on_404=True,
        )

    async def update(
        self, id: int | str, body: WritableWirelessLANGroupRequest
    ) -> WirelessLANGroup:
        path = f"/api/wireless/wireless-lan-groups/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableWirelessLANGroupRequest,
            body=body,
            response_model=WirelessLANGroup,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableWirelessLANGroupRequest
    ) -> WirelessLANGroup:
        path = f"/api/wireless/wireless-lan-groups/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableWirelessLANGroupRequest,
            body=body,
            response_model=WirelessLANGroup,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/wireless/wireless-lan-groups/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class WirelessWirelessLansEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: WirelessWirelessLansRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedWirelessLANList:
        path = "/api/wireless/wireless-lans/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=WirelessWirelessLansRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedWirelessLANList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableWirelessLANRequest) -> WirelessLAN:
        path = "/api/wireless/wireless-lans/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableWirelessLANRequest,
            body=body,
            response_model=WirelessLAN,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[WirelessLANRequest]) -> list[WirelessLAN]:
        path = "/api/wireless/wireless-lans/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[WirelessLANRequest],
            body=body,
            response_model=list[WirelessLAN],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[WirelessLANRequest]) -> list[WirelessLAN]:
        path = "/api/wireless/wireless-lans/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[WirelessLANRequest],
            body=body,
            response_model=list[WirelessLAN],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[WirelessLANRequest]) -> None:
        path = "/api/wireless/wireless-lans/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[WirelessLANRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> WirelessLAN | None:
        path = f"/api/wireless/wireless-lans/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=WirelessLAN,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableWirelessLANRequest) -> WirelessLAN:
        path = f"/api/wireless/wireless-lans/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableWirelessLANRequest,
            body=body,
            response_model=WirelessLAN,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableWirelessLANRequest
    ) -> WirelessLAN:
        path = f"/api/wireless/wireless-lans/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableWirelessLANRequest,
            body=body,
            response_model=WirelessLAN,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/wireless/wireless-lans/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class WirelessWirelessLinksEndpoint(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    async def list(
        self, query: WirelessWirelessLinksRootGetQuery | dict[str, Any] | None = None
    ) -> PaginatedWirelessLinkList:
        path = "/api/wireless/wireless-links/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=WirelessWirelessLinksRootGetQuery,
            query=query,
            body_model=None,
            body=None,
            response_model=PaginatedWirelessLinkList,
            return_none_on_404=False,
        )

    async def create(self, body: WritableWirelessLinkRequest) -> WirelessLink:
        path = "/api/wireless/wireless-links/"
        return await self._typed_json_request(
            "POST",
            path,
            query_model=None,
            query=None,
            body_model=WritableWirelessLinkRequest,
            body=body,
            response_model=WirelessLink,
            return_none_on_404=False,
        )

    async def bulk_update(self, body: list[WirelessLinkRequest]) -> list[WirelessLink]:
        path = "/api/wireless/wireless-links/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=list[WirelessLinkRequest],
            body=body,
            response_model=list[WirelessLink],
            return_none_on_404=False,
        )

    async def bulk_partial_update(self, body: list[WirelessLinkRequest]) -> list[WirelessLink]:
        path = "/api/wireless/wireless-links/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=list[WirelessLinkRequest],
            body=body,
            response_model=list[WirelessLink],
            return_none_on_404=False,
        )

    async def bulk_delete(self, body: list[WirelessLinkRequest]) -> None:
        path = "/api/wireless/wireless-links/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=list[WirelessLinkRequest],
            body=body,
            response_model=None,
            return_none_on_404=False,
        )

    async def get(self, id: int | str) -> WirelessLink | None:
        path = f"/api/wireless/wireless-links/{id}/"
        return await self._typed_json_request(
            "GET",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=WirelessLink,
            return_none_on_404=True,
        )

    async def update(self, id: int | str, body: WritableWirelessLinkRequest) -> WirelessLink:
        path = f"/api/wireless/wireless-links/{id}/"
        return await self._typed_json_request(
            "PUT",
            path,
            query_model=None,
            query=None,
            body_model=WritableWirelessLinkRequest,
            body=body,
            response_model=WirelessLink,
            return_none_on_404=False,
        )

    async def partial_update(
        self, id: int | str, body: PatchedWritableWirelessLinkRequest
    ) -> WirelessLink:
        path = f"/api/wireless/wireless-links/{id}/"
        return await self._typed_json_request(
            "PATCH",
            path,
            query_model=None,
            query=None,
            body_model=PatchedWritableWirelessLinkRequest,
            body=body,
            response_model=WirelessLink,
            return_none_on_404=False,
        )

    async def delete(self, id: int | str) -> None:
        path = f"/api/wireless/wireless-links/{id}/"
        return await self._typed_json_request(
            "DELETE",
            path,
            query_model=None,
            query=None,
            body_model=None,
            body=None,
            response_model=None,
            return_none_on_404=False,
        )


class CircuitsApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def circuit_group_assignments(self) -> CircuitsCircuitGroupAssignmentsEndpoint:
        return CircuitsCircuitGroupAssignmentsEndpoint(self._api)

    @property
    def circuit_groups(self) -> CircuitsCircuitGroupsEndpoint:
        return CircuitsCircuitGroupsEndpoint(self._api)

    @property
    def circuit_terminations(self) -> CircuitsCircuitTerminationsEndpoint:
        return CircuitsCircuitTerminationsEndpoint(self._api)

    @property
    def circuit_types(self) -> CircuitsCircuitTypesEndpoint:
        return CircuitsCircuitTypesEndpoint(self._api)

    @property
    def circuits(self) -> CircuitsCircuitsEndpoint:
        return CircuitsCircuitsEndpoint(self._api)

    @property
    def provider_accounts(self) -> CircuitsProviderAccountsEndpoint:
        return CircuitsProviderAccountsEndpoint(self._api)

    @property
    def provider_networks(self) -> CircuitsProviderNetworksEndpoint:
        return CircuitsProviderNetworksEndpoint(self._api)

    @property
    def providers(self) -> CircuitsProvidersEndpoint:
        return CircuitsProvidersEndpoint(self._api)

    @property
    def virtual_circuit_terminations(self) -> CircuitsVirtualCircuitTerminationsEndpoint:
        return CircuitsVirtualCircuitTerminationsEndpoint(self._api)

    @property
    def virtual_circuit_types(self) -> CircuitsVirtualCircuitTypesEndpoint:
        return CircuitsVirtualCircuitTypesEndpoint(self._api)

    @property
    def virtual_circuits(self) -> CircuitsVirtualCircuitsEndpoint:
        return CircuitsVirtualCircuitsEndpoint(self._api)


class CoreApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def background_queues(self) -> CoreBackgroundQueuesEndpoint:
        return CoreBackgroundQueuesEndpoint(self._api)

    @property
    def background_tasks(self) -> CoreBackgroundTasksEndpoint:
        return CoreBackgroundTasksEndpoint(self._api)

    @property
    def background_workers(self) -> CoreBackgroundWorkersEndpoint:
        return CoreBackgroundWorkersEndpoint(self._api)

    @property
    def data_files(self) -> CoreDataFilesEndpoint:
        return CoreDataFilesEndpoint(self._api)

    @property
    def data_sources(self) -> CoreDataSourcesEndpoint:
        return CoreDataSourcesEndpoint(self._api)

    @property
    def jobs(self) -> CoreJobsEndpoint:
        return CoreJobsEndpoint(self._api)

    @property
    def object_changes(self) -> CoreObjectChangesEndpoint:
        return CoreObjectChangesEndpoint(self._api)


class DcimApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def cable_terminations(self) -> DcimCableTerminationsEndpoint:
        return DcimCableTerminationsEndpoint(self._api)

    @property
    def cables(self) -> DcimCablesEndpoint:
        return DcimCablesEndpoint(self._api)

    @property
    def connected_device(self) -> DcimConnectedDeviceEndpoint:
        return DcimConnectedDeviceEndpoint(self._api)

    @property
    def console_port_templates(self) -> DcimConsolePortTemplatesEndpoint:
        return DcimConsolePortTemplatesEndpoint(self._api)

    @property
    def console_ports(self) -> DcimConsolePortsEndpoint:
        return DcimConsolePortsEndpoint(self._api)

    @property
    def console_server_port_templates(self) -> DcimConsoleServerPortTemplatesEndpoint:
        return DcimConsoleServerPortTemplatesEndpoint(self._api)

    @property
    def console_server_ports(self) -> DcimConsoleServerPortsEndpoint:
        return DcimConsoleServerPortsEndpoint(self._api)

    @property
    def device_bay_templates(self) -> DcimDeviceBayTemplatesEndpoint:
        return DcimDeviceBayTemplatesEndpoint(self._api)

    @property
    def device_bays(self) -> DcimDeviceBaysEndpoint:
        return DcimDeviceBaysEndpoint(self._api)

    @property
    def device_roles(self) -> DcimDeviceRolesEndpoint:
        return DcimDeviceRolesEndpoint(self._api)

    @property
    def device_types(self) -> DcimDeviceTypesEndpoint:
        return DcimDeviceTypesEndpoint(self._api)

    @property
    def devices(self) -> DcimDevicesEndpoint:
        return DcimDevicesEndpoint(self._api)

    @property
    def front_port_templates(self) -> DcimFrontPortTemplatesEndpoint:
        return DcimFrontPortTemplatesEndpoint(self._api)

    @property
    def front_ports(self) -> DcimFrontPortsEndpoint:
        return DcimFrontPortsEndpoint(self._api)

    @property
    def interface_templates(self) -> DcimInterfaceTemplatesEndpoint:
        return DcimInterfaceTemplatesEndpoint(self._api)

    @property
    def interfaces(self) -> DcimInterfacesEndpoint:
        return DcimInterfacesEndpoint(self._api)

    @property
    def inventory_item_roles(self) -> DcimInventoryItemRolesEndpoint:
        return DcimInventoryItemRolesEndpoint(self._api)

    @property
    def inventory_item_templates(self) -> DcimInventoryItemTemplatesEndpoint:
        return DcimInventoryItemTemplatesEndpoint(self._api)

    @property
    def inventory_items(self) -> DcimInventoryItemsEndpoint:
        return DcimInventoryItemsEndpoint(self._api)

    @property
    def locations(self) -> DcimLocationsEndpoint:
        return DcimLocationsEndpoint(self._api)

    @property
    def mac_addresses(self) -> DcimMacAddressesEndpoint:
        return DcimMacAddressesEndpoint(self._api)

    @property
    def manufacturers(self) -> DcimManufacturersEndpoint:
        return DcimManufacturersEndpoint(self._api)

    @property
    def module_bay_templates(self) -> DcimModuleBayTemplatesEndpoint:
        return DcimModuleBayTemplatesEndpoint(self._api)

    @property
    def module_bays(self) -> DcimModuleBaysEndpoint:
        return DcimModuleBaysEndpoint(self._api)

    @property
    def module_type_profiles(self) -> DcimModuleTypeProfilesEndpoint:
        return DcimModuleTypeProfilesEndpoint(self._api)

    @property
    def module_types(self) -> DcimModuleTypesEndpoint:
        return DcimModuleTypesEndpoint(self._api)

    @property
    def modules(self) -> DcimModulesEndpoint:
        return DcimModulesEndpoint(self._api)

    @property
    def platforms(self) -> DcimPlatformsEndpoint:
        return DcimPlatformsEndpoint(self._api)

    @property
    def power_feeds(self) -> DcimPowerFeedsEndpoint:
        return DcimPowerFeedsEndpoint(self._api)

    @property
    def power_outlet_templates(self) -> DcimPowerOutletTemplatesEndpoint:
        return DcimPowerOutletTemplatesEndpoint(self._api)

    @property
    def power_outlets(self) -> DcimPowerOutletsEndpoint:
        return DcimPowerOutletsEndpoint(self._api)

    @property
    def power_panels(self) -> DcimPowerPanelsEndpoint:
        return DcimPowerPanelsEndpoint(self._api)

    @property
    def power_port_templates(self) -> DcimPowerPortTemplatesEndpoint:
        return DcimPowerPortTemplatesEndpoint(self._api)

    @property
    def power_ports(self) -> DcimPowerPortsEndpoint:
        return DcimPowerPortsEndpoint(self._api)

    @property
    def rack_reservations(self) -> DcimRackReservationsEndpoint:
        return DcimRackReservationsEndpoint(self._api)

    @property
    def rack_roles(self) -> DcimRackRolesEndpoint:
        return DcimRackRolesEndpoint(self._api)

    @property
    def rack_types(self) -> DcimRackTypesEndpoint:
        return DcimRackTypesEndpoint(self._api)

    @property
    def racks(self) -> DcimRacksEndpoint:
        return DcimRacksEndpoint(self._api)

    @property
    def rear_port_templates(self) -> DcimRearPortTemplatesEndpoint:
        return DcimRearPortTemplatesEndpoint(self._api)

    @property
    def rear_ports(self) -> DcimRearPortsEndpoint:
        return DcimRearPortsEndpoint(self._api)

    @property
    def regions(self) -> DcimRegionsEndpoint:
        return DcimRegionsEndpoint(self._api)

    @property
    def site_groups(self) -> DcimSiteGroupsEndpoint:
        return DcimSiteGroupsEndpoint(self._api)

    @property
    def sites(self) -> DcimSitesEndpoint:
        return DcimSitesEndpoint(self._api)

    @property
    def virtual_chassis(self) -> DcimVirtualChassisEndpoint:
        return DcimVirtualChassisEndpoint(self._api)

    @property
    def virtual_device_contexts(self) -> DcimVirtualDeviceContextsEndpoint:
        return DcimVirtualDeviceContextsEndpoint(self._api)


class ExtrasApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def bookmarks(self) -> ExtrasBookmarksEndpoint:
        return ExtrasBookmarksEndpoint(self._api)

    @property
    def config_contexts(self) -> ExtrasConfigContextsEndpoint:
        return ExtrasConfigContextsEndpoint(self._api)

    @property
    def config_templates(self) -> ExtrasConfigTemplatesEndpoint:
        return ExtrasConfigTemplatesEndpoint(self._api)

    @property
    def custom_field_choice_sets(self) -> ExtrasCustomFieldChoiceSetsEndpoint:
        return ExtrasCustomFieldChoiceSetsEndpoint(self._api)

    @property
    def custom_fields(self) -> ExtrasCustomFieldsEndpoint:
        return ExtrasCustomFieldsEndpoint(self._api)

    @property
    def custom_links(self) -> ExtrasCustomLinksEndpoint:
        return ExtrasCustomLinksEndpoint(self._api)

    @property
    def dashboard(self) -> ExtrasDashboardEndpoint:
        return ExtrasDashboardEndpoint(self._api)

    @property
    def event_rules(self) -> ExtrasEventRulesEndpoint:
        return ExtrasEventRulesEndpoint(self._api)

    @property
    def export_templates(self) -> ExtrasExportTemplatesEndpoint:
        return ExtrasExportTemplatesEndpoint(self._api)

    @property
    def image_attachments(self) -> ExtrasImageAttachmentsEndpoint:
        return ExtrasImageAttachmentsEndpoint(self._api)

    @property
    def journal_entries(self) -> ExtrasJournalEntriesEndpoint:
        return ExtrasJournalEntriesEndpoint(self._api)

    @property
    def notification_groups(self) -> ExtrasNotificationGroupsEndpoint:
        return ExtrasNotificationGroupsEndpoint(self._api)

    @property
    def notifications(self) -> ExtrasNotificationsEndpoint:
        return ExtrasNotificationsEndpoint(self._api)

    @property
    def object_types(self) -> ExtrasObjectTypesEndpoint:
        return ExtrasObjectTypesEndpoint(self._api)

    @property
    def saved_filters(self) -> ExtrasSavedFiltersEndpoint:
        return ExtrasSavedFiltersEndpoint(self._api)

    @property
    def scripts(self) -> ExtrasScriptsEndpoint:
        return ExtrasScriptsEndpoint(self._api)

    @property
    def subscriptions(self) -> ExtrasSubscriptionsEndpoint:
        return ExtrasSubscriptionsEndpoint(self._api)

    @property
    def table_configs(self) -> ExtrasTableConfigsEndpoint:
        return ExtrasTableConfigsEndpoint(self._api)

    @property
    def tagged_objects(self) -> ExtrasTaggedObjectsEndpoint:
        return ExtrasTaggedObjectsEndpoint(self._api)

    @property
    def tags(self) -> ExtrasTagsEndpoint:
        return ExtrasTagsEndpoint(self._api)

    @property
    def webhooks(self) -> ExtrasWebhooksEndpoint:
        return ExtrasWebhooksEndpoint(self._api)


class IpamApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def aggregates(self) -> IpamAggregatesEndpoint:
        return IpamAggregatesEndpoint(self._api)

    @property
    def asn_ranges(self) -> IpamAsnRangesEndpoint:
        return IpamAsnRangesEndpoint(self._api)

    @property
    def asns(self) -> IpamAsnsEndpoint:
        return IpamAsnsEndpoint(self._api)

    @property
    def fhrp_group_assignments(self) -> IpamFhrpGroupAssignmentsEndpoint:
        return IpamFhrpGroupAssignmentsEndpoint(self._api)

    @property
    def fhrp_groups(self) -> IpamFhrpGroupsEndpoint:
        return IpamFhrpGroupsEndpoint(self._api)

    @property
    def ip_addresses(self) -> IpamIpAddressesEndpoint:
        return IpamIpAddressesEndpoint(self._api)

    @property
    def ip_ranges(self) -> IpamIpRangesEndpoint:
        return IpamIpRangesEndpoint(self._api)

    @property
    def prefixes(self) -> IpamPrefixesEndpoint:
        return IpamPrefixesEndpoint(self._api)

    @property
    def rirs(self) -> IpamRirsEndpoint:
        return IpamRirsEndpoint(self._api)

    @property
    def roles(self) -> IpamRolesEndpoint:
        return IpamRolesEndpoint(self._api)

    @property
    def route_targets(self) -> IpamRouteTargetsEndpoint:
        return IpamRouteTargetsEndpoint(self._api)

    @property
    def service_templates(self) -> IpamServiceTemplatesEndpoint:
        return IpamServiceTemplatesEndpoint(self._api)

    @property
    def services(self) -> IpamServicesEndpoint:
        return IpamServicesEndpoint(self._api)

    @property
    def vlan_groups(self) -> IpamVlanGroupsEndpoint:
        return IpamVlanGroupsEndpoint(self._api)

    @property
    def vlan_translation_policies(self) -> IpamVlanTranslationPoliciesEndpoint:
        return IpamVlanTranslationPoliciesEndpoint(self._api)

    @property
    def vlan_translation_rules(self) -> IpamVlanTranslationRulesEndpoint:
        return IpamVlanTranslationRulesEndpoint(self._api)

    @property
    def vlans(self) -> IpamVlansEndpoint:
        return IpamVlansEndpoint(self._api)

    @property
    def vrfs(self) -> IpamVrfsEndpoint:
        return IpamVrfsEndpoint(self._api)


class TenancyApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def contact_assignments(self) -> TenancyContactAssignmentsEndpoint:
        return TenancyContactAssignmentsEndpoint(self._api)

    @property
    def contact_groups(self) -> TenancyContactGroupsEndpoint:
        return TenancyContactGroupsEndpoint(self._api)

    @property
    def contact_roles(self) -> TenancyContactRolesEndpoint:
        return TenancyContactRolesEndpoint(self._api)

    @property
    def contacts(self) -> TenancyContactsEndpoint:
        return TenancyContactsEndpoint(self._api)

    @property
    def tenant_groups(self) -> TenancyTenantGroupsEndpoint:
        return TenancyTenantGroupsEndpoint(self._api)

    @property
    def tenants(self) -> TenancyTenantsEndpoint:
        return TenancyTenantsEndpoint(self._api)


class UsersApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def config(self) -> UsersConfigEndpoint:
        return UsersConfigEndpoint(self._api)

    @property
    def groups(self) -> UsersGroupsEndpoint:
        return UsersGroupsEndpoint(self._api)

    @property
    def permissions(self) -> UsersPermissionsEndpoint:
        return UsersPermissionsEndpoint(self._api)

    @property
    def tokens(self) -> UsersTokensEndpoint:
        return UsersTokensEndpoint(self._api)

    @property
    def users(self) -> UsersUsersEndpoint:
        return UsersUsersEndpoint(self._api)


class VirtualizationApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def cluster_groups(self) -> VirtualizationClusterGroupsEndpoint:
        return VirtualizationClusterGroupsEndpoint(self._api)

    @property
    def cluster_types(self) -> VirtualizationClusterTypesEndpoint:
        return VirtualizationClusterTypesEndpoint(self._api)

    @property
    def clusters(self) -> VirtualizationClustersEndpoint:
        return VirtualizationClustersEndpoint(self._api)

    @property
    def interfaces(self) -> VirtualizationInterfacesEndpoint:
        return VirtualizationInterfacesEndpoint(self._api)

    @property
    def virtual_disks(self) -> VirtualizationVirtualDisksEndpoint:
        return VirtualizationVirtualDisksEndpoint(self._api)

    @property
    def virtual_machines(self) -> VirtualizationVirtualMachinesEndpoint:
        return VirtualizationVirtualMachinesEndpoint(self._api)


class VpnApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def ike_policies(self) -> VpnIkePoliciesEndpoint:
        return VpnIkePoliciesEndpoint(self._api)

    @property
    def ike_proposals(self) -> VpnIkeProposalsEndpoint:
        return VpnIkeProposalsEndpoint(self._api)

    @property
    def ipsec_policies(self) -> VpnIpsecPoliciesEndpoint:
        return VpnIpsecPoliciesEndpoint(self._api)

    @property
    def ipsec_profiles(self) -> VpnIpsecProfilesEndpoint:
        return VpnIpsecProfilesEndpoint(self._api)

    @property
    def ipsec_proposals(self) -> VpnIpsecProposalsEndpoint:
        return VpnIpsecProposalsEndpoint(self._api)

    @property
    def l2vpn_terminations(self) -> VpnL2vpnTerminationsEndpoint:
        return VpnL2vpnTerminationsEndpoint(self._api)

    @property
    def l2vpns(self) -> VpnL2vpnsEndpoint:
        return VpnL2vpnsEndpoint(self._api)

    @property
    def tunnel_groups(self) -> VpnTunnelGroupsEndpoint:
        return VpnTunnelGroupsEndpoint(self._api)

    @property
    def tunnel_terminations(self) -> VpnTunnelTerminationsEndpoint:
        return VpnTunnelTerminationsEndpoint(self._api)

    @property
    def tunnels(self) -> VpnTunnelsEndpoint:
        return VpnTunnelsEndpoint(self._api)


class WirelessApp(TypedAppBase):
    def __init__(self, api: TypedApiBase) -> None:
        super().__init__(api)

    @property
    def wireless_lan_groups(self) -> WirelessWirelessLanGroupsEndpoint:
        return WirelessWirelessLanGroupsEndpoint(self._api)

    @property
    def wireless_lans(self) -> WirelessWirelessLansEndpoint:
        return WirelessWirelessLansEndpoint(self._api)

    @property
    def wireless_links(self) -> WirelessWirelessLinksEndpoint:
        return WirelessWirelessLinksEndpoint(self._api)


class TypedApiV4_3(TypedApiBase):
    def __init__(self, client: NetBoxApiClient) -> None:
        super().__init__(client=client, netbox_version="4.3")
        self.circuits = CircuitsApp(self)
        self.core = CoreApp(self)
        self.dcim = DcimApp(self)
        self.extras = ExtrasApp(self)
        self.ipam = IpamApp(self)
        self.tenancy = TenancyApp(self)
        self.users = UsersApp(self)
        self.virtualization = VirtualizationApp(self)
        self.vpn = VpnApp(self)
        self.wireless = WirelessApp(self)


def build_api(url: str, token: str | None = None) -> TypedApiV4_3:
    client = build_typed_client(url, token)
    return TypedApiV4_3(client)
