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

from __future__ import annotations

from typing import Annotated, TypeAlias

from msgspec import UNSET, Meta, Struct, UnsetType, field


class Cursors(Struct):
    prev: str
    index: float
    next: str | UnsetType = 'last'
    tag: str | UnsetType = UNSET


class TopLevel(Struct):
    cursors: Cursors


class Info(Struct):
    name: str


class User(Struct):
    info: Info


class Api(Struct):
    apiKey: (
        Annotated[str, Meta(description='To be used as a dataset parameter value')]
        | UnsetType
    ) = UNSET
    apiVersionNumber: (
        Annotated[str, Meta(description='To be used as a version parameter value')]
        | UnsetType
    ) = UNSET
    apiUrl: (
        Annotated[str, Meta(description="The URL describing the dataset's fields")]
        | UnsetType
    ) = UNSET
    apiDocumentationUrl: (
        Annotated[str, Meta(description='A URL to the API console for each API')]
        | UnsetType
    ) = UNSET


Apis: TypeAlias = list[Api] | None


class EmailItem(Struct):
    author: str
    address: Annotated[str, Meta(description='email address')]
    description: str | UnsetType = 'empty'
    tag: str | UnsetType = UNSET


Email: TypeAlias = list[EmailItem]


Id: TypeAlias = int


Description: TypeAlias = Annotated[str | None, 'example']


Name: TypeAlias = str | None


Tag: TypeAlias = str


class Notes(Struct):
    comments: list[str] | UnsetType = field(default_factory=list)


class Options(Struct):
    comments: list[str]
    oneOfComments: list[str | float]
    simpleUnion: str | float | UnsetType = UNSET
