# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    EnumDescriptor as google___protobuf___descriptor___EnumDescriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from .schema_pb2 import (
    Schema as org___apache___beam___model___pipeline___v1___schema_pb2___Schema,
)

from typing import (
    Iterable as typing___Iterable,
    List as typing___List,
    Optional as typing___Optional,
    Text as typing___Text,
    Tuple as typing___Tuple,
    Union as typing___Union,
    cast as typing___cast,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int
builtin___str = str
if sys.version_info < (3,):
    builtin___buffer = buffer
    builtin___unicode = unicode


class ExternalConfigurationPayload(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    payload = ... # type: builtin___bytes

    @property
    def schema(self) -> org___apache___beam___model___pipeline___v1___schema_pb2___Schema: ...

    def __init__(self,
        *,
        schema : typing___Optional[org___apache___beam___model___pipeline___v1___schema_pb2___Schema] = None,
        payload : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ExternalConfigurationPayload: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ExternalConfigurationPayload: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"schema"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"payload",u"schema"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"schema",b"schema"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"payload",b"payload",u"schema",b"schema"]) -> None: ...

class ExpansionMethods(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class Enum(builtin___int):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        @classmethod
        def Name(cls, number: builtin___int) -> builtin___str: ...
        @classmethod
        def Value(cls, name: builtin___str) -> 'ExpansionMethods.Enum': ...
        @classmethod
        def keys(cls) -> typing___List[builtin___str]: ...
        @classmethod
        def values(cls) -> typing___List['ExpansionMethods.Enum']: ...
        @classmethod
        def items(cls) -> typing___List[typing___Tuple[builtin___str, 'ExpansionMethods.Enum']]: ...
        JAVA_CLASS_LOOKUP = typing___cast('ExpansionMethods.Enum', 0)
        SCHEMA_TRANSFORM = typing___cast('ExpansionMethods.Enum', 1)
    JAVA_CLASS_LOOKUP = typing___cast('ExpansionMethods.Enum', 0)
    SCHEMA_TRANSFORM = typing___cast('ExpansionMethods.Enum', 1)


    def __init__(self,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ExpansionMethods: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ExpansionMethods: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...

class JavaClassLookupPayload(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class_name = ... # type: typing___Text
    constructor_method = ... # type: typing___Text
    constructor_payload = ... # type: builtin___bytes

    @property
    def constructor_schema(self) -> org___apache___beam___model___pipeline___v1___schema_pb2___Schema: ...

    @property
    def builder_methods(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[BuilderMethod]: ...

    def __init__(self,
        *,
        class_name : typing___Optional[typing___Text] = None,
        constructor_method : typing___Optional[typing___Text] = None,
        constructor_schema : typing___Optional[org___apache___beam___model___pipeline___v1___schema_pb2___Schema] = None,
        constructor_payload : typing___Optional[builtin___bytes] = None,
        builder_methods : typing___Optional[typing___Iterable[BuilderMethod]] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> JavaClassLookupPayload: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> JavaClassLookupPayload: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"constructor_schema"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"builder_methods",u"class_name",u"constructor_method",u"constructor_payload",u"constructor_schema"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"constructor_schema",b"constructor_schema"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"builder_methods",b"builder_methods",u"class_name",b"class_name",u"constructor_method",b"constructor_method",u"constructor_payload",b"constructor_payload",u"constructor_schema",b"constructor_schema"]) -> None: ...

class BuilderMethod(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    name = ... # type: typing___Text
    payload = ... # type: builtin___bytes

    @property
    def schema(self) -> org___apache___beam___model___pipeline___v1___schema_pb2___Schema: ...

    def __init__(self,
        *,
        name : typing___Optional[typing___Text] = None,
        schema : typing___Optional[org___apache___beam___model___pipeline___v1___schema_pb2___Schema] = None,
        payload : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> BuilderMethod: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> BuilderMethod: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"schema"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"name",u"payload",u"schema"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"schema",b"schema"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"name",b"name",u"payload",b"payload",u"schema",b"schema"]) -> None: ...

class SchemaTransformPayload(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    identifier = ... # type: typing___Text
    configuration_row = ... # type: builtin___bytes

    @property
    def configuration_schema(self) -> org___apache___beam___model___pipeline___v1___schema_pb2___Schema: ...

    def __init__(self,
        *,
        identifier : typing___Optional[typing___Text] = None,
        configuration_schema : typing___Optional[org___apache___beam___model___pipeline___v1___schema_pb2___Schema] = None,
        configuration_row : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> SchemaTransformPayload: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> SchemaTransformPayload: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"configuration_schema"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"configuration_row",u"configuration_schema",u"identifier"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"configuration_schema",b"configuration_schema"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"configuration_row",b"configuration_row",u"configuration_schema",b"configuration_schema",u"identifier",b"identifier"]) -> None: ...
