istio.io/istio@v0.0.0-20240520182934-d79c90f27776/pkg/test/echo/proto/echo.proto (about) 1 // Copyright Istio 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 syntax = "proto3"; 16 17 import "google/protobuf/wrappers.proto"; 18 19 // Generate with protoc --go_out=. echo.proto -I /work/common-protos/ -I. 20 package proto; 21 option go_package="../proto"; 22 option java_package = "io.istio.test"; 23 option java_outer_classname = "Echo"; 24 25 service EchoTestService { 26 rpc Echo (EchoRequest) returns (EchoResponse); 27 rpc ForwardEcho (ForwardEchoRequest) returns (ForwardEchoResponse); 28 } 29 30 message EchoRequest { 31 string message = 1; 32 } 33 34 message EchoResponse { 35 string message = 1; 36 } 37 38 message Header { 39 string key = 1; 40 string value = 2; 41 } 42 43 message ForwardEchoRequest { 44 int32 count = 1; 45 int32 qps = 2; 46 int64 timeout_micros = 3; 47 string url = 4; 48 repeated Header headers = 5; 49 string message = 6; 50 // Method for the request. Valid only for HTTP 51 string method = 9; 52 // If true, requests will be sent using h2c prior knowledge 53 bool http2 = 7; 54 // If true, requests will be sent using http3 55 bool http3 = 15; 56 // If true, requests will not be sent until magic string is received 57 bool serverFirst = 8; 58 // If true, 301 redirects will be followed 59 bool followRedirects = 14; 60 // If non-empty, make the request with the corresponding cert and key. 61 string cert = 10; 62 string key = 11; 63 // If non-empty, verify the server CA 64 string caCert = 12; 65 // If non-empty, make the request with the corresponding cert and key file. 66 string certFile = 16; 67 string keyFile = 17; 68 // If non-empty, verify the server CA with the ca cert file. 69 string caCertFile = 18; 70 // Skip verifying peer's certificate. 71 bool insecureSkipVerify = 19; 72 // List of ALPNs to present. If not set, this will be automatically be set based on the protocol 73 Alpn alpn = 13; 74 // Server name (SNI) to present in TLS connections. If not set, Host will be used for http requests. 75 string serverName = 20; 76 // Expected response determines what string to look for in the response to validate TCP requests succeeded. 77 // If not set, defaults to "StatusCode=200" 78 google.protobuf.StringValue expectedResponse = 21; 79 // If set, a new connection will be made to the server for each individual request. If false, an attempt 80 // will be made to re-use the connection for the life of the forward request. This is automatically 81 // set for DNS, TCP, TLS, and WebSocket protocols. 82 bool newConnectionPerRequest = 22; 83 // If set, each request will force a DNS lookup. Only applies if newConnectionPerRequest is set. 84 bool forceDNSLookup = 23; 85 86 // HBONE communication settings. If provided, requests will be tunnelled. 87 HBONE hbone = 24; 88 89 ProxyProtoVersion proxyProtocolVersion = 25; 90 } 91 92 message HBONE { 93 string address = 9; 94 repeated Header headers = 1; 95 // If non-empty, make the request with the corresponding cert and key. 96 string cert = 2; 97 string key = 3; 98 // If non-empty, verify the server CA 99 string caCert = 4; 100 // If non-empty, make the request with the corresponding cert and key file. 101 string certFile = 5; 102 string keyFile = 6; 103 // If non-empty, verify the server CA with the ca cert file. 104 string caCertFile = 7; 105 // Skip verifying peer's certificate. 106 bool insecureSkipVerify = 8; 107 } 108 109 message Alpn { 110 repeated string value = 1; 111 } 112 113 message ForwardEchoResponse { 114 repeated string output = 1; 115 } 116 117 enum ProxyProtoVersion { 118 NONE = 0; 119 V1 = 1; 120 V2 = 2; 121 }