"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class Dataset(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class PropertiesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...

    class Spec(google.protobuf.message.Message):
        """Definitions
        How to obtain the dataset
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        TRANSFORMED_FIELD_NUMBER: builtins.int
        FILE_FIELD_NUMBER: builtins.int
        FILES_FIELD_NUMBER: builtins.int
        ARCHIVE_FIELD_NUMBER: builtins.int
        SQL_FIELD_NUMBER: builtins.int
        @property
        def transformed(self) -> global___Dataset.Transformed: ...
        @property
        def file(self) -> global___Dataset.File: ...
        @property
        def files(self) -> global___Dataset.Files: ...
        @property
        def archive(self) -> global___Dataset.Archive: ...
        @property
        def sql(self) -> global___Dataset.Sql: ...
        def __init__(self,
            *,
            transformed : typing.Optional[global___Dataset.Transformed] = ...,
            file : typing.Optional[global___Dataset.File] = ...,
            files : typing.Optional[global___Dataset.Files] = ...,
            archive : typing.Optional[global___Dataset.Archive] = ...,
            sql : typing.Optional[global___Dataset.Sql] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["archive",b"archive","file",b"file","files",b"files","spec",b"spec","sql",b"sql","transformed",b"transformed"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["archive",b"archive","file",b"file","files",b"files","spec",b"spec","sql",b"sql","transformed",b"transformed"]) -> None: ...
        def WhichOneof(self, oneof_group: typing_extensions.Literal["spec",b"spec"]) -> typing.Optional[typing_extensions.Literal["transformed","file","files","archive","sql"]]: ...

    class Transformed(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class NamedArgumentsEntry(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            KEY_FIELD_NUMBER: builtins.int
            VALUE_FIELD_NUMBER: builtins.int
            key: typing.Text = ...
            value: typing.Text = ...
            def __init__(self,
                *,
                key : typing.Text = ...,
                value : typing.Text = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...

        TRANSFORM_FIELD_NUMBER: builtins.int
        ARGUMENTS_FIELD_NUMBER: builtins.int
        NAMED_ARGUMENTS_FIELD_NUMBER: builtins.int
        transform: typing.Text = ...
        """Transform id"""

        @property
        def arguments(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
            """Dataset or other object ids"""
            pass
        @property
        def named_arguments(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...
        def __init__(self,
            *,
            transform : typing.Text = ...,
            arguments : typing.Optional[typing.Iterable[typing.Text]] = ...,
            named_arguments : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["arguments",b"arguments","named_arguments",b"named_arguments","transform",b"transform"]) -> None: ...

    class File(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        FORMAT_FIELD_NUMBER: builtins.int
        URI_FIELD_NUMBER: builtins.int
        format: typing.Text = ...
        uri: typing.Text = ...
        """File URI"""

        def __init__(self,
            *,
            format : typing.Text = ...,
            uri : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["format",b"format","uri",b"uri"]) -> None: ...

    class Files(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        FORMAT_FIELD_NUMBER: builtins.int
        URI_PATTERN_FIELD_NUMBER: builtins.int
        format: typing.Text = ...
        uri_pattern: typing.Text = ...
        """Pattern of files"""

        def __init__(self,
            *,
            format : typing.Text = ...,
            uri_pattern : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["format",b"format","uri_pattern",b"uri_pattern"]) -> None: ...

    class Archive(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        FORMAT_FIELD_NUMBER: builtins.int
        ARCHIVE_FORMAT_FIELD_NUMBER: builtins.int
        URI_FIELD_NUMBER: builtins.int
        format: typing.Text = ...
        archive_format: typing.Text = ...
        uri: typing.Text = ...
        """Archive URI"""

        def __init__(self,
            *,
            format : typing.Text = ...,
            archive_format : typing.Text = ...,
            uri : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["archive_format",b"archive_format","format",b"format","uri",b"uri"]) -> None: ...

    class Sql(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class Table(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            SCHEMA_FIELD_NUMBER: builtins.int
            TABLE_FIELD_NUMBER: builtins.int
            schema: typing.Text = ...
            table: typing.Text = ...
            def __init__(self,
                *,
                schema : typing.Text = ...,
                table : typing.Text = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal["schema",b"schema","table",b"table"]) -> None: ...

        URI_FIELD_NUMBER: builtins.int
        TABLES_FIELD_NUMBER: builtins.int
        uri: typing.Text = ...
        """As in https://docs.sqlalchemy.org/en/14/core/engines.html"""

        @property
        def tables(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Dataset.Sql.Table]:
            """the sql schemas from which the data can be downloaded"""
            pass
        def __init__(self,
            *,
            uri : typing.Text = ...,
            tables : typing.Optional[typing.Iterable[global___Dataset.Sql.Table]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["tables",b"tables","uri",b"uri"]) -> None: ...

    UUID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DOC_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    uuid: typing.Text = ...
    """The dataset definition
    e.g. RFC 4122 id used to refer to the dataset (content linked?)
    """

    name: typing.Text = ...
    doc: typing.Text = ...
    @property
    def spec(self) -> global___Dataset.Spec: ...
    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]:
        """Other properties"""
        pass
    def __init__(self,
        *,
        uuid : typing.Text = ...,
        name : typing.Text = ...,
        doc : typing.Text = ...,
        spec : typing.Optional[global___Dataset.Spec] = ...,
        properties : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["spec",b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["doc",b"doc","name",b"name","properties",b"properties","spec",b"spec","uuid",b"uuid"]) -> None: ...
global___Dataset = Dataset
