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

from __future__ import annotations

from enum import Enum
from typing import Any

from pydantic import BaseModel, ConfigDict, conint


class InlineSimpleAlternative(Enum):
    inline = 'inline'


class InlineComplexAlternative(BaseModel):
    model_config = ConfigDict(
        extra='allow',
    )
    inlineComplexValue: str


class AlphaPayload(BaseModel):
    model_config = ConfigDict(
        extra='allow',
    )
    alpha: str


class BetaPayload(BaseModel):
    model_config = ConfigDict(
        extra='allow',
    )
    beta: conint(ge=-2147483648, le=2147483647)


class ClosedOpen(BaseModel):
    closedKnown: str


class DefaultOpen(BaseModel):
    model_config = ConfigDict(
        extra='allow',
    )
    known: str


class EmptyDefaultClosed(BaseModel):
    pass


class ExplicitOpen(BaseModel):
    model_config = ConfigDict(
        extra='allow',
    )
    explicitKnown: str


class Document(BaseModel):
    model_config = ConfigDict(
        extra='allow',
    )
    defaultOpen: DefaultOpen
    emptyDefaultClosed: EmptyDefaultClosed
    closedOpen: ClosedOpen
    explicitOpen: ExplicitOpen
    payload: AlphaPayload | BetaPayload
    typedAlternative: AlphaPayload | str
    inlineSimpleAlternative: InlineSimpleAlternative
    inlineComplexAlternative: InlineComplexAlternative
    emptyAlternative: Any
