diff --git a/cloudquery/plugin_v3/plugin_pb2.py b/cloudquery/plugin_v3/plugin_pb2.py index b6707ef..e6b8cd6 100644 --- a/cloudquery/plugin_v3/plugin_pb2.py +++ b/cloudquery/plugin_v3/plugin_pb2.py @@ -14,7 +14,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cloudquery/plugin_v3/plugin.proto\x12\x14\x63loudquery.plugin.v3\x1a\x1fgoogle/protobuf/timestamp.proto\".\n\x07GetName\x1a\t\n\x07Request\x1a\x18\n\x08Response\x12\x0c\n\x04name\x18\x01 \x01(\t\"4\n\nGetVersion\x1a\t\n\x07Request\x1a\x1b\n\x08Response\x12\x0f\n\x07version\x18\x01 \x01(\t\"B\n\x04Init\x1a.\n\x07Request\x12\x0c\n\x04spec\x18\x01 \x01(\x0c\x12\x15\n\rno_connection\x18\x02 \x01(\x08\x1a\n\n\x08Response\"v\n\tGetTables\x1aM\n\x07Request\x12\x0e\n\x06tables\x18\x01 \x03(\t\x12\x13\n\x0bskip_tables\x18\x02 \x03(\t\x12\x1d\n\x15skip_dependent_tables\x18\x03 \x01(\x08\x1a\x1a\n\x08Response\x12\x0e\n\x06tables\x18\x01 \x03(\x0c\"\xcd\x03\n\x04Sync\x1a\x1f\n\rMessageInsert\x12\x0e\n\x06record\x18\x01 \x01(\x0c\x1a$\n\x13MessageMigrateTable\x12\r\n\x05table\x18\x01 \x01(\x0c\x1a\x38\n\x0e\x42\x61\x63kendOptions\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x12\n\nconnection\x18\x02 \x01(\t\x1a\xa6\x01\n\x07Request\x12\x0e\n\x06tables\x18\x01 \x03(\t\x12\x13\n\x0bskip_tables\x18\x02 \x03(\t\x12\x1d\n\x15skip_dependent_tables\x18\x03 \x01(\x08\x12\x1b\n\x13\x64\x65terministic_cq_id\x18\x04 \x01(\x08\x12:\n\x07\x62\x61\x63kend\x18\x05 \x01(\x0b\x32).cloudquery.plugin.v3.Sync.BackendOptions\x1a\x9a\x01\n\x08Response\x12G\n\rmigrate_table\x18\x01 \x01(\x0b\x32..cloudquery.plugin.v3.Sync.MessageMigrateTableH\x00\x12:\n\x06insert\x18\x02 \x01(\x0b\x32(.cloudquery.plugin.v3.Sync.MessageInsertH\x00\x42\t\n\x07message\"<\n\x04Read\x1a\x18\n\x07Request\x12\r\n\x05table\x18\x01 \x01(\x0c\x1a\x1a\n\x08Response\x12\x0e\n\x06record\x18\x01 \x01(\x0c\"\xd2\x03\n\x05Write\x1a;\n\x13MessageMigrateTable\x12\r\n\x05table\x18\x01 \x01(\x0c\x12\x15\n\rmigrate_force\x18\x02 \x01(\x08\x1a\x1f\n\rMessageInsert\x12\x0e\n\x06record\x18\x01 \x01(\x0c\x1a\x7f\n\x12MessageDeleteStale\x12\x11\n\x05table\x18\x01 \x01(\x0c\x42\x02\x18\x01\x12\x13\n\x0bsource_name\x18\x02 \x01(\t\x12-\n\tsync_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ntable_name\x18\x04 \x01(\t\x1a\xdd\x01\n\x07Request\x12H\n\rmigrate_table\x18\x01 \x01(\x0b\x32/.cloudquery.plugin.v3.Write.MessageMigrateTableH\x00\x12;\n\x06insert\x18\x02 \x01(\x0b\x32).cloudquery.plugin.v3.Write.MessageInsertH\x00\x12@\n\x06\x64\x65lete\x18\x03 \x01(\x0b\x32..cloudquery.plugin.v3.Write.MessageDeleteStaleH\x00\x42\t\n\x07message\x1a\n\n\x08Response\"\x1e\n\x05\x43lose\x1a\t\n\x07Request\x1a\n\n\x08Response2\xc6\x05\n\x06Plugin\x12X\n\x07GetName\x12%.cloudquery.plugin.v3.GetName.Request\x1a&.cloudquery.plugin.v3.GetName.Response\x12\x61\n\nGetVersion\x12(.cloudquery.plugin.v3.GetVersion.Request\x1a).cloudquery.plugin.v3.GetVersion.Response\x12O\n\x04Init\x12\".cloudquery.plugin.v3.Init.Request\x1a#.cloudquery.plugin.v3.Init.Response\x12^\n\tGetTables\x12\'.cloudquery.plugin.v3.GetTables.Request\x1a(.cloudquery.plugin.v3.GetTables.Response\x12Q\n\x04Sync\x12\".cloudquery.plugin.v3.Sync.Request\x1a#.cloudquery.plugin.v3.Sync.Response0\x01\x12Q\n\x04Read\x12\".cloudquery.plugin.v3.Read.Request\x1a#.cloudquery.plugin.v3.Read.Response0\x01\x12T\n\x05Write\x12#.cloudquery.plugin.v3.Write.Request\x1a$.cloudquery.plugin.v3.Write.Response(\x01\x12R\n\x05\x43lose\x12#.cloudquery.plugin.v3.Close.Request\x1a$.cloudquery.plugin.v3.Close.ResponseBS\n\x17io.cloudquery.plugin.v3P\x01Z6github.com/cloudquery/plugin-pb-go/pb/plugin/v3;pluginb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cloudquery/plugin_v3/plugin.proto\x12\x14\x63loudquery.plugin.v3\x1a\x1fgoogle/protobuf/timestamp.proto\".\n\x07GetName\x1a\t\n\x07Request\x1a\x18\n\x08Response\x12\x0c\n\x04name\x18\x01 \x01(\t\"4\n\nGetVersion\x1a\t\n\x07Request\x1a\x1b\n\x08Response\x12\x0f\n\x07version\x18\x01 \x01(\t\"B\n\x04Init\x1a.\n\x07Request\x12\x0c\n\x04spec\x18\x01 \x01(\x0c\x12\x15\n\rno_connection\x18\x02 \x01(\x08\x1a\n\n\x08Response\"v\n\tGetTables\x1aM\n\x07Request\x12\x0e\n\x06tables\x18\x01 \x03(\t\x12\x13\n\x0bskip_tables\x18\x02 \x03(\t\x12\x1d\n\x15skip_dependent_tables\x18\x03 \x01(\x08\x1a\x1a\n\x08Response\x12\x0e\n\x06tables\x18\x01 \x03(\x0c\"\xbd\x05\n\x04Sync\x1a\x1f\n\rMessageInsert\x12\x0e\n\x06record\x18\x01 \x01(\x0c\x1a$\n\x13MessageMigrateTable\x12\r\n\x05table\x18\x01 \x01(\x0c\x1a\xa4\x01\n\x13MessageDeleteRecord\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12;\n\x0cwhere_clause\x18\x02 \x03(\x0b\x32%.cloudquery.plugin.v3.PredicatesGroup\x12<\n\x0ftable_relations\x18\x03 \x03(\x0b\x32#.cloudquery.plugin.v3.TableRelation\x1a\x38\n\x0e\x42\x61\x63kendOptions\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x12\n\nconnection\x18\x02 \x01(\t\x1a\xa6\x01\n\x07Request\x12\x0e\n\x06tables\x18\x01 \x03(\t\x12\x13\n\x0bskip_tables\x18\x02 \x03(\t\x12\x1d\n\x15skip_dependent_tables\x18\x03 \x01(\x08\x12\x1b\n\x13\x64\x65terministic_cq_id\x18\x04 \x01(\x08\x12:\n\x07\x62\x61\x63kend\x18\x05 \x01(\x0b\x32).cloudquery.plugin.v3.Sync.BackendOptions\x1a\xe3\x01\n\x08Response\x12G\n\rmigrate_table\x18\x01 \x01(\x0b\x32..cloudquery.plugin.v3.Sync.MessageMigrateTableH\x00\x12:\n\x06insert\x18\x02 \x01(\x0b\x32(.cloudquery.plugin.v3.Sync.MessageInsertH\x00\x12G\n\rdelete_record\x18\x03 \x01(\x0b\x32..cloudquery.plugin.v3.Sync.MessageDeleteRecordH\x00\x42\t\n\x07message\"<\n\x04Read\x1a\x18\n\x07Request\x12\r\n\x05table\x18\x01 \x01(\x0c\x1a\x1a\n\x08Response\x12\x0e\n\x06record\x18\x01 \x01(\x0c\"9\n\rTableRelation\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x14\n\x0cparent_table\x18\x02 \x01(\t\"{\n\tPredicate\x12:\n\x08operator\x18\x01 \x01(\x0e\x32(.cloudquery.plugin.v3.Predicate.Operator\x12\x0e\n\x06\x63olumn\x18\x02 \x01(\t\x12\x0e\n\x06record\x18\x03 \x01(\x0c\"\x12\n\x08Operator\x12\x06\n\x02\x45Q\x10\x00\"\xb2\x01\n\x0fPredicatesGroup\x12I\n\rgrouping_type\x18\x01 \x01(\x0e\x32\x32.cloudquery.plugin.v3.PredicatesGroup.GroupingType\x12\x33\n\npredicates\x18\x02 \x03(\x0b\x32\x1f.cloudquery.plugin.v3.Predicate\"\x1f\n\x0cGroupingType\x12\x07\n\x03\x41ND\x10\x00\x12\x06\n\x02OR\x10\x01\"\xc3\x05\n\x05Write\x1a;\n\x13MessageMigrateTable\x12\r\n\x05table\x18\x01 \x01(\x0c\x12\x15\n\rmigrate_force\x18\x02 \x01(\x08\x1a\x1f\n\rMessageInsert\x12\x0e\n\x06record\x18\x01 \x01(\x0c\x1a\x7f\n\x12MessageDeleteStale\x12\x11\n\x05table\x18\x01 \x01(\x0c\x42\x02\x18\x01\x12\x13\n\x0bsource_name\x18\x02 \x01(\t\x12-\n\tsync_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ntable_name\x18\x04 \x01(\t\x1a\xa4\x01\n\x13MessageDeleteRecord\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12;\n\x0cwhere_clause\x18\x02 \x03(\x0b\x32%.cloudquery.plugin.v3.PredicatesGroup\x12<\n\x0ftable_relations\x18\x03 \x03(\x0b\x32#.cloudquery.plugin.v3.TableRelation\x1a\xa7\x02\n\x07Request\x12H\n\rmigrate_table\x18\x01 \x01(\x0b\x32/.cloudquery.plugin.v3.Write.MessageMigrateTableH\x00\x12;\n\x06insert\x18\x02 \x01(\x0b\x32).cloudquery.plugin.v3.Write.MessageInsertH\x00\x12@\n\x06\x64\x65lete\x18\x03 \x01(\x0b\x32..cloudquery.plugin.v3.Write.MessageDeleteStaleH\x00\x12H\n\rdelete_record\x18\x04 \x01(\x0b\x32/.cloudquery.plugin.v3.Write.MessageDeleteRecordH\x00\x42\t\n\x07message\x1a\n\n\x08Response\"\x1e\n\x05\x43lose\x1a\t\n\x07Request\x1a\n\n\x08Response2\xc6\x05\n\x06Plugin\x12X\n\x07GetName\x12%.cloudquery.plugin.v3.GetName.Request\x1a&.cloudquery.plugin.v3.GetName.Response\x12\x61\n\nGetVersion\x12(.cloudquery.plugin.v3.GetVersion.Request\x1a).cloudquery.plugin.v3.GetVersion.Response\x12O\n\x04Init\x12\".cloudquery.plugin.v3.Init.Request\x1a#.cloudquery.plugin.v3.Init.Response\x12^\n\tGetTables\x12\'.cloudquery.plugin.v3.GetTables.Request\x1a(.cloudquery.plugin.v3.GetTables.Response\x12Q\n\x04Sync\x12\".cloudquery.plugin.v3.Sync.Request\x1a#.cloudquery.plugin.v3.Sync.Response0\x01\x12Q\n\x04Read\x12\".cloudquery.plugin.v3.Read.Request\x1a#.cloudquery.plugin.v3.Read.Response0\x01\x12T\n\x05Write\x12#.cloudquery.plugin.v3.Write.Request\x1a$.cloudquery.plugin.v3.Write.Response(\x01\x12R\n\x05\x43lose\x12#.cloudquery.plugin.v3.Close.Request\x1a$.cloudquery.plugin.v3.Close.ResponseBS\n\x17io.cloudquery.plugin.v3P\x01Z6github.com/cloudquery/plugin-pb-go/pb/plugin/v3;pluginb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -49,41 +49,55 @@ _globals['_GETTABLES_RESPONSE']._serialized_start=354 _globals['_GETTABLES_RESPONSE']._serialized_end=380 _globals['_SYNC']._serialized_start=383 - _globals['_SYNC']._serialized_end=844 + _globals['_SYNC']._serialized_end=1084 _globals['_SYNC_MESSAGEINSERT']._serialized_start=391 _globals['_SYNC_MESSAGEINSERT']._serialized_end=422 _globals['_SYNC_MESSAGEMIGRATETABLE']._serialized_start=424 _globals['_SYNC_MESSAGEMIGRATETABLE']._serialized_end=460 - _globals['_SYNC_BACKENDOPTIONS']._serialized_start=462 - _globals['_SYNC_BACKENDOPTIONS']._serialized_end=518 - _globals['_SYNC_REQUEST']._serialized_start=521 - _globals['_SYNC_REQUEST']._serialized_end=687 - _globals['_SYNC_RESPONSE']._serialized_start=690 - _globals['_SYNC_RESPONSE']._serialized_end=844 - _globals['_READ']._serialized_start=846 - _globals['_READ']._serialized_end=906 - _globals['_READ_REQUEST']._serialized_start=854 - _globals['_READ_REQUEST']._serialized_end=878 - _globals['_READ_RESPONSE']._serialized_start=880 - _globals['_READ_RESPONSE']._serialized_end=906 - _globals['_WRITE']._serialized_start=909 - _globals['_WRITE']._serialized_end=1375 - _globals['_WRITE_MESSAGEMIGRATETABLE']._serialized_start=918 - _globals['_WRITE_MESSAGEMIGRATETABLE']._serialized_end=977 + _globals['_SYNC_MESSAGEDELETERECORD']._serialized_start=463 + _globals['_SYNC_MESSAGEDELETERECORD']._serialized_end=627 + _globals['_SYNC_BACKENDOPTIONS']._serialized_start=629 + _globals['_SYNC_BACKENDOPTIONS']._serialized_end=685 + _globals['_SYNC_REQUEST']._serialized_start=688 + _globals['_SYNC_REQUEST']._serialized_end=854 + _globals['_SYNC_RESPONSE']._serialized_start=857 + _globals['_SYNC_RESPONSE']._serialized_end=1084 + _globals['_READ']._serialized_start=1086 + _globals['_READ']._serialized_end=1146 + _globals['_READ_REQUEST']._serialized_start=1094 + _globals['_READ_REQUEST']._serialized_end=1118 + _globals['_READ_RESPONSE']._serialized_start=1120 + _globals['_READ_RESPONSE']._serialized_end=1146 + _globals['_TABLERELATION']._serialized_start=1148 + _globals['_TABLERELATION']._serialized_end=1205 + _globals['_PREDICATE']._serialized_start=1207 + _globals['_PREDICATE']._serialized_end=1330 + _globals['_PREDICATE_OPERATOR']._serialized_start=1312 + _globals['_PREDICATE_OPERATOR']._serialized_end=1330 + _globals['_PREDICATESGROUP']._serialized_start=1333 + _globals['_PREDICATESGROUP']._serialized_end=1511 + _globals['_PREDICATESGROUP_GROUPINGTYPE']._serialized_start=1480 + _globals['_PREDICATESGROUP_GROUPINGTYPE']._serialized_end=1511 + _globals['_WRITE']._serialized_start=1514 + _globals['_WRITE']._serialized_end=2221 + _globals['_WRITE_MESSAGEMIGRATETABLE']._serialized_start=1523 + _globals['_WRITE_MESSAGEMIGRATETABLE']._serialized_end=1582 _globals['_WRITE_MESSAGEINSERT']._serialized_start=391 _globals['_WRITE_MESSAGEINSERT']._serialized_end=422 - _globals['_WRITE_MESSAGEDELETESTALE']._serialized_start=1012 - _globals['_WRITE_MESSAGEDELETESTALE']._serialized_end=1139 - _globals['_WRITE_REQUEST']._serialized_start=1142 - _globals['_WRITE_REQUEST']._serialized_end=1363 + _globals['_WRITE_MESSAGEDELETESTALE']._serialized_start=1617 + _globals['_WRITE_MESSAGEDELETESTALE']._serialized_end=1744 + _globals['_WRITE_MESSAGEDELETERECORD']._serialized_start=463 + _globals['_WRITE_MESSAGEDELETERECORD']._serialized_end=627 + _globals['_WRITE_REQUEST']._serialized_start=1914 + _globals['_WRITE_REQUEST']._serialized_end=2209 _globals['_WRITE_RESPONSE']._serialized_start=114 _globals['_WRITE_RESPONSE']._serialized_end=124 - _globals['_CLOSE']._serialized_start=1377 - _globals['_CLOSE']._serialized_end=1407 + _globals['_CLOSE']._serialized_start=2223 + _globals['_CLOSE']._serialized_end=2253 _globals['_CLOSE_REQUEST']._serialized_start=103 _globals['_CLOSE_REQUEST']._serialized_end=112 _globals['_CLOSE_RESPONSE']._serialized_start=114 _globals['_CLOSE_RESPONSE']._serialized_end=124 - _globals['_PLUGIN']._serialized_start=1410 - _globals['_PLUGIN']._serialized_end=2120 + _globals['_PLUGIN']._serialized_start=2256 + _globals['_PLUGIN']._serialized_end=2966 # @@protoc_insertion_point(module_scope) diff --git a/cloudquery/plugin_v3/plugin_pb2.pyi b/cloudquery/plugin_v3/plugin_pb2.pyi index ab0ee4c..f9dcd66 100644 --- a/cloudquery/plugin_v3/plugin_pb2.pyi +++ b/cloudquery/plugin_v3/plugin_pb2.pyi @@ -1,5 +1,6 @@ from google.protobuf import timestamp_pb2 as _timestamp_pb2 from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union @@ -74,6 +75,15 @@ class Sync(_message.Message): TABLE_FIELD_NUMBER: _ClassVar[int] table: bytes def __init__(self, table: _Optional[bytes] = ...) -> None: ... + class MessageDeleteRecord(_message.Message): + __slots__ = ["table_name", "where_clause", "table_relations"] + TABLE_NAME_FIELD_NUMBER: _ClassVar[int] + WHERE_CLAUSE_FIELD_NUMBER: _ClassVar[int] + TABLE_RELATIONS_FIELD_NUMBER: _ClassVar[int] + table_name: str + where_clause: _containers.RepeatedCompositeFieldContainer[PredicatesGroup] + table_relations: _containers.RepeatedCompositeFieldContainer[TableRelation] + def __init__(self, table_name: _Optional[str] = ..., where_clause: _Optional[_Iterable[_Union[PredicatesGroup, _Mapping]]] = ..., table_relations: _Optional[_Iterable[_Union[TableRelation, _Mapping]]] = ...) -> None: ... class BackendOptions(_message.Message): __slots__ = ["table_name", "connection"] TABLE_NAME_FIELD_NUMBER: _ClassVar[int] @@ -95,12 +105,14 @@ class Sync(_message.Message): backend: Sync.BackendOptions def __init__(self, tables: _Optional[_Iterable[str]] = ..., skip_tables: _Optional[_Iterable[str]] = ..., skip_dependent_tables: bool = ..., deterministic_cq_id: bool = ..., backend: _Optional[_Union[Sync.BackendOptions, _Mapping]] = ...) -> None: ... class Response(_message.Message): - __slots__ = ["migrate_table", "insert"] + __slots__ = ["migrate_table", "insert", "delete_record"] MIGRATE_TABLE_FIELD_NUMBER: _ClassVar[int] INSERT_FIELD_NUMBER: _ClassVar[int] + DELETE_RECORD_FIELD_NUMBER: _ClassVar[int] migrate_table: Sync.MessageMigrateTable insert: Sync.MessageInsert - def __init__(self, migrate_table: _Optional[_Union[Sync.MessageMigrateTable, _Mapping]] = ..., insert: _Optional[_Union[Sync.MessageInsert, _Mapping]] = ...) -> None: ... + delete_record: Sync.MessageDeleteRecord + def __init__(self, migrate_table: _Optional[_Union[Sync.MessageMigrateTable, _Mapping]] = ..., insert: _Optional[_Union[Sync.MessageInsert, _Mapping]] = ..., delete_record: _Optional[_Union[Sync.MessageDeleteRecord, _Mapping]] = ...) -> None: ... def __init__(self) -> None: ... class Read(_message.Message): @@ -117,6 +129,42 @@ class Read(_message.Message): def __init__(self, record: _Optional[bytes] = ...) -> None: ... def __init__(self) -> None: ... +class TableRelation(_message.Message): + __slots__ = ["table_name", "parent_table"] + TABLE_NAME_FIELD_NUMBER: _ClassVar[int] + PARENT_TABLE_FIELD_NUMBER: _ClassVar[int] + table_name: str + parent_table: str + def __init__(self, table_name: _Optional[str] = ..., parent_table: _Optional[str] = ...) -> None: ... + +class Predicate(_message.Message): + __slots__ = ["operator", "column", "record"] + class Operator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + EQ: _ClassVar[Predicate.Operator] + EQ: Predicate.Operator + OPERATOR_FIELD_NUMBER: _ClassVar[int] + COLUMN_FIELD_NUMBER: _ClassVar[int] + RECORD_FIELD_NUMBER: _ClassVar[int] + operator: Predicate.Operator + column: str + record: bytes + def __init__(self, operator: _Optional[_Union[Predicate.Operator, str]] = ..., column: _Optional[str] = ..., record: _Optional[bytes] = ...) -> None: ... + +class PredicatesGroup(_message.Message): + __slots__ = ["grouping_type", "predicates"] + class GroupingType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + AND: _ClassVar[PredicatesGroup.GroupingType] + OR: _ClassVar[PredicatesGroup.GroupingType] + AND: PredicatesGroup.GroupingType + OR: PredicatesGroup.GroupingType + GROUPING_TYPE_FIELD_NUMBER: _ClassVar[int] + PREDICATES_FIELD_NUMBER: _ClassVar[int] + grouping_type: PredicatesGroup.GroupingType + predicates: _containers.RepeatedCompositeFieldContainer[Predicate] + def __init__(self, grouping_type: _Optional[_Union[PredicatesGroup.GroupingType, str]] = ..., predicates: _Optional[_Iterable[_Union[Predicate, _Mapping]]] = ...) -> None: ... + class Write(_message.Message): __slots__ = [] class MessageMigrateTable(_message.Message): @@ -142,15 +190,26 @@ class Write(_message.Message): sync_time: _timestamp_pb2.Timestamp table_name: str def __init__(self, table: _Optional[bytes] = ..., source_name: _Optional[str] = ..., sync_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., table_name: _Optional[str] = ...) -> None: ... + class MessageDeleteRecord(_message.Message): + __slots__ = ["table_name", "where_clause", "table_relations"] + TABLE_NAME_FIELD_NUMBER: _ClassVar[int] + WHERE_CLAUSE_FIELD_NUMBER: _ClassVar[int] + TABLE_RELATIONS_FIELD_NUMBER: _ClassVar[int] + table_name: str + where_clause: _containers.RepeatedCompositeFieldContainer[PredicatesGroup] + table_relations: _containers.RepeatedCompositeFieldContainer[TableRelation] + def __init__(self, table_name: _Optional[str] = ..., where_clause: _Optional[_Iterable[_Union[PredicatesGroup, _Mapping]]] = ..., table_relations: _Optional[_Iterable[_Union[TableRelation, _Mapping]]] = ...) -> None: ... class Request(_message.Message): - __slots__ = ["migrate_table", "insert", "delete"] + __slots__ = ["migrate_table", "insert", "delete", "delete_record"] MIGRATE_TABLE_FIELD_NUMBER: _ClassVar[int] INSERT_FIELD_NUMBER: _ClassVar[int] DELETE_FIELD_NUMBER: _ClassVar[int] + DELETE_RECORD_FIELD_NUMBER: _ClassVar[int] migrate_table: Write.MessageMigrateTable insert: Write.MessageInsert delete: Write.MessageDeleteStale - def __init__(self, migrate_table: _Optional[_Union[Write.MessageMigrateTable, _Mapping]] = ..., insert: _Optional[_Union[Write.MessageInsert, _Mapping]] = ..., delete: _Optional[_Union[Write.MessageDeleteStale, _Mapping]] = ...) -> None: ... + delete_record: Write.MessageDeleteRecord + def __init__(self, migrate_table: _Optional[_Union[Write.MessageMigrateTable, _Mapping]] = ..., insert: _Optional[_Union[Write.MessageInsert, _Mapping]] = ..., delete: _Optional[_Union[Write.MessageDeleteStale, _Mapping]] = ..., delete_record: _Optional[_Union[Write.MessageDeleteRecord, _Mapping]] = ...) -> None: ... class Response(_message.Message): __slots__ = [] def __init__(self) -> None: ...