# coding: utf-8

"""
    Streams Api

    API that provides access to Moralis Streams  # noqa: E501

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

from datetime import date, datetime  # noqa: F401
import decimal  # noqa: F401
import functools  # noqa: F401
import io  # noqa: F401
import re  # noqa: F401
import typing  # noqa: F401
import typing_extensions  # noqa: F401
import uuid  # noqa: F401

import frozendict  # noqa: F401

from openapi_streams import schemas  # noqa: F401


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

    Do not edit the class manually.
    """


    class MetaOapg:
        required = {
            "retries",
            "chainId",
            "records",
            "block",
            "confirmed",
        }
        
        class properties:
            chainId = schemas.StrSchema
            confirmed = schemas.BoolSchema
            block = schemas.StrSchema
            records = schemas.Float64Schema
            retries = schemas.Float64Schema
            __annotations__ = {
                "chainId": chainId,
                "confirmed": confirmed,
                "block": block,
                "records": records,
                "retries": retries,
            }
        additional_properties = schemas.NotAnyTypeSchema
    
    retries: MetaOapg.properties.retries
    chainId: MetaOapg.properties.chainId
    records: MetaOapg.properties.records
    block: MetaOapg.properties.block
    confirmed: MetaOapg.properties.confirmed
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["retries"]) -> MetaOapg.properties.retries: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["chainId"]) -> MetaOapg.properties.chainId: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["records"]) -> MetaOapg.properties.records: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["block"]) -> MetaOapg.properties.block: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["confirmed"]) -> MetaOapg.properties.confirmed: ...
    
    def __getitem__(self, name: typing.Union[typing_extensions.Literal["retries"], typing_extensions.Literal["chainId"], typing_extensions.Literal["records"], typing_extensions.Literal["block"], typing_extensions.Literal["confirmed"], ]):
        # dict_instance[name] accessor
        return super().__getitem__(name)
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["retries"]) -> MetaOapg.properties.retries: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["chainId"]) -> MetaOapg.properties.chainId: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["records"]) -> MetaOapg.properties.records: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["block"]) -> MetaOapg.properties.block: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["confirmed"]) -> MetaOapg.properties.confirmed: ...
    
    def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["retries"], typing_extensions.Literal["chainId"], typing_extensions.Literal["records"], typing_extensions.Literal["block"], typing_extensions.Literal["confirmed"], ]):
        return super().get_item_oapg(name)

    def __new__(
        cls,
        *_args: typing.Union[dict, frozendict.frozendict, ],
        retries: typing.Union[MetaOapg.properties.retries, decimal.Decimal, int, float, ],
        chainId: typing.Union[MetaOapg.properties.chainId, str, ],
        records: typing.Union[MetaOapg.properties.records, decimal.Decimal, int, float, ],
        block: typing.Union[MetaOapg.properties.block, str, ],
        confirmed: typing.Union[MetaOapg.properties.confirmed, bool, ],
        _configuration: typing.Optional[schemas.Configuration] = None,
    ) -> 'WebhookTypesITinyPayload':
        return super().__new__(
            cls,
            *_args,
            retries=retries,
            chainId=chainId,
            records=records,
            block=block,
            confirmed=confirmed,
            _configuration=_configuration,
        )
