# coding: utf-8

"""
    node-server

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: 0.0.237
    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_client import schemas  # noqa: F401


class SaveDatasetVersionParams(
    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 = {
            "saveAsNew",
            "isValid",
            "datasetId",
            "script",
        }
        
        class properties:
            datasetId = schemas.StrSchema
            saveAsNew = schemas.BoolSchema
            isValid = schemas.BoolSchema
            script = schemas.StrSchema
        
            @staticmethod
            def setup() -> typing.Type['DatasetSetup']:
                return DatasetSetup
            saveAsNewName = schemas.StrSchema
            secretManagerId = schemas.StrSchema
            testToken = schemas.StrSchema
            note = schemas.StrSchema
            __annotations__ = {
                "datasetId": datasetId,
                "saveAsNew": saveAsNew,
                "isValid": isValid,
                "script": script,
                "setup": setup,
                "saveAsNewName": saveAsNewName,
                "secretManagerId": secretManagerId,
                "testToken": testToken,
                "note": note,
            }
        additional_properties = schemas.NotAnyTypeSchema
    
    saveAsNew: MetaOapg.properties.saveAsNew
    isValid: MetaOapg.properties.isValid
    datasetId: MetaOapg.properties.datasetId
    script: MetaOapg.properties.script
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["saveAsNew"]) -> MetaOapg.properties.saveAsNew: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["isValid"]) -> MetaOapg.properties.isValid: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["datasetId"]) -> MetaOapg.properties.datasetId: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["script"]) -> MetaOapg.properties.script: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["setup"]) -> 'DatasetSetup': ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["saveAsNewName"]) -> MetaOapg.properties.saveAsNewName: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["secretManagerId"]) -> MetaOapg.properties.secretManagerId: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["testToken"]) -> MetaOapg.properties.testToken: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["note"]) -> MetaOapg.properties.note: ...
    
    def __getitem__(self, name: typing.Union[typing_extensions.Literal["saveAsNew"], typing_extensions.Literal["isValid"], typing_extensions.Literal["datasetId"], typing_extensions.Literal["script"], typing_extensions.Literal["setup"], typing_extensions.Literal["saveAsNewName"], typing_extensions.Literal["secretManagerId"], typing_extensions.Literal["testToken"], typing_extensions.Literal["note"], ]):
        # dict_instance[name] accessor
        return super().__getitem__(name)
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["saveAsNew"]) -> MetaOapg.properties.saveAsNew: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["isValid"]) -> MetaOapg.properties.isValid: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["datasetId"]) -> MetaOapg.properties.datasetId: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["script"]) -> MetaOapg.properties.script: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["setup"]) -> typing.Union['DatasetSetup', schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["saveAsNewName"]) -> typing.Union[MetaOapg.properties.saveAsNewName, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["secretManagerId"]) -> typing.Union[MetaOapg.properties.secretManagerId, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["testToken"]) -> typing.Union[MetaOapg.properties.testToken, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["note"]) -> typing.Union[MetaOapg.properties.note, schemas.Unset]: ...
    
    def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["saveAsNew"], typing_extensions.Literal["isValid"], typing_extensions.Literal["datasetId"], typing_extensions.Literal["script"], typing_extensions.Literal["setup"], typing_extensions.Literal["saveAsNewName"], typing_extensions.Literal["secretManagerId"], typing_extensions.Literal["testToken"], typing_extensions.Literal["note"], ]):
        return super().get_item_oapg(name)

    def __new__(
        cls,
        *args: typing.Union[dict, frozendict.frozendict, ],
        saveAsNew: typing.Union[MetaOapg.properties.saveAsNew, bool, ],
        isValid: typing.Union[MetaOapg.properties.isValid, bool, ],
        datasetId: typing.Union[MetaOapg.properties.datasetId, str, ],
        script: typing.Union[MetaOapg.properties.script, str, ],
        setup: typing.Union['DatasetSetup', schemas.Unset] = schemas.unset,
        saveAsNewName: typing.Union[MetaOapg.properties.saveAsNewName, str, schemas.Unset] = schemas.unset,
        secretManagerId: typing.Union[MetaOapg.properties.secretManagerId, str, schemas.Unset] = schemas.unset,
        testToken: typing.Union[MetaOapg.properties.testToken, str, schemas.Unset] = schemas.unset,
        note: typing.Union[MetaOapg.properties.note, str, schemas.Unset] = schemas.unset,
        _configuration: typing.Optional[schemas.Configuration] = None,
    ) -> 'SaveDatasetVersionParams':
        return super().__new__(
            cls,
            *args,
            saveAsNew=saveAsNew,
            isValid=isValid,
            datasetId=datasetId,
            script=script,
            setup=setup,
            saveAsNewName=saveAsNewName,
            secretManagerId=secretManagerId,
            testToken=testToken,
            note=note,
            _configuration=_configuration,
        )

from openapi_client.model.dataset_setup import DatasetSetup
