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

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _QueryStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _QueryStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_QueryStatus.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID: _QueryStatus.ValueType  # 0
    """Invalid status"""
    SUCCESS: _QueryStatus.ValueType  # 1
    """Query Success"""
    PENDING: _QueryStatus.ValueType  # 2
    """Query Queued"""
    CANCELED: _QueryStatus.ValueType  # 3
    """Query Canceled"""
    FAILED: _QueryStatus.ValueType  # 4
    """Query Failed"""

class QueryStatus(_QueryStatus, metaclass=_QueryStatusEnumTypeWrapper): ...

INVALID: QueryStatus.ValueType  # 0
"""Invalid status"""
SUCCESS: QueryStatus.ValueType  # 1
"""Query Success"""
PENDING: QueryStatus.ValueType  # 2
"""Query Queued"""
CANCELED: QueryStatus.ValueType  # 3
"""Query Canceled"""
FAILED: QueryStatus.ValueType  # 4
"""Query Failed"""
global___QueryStatus = QueryStatus

class _ColumnType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ColumnTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ColumnType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID_TYPE: _ColumnType.ValueType  # 0
    BOOLEAN: _ColumnType.ValueType  # 1
    """Values are true and false."""
    TINYINT: _ColumnType.ValueType  # 2
    """ A 8-bit signed integer in two’s complement format, with a minimum value of -27 and a maximum value of 27-1."""
    SMALLINT: _ColumnType.ValueType  # 3
    """A 16-bit signed integer in two’s complement format, with a minimum value of -215 and a maximum value of 215-1."""
    INT: _ColumnType.ValueType  # 4
    """INTEGER – number"""
    BIGINT: _ColumnType.ValueType  # 5
    """A 64-bit signed integer in two’s complement format, with a minimum value of -263 and a maximum value of 263-1."""
    DOUBLE: _ColumnType.ValueType  # 6
    """ A 64-bit signed double-precision floating point number."""
    FLOAT: _ColumnType.ValueType  # 7
    """ A 32-bit signed single-precision floating point number."""
    CHAR: _ColumnType.ValueType  # 8
    """Fixed length character data"""
    STRING: _ColumnType.ValueType  # 9
    """A string literal enclosed in single or double quotes"""
    BINARY: _ColumnType.ValueType  # 10
    """Binary data"""
    DATE: _ColumnType.ValueType  # 11
    """A date in ISO format, such as YYYY-MM-DD."""
    TIMESTAMP: _ColumnType.ValueType  # 12
    """Date and time instant in a java.sql.Timestamp"""

class ColumnType(_ColumnType, metaclass=_ColumnTypeEnumTypeWrapper): ...

INVALID_TYPE: ColumnType.ValueType  # 0
BOOLEAN: ColumnType.ValueType  # 1
"""Values are true and false."""
TINYINT: ColumnType.ValueType  # 2
""" A 8-bit signed integer in two’s complement format, with a minimum value of -27 and a maximum value of 27-1."""
SMALLINT: ColumnType.ValueType  # 3
"""A 16-bit signed integer in two’s complement format, with a minimum value of -215 and a maximum value of 215-1."""
INT: ColumnType.ValueType  # 4
"""INTEGER – number"""
BIGINT: ColumnType.ValueType  # 5
"""A 64-bit signed integer in two’s complement format, with a minimum value of -263 and a maximum value of 263-1."""
DOUBLE: ColumnType.ValueType  # 6
""" A 64-bit signed double-precision floating point number."""
FLOAT: ColumnType.ValueType  # 7
""" A 32-bit signed single-precision floating point number."""
CHAR: ColumnType.ValueType  # 8
"""Fixed length character data"""
STRING: ColumnType.ValueType  # 9
"""A string literal enclosed in single or double quotes"""
BINARY: ColumnType.ValueType  # 10
"""Binary data"""
DATE: ColumnType.ValueType  # 11
"""A date in ISO format, such as YYYY-MM-DD."""
TIMESTAMP: ColumnType.ValueType  # 12
"""Date and time instant in a java.sql.Timestamp"""
global___ColumnType = ColumnType

class ResultData(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEADERS_FIELD_NUMBER: builtins.int
    HEADERSDESC_FIELD_NUMBER: builtins.int
    ROWS_FIELD_NUMBER: builtins.int
    @property
    def headers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Headers of the result set"""
    @property
    def headersDesc(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HeaderDesc]:
        """headers description"""
    @property
    def rows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResultRow]:
        """Rows of the result set"""
    def __init__(
        self,
        *,
        headers: collections.abc.Iterable[builtins.str] | None = ...,
        headersDesc: collections.abc.Iterable[global___HeaderDesc] | None = ...,
        rows: collections.abc.Iterable[global___ResultRow] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["headers", b"headers", "headersDesc", b"headersDesc", "rows", b"rows"]) -> None: ...

global___ResultData = ResultData

class HeaderDesc(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Header name"""
    type: builtins.str
    """Header type"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        type: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "type", b"type"]) -> None: ...

global___HeaderDesc = HeaderDesc

class ResultRow(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VALUES_FIELD_NUMBER: builtins.int
    @property
    def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """The values in the result set row"""
    def __init__(
        self,
        *,
        values: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ...

global___ResultRow = ResultRow

class TableColumn(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    COMMENT_FIELD_NUMBER: builtins.int
    name: builtins.str
    """The name of the column"""
    type: builtins.str
    """The type of the column"""
    comment: builtins.str
    """The column's comment"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        type: builtins.str = ...,
        comment: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["comment", b"comment", "name", b"name", "type", b"type"]) -> None: ...

global___TableColumn = TableColumn

class TableColumnDefinition(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    name: builtins.str
    """The name of the column"""
    type: global___ColumnType.ValueType
    """The type of the column"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        type: global___ColumnType.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "type", b"type"]) -> None: ...

global___TableColumnDefinition = TableColumnDefinition

class TableDefinition(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DB_NAME_FIELD_NUMBER: builtins.int
    TABLE_NAME_FIELD_NUMBER: builtins.int
    COLUMNS_FIELD_NUMBER: builtins.int
    DATA_PATH_FIELD_NUMBER: builtins.int
    FORMAT_FIELD_NUMBER: builtins.int
    PARTITIONS_FIELD_NUMBER: builtins.int
    db_name: builtins.str
    """The db name create table in"""
    table_name: builtins.str
    """The table name"""
    @property
    def columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TableColumnDefinition]:
        """Columns to create - The order is important must be like the order in the data file."""
    data_path: builtins.str
    """Data location"""
    @property
    def format(self) -> global___DataFormat:
        """The format the data saved in"""
    @property
    def partitions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TableColumnDefinition]:
        """The columns to partition the data by."""
    def __init__(
        self,
        *,
        db_name: builtins.str = ...,
        table_name: builtins.str = ...,
        columns: collections.abc.Iterable[global___TableColumnDefinition] | None = ...,
        data_path: builtins.str = ...,
        format: global___DataFormat | None = ...,
        partitions: collections.abc.Iterable[global___TableColumnDefinition] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["format", b"format"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["columns", b"columns", "data_path", b"data_path", "db_name", b"db_name", "format", b"format", "partitions", b"partitions", "table_name", b"table_name"]) -> None: ...

global___TableDefinition = TableDefinition

class DataFormat(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CSV_FIELD_NUMBER: builtins.int
    @property
    def csv(self) -> global___CsvInput: ...
    def __init__(
        self,
        *,
        csv: global___CsvInput | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["csv", b"csv", "format", b"format"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["csv", b"csv", "format", b"format"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["format", b"format"]) -> typing_extensions.Literal["csv"] | None: ...

global___DataFormat = DataFormat

class CsvInput(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DELIMITER_FIELD_NUMBER: builtins.int
    QUOTE_CHAR_FIELD_NUMBER: builtins.int
    ESCAPE_CHAR_FIELD_NUMBER: builtins.int
    delimiter: builtins.str
    """Separator character - represent field in the data"""
    quote_char: builtins.str
    """Quote Character"""
    escape_char: builtins.str
    """Escape character - for special character in the data."""
    def __init__(
        self,
        *,
        delimiter: builtins.str = ...,
        quote_char: builtins.str = ...,
        escape_char: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["delimiter", b"delimiter", "escape_char", b"escape_char", "quote_char", b"quote_char"]) -> None: ...

global___CsvInput = CsvInput

class QueryResultDownloadURLParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    QUERY_ID_FIELD_NUMBER: builtins.int
    query_id: builtins.str
    """Query ID"""
    def __init__(
        self,
        *,
        query_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["query_id", b"query_id"]) -> None: ...

global___QueryResultDownloadURLParams = QueryResultDownloadURLParams
