"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright 2020 The Merlin Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""

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 _ResultType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ResultTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ResultType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    DOUBLE: _ResultType.ValueType  # 0
    FLOAT: _ResultType.ValueType  # 1
    INTEGER: _ResultType.ValueType  # 2
    LONG: _ResultType.ValueType  # 3
    STRING: _ResultType.ValueType  # 4
    ARRAY: _ResultType.ValueType  # 10

class ResultType(_ResultType, metaclass=_ResultTypeEnumTypeWrapper): ...

DOUBLE: ResultType.ValueType  # 0
FLOAT: ResultType.ValueType  # 1
INTEGER: ResultType.ValueType  # 2
LONG: ResultType.ValueType  # 3
STRING: ResultType.ValueType  # 4
ARRAY: ResultType.ValueType  # 10
global___ResultType = ResultType

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

class _ModelTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModelType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID_MODEL_TYPE: _ModelType.ValueType  # 0
    XGBOOST: _ModelType.ValueType  # 1
    TENSORFLOW: _ModelType.ValueType  # 2
    SKLEARN: _ModelType.ValueType  # 3
    PYTORCH: _ModelType.ValueType  # 4
    ONNX: _ModelType.ValueType  # 5
    PYFUNC: _ModelType.ValueType  # 6
    PYFUNC_V2: _ModelType.ValueType  # 7

class ModelType(_ModelType, metaclass=_ModelTypeEnumTypeWrapper): ...

INVALID_MODEL_TYPE: ModelType.ValueType  # 0
XGBOOST: ModelType.ValueType  # 1
TENSORFLOW: ModelType.ValueType  # 2
SKLEARN: ModelType.ValueType  # 3
PYTORCH: ModelType.ValueType  # 4
ONNX: ModelType.ValueType  # 5
PYFUNC: ModelType.ValueType  # 6
PYFUNC_V2: ModelType.ValueType  # 7
global___ModelType = ModelType

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

class _FileFormatEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FileFormat.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID_FILE_FORMAT: _FileFormat.ValueType  # 0
    CSV: _FileFormat.ValueType  # 1
    PARQUET: _FileFormat.ValueType  # 2
    AVRO: _FileFormat.ValueType  # 3
    JSON: _FileFormat.ValueType  # 4

class FileFormat(_FileFormat, metaclass=_FileFormatEnumTypeWrapper): ...

INVALID_FILE_FORMAT: FileFormat.ValueType  # 0
CSV: FileFormat.ValueType  # 1
PARQUET: FileFormat.ValueType  # 2
AVRO: FileFormat.ValueType  # 3
JSON: FileFormat.ValueType  # 4
global___FileFormat = FileFormat

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

class _SaveModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SaveMode.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    ERRORIFEXISTS: _SaveMode.ValueType  # 0
    OVERWRITE: _SaveMode.ValueType  # 1
    APPEND: _SaveMode.ValueType  # 2
    IGNORE: _SaveMode.ValueType  # 3
    ERROR: _SaveMode.ValueType  # 4

class SaveMode(_SaveMode, metaclass=_SaveModeEnumTypeWrapper): ...

ERRORIFEXISTS: SaveMode.ValueType  # 0
OVERWRITE: SaveMode.ValueType  # 1
APPEND: SaveMode.ValueType  # 2
IGNORE: SaveMode.ValueType  # 3
ERROR: SaveMode.ValueType  # 4
global___SaveMode = SaveMode

@typing.final
class PredictionJob(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VERSION_FIELD_NUMBER: builtins.int
    KIND_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    BIGQUERY_SOURCE_FIELD_NUMBER: builtins.int
    GCS_SOURCE_FIELD_NUMBER: builtins.int
    MAXCOMPUTE_SOURCE_FIELD_NUMBER: builtins.int
    MODEL_FIELD_NUMBER: builtins.int
    BIGQUERY_SINK_FIELD_NUMBER: builtins.int
    GCS_SINK_FIELD_NUMBER: builtins.int
    MAXCOMPUTE_SINK_FIELD_NUMBER: builtins.int
    version: builtins.str
    kind: builtins.str
    name: builtins.str
    @property
    def bigquery_source(self) -> global___BigQuerySource: ...
    @property
    def gcs_source(self) -> global___GcsSource: ...
    @property
    def maxcompute_source(self) -> global___MaxComputeSource: ...
    @property
    def model(self) -> global___Model: ...
    @property
    def bigquery_sink(self) -> global___BigQuerySink: ...
    @property
    def gcs_sink(self) -> global___GcsSink: ...
    @property
    def maxcompute_sink(self) -> global___MaxComputeSink: ...
    def __init__(
        self,
        *,
        version: builtins.str = ...,
        kind: builtins.str = ...,
        name: builtins.str = ...,
        bigquery_source: global___BigQuerySource | None = ...,
        gcs_source: global___GcsSource | None = ...,
        maxcompute_source: global___MaxComputeSource | None = ...,
        model: global___Model | None = ...,
        bigquery_sink: global___BigQuerySink | None = ...,
        gcs_sink: global___GcsSink | None = ...,
        maxcompute_sink: global___MaxComputeSink | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["bigquery_sink", b"bigquery_sink", "bigquery_source", b"bigquery_source", "gcs_sink", b"gcs_sink", "gcs_source", b"gcs_source", "maxcompute_sink", b"maxcompute_sink", "maxcompute_source", b"maxcompute_source", "model", b"model", "sink", b"sink", "source", b"source"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["bigquery_sink", b"bigquery_sink", "bigquery_source", b"bigquery_source", "gcs_sink", b"gcs_sink", "gcs_source", b"gcs_source", "kind", b"kind", "maxcompute_sink", b"maxcompute_sink", "maxcompute_source", b"maxcompute_source", "model", b"model", "name", b"name", "sink", b"sink", "source", b"source", "version", b"version"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["sink", b"sink"]) -> typing.Literal["bigquery_sink", "gcs_sink", "maxcompute_sink"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["source", b"source"]) -> typing.Literal["bigquery_source", "gcs_source", "maxcompute_source"] | None: ...

global___PredictionJob = PredictionJob

@typing.final
class BigQuerySource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class OptionsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    TABLE_FIELD_NUMBER: builtins.int
    FEATURES_FIELD_NUMBER: builtins.int
    OPTIONS_FIELD_NUMBER: builtins.int
    table: builtins.str
    @property
    def features(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def options(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        table: builtins.str = ...,
        features: collections.abc.Iterable[builtins.str] | None = ...,
        options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["features", b"features", "options", b"options", "table", b"table"]) -> None: ...

global___BigQuerySource = BigQuerySource

@typing.final
class GcsSource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class OptionsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    FORMAT_FIELD_NUMBER: builtins.int
    URI_FIELD_NUMBER: builtins.int
    FEATURES_FIELD_NUMBER: builtins.int
    OPTIONS_FIELD_NUMBER: builtins.int
    format: global___FileFormat.ValueType
    uri: builtins.str
    @property
    def features(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def options(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        format: global___FileFormat.ValueType = ...,
        uri: builtins.str = ...,
        features: collections.abc.Iterable[builtins.str] | None = ...,
        options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["features", b"features", "format", b"format", "options", b"options", "uri", b"uri"]) -> None: ...

global___GcsSource = GcsSource

@typing.final
class MaxComputeSource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class OptionsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    TABLE_FIELD_NUMBER: builtins.int
    ENDPOINT_FIELD_NUMBER: builtins.int
    FEATURES_FIELD_NUMBER: builtins.int
    OPTIONS_FIELD_NUMBER: builtins.int
    table: builtins.str
    endpoint: builtins.str
    @property
    def features(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def options(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        table: builtins.str = ...,
        endpoint: builtins.str = ...,
        features: collections.abc.Iterable[builtins.str] | None = ...,
        options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["endpoint", b"endpoint", "features", b"features", "options", b"options", "table", b"table"]) -> None: ...

global___MaxComputeSource = MaxComputeSource

@typing.final
class Model(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class OptionsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing.final
    class ModelResult(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        TYPE_FIELD_NUMBER: builtins.int
        ITEM_TYPE_FIELD_NUMBER: builtins.int
        type: global___ResultType.ValueType
        item_type: global___ResultType.ValueType
        """only if type is array"""
        def __init__(
            self,
            *,
            type: global___ResultType.ValueType = ...,
            item_type: global___ResultType.ValueType = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["item_type", b"item_type", "type", b"type"]) -> None: ...

    TYPE_FIELD_NUMBER: builtins.int
    URI_FIELD_NUMBER: builtins.int
    RESULT_FIELD_NUMBER: builtins.int
    OPTIONS_FIELD_NUMBER: builtins.int
    type: global___ModelType.ValueType
    uri: builtins.str
    @property
    def result(self) -> global___Model.ModelResult: ...
    @property
    def options(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        type: global___ModelType.ValueType = ...,
        uri: builtins.str = ...,
        result: global___Model.ModelResult | None = ...,
        options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["result", b"result"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["options", b"options", "result", b"result", "type", b"type", "uri", b"uri"]) -> None: ...

global___Model = Model

@typing.final
class BigQuerySink(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class OptionsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    TABLE_FIELD_NUMBER: builtins.int
    STAGING_BUCKET_FIELD_NUMBER: builtins.int
    RESULT_COLUMN_FIELD_NUMBER: builtins.int
    SAVE_MODE_FIELD_NUMBER: builtins.int
    OPTIONS_FIELD_NUMBER: builtins.int
    table: builtins.str
    staging_bucket: builtins.str
    result_column: builtins.str
    save_mode: global___SaveMode.ValueType
    @property
    def options(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        table: builtins.str = ...,
        staging_bucket: builtins.str = ...,
        result_column: builtins.str = ...,
        save_mode: global___SaveMode.ValueType = ...,
        options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["options", b"options", "result_column", b"result_column", "save_mode", b"save_mode", "staging_bucket", b"staging_bucket", "table", b"table"]) -> None: ...

global___BigQuerySink = BigQuerySink

@typing.final
class GcsSink(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class OptionsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    FORMAT_FIELD_NUMBER: builtins.int
    URI_FIELD_NUMBER: builtins.int
    RESULT_COLUMN_FIELD_NUMBER: builtins.int
    SAVE_MODE_FIELD_NUMBER: builtins.int
    OPTIONS_FIELD_NUMBER: builtins.int
    format: global___FileFormat.ValueType
    uri: builtins.str
    result_column: builtins.str
    save_mode: global___SaveMode.ValueType
    @property
    def options(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        format: global___FileFormat.ValueType = ...,
        uri: builtins.str = ...,
        result_column: builtins.str = ...,
        save_mode: global___SaveMode.ValueType = ...,
        options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["format", b"format", "options", b"options", "result_column", b"result_column", "save_mode", b"save_mode", "uri", b"uri"]) -> None: ...

global___GcsSink = GcsSink

@typing.final
class MaxComputeSink(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class OptionsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    TABLE_FIELD_NUMBER: builtins.int
    ENDPOINT_FIELD_NUMBER: builtins.int
    RESULT_COLUMN_FIELD_NUMBER: builtins.int
    SAVE_MODE_FIELD_NUMBER: builtins.int
    OPTIONS_FIELD_NUMBER: builtins.int
    table: builtins.str
    endpoint: builtins.str
    result_column: builtins.str
    save_mode: global___SaveMode.ValueType
    @property
    def options(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        table: builtins.str = ...,
        endpoint: builtins.str = ...,
        result_column: builtins.str = ...,
        save_mode: global___SaveMode.ValueType = ...,
        options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["endpoint", b"endpoint", "options", b"options", "result_column", b"result_column", "save_mode", b"save_mode", "table", b"table"]) -> None: ...

global___MaxComputeSink = MaxComputeSink
