1// Copyright 2021 Google LLC
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
17package google.networking.trafficdirector.type;
18
19option csharp_namespace = "Google.Cloud.Networking.TrafficDirector.Type";
20option go_package = "google.golang.org/genproto/googleapis/networking/trafficdirector/type";
21option java_multiple_files = true;
22option java_outer_classname = "TrafficDirectorLogEntryProto";
23option java_package = "com.google.networking.trafficdirector.type";
24option objc_class_prefix = "TRFCD";
25option php_namespace = "Google\\Cloud\\Networking\\TrafficDirector\\Type";
26option ruby_package = "Google::Cloud::Networking::TrafficDirector::Type";
27
28// A common proto for describing how the Traffic Director handles
29// xDS-connections/requests/responses.
30message TrafficDirectorLogEntry {
31  // Defines possible values of client type.
32  enum ClientType {
33    // Unspecified.
34    CLIENT_TYPE_UNSPECIFIED = 0;
35
36    // Envoy client.
37    ENVOY = 1;
38
39    // gRPC Java client.
40    GRPC_JAVA = 2;
41
42    // gRPC C++ client.
43    GRPC_CPP = 3;
44
45    // gRPC Python client.
46    GRPC_PYTHON = 4;
47
48    // gRPC Go client.
49    GRPC_GO = 5;
50
51    // gRPC Ruby client.
52    GRPC_RUBY = 6;
53
54    // gRPC Ruby client.
55    GRPC_PHP = 7;
56
57    // gRPC Node client.
58    GRPC_NODE = 8;
59
60    // gRPC CSharp client.
61    GRPC_CSHARP = 9;
62
63    // unknown client type.
64    UNKNOWN = 10;
65  }
66
67  // Defines possible values of API version.
68  enum TransportApiVersion {
69    // Unspecified.
70    TRANSPORT_API_VERSION_UNSPECIFIED = 0;
71
72    // v2 xDS version.
73    V2 = 1;
74
75    // v3 xDS version.
76    V3 = 2;
77  }
78
79  // An ID of xDS-client connecting to the Traffic Director.
80  string node_id = 1;
81
82  // The string representation of IPv4 or IPv6 address of xDS-client
83  // connecting to the Traffic Director.
84  // IPv4 address must be in the format defined in RFC791, four octets separated
85  // by a period. Size of a string is between 7-15 characters. Example: 1.2.3.4
86  // IPv6 address must be in one of the formats defined in RFC4291. Size of a
87  // string is between 7-39 characters. Example: 2001:DB8:0:0:8:800:200C:417A
88  string node_ip = 2;
89
90  // A free text describing details of the event.
91  string description = 4;
92
93  // Type of xDS-client connecting to Traffic Director
94  ClientType client_type = 5;
95
96  // The version of xDS-client connecting to Traffic Director.
97  string client_version = 6;
98
99  // The xDS API version used by xDS clients connecting to Traffic Director.
100  TransportApiVersion transport_api_version = 7;
101}
102