diff --git a/CHANGELOG.md b/CHANGELOG.md
index 77a2437d84..0208c34857 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,7 +12,8 @@
### Cleanup
* Removed the deprecated crypto.NewSHA256Signer function.
* Finish removing the `LogMetadata.GetUnsequencedCounts()` method.
- * Removed `TrillianLog.GetLeavesByHash` API.
+ * Removed `TrillianLog.GetLeavesByHash` and `TrillianLog.GetLeavesByIndex`
+ API.
### Storage refactoring
* `NodeReader.GetMerkleNodes` does not accept revisions anymore. The
diff --git a/README.md b/README.md
index 5030003873..f2da7b5010 100644
--- a/README.md
+++ b/README.md
@@ -287,8 +287,8 @@ similar to those available for Certificate Transparency logs
- `GetLatestSignedLogRoot` returns information about the current root of the
Merkle tree for the log, including the tree size, hash value, timestamp and
signature.
- - `GetLeavesByIndex` and `GetLeavesByRange` return leaf information for
- particular leaves, specified by their index in the log.
+ - `GetLeavesByRange` returns leaf information for particular leaves,
+ specified by their index in the log.
- `QueueLeaves` requests inclusion of specified items into the log.
- For a pre-ordered log, `AddSequencedLeaves` requests the inclusion of
specified items into the log at specified places in the tree.
diff --git a/client/log_client.go b/client/log_client.go
index cd37462f9b..127257c8b1 100644
--- a/client/log_client.go
+++ b/client/log_client.go
@@ -74,21 +74,6 @@ func (c *LogClient) AddLeaf(ctx context.Context, data []byte) error {
return nil
}
-// GetByIndex returns a single leaf at the requested index.
-func (c *LogClient) GetByIndex(ctx context.Context, index int64) (*trillian.LogLeaf, error) {
- resp, err := c.client.GetLeavesByIndex(ctx, &trillian.GetLeavesByIndexRequest{
- LogId: c.LogID,
- LeafIndex: []int64{index},
- })
- if err != nil {
- return nil, err
- }
- if got, want := len(resp.Leaves), 1; got != want {
- return nil, fmt.Errorf("len(leaves): %v, want %v", got, want)
- }
- return resp.Leaves[0], nil
-}
-
// ListByIndex returns the requested leaves by index.
func (c *LogClient) ListByIndex(ctx context.Context, start, count int64) ([]*trillian.LogLeaf, error) {
resp, err := c.client.GetLeavesByRange(ctx,
diff --git a/client/log_client_test.go b/client/log_client_test.go
index f994a8ad3f..41666a5e1a 100644
--- a/client/log_client_test.go
+++ b/client/log_client_test.go
@@ -71,34 +71,6 @@ func clientEnvForTest(ctx context.Context, t *testing.T, template *trillian.Tree
return env, client
}
-func TestGetByIndex(t *testing.T) {
- ctx := context.Background()
- env, client := clientEnvForTest(ctx, t, stestonly.PreorderedLogTree)
- defer env.Close()
-
- // Add a few test leaves.
- leafData := [][]byte{
- []byte("A"),
- []byte("B"),
- []byte("C"),
- }
-
- if err := addSequencedLeaves(ctx, env, client, leafData); err != nil {
- t.Fatalf("Failed to add leaves: %v", err)
- }
-
- for i, l := range leafData {
- leaf, err := client.GetByIndex(ctx, int64(i))
- if err != nil {
- t.Errorf("Failed to GetByIndex(%v): %v", i, err)
- continue
- }
- if got, want := leaf.LeafValue, l; !bytes.Equal(got, want) {
- t.Errorf("GetByIndex(%v) = %x, want %x", i, got, want)
- }
- }
-}
-
func TestListByIndex(t *testing.T) {
ctx := context.Background()
env, client := clientEnvForTest(ctx, t, stestonly.PreorderedLogTree)
diff --git a/docs/api.md b/docs/api.md
index b6ee6c8f57..d9608598c0 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -19,8 +19,6 @@
- [GetInclusionProofResponse](#trillian.GetInclusionProofResponse)
- [GetLatestSignedLogRootRequest](#trillian.GetLatestSignedLogRootRequest)
- [GetLatestSignedLogRootResponse](#trillian.GetLatestSignedLogRootResponse)
- - [GetLeavesByIndexRequest](#trillian.GetLeavesByIndexRequest)
- - [GetLeavesByIndexResponse](#trillian.GetLeavesByIndexResponse)
- [GetLeavesByRangeRequest](#trillian.GetLeavesByRangeRequest)
- [GetLeavesByRangeResponse](#trillian.GetLeavesByRangeResponse)
- [InitLogRequest](#trillian.InitLogRequest)
@@ -319,39 +317,6 @@ As an example, a Certificate Transparency frontend might set the following user
-
-
-### GetLeavesByIndexRequest
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| log_id | [int64](#int64) | | |
-| leaf_index | [int64](#int64) | repeated | |
-| charge_to | [ChargeTo](#trillian.ChargeTo) | | |
-
-
-
-
-
-
-
-
-### GetLeavesByIndexResponse
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| leaves | [LogLeaf](#trillian.LogLeaf) | repeated | TODO(gbelvin): Response syntax does not allow for some requested leaves to be available, and some not (but using QueuedLogLeaf might) |
-| signed_log_root | [SignedLogRoot](#trillian.SignedLogRoot) | | |
-
-
-
-
-
-
### GetLeavesByRangeRequest
@@ -595,7 +560,6 @@ If the requested tree size is unavailable but the leaf is in scope for the curre
| InitLog | [InitLogRequest](#trillian.InitLogRequest) | [InitLogResponse](#trillian.InitLogResponse) | InitLog initializes a particular tree, creating the initial signed log root (which will be of size 0). |
| QueueLeaves | [QueueLeavesRequest](#trillian.QueueLeavesRequest) | [QueueLeavesResponse](#trillian.QueueLeavesResponse) | QueueLeaf adds a batch of leaves to the queue of pending leaves for a normal log. |
| AddSequencedLeaves | [AddSequencedLeavesRequest](#trillian.AddSequencedLeavesRequest) | [AddSequencedLeavesResponse](#trillian.AddSequencedLeavesResponse) | AddSequencedLeaves adds a batch of leaves with assigned sequence numbers to a pre-ordered log. The indices of the provided leaves must be contiguous. |
-| GetLeavesByIndex | [GetLeavesByIndexRequest](#trillian.GetLeavesByIndexRequest) | [GetLeavesByIndexResponse](#trillian.GetLeavesByIndexResponse) | GetLeavesByIndex returns a batch of leaves whose leaf indices are provided in the request. |
| GetLeavesByRange | [GetLeavesByRangeRequest](#trillian.GetLeavesByRangeRequest) | [GetLeavesByRangeResponse](#trillian.GetLeavesByRangeResponse) | GetLeavesByRange returns a batch of leaves whose leaf indices are in a sequential range. |
diff --git a/server/interceptor/interceptor.go b/server/interceptor/interceptor.go
index c5572a0096..8f2bcc6f3c 100644
--- a/server/interceptor/interceptor.go
+++ b/server/interceptor/interceptor.go
@@ -388,9 +388,6 @@ func newRPCInfoForRequest(req interface{}) (*rpcInfo, error) {
*trillian.GetLatestSignedLogRootRequest:
info.treeTypes = []trillian.TreeType{trillian.TreeType_LOG, trillian.TreeType_PREORDERED_LOG}
info.tokens = 1
- case *trillian.GetLeavesByIndexRequest:
- info.treeTypes = []trillian.TreeType{trillian.TreeType_LOG, trillian.TreeType_PREORDERED_LOG}
- info.tokens = len(req.GetLeafIndex())
case *trillian.GetLeavesByRangeRequest:
info.treeTypes = []trillian.TreeType{trillian.TreeType_LOG, trillian.TreeType_PREORDERED_LOG}
info.tokens = 1
diff --git a/server/interceptor/interceptor_test.go b/server/interceptor/interceptor_test.go
index 8a0a8f74b2..98fc692f16 100644
--- a/server/interceptor/interceptor_test.go
+++ b/server/interceptor/interceptor_test.go
@@ -212,16 +212,6 @@ func TestTrillianInterceptor_QuotaInterception(t *testing.T) {
},
wantTokens: 1,
},
- {
- desc: "logReadIndices",
- method: "/trillian.TrillianLog/GetLeavesByIndex",
- req: &trillian.GetLeavesByIndexRequest{LogId: logTree.TreeId, LeafIndex: []int64{1, 2, 3}},
- specs: []quota.Spec{
- {Group: quota.Tree, Kind: quota.Read, TreeID: logTree.TreeId},
- {Group: quota.Global, Kind: quota.Read, Refundable: true},
- },
- wantTokens: 3,
- },
{
desc: "logReadRange",
method: "/trillian.TrillianLog/GetLeavesByRange",
diff --git a/server/log_rpc_server.go b/server/log_rpc_server.go
index 8bc6d8b6bb..955dce913a 100644
--- a/server/log_rpc_server.go
+++ b/server/log_rpc_server.go
@@ -463,49 +463,6 @@ func tryGetConsistencyProof(ctx context.Context, firstTreeSize, secondTreeSize,
return proof, nil
}
-// GetLeavesByIndex obtains one or more leaves based on their sequence number within the
-// tree. It is not possible to fetch leaves that have been queued but not yet integrated.
-// TODO: Validate indices against published tree size in case we implement write sharding that
-// can get ahead of this point. Not currently clear what component should own this state.
-func (t *TrillianLogRPCServer) GetLeavesByIndex(ctx context.Context, req *trillian.GetLeavesByIndexRequest) (*trillian.GetLeavesByIndexResponse, error) {
- ctx, spanEnd := spanFor(ctx, "GetLeavesByIndex")
- defer spanEnd()
- if err := validateGetLeavesByIndexRequest(req); err != nil {
- return nil, err
- }
-
- tree, ctx, err := t.getTreeAndContext(ctx, req.LogId, optsLogRead)
- if err != nil {
- return nil, err
- }
- tx, err := t.snapshotForTree(ctx, tree, "GetLeavesByIndex")
- if err != nil {
- return nil, err
- }
- defer t.closeAndLog(ctx, tree.TreeId, tx, "GetLeavesByIndex")
-
- leaves, err := tx.GetLeavesByIndex(ctx, req.LeafIndex)
- if err != nil {
- return nil, err
- }
- t.fetchedLeaves.Add(float64(len(leaves)))
-
- if err := t.commitAndLog(ctx, req.LogId, tx, "GetLeavesByIndex"); err != nil {
- return nil, err
- }
-
- slr, err := tx.LatestSignedLogRoot(ctx)
- if err != nil {
- return nil, err
- }
- var root types.LogRootV1
- if err := root.UnmarshalBinary(slr.LogRoot); err != nil {
- return nil, status.Errorf(codes.Internal, "Could not read current log root: %v", err)
- }
-
- return &trillian.GetLeavesByIndexResponse{Leaves: leaves, SignedLogRoot: slr}, nil
-}
-
// GetLeavesByRange obtains leaves based on a range of sequence numbers within the tree.
// This only fetches sequenced leaves; leaves that have been queued but not yet integrated
// are not visible.
diff --git a/server/log_rpc_server_test.go b/server/log_rpc_server_test.go
index 2726b68cfa..591bfc8147 100644
--- a/server/log_rpc_server_test.go
+++ b/server/log_rpc_server_test.go
@@ -83,9 +83,6 @@ var (
leafHash2 = []byte("\x05\x37\xd4\x81\xf7\x3a\x75\x73\x34\x32\x80\x52\xda\x3a\xf9\x62\x6c\xed\x97\x02\x8e\x20\xb8\x49\xf6\x11\x5c\x22\xcd\x76\x51\x97")
leaf3 = newTestLeaf([]byte("value3"), []byte("extra3"), 3)
- leaf0Request = trillian.GetLeavesByIndexRequest{LogId: logID1, LeafIndex: []int64{0}}
- leaf03Request = trillian.GetLeavesByIndexRequest{LogId: logID1, LeafIndex: []int64{0, 3}}
-
queueRequest0 = trillian.QueueLeavesRequest{LogId: logID1, Leaves: []*trillian.LogLeaf{leaf1}}
queueRequest0Log2 = trillian.QueueLeavesRequest{LogId: logID2, Leaves: []*trillian.LogLeaf{leaf1}}
@@ -124,161 +121,6 @@ var (
corruptLogRoot = &trillian.SignedLogRoot{LogRoot: []byte("this is not tls encoded data")}
)
-func TestGetLeavesByIndex(t *testing.T) {
- for _, tc := range []struct {
- name string
- setupStorage func(*gomock.Controller, *storage.MockLogStorage)
- snapErr error
- treeErr error
- req *trillian.GetLeavesByIndexRequest
- errStr string
- wantResp *trillian.GetLeavesByIndexResponse
- }{
- {
- name: "admin snapshot fails",
- setupStorage: func(_ *gomock.Controller, s *storage.MockLogStorage) {
- },
- req: &leaf0Request,
- snapErr: errors.New("admin snap"),
- errStr: "admin snap",
- },
- {
- name: "get tree fails",
- setupStorage: func(_ *gomock.Controller, s *storage.MockLogStorage) {
- },
- req: &leaf0Request,
- treeErr: errors.New("tree error"),
- errStr: "tree error",
- },
- {
- name: "begin fails",
- setupStorage: func(_ *gomock.Controller, s *storage.MockLogStorage) {
- s.EXPECT().SnapshotForTree(gomock.Any(), cmpMatcher{tree1}).Return(nil, errors.New("TX"))
- },
- req: &leaf0Request,
- errStr: "TX",
- },
- {
- name: "not initialized",
- setupStorage: func(c *gomock.Controller, s *storage.MockLogStorage) {
- tx := storage.NewMockLogTreeTX(c)
- s.EXPECT().SnapshotForTree(gomock.Any(), cmpMatcher{tree1}).Return(tx, storage.ErrTreeNeedsInit)
- tx.EXPECT().Close().Return(nil)
- },
- req: &leaf0Request,
- errStr: "tree needs init",
- },
- {
- name: "storage error",
- setupStorage: func(c *gomock.Controller, s *storage.MockLogStorage) {
- tx := storage.NewMockLogTreeTX(c)
- s.EXPECT().SnapshotForTree(gomock.Any(), cmpMatcher{tree1}).Return(tx, nil)
- tx.EXPECT().GetLeavesByIndex(gomock.Any(), []int64{0}).Return(nil, errors.New("STORAGE"))
- tx.EXPECT().Close().Return(nil)
- },
- req: &leaf0Request,
- errStr: "STORAGE",
- },
- {
- name: "commit fails",
- setupStorage: func(c *gomock.Controller, s *storage.MockLogStorage) {
- tx := storage.NewMockLogTreeTX(c)
- s.EXPECT().SnapshotForTree(gomock.Any(), cmpMatcher{tree1}).Return(tx, nil)
- tx.EXPECT().GetLeavesByIndex(gomock.Any(), []int64{0}).Return([]*trillian.LogLeaf{leaf1}, nil)
- tx.EXPECT().Commit(gomock.Any()).Return(errors.New("COMMIT"))
- tx.EXPECT().Close().Return(nil)
- },
- req: &leaf0Request,
- errStr: "COMMIT",
- },
- {
- name: "log root fails",
- setupStorage: func(c *gomock.Controller, s *storage.MockLogStorage) {
- tx := storage.NewMockLogTreeTX(c)
- s.EXPECT().SnapshotForTree(gomock.Any(), cmpMatcher{tree1}).Return(tx, nil)
- tx.EXPECT().GetLeavesByIndex(gomock.Any(), []int64{0}).Return([]*trillian.LogLeaf{leaf1}, nil)
- tx.EXPECT().LatestSignedLogRoot(gomock.Any()).Return(signedRoot1, errors.New("SLR"))
- tx.EXPECT().Commit(gomock.Any()).Return(nil)
- tx.EXPECT().Close().Return(nil)
- tx.EXPECT().IsOpen().AnyTimes().Return(false)
- },
- req: &leaf0Request,
- errStr: "SLR",
- },
- {
- name: "bad log root",
- setupStorage: func(c *gomock.Controller, s *storage.MockLogStorage) {
- tx := storage.NewMockLogTreeTX(c)
- s.EXPECT().SnapshotForTree(gomock.Any(), cmpMatcher{tree1}).Return(tx, nil)
- tx.EXPECT().GetLeavesByIndex(gomock.Any(), []int64{0}).Return([]*trillian.LogLeaf{leaf1}, nil)
- tx.EXPECT().LatestSignedLogRoot(gomock.Any()).Return(corruptLogRoot, nil)
- tx.EXPECT().Commit(gomock.Any()).Return(nil)
- tx.EXPECT().Close().Return(nil)
- tx.EXPECT().IsOpen().AnyTimes().Return(false)
- },
- req: &leaf0Request,
- errStr: "not read current log root",
- },
- {
- name: "ok",
- setupStorage: func(c *gomock.Controller, s *storage.MockLogStorage) {
- tx := storage.NewMockLogTreeTX(c)
- s.EXPECT().SnapshotForTree(gomock.Any(), cmpMatcher{tree1}).Return(tx, nil)
- tx.EXPECT().GetLeavesByIndex(gomock.Any(), []int64{0}).Return([]*trillian.LogLeaf{leaf1}, nil)
- tx.EXPECT().LatestSignedLogRoot(gomock.Any()).Return(signedRoot1, nil)
- tx.EXPECT().Commit(gomock.Any()).Return(nil)
- tx.EXPECT().Close().Return(nil)
- tx.EXPECT().IsOpen().AnyTimes().Return(false)
- },
- req: &leaf0Request,
- wantResp: &trillian.GetLeavesByIndexResponse{
- SignedLogRoot: signedRoot1,
- Leaves: []*trillian.LogLeaf{leaf1},
- },
- },
- {
- name: "ok multiple",
- setupStorage: func(c *gomock.Controller, s *storage.MockLogStorage) {
- tx := storage.NewMockLogTreeTX(c)
- s.EXPECT().SnapshotForTree(gomock.Any(), cmpMatcher{tree1}).Return(tx, nil)
- tx.EXPECT().GetLeavesByIndex(gomock.Any(), []int64{0, 3}).Return([]*trillian.LogLeaf{leaf1, leaf3}, nil)
- tx.EXPECT().LatestSignedLogRoot(gomock.Any()).Return(signedRoot1, nil)
- tx.EXPECT().Commit(gomock.Any()).Return(nil)
- tx.EXPECT().Close().Return(nil)
- tx.EXPECT().IsOpen().AnyTimes().Return(false)
- },
- req: &leaf03Request,
- wantResp: &trillian.GetLeavesByIndexResponse{
- SignedLogRoot: signedRoot1,
- Leaves: []*trillian.LogLeaf{leaf1, leaf3},
- },
- },
- } {
- t.Run(tc.name, func(t *testing.T) {
- ctrl := gomock.NewController(t)
- defer ctrl.Finish()
- fakeStorage := storage.NewMockLogStorage(ctrl)
- tc.setupStorage(ctrl, fakeStorage)
- registry := extension.Registry{
- AdminStorage: fakeAdminStorage(ctrl, storageParams{treeID: leaf0Request.LogId, numSnapshots: 1, snapErr: tc.snapErr, treeErr: tc.treeErr}),
- LogStorage: fakeStorage,
- }
- server := NewTrillianLogRPCServer(registry, fakeTimeSource)
- resp, err := server.GetLeavesByIndex(context.Background(), tc.req)
- if len(tc.errStr) > 0 {
- if err == nil || !strings.Contains(err.Error(), tc.errStr) {
- t.Errorf("GetLeavesByIndex(%v)=%v, %v want nil, err containing: %s", tc.req, resp, err, tc.errStr)
- }
- return
- }
-
- if err != nil || !proto.Equal(tc.wantResp, resp) {
- t.Errorf("GetLeavesByIndex(%v)=%v, %v, want: %v, nil", tc.req, resp, err, tc.wantResp)
- }
- })
- }
-}
-
func TestGetLeavesByRange(t *testing.T) {
ctx := context.Background()
ctrl := gomock.NewController(t)
@@ -838,7 +680,7 @@ func TestGetProofByHashErrors(t *testing.T) {
tc.setupStorage(ctrl, fakeStorage)
}
registry := extension.Registry{
- AdminStorage: fakeAdminStorage(ctrl, storageParams{treeID: leaf0Request.LogId, numSnapshots: 1, snapErr: tc.snapErr, treeErr: tc.treeErr}),
+ AdminStorage: fakeAdminStorage(ctrl, storageParams{treeID: logID1, numSnapshots: 1, snapErr: tc.snapErr, treeErr: tc.treeErr}),
LogStorage: fakeStorage,
}
server := NewTrillianLogRPCServer(registry, fakeTimeSource)
@@ -1093,7 +935,7 @@ func TestGetProofByIndex(t *testing.T) {
fakeStorage := storage.NewMockLogStorage(ctrl)
tc.setupStorage(ctrl, fakeStorage)
registry := extension.Registry{
- AdminStorage: fakeAdminStorage(ctrl, storageParams{treeID: leaf0Request.LogId, numSnapshots: 1, snapErr: tc.snapErr, treeErr: tc.treeErr}),
+ AdminStorage: fakeAdminStorage(ctrl, storageParams{treeID: logID1, numSnapshots: 1, snapErr: tc.snapErr, treeErr: tc.treeErr}),
LogStorage: fakeStorage,
}
server := NewTrillianLogRPCServer(registry, fakeTimeSource)
@@ -1312,7 +1154,7 @@ func TestGetEntryAndProof(t *testing.T) {
fakeStorage := storage.NewMockLogStorage(ctrl)
tc.setupStorage(ctrl, fakeStorage)
registry := extension.Registry{
- AdminStorage: fakeAdminStorage(ctrl, storageParams{treeID: leaf0Request.LogId, numSnapshots: 1, snapErr: tc.snapErr, treeErr: tc.treeErr}),
+ AdminStorage: fakeAdminStorage(ctrl, storageParams{treeID: logID1, numSnapshots: 1, snapErr: tc.snapErr, treeErr: tc.treeErr}),
LogStorage: fakeStorage,
}
server := NewTrillianLogRPCServer(registry, fakeTimeSource)
@@ -1656,36 +1498,6 @@ func TestTrillianLogRPCServer_GetInclusionProofByHashErrors(t *testing.T) {
}
}
-func TestTrillianLogRPCServer_GetLeavesByIndexErrors(t *testing.T) {
- tests := []struct {
- desc string
- req *trillian.GetLeavesByIndexRequest
- }{
- {
- desc: "nilLeafIndex",
- req: &trillian.GetLeavesByIndexRequest{
- LogId: 1,
- },
- },
- {
- desc: "badLeadIndex",
- req: &trillian.GetLeavesByIndexRequest{
- LogId: 1,
- LeafIndex: []int64{10, -11, 12},
- },
- },
- }
-
- logServer := NewTrillianLogRPCServer(extension.Registry{}, fakeTimeSource)
- ctx := context.Background()
- for _, test := range tests {
- _, err := logServer.GetLeavesByIndex(ctx, test.req)
- if s, ok := status.FromError(err); !ok || s.Code() != codes.InvalidArgument {
- t.Errorf("%v: GetLeavesByIndex() returned err = %v, wantCode = %s", test.desc, err, codes.InvalidArgument)
- }
- }
-}
-
func TestTrillianLogRPCServer_QueueLeafErrors(t *testing.T) {
leafValue := []byte("leaf value")
diff --git a/server/validate.go b/server/validate.go
index 6fe959f2c9..149c74c4d9 100644
--- a/server/validate.go
+++ b/server/validate.go
@@ -46,18 +46,6 @@ func validateGetInclusionProofByHashRequest(req *trillian.GetInclusionProofByHas
return nil
}
-func validateGetLeavesByIndexRequest(req *trillian.GetLeavesByIndexRequest) error {
- if len(req.LeafIndex) == 0 {
- return status.Error(codes.InvalidArgument, "GetLeavesByIndexRequest.LeafIndex empty")
- }
- for i, leafIndex := range req.LeafIndex {
- if leafIndex < 0 {
- return status.Errorf(codes.InvalidArgument, "GetLeavesByIndexRequest.LeafIndex[%v]: %v, want >= 0", i, leafIndex)
- }
- }
- return nil
-}
-
func validateGetLeavesByRangeRequest(req *trillian.GetLeavesByRangeRequest) error {
if req.StartIndex < 0 {
return status.Errorf(codes.InvalidArgument, "GetLeavesByRangeRequest.StartIndex: %v, want >= 0", req.StartIndex)
diff --git a/testonly/tmock/mock_log_server.go b/testonly/tmock/mock_log_server.go
index dfc2a2ffba..103c50b767 100644
--- a/testonly/tmock/mock_log_server.go
+++ b/testonly/tmock/mock_log_server.go
@@ -140,21 +140,6 @@ func (mr *MockTrillianLogServerMockRecorder) GetLatestSignedLogRoot(arg0, arg1 i
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestSignedLogRoot", reflect.TypeOf((*MockTrillianLogServer)(nil).GetLatestSignedLogRoot), arg0, arg1)
}
-// GetLeavesByIndex mocks base method.
-func (m *MockTrillianLogServer) GetLeavesByIndex(arg0 context.Context, arg1 *trillian.GetLeavesByIndexRequest) (*trillian.GetLeavesByIndexResponse, error) {
- m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "GetLeavesByIndex", arg0, arg1)
- ret0, _ := ret[0].(*trillian.GetLeavesByIndexResponse)
- ret1, _ := ret[1].(error)
- return ret0, ret1
-}
-
-// GetLeavesByIndex indicates an expected call of GetLeavesByIndex.
-func (mr *MockTrillianLogServerMockRecorder) GetLeavesByIndex(arg0, arg1 interface{}) *gomock.Call {
- mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLeavesByIndex", reflect.TypeOf((*MockTrillianLogServer)(nil).GetLeavesByIndex), arg0, arg1)
-}
-
// GetLeavesByRange mocks base method.
func (m *MockTrillianLogServer) GetLeavesByRange(arg0 context.Context, arg1 *trillian.GetLeavesByRangeRequest) (*trillian.GetLeavesByRangeResponse, error) {
m.ctrl.T.Helper()
diff --git a/trillian_log_api.pb.go b/trillian_log_api.pb.go
index 78e6c1c2ae..f88ae56513 100644
--- a/trillian_log_api.pb.go
+++ b/trillian_log_api.pb.go
@@ -1318,125 +1318,6 @@ func (x *AddSequencedLeavesResponse) GetResults() []*QueuedLogLeaf {
return nil
}
-type GetLeavesByIndexRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- LogId int64 `protobuf:"varint,1,opt,name=log_id,json=logId,proto3" json:"log_id,omitempty"`
- LeafIndex []int64 `protobuf:"varint,2,rep,packed,name=leaf_index,json=leafIndex,proto3" json:"leaf_index,omitempty"`
- ChargeTo *ChargeTo `protobuf:"bytes,5,opt,name=charge_to,json=chargeTo,proto3" json:"charge_to,omitempty"`
-}
-
-func (x *GetLeavesByIndexRequest) Reset() {
- *x = GetLeavesByIndexRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_trillian_log_api_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetLeavesByIndexRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetLeavesByIndexRequest) ProtoMessage() {}
-
-func (x *GetLeavesByIndexRequest) ProtoReflect() protoreflect.Message {
- mi := &file_trillian_log_api_proto_msgTypes[21]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetLeavesByIndexRequest.ProtoReflect.Descriptor instead.
-func (*GetLeavesByIndexRequest) Descriptor() ([]byte, []int) {
- return file_trillian_log_api_proto_rawDescGZIP(), []int{21}
-}
-
-func (x *GetLeavesByIndexRequest) GetLogId() int64 {
- if x != nil {
- return x.LogId
- }
- return 0
-}
-
-func (x *GetLeavesByIndexRequest) GetLeafIndex() []int64 {
- if x != nil {
- return x.LeafIndex
- }
- return nil
-}
-
-func (x *GetLeavesByIndexRequest) GetChargeTo() *ChargeTo {
- if x != nil {
- return x.ChargeTo
- }
- return nil
-}
-
-type GetLeavesByIndexResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // TODO(gbelvin): Response syntax does not allow for some requested leaves to be available, and some not (but using QueuedLogLeaf might)
- Leaves []*LogLeaf `protobuf:"bytes,2,rep,name=leaves,proto3" json:"leaves,omitempty"`
- SignedLogRoot *SignedLogRoot `protobuf:"bytes,3,opt,name=signed_log_root,json=signedLogRoot,proto3" json:"signed_log_root,omitempty"`
-}
-
-func (x *GetLeavesByIndexResponse) Reset() {
- *x = GetLeavesByIndexResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_trillian_log_api_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetLeavesByIndexResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetLeavesByIndexResponse) ProtoMessage() {}
-
-func (x *GetLeavesByIndexResponse) ProtoReflect() protoreflect.Message {
- mi := &file_trillian_log_api_proto_msgTypes[22]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetLeavesByIndexResponse.ProtoReflect.Descriptor instead.
-func (*GetLeavesByIndexResponse) Descriptor() ([]byte, []int) {
- return file_trillian_log_api_proto_rawDescGZIP(), []int{22}
-}
-
-func (x *GetLeavesByIndexResponse) GetLeaves() []*LogLeaf {
- if x != nil {
- return x.Leaves
- }
- return nil
-}
-
-func (x *GetLeavesByIndexResponse) GetSignedLogRoot() *SignedLogRoot {
- if x != nil {
- return x.SignedLogRoot
- }
- return nil
-}
-
type GetLeavesByRangeRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1451,7 +1332,7 @@ type GetLeavesByRangeRequest struct {
func (x *GetLeavesByRangeRequest) Reset() {
*x = GetLeavesByRangeRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_trillian_log_api_proto_msgTypes[23]
+ mi := &file_trillian_log_api_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1464,7 +1345,7 @@ func (x *GetLeavesByRangeRequest) String() string {
func (*GetLeavesByRangeRequest) ProtoMessage() {}
func (x *GetLeavesByRangeRequest) ProtoReflect() protoreflect.Message {
- mi := &file_trillian_log_api_proto_msgTypes[23]
+ mi := &file_trillian_log_api_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1477,7 +1358,7 @@ func (x *GetLeavesByRangeRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetLeavesByRangeRequest.ProtoReflect.Descriptor instead.
func (*GetLeavesByRangeRequest) Descriptor() ([]byte, []int) {
- return file_trillian_log_api_proto_rawDescGZIP(), []int{23}
+ return file_trillian_log_api_proto_rawDescGZIP(), []int{21}
}
func (x *GetLeavesByRangeRequest) GetLogId() int64 {
@@ -1524,7 +1405,7 @@ type GetLeavesByRangeResponse struct {
func (x *GetLeavesByRangeResponse) Reset() {
*x = GetLeavesByRangeResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_trillian_log_api_proto_msgTypes[24]
+ mi := &file_trillian_log_api_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1537,7 +1418,7 @@ func (x *GetLeavesByRangeResponse) String() string {
func (*GetLeavesByRangeResponse) ProtoMessage() {}
func (x *GetLeavesByRangeResponse) ProtoReflect() protoreflect.Message {
- mi := &file_trillian_log_api_proto_msgTypes[24]
+ mi := &file_trillian_log_api_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1550,7 +1431,7 @@ func (x *GetLeavesByRangeResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetLeavesByRangeResponse.ProtoReflect.Descriptor instead.
func (*GetLeavesByRangeResponse) Descriptor() ([]byte, []int) {
- return file_trillian_log_api_proto_rawDescGZIP(), []int{24}
+ return file_trillian_log_api_proto_rawDescGZIP(), []int{22}
}
func (x *GetLeavesByRangeResponse) GetLeaves() []*LogLeaf {
@@ -1592,7 +1473,7 @@ type QueuedLogLeaf struct {
func (x *QueuedLogLeaf) Reset() {
*x = QueuedLogLeaf{}
if protoimpl.UnsafeEnabled {
- mi := &file_trillian_log_api_proto_msgTypes[25]
+ mi := &file_trillian_log_api_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1605,7 +1486,7 @@ func (x *QueuedLogLeaf) String() string {
func (*QueuedLogLeaf) ProtoMessage() {}
func (x *QueuedLogLeaf) ProtoReflect() protoreflect.Message {
- mi := &file_trillian_log_api_proto_msgTypes[25]
+ mi := &file_trillian_log_api_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1618,7 +1499,7 @@ func (x *QueuedLogLeaf) ProtoReflect() protoreflect.Message {
// Deprecated: Use QueuedLogLeaf.ProtoReflect.Descriptor instead.
func (*QueuedLogLeaf) Descriptor() ([]byte, []int) {
- return file_trillian_log_api_proto_rawDescGZIP(), []int{25}
+ return file_trillian_log_api_proto_rawDescGZIP(), []int{23}
}
func (x *QueuedLogLeaf) GetLeaf() *LogLeaf {
@@ -1709,7 +1590,7 @@ type LogLeaf struct {
func (x *LogLeaf) Reset() {
*x = LogLeaf{}
if protoimpl.UnsafeEnabled {
- mi := &file_trillian_log_api_proto_msgTypes[26]
+ mi := &file_trillian_log_api_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1722,7 +1603,7 @@ func (x *LogLeaf) String() string {
func (*LogLeaf) ProtoMessage() {}
func (x *LogLeaf) ProtoReflect() protoreflect.Message {
- mi := &file_trillian_log_api_proto_msgTypes[26]
+ mi := &file_trillian_log_api_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1735,7 +1616,7 @@ func (x *LogLeaf) ProtoReflect() protoreflect.Message {
// Deprecated: Use LogLeaf.ProtoReflect.Descriptor instead.
func (*LogLeaf) Descriptor() ([]byte, []int) {
- return file_trillian_log_api_proto_rawDescGZIP(), []int{26}
+ return file_trillian_log_api_proto_rawDescGZIP(), []int{24}
}
func (x *LogLeaf) GetMerkleLeafHash() []byte {
@@ -1964,170 +1845,147 @@ var file_trillian_log_api_proto_rawDesc = []byte{
0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x51, 0x75,
0x65, 0x75, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x07, 0x72, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76,
- 0x65, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x75, 0x6c, 0x74, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76,
+ 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x15, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x66, 0x5f,
- 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x65, 0x61,
- 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2f, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65,
- 0x5f, 0x74, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x69, 0x6c,
- 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x08, 0x63,
- 0x68, 0x61, 0x72, 0x67, 0x65, 0x54, 0x6f, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4c,
- 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x18, 0x02,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e,
- 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12,
- 0x3f, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x6f,
- 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c,
- 0x69, 0x61, 0x6e, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x6f, 0x6f,
- 0x74, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x6f, 0x6f, 0x74,
- 0x22, 0x98, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79,
- 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06,
- 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x6f,
- 0x67, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64,
- 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49,
- 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x09, 0x63, 0x68,
- 0x61, 0x72, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
- 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x54,
- 0x6f, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x54, 0x6f, 0x22, 0x86, 0x01, 0x0a, 0x18,
- 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x76,
- 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c,
- 0x69, 0x61, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x06, 0x6c, 0x65, 0x61,
- 0x76, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x6f,
- 0x67, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74,
- 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4c, 0x6f,
- 0x67, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4c, 0x6f, 0x67,
- 0x52, 0x6f, 0x6f, 0x74, 0x22, 0x62, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x4c, 0x6f,
- 0x67, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x65, 0x61, 0x66, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x4c,
- 0x6f, 0x67, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x04, 0x6c, 0x65, 0x61, 0x66, 0x12, 0x2a, 0x0a, 0x06,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x07, 0x4c, 0x6f, 0x67,
- 0x4c, 0x65, 0x61, 0x66, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x6c,
- 0x65, 0x61, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e,
- 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x4c, 0x65, 0x61, 0x66, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d,
- 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0c, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a,
- 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0c, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a,
- 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x09, 0x6c, 0x65, 0x61, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2c, 0x0a, 0x12, 0x6c,
- 0x65, 0x61, 0x66, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x73,
- 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x66, 0x49, 0x64, 0x65,
- 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x43, 0x0a, 0x0f, 0x71, 0x75, 0x65,
- 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e,
- 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4b,
- 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
- 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
- 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xec, 0x0b, 0x0a, 0x0b,
- 0x54, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x6e, 0x0a, 0x09, 0x51,
- 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x1a, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c,
- 0x69, 0x61, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e,
- 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x62, 0x65,
- 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64,
- 0x7d, 0x2f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8d, 0x01, 0x0a, 0x10,
+ 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74,
+ 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74,
+ 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f,
+ 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x43, 0x68, 0x61,
+ 0x72, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x54, 0x6f, 0x22,
+ 0x86, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x52,
+ 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06,
+ 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
+ 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x61, 0x66, 0x52,
+ 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x65,
+ 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x17, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x53, 0x69, 0x67, 0x6e,
+ 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65,
+ 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0x62, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x75,
+ 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x65, 0x61,
+ 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69,
+ 0x61, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x04, 0x6c, 0x65, 0x61, 0x66,
+ 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd0, 0x02, 0x0a,
+ 0x07, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x72, 0x6b,
+ 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x0e, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x4c, 0x65, 0x61, 0x66, 0x48, 0x61,
+ 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x66, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12,
+ 0x2c, 0x0a, 0x12, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+ 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x6c, 0x65, 0x61,
+ 0x66, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x43, 0x0a,
+ 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x12, 0x4b, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f,
+ 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x69, 0x6e, 0x74,
+ 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32,
+ 0x8f, 0x0b, 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x12,
+ 0x6e, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x1a, 0x2e, 0x74,
+ 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61,
+ 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c,
+ 0x69, 0x61, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f,
+ 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f,
+ 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12,
+ 0x8d, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64,
+ 0x4c, 0x65, 0x61, 0x66, 0x12, 0x21, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e,
0x41, 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x4c, 0x65, 0x61, 0x66,
- 0x12, 0x21, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x53,
- 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x41,
- 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x4c, 0x65, 0x61, 0x66, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22,
- 0x27, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b,
- 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x3a, 0x73,
- 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0xa0, 0x01, 0x0a, 0x11,
- 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f,
- 0x66, 0x12, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74,
- 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69,
+ 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x4c,
+ 0x65, 0x61, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x2c, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f,
+ 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x65, 0x61, 0x76,
+ 0x65, 0x73, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x3a, 0x01, 0x2a, 0x12,
+ 0xa0, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e,
+ 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e,
0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
- 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67,
+ 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x74, 0x72, 0x69, 0x6c,
+ 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f,
+ 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
+ 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c,
+ 0x65, 0x61, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65,
+ 0x78, 0x7d, 0x3a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f,
+ 0x6f, 0x66, 0x12, 0xa7, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73,
+ 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28,
+ 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63,
+ 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x79, 0x48, 0x61, 0x73,
+ 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c,
+ 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e,
+ 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31,
+ 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f,
+ 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x3a, 0x69, 0x6e, 0x63, 0x6c, 0x75,
+ 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x94, 0x01, 0x0a,
+ 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x50,
+ 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x24, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e,
+ 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x72,
+ 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x72, 0x69,
+ 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74,
+ 0x65, 0x6e, 0x63, 0x79, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64,
+ 0x7d, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x70, 0x72,
+ 0x6f, 0x6f, 0x66, 0x12, 0x98, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73,
+ 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x27,
+ 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74,
+ 0x65, 0x73, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x6f, 0x6f, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69,
+ 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x69, 0x67, 0x6e,
+ 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64,
+ 0x7d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x3a, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x8d,
+ 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x6e, 0x64, 0x50, 0x72,
+ 0x6f, 0x6f, 0x66, 0x12, 0x21, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47,
+ 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61,
+ 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f,
+ 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67,
0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x65, 0x61, 0x76, 0x65,
- 0x73, 0x2f, 0x7b, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x3a, 0x69,
- 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0xa7,
- 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x50,
- 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x2e, 0x74, 0x72, 0x69,
- 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69,
- 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e,
- 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f,
- 0x66, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f,
- 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x3a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e,
- 0x5f, 0x62, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74,
- 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x72, 0x6f, 0x6f, 0x66,
- 0x12, 0x24, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43,
- 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61,
- 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79,
- 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f,
- 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x6f,
- 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12,
- 0x98, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x69, 0x67,
- 0x6e, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x27, 0x2e, 0x74, 0x72, 0x69,
- 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53,
- 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47,
- 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4c, 0x6f,
- 0x67, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f,
- 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x6f,
- 0x6f, 0x74, 0x73, 0x3a, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x8d, 0x01, 0x0a, 0x10, 0x47,
- 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12,
- 0x21, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65,
- 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a,
- 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c,
- 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x6c,
- 0x65, 0x61, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0x63, 0x0a, 0x07, 0x49, 0x6e,
- 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e,
- 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x19, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x4c,
- 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x1d, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6c, 0x6f, 0x67,
- 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x69, 0x6e, 0x69, 0x74, 0x12,
- 0x4c, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12, 0x1c,
- 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c,
- 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74,
- 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61,
- 0x76, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a,
- 0x12, 0x41, 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x4c, 0x65, 0x61,
- 0x76, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x41,
- 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x4c, 0x65, 0x61, 0x76, 0x65,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c,
- 0x69, 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64,
- 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x5b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x49,
- 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e,
- 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69,
- 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x49, 0x6e,
- 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a,
- 0x10, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67,
- 0x65, 0x12, 0x21, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74,
- 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e,
- 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x4e, 0x0a, 0x19, 0x63, 0x6f,
- 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61,
- 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x13, 0x54, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61,
- 0x6e, 0x4c, 0x6f, 0x67, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x1a,
- 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
- 0x65, 0x2f, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
+ 0x73, 0x2f, 0x7b, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0x63,
+ 0x0a, 0x07, 0x49, 0x6e, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x2e, 0x74, 0x72, 0x69, 0x6c,
+ 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x49,
+ 0x6e, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
+ 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x69,
+ 0x6e, 0x69, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x76,
+ 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x51, 0x75,
+ 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x1d, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x75,
+ 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x61, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65,
+ 0x64, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69,
+ 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x4c,
+ 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x74,
+ 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65,
+ 0x6e, 0x63, 0x65, 0x64, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65,
+ 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x21, 0x2e, 0x74, 0x72, 0x69, 0x6c, 0x6c,
+ 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x79, 0x52,
+ 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x72,
+ 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73,
+ 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x42, 0x4e, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x13,
+ 0x54, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x41, 0x70, 0x69, 0x50, 0x72,
+ 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x1a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61,
+ 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -2142,7 +2000,7 @@ func file_trillian_log_api_proto_rawDescGZIP() []byte {
return file_trillian_log_api_proto_rawDescData
}
-var file_trillian_log_api_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
+var file_trillian_log_api_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_trillian_log_api_proto_goTypes = []interface{}{
(*ChargeTo)(nil), // 0: trillian.ChargeTo
(*QueueLeafRequest)(nil), // 1: trillian.QueueLeafRequest
@@ -2165,87 +2023,80 @@ var file_trillian_log_api_proto_goTypes = []interface{}{
(*QueueLeavesResponse)(nil), // 18: trillian.QueueLeavesResponse
(*AddSequencedLeavesRequest)(nil), // 19: trillian.AddSequencedLeavesRequest
(*AddSequencedLeavesResponse)(nil), // 20: trillian.AddSequencedLeavesResponse
- (*GetLeavesByIndexRequest)(nil), // 21: trillian.GetLeavesByIndexRequest
- (*GetLeavesByIndexResponse)(nil), // 22: trillian.GetLeavesByIndexResponse
- (*GetLeavesByRangeRequest)(nil), // 23: trillian.GetLeavesByRangeRequest
- (*GetLeavesByRangeResponse)(nil), // 24: trillian.GetLeavesByRangeResponse
- (*QueuedLogLeaf)(nil), // 25: trillian.QueuedLogLeaf
- (*LogLeaf)(nil), // 26: trillian.LogLeaf
- (*Proof)(nil), // 27: trillian.Proof
- (*SignedLogRoot)(nil), // 28: trillian.SignedLogRoot
- (*status.Status)(nil), // 29: google.rpc.Status
- (*timestamp.Timestamp)(nil), // 30: google.protobuf.Timestamp
+ (*GetLeavesByRangeRequest)(nil), // 21: trillian.GetLeavesByRangeRequest
+ (*GetLeavesByRangeResponse)(nil), // 22: trillian.GetLeavesByRangeResponse
+ (*QueuedLogLeaf)(nil), // 23: trillian.QueuedLogLeaf
+ (*LogLeaf)(nil), // 24: trillian.LogLeaf
+ (*Proof)(nil), // 25: trillian.Proof
+ (*SignedLogRoot)(nil), // 26: trillian.SignedLogRoot
+ (*status.Status)(nil), // 27: google.rpc.Status
+ (*timestamp.Timestamp)(nil), // 28: google.protobuf.Timestamp
}
var file_trillian_log_api_proto_depIdxs = []int32{
- 26, // 0: trillian.QueueLeafRequest.leaf:type_name -> trillian.LogLeaf
+ 24, // 0: trillian.QueueLeafRequest.leaf:type_name -> trillian.LogLeaf
0, // 1: trillian.QueueLeafRequest.charge_to:type_name -> trillian.ChargeTo
- 25, // 2: trillian.QueueLeafResponse.queued_leaf:type_name -> trillian.QueuedLogLeaf
- 26, // 3: trillian.AddSequencedLeafRequest.leaf:type_name -> trillian.LogLeaf
+ 23, // 2: trillian.QueueLeafResponse.queued_leaf:type_name -> trillian.QueuedLogLeaf
+ 24, // 3: trillian.AddSequencedLeafRequest.leaf:type_name -> trillian.LogLeaf
0, // 4: trillian.AddSequencedLeafRequest.charge_to:type_name -> trillian.ChargeTo
- 25, // 5: trillian.AddSequencedLeafResponse.result:type_name -> trillian.QueuedLogLeaf
+ 23, // 5: trillian.AddSequencedLeafResponse.result:type_name -> trillian.QueuedLogLeaf
0, // 6: trillian.GetInclusionProofRequest.charge_to:type_name -> trillian.ChargeTo
- 27, // 7: trillian.GetInclusionProofResponse.proof:type_name -> trillian.Proof
- 28, // 8: trillian.GetInclusionProofResponse.signed_log_root:type_name -> trillian.SignedLogRoot
+ 25, // 7: trillian.GetInclusionProofResponse.proof:type_name -> trillian.Proof
+ 26, // 8: trillian.GetInclusionProofResponse.signed_log_root:type_name -> trillian.SignedLogRoot
0, // 9: trillian.GetInclusionProofByHashRequest.charge_to:type_name -> trillian.ChargeTo
- 27, // 10: trillian.GetInclusionProofByHashResponse.proof:type_name -> trillian.Proof
- 28, // 11: trillian.GetInclusionProofByHashResponse.signed_log_root:type_name -> trillian.SignedLogRoot
+ 25, // 10: trillian.GetInclusionProofByHashResponse.proof:type_name -> trillian.Proof
+ 26, // 11: trillian.GetInclusionProofByHashResponse.signed_log_root:type_name -> trillian.SignedLogRoot
0, // 12: trillian.GetConsistencyProofRequest.charge_to:type_name -> trillian.ChargeTo
- 27, // 13: trillian.GetConsistencyProofResponse.proof:type_name -> trillian.Proof
- 28, // 14: trillian.GetConsistencyProofResponse.signed_log_root:type_name -> trillian.SignedLogRoot
+ 25, // 13: trillian.GetConsistencyProofResponse.proof:type_name -> trillian.Proof
+ 26, // 14: trillian.GetConsistencyProofResponse.signed_log_root:type_name -> trillian.SignedLogRoot
0, // 15: trillian.GetLatestSignedLogRootRequest.charge_to:type_name -> trillian.ChargeTo
- 28, // 16: trillian.GetLatestSignedLogRootResponse.signed_log_root:type_name -> trillian.SignedLogRoot
- 27, // 17: trillian.GetLatestSignedLogRootResponse.proof:type_name -> trillian.Proof
+ 26, // 16: trillian.GetLatestSignedLogRootResponse.signed_log_root:type_name -> trillian.SignedLogRoot
+ 25, // 17: trillian.GetLatestSignedLogRootResponse.proof:type_name -> trillian.Proof
0, // 18: trillian.GetEntryAndProofRequest.charge_to:type_name -> trillian.ChargeTo
- 27, // 19: trillian.GetEntryAndProofResponse.proof:type_name -> trillian.Proof
- 26, // 20: trillian.GetEntryAndProofResponse.leaf:type_name -> trillian.LogLeaf
- 28, // 21: trillian.GetEntryAndProofResponse.signed_log_root:type_name -> trillian.SignedLogRoot
+ 25, // 19: trillian.GetEntryAndProofResponse.proof:type_name -> trillian.Proof
+ 24, // 20: trillian.GetEntryAndProofResponse.leaf:type_name -> trillian.LogLeaf
+ 26, // 21: trillian.GetEntryAndProofResponse.signed_log_root:type_name -> trillian.SignedLogRoot
0, // 22: trillian.InitLogRequest.charge_to:type_name -> trillian.ChargeTo
- 28, // 23: trillian.InitLogResponse.created:type_name -> trillian.SignedLogRoot
- 26, // 24: trillian.QueueLeavesRequest.leaves:type_name -> trillian.LogLeaf
+ 26, // 23: trillian.InitLogResponse.created:type_name -> trillian.SignedLogRoot
+ 24, // 24: trillian.QueueLeavesRequest.leaves:type_name -> trillian.LogLeaf
0, // 25: trillian.QueueLeavesRequest.charge_to:type_name -> trillian.ChargeTo
- 25, // 26: trillian.QueueLeavesResponse.queued_leaves:type_name -> trillian.QueuedLogLeaf
- 26, // 27: trillian.AddSequencedLeavesRequest.leaves:type_name -> trillian.LogLeaf
+ 23, // 26: trillian.QueueLeavesResponse.queued_leaves:type_name -> trillian.QueuedLogLeaf
+ 24, // 27: trillian.AddSequencedLeavesRequest.leaves:type_name -> trillian.LogLeaf
0, // 28: trillian.AddSequencedLeavesRequest.charge_to:type_name -> trillian.ChargeTo
- 25, // 29: trillian.AddSequencedLeavesResponse.results:type_name -> trillian.QueuedLogLeaf
- 0, // 30: trillian.GetLeavesByIndexRequest.charge_to:type_name -> trillian.ChargeTo
- 26, // 31: trillian.GetLeavesByIndexResponse.leaves:type_name -> trillian.LogLeaf
- 28, // 32: trillian.GetLeavesByIndexResponse.signed_log_root:type_name -> trillian.SignedLogRoot
- 0, // 33: trillian.GetLeavesByRangeRequest.charge_to:type_name -> trillian.ChargeTo
- 26, // 34: trillian.GetLeavesByRangeResponse.leaves:type_name -> trillian.LogLeaf
- 28, // 35: trillian.GetLeavesByRangeResponse.signed_log_root:type_name -> trillian.SignedLogRoot
- 26, // 36: trillian.QueuedLogLeaf.leaf:type_name -> trillian.LogLeaf
- 29, // 37: trillian.QueuedLogLeaf.status:type_name -> google.rpc.Status
- 30, // 38: trillian.LogLeaf.queue_timestamp:type_name -> google.protobuf.Timestamp
- 30, // 39: trillian.LogLeaf.integrate_timestamp:type_name -> google.protobuf.Timestamp
- 1, // 40: trillian.TrillianLog.QueueLeaf:input_type -> trillian.QueueLeafRequest
- 3, // 41: trillian.TrillianLog.AddSequencedLeaf:input_type -> trillian.AddSequencedLeafRequest
- 5, // 42: trillian.TrillianLog.GetInclusionProof:input_type -> trillian.GetInclusionProofRequest
- 7, // 43: trillian.TrillianLog.GetInclusionProofByHash:input_type -> trillian.GetInclusionProofByHashRequest
- 9, // 44: trillian.TrillianLog.GetConsistencyProof:input_type -> trillian.GetConsistencyProofRequest
- 11, // 45: trillian.TrillianLog.GetLatestSignedLogRoot:input_type -> trillian.GetLatestSignedLogRootRequest
- 13, // 46: trillian.TrillianLog.GetEntryAndProof:input_type -> trillian.GetEntryAndProofRequest
- 15, // 47: trillian.TrillianLog.InitLog:input_type -> trillian.InitLogRequest
- 17, // 48: trillian.TrillianLog.QueueLeaves:input_type -> trillian.QueueLeavesRequest
- 19, // 49: trillian.TrillianLog.AddSequencedLeaves:input_type -> trillian.AddSequencedLeavesRequest
- 21, // 50: trillian.TrillianLog.GetLeavesByIndex:input_type -> trillian.GetLeavesByIndexRequest
- 23, // 51: trillian.TrillianLog.GetLeavesByRange:input_type -> trillian.GetLeavesByRangeRequest
- 2, // 52: trillian.TrillianLog.QueueLeaf:output_type -> trillian.QueueLeafResponse
- 4, // 53: trillian.TrillianLog.AddSequencedLeaf:output_type -> trillian.AddSequencedLeafResponse
- 6, // 54: trillian.TrillianLog.GetInclusionProof:output_type -> trillian.GetInclusionProofResponse
- 8, // 55: trillian.TrillianLog.GetInclusionProofByHash:output_type -> trillian.GetInclusionProofByHashResponse
- 10, // 56: trillian.TrillianLog.GetConsistencyProof:output_type -> trillian.GetConsistencyProofResponse
- 12, // 57: trillian.TrillianLog.GetLatestSignedLogRoot:output_type -> trillian.GetLatestSignedLogRootResponse
- 14, // 58: trillian.TrillianLog.GetEntryAndProof:output_type -> trillian.GetEntryAndProofResponse
- 16, // 59: trillian.TrillianLog.InitLog:output_type -> trillian.InitLogResponse
- 18, // 60: trillian.TrillianLog.QueueLeaves:output_type -> trillian.QueueLeavesResponse
- 20, // 61: trillian.TrillianLog.AddSequencedLeaves:output_type -> trillian.AddSequencedLeavesResponse
- 22, // 62: trillian.TrillianLog.GetLeavesByIndex:output_type -> trillian.GetLeavesByIndexResponse
- 24, // 63: trillian.TrillianLog.GetLeavesByRange:output_type -> trillian.GetLeavesByRangeResponse
- 52, // [52:64] is the sub-list for method output_type
- 40, // [40:52] is the sub-list for method input_type
- 40, // [40:40] is the sub-list for extension type_name
- 40, // [40:40] is the sub-list for extension extendee
- 0, // [0:40] is the sub-list for field type_name
+ 23, // 29: trillian.AddSequencedLeavesResponse.results:type_name -> trillian.QueuedLogLeaf
+ 0, // 30: trillian.GetLeavesByRangeRequest.charge_to:type_name -> trillian.ChargeTo
+ 24, // 31: trillian.GetLeavesByRangeResponse.leaves:type_name -> trillian.LogLeaf
+ 26, // 32: trillian.GetLeavesByRangeResponse.signed_log_root:type_name -> trillian.SignedLogRoot
+ 24, // 33: trillian.QueuedLogLeaf.leaf:type_name -> trillian.LogLeaf
+ 27, // 34: trillian.QueuedLogLeaf.status:type_name -> google.rpc.Status
+ 28, // 35: trillian.LogLeaf.queue_timestamp:type_name -> google.protobuf.Timestamp
+ 28, // 36: trillian.LogLeaf.integrate_timestamp:type_name -> google.protobuf.Timestamp
+ 1, // 37: trillian.TrillianLog.QueueLeaf:input_type -> trillian.QueueLeafRequest
+ 3, // 38: trillian.TrillianLog.AddSequencedLeaf:input_type -> trillian.AddSequencedLeafRequest
+ 5, // 39: trillian.TrillianLog.GetInclusionProof:input_type -> trillian.GetInclusionProofRequest
+ 7, // 40: trillian.TrillianLog.GetInclusionProofByHash:input_type -> trillian.GetInclusionProofByHashRequest
+ 9, // 41: trillian.TrillianLog.GetConsistencyProof:input_type -> trillian.GetConsistencyProofRequest
+ 11, // 42: trillian.TrillianLog.GetLatestSignedLogRoot:input_type -> trillian.GetLatestSignedLogRootRequest
+ 13, // 43: trillian.TrillianLog.GetEntryAndProof:input_type -> trillian.GetEntryAndProofRequest
+ 15, // 44: trillian.TrillianLog.InitLog:input_type -> trillian.InitLogRequest
+ 17, // 45: trillian.TrillianLog.QueueLeaves:input_type -> trillian.QueueLeavesRequest
+ 19, // 46: trillian.TrillianLog.AddSequencedLeaves:input_type -> trillian.AddSequencedLeavesRequest
+ 21, // 47: trillian.TrillianLog.GetLeavesByRange:input_type -> trillian.GetLeavesByRangeRequest
+ 2, // 48: trillian.TrillianLog.QueueLeaf:output_type -> trillian.QueueLeafResponse
+ 4, // 49: trillian.TrillianLog.AddSequencedLeaf:output_type -> trillian.AddSequencedLeafResponse
+ 6, // 50: trillian.TrillianLog.GetInclusionProof:output_type -> trillian.GetInclusionProofResponse
+ 8, // 51: trillian.TrillianLog.GetInclusionProofByHash:output_type -> trillian.GetInclusionProofByHashResponse
+ 10, // 52: trillian.TrillianLog.GetConsistencyProof:output_type -> trillian.GetConsistencyProofResponse
+ 12, // 53: trillian.TrillianLog.GetLatestSignedLogRoot:output_type -> trillian.GetLatestSignedLogRootResponse
+ 14, // 54: trillian.TrillianLog.GetEntryAndProof:output_type -> trillian.GetEntryAndProofResponse
+ 16, // 55: trillian.TrillianLog.InitLog:output_type -> trillian.InitLogResponse
+ 18, // 56: trillian.TrillianLog.QueueLeaves:output_type -> trillian.QueueLeavesResponse
+ 20, // 57: trillian.TrillianLog.AddSequencedLeaves:output_type -> trillian.AddSequencedLeavesResponse
+ 22, // 58: trillian.TrillianLog.GetLeavesByRange:output_type -> trillian.GetLeavesByRangeResponse
+ 48, // [48:59] is the sub-list for method output_type
+ 37, // [37:48] is the sub-list for method input_type
+ 37, // [37:37] is the sub-list for extension type_name
+ 37, // [37:37] is the sub-list for extension extendee
+ 0, // [0:37] is the sub-list for field type_name
}
func init() { file_trillian_log_api_proto_init() }
@@ -2508,30 +2359,6 @@ func file_trillian_log_api_proto_init() {
}
}
file_trillian_log_api_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetLeavesByIndexRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_trillian_log_api_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetLeavesByIndexResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_trillian_log_api_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetLeavesByRangeRequest); i {
case 0:
return &v.state
@@ -2543,7 +2370,7 @@ func file_trillian_log_api_proto_init() {
return nil
}
}
- file_trillian_log_api_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
+ file_trillian_log_api_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetLeavesByRangeResponse); i {
case 0:
return &v.state
@@ -2555,7 +2382,7 @@ func file_trillian_log_api_proto_init() {
return nil
}
}
- file_trillian_log_api_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
+ file_trillian_log_api_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*QueuedLogLeaf); i {
case 0:
return &v.state
@@ -2567,7 +2394,7 @@ func file_trillian_log_api_proto_init() {
return nil
}
}
- file_trillian_log_api_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
+ file_trillian_log_api_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LogLeaf); i {
case 0:
return &v.state
@@ -2586,7 +2413,7 @@ func file_trillian_log_api_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_trillian_log_api_proto_rawDesc,
NumEnums: 0,
- NumMessages: 27,
+ NumMessages: 25,
NumExtensions: 0,
NumServices: 1,
},
@@ -2659,9 +2486,6 @@ type TrillianLogClient interface {
// AddSequencedLeaves adds a batch of leaves with assigned sequence numbers
// to a pre-ordered log. The indices of the provided leaves must be contiguous.
AddSequencedLeaves(ctx context.Context, in *AddSequencedLeavesRequest, opts ...grpc.CallOption) (*AddSequencedLeavesResponse, error)
- // GetLeavesByIndex returns a batch of leaves whose leaf indices are provided
- // in the request.
- GetLeavesByIndex(ctx context.Context, in *GetLeavesByIndexRequest, opts ...grpc.CallOption) (*GetLeavesByIndexResponse, error)
// GetLeavesByRange returns a batch of leaves whose leaf indices are in a
// sequential range.
GetLeavesByRange(ctx context.Context, in *GetLeavesByRangeRequest, opts ...grpc.CallOption) (*GetLeavesByRangeResponse, error)
@@ -2765,15 +2589,6 @@ func (c *trillianLogClient) AddSequencedLeaves(ctx context.Context, in *AddSeque
return out, nil
}
-func (c *trillianLogClient) GetLeavesByIndex(ctx context.Context, in *GetLeavesByIndexRequest, opts ...grpc.CallOption) (*GetLeavesByIndexResponse, error) {
- out := new(GetLeavesByIndexResponse)
- err := c.cc.Invoke(ctx, "/trillian.TrillianLog/GetLeavesByIndex", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
func (c *trillianLogClient) GetLeavesByRange(ctx context.Context, in *GetLeavesByRangeRequest, opts ...grpc.CallOption) (*GetLeavesByRangeResponse, error) {
out := new(GetLeavesByRangeResponse)
err := c.cc.Invoke(ctx, "/trillian.TrillianLog/GetLeavesByRange", in, out, opts...)
@@ -2832,9 +2647,6 @@ type TrillianLogServer interface {
// AddSequencedLeaves adds a batch of leaves with assigned sequence numbers
// to a pre-ordered log. The indices of the provided leaves must be contiguous.
AddSequencedLeaves(context.Context, *AddSequencedLeavesRequest) (*AddSequencedLeavesResponse, error)
- // GetLeavesByIndex returns a batch of leaves whose leaf indices are provided
- // in the request.
- GetLeavesByIndex(context.Context, *GetLeavesByIndexRequest) (*GetLeavesByIndexResponse, error)
// GetLeavesByRange returns a batch of leaves whose leaf indices are in a
// sequential range.
GetLeavesByRange(context.Context, *GetLeavesByRangeRequest) (*GetLeavesByRangeResponse, error)
@@ -2874,9 +2686,6 @@ func (*UnimplementedTrillianLogServer) QueueLeaves(context.Context, *QueueLeaves
func (*UnimplementedTrillianLogServer) AddSequencedLeaves(context.Context, *AddSequencedLeavesRequest) (*AddSequencedLeavesResponse, error) {
return nil, status1.Errorf(codes.Unimplemented, "method AddSequencedLeaves not implemented")
}
-func (*UnimplementedTrillianLogServer) GetLeavesByIndex(context.Context, *GetLeavesByIndexRequest) (*GetLeavesByIndexResponse, error) {
- return nil, status1.Errorf(codes.Unimplemented, "method GetLeavesByIndex not implemented")
-}
func (*UnimplementedTrillianLogServer) GetLeavesByRange(context.Context, *GetLeavesByRangeRequest) (*GetLeavesByRangeResponse, error) {
return nil, status1.Errorf(codes.Unimplemented, "method GetLeavesByRange not implemented")
}
@@ -3065,24 +2874,6 @@ func _TrillianLog_AddSequencedLeaves_Handler(srv interface{}, ctx context.Contex
return interceptor(ctx, in, info, handler)
}
-func _TrillianLog_GetLeavesByIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(GetLeavesByIndexRequest)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(TrillianLogServer).GetLeavesByIndex(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/trillian.TrillianLog/GetLeavesByIndex",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(TrillianLogServer).GetLeavesByIndex(ctx, req.(*GetLeavesByIndexRequest))
- }
- return interceptor(ctx, in, info, handler)
-}
-
func _TrillianLog_GetLeavesByRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetLeavesByRangeRequest)
if err := dec(in); err != nil {
@@ -3145,10 +2936,6 @@ var _TrillianLog_serviceDesc = grpc.ServiceDesc{
MethodName: "AddSequencedLeaves",
Handler: _TrillianLog_AddSequencedLeaves_Handler,
},
- {
- MethodName: "GetLeavesByIndex",
- Handler: _TrillianLog_GetLeavesByIndex_Handler,
- },
{
MethodName: "GetLeavesByRange",
Handler: _TrillianLog_GetLeavesByRange_Handler,
diff --git a/trillian_log_api.proto b/trillian_log_api.proto
index 1dcb3e9f9f..1a87bdf4b0 100644
--- a/trillian_log_api.proto
+++ b/trillian_log_api.proto
@@ -155,11 +155,6 @@ service TrillianLog {
rpc AddSequencedLeaves(AddSequencedLeavesRequest)
returns (AddSequencedLeavesResponse) {}
- // GetLeavesByIndex returns a batch of leaves whose leaf indices are provided
- // in the request.
- rpc GetLeavesByIndex(GetLeavesByIndexRequest)
- returns (GetLeavesByIndexResponse) {}
-
// GetLeavesByRange returns a batch of leaves whose leaf indices are in a
// sequential range.
rpc GetLeavesByRange(GetLeavesByRangeRequest)
@@ -325,18 +320,6 @@ message AddSequencedLeavesResponse {
repeated QueuedLogLeaf results = 2;
}
-message GetLeavesByIndexRequest {
- int64 log_id = 1;
- repeated int64 leaf_index = 2;
- ChargeTo charge_to = 5;
-}
-
-message GetLeavesByIndexResponse {
- // TODO(gbelvin): Response syntax does not allow for some requested leaves to be available, and some not (but using QueuedLogLeaf might)
- repeated LogLeaf leaves = 2;
- SignedLogRoot signed_log_root = 3;
-}
-
message GetLeavesByRangeRequest {
int64 log_id = 1;
int64 start_index = 2;