• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2015 gRPC authors.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Message definitions to be used by integration test service definitions.
16
17syntax = "proto3";
18
19package grpc.testing;
20
21option objc_class_prefix = "RMT";
22
23// The type of payload that should be returned.
24enum PayloadType {
25  // Compressable text format.
26  COMPRESSABLE = 0;
27
28  // Uncompressable binary format.
29  UNCOMPRESSABLE = 1;
30
31  // Randomly chosen from all other formats defined in this enum.
32  RANDOM = 2;
33}
34
35// A block of data, to simply increase gRPC message size.
36message Payload {
37  // The type of data in body.
38  PayloadType type = 1;
39  // Primary contents of payload.
40  bytes body = 2;
41}
42
43// Unary request.
44message SimpleRequest {
45  // Desired payload type in the response from the server.
46  // If response_type is RANDOM, server randomly chooses one from other formats.
47  PayloadType response_type = 1;
48
49  // Desired payload size in the response from the server.
50  // If response_type is COMPRESSABLE, this denotes the size before compression.
51  int32 response_size = 2;
52
53  // Optional input payload sent along with the request.
54  Payload payload = 3;
55
56  // Whether SimpleResponse should include username.
57  bool fill_username = 4;
58
59  // Whether SimpleResponse should include OAuth scope.
60  bool fill_oauth_scope = 5;
61}
62
63// Unary response, as configured by the request.
64message SimpleResponse {
65  // Payload to increase message size.
66  Payload payload = 1;
67  // The user the request came from, for verifying authentication was
68  // successful when the client expected it.
69  string username = 2;
70  // OAuth scope.
71  string oauth_scope = 3;
72}
73
74// Client-streaming request.
75message StreamingInputCallRequest {
76  // Optional input payload sent along with the request.
77  Payload payload = 1;
78
79  // Not expecting any payload from the response.
80}
81
82// Client-streaming response.
83message StreamingInputCallResponse {
84  // Aggregated size of payloads received from the client.
85  int32 aggregated_payload_size = 1;
86}
87
88// Configuration for a particular response.
89message ResponseParameters {
90  // Desired payload sizes in responses from the server.
91  // If response_type is COMPRESSABLE, this denotes the size before compression.
92  int32 size = 1;
93
94  // Desired interval between consecutive responses in the response stream in
95  // microseconds.
96  int32 interval_us = 2;
97}
98
99// Server-streaming request.
100message StreamingOutputCallRequest {
101  // Desired payload type in the response from the server.
102  // If response_type is RANDOM, the payload from each response in the stream
103  // might be of different types. This is to simulate a mixed type of payload
104  // stream.
105  PayloadType response_type = 1;
106
107  // Configuration for each expected response message.
108  repeated ResponseParameters response_parameters = 2;
109
110  // Optional input payload sent along with the request.
111  Payload payload = 3;
112}
113
114// Server-streaming response, as configured by the request and parameters.
115message StreamingOutputCallResponse {
116  // Payload to increase response size.
117  Payload payload = 1;
118}
119