github.com/tickoalcantara12/micro/v3@v3.0.0-20221007104245-9d75b9bcbab9/proto/store/store.proto (about)

     1  syntax = "proto3";
     2  
     3  package store;
     4  
     5  option go_package = "github.com/tickoalcantara12/micro/v3/proto/store;store";
     6  
     7  service Store {
     8  	rpc Read(ReadRequest) returns (ReadResponse) {};
     9  	rpc Write(WriteRequest) returns (WriteResponse) {};
    10  	rpc Delete(DeleteRequest) returns (DeleteResponse) {};
    11  	rpc List(ListRequest) returns (stream ListResponse) {};
    12  	rpc Databases(DatabasesRequest) returns (DatabasesResponse) {};
    13  	rpc Tables(TablesRequest) returns (TablesResponse) {};
    14  }
    15  
    16  service BlobStore {
    17  	rpc Read(BlobReadRequest) returns (stream BlobReadResponse) {};
    18  	rpc Write(stream BlobWriteRequest) returns (BlobWriteResponse) {};
    19  	rpc Delete(BlobDeleteRequest) returns (BlobDeleteResponse) {};
    20  	rpc List(BlobListRequest) returns (BlobListResponse) {};
    21  }
    22  
    23  message Field {
    24  	// type of value e.g string, int, int64, bool, float64
    25  	string type = 1;
    26  	// the actual value
    27  	string value = 2;
    28  }
    29  
    30  message Record {
    31  	// key of the record
    32  	string key = 1;
    33  	// value in the record
    34  	bytes value = 2;
    35  	// time.Duration (signed int64 nanoseconds)
    36  	int64 expiry = 3;
    37  	// the associated metadata
    38  	map<string,Field> metadata = 4;
    39  }
    40  
    41  message ReadOptions {
    42  	string database = 1;
    43  	string table = 2;
    44  	bool prefix   = 3;
    45  	bool suffix   = 4;
    46  	uint64 limit  = 5;
    47  	uint64 offset = 6;
    48  	string order = 7;
    49  }
    50  
    51  message ReadRequest {
    52  	string key          = 1;
    53  	ReadOptions options = 2;
    54  }
    55  
    56  message ReadResponse {
    57  	repeated Record records = 1;
    58  }
    59  
    60  message WriteOptions {
    61  	string database = 1;
    62  	string table = 2;
    63  }
    64  
    65  message WriteRequest {
    66  	Record record        = 1;
    67  	WriteOptions options = 2;
    68  }
    69  
    70  message WriteResponse {}
    71  
    72  message DeleteOptions {
    73  	string database = 1;
    74  	string table = 2;
    75  }
    76  
    77  message DeleteRequest {
    78  	string key            = 1;
    79  	DeleteOptions options = 2;
    80  }
    81  
    82  message DeleteResponse {}
    83  
    84  message ListOptions {
    85  	string database = 1;
    86  	string table = 2;
    87  	string prefix   = 3;
    88  	string suffix   = 4;
    89  	uint64 limit  = 5;
    90  	uint64 offset = 6;
    91  	string order = 7;
    92  }
    93  
    94  
    95  message ListRequest {
    96  	ListOptions options = 1;
    97  }
    98  
    99  message ListResponse {
   100  	reserved 1; //repeated Record records = 1;
   101  	repeated string keys = 2;
   102  }
   103  
   104  message DatabasesRequest {}
   105  
   106  message DatabasesResponse {
   107  	repeated string databases = 1;
   108  }
   109  
   110  message TablesRequest {
   111  	string database = 1;
   112  }
   113  
   114  message TablesResponse {
   115  	repeated string tables = 1;
   116  }
   117  
   118  message BlobOptions {
   119  	string namespace = 1;
   120  	bool public = 2;
   121  	string contentType = 3;
   122  }
   123  
   124  message BlobReadRequest {
   125  	string key = 1;
   126  	BlobOptions options = 2;
   127  }
   128  
   129  message BlobReadResponse {
   130  	bytes blob = 1;
   131  }
   132  
   133  message BlobWriteRequest {
   134  	string key = 1;
   135  	BlobOptions options = 2;
   136  	bytes blob = 3;
   137  }
   138  
   139  message BlobWriteResponse {}
   140  
   141  message BlobDeleteRequest {
   142  	string key = 1;
   143  	BlobOptions options = 2;
   144  }
   145  
   146  message BlobDeleteResponse {}
   147  
   148  message BlobListRequest {
   149  	BlobListOptions options = 1;
   150  }
   151  
   152  message BlobListResponse {
   153  	repeated string keys = 1;
   154  }
   155  
   156  message BlobListOptions {
   157  	string namespace = 1;
   158  	string prefix = 2;
   159  }