Skip to content

protocol/ots_protocol.proto #8

@fengmk2

Description

@fengmk2
package com.aliyun.cloudservice.ots;

/* common structure */
enum ColumnType {
    INF_MIN = 0;
    INF_MAX = 1;
    INTEGER = 2;
    STRING = 3;
    BOOLEAN = 4;
    DOUBLE = 5;
}

message ColumnSchema {
    required string name = 1;
    required ColumnType type = 2;
}

message ColumnValue {
    required ColumnType type = 1;
    optional int64 value_i = 2;
    optional string value_s = 3;
    optional bool value_b = 4;
    optional double value_d = 5;
}

message Column {
    required string name = 1;
    required ColumnValue value = 2;
}

message Row {
    repeated Column primary_keys = 1;
    repeated Column columns = 2;
}

message RowPutChange {
    enum CheckingType {
        NO = 0;
        UPDATE = 1;
        INSERT = 2;
    }

    required Row row = 1;
    required CheckingType checking_type = 2 [default = NO];
}

message RowDeleteChange {
    repeated Column primary_keys = 1;
    repeated string column_names = 2;
}

message ViewMeta {
    required string view_name = 1;
    repeated ColumnSchema primary_keys = 2;
    repeated ColumnSchema columns = 3;
}

message TableMeta {
    required string table_name = 1;
    repeated ViewMeta views = 2;
    repeated ColumnSchema primary_keys = 3;
    optional string table_group_name = 4;
}

message GetRowParameter {
    required string table_name = 1;
    repeated Column primary_keys = 2;
    repeated string column_names = 3;
}

message PutRowParameter {
    required string table_name = 1;
    required RowPutChange row_change = 2;
}

message DeleteRowParameter {
    required string table_name = 1;
    required RowDeleteChange row_change = 2;
}

message ErrorMessage {
    required string code = 1;
    optional string message = 2;
}

/* CreateTableGroup */
message CreateTableGroupRequest {
    required string table_group_name = 1;
    required ColumnType partition_key_type = 2;
}

// no response message

/* DeleteTableGroup */
message DeleteTableGroupRequest {
    required string table_group_name = 1;
}

// no response message

/* ListTableGroup */
// no request message

message ListTableGroupResponse {
    repeated string table_group_names = 1;
}

/* CreateTable */
message CreateTableRequest {
    required TableMeta table_meta = 1;
}

// no response message

/* ListTable */
// no request message

message ListTableResponse {
    repeated string table_names = 1;
}

/* GetTableMeta */
message GetTableMetaRequest {
    required string table_name = 1;
}

message GetTableMetaResponse {
    required TableMeta table_meta = 1;
}

/* DeleteTable */
message DeleteTableRequest {
    required string table_name = 1;
}

// no response message

/* StartTransaction */
message StartTransactionRequest {
    required string entity_name = 1;
    required ColumnValue partition_key_value = 2;
}

message StartTransactionResponse {
    required string transaction_id = 1;
}

/* AbortTransaction */
message AbortTransactionRequest {
    required string transaction_id = 1;
}

// no response message

/* CommitTransaction */
message CommitTransactionRequest {
    required string transaction_id = 1;
}

// no response message

/* GetRow */
message GetRowRequest {
    required GetRowParameter get_row_parameter = 1;
    optional string transaction_id = 2;
}

message GetRowResponse {
    required string table_name = 1;
    required Row row = 2;
}

/* GetRowsByRange */
message GetRowsByRangeRequest {
    required string table_name= 1;
    repeated Column primary_key_prefix = 2;
    required string range_key_name = 3;
    required ColumnValue range_begin = 4;
    required ColumnValue range_end = 5;
    repeated string column_names = 6;
    required bool is_reverse = 7 [default = false];
    optional uint32 limit = 8;
    optional string next_token = 9;
    optional string transaction_id = 10;
}

message GetRowsByRangeResponse {
    required string table_name = 1;
    repeated Row rows = 2;
    optional string next_token = 3;
}

/* PutRow */
message PutRowRequest {
    required PutRowParameter put_row_parameter = 1;
    optional string transaction_id = 2;
}

// no response message

/* DeleteRow */
message DeleteRowRequest {
    required DeleteRowParameter delete_row_parameter = 1;
    optional string transaction_id = 2;
}

// no response message

/* BatchModifyRow */
message ModifyItem {
    enum ModifyType {
        PUT = 0;
        DELETE = 1;
    }

    required ModifyType type = 1;
    optional RowPutChange row_put_change = 2;
    optional RowDeleteChange row_delete_change = 3;
}

message BatchModifyRowRequest {
    required string table_name = 1;
    repeated ModifyItem modify_items = 2;
    required string transaction_id = 3;
}

// no response message

/* MultiGetRow */
message MultiGetRowRequest {
    repeated GetRowParameter parameters = 1;
}

message MultiGetRowResponseItem {
     required bool is_succeed = 1;
     optional ErrorMessage error = 2;
     optional string table_name = 3;
     optional Row row = 4;
}

message MultiGetRowResponse {
     repeated MultiGetRowResponseItem items = 1;
}

/* MultiPutRow */
message MultiPutRowRequest {
    repeated PutRowParameter parameters = 1;
}

message MultiPutRowResponse {
    repeated ErrorMessage messages = 1;
}

/* MultiDeleteRow */
message MultiDeleteRowRequest {
    repeated DeleteRowParameter parameters = 1;
}

message MultiDeleteRowResponse {
    repeated ErrorMessage messages = 1;
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions