|  |  | 
|  | // Copyright 2015, Google Inc. | 
|  | // All rights reserved. | 
|  | // | 
|  | // Redistribution and use in source and binary forms, with or without | 
|  | // modification, are permitted provided that the following conditions are | 
|  | // met: | 
|  | // | 
|  | //     * Redistributions of source code must retain the above copyright | 
|  | // notice, this list of conditions and the following disclaimer. | 
|  | //     * Redistributions in binary form must reproduce the above | 
|  | // copyright notice, this list of conditions and the following disclaimer | 
|  | // in the documentation and/or other materials provided with the | 
|  | // distribution. | 
|  | //     * Neither the name of Google Inc. nor the names of its | 
|  | // contributors may be used to endorse or promote products derived from | 
|  | // this software without specific prior written permission. | 
|  | // | 
|  | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 
|  | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 
|  | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 
|  | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 
|  | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
|  | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
|  | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
|  | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
|  | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
|  | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
|  | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
|  |  | 
|  | // Message definitions to be used by integration test service definitions. | 
|  |  | 
|  | syntax = "proto3"; | 
|  |  | 
|  | package grpc.testing; | 
|  |  | 
|  | // The type of payload that should be returned. | 
|  | enum PayloadType { | 
|  | // Compressable text format. | 
|  | COMPRESSABLE = 0; | 
|  |  | 
|  | // Uncompressable binary format. | 
|  | UNCOMPRESSABLE = 1; | 
|  |  | 
|  | // Randomly chosen from all other formats defined in this enum. | 
|  | RANDOM = 2; | 
|  | } | 
|  |  | 
|  | // Compression algorithms | 
|  | enum CompressionType { | 
|  | // No compression | 
|  | NONE = 0; | 
|  | GZIP = 1; | 
|  | DEFLATE = 2; | 
|  | } | 
|  |  | 
|  | // A block of data, to simply increase gRPC message size. | 
|  | message Payload { | 
|  | // The type of data in body. | 
|  | PayloadType type = 1; | 
|  | // Primary contents of payload. | 
|  | bytes body = 2; | 
|  | } | 
|  |  | 
|  | // A protobuf representation for grpc status. This is used by test | 
|  | // clients to specify a status that the server should attempt to return. | 
|  | message EchoStatus { | 
|  | int32 code = 1; | 
|  | string message = 2; | 
|  | } | 
|  |  | 
|  | // Unary request. | 
|  | message SimpleRequest { | 
|  | // Desired payload type in the response from the server. | 
|  | // If response_type is RANDOM, server randomly chooses one from other formats. | 
|  | PayloadType response_type = 1; | 
|  |  | 
|  | // Desired payload size in the response from the server. | 
|  | // If response_type is COMPRESSABLE, this denotes the size before compression. | 
|  | int32 response_size = 2; | 
|  |  | 
|  | // Optional input payload sent along with the request. | 
|  | Payload payload = 3; | 
|  |  | 
|  | // Whether SimpleResponse should include username. | 
|  | bool fill_username = 4; | 
|  |  | 
|  | // Whether SimpleResponse should include OAuth scope. | 
|  | bool fill_oauth_scope = 5; | 
|  |  | 
|  | // Compression algorithm to be used by the server for the response (stream) | 
|  | CompressionType response_compression = 6; | 
|  |  | 
|  | // Whether server should return a given status | 
|  | EchoStatus response_status = 7; | 
|  | } | 
|  |  | 
|  | // Unary response, as configured by the request. | 
|  | message SimpleResponse { | 
|  | // Payload to increase message size. | 
|  | Payload payload = 1; | 
|  | // The user the request came from, for verifying authentication was | 
|  | // successful when the client expected it. | 
|  | string username = 2; | 
|  | // OAuth scope. | 
|  | string oauth_scope = 3; | 
|  | } | 
|  |  | 
|  | // Client-streaming request. | 
|  | message StreamingInputCallRequest { | 
|  | // Optional input payload sent along with the request. | 
|  | Payload payload = 1; | 
|  |  | 
|  | // Not expecting any payload from the response. | 
|  | } | 
|  |  | 
|  | // Client-streaming response. | 
|  | message StreamingInputCallResponse { | 
|  | // Aggregated size of payloads received from the client. | 
|  | int32 aggregated_payload_size = 1; | 
|  | } | 
|  |  | 
|  | // Configuration for a particular response. | 
|  | message ResponseParameters { | 
|  | // Desired payload sizes in responses from the server. | 
|  | // If response_type is COMPRESSABLE, this denotes the size before compression. | 
|  | int32 size = 1; | 
|  |  | 
|  | // Desired interval between consecutive responses in the response stream in | 
|  | // microseconds. | 
|  | int32 interval_us = 2; | 
|  | } | 
|  |  | 
|  | // Server-streaming request. | 
|  | message StreamingOutputCallRequest { | 
|  | // Desired payload type in the response from the server. | 
|  | // If response_type is RANDOM, the payload from each response in the stream | 
|  | // might be of different types. This is to simulate a mixed type of payload | 
|  | // stream. | 
|  | PayloadType response_type = 1; | 
|  |  | 
|  | // Configuration for each expected response message. | 
|  | repeated ResponseParameters response_parameters = 2; | 
|  |  | 
|  | // Optional input payload sent along with the request. | 
|  | Payload payload = 3; | 
|  |  | 
|  | // Compression algorithm to be used by the server for the response (stream) | 
|  | CompressionType response_compression = 6; | 
|  |  | 
|  | // Whether server should return a given status | 
|  | EchoStatus response_status = 7; | 
|  | } | 
|  |  | 
|  | // Server-streaming response, as configured by the request and parameters. | 
|  | message StreamingOutputCallResponse { | 
|  | // Payload to increase response size. | 
|  | Payload payload = 1; | 
|  | } | 
|  |  | 
|  | // For reconnect interop test only. | 
|  | // Server tells client whether its reconnects are following the spec and the | 
|  | // reconnect backoffs it saw. | 
|  | message ReconnectInfo { | 
|  | bool passed = 1; | 
|  | repeated int32 backoff_ms = 2; | 
|  | } |