# generated by datamodel-codegen:
#   filename:  root_model_with_additional_properties.json
#   timestamp: 2019-07-26T00:00:00+00:00

from __future__ import annotations

from typing import Literal

from pydantic import BaseModel, Field


class NestedObjectResult(BaseModel):
    status: int


class OneOfResult(BaseModel):
    description: str | None = None


class AnyOfResult(BaseModel):
    description: str | None = None


class User(BaseModel):
    name: str | None = None


class AllOfResult(User):
    description: str | None = None


class Model(BaseModel):
    test_id: str = Field(..., description='test ID')
    test_ip: str = Field(..., description='test IP')
    result: dict[str, int]
    nested_object_result: dict[str, NestedObjectResult]
    nested_enum_result: dict[str, Literal['red', 'green']]
    all_of_result: dict[str, AllOfResult] | None = None
    one_of_result: dict[str, User | OneOfResult] | None = None
    any_of_result: dict[str, User | AnyOfResult] | None = None
    all_of_with_unknown_object: dict[str, User] | None = None
    objectRef: dict[str, User] | None = None
    deepNestedObjectRef: dict[str, dict[str, dict[str, User]]] | None = None
