1// Copyright 2022 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 15syntax = "proto3"; 16 17import "google/protobuf/wrappers.proto"; 18 19package proto; 20 21service EchoTestService { 22 rpc Echo (EchoRequest) returns (EchoResponse); 23 rpc ForwardEcho (ForwardEchoRequest) returns (ForwardEchoResponse); 24} 25 26message EchoRequest { 27 string message = 1; 28} 29 30message EchoResponse { 31 string message = 1; 32} 33 34message Header { 35 string key = 1; 36 string value = 2; 37} 38 39message ForwardEchoRequest { 40 int32 count = 1; 41 int32 qps = 2; 42 int64 timeout_micros = 3; 43 string url = 4; 44 repeated Header headers = 5; 45 string message = 6; 46 // Method for the request. Valid only for HTTP 47 string method = 9; 48 // If true, requests will be sent using h2c prior knowledge 49 bool http2 = 7; 50 // If true, requests will be sent using http3 51 bool http3 = 15; 52 // If true, requests will not be sent until magic string is received 53 bool serverFirst = 8; 54 // If true, 301 redirects will be followed 55 bool followRedirects = 14; 56 // If non-empty, make the request with the corresponding cert and key. 57 string cert = 10; 58 string key = 11; 59 // If non-empty, verify the server CA 60 string caCert = 12; 61 // If non-empty, make the request with the corresponding cert and key file. 62 string certFile = 16; 63 string keyFile = 17; 64 // If non-empty, verify the server CA with the ca cert file. 65 string caCertFile = 18; 66 // Skip verifying peer's certificate. 67 bool insecureSkipVerify = 19; 68 // List of ALPNs to present. If not set, this will be automatically be set based on the protocol 69 Alpn alpn = 13; 70 // Server name (SNI) to present in TLS connections. If not set, Host will be used for http requests. 71 string serverName = 20; 72 // Expected response determines what string to look for in the response to validate TCP requests succeeded. 73 // If not set, defaults to "StatusCode=200" 74 google.protobuf.StringValue expectedResponse = 21; 75} 76 77message Alpn { 78 repeated string value = 1; 79} 80 81message ForwardEchoResponse { 82 repeated string output = 1; 83} 84