Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

183 lines (155 sloc) 5.419 kB
/* -------------------------------------------------------------------
**
** riak_kv.proto: Protocol buffers for riak KV
**
** Copyright (c) 2007-2010 Basho Technologies, Inc. All Rights Reserved.
**
** This file is provided to you under the Apache License,
** Version 2.0 (the "License"); you may not use this file
** except in compliance with the License. You may obtain
** a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing,
** software distributed under the License is distributed on an
** "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
** KIND, either express or implied. See the License for the
** specific language governing permissions and limitations
** under the License.
**
** -------------------------------------------------------------------
*/
/*
** Revision: 1.4
*/
// Java package specifiers
option java_package = "com.basho.riak.protobuf";
option java_outer_classname = "RiakKvPB";
import "riak.proto"; // for RpbPair
// Get ClientId Request - no message defined, just send RpbGetClientIdReq message code
message RpbGetClientIdResp {
required bytes client_id = 1; // Client id in use for this connection
}
message RpbSetClientIdReq {
required bytes client_id = 1; // Client id to use for this connection
}
// Set ClientId Request - no message defined, just send RpbSetClientIdReq message code
// Get Request - retrieve bucket/key
message RpbGetReq {
required bytes bucket = 1;
required bytes key = 2;
optional uint32 r = 3;
optional uint32 pr = 4;
optional bool basic_quorum = 5;
optional bool notfound_ok = 6;
optional bytes if_modified = 7; // fail if the supplied vclock does not match
optional bool head = 8; // return everything but the value
optional bool deletedvclock = 9; // return the tombstone's vclock, if applicable
}
// Get Response - if the record was not found there will be no content/vclock
message RpbGetResp {
repeated RpbContent content = 1;
optional bytes vclock = 2; // the opaque vector clock for the object
optional bool unchanged = 3;
}
// Put request - if options.return_body is set then the updated metadata/data for
// the key will be returned.
message RpbPutReq {
required bytes bucket = 1;
optional bytes key = 2;
optional bytes vclock = 3;
required RpbContent content = 4;
optional uint32 w = 5;
optional uint32 dw = 6;
optional bool return_body = 7;
optional uint32 pw = 8;
optional bool if_not_modified = 9;
optional bool if_none_match = 10;
optional bool return_head = 11;
}
// Put response - same as get response with optional key if one was generated
message RpbPutResp {
repeated RpbContent content = 1;
optional bytes vclock = 2; // the opaque vector clock for the object
optional bytes key = 3; // the key generated, if any
}
// Delete request
message RpbDelReq {
required bytes bucket = 1;
required bytes key = 2;
optional uint32 rw = 3;
optional bytes vclock = 4;
optional uint32 r = 5;
optional uint32 w = 6;
optional uint32 pr = 7;
optional uint32 pw = 8;
optional uint32 dw = 9;
}
// Delete response - not defined, will return a RpbDelResp on success or RpbErrorResp on failure
// List buckets request - no message defined, just send RpbListBucketsReq
// List buckets response
message RpbListBucketsResp {
repeated bytes buckets = 1;
}
// List keys in bucket request
message RpbListKeysReq {
required bytes bucket = 1;
}
// List keys in bucket response - one or more of these packets will be sent
// the last one will have done set true (and may not have any keys in it)
message RpbListKeysResp {
repeated bytes keys = 1;
optional bool done = 2;
}
// Map/Reduce request
message RpbMapRedReq {
required bytes request = 1;
required bytes content_type = 2;
}
// Map/Reduce response
// one or more of these packets will be sent the last one will have done set
// true (and may not have phase/data in it)
message RpbMapRedResp {
optional uint32 phase = 1;
optional bytes response = 2;
optional bool done = 3;
}
// Secondary Index query request
message RpbIndexReq {
enum IndexQueryType {
eq = 0;
range = 1;
}
required bytes bucket = 1;
required bytes index = 2;
required IndexQueryType qtype = 3;
optional bytes key = 4;
optional bytes range_min = 5;
optional bytes range_max = 6;
}
// Secondary Index query response
message RpbIndexResp {
repeated bytes keys = 1;
}
// Content message included in get/put responses
// Holds the value and associated metadata
message RpbContent {
required bytes value = 1;
optional bytes content_type = 2; // the media type/format
optional bytes charset = 3;
optional bytes content_encoding = 4;
optional bytes vtag = 5;
repeated RpbLink links = 6; // links to other resources
optional uint32 last_mod = 7;
optional uint32 last_mod_usecs = 8;
repeated RpbPair usermeta = 9; // user metadata stored with the object
repeated RpbPair indexes = 10; // user metadata stored with the object
optional bool deleted = 11;
}
// Link metadata
message RpbLink {
optional bytes bucket = 1;
optional bytes key = 2;
optional bytes tag = 3;
}
Jump to Line
Something went wrong with that request. Please try again.