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 }