"""
@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
import yandex.cloud.datatransfer.v1.endpoint_pb2

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

class _TransferTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TransferType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    TRANSFER_TYPE_UNSPECIFIED: _TransferType.ValueType  # 0
    SNAPSHOT_AND_INCREMENT: _TransferType.ValueType  # 1
    """Snapshot and increment"""
    SNAPSHOT_ONLY: _TransferType.ValueType  # 2
    """Snapshot"""
    INCREMENT_ONLY: _TransferType.ValueType  # 3
    """Increment"""

class TransferType(_TransferType, metaclass=_TransferTypeEnumTypeWrapper): ...

TRANSFER_TYPE_UNSPECIFIED: TransferType.ValueType  # 0
SNAPSHOT_AND_INCREMENT: TransferType.ValueType  # 1
"""Snapshot and increment"""
SNAPSHOT_ONLY: TransferType.ValueType  # 2
"""Snapshot"""
INCREMENT_ONLY: TransferType.ValueType  # 3
"""Increment"""
global___TransferType = TransferType

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

class _TransferStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TransferStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    TRANSFER_STATUS_UNSPECIFIED: _TransferStatus.ValueType  # 0
    CREATING: _TransferStatus.ValueType  # 1
    """Transfer does some work before running"""
    CREATED: _TransferStatus.ValueType  # 2
    """Transfer created but not started by user"""
    RUNNING: _TransferStatus.ValueType  # 3
    """Transfer currently doing replication work"""
    STOPPING: _TransferStatus.ValueType  # 4
    """Transfer shutdown"""
    STOPPED: _TransferStatus.ValueType  # 5
    """Transfer stopped by user"""
    ERROR: _TransferStatus.ValueType  # 6
    """Transfer stopped by system"""
    SNAPSHOTTING: _TransferStatus.ValueType  # 7
    """Transfer copy snapshot"""
    DONE: _TransferStatus.ValueType  # 8
    """Transfer reach terminal phase"""

class TransferStatus(_TransferStatus, metaclass=_TransferStatusEnumTypeWrapper): ...

TRANSFER_STATUS_UNSPECIFIED: TransferStatus.ValueType  # 0
CREATING: TransferStatus.ValueType  # 1
"""Transfer does some work before running"""
CREATED: TransferStatus.ValueType  # 2
"""Transfer created but not started by user"""
RUNNING: TransferStatus.ValueType  # 3
"""Transfer currently doing replication work"""
STOPPING: TransferStatus.ValueType  # 4
"""Transfer shutdown"""
STOPPED: TransferStatus.ValueType  # 5
"""Transfer stopped by user"""
ERROR: TransferStatus.ValueType  # 6
"""Transfer stopped by system"""
SNAPSHOTTING: TransferStatus.ValueType  # 7
"""Transfer copy snapshot"""
DONE: TransferStatus.ValueType  # 8
"""Transfer reach terminal phase"""
global___TransferStatus = TransferStatus

@typing.final
class Transfer(google.protobuf.message.Message):
    """Transfer core entity"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class LabelsEntry(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: ...

    ID_FIELD_NUMBER: builtins.int
    FOLDER_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    LABELS_FIELD_NUMBER: builtins.int
    SOURCE_FIELD_NUMBER: builtins.int
    TARGET_FIELD_NUMBER: builtins.int
    RUNTIME_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    WARNING_FIELD_NUMBER: builtins.int
    TRANSFORMATION_FIELD_NUMBER: builtins.int
    DATA_OBJECTS_FIELD_NUMBER: builtins.int
    PRESTABLE_FIELD_NUMBER: builtins.int
    id: builtins.str
    folder_id: builtins.str
    name: builtins.str
    description: builtins.str
    status: global___TransferStatus.ValueType
    type: global___TransferType.ValueType
    warning: builtins.str
    prestable: builtins.bool
    @property
    def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def source(self) -> yandex.cloud.datatransfer.v1.endpoint_pb2.Endpoint: ...
    @property
    def target(self) -> yandex.cloud.datatransfer.v1.endpoint_pb2.Endpoint: ...
    @property
    def runtime(self) -> global___Runtime: ...
    @property
    def transformation(self) -> global___Transformation: ...
    @property
    def data_objects(self) -> global___DataObjects: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        folder_id: builtins.str = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        source: yandex.cloud.datatransfer.v1.endpoint_pb2.Endpoint | None = ...,
        target: yandex.cloud.datatransfer.v1.endpoint_pb2.Endpoint | None = ...,
        runtime: global___Runtime | None = ...,
        status: global___TransferStatus.ValueType = ...,
        type: global___TransferType.ValueType = ...,
        warning: builtins.str = ...,
        transformation: global___Transformation | None = ...,
        data_objects: global___DataObjects | None = ...,
        prestable: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["data_objects", b"data_objects", "runtime", b"runtime", "source", b"source", "target", b"target", "transformation", b"transformation"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["data_objects", b"data_objects", "description", b"description", "folder_id", b"folder_id", "id", b"id", "labels", b"labels", "name", b"name", "prestable", b"prestable", "runtime", b"runtime", "source", b"source", "status", b"status", "target", b"target", "transformation", b"transformation", "type", b"type", "warning", b"warning"]) -> None: ...

global___Transfer = Transfer

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

    YC_RUNTIME_FIELD_NUMBER: builtins.int
    @property
    def yc_runtime(self) -> global___YcRuntime: ...
    def __init__(
        self,
        *,
        yc_runtime: global___YcRuntime | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["runtime", b"runtime", "yc_runtime", b"yc_runtime"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["runtime", b"runtime", "yc_runtime", b"yc_runtime"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["runtime", b"runtime"]) -> typing.Literal["yc_runtime"] | None: ...

global___Runtime = Runtime

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

    JOB_COUNT_FIELD_NUMBER: builtins.int
    PROCESS_COUNT_FIELD_NUMBER: builtins.int
    job_count: builtins.int
    process_count: builtins.int
    def __init__(
        self,
        *,
        job_count: builtins.int = ...,
        process_count: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["job_count", b"job_count", "process_count", b"process_count"]) -> None: ...

global___ShardingUploadParams = ShardingUploadParams

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

    JOB_COUNT_FIELD_NUMBER: builtins.int
    UPLOAD_SHARD_PARAMS_FIELD_NUMBER: builtins.int
    job_count: builtins.int
    @property
    def upload_shard_params(self) -> global___ShardingUploadParams: ...
    def __init__(
        self,
        *,
        job_count: builtins.int = ...,
        upload_shard_params: global___ShardingUploadParams | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["upload_shard_params", b"upload_shard_params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["job_count", b"job_count", "upload_shard_params", b"upload_shard_params"]) -> None: ...

global___YcRuntime = YcRuntime

@typing.final
class MaskFunction(google.protobuf.message.Message):
    """Mask function"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MASK_FUNCTION_HASH_FIELD_NUMBER: builtins.int
    @property
    def mask_function_hash(self) -> global___MaskFunctionHash:
        """Hash mask function"""

    def __init__(
        self,
        *,
        mask_function_hash: global___MaskFunctionHash | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["mask_function", b"mask_function", "mask_function_hash", b"mask_function_hash"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["mask_function", b"mask_function", "mask_function_hash", b"mask_function_hash"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["mask_function", b"mask_function"]) -> typing.Literal["mask_function_hash"] | None: ...

global___MaskFunction = MaskFunction

@typing.final
class MaskFunctionHash(google.protobuf.message.Message):
    """Hash data using HMAC"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_DEFINED_SALT_FIELD_NUMBER: builtins.int
    user_defined_salt: builtins.str
    """This string will be used in the HMAC(sha256, salt) function applied to the
    column data.
    """
    def __init__(
        self,
        *,
        user_defined_salt: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["user_defined_salt", b"user_defined_salt"]) -> None: ...

global___MaskFunctionHash = MaskFunctionHash

@typing.final
class TablesFilter(google.protobuf.message.Message):
    """Filter tables using lists of included and excluded tables."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INCLUDE_TABLES_FIELD_NUMBER: builtins.int
    EXCLUDE_TABLES_FIELD_NUMBER: builtins.int
    @property
    def include_tables(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of tables that will be included to transfer"""

    @property
    def exclude_tables(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of tables that will be excluded to transfer"""

    def __init__(
        self,
        *,
        include_tables: collections.abc.Iterable[builtins.str] | None = ...,
        exclude_tables: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["exclude_tables", b"exclude_tables", "include_tables", b"include_tables"]) -> None: ...

global___TablesFilter = TablesFilter

@typing.final
class ColumnsFilter(google.protobuf.message.Message):
    """Filter columns using lists of included and excluded columns."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INCLUDE_COLUMNS_FIELD_NUMBER: builtins.int
    EXCLUDE_COLUMNS_FIELD_NUMBER: builtins.int
    @property
    def include_columns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of columns that will be included to transfer"""

    @property
    def exclude_columns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of columns that will be excluded to transfer"""

    def __init__(
        self,
        *,
        include_columns: collections.abc.Iterable[builtins.str] | None = ...,
        exclude_columns: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["exclude_columns", b"exclude_columns", "include_columns", b"include_columns"]) -> None: ...

global___ColumnsFilter = ColumnsFilter

@typing.final
class MaskFieldTransformer(google.protobuf.message.Message):
    """Mask field transformer allows you to hash data"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TABLES_FIELD_NUMBER: builtins.int
    COLUMNS_FIELD_NUMBER: builtins.int
    FUNCTION_FIELD_NUMBER: builtins.int
    @property
    def tables(self) -> global___TablesFilter:
        """List of included and excluded tables"""

    @property
    def columns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Specify the name of the column for data masking (a regular expression)."""

    @property
    def function(self) -> global___MaskFunction:
        """Mask function"""

    def __init__(
        self,
        *,
        tables: global___TablesFilter | None = ...,
        columns: collections.abc.Iterable[builtins.str] | None = ...,
        function: global___MaskFunction | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["function", b"function", "tables", b"tables"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["columns", b"columns", "function", b"function", "tables", b"tables"]) -> None: ...

global___MaskFieldTransformer = MaskFieldTransformer

@typing.final
class FilterColumnsTransformer(google.protobuf.message.Message):
    """Set up a list of table columns to transfer"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TABLES_FIELD_NUMBER: builtins.int
    COLUMNS_FIELD_NUMBER: builtins.int
    @property
    def tables(self) -> global___TablesFilter:
        """List of the tables to filter using lists of included and excluded tables."""

    @property
    def columns(self) -> global___ColumnsFilter:
        """List of the columns to transfer to the target tables using lists of included and
        excluded columns.
        """

    def __init__(
        self,
        *,
        tables: global___TablesFilter | None = ...,
        columns: global___ColumnsFilter | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["columns", b"columns", "tables", b"tables"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["columns", b"columns", "tables", b"tables"]) -> None: ...

global___FilterColumnsTransformer = FilterColumnsTransformer

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

    NAME_SPACE_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    name_space: builtins.str
    name: builtins.str
    def __init__(
        self,
        *,
        name_space: builtins.str = ...,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["name", b"name", "name_space", b"name_space"]) -> None: ...

global___Table = Table

@typing.final
class RenameTable(google.protobuf.message.Message):
    """Specify rule for renaming table"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ORIGINAL_NAME_FIELD_NUMBER: builtins.int
    NEW_NAME_FIELD_NUMBER: builtins.int
    @property
    def original_name(self) -> global___Table:
        """Specify the current names of the table in the source"""

    @property
    def new_name(self) -> global___Table:
        """Specify the new names for this table in the target"""

    def __init__(
        self,
        *,
        original_name: global___Table | None = ...,
        new_name: global___Table | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["new_name", b"new_name", "original_name", b"original_name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["new_name", b"new_name", "original_name", b"original_name"]) -> None: ...

global___RenameTable = RenameTable

@typing.final
class RenameTablesTransformer(google.protobuf.message.Message):
    """Set rules for renaming tables by specifying the current names of the tables in
    the source and new names for these tables in the target.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RENAME_TABLES_FIELD_NUMBER: builtins.int
    @property
    def rename_tables(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RenameTable]:
        """List of renaming rules"""

    def __init__(
        self,
        *,
        rename_tables: collections.abc.Iterable[global___RenameTable] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["rename_tables", b"rename_tables"]) -> None: ...

global___RenameTablesTransformer = RenameTablesTransformer

@typing.final
class ReplacePrimaryKeyTransformer(google.protobuf.message.Message):
    """Override primary keys"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TABLES_FIELD_NUMBER: builtins.int
    KEYS_FIELD_NUMBER: builtins.int
    @property
    def tables(self) -> global___TablesFilter:
        """List of included and excluded tables"""

    @property
    def keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of columns to be used as primary keys"""

    def __init__(
        self,
        *,
        tables: global___TablesFilter | None = ...,
        keys: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["tables", b"tables"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["keys", b"keys", "tables", b"tables"]) -> None: ...

global___ReplacePrimaryKeyTransformer = ReplacePrimaryKeyTransformer

@typing.final
class ToStringTransformer(google.protobuf.message.Message):
    """Convert column values to strings
    The values will be converted depending on the source type
    Conversion rules are described here:
    https://cloud.yandex.com/en/docs/data-transfer/concepts/data-transformation#convert-to-string
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TABLES_FIELD_NUMBER: builtins.int
    COLUMNS_FIELD_NUMBER: builtins.int
    @property
    def tables(self) -> global___TablesFilter:
        """List of included and excluded tables"""

    @property
    def columns(self) -> global___ColumnsFilter:
        """List of included and excluded columns"""

    def __init__(
        self,
        *,
        tables: global___TablesFilter | None = ...,
        columns: global___ColumnsFilter | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["columns", b"columns", "tables", b"tables"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["columns", b"columns", "tables", b"tables"]) -> None: ...

global___ToStringTransformer = ToStringTransformer

@typing.final
class SharderTransformer(google.protobuf.message.Message):
    """Set the number of shards for particular tables and a list of columns whose
    values will be used for calculating a hash to determine a shard.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TABLES_FIELD_NUMBER: builtins.int
    COLUMNS_FIELD_NUMBER: builtins.int
    SHARDS_COUNT_FIELD_NUMBER: builtins.int
    shards_count: builtins.int
    """Number of shards"""
    @property
    def tables(self) -> global___TablesFilter:
        """List of included and excluded tables"""

    @property
    def columns(self) -> global___ColumnsFilter:
        """List of included and excluded columns"""

    def __init__(
        self,
        *,
        tables: global___TablesFilter | None = ...,
        columns: global___ColumnsFilter | None = ...,
        shards_count: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["columns", b"columns", "tables", b"tables"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["columns", b"columns", "shards_count", b"shards_count", "tables", b"tables"]) -> None: ...

global___SharderTransformer = SharderTransformer

@typing.final
class TableSplitterTransformer(google.protobuf.message.Message):
    """A transfer splits the X table into multiple tables (X_1, X_2, ..., X_n) based on
    data.
    If a row was located in the X table before it was split, it is now in the X_i
    table,
    where i is determined by the column list and split string parameters.
    Example:
    If the column list has two columns, month of birth and gender, specified and the
    split string states @,
    information about an employee whose name is John and who was born on February
    11, 1984,
    from the Employees table will get to a new table named Employees@February@male.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TABLES_FIELD_NUMBER: builtins.int
    COLUMNS_FIELD_NUMBER: builtins.int
    SPLITTER_FIELD_NUMBER: builtins.int
    splitter: builtins.str
    """Specify the split string to be used for merging components in a new table name."""
    @property
    def tables(self) -> global___TablesFilter:
        """List of included and excluded tables"""

    @property
    def columns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Specify the columns in the tables to be partitioned."""

    def __init__(
        self,
        *,
        tables: global___TablesFilter | None = ...,
        columns: collections.abc.Iterable[builtins.str] | None = ...,
        splitter: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["tables", b"tables"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["columns", b"columns", "splitter", b"splitter", "tables", b"tables"]) -> None: ...

global___TableSplitterTransformer = TableSplitterTransformer

@typing.final
class FilterRowsTransformer(google.protobuf.message.Message):
    """This filter only applies to transfers with queues (Logbroker or Apache Kafka®)
    as a data source.
    When running a transfer, only the strings meeting the specified criteria remain
    in a changefeed.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TABLES_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    FILTERS_FIELD_NUMBER: builtins.int
    filter: builtins.str
    """Filtering criterion. This can be comparison operators for numeric, string, and
    Boolean values,
    comparison to NULL, and checking whether a substring is part of a string.
    Details here:
    https://yandex.cloud/en-ru/docs/data-transfer/concepts/data-transformation#append-only-sources.
    Deprecated: Use filters instead.
    """
    @property
    def tables(self) -> global___TablesFilter:
        """List of included and excluded tables."""

    @property
    def filters(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Data is transported if it satisfies at least one of filters. Consider that there
        is OR statement between filters.
        Each filter can be comparison operators for numeric, string, and Boolean values,
        comparison to NULL, and
        checking whether a substring is part of a string.
        Details in docs:
        https://yandex.cloud/en-ru/docs/data-transfer/concepts/data-transformation#append-only-sources.
        """

    def __init__(
        self,
        *,
        tables: global___TablesFilter | None = ...,
        filter: builtins.str = ...,
        filters: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["tables", b"tables"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["filter", b"filter", "filters", b"filters", "tables", b"tables"]) -> None: ...

global___FilterRowsTransformer = FilterRowsTransformer

@typing.final
class Transformer(google.protobuf.message.Message):
    """Some transformers may have limitations and only apply to some source-target
    pairs.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MASK_FIELD_FIELD_NUMBER: builtins.int
    FILTER_COLUMNS_FIELD_NUMBER: builtins.int
    RENAME_TABLES_FIELD_NUMBER: builtins.int
    REPLACE_PRIMARY_KEY_FIELD_NUMBER: builtins.int
    CONVERT_TO_STRING_FIELD_NUMBER: builtins.int
    SHARDER_TRANSFORMER_FIELD_NUMBER: builtins.int
    TABLE_SPLITTER_TRANSFORMER_FIELD_NUMBER: builtins.int
    FILTER_ROWS_FIELD_NUMBER: builtins.int
    @property
    def mask_field(self) -> global___MaskFieldTransformer: ...
    @property
    def filter_columns(self) -> global___FilterColumnsTransformer: ...
    @property
    def rename_tables(self) -> global___RenameTablesTransformer: ...
    @property
    def replace_primary_key(self) -> global___ReplacePrimaryKeyTransformer: ...
    @property
    def convert_to_string(self) -> global___ToStringTransformer: ...
    @property
    def sharder_transformer(self) -> global___SharderTransformer: ...
    @property
    def table_splitter_transformer(self) -> global___TableSplitterTransformer: ...
    @property
    def filter_rows(self) -> global___FilterRowsTransformer: ...
    def __init__(
        self,
        *,
        mask_field: global___MaskFieldTransformer | None = ...,
        filter_columns: global___FilterColumnsTransformer | None = ...,
        rename_tables: global___RenameTablesTransformer | None = ...,
        replace_primary_key: global___ReplacePrimaryKeyTransformer | None = ...,
        convert_to_string: global___ToStringTransformer | None = ...,
        sharder_transformer: global___SharderTransformer | None = ...,
        table_splitter_transformer: global___TableSplitterTransformer | None = ...,
        filter_rows: global___FilterRowsTransformer | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["convert_to_string", b"convert_to_string", "filter_columns", b"filter_columns", "filter_rows", b"filter_rows", "mask_field", b"mask_field", "rename_tables", b"rename_tables", "replace_primary_key", b"replace_primary_key", "sharder_transformer", b"sharder_transformer", "table_splitter_transformer", b"table_splitter_transformer", "transformer", b"transformer"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["convert_to_string", b"convert_to_string", "filter_columns", b"filter_columns", "filter_rows", b"filter_rows", "mask_field", b"mask_field", "rename_tables", b"rename_tables", "replace_primary_key", b"replace_primary_key", "sharder_transformer", b"sharder_transformer", "table_splitter_transformer", b"table_splitter_transformer", "transformer", b"transformer"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["transformer", b"transformer"]) -> typing.Literal["mask_field", "filter_columns", "rename_tables", "replace_primary_key", "convert_to_string", "sharder_transformer", "table_splitter_transformer", "filter_rows"] | None: ...

global___Transformer = Transformer

@typing.final
class Transformation(google.protobuf.message.Message):
    """Transformation is converting data using special transformer functions.
    These functions are executed on a data stream, applied to each data change item,
    and transform them.
    A transformer can be run at both the metadata and data levels.
    Data can only be transformed if the source and target are of different types.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TRANSFORMERS_FIELD_NUMBER: builtins.int
    @property
    def transformers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Transformer]:
        """Transformers are set as a list.
        When activating a transfer, a transformation plan is made for the tables that
        match the specified criteria.
        Transformers are applied to the tables in the sequence specified in the list.
        """

    def __init__(
        self,
        *,
        transformers: collections.abc.Iterable[global___Transformer] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["transformers", b"transformers"]) -> None: ...

global___Transformation = Transformation

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

    INCLUDE_OBJECTS_FIELD_NUMBER: builtins.int
    @property
    def include_objects(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        include_objects: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["include_objects", b"include_objects"]) -> None: ...

global___DataObjects = DataObjects
