"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
# @generated-id: e472e5b752ec

from __future__ import annotations
from mistralai.client.types import BaseModel
from mistralai.client.utils import validate_const
import pydantic
from pydantic.functional_validators import AfterValidator
from typing import Any, Literal
from typing_extensions import Annotated, TypedDict


class JSONPatchRemoveTypedDict(TypedDict):
    path: str
    r"""A JSON Pointer (RFC 6901) identifying the target location within the document. Can be a string path (e.g., '/foo/bar'), '/', '', or an empty list [] for root-level operations."""
    value: Any
    r"""The value to use for the operation"""
    op: Literal["remove"]
    r"""Remove operation"""


class JSONPatchRemove(BaseModel):
    path: str
    r"""A JSON Pointer (RFC 6901) identifying the target location within the document. Can be a string path (e.g., '/foo/bar'), '/', '', or an empty list [] for root-level operations."""

    value: Any
    r"""The value to use for the operation"""

    op: Annotated[
        Annotated[Literal["remove"], AfterValidator(validate_const("remove"))],
        pydantic.Field(alias="op"),
    ] = "remove"
    r"""Remove operation"""


try:
    JSONPatchRemove.model_rebuild()
except NameError:
    pass
