destination_sdk.proto•3.47 kB
syntax = "proto3";
option optimize_for = SPEED;
option java_multiple_files = true;
option go_package = "fivetran.com/fivetran_sdk_v2";
package fivetran_sdk.v2;
import "google/protobuf/timestamp.proto";
import "common.proto";
// Fivetran (grpc client) <> DestinationConnector (grpc server)
service DestinationConnector {
rpc ConfigurationForm (ConfigurationFormRequest) returns (ConfigurationFormResponse) {}
rpc Capabilities (CapabilitiesRequest) returns (CapabilitiesResponse) {}
rpc Test (TestRequest) returns (TestResponse) {}
rpc DescribeTable (DescribeTableRequest) returns (DescribeTableResponse) {}
rpc CreateTable(CreateTableRequest) returns (CreateTableResponse) {}
rpc AlterTable(AlterTableRequest) returns (AlterTableResponse) {}
rpc Truncate(TruncateRequest) returns (TruncateResponse) {}
rpc WriteBatch (WriteBatchRequest) returns (WriteBatchResponse) {}
rpc WriteHistoryBatch (WriteHistoryBatchRequest) returns (WriteBatchResponse) {}
}
message CapabilitiesRequest {}
message CapabilitiesResponse {
BatchFileFormat batch_file_format = 1;
}
message DescribeTableRequest {
map<string, string> configuration = 1;
string schema_name = 2;
string table_name = 3;
}
message DescribeTableResponse {
oneof response {
bool not_found = 1;
Table table = 2;
Warning warning = 3;
Task task = 4;
}
}
message CreateTableRequest {
map<string, string> configuration = 1;
string schema_name = 2;
Table table = 3;
}
message CreateTableResponse {
oneof response {
bool success = 1;
Warning warning = 2;
Task task = 3;
}
}
message AlterTableRequest {
map<string, string> configuration = 1;
string schema_name = 2;
Table table = 3;
}
message AlterTableResponse {
oneof response {
bool success = 1;
Warning warning = 2;
Task task = 3;
}
}
message TruncateRequest {
map<string, string> configuration = 1;
string schema_name = 2;
string table_name = 3;
string synced_column = 4;
google.protobuf.Timestamp utc_delete_before = 5;
optional SoftTruncate soft = 6;
}
message SoftTruncate {
string deleted_column = 1;
}
message TruncateResponse {
oneof response {
bool success = 1;
Warning warning = 2;
Task task = 3;
}
}
message WriteBatchRequest {
map<string, string> configuration = 1;
string schema_name = 2;
Table table = 3;
map<string, bytes> keys = 4;
repeated string replace_files = 5;
repeated string update_files = 6;
repeated string delete_files = 7;
FileParams file_params = 8;
}
message WriteHistoryBatchRequest {
map<string, string> configuration = 1;
string schema_name = 2;
Table table = 3;
map<string, bytes> keys = 4;
repeated string earliest_start_files = 5;
repeated string replace_files = 6;
repeated string update_files = 7;
repeated string delete_files = 8;
FileParams file_params = 9;
}
message FileParams {
Compression compression = 1;
Encryption encryption = 2;
string null_string = 3;
string unmodified_string = 4;
}
enum Encryption {
NONE = 0;
AES = 1;
}
enum BatchFileFormat {
CSV = 0;
PARQUET = 1;
}
enum Compression {
OFF = 0;
ZSTD = 1;
GZIP = 2;
}
message WriteBatchResponse {
oneof response {
bool success = 1;
Warning warning = 2;
Task task = 3;
}
}