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

from __future__ import annotations

from datetime import date as date_aliased
from datetime import datetime
from datetime import time as time_aliased
from datetime import timedelta
from decimal import Decimal
from typing import Any

from pydantic import AnyUrl, AwareDatetime, Base64Str, BaseModel, Field, conint


class Types(BaseModel):
    anySimple: Any | None = None
    anyAtomic: Any | None = None
    anyType: Any | None = None
    anyUri: AnyUrl | None = None
    base64Binary: Base64Str | None = None
    boolean: bool | None = None
    byte: conint(ge=-128, le=127) | None = None
    date: date_aliased | None = None
    dateTime: datetime | None = None
    decimal: Decimal | None = None
    double: float | None = None
    duration: str | None = None
    dayTimeDuration: timedelta | None = None
    entity: str | None = None
    entities: list[str] | None = None
    float_: float | None = Field(None, alias='float')
    gDay: str | None = None
    gMonth: str | None = None
    gMonthDay: str | None = None
    gYear: str | None = None
    gYearMonth: str | None = None
    hexBinary: str | None = None
    id: str | None = None
    idref: str | None = None
    idrefs: list[str] | None = None
    int: conint(ge=-2147483648, le=2147483647) | None = None
    integer: int | None = None
    language: str | None = None
    long: conint(ge=-9223372036854775808, le=9223372036854775807) | None = None
    name: str | None = None
    ncName: str | None = None
    negativeInteger: conint(le=-1) | None = None
    nmtoken: str | None = None
    nmtokens: list[str] | None = None
    nonNegativeInteger: conint(ge=0) | None = None
    nonPositiveInteger: conint(le=0) | None = None
    normalizedString: str | None = None
    notation: str | None = None
    positiveInteger: conint(ge=1) | None = None
    qName: str | None = None
    short: conint(ge=-32768, le=32767) | None = None
    string: str | None = None
    time: time_aliased | None = None
    token: str | None = None
    unsignedByte: conint(ge=0, le=255) | None = None
    unsignedInt: conint(ge=0, le=4294967295) | None = None
    unsignedLong: conint(ge=0, le=18446744073709551615) | None = None
    unsignedShort: conint(ge=0, le=65535) | None = None
    yearMonthDuration: str | None = None
    dateTimeStamp: AwareDatetime | None = None
    status: str | None = 'open'
    requiredId: str
