# coding: utf-8

from __future__ import annotations

from datetime import date, datetime  # noqa: F401

import re  # noqa: F401
from typing import Any, Dict, List, Optional, Union, Literal  # noqa: F401

from pydantic import AnyUrl, BaseModel, EmailStr, validator, Field, Extra  # noqa: F401


class Filter(BaseModel):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.

    Filter - a model defined in OpenAPI
        const: Const [Optional].
        enum: The enum of this Filter [Optional].
        exclusive_maximum: ExclusiveMaximum [Optional].
        exclusive_minimum: ExclusiveMinimum [Optional].
        format: Format [Optional].
        max_length: Max Length [Optional].
        maximum: Maximum [Optional].
        min_length: Min Length [Optional].
        minimum: Minimum [Optional].
        not_: Not [Optional].
        pattern: Pattern [Optional].
        type: Type [Optional].
    """

    const: Optional[Dict[str, Any]] = None
    enum: Optional[List[Dict]] = None
    exclusive_maximum: Optional[Dict[str, Any]] = Field(None, alias="exclusiveMaximum")
    exclusive_minimum: Optional[Dict[str, Any]] = Field(None, alias="exclusiveMinimum")
    format: Optional[str] = None
    max_length: Optional[int] = Field(None, alias="maxLength")
    maximum: Optional[Dict[str, Any]] = None
    min_length: Optional[int] = Field(None, alias="minLength")
    minimum: Optional[Dict[str, Any]] = None
    not_: Optional[bool] = Field(None, alias="not")
    pattern: Optional[str] = None
    type: Optional[str] = None

    def __init__(
        self,
        *,
        const: Optional[Dict[str, Any]] = None,
        enum: Optional[List[Dict]] = None,
        exclusive_maximum: Optional[Dict[str, Any]] = None,
        exclusive_minimum: Optional[Dict[str, Any]] = None,
        format: Optional[str] = None,
        max_length: Optional[int] = None,
        maximum: Optional[Dict[str, Any]] = None,
        min_length: Optional[int] = None,
        minimum: Optional[Dict[str, Any]] = None,
        not_: Optional[bool] = None,
        pattern: Optional[str] = None,
        type: Optional[str] = None,
        **kwargs,
    ):
        super().__init__(
            const=const,
            enum=enum,
            exclusive_maximum=exclusive_maximum,
            exclusive_minimum=exclusive_minimum,
            format=format,
            max_length=max_length,
            maximum=maximum,
            min_length=min_length,
            minimum=minimum,
            not_=not_,
            pattern=pattern,
            type=type,
            **kwargs,
        )

    class Config:
        allow_population_by_field_name = True


Filter.update_forward_refs()
