/*
Copyright 2012 Google Inc.

Licensed 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.
*/

syntax = "proto2";

package groupcachepb;

message GetRequest {
  required string group = 1;
  required string key = 2; // not actually required/guaranteed to be UTF-8
}

message GetResponse {
  optional bytes value = 1;
  optional double minute_qps = 2;
}

service GroupCache {
  rpc Get(GetRequest) returns (GetResponse) {
  };
}
