syntax = "proto3"; package etl_load.v1; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; message EtlOption { string list_name = 1; string option_name = 2; string option_action = 3; int32 display_order = 4; } message EtlTable { int32 table_id = 1; string source_table_name = 2; string source_table = 3; string sink_table_name = 4; string sink_table = 5; int32 num_to_sync = 6; google.protobuf.Timestamp last_notified_at = 7; google.protobuf.Timestamp last_synced_at = 8; int32 last_sync_rows_modified = 9; int64 last_batch_load_id = 10; int64 last_load_id = 11; string last_error_summary = 12; string last_error_detail = 13; } message EtlRunOptionRequest { string created_by_user = 1; } message EtlOptionResponse { repeated EtlOption options = 1; repeated EtlTable tables = 2; } message EtlRunRequest { string action = 1; string load_scope = 2; string execution_trigger = 3; string batch_load_prefix = 4; string created_by_user = 5; bool should_refresh_model = 6; repeated int32 include_table_ids = 7; } message EtlRunResponse { bool was_started = 1; int64 batch_load_id = 2; string error = 3; } message EtlCancelRequest { int64 batch_load_id = 1; } message EtlCancelResponse { bool was_cancelled = 1; string cancel_error_message = 2; } message EtlLoadRequest { google.protobuf.Timestamp since_time = 1; } message EtlLoadResponse { int64 sync_id = 1; int64 load_id = 2; int64 batch_load_id = 3; int32 extract_id = 4; string source_table = 5; string sink_table = 6; int32 load_scope = 7; string execution_result = 8; google.protobuf.Timestamp execution_begin_at = 9; google.protobuf.Timestamp execution_end_at = 10; string execution_duration = 11; google.protobuf.Timestamp expected_complete_at = 12; bool is_latest = 13; bool is_latest_success = 14; string uri_query = 15; google.protobuf.Timestamp prior_modified_at = 16; google.protobuf.Timestamp last_modified_at = 17; int32 rows_staged = 18; int32 rows_inserted = 19; int32 rows_updated = 20; int32 rows_history = 21; int32 rows_deleted = 22; int32 rows_reinstated = 23; int32 rows_unchanged = 24; int32 rows_errored = 25; string error_summary = 26; string error_detail = 27; int32 subsequent_no_rows = 28; google.protobuf.Timestamp no_rows_available_at = 29; google.protobuf.Timestamp updated_at = 30; google.protobuf.Timestamp enqueued_at = 31; google.protobuf.Timestamp dequeued_at = 32; string file_path = 33; google.protobuf.Struct variables = 34; int32 created_by = 35; string created_by_user = 36; } message EtlBatchLoadResponse { int64 batch_load_id = 1; string batch_summary = 2; bool is_latest = 3; bool is_latest_success = 4; int32 load_scope_id = 5; string load_scope = 6; string execution_trigger = 7; string sync_method = 8; int32 num_workers = 9; repeated int32 include_extract_ids = 10; repeated int32 no_change_extract_ids = 11; repeated int32 incomplete_extract_ids = 12; string batch_result = 13; google.protobuf.Timestamp batch_begin_at = 14; google.protobuf.Timestamp batch_end_at = 15; google.protobuf.Timestamp model_refresh_begin_at = 16; google.protobuf.Timestamp model_refresh_end_at = 17; string batch_error_summary = 18; string batch_error_detail = 19; google.protobuf.Timestamp updated_at = 20; int32 created_by = 21; string created_by_user = 22; int64 num_tables = 23; int64 num_success = 24; int64 num_failed = 25; int64 num_retry = 26; int32 num_incomplete = 27; double perc_success = 28; } message EtlLoadBetweenRequest { google.protobuf.Timestamp from = 1; google.protobuf.Timestamp to = 2; } message EtlLoadBetweenResponse { repeated EtlLoadResponse loads = 1; } message EtlBatchLoadRequest { google.protobuf.Timestamp since_time = 1; } message EtlBatchLoadBetweenRequest { google.protobuf.Timestamp from = 1; google.protobuf.Timestamp to = 2; } message EtlBatchLoadBetweenResponse { repeated EtlBatchLoadResponse batch_loads = 1; } service EtlLoadService { rpc EtlRunOption(EtlRunOptionRequest) returns (EtlOptionResponse) {} rpc EtlRun(EtlRunRequest) returns (EtlRunResponse) {} rpc EtlCancel(EtlCancelRequest) returns (EtlCancelResponse) {} rpc EtlLoad(EtlLoadRequest) returns (stream EtlLoadResponse) {} rpc EtlLoadBetween(EtlLoadBetweenRequest) returns (EtlLoadBetweenResponse) {} rpc EtlBatchLoad(EtlBatchLoadRequest) returns (stream EtlBatchLoadResponse) {} rpc EtlBatchLoadBetween(EtlBatchLoadBetweenRequest) returns (EtlBatchLoadBetweenResponse) {} }