xref: /aosp_15_r20/external/grpc-grpc/src/proto/grpc/testing/test.proto (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker
2*cc02d7e2SAndroid Build Coastguard Worker// Copyright 2015-2016 gRPC authors.
3*cc02d7e2SAndroid Build Coastguard Worker//
4*cc02d7e2SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*cc02d7e2SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*cc02d7e2SAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*cc02d7e2SAndroid Build Coastguard Worker//
8*cc02d7e2SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
9*cc02d7e2SAndroid Build Coastguard Worker//
10*cc02d7e2SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*cc02d7e2SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*cc02d7e2SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*cc02d7e2SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*cc02d7e2SAndroid Build Coastguard Worker// limitations under the License.
15*cc02d7e2SAndroid Build Coastguard Worker
16*cc02d7e2SAndroid Build Coastguard Worker// An integration test service that covers all the method signature permutations
17*cc02d7e2SAndroid Build Coastguard Worker// of unary/streaming requests/responses.
18*cc02d7e2SAndroid Build Coastguard Worker
19*cc02d7e2SAndroid Build Coastguard Workersyntax = "proto3";
20*cc02d7e2SAndroid Build Coastguard Worker
21*cc02d7e2SAndroid Build Coastguard Workerimport "src/proto/grpc/testing/empty.proto";
22*cc02d7e2SAndroid Build Coastguard Workerimport "src/proto/grpc/testing/messages.proto";
23*cc02d7e2SAndroid Build Coastguard Worker
24*cc02d7e2SAndroid Build Coastguard Workerpackage grpc.testing;
25*cc02d7e2SAndroid Build Coastguard Worker
26*cc02d7e2SAndroid Build Coastguard Workeroption java_package = "io.grpc.testing.integration";
27*cc02d7e2SAndroid Build Coastguard Worker
28*cc02d7e2SAndroid Build Coastguard Worker// A simple service to test the various types of RPCs and experiment with
29*cc02d7e2SAndroid Build Coastguard Worker// performance with various types of payload.
30*cc02d7e2SAndroid Build Coastguard Workerservice TestService {
31*cc02d7e2SAndroid Build Coastguard Worker  // One empty request followed by one empty response.
32*cc02d7e2SAndroid Build Coastguard Worker  rpc EmptyCall(grpc.testing.Empty) returns (grpc.testing.Empty);
33*cc02d7e2SAndroid Build Coastguard Worker
34*cc02d7e2SAndroid Build Coastguard Worker  // One request followed by one response.
35*cc02d7e2SAndroid Build Coastguard Worker  rpc UnaryCall(SimpleRequest) returns (SimpleResponse);
36*cc02d7e2SAndroid Build Coastguard Worker
37*cc02d7e2SAndroid Build Coastguard Worker  // One request followed by one response. Response has cache control
38*cc02d7e2SAndroid Build Coastguard Worker  // headers set such that a caching HTTP proxy (such as GFE) can
39*cc02d7e2SAndroid Build Coastguard Worker  // satisfy subsequent requests.
40*cc02d7e2SAndroid Build Coastguard Worker  rpc CacheableUnaryCall(SimpleRequest) returns (SimpleResponse);
41*cc02d7e2SAndroid Build Coastguard Worker
42*cc02d7e2SAndroid Build Coastguard Worker  // One request followed by a sequence of responses (streamed download).
43*cc02d7e2SAndroid Build Coastguard Worker  // The server returns the payload with client desired type and sizes.
44*cc02d7e2SAndroid Build Coastguard Worker  rpc StreamingOutputCall(StreamingOutputCallRequest)
45*cc02d7e2SAndroid Build Coastguard Worker      returns (stream StreamingOutputCallResponse);
46*cc02d7e2SAndroid Build Coastguard Worker
47*cc02d7e2SAndroid Build Coastguard Worker  // A sequence of requests followed by one response (streamed upload).
48*cc02d7e2SAndroid Build Coastguard Worker  // The server returns the aggregated size of client payload as the result.
49*cc02d7e2SAndroid Build Coastguard Worker  rpc StreamingInputCall(stream StreamingInputCallRequest)
50*cc02d7e2SAndroid Build Coastguard Worker      returns (StreamingInputCallResponse);
51*cc02d7e2SAndroid Build Coastguard Worker
52*cc02d7e2SAndroid Build Coastguard Worker  // A sequence of requests with each request served by the server immediately.
53*cc02d7e2SAndroid Build Coastguard Worker  // As one request could lead to multiple responses, this interface
54*cc02d7e2SAndroid Build Coastguard Worker  // demonstrates the idea of full duplexing.
55*cc02d7e2SAndroid Build Coastguard Worker  rpc FullDuplexCall(stream StreamingOutputCallRequest)
56*cc02d7e2SAndroid Build Coastguard Worker      returns (stream StreamingOutputCallResponse);
57*cc02d7e2SAndroid Build Coastguard Worker
58*cc02d7e2SAndroid Build Coastguard Worker  // A sequence of requests followed by a sequence of responses.
59*cc02d7e2SAndroid Build Coastguard Worker  // The server buffers all the client requests and then serves them in order. A
60*cc02d7e2SAndroid Build Coastguard Worker  // stream of responses are returned to the client when the server starts with
61*cc02d7e2SAndroid Build Coastguard Worker  // first request.
62*cc02d7e2SAndroid Build Coastguard Worker  rpc HalfDuplexCall(stream StreamingOutputCallRequest)
63*cc02d7e2SAndroid Build Coastguard Worker      returns (stream StreamingOutputCallResponse);
64*cc02d7e2SAndroid Build Coastguard Worker
65*cc02d7e2SAndroid Build Coastguard Worker  // The test server will not implement this method. It will be used
66*cc02d7e2SAndroid Build Coastguard Worker  // to test the behavior when clients call unimplemented methods.
67*cc02d7e2SAndroid Build Coastguard Worker  rpc UnimplementedCall(grpc.testing.Empty) returns (grpc.testing.Empty);
68*cc02d7e2SAndroid Build Coastguard Worker}
69*cc02d7e2SAndroid Build Coastguard Worker
70*cc02d7e2SAndroid Build Coastguard Worker// A simple service NOT implemented at servers so clients can test for
71*cc02d7e2SAndroid Build Coastguard Worker// that case.
72*cc02d7e2SAndroid Build Coastguard Workerservice UnimplementedService {
73*cc02d7e2SAndroid Build Coastguard Worker  // A call that no server should implement
74*cc02d7e2SAndroid Build Coastguard Worker  rpc UnimplementedCall(grpc.testing.Empty) returns (grpc.testing.Empty);
75*cc02d7e2SAndroid Build Coastguard Worker}
76*cc02d7e2SAndroid Build Coastguard Worker
77*cc02d7e2SAndroid Build Coastguard Worker// A service used to control reconnect server.
78*cc02d7e2SAndroid Build Coastguard Workerservice ReconnectService {
79*cc02d7e2SAndroid Build Coastguard Worker  rpc Start(grpc.testing.ReconnectParams) returns (grpc.testing.Empty);
80*cc02d7e2SAndroid Build Coastguard Worker  rpc Stop(grpc.testing.Empty) returns (grpc.testing.ReconnectInfo);
81*cc02d7e2SAndroid Build Coastguard Worker}
82*cc02d7e2SAndroid Build Coastguard Worker
83*cc02d7e2SAndroid Build Coastguard Worker// A service used to obtain stats for verifying LB behavior.
84*cc02d7e2SAndroid Build Coastguard Workerservice LoadBalancerStatsService {
85*cc02d7e2SAndroid Build Coastguard Worker  // Gets the backend distribution for RPCs sent by a test client.
86*cc02d7e2SAndroid Build Coastguard Worker  rpc GetClientStats(LoadBalancerStatsRequest)
87*cc02d7e2SAndroid Build Coastguard Worker      returns (LoadBalancerStatsResponse) {}
88*cc02d7e2SAndroid Build Coastguard Worker
89*cc02d7e2SAndroid Build Coastguard Worker  // Gets the accumulated stats for RPCs sent by a test client.
90*cc02d7e2SAndroid Build Coastguard Worker  rpc GetClientAccumulatedStats(LoadBalancerAccumulatedStatsRequest)
91*cc02d7e2SAndroid Build Coastguard Worker      returns (LoadBalancerAccumulatedStatsResponse) {}
92*cc02d7e2SAndroid Build Coastguard Worker}
93*cc02d7e2SAndroid Build Coastguard Worker
94*cc02d7e2SAndroid Build Coastguard Worker// Hook service. Used to keep Kubernetes from shutting the pod down.
95*cc02d7e2SAndroid Build Coastguard Workerservice HookService {
96*cc02d7e2SAndroid Build Coastguard Worker  // Sends a request that will "hang" until the return status is set by a call
97*cc02d7e2SAndroid Build Coastguard Worker  // to a SetReturnStatus
98*cc02d7e2SAndroid Build Coastguard Worker  rpc Hook(grpc.testing.Empty) returns (grpc.testing.Empty);
99*cc02d7e2SAndroid Build Coastguard Worker  // Sets a return status for pending and upcoming calls to Hook
100*cc02d7e2SAndroid Build Coastguard Worker  rpc SetReturnStatus(SetReturnStatusRequest) returns (grpc.testing.Empty);
101*cc02d7e2SAndroid Build Coastguard Worker  // Clears the return status. Incoming calls to Hook will "hang"
102*cc02d7e2SAndroid Build Coastguard Worker  rpc ClearReturnStatus(grpc.testing.Empty) returns (grpc.testing.Empty);
103*cc02d7e2SAndroid Build Coastguard Worker}
104*cc02d7e2SAndroid Build Coastguard Worker
105*cc02d7e2SAndroid Build Coastguard Worker// A service to remotely control health status of an xDS test server.
106*cc02d7e2SAndroid Build Coastguard Workerservice XdsUpdateHealthService {
107*cc02d7e2SAndroid Build Coastguard Worker  rpc SetServing(grpc.testing.Empty) returns (grpc.testing.Empty);
108*cc02d7e2SAndroid Build Coastguard Worker  rpc SetNotServing(grpc.testing.Empty) returns (grpc.testing.Empty);
109*cc02d7e2SAndroid Build Coastguard Worker  rpc SendHookRequest(HookRequest) returns (HookResponse);
110*cc02d7e2SAndroid Build Coastguard Worker}
111*cc02d7e2SAndroid Build Coastguard Worker
112*cc02d7e2SAndroid Build Coastguard Worker// A service to dynamically update the configuration of an xDS test client.
113*cc02d7e2SAndroid Build Coastguard Workerservice XdsUpdateClientConfigureService {
114*cc02d7e2SAndroid Build Coastguard Worker  // Update the tes client's configuration.
115*cc02d7e2SAndroid Build Coastguard Worker  rpc Configure(ClientConfigureRequest) returns (ClientConfigureResponse);
116*cc02d7e2SAndroid Build Coastguard Worker}
117