datahub/proto/record.proto (80 lines of code) (raw):
syntax = "proto2";
package datahub.record.proto;
message StringPair
{
required string key = 1;
required string value = 2;
}
message FieldData
{
optional bytes value = 1;
}
message RecordAttributes
{
repeated StringPair attributes = 1;
}
message RecordData
{
repeated FieldData data = 1;
}
message RecordEntry
{
optional string shard_id = 1;
optional string hash_key = 2;
optional string partition_key = 3;
optional string cursor = 4;
optional string next_cursor = 5;
optional int64 sequence = 6;
optional int64 system_time = 7;
optional RecordAttributes attributes = 8;
required RecordData data = 9;
}
message PutRecordsRequest
{
repeated RecordEntry records = 1;
}
message FailedRecord
{
required int32 index = 1;
optional string error_code = 2;
optional string error_message = 3;
}
message PutRecordsResponse
{
optional int32 failed_count = 1;
repeated FailedRecord failed_records = 2;
}
message GetRecordsRequest
{
required string cursor = 1;
optional int32 limit = 2 [default = 1];
}
message GetRecordsResponse
{
required string next_cursor = 1;
required int32 record_count = 2;
optional int64 start_sequence = 3;
repeated RecordEntry records = 4;
}
message BinaryRecordEntry
{
optional string cursor = 1;
optional string next_cursor = 2;
optional int64 sequence = 3;
optional int64 system_time = 4;
optional uint32 serial = 5 [default = 0];
optional bytes data = 6;
}
message PutBinaryRecordsRequest
{
repeated BinaryRecordEntry records = 1;
}
message GetBinaryRecordsResponse
{
required string next_cursor = 1;
required int32 record_count = 2;
optional int64 start_sequence = 3;
repeated BinaryRecordEntry records = 4;
optional int64 latest_sequence = 5 [default = -1];
optional int64 latest_time = 6 [default = -1];
}