# coding: utf-8

"""
    SPIRVSmith-Server

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: 0.1.0
    Generated by: https://openapi-generator.tech
"""

import re  # noqa: F401
import sys  # noqa: F401
import typing  # noqa: F401
import functools  # noqa: F401

from frozendict import frozendict  # noqa: F401

import decimal  # noqa: F401
from datetime import date, datetime  # noqa: F401
from frozendict import frozendict  # noqa: F401

from spirvsmith_server_sdk.schemas import (  # noqa: F401
    AnyTypeSchema,
    ComposedSchema,
    DictSchema,
    ListSchema,
    StrSchema,
    IntSchema,
    Int32Schema,
    Int64Schema,
    Float32Schema,
    Float64Schema,
    NumberSchema,
    UUIDSchema,
    DateSchema,
    DateTimeSchema,
    DecimalSchema,
    BoolSchema,
    BinarySchema,
    NoneSchema,
    none_type,
    Configuration,
    Unset,
    unset,
    ComposedBase,
    ListBase,
    DictBase,
    NoneBase,
    StrBase,
    IntBase,
    Int32Base,
    Int64Base,
    Float32Base,
    Float64Base,
    NumberBase,
    UUIDBase,
    DateBase,
    DateTimeBase,
    BoolBase,
    BinaryBase,
    Schema,
    _SchemaValidator,
    _SchemaTypeChecker,
    _SchemaEnumMaker
)


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

    Do not edit the class manually.
    """
    _required_property_names = set((
        'loc',
        'msg',
        'type',
    ))
    
    
    class loc(
        ListSchema
    ):
        
        
        class _items(
            ComposedSchema
        ):
        
            @classmethod
            @property
            @functools.cache
            def _composed_schemas(cls):
                # we need this here to make our import statements work
                # we must store _composed_schemas in here so the code is only run
                # when we invoke this method. If we kept this at the class
                # level we would get an error because the class level
                # code would be run when this module is imported, and these composed
                # classes don't exist yet because their module has not finished
                # loading
                anyOf_0 = StrSchema
                anyOf_1 = IntSchema
                return {
                    'allOf': [
                    ],
                    'oneOf': [
                    ],
                    'anyOf': [
                        anyOf_0,
                        anyOf_1,
                    ],
                    'not':
                        None
                }
        
            def __new__(
                cls,
                *args: typing.Union[dict, frozendict, str, date, datetime, int, float, decimal.Decimal, None, list, tuple, bytes],
                _configuration: typing.Optional[Configuration] = None,
                **kwargs: typing.Type[Schema],
            ) -> '_items':
                return super().__new__(
                    cls,
                    *args,
                    _configuration=_configuration,
                    **kwargs,
                )
    msg = StrSchema
    type = StrSchema


    def __new__(
        cls,
        *args: typing.Union[dict, frozendict, ],
        loc: loc,
        msg: msg,
        type: type,
        _configuration: typing.Optional[Configuration] = None,
        **kwargs: typing.Type[Schema],
    ) -> 'ValidationError':
        return super().__new__(
            cls,
            *args,
            loc=loc,
            msg=msg,
            type=type,
            _configuration=_configuration,
            **kwargs,
        )
