diff --git a/cloudquery/plugin_v3/plugin_pb2.py b/cloudquery/plugin_v3/plugin_pb2.py index 6bc0486..05a1332 100644 --- a/cloudquery/plugin_v3/plugin_pb2.py +++ b/cloudquery/plugin_v3/plugin_pb2.py @@ -25,7 +25,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\"P\n\rGetSpecSchema\x1a\t\n\x07Request\x1a\x34\n\x08Response\x12\x18\n\x0bjson_schema\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_json_schema\"Y\n\x04Init\x1a\x45\n\x07Request\x12\x0c\n\x04spec\x18\x01 \x01(\x0c\x12\x15\n\rno_connection\x18\x02 \x01(\x08\x12\x15\n\rinvocation_id\x18\x03 \x01(\t\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\"\xb2\x07\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\x31\n\x0cMessageError\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\t\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\xae\x02\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\x12<\n\x05shard\x18\x06 \x01(\x0b\x32(.cloudquery.plugin.v3.Sync.Request.ShardH\x00\x88\x01\x01\x12\x19\n\x11withErrorMessages\x18\x07 \x01(\x08\x1a#\n\x05Shard\x12\x0b\n\x03num\x18\x01 \x01(\x05\x12\r\n\x05total\x18\x02 \x01(\x05\x42\x08\n\x06_shard\x1a\x9d\x02\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\x12\x38\n\x05\x65rror\x18\x04 \x01(\x0b\x32\'.cloudquery.plugin.v3.Sync.MessageErrorH\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\"B\n\tTransform\x1a\x19\n\x07Request\x12\x0e\n\x06record\x18\x01 \x01(\x0c\x1a\x1a\n\x08Response\x12\x0e\n\x06record\x18\x01 \x01(\x0c\"H\n\x0fTransformSchema\x1a\x19\n\x07Request\x12\x0e\n\x06schema\x18\x01 \x01(\x0c\x1a\x1a\n\x08Response\x12\x0e\n\x06schema\x18\x01 \x01(\x0c\"\x1e\n\x05\x43lose\x1a\t\n\x07Request\x1a\n\n\x08Response\"y\n\x0eTestConnection\x1a\x17\n\x07Request\x12\x0c\n\x04spec\x18\x01 \x01(\x0c\x1aN\n\x08Response\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0c\x66\x61ilure_code\x18\x02 \x01(\t\x12\x1b\n\x13\x66\x61ilure_description\x18\x03 \x01(\t2\xf7\x08\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\x12j\n\rGetSpecSchema\x12+.cloudquery.plugin.v3.GetSpecSchema.Request\x1a,.cloudquery.plugin.v3.GetSpecSchema.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\x12\x62\n\tTransform\x12\'.cloudquery.plugin.v3.Transform.Request\x1a(.cloudquery.plugin.v3.Transform.Response(\x01\x30\x01\x12p\n\x0fTransformSchema\x12-.cloudquery.plugin.v3.TransformSchema.Request\x1a..cloudquery.plugin.v3.TransformSchema.Response\x12R\n\x05\x43lose\x12#.cloudquery.plugin.v3.Close.Request\x1a$.cloudquery.plugin.v3.Close.Response\x12m\n\x0eTestConnection\x12,.cloudquery.plugin.v3.TestConnection.Request\x1a-.cloudquery.plugin.v3.TestConnection.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\"P\n\rGetSpecSchema\x1a\t\n\x07Request\x1a\x34\n\x08Response\x12\x18\n\x0bjson_schema\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_json_schema\"Y\n\x04Init\x1a\x45\n\x07Request\x12\x0c\n\x04spec\x18\x01 \x01(\x0c\x12\x15\n\rno_connection\x18\x02 \x01(\x08\x12\x15\n\rinvocation_id\x18\x03 \x01(\t\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\"\xb2\x07\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\x31\n\x0cMessageError\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\t\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\xae\x02\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\x12<\n\x05shard\x18\x06 \x01(\x0b\x32(.cloudquery.plugin.v3.Sync.Request.ShardH\x00\x88\x01\x01\x12\x19\n\x11withErrorMessages\x18\x07 \x01(\x08\x1a#\n\x05Shard\x12\x0b\n\x03num\x18\x01 \x01(\x05\x12\r\n\x05total\x18\x02 \x01(\x05\x42\x08\n\x06_shard\x1a\x9d\x02\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\x12\x38\n\x05\x65rror\x18\x04 \x01(\x0b\x32\'.cloudquery.plugin.v3.Sync.MessageErrorH\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\"B\n\tTransform\x1a\x19\n\x07Request\x12\x0e\n\x06record\x18\x01 \x01(\x0c\x1a\x1a\n\x08Response\x12\x0e\n\x06record\x18\x01 \x01(\x0c\"H\n\x0fTransformSchema\x1a\x19\n\x07Request\x12\x0e\n\x06schema\x18\x01 \x01(\x0c\x1a\x1a\n\x08Response\x12\x0e\n\x06schema\x18\x01 \x01(\x0c\"\x1e\n\x05\x43lose\x1a\t\n\x07Request\x1a\n\n\x08Response\"y\n\x0eTestConnection\x1a\x17\n\x07Request\x12\x0c\n\x04spec\x18\x01 \x01(\x0c\x1aN\n\x08Response\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0c\x66\x61ilure_code\x18\x02 \x01(\t\x12\x1b\n\x13\x66\x61ilure_description\x18\x03 \x01(\t\"\xde\x08\n\x0c\x41ssessTables\x1a\x31\n\tTablePair\x12\x11\n\told_table\x18\x01 \x01(\x0c\x12\x11\n\tnew_table\x18\x02 \x01(\x0c\x1a\x42\n\x08\x45vidence\x12\x17\n\x0fsynthetic_value\x18\x01 \x01(\t\x12\x0e\n\x06\x62\x65\x66ore\x18\x02 \x01(\t\x12\r\n\x05\x61\x66ter\x18\x03 \x01(\t\x1a\x80\x02\n\rColumnFinding\x12\x13\n\x0b\x63olumn_name\x18\x01 \x01(\t\x12=\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32+.cloudquery.plugin.v3.AssessTables.Category\x12\x10\n\x08old_type\x18\x03 \x01(\t\x12\x10\n\x08new_type\x18\x04 \x01(\t\x12\x1a\n\x12safe_mode_behavior\x18\x05 \x01(\t\x12\x1c\n\x14\x66orced_mode_behavior\x18\x06 \x01(\t\x12=\n\x08\x65vidence\x18\x07 \x03(\x0b\x32+.cloudquery.plugin.v3.AssessTables.Evidence\x1a\xde\x02\n\x0cTableFinding\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12=\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32+.cloudquery.plugin.v3.AssessTables.Category\x12\x1a\n\x12safe_mode_behavior\x18\x03 \x01(\t\x12\x1c\n\x14\x66orced_mode_behavior\x18\x04 \x01(\t\x12\x41\n\x07\x63olumns\x18\x05 \x03(\x0b\x32\x30.cloudquery.plugin.v3.AssessTables.ColumnFinding\x12=\n\x08\x65vidence\x18\x06 \x03(\x0b\x32+.cloudquery.plugin.v3.AssessTables.Evidence\x12\x1b\n\x13\x63overage_incomplete\x18\x07 \x01(\x08\x12\"\n\x1a\x63overage_incomplete_reason\x18\x08 \x01(\t\x1a^\n\x07Request\x12<\n\x06tables\x18\x01 \x03(\x0b\x32,.cloudquery.plugin.v3.AssessTables.TablePair\x12\x15\n\rmigrate_force\x18\x02 \x01(\x08\x1aK\n\x08Response\x12?\n\x06tables\x18\x01 \x03(\x0b\x32/.cloudquery.plugin.v3.AssessTables.TableFinding\"\xc5\x01\n\x08\x43\x61tegory\x12\x14\n\x10\x43\x41TEGORY_UNKNOWN\x10\x00\x12\x16\n\x12\x43\x41TEGORY_NO_CHANGE\x10\x01\x12%\n!CATEGORY_AUTOMATICALLY_MIGRATABLE\x10\x02\x12&\n\"CATEGORY_MANUAL_MIGRATION_REQUIRED\x10\x03\x12\x1a\n\x16\x43\x41TEGORY_TABLE_REMOVED\x10\x04\x12 \n\x1c\x43\x41TEGORY_FILE_SCHEMA_CHANGED\x10\x05\x32\xe0\t\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\x12j\n\rGetSpecSchema\x12+.cloudquery.plugin.v3.GetSpecSchema.Request\x1a,.cloudquery.plugin.v3.GetSpecSchema.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\x12\x62\n\tTransform\x12\'.cloudquery.plugin.v3.Transform.Request\x1a(.cloudquery.plugin.v3.Transform.Response(\x01\x30\x01\x12p\n\x0fTransformSchema\x12-.cloudquery.plugin.v3.TransformSchema.Request\x1a..cloudquery.plugin.v3.TransformSchema.Response\x12R\n\x05\x43lose\x12#.cloudquery.plugin.v3.Close.Request\x1a$.cloudquery.plugin.v3.Close.Response\x12m\n\x0eTestConnection\x12,.cloudquery.plugin.v3.TestConnection.Request\x1a-.cloudquery.plugin.v3.TestConnection.Response\x12g\n\x0c\x41ssessTables\x12*.cloudquery.plugin.v3.AssessTables.Request\x1a+.cloudquery.plugin.v3.AssessTables.ResponseBS\n\x17io.cloudquery.plugin.v3P\x01Z6github.com/cloudquery/plugin-pb-go/pb/plugin/v3;pluginb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -137,6 +137,22 @@ _globals['_TESTCONNECTION_REQUEST']._serialized_end=307 _globals['_TESTCONNECTION_RESPONSE']._serialized_start=2790 _globals['_TESTCONNECTION_RESPONSE']._serialized_end=2868 - _globals['_PLUGIN']._serialized_start=2871 - _globals['_PLUGIN']._serialized_end=4014 + _globals['_ASSESSTABLES']._serialized_start=2871 + _globals['_ASSESSTABLES']._serialized_end=3989 + _globals['_ASSESSTABLES_TABLEPAIR']._serialized_start=2887 + _globals['_ASSESSTABLES_TABLEPAIR']._serialized_end=2936 + _globals['_ASSESSTABLES_EVIDENCE']._serialized_start=2938 + _globals['_ASSESSTABLES_EVIDENCE']._serialized_end=3004 + _globals['_ASSESSTABLES_COLUMNFINDING']._serialized_start=3007 + _globals['_ASSESSTABLES_COLUMNFINDING']._serialized_end=3263 + _globals['_ASSESSTABLES_TABLEFINDING']._serialized_start=3266 + _globals['_ASSESSTABLES_TABLEFINDING']._serialized_end=3616 + _globals['_ASSESSTABLES_REQUEST']._serialized_start=3618 + _globals['_ASSESSTABLES_REQUEST']._serialized_end=3712 + _globals['_ASSESSTABLES_RESPONSE']._serialized_start=3714 + _globals['_ASSESSTABLES_RESPONSE']._serialized_end=3789 + _globals['_ASSESSTABLES_CATEGORY']._serialized_start=3792 + _globals['_ASSESSTABLES_CATEGORY']._serialized_end=3989 + _globals['_PLUGIN']._serialized_start=3992 + _globals['_PLUGIN']._serialized_end=5240 # @@protoc_insertion_point(module_scope) diff --git a/cloudquery/plugin_v3/plugin_pb2.pyi b/cloudquery/plugin_v3/plugin_pb2.pyi index 3b173fe..b24fe95 100644 --- a/cloudquery/plugin_v3/plugin_pb2.pyi +++ b/cloudquery/plugin_v3/plugin_pb2.pyi @@ -307,3 +307,85 @@ class TestConnection(_message.Message): failure_description: str def __init__(self, success: bool = ..., failure_code: _Optional[str] = ..., failure_description: _Optional[str] = ...) -> None: ... def __init__(self) -> None: ... + +class AssessTables(_message.Message): + __slots__ = () + class Category(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CATEGORY_UNKNOWN: _ClassVar[AssessTables.Category] + CATEGORY_NO_CHANGE: _ClassVar[AssessTables.Category] + CATEGORY_AUTOMATICALLY_MIGRATABLE: _ClassVar[AssessTables.Category] + CATEGORY_MANUAL_MIGRATION_REQUIRED: _ClassVar[AssessTables.Category] + CATEGORY_TABLE_REMOVED: _ClassVar[AssessTables.Category] + CATEGORY_FILE_SCHEMA_CHANGED: _ClassVar[AssessTables.Category] + CATEGORY_UNKNOWN: AssessTables.Category + CATEGORY_NO_CHANGE: AssessTables.Category + CATEGORY_AUTOMATICALLY_MIGRATABLE: AssessTables.Category + CATEGORY_MANUAL_MIGRATION_REQUIRED: AssessTables.Category + CATEGORY_TABLE_REMOVED: AssessTables.Category + CATEGORY_FILE_SCHEMA_CHANGED: AssessTables.Category + class TablePair(_message.Message): + __slots__ = ("old_table", "new_table") + OLD_TABLE_FIELD_NUMBER: _ClassVar[int] + NEW_TABLE_FIELD_NUMBER: _ClassVar[int] + old_table: bytes + new_table: bytes + def __init__(self, old_table: _Optional[bytes] = ..., new_table: _Optional[bytes] = ...) -> None: ... + class Evidence(_message.Message): + __slots__ = ("synthetic_value", "before", "after") + SYNTHETIC_VALUE_FIELD_NUMBER: _ClassVar[int] + BEFORE_FIELD_NUMBER: _ClassVar[int] + AFTER_FIELD_NUMBER: _ClassVar[int] + synthetic_value: str + before: str + after: str + def __init__(self, synthetic_value: _Optional[str] = ..., before: _Optional[str] = ..., after: _Optional[str] = ...) -> None: ... + class ColumnFinding(_message.Message): + __slots__ = ("column_name", "category", "old_type", "new_type", "safe_mode_behavior", "forced_mode_behavior", "evidence") + COLUMN_NAME_FIELD_NUMBER: _ClassVar[int] + CATEGORY_FIELD_NUMBER: _ClassVar[int] + OLD_TYPE_FIELD_NUMBER: _ClassVar[int] + NEW_TYPE_FIELD_NUMBER: _ClassVar[int] + SAFE_MODE_BEHAVIOR_FIELD_NUMBER: _ClassVar[int] + FORCED_MODE_BEHAVIOR_FIELD_NUMBER: _ClassVar[int] + EVIDENCE_FIELD_NUMBER: _ClassVar[int] + column_name: str + category: AssessTables.Category + old_type: str + new_type: str + safe_mode_behavior: str + forced_mode_behavior: str + evidence: _containers.RepeatedCompositeFieldContainer[AssessTables.Evidence] + def __init__(self, column_name: _Optional[str] = ..., category: _Optional[_Union[AssessTables.Category, str]] = ..., old_type: _Optional[str] = ..., new_type: _Optional[str] = ..., safe_mode_behavior: _Optional[str] = ..., forced_mode_behavior: _Optional[str] = ..., evidence: _Optional[_Iterable[_Union[AssessTables.Evidence, _Mapping]]] = ...) -> None: ... + class TableFinding(_message.Message): + __slots__ = ("table_name", "category", "safe_mode_behavior", "forced_mode_behavior", "columns", "evidence", "coverage_incomplete", "coverage_incomplete_reason") + TABLE_NAME_FIELD_NUMBER: _ClassVar[int] + CATEGORY_FIELD_NUMBER: _ClassVar[int] + SAFE_MODE_BEHAVIOR_FIELD_NUMBER: _ClassVar[int] + FORCED_MODE_BEHAVIOR_FIELD_NUMBER: _ClassVar[int] + COLUMNS_FIELD_NUMBER: _ClassVar[int] + EVIDENCE_FIELD_NUMBER: _ClassVar[int] + COVERAGE_INCOMPLETE_FIELD_NUMBER: _ClassVar[int] + COVERAGE_INCOMPLETE_REASON_FIELD_NUMBER: _ClassVar[int] + table_name: str + category: AssessTables.Category + safe_mode_behavior: str + forced_mode_behavior: str + columns: _containers.RepeatedCompositeFieldContainer[AssessTables.ColumnFinding] + evidence: _containers.RepeatedCompositeFieldContainer[AssessTables.Evidence] + coverage_incomplete: bool + coverage_incomplete_reason: str + def __init__(self, table_name: _Optional[str] = ..., category: _Optional[_Union[AssessTables.Category, str]] = ..., safe_mode_behavior: _Optional[str] = ..., forced_mode_behavior: _Optional[str] = ..., columns: _Optional[_Iterable[_Union[AssessTables.ColumnFinding, _Mapping]]] = ..., evidence: _Optional[_Iterable[_Union[AssessTables.Evidence, _Mapping]]] = ..., coverage_incomplete: bool = ..., coverage_incomplete_reason: _Optional[str] = ...) -> None: ... + class Request(_message.Message): + __slots__ = ("tables", "migrate_force") + TABLES_FIELD_NUMBER: _ClassVar[int] + MIGRATE_FORCE_FIELD_NUMBER: _ClassVar[int] + tables: _containers.RepeatedCompositeFieldContainer[AssessTables.TablePair] + migrate_force: bool + def __init__(self, tables: _Optional[_Iterable[_Union[AssessTables.TablePair, _Mapping]]] = ..., migrate_force: bool = ...) -> None: ... + class Response(_message.Message): + __slots__ = ("tables",) + TABLES_FIELD_NUMBER: _ClassVar[int] + tables: _containers.RepeatedCompositeFieldContainer[AssessTables.TableFinding] + def __init__(self, tables: _Optional[_Iterable[_Union[AssessTables.TableFinding, _Mapping]]] = ...) -> None: ... + def __init__(self) -> None: ... diff --git a/cloudquery/plugin_v3/plugin_pb2_grpc.py b/cloudquery/plugin_v3/plugin_pb2_grpc.py index 2a19cc6..5eb174c 100644 --- a/cloudquery/plugin_v3/plugin_pb2_grpc.py +++ b/cloudquery/plugin_v3/plugin_pb2_grpc.py @@ -94,6 +94,11 @@ def __init__(self, channel): request_serializer=cloudquery_dot_plugin__v3_dot_plugin__pb2.TestConnection.Request.SerializeToString, response_deserializer=cloudquery_dot_plugin__v3_dot_plugin__pb2.TestConnection.Response.FromString, _registered_method=True) + self.AssessTables = channel.unary_unary( + '/cloudquery.plugin.v3.Plugin/AssessTables', + request_serializer=cloudquery_dot_plugin__v3_dot_plugin__pb2.AssessTables.Request.SerializeToString, + response_deserializer=cloudquery_dot_plugin__v3_dot_plugin__pb2.AssessTables.Response.FromString, + _registered_method=True) class PluginServicer(object): @@ -186,6 +191,14 @@ def TestConnection(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def AssessTables(self, request, context): + """Assess how the destination plugin would apply table schema changes, without writing anything. + Plugins that do not support assessment return Unimplemented. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_PluginServicer_to_server(servicer, server): rpc_method_handlers = { @@ -249,6 +262,11 @@ def add_PluginServicer_to_server(servicer, server): request_deserializer=cloudquery_dot_plugin__v3_dot_plugin__pb2.TestConnection.Request.FromString, response_serializer=cloudquery_dot_plugin__v3_dot_plugin__pb2.TestConnection.Response.SerializeToString, ), + 'AssessTables': grpc.unary_unary_rpc_method_handler( + servicer.AssessTables, + request_deserializer=cloudquery_dot_plugin__v3_dot_plugin__pb2.AssessTables.Request.FromString, + response_serializer=cloudquery_dot_plugin__v3_dot_plugin__pb2.AssessTables.Response.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'cloudquery.plugin.v3.Plugin', rpc_method_handlers) @@ -583,3 +601,30 @@ def TestConnection(request, timeout, metadata, _registered_method=True) + + @staticmethod + def AssessTables(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/cloudquery.plugin.v3.Plugin/AssessTables', + cloudquery_dot_plugin__v3_dot_plugin__pb2.AssessTables.Request.SerializeToString, + cloudquery_dot_plugin__v3_dot_plugin__pb2.AssessTables.Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True)