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