@lansweeper/gateway-grpc 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.ignorecompat ADDED
File without changes
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ## 0.0.2 (2025-02-05)
7
+
8
+ **Note:** Version bump only for package @lansweeper/gateway-grpc
package/buf.yaml ADDED
@@ -0,0 +1,22 @@
1
+ # This package was created previosly without linting and to support camelcase we have this config.
2
+ version: v1
3
+ lint:
4
+ use:
5
+ - DEFAULT
6
+ except:
7
+ - FIELD_LOWER_SNAKE_CASE
8
+ - PACKAGE_DIRECTORY_MATCH
9
+ - PACKAGE_SAME_DIRECTORY
10
+ - SERVICE_SUFFIX
11
+ - RPC_REQUEST_STANDARD_NAME
12
+ - RPC_RESPONSE_STANDARD_NAME
13
+ - RPC_REQUEST_RESPONSE_UNIQUE
14
+ - ENUM_ZERO_VALUE_SUFFIX
15
+ - ENUM_VALUE_PREFIX
16
+ - PACKAGE_VERSION_SUFFIX
17
+ breaking:
18
+ use:
19
+ - FILE
20
+ except:
21
+ - FIELD_SAME_NAME
22
+ - FIELD_SAME_JSON_NAME
@@ -0,0 +1 @@
1
+ {"file":[{"name":"google/protobuf/any.proto","package":"google.protobuf","messageType":[{"name":"Any","field":[{"name":"type_url","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"typeUrl"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"AnyProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/anypb","objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"sourceCodeInfo":{"location":[{"span":[30,0,157,1]},{"path":[12],"span":[30,0,18],"leadingDetachedComments":[" Protocol Buffers - Google's data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"]},{"path":[2],"span":[32,0,24]},{"path":[8],"span":[34,0,59]},{"path":[8,37],"span":[34,0,59]},{"path":[8],"span":[35,0,67]},{"path":[8,11],"span":[35,0,67]},{"path":[8],"span":[36,0,44]},{"path":[8,1],"span":[36,0,44]},{"path":[8],"span":[37,0,41]},{"path":[8,8],"span":[37,0,41]},{"path":[8],"span":[38,0,34]},{"path":[8,10],"span":[38,0,34]},{"path":[8],"span":[39,0,33]},{"path":[8,36],"span":[39,0,33]},{"path":[4,0],"span":[124,0,157,1],"leadingComments":" `Any` contains an arbitrary serialized protocol buffer message along with a\n URL that describes the type of the serialized message.\n\n Protobuf library provides support to pack/unpack Any values in the form\n of utility functions or additional generated methods of the Any type.\n\n Example 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(&foo)) {\n ...\n }\n\n Example 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := &pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := &pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\n The pack methods provided by protobuf library will by default use\n 'type.googleapis.com/full.type.name' as the type URL and the unpack\n methods only use the fully qualified type name after the last '/'\n in the type URL, for example \"foo.bar.com/x/y.z\" will yield type\n name \"y.z\".\n\n\n JSON\n ====\n The JSON representation of an `Any` value uses the regular\n representation of the deserialized, embedded message, with an\n additional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": <string>,\n \"lastName\": <string>\n }\n\n If the embedded message type is well-known and has a custom JSON\n representation, that representation will be embedded adding a field\n `value` which holds the custom JSON in addition to the `@type`\n field. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }\n\n"},{"path":[4,0,1],"span":[124,8,11]},{"path":[4,0,2,0],"span":[153,2,22],"leadingComments":" A URL/resource name that uniquely identifies the type of the serialized\n protocol buffer message. This string must contain at least\n one \"/\" character. The last segment of the URL's path must represent\n the fully qualified name of the type (as in\n `path/google.protobuf.Duration`). The name should be in a canonical form\n (e.g., leading \".\" is not accepted).\n\n In practice, teams usually precompile into the binary all types that they\n expect it to use in the context of Any. However, for URLs which use the\n scheme `http`, `https`, or no scheme, one can optionally set up a type\n server that maps type URLs to message definitions as follows:\n\n * If no scheme is provided, `https` is assumed.\n * An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n * Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\n Note: this functionality is not currently available in the official\n protobuf release, and it is not used for type URLs beginning with\n type.googleapis.com.\n\n Schemes other than `http`, `https` (or the empty scheme) might be\n used with implementation specific semantics.\n\n"},{"path":[4,0,2,0,5],"span":[153,2,8]},{"path":[4,0,2,0,1],"span":[153,9,17]},{"path":[4,0,2,0,3],"span":[153,20,21]},{"path":[4,0,2,1],"span":[156,2,18],"leadingComments":" Must be a valid serialized protocol buffer of the above specified type.\n"},{"path":[4,0,2,1,5],"span":[156,2,7]},{"path":[4,0,2,1,1],"span":[156,8,13]},{"path":[4,0,2,1,3],"span":[156,16,17]}]},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"google/protobuf/duration.proto","package":"google.protobuf","messageType":[{"name":"Duration","field":[{"name":"seconds","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"seconds"},{"name":"nanos","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"nanos"}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"DurationProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/durationpb","ccEnableArenas":true,"objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"sourceCodeInfo":{"location":[{"span":[30,0,115,1]},{"path":[12],"span":[30,0,18],"leadingDetachedComments":[" Protocol Buffers - Google's data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"]},{"path":[2],"span":[32,0,24]},{"path":[8],"span":[34,0,59]},{"path":[8,37],"span":[34,0,59]},{"path":[8],"span":[35,0,31]},{"path":[8,31],"span":[35,0,31]},{"path":[8],"span":[36,0,72]},{"path":[8,11],"span":[36,0,72]},{"path":[8],"span":[37,0,44]},{"path":[8,1],"span":[37,0,44]},{"path":[8],"span":[38,0,46]},{"path":[8,8],"span":[38,0,46]},{"path":[8],"span":[39,0,34]},{"path":[8,10],"span":[39,0,34]},{"path":[8],"span":[40,0,33]},{"path":[8,36],"span":[40,0,33]},{"path":[4,0],"span":[102,0,115,1],"leadingComments":" A Duration represents a signed, fixed-length span of time represented\n as a count of seconds and fractions of seconds at nanosecond\n resolution. It is independent of any calendar and concepts like \"day\"\n or \"month\". It is related to Timestamp in that the difference between\n two Timestamp values is a Duration and it can be added or subtracted\n from a Timestamp. Range is approximately +-10,000 years.\n\n # Examples\n\n Example 1: Compute Duration from two Timestamps in pseudo code.\n\n Timestamp start = ...;\n Timestamp end = ...;\n Duration duration = ...;\n\n duration.seconds = end.seconds - start.seconds;\n duration.nanos = end.nanos - start.nanos;\n\n if (duration.seconds < 0 && duration.nanos > 0) {\n duration.seconds += 1;\n duration.nanos -= 1000000000;\n } else if (duration.seconds > 0 && duration.nanos < 0) {\n duration.seconds -= 1;\n duration.nanos += 1000000000;\n }\n\n Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n\n Timestamp start = ...;\n Duration duration = ...;\n Timestamp end = ...;\n\n end.seconds = start.seconds + duration.seconds;\n end.nanos = start.nanos + duration.nanos;\n\n if (end.nanos < 0) {\n end.seconds -= 1;\n end.nanos += 1000000000;\n } else if (end.nanos >= 1000000000) {\n end.seconds += 1;\n end.nanos -= 1000000000;\n }\n\n Example 3: Compute Duration from datetime.timedelta in Python.\n\n td = datetime.timedelta(days=3, minutes=10)\n duration = Duration()\n duration.FromTimedelta(td)\n\n # JSON Mapping\n\n In JSON format, the Duration type is encoded as a string rather than an\n object, where the string ends in the suffix \"s\" (indicating seconds) and\n is preceded by the number of seconds, with nanoseconds expressed as\n fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n microsecond should be expressed in JSON format as \"3.000001s\".\n\n\n"},{"path":[4,0,1],"span":[102,8,16]},{"path":[4,0,2,0],"span":[106,2,20],"leadingComments":" Signed seconds of the span of time. Must be from -315,576,000,000\n to +315,576,000,000 inclusive. Note: these bounds are computed from:\n 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"},{"path":[4,0,2,0,5],"span":[106,2,7]},{"path":[4,0,2,0,1],"span":[106,8,15]},{"path":[4,0,2,0,3],"span":[106,18,19]},{"path":[4,0,2,1],"span":[114,2,18],"leadingComments":" Signed fractions of a second at nanosecond resolution of the span\n of time. Durations less than one second are represented with a 0\n `seconds` field and a positive or negative `nanos` field. For durations\n of one second or more, a non-zero value for the `nanos` field must be\n of the same sign as the `seconds` field. Must be from -999,999,999\n to +999,999,999 inclusive.\n"},{"path":[4,0,2,1,5],"span":[114,2,7]},{"path":[4,0,2,1,1],"span":[114,8,13]},{"path":[4,0,2,1,3],"span":[114,16,17]}]},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"google/protobuf/timestamp.proto","package":"google.protobuf","messageType":[{"name":"Timestamp","field":[{"name":"seconds","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"seconds"},{"name":"nanos","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"nanos"}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"TimestampProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/timestamppb","ccEnableArenas":true,"objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"sourceCodeInfo":{"location":[{"span":[30,0,146,1]},{"path":[12],"span":[30,0,18],"leadingDetachedComments":[" Protocol Buffers - Google's data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"]},{"path":[2],"span":[32,0,24]},{"path":[8],"span":[34,0,59]},{"path":[8,37],"span":[34,0,59]},{"path":[8],"span":[35,0,31]},{"path":[8,31],"span":[35,0,31]},{"path":[8],"span":[36,0,73]},{"path":[8,11],"span":[36,0,73]},{"path":[8],"span":[37,0,44]},{"path":[8,1],"span":[37,0,44]},{"path":[8],"span":[38,0,47]},{"path":[8,8],"span":[38,0,47]},{"path":[8],"span":[39,0,34]},{"path":[8,10],"span":[39,0,34]},{"path":[8],"span":[40,0,33]},{"path":[8,36],"span":[40,0,33]},{"path":[4,0],"span":[135,0,146,1],"leadingComments":" A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(&tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(&ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D\n ) to obtain a formatter capable of generating timestamps in this format.\n\n\n"},{"path":[4,0,1],"span":[135,8,17]},{"path":[4,0,2,0],"span":[139,2,20],"leadingComments":" Represents seconds of UTC time since Unix epoch\n 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n 9999-12-31T23:59:59Z inclusive.\n"},{"path":[4,0,2,0,5],"span":[139,2,7]},{"path":[4,0,2,0,1],"span":[139,8,15]},{"path":[4,0,2,0,3],"span":[139,18,19]},{"path":[4,0,2,1],"span":[145,2,18],"leadingComments":" Non-negative fractions of a second at nanosecond resolution. Negative\n second values with fractions must still have non-negative nanos values\n that count forward in time. Must be from 0 to 999,999,999\n inclusive.\n"},{"path":[4,0,2,1,5],"span":[145,2,7]},{"path":[4,0,2,1,1],"span":[145,8,13]},{"path":[4,0,2,1,3],"span":[145,16,17]}]},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"google/protobuf/wrappers.proto","package":"google.protobuf","messageType":[{"name":"DoubleValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"value"}]},{"name":"FloatValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","jsonName":"value"}]},{"name":"Int64Value","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"value"}]},{"name":"UInt64Value","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"value"}]},{"name":"Int32Value","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"value"}]},{"name":"UInt32Value","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"value"}]},{"name":"BoolValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"value"}]},{"name":"StringValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"}]},{"name":"BytesValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"WrappersProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/wrapperspb","ccEnableArenas":true,"objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"sourceCodeInfo":{"location":[{"span":[40,0,122,1]},{"path":[12],"span":[40,0,18],"leadingDetachedComments":[" Protocol Buffers - Google's data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"," Wrappers for primitive (non-message) types. These types are useful\n for embedding primitives in the `google.protobuf.Any` type and for places\n where we need to distinguish between the absence of a primitive\n typed field and its default value.\n\n These wrappers have no meaningful use within repeated fields as they lack\n the ability to detect presence on individual elements.\n These wrappers have no meaningful use within a map or a oneof since\n individual entries of a map or fields of a oneof can already detect presence.\n"]},{"path":[2],"span":[42,0,24]},{"path":[8],"span":[44,0,59]},{"path":[8,37],"span":[44,0,59]},{"path":[8],"span":[45,0,31]},{"path":[8,31],"span":[45,0,31]},{"path":[8],"span":[46,0,72]},{"path":[8,11],"span":[46,0,72]},{"path":[8],"span":[47,0,44]},{"path":[8,1],"span":[47,0,44]},{"path":[8],"span":[48,0,46]},{"path":[8,8],"span":[48,0,46]},{"path":[8],"span":[49,0,34]},{"path":[8,10],"span":[49,0,34]},{"path":[8],"span":[50,0,33]},{"path":[8,36],"span":[50,0,33]},{"path":[4,0],"span":[55,0,58,1],"leadingComments":" Wrapper message for `double`.\n\n The JSON representation for `DoubleValue` is JSON number.\n"},{"path":[4,0,1],"span":[55,8,19]},{"path":[4,0,2,0],"span":[57,2,19],"leadingComments":" The double value.\n"},{"path":[4,0,2,0,5],"span":[57,2,8]},{"path":[4,0,2,0,1],"span":[57,9,14]},{"path":[4,0,2,0,3],"span":[57,17,18]},{"path":[4,1],"span":[63,0,66,1],"leadingComments":" Wrapper message for `float`.\n\n The JSON representation for `FloatValue` is JSON number.\n"},{"path":[4,1,1],"span":[63,8,18]},{"path":[4,1,2,0],"span":[65,2,18],"leadingComments":" The float value.\n"},{"path":[4,1,2,0,5],"span":[65,2,7]},{"path":[4,1,2,0,1],"span":[65,8,13]},{"path":[4,1,2,0,3],"span":[65,16,17]},{"path":[4,2],"span":[71,0,74,1],"leadingComments":" Wrapper message for `int64`.\n\n The JSON representation for `Int64Value` is JSON string.\n"},{"path":[4,2,1],"span":[71,8,18]},{"path":[4,2,2,0],"span":[73,2,18],"leadingComments":" The int64 value.\n"},{"path":[4,2,2,0,5],"span":[73,2,7]},{"path":[4,2,2,0,1],"span":[73,8,13]},{"path":[4,2,2,0,3],"span":[73,16,17]},{"path":[4,3],"span":[79,0,82,1],"leadingComments":" Wrapper message for `uint64`.\n\n The JSON representation for `UInt64Value` is JSON string.\n"},{"path":[4,3,1],"span":[79,8,19]},{"path":[4,3,2,0],"span":[81,2,19],"leadingComments":" The uint64 value.\n"},{"path":[4,3,2,0,5],"span":[81,2,8]},{"path":[4,3,2,0,1],"span":[81,9,14]},{"path":[4,3,2,0,3],"span":[81,17,18]},{"path":[4,4],"span":[87,0,90,1],"leadingComments":" Wrapper message for `int32`.\n\n The JSON representation for `Int32Value` is JSON number.\n"},{"path":[4,4,1],"span":[87,8,18]},{"path":[4,4,2,0],"span":[89,2,18],"leadingComments":" The int32 value.\n"},{"path":[4,4,2,0,5],"span":[89,2,7]},{"path":[4,4,2,0,1],"span":[89,8,13]},{"path":[4,4,2,0,3],"span":[89,16,17]},{"path":[4,5],"span":[95,0,98,1],"leadingComments":" Wrapper message for `uint32`.\n\n The JSON representation for `UInt32Value` is JSON number.\n"},{"path":[4,5,1],"span":[95,8,19]},{"path":[4,5,2,0],"span":[97,2,19],"leadingComments":" The uint32 value.\n"},{"path":[4,5,2,0,5],"span":[97,2,8]},{"path":[4,5,2,0,1],"span":[97,9,14]},{"path":[4,5,2,0,3],"span":[97,17,18]},{"path":[4,6],"span":[103,0,106,1],"leadingComments":" Wrapper message for `bool`.\n\n The JSON representation for `BoolValue` is JSON `true` and `false`.\n"},{"path":[4,6,1],"span":[103,8,17]},{"path":[4,6,2,0],"span":[105,2,17],"leadingComments":" The bool value.\n"},{"path":[4,6,2,0,5],"span":[105,2,6]},{"path":[4,6,2,0,1],"span":[105,7,12]},{"path":[4,6,2,0,3],"span":[105,15,16]},{"path":[4,7],"span":[111,0,114,1],"leadingComments":" Wrapper message for `string`.\n\n The JSON representation for `StringValue` is JSON string.\n"},{"path":[4,7,1],"span":[111,8,19]},{"path":[4,7,2,0],"span":[113,2,19],"leadingComments":" The string value.\n"},{"path":[4,7,2,0,5],"span":[113,2,8]},{"path":[4,7,2,0,1],"span":[113,9,14]},{"path":[4,7,2,0,3],"span":[113,17,18]},{"path":[4,8],"span":[119,0,122,1],"leadingComments":" Wrapper message for `bytes`.\n\n The JSON representation for `BytesValue` is JSON string.\n"},{"path":[4,8,1],"span":[119,8,18]},{"path":[4,8,2,0],"span":[121,2,18],"leadingComments":" The bytes value.\n"},{"path":[4,8,2,0,5],"span":[121,2,7]},{"path":[4,8,2,0,1],"span":[121,8,13]},{"path":[4,8,2,0,3],"span":[121,16,17]}]},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"node_modules/@grpc/grpc-js/proto/channelz.proto","package":"grpc.channelz.v1","dependency":["google/protobuf/any.proto","google/protobuf/duration.proto","google/protobuf/timestamp.proto","google/protobuf/wrappers.proto"],"messageType":[{"name":"Channel","field":[{"name":"ref","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelRef","jsonName":"ref"},{"name":"data","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelData","jsonName":"data"},{"name":"channel_ref","number":3,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelRef","jsonName":"channelRef"},{"name":"subchannel_ref","number":4,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SubchannelRef","jsonName":"subchannelRef"},{"name":"socket_ref","number":5,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SocketRef","jsonName":"socketRef"}]},{"name":"Subchannel","field":[{"name":"ref","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SubchannelRef","jsonName":"ref"},{"name":"data","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelData","jsonName":"data"},{"name":"channel_ref","number":3,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelRef","jsonName":"channelRef"},{"name":"subchannel_ref","number":4,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SubchannelRef","jsonName":"subchannelRef"},{"name":"socket_ref","number":5,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SocketRef","jsonName":"socketRef"}]},{"name":"ChannelConnectivityState","field":[{"name":"state","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".grpc.channelz.v1.ChannelConnectivityState.State","jsonName":"state"}],"enumType":[{"name":"State","value":[{"name":"UNKNOWN","number":0},{"name":"IDLE","number":1},{"name":"CONNECTING","number":2},{"name":"READY","number":3},{"name":"TRANSIENT_FAILURE","number":4},{"name":"SHUTDOWN","number":5}]}]},{"name":"ChannelData","field":[{"name":"state","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelConnectivityState","jsonName":"state"},{"name":"target","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"target"},{"name":"trace","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelTrace","jsonName":"trace"},{"name":"calls_started","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"callsStarted"},{"name":"calls_succeeded","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"callsSucceeded"},{"name":"calls_failed","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"callsFailed"},{"name":"last_call_started_timestamp","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"lastCallStartedTimestamp"}]},{"name":"ChannelTraceEvent","field":[{"name":"description","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"description"},{"name":"severity","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".grpc.channelz.v1.ChannelTraceEvent.Severity","jsonName":"severity"},{"name":"timestamp","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"timestamp"},{"name":"channel_ref","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelRef","oneofIndex":0,"jsonName":"channelRef"},{"name":"subchannel_ref","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SubchannelRef","oneofIndex":0,"jsonName":"subchannelRef"}],"enumType":[{"name":"Severity","value":[{"name":"CT_UNKNOWN","number":0},{"name":"CT_INFO","number":1},{"name":"CT_WARNING","number":2},{"name":"CT_ERROR","number":3}]}],"oneofDecl":[{"name":"child_ref"}]},{"name":"ChannelTrace","field":[{"name":"num_events_logged","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"numEventsLogged"},{"name":"creation_timestamp","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"creationTimestamp"},{"name":"events","number":3,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelTraceEvent","jsonName":"events"}]},{"name":"ChannelRef","field":[{"name":"channel_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"channelId"},{"name":"name","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"}],"reservedRange":[{"start":3,"end":4},{"start":4,"end":5},{"start":5,"end":6},{"start":6,"end":7},{"start":7,"end":8},{"start":8,"end":9}]},{"name":"SubchannelRef","field":[{"name":"subchannel_id","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"subchannelId"},{"name":"name","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"}],"reservedRange":[{"start":1,"end":2},{"start":2,"end":3},{"start":3,"end":4},{"start":4,"end":5},{"start":5,"end":6},{"start":6,"end":7}]},{"name":"SocketRef","field":[{"name":"socket_id","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"socketId"},{"name":"name","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"}],"reservedRange":[{"start":1,"end":2},{"start":2,"end":3},{"start":5,"end":6},{"start":6,"end":7},{"start":7,"end":8},{"start":8,"end":9}]},{"name":"ServerRef","field":[{"name":"server_id","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"serverId"},{"name":"name","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"}],"reservedRange":[{"start":1,"end":2},{"start":2,"end":3},{"start":3,"end":4},{"start":4,"end":5},{"start":7,"end":8},{"start":8,"end":9}]},{"name":"Server","field":[{"name":"ref","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ServerRef","jsonName":"ref"},{"name":"data","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ServerData","jsonName":"data"},{"name":"listen_socket","number":3,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SocketRef","jsonName":"listenSocket"}]},{"name":"ServerData","field":[{"name":"trace","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.ChannelTrace","jsonName":"trace"},{"name":"calls_started","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"callsStarted"},{"name":"calls_succeeded","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"callsSucceeded"},{"name":"calls_failed","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"callsFailed"},{"name":"last_call_started_timestamp","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"lastCallStartedTimestamp"}]},{"name":"Socket","field":[{"name":"ref","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SocketRef","jsonName":"ref"},{"name":"data","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SocketData","jsonName":"data"},{"name":"local","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Address","jsonName":"local"},{"name":"remote","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Address","jsonName":"remote"},{"name":"security","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Security","jsonName":"security"},{"name":"remote_name","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"remoteName"}]},{"name":"SocketData","field":[{"name":"streams_started","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"streamsStarted"},{"name":"streams_succeeded","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"streamsSucceeded"},{"name":"streams_failed","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"streamsFailed"},{"name":"messages_sent","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"messagesSent"},{"name":"messages_received","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"messagesReceived"},{"name":"keep_alives_sent","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"keepAlivesSent"},{"name":"last_local_stream_created_timestamp","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"lastLocalStreamCreatedTimestamp"},{"name":"last_remote_stream_created_timestamp","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"lastRemoteStreamCreatedTimestamp"},{"name":"last_message_sent_timestamp","number":9,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"lastMessageSentTimestamp"},{"name":"last_message_received_timestamp","number":10,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"lastMessageReceivedTimestamp"},{"name":"local_flow_control_window","number":11,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"localFlowControlWindow"},{"name":"remote_flow_control_window","number":12,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"remoteFlowControlWindow"},{"name":"option","number":13,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SocketOption","jsonName":"option"}]},{"name":"Address","field":[{"name":"tcpip_address","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Address.TcpIpAddress","oneofIndex":0,"jsonName":"tcpipAddress"},{"name":"uds_address","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Address.UdsAddress","oneofIndex":0,"jsonName":"udsAddress"},{"name":"other_address","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Address.OtherAddress","oneofIndex":0,"jsonName":"otherAddress"}],"nestedType":[{"name":"TcpIpAddress","field":[{"name":"ip_address","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"ipAddress"},{"name":"port","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"port"}]},{"name":"UdsAddress","field":[{"name":"filename","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"filename"}]},{"name":"OtherAddress","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"value"}]}],"oneofDecl":[{"name":"address"}]},{"name":"Security","field":[{"name":"tls","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Security.Tls","oneofIndex":0,"jsonName":"tls"},{"name":"other","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Security.OtherSecurity","oneofIndex":0,"jsonName":"other"}],"nestedType":[{"name":"Tls","field":[{"name":"standard_name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":0,"jsonName":"standardName"},{"name":"other_name","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":0,"jsonName":"otherName"},{"name":"local_certificate","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"localCertificate"},{"name":"remote_certificate","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"remoteCertificate"}],"oneofDecl":[{"name":"cipher_suite"}]},{"name":"OtherSecurity","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"value"}]}],"oneofDecl":[{"name":"model"}]},{"name":"SocketOption","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"},{"name":"additional","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"additional"}]},{"name":"SocketOptionTimeout","field":[{"name":"duration","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"duration"}]},{"name":"SocketOptionLinger","field":[{"name":"active","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"active"},{"name":"duration","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"duration"}]},{"name":"SocketOptionTcpInfo","field":[{"name":"tcpi_state","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiState"},{"name":"tcpi_ca_state","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiCaState"},{"name":"tcpi_retransmits","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiRetransmits"},{"name":"tcpi_probes","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiProbes"},{"name":"tcpi_backoff","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiBackoff"},{"name":"tcpi_options","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiOptions"},{"name":"tcpi_snd_wscale","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiSndWscale"},{"name":"tcpi_rcv_wscale","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiRcvWscale"},{"name":"tcpi_rto","number":9,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiRto"},{"name":"tcpi_ato","number":10,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiAto"},{"name":"tcpi_snd_mss","number":11,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiSndMss"},{"name":"tcpi_rcv_mss","number":12,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiRcvMss"},{"name":"tcpi_unacked","number":13,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiUnacked"},{"name":"tcpi_sacked","number":14,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiSacked"},{"name":"tcpi_lost","number":15,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiLost"},{"name":"tcpi_retrans","number":16,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiRetrans"},{"name":"tcpi_fackets","number":17,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiFackets"},{"name":"tcpi_last_data_sent","number":18,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiLastDataSent"},{"name":"tcpi_last_ack_sent","number":19,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiLastAckSent"},{"name":"tcpi_last_data_recv","number":20,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiLastDataRecv"},{"name":"tcpi_last_ack_recv","number":21,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiLastAckRecv"},{"name":"tcpi_pmtu","number":22,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiPmtu"},{"name":"tcpi_rcv_ssthresh","number":23,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiRcvSsthresh"},{"name":"tcpi_rtt","number":24,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiRtt"},{"name":"tcpi_rttvar","number":25,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiRttvar"},{"name":"tcpi_snd_ssthresh","number":26,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiSndSsthresh"},{"name":"tcpi_snd_cwnd","number":27,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiSndCwnd"},{"name":"tcpi_advmss","number":28,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiAdvmss"},{"name":"tcpi_reordering","number":29,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"tcpiReordering"}]},{"name":"GetTopChannelsRequest","field":[{"name":"start_channel_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"startChannelId"},{"name":"max_results","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"maxResults"}]},{"name":"GetTopChannelsResponse","field":[{"name":"channel","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Channel","jsonName":"channel"},{"name":"end","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"end"}]},{"name":"GetServersRequest","field":[{"name":"start_server_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"startServerId"},{"name":"max_results","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"maxResults"}]},{"name":"GetServersResponse","field":[{"name":"server","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Server","jsonName":"server"},{"name":"end","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"end"}]},{"name":"GetServerRequest","field":[{"name":"server_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"serverId"}]},{"name":"GetServerResponse","field":[{"name":"server","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Server","jsonName":"server"}]},{"name":"GetServerSocketsRequest","field":[{"name":"server_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"serverId"},{"name":"start_socket_id","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"startSocketId"},{"name":"max_results","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"maxResults"}]},{"name":"GetServerSocketsResponse","field":[{"name":"socket_ref","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.SocketRef","jsonName":"socketRef"},{"name":"end","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"end"}]},{"name":"GetChannelRequest","field":[{"name":"channel_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"channelId"}]},{"name":"GetChannelResponse","field":[{"name":"channel","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Channel","jsonName":"channel"}]},{"name":"GetSubchannelRequest","field":[{"name":"subchannel_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"subchannelId"}]},{"name":"GetSubchannelResponse","field":[{"name":"subchannel","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Subchannel","jsonName":"subchannel"}]},{"name":"GetSocketRequest","field":[{"name":"socket_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"socketId"},{"name":"summary","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"summary"}]},{"name":"GetSocketResponse","field":[{"name":"socket","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".grpc.channelz.v1.Socket","jsonName":"socket"}]}],"service":[{"name":"Channelz","method":[{"name":"GetTopChannels","inputType":".grpc.channelz.v1.GetTopChannelsRequest","outputType":".grpc.channelz.v1.GetTopChannelsResponse"},{"name":"GetServers","inputType":".grpc.channelz.v1.GetServersRequest","outputType":".grpc.channelz.v1.GetServersResponse"},{"name":"GetServer","inputType":".grpc.channelz.v1.GetServerRequest","outputType":".grpc.channelz.v1.GetServerResponse"},{"name":"GetServerSockets","inputType":".grpc.channelz.v1.GetServerSocketsRequest","outputType":".grpc.channelz.v1.GetServerSocketsResponse"},{"name":"GetChannel","inputType":".grpc.channelz.v1.GetChannelRequest","outputType":".grpc.channelz.v1.GetChannelResponse"},{"name":"GetSubchannel","inputType":".grpc.channelz.v1.GetSubchannelRequest","outputType":".grpc.channelz.v1.GetSubchannelResponse"},{"name":"GetSocket","inputType":".grpc.channelz.v1.GetSocketRequest","outputType":".grpc.channelz.v1.GetSocketResponse"}]}],"options":{"javaPackage":"io.grpc.channelz.v1","javaOuterClassname":"ChannelzProto","javaMultipleFiles":true,"goPackage":"google.golang.org/grpc/channelz/grpc_channelz_v1"},"sourceCodeInfo":{"location":[{"span":[21,0,563,1]},{"path":[12],"span":[21,0,18],"leadingDetachedComments":[" Copyright 2018 The gRPC Authors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n"," This file defines an interface for exporting monitoring information\n out of gRPC servers. See the full design at\n https://github.com/grpc/proposal/blob/master/A14-channelz.md\n\n The canonical version of this proto can be found at\n https://github.com/grpc/grpc-proto/blob/master/grpc/channelz/v1/channelz.proto\n"]},{"path":[2],"span":[23,0,25]},{"path":[3,0],"span":[25,0,35]},{"path":[3,1],"span":[26,0,40]},{"path":[3,2],"span":[27,0,41]},{"path":[3,3],"span":[28,0,40]},{"path":[8],"span":[30,0,71]},{"path":[8,11],"span":[30,0,71]},{"path":[8],"span":[31,0,34]},{"path":[8,10],"span":[31,0,34]},{"path":[8],"span":[32,0,44]},{"path":[8,1],"span":[32,0,44]},{"path":[8],"span":[33,0,46]},{"path":[8,8],"span":[33,0,46]},{"path":[4,0],"span":[36,0,56,1],"leadingComments":" Channel is a logical grouping of channels, subchannels, and sockets.\n"},{"path":[4,0,1],"span":[36,8,15]},{"path":[4,0,2,0],"span":[38,2,21],"leadingComments":" The identifier for this channel. This should bet set.\n"},{"path":[4,0,2,0,6],"span":[38,2,12]},{"path":[4,0,2,0,1],"span":[38,13,16]},{"path":[4,0,2,0,3],"span":[38,19,20]},{"path":[4,0,2,1],"span":[40,2,23],"leadingComments":" Data specific to this channel.\n","trailingComments":" At most one of 'channel_ref+subchannel_ref' and 'socket' is set.\n"},{"path":[4,0,2,1,6],"span":[40,2,13]},{"path":[4,0,2,1,1],"span":[40,14,18]},{"path":[4,0,2,1,3],"span":[40,21,22]},{"path":[4,0,2,2],"span":[46,2,38],"leadingComments":" There are no ordering guarantees on the order of channel refs.\n There may not be cycles in the ref graph.\n A channel ref may be present in more than one channel or subchannel.\n"},{"path":[4,0,2,2,4],"span":[46,2,10]},{"path":[4,0,2,2,6],"span":[46,11,21]},{"path":[4,0,2,2,1],"span":[46,22,33]},{"path":[4,0,2,2,3],"span":[46,36,37]},{"path":[4,0,2,3],"span":[52,2,44],"leadingComments":" At most one of 'channel_ref+subchannel_ref' and 'socket' is set.\n There are no ordering guarantees on the order of subchannel refs.\n There may not be cycles in the ref graph.\n A sub channel ref may be present in more than one channel or subchannel.\n"},{"path":[4,0,2,3,4],"span":[52,2,10]},{"path":[4,0,2,3,6],"span":[52,11,24]},{"path":[4,0,2,3,1],"span":[52,25,39]},{"path":[4,0,2,3,3],"span":[52,42,43]},{"path":[4,0,2,4],"span":[55,2,36],"leadingComments":" There are no ordering guarantees on the order of sockets.\n"},{"path":[4,0,2,4,4],"span":[55,2,10]},{"path":[4,0,2,4,6],"span":[55,11,20]},{"path":[4,0,2,4,1],"span":[55,21,31]},{"path":[4,0,2,4,3],"span":[55,34,35]},{"path":[4,1],"span":[60,0,80,1],"leadingComments":" Subchannel is a logical grouping of channels, subchannels, and sockets.\n A subchannel is load balanced over by it's ancestor\n"},{"path":[4,1,1],"span":[60,8,18]},{"path":[4,1,2,0],"span":[62,2,24],"leadingComments":" The identifier for this channel.\n"},{"path":[4,1,2,0,6],"span":[62,2,15]},{"path":[4,1,2,0,1],"span":[62,16,19]},{"path":[4,1,2,0,3],"span":[62,22,23]},{"path":[4,1,2,1],"span":[64,2,23],"leadingComments":" Data specific to this channel.\n","trailingComments":" At most one of 'channel_ref+subchannel_ref' and 'socket' is set.\n"},{"path":[4,1,2,1,6],"span":[64,2,13]},{"path":[4,1,2,1,1],"span":[64,14,18]},{"path":[4,1,2,1,3],"span":[64,21,22]},{"path":[4,1,2,2],"span":[70,2,38],"leadingComments":" There are no ordering guarantees on the order of channel refs.\n There may not be cycles in the ref graph.\n A channel ref may be present in more than one channel or subchannel.\n"},{"path":[4,1,2,2,4],"span":[70,2,10]},{"path":[4,1,2,2,6],"span":[70,11,21]},{"path":[4,1,2,2,1],"span":[70,22,33]},{"path":[4,1,2,2,3],"span":[70,36,37]},{"path":[4,1,2,3],"span":[76,2,44],"leadingComments":" At most one of 'channel_ref+subchannel_ref' and 'socket' is set.\n There are no ordering guarantees on the order of subchannel refs.\n There may not be cycles in the ref graph.\n A sub channel ref may be present in more than one channel or subchannel.\n"},{"path":[4,1,2,3,4],"span":[76,2,10]},{"path":[4,1,2,3,6],"span":[76,11,24]},{"path":[4,1,2,3,1],"span":[76,25,39]},{"path":[4,1,2,3,3],"span":[76,42,43]},{"path":[4,1,2,4],"span":[79,2,36],"leadingComments":" There are no ordering guarantees on the order of sockets.\n"},{"path":[4,1,2,4,4],"span":[79,2,10]},{"path":[4,1,2,4,6],"span":[79,11,20]},{"path":[4,1,2,4,1],"span":[79,21,31]},{"path":[4,1,2,4,3],"span":[79,34,35]},{"path":[4,2],"span":[84,0,94,1],"leadingComments":" These come from the specified states in this document:\n https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md\n"},{"path":[4,2,1],"span":[84,8,32]},{"path":[4,2,4,0],"span":[85,2,92,3]},{"path":[4,2,4,0,1],"span":[85,7,12]},{"path":[4,2,4,0,2,0],"span":[86,4,16]},{"path":[4,2,4,0,2,0,1],"span":[86,4,11]},{"path":[4,2,4,0,2,0,2],"span":[86,14,15]},{"path":[4,2,4,0,2,1],"span":[87,4,13]},{"path":[4,2,4,0,2,1,1],"span":[87,4,8]},{"path":[4,2,4,0,2,1,2],"span":[87,11,12]},{"path":[4,2,4,0,2,2],"span":[88,4,19]},{"path":[4,2,4,0,2,2,1],"span":[88,4,14]},{"path":[4,2,4,0,2,2,2],"span":[88,17,18]},{"path":[4,2,4,0,2,3],"span":[89,4,14]},{"path":[4,2,4,0,2,3,1],"span":[89,4,9]},{"path":[4,2,4,0,2,3,2],"span":[89,12,13]},{"path":[4,2,4,0,2,4],"span":[90,4,26]},{"path":[4,2,4,0,2,4,1],"span":[90,4,21]},{"path":[4,2,4,0,2,4,2],"span":[90,24,25]},{"path":[4,2,4,0,2,5],"span":[91,4,17]},{"path":[4,2,4,0,2,5,1],"span":[91,4,12]},{"path":[4,2,4,0,2,5,2],"span":[91,15,16]},{"path":[4,2,2,0],"span":[93,2,18]},{"path":[4,2,2,0,6],"span":[93,2,7]},{"path":[4,2,2,0,1],"span":[93,8,13]},{"path":[4,2,2,0,3],"span":[93,16,17]},{"path":[4,3],"span":[97,0,117,1],"leadingComments":" Channel data is data related to a specific Channel or Subchannel.\n"},{"path":[4,3,1],"span":[97,8,19]},{"path":[4,3,2,0],"span":[100,2,37],"leadingComments":" The connectivity state of the channel or subchannel. Implementations\n should always set this.\n"},{"path":[4,3,2,0,6],"span":[100,2,26]},{"path":[4,3,2,0,1],"span":[100,27,32]},{"path":[4,3,2,0,3],"span":[100,35,36]},{"path":[4,3,2,1],"span":[103,2,20],"leadingComments":" The target this channel originally tried to connect to. May be absent\n"},{"path":[4,3,2,1,5],"span":[103,2,8]},{"path":[4,3,2,1,1],"span":[103,9,15]},{"path":[4,3,2,1,3],"span":[103,18,19]},{"path":[4,3,2,2],"span":[106,2,25],"leadingComments":" A trace of recent events on the channel. May be absent.\n"},{"path":[4,3,2,2,6],"span":[106,2,14]},{"path":[4,3,2,2,1],"span":[106,15,20]},{"path":[4,3,2,2,3],"span":[106,23,24]},{"path":[4,3,2,3],"span":[109,2,26],"leadingComments":" The number of calls started on the channel\n"},{"path":[4,3,2,3,5],"span":[109,2,7]},{"path":[4,3,2,3,1],"span":[109,8,21]},{"path":[4,3,2,3,3],"span":[109,24,25]},{"path":[4,3,2,4],"span":[111,2,28],"leadingComments":" The number of calls that have completed with an OK status\n"},{"path":[4,3,2,4,5],"span":[111,2,7]},{"path":[4,3,2,4,1],"span":[111,8,23]},{"path":[4,3,2,4,3],"span":[111,26,27]},{"path":[4,3,2,5],"span":[113,2,25],"leadingComments":" The number of calls that have completed with a non-OK status\n"},{"path":[4,3,2,5,5],"span":[113,2,7]},{"path":[4,3,2,5,1],"span":[113,8,20]},{"path":[4,3,2,5,3],"span":[113,23,24]},{"path":[4,3,2,6],"span":[116,2,60],"leadingComments":" The last time a call was started on the channel.\n"},{"path":[4,3,2,6,6],"span":[116,2,27]},{"path":[4,3,2,6,1],"span":[116,28,55]},{"path":[4,3,2,6,3],"span":[116,58,59]},{"path":[4,4],"span":[121,0,143,1],"leadingComments":" A trace event is an interesting thing that happened to a channel or\n subchannel, such as creation, address resolution, subchannel creation, etc.\n"},{"path":[4,4,1],"span":[121,8,25]},{"path":[4,4,2,0],"span":[123,2,25],"leadingComments":" High level description of the event.\n"},{"path":[4,4,2,0,5],"span":[123,2,8]},{"path":[4,4,2,0,1],"span":[123,9,20]},{"path":[4,4,2,0,3],"span":[123,23,24]},{"path":[4,4,4,0],"span":[125,2,130,3],"leadingComments":" The supported severity levels of trace events.\n"},{"path":[4,4,4,0,1],"span":[125,7,15]},{"path":[4,4,4,0,2,0],"span":[126,4,19]},{"path":[4,4,4,0,2,0,1],"span":[126,4,14]},{"path":[4,4,4,0,2,0,2],"span":[126,17,18]},{"path":[4,4,4,0,2,1],"span":[127,4,16]},{"path":[4,4,4,0,2,1,1],"span":[127,4,11]},{"path":[4,4,4,0,2,1,2],"span":[127,14,15]},{"path":[4,4,4,0,2,2],"span":[128,4,19]},{"path":[4,4,4,0,2,2,1],"span":[128,4,14]},{"path":[4,4,4,0,2,2,2],"span":[128,17,18]},{"path":[4,4,4,0,2,3],"span":[129,4,17]},{"path":[4,4,4,0,2,3,1],"span":[129,4,12]},{"path":[4,4,4,0,2,3,2],"span":[129,15,16]},{"path":[4,4,2,1],"span":[132,2,24],"leadingComments":" the severity of the trace event\n"},{"path":[4,4,2,1,6],"span":[132,2,10]},{"path":[4,4,2,1,1],"span":[132,11,19]},{"path":[4,4,2,1,3],"span":[132,22,23]},{"path":[4,4,2,2],"span":[134,2,42],"leadingComments":" When this event occurred.\n"},{"path":[4,4,2,2,6],"span":[134,2,27]},{"path":[4,4,2,2,1],"span":[134,28,37]},{"path":[4,4,2,2,3],"span":[134,40,41]},{"path":[4,4,8,0],"span":[139,2,142,3],"leadingComments":" ref of referenced channel or subchannel.\n Optional, only present if this event refers to a child object. For example,\n this field would be filled if this trace event was for a subchannel being\n created.\n"},{"path":[4,4,8,0,1],"span":[139,8,17]},{"path":[4,4,2,3],"span":[140,4,31]},{"path":[4,4,2,3,6],"span":[140,4,14]},{"path":[4,4,2,3,1],"span":[140,15,26]},{"path":[4,4,2,3,3],"span":[140,29,30]},{"path":[4,4,2,4],"span":[141,4,37]},{"path":[4,4,2,4,6],"span":[141,4,17]},{"path":[4,4,2,4,1],"span":[141,18,32]},{"path":[4,4,2,4,3],"span":[141,35,36]},{"path":[4,5],"span":[146,0,155,1],"leadingComments":" ChannelTrace represents the recent events that have occurred on the channel.\n"},{"path":[4,5,1],"span":[146,8,20]},{"path":[4,5,2,0],"span":[150,2,30],"leadingComments":" Number of events ever logged in this tracing object. This can differ from\n events.size() because events can be overwritten or garbage collected by\n implementations.\n"},{"path":[4,5,2,0,5],"span":[150,2,7]},{"path":[4,5,2,0,1],"span":[150,8,25]},{"path":[4,5,2,0,3],"span":[150,28,29]},{"path":[4,5,2,1],"span":[152,2,51],"leadingComments":" Time that this channel was created.\n"},{"path":[4,5,2,1,6],"span":[152,2,27]},{"path":[4,5,2,1,1],"span":[152,28,46]},{"path":[4,5,2,1,3],"span":[152,49,50]},{"path":[4,5,2,2],"span":[154,2,40],"leadingComments":" List of events that have occurred on this channel.\n"},{"path":[4,5,2,2,4],"span":[154,2,10]},{"path":[4,5,2,2,6],"span":[154,11,28]},{"path":[4,5,2,2,1],"span":[154,29,35]},{"path":[4,5,2,2,3],"span":[154,38,39]},{"path":[4,6],"span":[158,0,165,1],"leadingComments":" ChannelRef is a reference to a Channel.\n"},{"path":[4,6,1],"span":[158,8,18]},{"path":[4,6,2,0],"span":[160,2,23],"leadingComments":" The globally unique id for this channel. Must be a positive number.\n"},{"path":[4,6,2,0,5],"span":[160,2,7]},{"path":[4,6,2,0,1],"span":[160,8,18]},{"path":[4,6,2,0,3],"span":[160,21,22]},{"path":[4,6,2,1],"span":[162,2,18],"leadingComments":" An optional name associated with the channel.\n"},{"path":[4,6,2,1,5],"span":[162,2,8]},{"path":[4,6,2,1,1],"span":[162,9,13]},{"path":[4,6,2,1,3],"span":[162,16,17]},{"path":[4,6,9],"span":[164,2,28],"leadingComments":" Intentionally don't use field numbers from other refs.\n"},{"path":[4,6,9,0],"span":[164,11,12]},{"path":[4,6,9,0,1],"span":[164,11,12]},{"path":[4,6,9,1],"span":[164,14,15]},{"path":[4,6,9,1,1],"span":[164,14,15]},{"path":[4,6,9,2],"span":[164,17,18]},{"path":[4,6,9,2,1],"span":[164,17,18]},{"path":[4,6,9,3],"span":[164,20,21]},{"path":[4,6,9,3,1],"span":[164,20,21]},{"path":[4,6,9,4],"span":[164,23,24]},{"path":[4,6,9,4,1],"span":[164,23,24]},{"path":[4,6,9,5],"span":[164,26,27]},{"path":[4,6,9,5,1],"span":[164,26,27]},{"path":[4,7],"span":[168,0,175,1],"leadingComments":" SubchannelRef is a reference to a Subchannel.\n"},{"path":[4,7,1],"span":[168,8,21]},{"path":[4,7,2,0],"span":[170,2,26],"leadingComments":" The globally unique id for this subchannel. Must be a positive number.\n"},{"path":[4,7,2,0,5],"span":[170,2,7]},{"path":[4,7,2,0,1],"span":[170,8,21]},{"path":[4,7,2,0,3],"span":[170,24,25]},{"path":[4,7,2,1],"span":[172,2,18],"leadingComments":" An optional name associated with the subchannel.\n"},{"path":[4,7,2,1,5],"span":[172,2,8]},{"path":[4,7,2,1,1],"span":[172,9,13]},{"path":[4,7,2,1,3],"span":[172,16,17]},{"path":[4,7,9],"span":[174,2,28],"leadingComments":" Intentionally don't use field numbers from other refs.\n"},{"path":[4,7,9,0],"span":[174,11,12]},{"path":[4,7,9,0,1],"span":[174,11,12]},{"path":[4,7,9,1],"span":[174,14,15]},{"path":[4,7,9,1,1],"span":[174,14,15]},{"path":[4,7,9,2],"span":[174,17,18]},{"path":[4,7,9,2,1],"span":[174,17,18]},{"path":[4,7,9,3],"span":[174,20,21]},{"path":[4,7,9,3,1],"span":[174,20,21]},{"path":[4,7,9,4],"span":[174,23,24]},{"path":[4,7,9,4,1],"span":[174,23,24]},{"path":[4,7,9,5],"span":[174,26,27]},{"path":[4,7,9,5,1],"span":[174,26,27]},{"path":[4,8],"span":[178,0,185,1],"leadingComments":" SocketRef is a reference to a Socket.\n"},{"path":[4,8,1],"span":[178,8,17]},{"path":[4,8,2,0],"span":[180,2,22],"leadingComments":" The globally unique id for this socket. Must be a positive number.\n"},{"path":[4,8,2,0,5],"span":[180,2,7]},{"path":[4,8,2,0,1],"span":[180,8,17]},{"path":[4,8,2,0,3],"span":[180,20,21]},{"path":[4,8,2,1],"span":[182,2,18],"leadingComments":" An optional name associated with the socket.\n"},{"path":[4,8,2,1,5],"span":[182,2,8]},{"path":[4,8,2,1,1],"span":[182,9,13]},{"path":[4,8,2,1,3],"span":[182,16,17]},{"path":[4,8,9],"span":[184,2,28],"leadingComments":" Intentionally don't use field numbers from other refs.\n"},{"path":[4,8,9,0],"span":[184,11,12]},{"path":[4,8,9,0,1],"span":[184,11,12]},{"path":[4,8,9,1],"span":[184,14,15]},{"path":[4,8,9,1,1],"span":[184,14,15]},{"path":[4,8,9,2],"span":[184,17,18]},{"path":[4,8,9,2,1],"span":[184,17,18]},{"path":[4,8,9,3],"span":[184,20,21]},{"path":[4,8,9,3,1],"span":[184,20,21]},{"path":[4,8,9,4],"span":[184,23,24]},{"path":[4,8,9,4,1],"span":[184,23,24]},{"path":[4,8,9,5],"span":[184,26,27]},{"path":[4,8,9,5,1],"span":[184,26,27]},{"path":[4,9],"span":[188,0,195,1],"leadingComments":" ServerRef is a reference to a Server.\n"},{"path":[4,9,1],"span":[188,8,17]},{"path":[4,9,2,0],"span":[190,2,22],"leadingComments":" A globally unique identifier for this server. Must be a positive number.\n"},{"path":[4,9,2,0,5],"span":[190,2,7]},{"path":[4,9,2,0,1],"span":[190,8,17]},{"path":[4,9,2,0,3],"span":[190,20,21]},{"path":[4,9,2,1],"span":[192,2,18],"leadingComments":" An optional name associated with the server.\n"},{"path":[4,9,2,1,5],"span":[192,2,8]},{"path":[4,9,2,1,1],"span":[192,9,13]},{"path":[4,9,2,1,3],"span":[192,16,17]},{"path":[4,9,9],"span":[194,2,28],"leadingComments":" Intentionally don't use field numbers from other refs.\n"},{"path":[4,9,9,0],"span":[194,11,12]},{"path":[4,9,9,0,1],"span":[194,11,12]},{"path":[4,9,9,1],"span":[194,14,15]},{"path":[4,9,9,1,1],"span":[194,14,15]},{"path":[4,9,9,2],"span":[194,17,18]},{"path":[4,9,9,2,1],"span":[194,17,18]},{"path":[4,9,9,3],"span":[194,20,21]},{"path":[4,9,9,3,1],"span":[194,20,21]},{"path":[4,9,9,4],"span":[194,23,24]},{"path":[4,9,9,4,1],"span":[194,23,24]},{"path":[4,9,9,5],"span":[194,26,27]},{"path":[4,9,9,5,1],"span":[194,26,27]},{"path":[4,10],"span":[199,0,208,1],"leadingComments":" Server represents a single server. There may be multiple servers in a single\n program.\n"},{"path":[4,10,1],"span":[199,8,14]},{"path":[4,10,2,0],"span":[201,2,20],"leadingComments":" The identifier for a Server. This should be set.\n"},{"path":[4,10,2,0,6],"span":[201,2,11]},{"path":[4,10,2,0,1],"span":[201,12,15]},{"path":[4,10,2,0,3],"span":[201,18,19]},{"path":[4,10,2,1],"span":[203,2,22],"leadingComments":" The associated data of the Server.\n"},{"path":[4,10,2,1,6],"span":[203,2,12]},{"path":[4,10,2,1,1],"span":[203,13,17]},{"path":[4,10,2,1,3],"span":[203,20,21]},{"path":[4,10,2,2],"span":[207,2,39],"leadingComments":" The sockets that the server is listening on. There are no ordering\n guarantees. This may be absent.\n"},{"path":[4,10,2,2,4],"span":[207,2,10]},{"path":[4,10,2,2,6],"span":[207,11,20]},{"path":[4,10,2,2,1],"span":[207,21,34]},{"path":[4,10,2,2,3],"span":[207,37,38]},{"path":[4,11],"span":[211,0,224,1],"leadingComments":" ServerData is data for a specific Server.\n"},{"path":[4,11,1],"span":[211,8,18]},{"path":[4,11,2,0],"span":[213,2,25],"leadingComments":" A trace of recent events on the server. May be absent.\n"},{"path":[4,11,2,0,6],"span":[213,2,14]},{"path":[4,11,2,0,1],"span":[213,15,20]},{"path":[4,11,2,0,3],"span":[213,23,24]},{"path":[4,11,2,1],"span":[216,2,26],"leadingComments":" The number of incoming calls started on the server\n"},{"path":[4,11,2,1,5],"span":[216,2,7]},{"path":[4,11,2,1,1],"span":[216,8,21]},{"path":[4,11,2,1,3],"span":[216,24,25]},{"path":[4,11,2,2],"span":[218,2,28],"leadingComments":" The number of incoming calls that have completed with an OK status\n"},{"path":[4,11,2,2,5],"span":[218,2,7]},{"path":[4,11,2,2,1],"span":[218,8,23]},{"path":[4,11,2,2,3],"span":[218,26,27]},{"path":[4,11,2,3],"span":[220,2,25],"leadingComments":" The number of incoming calls that have a completed with a non-OK status\n"},{"path":[4,11,2,3,5],"span":[220,2,7]},{"path":[4,11,2,3,1],"span":[220,8,20]},{"path":[4,11,2,3,3],"span":[220,23,24]},{"path":[4,11,2,4],"span":[223,2,60],"leadingComments":" The last time a call was started on the server.\n"},{"path":[4,11,2,4,6],"span":[223,2,27]},{"path":[4,11,2,4,1],"span":[223,28,55]},{"path":[4,11,2,4,3],"span":[223,58,59]},{"path":[4,12],"span":[227,0,244,1],"leadingComments":" Information about an actual connection. Pronounced \"sock-ay\".\n"},{"path":[4,12,1],"span":[227,8,14]},{"path":[4,12,2,0],"span":[229,2,20],"leadingComments":" The identifier for the Socket.\n"},{"path":[4,12,2,0,6],"span":[229,2,11]},{"path":[4,12,2,0,1],"span":[229,12,15]},{"path":[4,12,2,0,3],"span":[229,18,19]},{"path":[4,12,2,1],"span":[232,2,22],"leadingComments":" Data specific to this Socket.\n"},{"path":[4,12,2,1,6],"span":[232,2,12]},{"path":[4,12,2,1,1],"span":[232,13,17]},{"path":[4,12,2,1,3],"span":[232,20,21]},{"path":[4,12,2,2],"span":[234,2,20],"leadingComments":" The locally bound address.\n"},{"path":[4,12,2,2,6],"span":[234,2,9]},{"path":[4,12,2,2,1],"span":[234,10,15]},{"path":[4,12,2,2,3],"span":[234,18,19]},{"path":[4,12,2,3],"span":[236,2,21],"leadingComments":" The remote bound address. May be absent.\n"},{"path":[4,12,2,3,6],"span":[236,2,9]},{"path":[4,12,2,3,1],"span":[236,10,16]},{"path":[4,12,2,3,3],"span":[236,19,20]},{"path":[4,12,2,4],"span":[239,2,24],"leadingComments":" Security details for this socket. May be absent if not available, or\n there is no security on the socket.\n"},{"path":[4,12,2,4,6],"span":[239,2,10]},{"path":[4,12,2,4,1],"span":[239,11,19]},{"path":[4,12,2,4,3],"span":[239,22,23]},{"path":[4,12,2,5],"span":[243,2,25],"leadingComments":" Optional, represents the name of the remote endpoint, if different than\n the original target name.\n"},{"path":[4,12,2,5,5],"span":[243,2,8]},{"path":[4,12,2,5,1],"span":[243,9,20]},{"path":[4,12,2,5,3],"span":[243,23,24]},{"path":[4,13],"span":[249,0,294,1],"leadingComments":" SocketData is data associated for a specific Socket. The fields present\n are specific to the implementation, so there may be minor differences in\n the semantics. (e.g. flow control windows)\n"},{"path":[4,13,1],"span":[249,8,18]},{"path":[4,13,2,0],"span":[251,2,28],"leadingComments":" The number of streams that have been started.\n"},{"path":[4,13,2,0,5],"span":[251,2,7]},{"path":[4,13,2,0,1],"span":[251,8,23]},{"path":[4,13,2,0,3],"span":[251,26,27]},{"path":[4,13,2,1],"span":[255,2,30],"leadingComments":" The number of streams that have ended successfully:\n On client side, received frame with eos bit set;\n On server side, sent frame with eos bit set.\n"},{"path":[4,13,2,1,5],"span":[255,2,7]},{"path":[4,13,2,1,1],"span":[255,8,25]},{"path":[4,13,2,1,3],"span":[255,28,29]},{"path":[4,13,2,2],"span":[259,2,27],"leadingComments":" The number of streams that have ended unsuccessfully:\n On client side, ended without receiving frame with eos bit set;\n On server side, ended without sending frame with eos bit set.\n"},{"path":[4,13,2,2,5],"span":[259,2,7]},{"path":[4,13,2,2,1],"span":[259,8,22]},{"path":[4,13,2,2,3],"span":[259,25,26]},{"path":[4,13,2,3],"span":[261,2,26],"leadingComments":" The number of grpc messages successfully sent on this socket.\n"},{"path":[4,13,2,3,5],"span":[261,2,7]},{"path":[4,13,2,3,1],"span":[261,8,21]},{"path":[4,13,2,3,3],"span":[261,24,25]},{"path":[4,13,2,4],"span":[263,2,30],"leadingComments":" The number of grpc messages received on this socket.\n"},{"path":[4,13,2,4,5],"span":[263,2,7]},{"path":[4,13,2,4,1],"span":[263,8,25]},{"path":[4,13,2,4,3],"span":[263,28,29]},{"path":[4,13,2,5],"span":[267,2,29],"leadingComments":" The number of keep alives sent. This is typically implemented with HTTP/2\n ping messages.\n"},{"path":[4,13,2,5,5],"span":[267,2,7]},{"path":[4,13,2,5,1],"span":[267,8,24]},{"path":[4,13,2,5,3],"span":[267,27,28]},{"path":[4,13,2,6],"span":[271,2,68],"leadingComments":" The last time a stream was created by this endpoint. Usually unset for\n servers.\n"},{"path":[4,13,2,6,6],"span":[271,2,27]},{"path":[4,13,2,6,1],"span":[271,28,63]},{"path":[4,13,2,6,3],"span":[271,66,67]},{"path":[4,13,2,7],"span":[274,2,69],"leadingComments":" The last time a stream was created by the remote endpoint. Usually unset\n for clients.\n"},{"path":[4,13,2,7,6],"span":[274,2,27]},{"path":[4,13,2,7,1],"span":[274,28,64]},{"path":[4,13,2,7,3],"span":[274,67,68]},{"path":[4,13,2,8],"span":[277,2,60],"leadingComments":" The last time a message was sent by this endpoint.\n"},{"path":[4,13,2,8,6],"span":[277,2,27]},{"path":[4,13,2,8,1],"span":[277,28,55]},{"path":[4,13,2,8,3],"span":[277,58,59]},{"path":[4,13,2,9],"span":[279,2,65],"leadingComments":" The last time a message was received by this endpoint.\n"},{"path":[4,13,2,9,6],"span":[279,2,27]},{"path":[4,13,2,9,1],"span":[279,28,59]},{"path":[4,13,2,9,3],"span":[279,62,64]},{"path":[4,13,2,10],"span":[284,2,60],"leadingComments":" The amount of window, granted to the local endpoint by the remote endpoint.\n This may be slightly out of date due to network latency. This does NOT\n include stream level or TCP level flow control info.\n"},{"path":[4,13,2,10,6],"span":[284,2,28]},{"path":[4,13,2,10,1],"span":[284,29,54]},{"path":[4,13,2,10,3],"span":[284,57,59]},{"path":[4,13,2,11],"span":[289,2,62],"leadingComments":" The amount of window, granted to the remote endpoint by the local endpoint.\n This may be slightly out of date due to network latency. This does NOT\n include stream level or TCP level flow control info.\n"},{"path":[4,13,2,11,6],"span":[289,2,28]},{"path":[4,13,2,11,1],"span":[289,30,56]},{"path":[4,13,2,11,3],"span":[289,59,61]},{"path":[4,13,2,12],"span":[293,2,36],"leadingComments":" Socket options set on this socket. May be absent if 'summary' is set\n on GetSocketRequest.\n"},{"path":[4,13,2,12,4],"span":[293,2,10]},{"path":[4,13,2,12,6],"span":[293,11,23]},{"path":[4,13,2,12,1],"span":[293,24,30]},{"path":[4,13,2,12,3],"span":[293,33,35]},{"path":[4,14],"span":[297,0,322,1],"leadingComments":" Address represents the address used to create the socket.\n"},{"path":[4,14,1],"span":[297,8,15]},{"path":[4,14,3,0],"span":[298,2,304,3]},{"path":[4,14,3,0,1],"span":[298,10,22]},{"path":[4,14,3,0,2,0],"span":[301,4,25],"leadingComments":" Either the IPv4 or IPv6 address in bytes. Will be either 4 bytes or 16\n bytes in length.\n"},{"path":[4,14,3,0,2,0,5],"span":[301,4,9]},{"path":[4,14,3,0,2,0,1],"span":[301,10,20]},{"path":[4,14,3,0,2,0,3],"span":[301,23,24]},{"path":[4,14,3,0,2,1],"span":[303,4,19],"leadingComments":" 0-64k, or -1 if not appropriate.\n"},{"path":[4,14,3,0,2,1,5],"span":[303,4,9]},{"path":[4,14,3,0,2,1,1],"span":[303,10,14]},{"path":[4,14,3,0,2,1,3],"span":[303,17,18]},{"path":[4,14,3,1],"span":[306,2,308,3],"leadingComments":" A Unix Domain Socket address.\n"},{"path":[4,14,3,1,1],"span":[306,10,20]},{"path":[4,14,3,1,2,0],"span":[307,4,24]},{"path":[4,14,3,1,2,0,5],"span":[307,4,10]},{"path":[4,14,3,1,2,0,1],"span":[307,11,19]},{"path":[4,14,3,1,2,0,3],"span":[307,22,23]},{"path":[4,14,3,2],"span":[310,2,315,3],"leadingComments":" An address type not included above.\n"},{"path":[4,14,3,2,1],"span":[310,10,22]},{"path":[4,14,3,2,2,0],"span":[312,4,20],"leadingComments":" The human readable version of the value. This value should be set.\n"},{"path":[4,14,3,2,2,0,5],"span":[312,4,10]},{"path":[4,14,3,2,2,0,1],"span":[312,11,15]},{"path":[4,14,3,2,2,0,3],"span":[312,18,19]},{"path":[4,14,3,2,2,1],"span":[314,4,34],"leadingComments":" The actual address message.\n"},{"path":[4,14,3,2,2,1,6],"span":[314,4,23]},{"path":[4,14,3,2,2,1,1],"span":[314,24,29]},{"path":[4,14,3,2,2,1,3],"span":[314,32,33]},{"path":[4,14,8,0],"span":[317,2,321,3]},{"path":[4,14,8,0,1],"span":[317,8,15]},{"path":[4,14,2,0],"span":[318,4,35]},{"path":[4,14,2,0,6],"span":[318,4,16]},{"path":[4,14,2,0,1],"span":[318,17,30]},{"path":[4,14,2,0,3],"span":[318,33,34]},{"path":[4,14,2,1],"span":[319,4,31]},{"path":[4,14,2,1,6],"span":[319,4,14]},{"path":[4,14,2,1,1],"span":[319,15,26]},{"path":[4,14,2,1,3],"span":[319,29,30]},{"path":[4,14,2,2],"span":[320,4,35]},{"path":[4,14,2,2,6],"span":[320,4,16]},{"path":[4,14,2,2,1],"span":[320,17,30]},{"path":[4,14,2,2,3],"span":[320,33,34]},{"path":[4,15],"span":[325,0,350,1],"leadingComments":" Security represents details about how secure the socket is.\n"},{"path":[4,15,1],"span":[325,8,16]},{"path":[4,15,3,0],"span":[326,2,339,3]},{"path":[4,15,3,0,1],"span":[326,10,13]},{"path":[4,15,3,0,8,0],"span":[327,4,334,5]},{"path":[4,15,3,0,8,0,1],"span":[327,10,22]},{"path":[4,15,3,0,2,0],"span":[330,6,31],"leadingComments":" The cipher suite name in the RFC 4346 format:\n https://tools.ietf.org/html/rfc4346#appendix-C\n"},{"path":[4,15,3,0,2,0,5],"span":[330,6,12]},{"path":[4,15,3,0,2,0,1],"span":[330,13,26]},{"path":[4,15,3,0,2,0,3],"span":[330,29,30]},{"path":[4,15,3,0,2,1],"span":[333,6,28],"leadingComments":" Some other way to describe the cipher suite if\n the RFC 4346 name is not available.\n"},{"path":[4,15,3,0,2,1,5],"span":[333,6,12]},{"path":[4,15,3,0,2,1,1],"span":[333,13,23]},{"path":[4,15,3,0,2,1,3],"span":[333,26,27]},{"path":[4,15,3,0,2,2],"span":[336,4,32],"leadingComments":" the certificate used by this endpoint.\n"},{"path":[4,15,3,0,2,2,5],"span":[336,4,9]},{"path":[4,15,3,0,2,2,1],"span":[336,10,27]},{"path":[4,15,3,0,2,2,3],"span":[336,30,31]},{"path":[4,15,3,0,2,3],"span":[338,4,33],"leadingComments":" the certificate used by the remote endpoint.\n"},{"path":[4,15,3,0,2,3,5],"span":[338,4,9]},{"path":[4,15,3,0,2,3,1],"span":[338,10,28]},{"path":[4,15,3,0,2,3,3],"span":[338,31,32]},{"path":[4,15,3,1],"span":[340,2,345,3]},{"path":[4,15,3,1,1],"span":[340,10,23]},{"path":[4,15,3,1,2,0],"span":[342,4,20],"leadingComments":" The human readable version of the value.\n"},{"path":[4,15,3,1,2,0,5],"span":[342,4,10]},{"path":[4,15,3,1,2,0,1],"span":[342,11,15]},{"path":[4,15,3,1,2,0,3],"span":[342,18,19]},{"path":[4,15,3,1,2,1],"span":[344,4,34],"leadingComments":" The actual security details message.\n"},{"path":[4,15,3,1,2,1,6],"span":[344,4,23]},{"path":[4,15,3,1,2,1,1],"span":[344,24,29]},{"path":[4,15,3,1,2,1,3],"span":[344,32,33]},{"path":[4,15,8,0],"span":[346,2,349,3]},{"path":[4,15,8,0,1],"span":[346,8,13]},{"path":[4,15,2,0],"span":[347,4,16]},{"path":[4,15,2,0,6],"span":[347,4,7]},{"path":[4,15,2,0,1],"span":[347,8,11]},{"path":[4,15,2,0,3],"span":[347,14,15]},{"path":[4,15,2,1],"span":[348,4,28]},{"path":[4,15,2,1,6],"span":[348,4,17]},{"path":[4,15,2,1,1],"span":[348,18,23]},{"path":[4,15,2,1,3],"span":[348,26,27]},{"path":[4,16],"span":[354,0,364,1],"leadingComments":" SocketOption represents socket options for a socket. Specifically, these\n are the options returned by getsockopt().\n"},{"path":[4,16,1],"span":[354,8,20]},{"path":[4,16,2,0],"span":[357,2,18],"leadingComments":" The full name of the socket option. Typically this will be the upper case\n name, such as \"SO_REUSEPORT\".\n"},{"path":[4,16,2,0,5],"span":[357,2,8]},{"path":[4,16,2,0,1],"span":[357,9,13]},{"path":[4,16,2,0,3],"span":[357,16,17]},{"path":[4,16,2,1],"span":[360,2,19],"leadingComments":" The human readable value of this socket option. At least one of value or\n additional will be set.\n"},{"path":[4,16,2,1,5],"span":[360,2,8]},{"path":[4,16,2,1,1],"span":[360,9,14]},{"path":[4,16,2,1,3],"span":[360,17,18]},{"path":[4,16,2,2],"span":[363,2,37],"leadingComments":" Additional data associated with the socket option. At least one of value\n or additional will be set.\n"},{"path":[4,16,2,2,6],"span":[363,2,21]},{"path":[4,16,2,2,1],"span":[363,22,32]},{"path":[4,16,2,2,3],"span":[363,35,36]},{"path":[4,17],"span":[368,0,370,1],"leadingComments":" For use with SocketOption's additional field. This is primarily used for\n SO_RCVTIMEO and SO_SNDTIMEO\n"},{"path":[4,17,1],"span":[368,8,27]},{"path":[4,17,2,0],"span":[369,2,40]},{"path":[4,17,2,0,6],"span":[369,2,26]},{"path":[4,17,2,0,1],"span":[369,27,35]},{"path":[4,17,2,0,3],"span":[369,38,39]},{"path":[4,18],"span":[374,0,379,1],"leadingComments":" For use with SocketOption's additional field. This is primarily used for\n SO_LINGER.\n"},{"path":[4,18,1],"span":[374,8,26]},{"path":[4,18,2,0],"span":[376,2,18],"leadingComments":" active maps to `struct linger.l_onoff`\n"},{"path":[4,18,2,0,5],"span":[376,2,6]},{"path":[4,18,2,0,1],"span":[376,7,13]},{"path":[4,18,2,0,3],"span":[376,16,17]},{"path":[4,18,2,1],"span":[378,2,40],"leadingComments":" duration maps to `struct linger.l_linger`\n"},{"path":[4,18,2,1,6],"span":[378,2,26]},{"path":[4,18,2,1,1],"span":[378,27,35]},{"path":[4,18,2,1,3],"span":[378,38,39]},{"path":[4,19],"span":[383,0,418,1],"leadingComments":" For use with SocketOption's additional field. Tcp info for\n SOL_TCP and TCP_INFO.\n"},{"path":[4,19,1],"span":[383,8,27]},{"path":[4,19,2,0],"span":[384,2,24]},{"path":[4,19,2,0,5],"span":[384,2,8]},{"path":[4,19,2,0,1],"span":[384,9,19]},{"path":[4,19,2,0,3],"span":[384,22,23]},{"path":[4,19,2,1],"span":[386,2,27]},{"path":[4,19,2,1,5],"span":[386,2,8]},{"path":[4,19,2,1,1],"span":[386,9,22]},{"path":[4,19,2,1,3],"span":[386,25,26]},{"path":[4,19,2,2],"span":[387,2,30]},{"path":[4,19,2,2,5],"span":[387,2,8]},{"path":[4,19,2,2,1],"span":[387,9,25]},{"path":[4,19,2,2,3],"span":[387,28,29]},{"path":[4,19,2,3],"span":[388,2,25]},{"path":[4,19,2,3,5],"span":[388,2,8]},{"path":[4,19,2,3,1],"span":[388,9,20]},{"path":[4,19,2,3,3],"span":[388,23,24]},{"path":[4,19,2,4],"span":[389,2,26]},{"path":[4,19,2,4,5],"span":[389,2,8]},{"path":[4,19,2,4,1],"span":[389,9,21]},{"path":[4,19,2,4,3],"span":[389,24,25]},{"path":[4,19,2,5],"span":[390,2,26]},{"path":[4,19,2,5,5],"span":[390,2,8]},{"path":[4,19,2,5,1],"span":[390,9,21]},{"path":[4,19,2,5,3],"span":[390,24,25]},{"path":[4,19,2,6],"span":[391,2,29]},{"path":[4,19,2,6,5],"span":[391,2,8]},{"path":[4,19,2,6,1],"span":[391,9,24]},{"path":[4,19,2,6,3],"span":[391,27,28]},{"path":[4,19,2,7],"span":[392,2,29]},{"path":[4,19,2,7,5],"span":[392,2,8]},{"path":[4,19,2,7,1],"span":[392,9,24]},{"path":[4,19,2,7,3],"span":[392,27,28]},{"path":[4,19,2,8],"span":[394,2,22]},{"path":[4,19,2,8,5],"span":[394,2,8]},{"path":[4,19,2,8,1],"span":[394,9,17]},{"path":[4,19,2,8,3],"span":[394,20,21]},{"path":[4,19,2,9],"span":[395,2,23]},{"path":[4,19,2,9,5],"span":[395,2,8]},{"path":[4,19,2,9,1],"span":[395,9,17]},{"path":[4,19,2,9,3],"span":[395,20,22]},{"path":[4,19,2,10],"span":[396,2,27]},{"path":[4,19,2,10,5],"span":[396,2,8]},{"path":[4,19,2,10,1],"span":[396,9,21]},{"path":[4,19,2,10,3],"span":[396,24,26]},{"path":[4,19,2,11],"span":[397,2,27]},{"path":[4,19,2,11,5],"span":[397,2,8]},{"path":[4,19,2,11,1],"span":[397,9,21]},{"path":[4,19,2,11,3],"span":[397,24,26]},{"path":[4,19,2,12],"span":[399,2,27]},{"path":[4,19,2,12,5],"span":[399,2,8]},{"path":[4,19,2,12,1],"span":[399,9,21]},{"path":[4,19,2,12,3],"span":[399,24,26]},{"path":[4,19,2,13],"span":[400,2,26]},{"path":[4,19,2,13,5],"span":[400,2,8]},{"path":[4,19,2,13,1],"span":[400,9,20]},{"path":[4,19,2,13,3],"span":[400,23,25]},{"path":[4,19,2,14],"span":[401,2,24]},{"path":[4,19,2,14,5],"span":[401,2,8]},{"path":[4,19,2,14,1],"span":[401,9,18]},{"path":[4,19,2,14,3],"span":[401,21,23]},{"path":[4,19,2,15],"span":[402,2,27]},{"path":[4,19,2,15,5],"span":[402,2,8]},{"path":[4,19,2,15,1],"span":[402,9,21]},{"path":[4,19,2,15,3],"span":[402,24,26]},{"path":[4,19,2,16],"span":[403,2,27]},{"path":[4,19,2,16,5],"span":[403,2,8]},{"path":[4,19,2,16,1],"span":[403,9,21]},{"path":[4,19,2,16,3],"span":[403,24,26]},{"path":[4,19,2,17],"span":[405,2,34]},{"path":[4,19,2,17,5],"span":[405,2,8]},{"path":[4,19,2,17,1],"span":[405,9,28]},{"path":[4,19,2,17,3],"span":[405,31,33]},{"path":[4,19,2,18],"span":[406,2,33]},{"path":[4,19,2,18,5],"span":[406,2,8]},{"path":[4,19,2,18,1],"span":[406,9,27]},{"path":[4,19,2,18,3],"span":[406,30,32]},{"path":[4,19,2,19],"span":[407,2,34]},{"path":[4,19,2,19,5],"span":[407,2,8]},{"path":[4,19,2,19,1],"span":[407,9,28]},{"path":[4,19,2,19,3],"span":[407,31,33]},{"path":[4,19,2,20],"span":[408,2,33]},{"path":[4,19,2,20,5],"span":[408,2,8]},{"path":[4,19,2,20,1],"span":[408,9,27]},{"path":[4,19,2,20,3],"span":[408,30,32]},{"path":[4,19,2,21],"span":[410,2,24]},{"path":[4,19,2,21,5],"span":[410,2,8]},{"path":[4,19,2,21,1],"span":[410,9,18]},{"path":[4,19,2,21,3],"span":[410,21,23]},{"path":[4,19,2,22],"span":[411,2,32]},{"path":[4,19,2,22,5],"span":[411,2,8]},{"path":[4,19,2,22,1],"span":[411,9,26]},{"path":[4,19,2,22,3],"span":[411,29,31]},{"path":[4,19,2,23],"span":[412,2,23]},{"path":[4,19,2,23,5],"span":[412,2,8]},{"path":[4,19,2,23,1],"span":[412,9,17]},{"path":[4,19,2,23,3],"span":[412,20,22]},{"path":[4,19,2,24],"span":[413,2,26]},{"path":[4,19,2,24,5],"span":[413,2,8]},{"path":[4,19,2,24,1],"span":[413,9,20]},{"path":[4,19,2,24,3],"span":[413,23,25]},{"path":[4,19,2,25],"span":[414,2,32]},{"path":[4,19,2,25,5],"span":[414,2,8]},{"path":[4,19,2,25,1],"span":[414,9,26]},{"path":[4,19,2,25,3],"span":[414,29,31]},{"path":[4,19,2,26],"span":[415,2,28]},{"path":[4,19,2,26,5],"span":[415,2,8]},{"path":[4,19,2,26,1],"span":[415,9,22]},{"path":[4,19,2,26,3],"span":[415,25,27]},{"path":[4,19,2,27],"span":[416,2,26]},{"path":[4,19,2,27,5],"span":[416,2,8]},{"path":[4,19,2,27,1],"span":[416,9,20]},{"path":[4,19,2,27,3],"span":[416,23,25]},{"path":[4,19,2,28],"span":[417,2,30]},{"path":[4,19,2,28,5],"span":[417,2,8]},{"path":[4,19,2,28,1],"span":[417,9,24]},{"path":[4,19,2,28,3],"span":[417,27,29]},{"path":[6,0],"span":[422,0,438,1],"leadingComments":" Channelz is a service exposed by gRPC servers that provides detailed debug\n information.\n"},{"path":[6,0,1],"span":[422,8,16]},{"path":[6,0,2,0],"span":[425,2,77],"leadingComments":" Gets all root channels (i.e. channels the application has directly\n created). This does not include subchannels nor non-top level channels.\n"},{"path":[6,0,2,0,1],"span":[425,6,20]},{"path":[6,0,2,0,2],"span":[425,21,42]},{"path":[6,0,2,0,3],"span":[425,53,75]},{"path":[6,0,2,1],"span":[427,2,65],"leadingComments":" Gets all servers that exist in the process.\n"},{"path":[6,0,2,1,1],"span":[427,6,16]},{"path":[6,0,2,1,2],"span":[427,17,34]},{"path":[6,0,2,1,3],"span":[427,45,63]},{"path":[6,0,2,2],"span":[429,2,62],"leadingComments":" Returns a single Server, or else a NOT_FOUND code.\n"},{"path":[6,0,2,2,1],"span":[429,6,15]},{"path":[6,0,2,2,2],"span":[429,16,32]},{"path":[6,0,2,2,3],"span":[429,43,60]},{"path":[6,0,2,3],"span":[431,2,83],"leadingComments":" Gets all server sockets that exist in the process.\n"},{"path":[6,0,2,3,1],"span":[431,6,22]},{"path":[6,0,2,3,2],"span":[431,23,46]},{"path":[6,0,2,3,3],"span":[431,57,81]},{"path":[6,0,2,4],"span":[433,2,65],"leadingComments":" Returns a single Channel, or else a NOT_FOUND code.\n"},{"path":[6,0,2,4,1],"span":[433,6,16]},{"path":[6,0,2,4,2],"span":[433,17,34]},{"path":[6,0,2,4,3],"span":[433,45,63]},{"path":[6,0,2,5],"span":[435,2,74],"leadingComments":" Returns a single Subchannel, or else a NOT_FOUND code.\n"},{"path":[6,0,2,5,1],"span":[435,6,19]},{"path":[6,0,2,5,2],"span":[435,20,40]},{"path":[6,0,2,5,3],"span":[435,51,72]},{"path":[6,0,2,6],"span":[437,2,62],"leadingComments":" Returns a single Socket or else a NOT_FOUND code.\n"},{"path":[6,0,2,6,1],"span":[437,6,15]},{"path":[6,0,2,6,2],"span":[437,16,32]},{"path":[6,0,2,6,3],"span":[437,43,60]},{"path":[4,20],"span":[440,0,452,1]},{"path":[4,20,1],"span":[440,8,29]},{"path":[4,20,2,0],"span":[446,2,29],"leadingComments":" start_channel_id indicates that only channels at or above this id should be\n included in the results.\n To request the first page, this should be set to 0. To request\n subsequent pages, the client generates this value by adding 1 to\n the highest seen result ID.\n"},{"path":[4,20,2,0,5],"span":[446,2,7]},{"path":[4,20,2,0,1],"span":[446,8,24]},{"path":[4,20,2,0,3],"span":[446,27,28]},{"path":[4,20,2,1],"span":[451,2,24],"leadingComments":" If non-zero, the server will return a page of results containing\n at most this many items. If zero, the server will choose a\n reasonable page size. Must never be negative.\n"},{"path":[4,20,2,1,5],"span":[451,2,7]},{"path":[4,20,2,1,1],"span":[451,8,19]},{"path":[4,20,2,1,3],"span":[451,22,23]},{"path":[4,21],"span":[454,0,463,1]},{"path":[4,21,1],"span":[454,8,30]},{"path":[4,21,2,0],"span":[458,2,31],"leadingComments":" list of channels that the connection detail service knows about. Sorted in\n ascending channel_id order.\n Must contain at least 1 result, otherwise 'end' must be true.\n"},{"path":[4,21,2,0,4],"span":[458,2,10]},{"path":[4,21,2,0,6],"span":[458,11,18]},{"path":[4,21,2,0,1],"span":[458,19,26]},{"path":[4,21,2,0,3],"span":[458,29,30]},{"path":[4,21,2,1],"span":[462,2,15],"leadingComments":" If set, indicates that the list of channels is the final list. Requesting\n more channels can only return more if they are created after this RPC\n completes.\n"},{"path":[4,21,2,1,5],"span":[462,2,6]},{"path":[4,21,2,1,1],"span":[462,7,10]},{"path":[4,21,2,1,3],"span":[462,13,14]},{"path":[4,22],"span":[465,0,477,1]},{"path":[4,22,1],"span":[465,8,25]},{"path":[4,22,2,0],"span":[471,2,28],"leadingComments":" start_server_id indicates that only servers at or above this id should be\n included in the results.\n To request the first page, this must be set to 0. To request\n subsequent pages, the client generates this value by adding 1 to\n the highest seen result ID.\n"},{"path":[4,22,2,0,5],"span":[471,2,7]},{"path":[4,22,2,0,1],"span":[471,8,23]},{"path":[4,22,2,0,3],"span":[471,26,27]},{"path":[4,22,2,1],"span":[476,2,24],"leadingComments":" If non-zero, the server will return a page of results containing\n at most this many items. If zero, the server will choose a\n reasonable page size. Must never be negative.\n"},{"path":[4,22,2,1,5],"span":[476,2,7]},{"path":[4,22,2,1,1],"span":[476,8,19]},{"path":[4,22,2,1,3],"span":[476,22,23]},{"path":[4,23],"span":[479,0,488,1]},{"path":[4,23,1],"span":[479,8,26]},{"path":[4,23,2,0],"span":[483,2,29],"leadingComments":" list of servers that the connection detail service knows about. Sorted in\n ascending server_id order.\n Must contain at least 1 result, otherwise 'end' must be true.\n"},{"path":[4,23,2,0,4],"span":[483,2,10]},{"path":[4,23,2,0,6],"span":[483,11,17]},{"path":[4,23,2,0,1],"span":[483,18,24]},{"path":[4,23,2,0,3],"span":[483,27,28]},{"path":[4,23,2,1],"span":[487,2,15],"leadingComments":" If set, indicates that the list of servers is the final list. Requesting\n more servers will only return more if they are created after this RPC\n completes.\n"},{"path":[4,23,2,1,5],"span":[487,2,6]},{"path":[4,23,2,1,1],"span":[487,7,10]},{"path":[4,23,2,1,3],"span":[487,13,14]},{"path":[4,24],"span":[490,0,493,1]},{"path":[4,24,1],"span":[490,8,24]},{"path":[4,24,2,0],"span":[492,2,22],"leadingComments":" server_id is the identifier of the specific server to get.\n"},{"path":[4,24,2,0,5],"span":[492,2,7]},{"path":[4,24,2,0,1],"span":[492,8,17]},{"path":[4,24,2,0,3],"span":[492,20,21]},{"path":[4,25],"span":[495,0,499,1]},{"path":[4,25,1],"span":[495,8,25]},{"path":[4,25,2,0],"span":[498,2,20],"leadingComments":" The Server that corresponds to the requested server_id. This field\n should be set.\n"},{"path":[4,25,2,0,6],"span":[498,2,8]},{"path":[4,25,2,0,1],"span":[498,9,15]},{"path":[4,25,2,0,3],"span":[498,18,19]},{"path":[4,26],"span":[501,0,514,1]},{"path":[4,26,1],"span":[501,8,31]},{"path":[4,26,2,0],"span":[502,2,22]},{"path":[4,26,2,0,5],"span":[502,2,7]},{"path":[4,26,2,0,1],"span":[502,8,17]},{"path":[4,26,2,0,3],"span":[502,20,21]},{"path":[4,26,2,1],"span":[508,2,28],"leadingComments":" start_socket_id indicates that only sockets at or above this id should be\n included in the results.\n To request the first page, this must be set to 0. To request\n subsequent pages, the client generates this value by adding 1 to\n the highest seen result ID.\n"},{"path":[4,26,2,1,5],"span":[508,2,7]},{"path":[4,26,2,1,1],"span":[508,8,23]},{"path":[4,26,2,1,3],"span":[508,26,27]},{"path":[4,26,2,2],"span":[513,2,24],"leadingComments":" If non-zero, the server will return a page of results containing\n at most this many items. If zero, the server will choose a\n reasonable page size. Must never be negative.\n"},{"path":[4,26,2,2,5],"span":[513,2,7]},{"path":[4,26,2,2,1],"span":[513,8,19]},{"path":[4,26,2,2,3],"span":[513,22,23]},{"path":[4,27],"span":[516,0,525,1]},{"path":[4,27,1],"span":[516,8,32]},{"path":[4,27,2,0],"span":[520,2,36],"leadingComments":" list of socket refs that the connection detail service knows about. Sorted in\n ascending socket_id order.\n Must contain at least 1 result, otherwise 'end' must be true.\n"},{"path":[4,27,2,0,4],"span":[520,2,10]},{"path":[4,27,2,0,6],"span":[520,11,20]},{"path":[4,27,2,0,1],"span":[520,21,31]},{"path":[4,27,2,0,3],"span":[520,34,35]},{"path":[4,27,2,1],"span":[524,2,15],"leadingComments":" If set, indicates that the list of sockets is the final list. Requesting\n more sockets will only return more if they are created after this RPC\n completes.\n"},{"path":[4,27,2,1,5],"span":[524,2,6]},{"path":[4,27,2,1,1],"span":[524,7,10]},{"path":[4,27,2,1,3],"span":[524,13,14]},{"path":[4,28],"span":[527,0,530,1]},{"path":[4,28,1],"span":[527,8,25]},{"path":[4,28,2,0],"span":[529,2,23],"leadingComments":" channel_id is the identifier of the specific channel to get.\n"},{"path":[4,28,2,0,5],"span":[529,2,7]},{"path":[4,28,2,0,1],"span":[529,8,18]},{"path":[4,28,2,0,3],"span":[529,21,22]},{"path":[4,29],"span":[532,0,536,1]},{"path":[4,29,1],"span":[532,8,26]},{"path":[4,29,2,0],"span":[535,2,22],"leadingComments":" The Channel that corresponds to the requested channel_id. This field\n should be set.\n"},{"path":[4,29,2,0,6],"span":[535,2,9]},{"path":[4,29,2,0,1],"span":[535,10,17]},{"path":[4,29,2,0,3],"span":[535,20,21]},{"path":[4,30],"span":[538,0,541,1]},{"path":[4,30,1],"span":[538,8,28]},{"path":[4,30,2,0],"span":[540,2,26],"leadingComments":" subchannel_id is the identifier of the specific subchannel to get.\n"},{"path":[4,30,2,0,5],"span":[540,2,7]},{"path":[4,30,2,0,1],"span":[540,8,21]},{"path":[4,30,2,0,3],"span":[540,24,25]},{"path":[4,31],"span":[543,0,547,1]},{"path":[4,31,1],"span":[543,8,29]},{"path":[4,31,2,0],"span":[546,2,28],"leadingComments":" The Subchannel that corresponds to the requested subchannel_id. This\n field should be set.\n"},{"path":[4,31,2,0,6],"span":[546,2,12]},{"path":[4,31,2,0,1],"span":[546,13,23]},{"path":[4,31,2,0,3],"span":[546,26,27]},{"path":[4,32],"span":[549,0,557,1]},{"path":[4,32,1],"span":[549,8,24]},{"path":[4,32,2,0],"span":[551,2,22],"leadingComments":" socket_id is the identifier of the specific socket to get.\n"},{"path":[4,32,2,0,5],"span":[551,2,7]},{"path":[4,32,2,0,1],"span":[551,8,17]},{"path":[4,32,2,0,3],"span":[551,20,21]},{"path":[4,32,2,1],"span":[556,2,19],"leadingComments":" If true, the response will contain only high level information\n that is inexpensive to obtain. Fields thay may be omitted are\n documented.\n"},{"path":[4,32,2,1,5],"span":[556,2,6]},{"path":[4,32,2,1,1],"span":[556,7,14]},{"path":[4,32,2,1,3],"span":[556,17,18]},{"path":[4,33],"span":[559,0,563,1]},{"path":[4,33,1],"span":[559,8,25]},{"path":[4,33,2,0],"span":[562,2,20],"leadingComments":" The Socket that corresponds to the requested socket_id. This field\n should be set.\n"},{"path":[4,33,2,0,6],"span":[562,2,8]},{"path":[4,33,2,0,1],"span":[562,9,15]},{"path":[4,33,2,0,3],"span":[562,18,19]}]},"syntax":"proto3","bufExtension":{"isImport":false,"isSyntaxUnspecified":false}},{"name":"google/protobuf/empty.proto","package":"google.protobuf","messageType":[{"name":"Empty"}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"EmptyProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/emptypb","ccEnableArenas":true,"objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"sourceCodeInfo":{"location":[{"span":[30,0,51,16]},{"path":[12],"span":[30,0,18],"leadingDetachedComments":[" Protocol Buffers - Google's data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"]},{"path":[2],"span":[32,0,24]},{"path":[8],"span":[34,0,59]},{"path":[8,37],"span":[34,0,59]},{"path":[8],"span":[35,0,69]},{"path":[8,11],"span":[35,0,69]},{"path":[8],"span":[36,0,44]},{"path":[8,1],"span":[36,0,44]},{"path":[8],"span":[37,0,43]},{"path":[8,8],"span":[37,0,43]},{"path":[8],"span":[38,0,34]},{"path":[8,10],"span":[38,0,34]},{"path":[8],"span":[39,0,33]},{"path":[8,36],"span":[39,0,33]},{"path":[8],"span":[40,0,31]},{"path":[8,31],"span":[40,0,31]},{"path":[4,0],"span":[51,0,16],"leadingComments":" A generic empty message that you can re-use to avoid defining duplicated\n empty messages in your APIs. A typical example is to use it as the request\n or the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\n The JSON representation for `Empty` is empty JSON object `{}`.\n"},{"path":[4,0,1],"span":[51,8,13]}]},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"proto/luzmo.proto","package":"lansweeper.gateway.v1","dependency":["google/protobuf/empty.proto"],"messageType":[{"name":"InvalidateCacheClientQueriesRequest","field":[{"name":"client_keys","number":1,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"clientKeys"}]}],"service":[{"name":"Luzmo","method":[{"name":"InvalidateCacheClientQueries","inputType":".lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest","outputType":".google.protobuf.Empty","options":{}}]}],"sourceCodeInfo":{"location":[{"span":[0,0,12,1]},{"path":[12],"span":[0,0,18]},{"path":[3,0],"span":[2,0,37]},{"path":[2],"span":[4,0,30]},{"path":[4,0],"span":[6,0,8,1]},{"path":[4,0,1],"span":[6,8,43]},{"path":[4,0,2,0],"span":[7,4,36]},{"path":[4,0,2,0,4],"span":[7,4,12]},{"path":[4,0,2,0,5],"span":[7,13,19]},{"path":[4,0,2,0,1],"span":[7,20,31]},{"path":[4,0,2,0,3],"span":[7,34,35]},{"path":[6,0],"span":[10,0,12,1]},{"path":[6,0,1],"span":[10,8,13]},{"path":[6,0,2,0],"span":[11,4,109]},{"path":[6,0,2,0,1],"span":[11,8,36]},{"path":[6,0,2,0,2],"span":[11,38,73]},{"path":[6,0,2,0,3],"span":[11,84,105]}]},"syntax":"proto3","bufExtension":{"isImport":false,"isSyntaxUnspecified":false}}]}
@@ -0,0 +1,2 @@
1
+ export * from "./luzmo_grpc_pb.d";
2
+ export * from "./luzmo_pb.d";
@@ -0,0 +1,3 @@
1
+ const luzmo_grpc_pb = require("./luzmo_grpc_pb");
2
+ const luzmo_pb = require("./luzmo_pb");
3
+ Object.assign(exports, luzmo_grpc_pb, luzmo_pb)
@@ -0,0 +1,42 @@
1
+ // package: lansweeper.gateway.v1
2
+ // file: luzmo.proto
3
+
4
+ /* tslint:disable */
5
+ /* eslint-disable */
6
+
7
+ import * as grpc from "@grpc/grpc-js";
8
+ import * as luzmo_pb from "./luzmo_pb";
9
+ import * as google_protobuf_empty_pb from "google-protobuf/google/protobuf/empty_pb";
10
+
11
+ interface ILuzmoService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
12
+ invalidateCacheClientQueries: ILuzmoService_IInvalidateCacheClientQueries;
13
+ }
14
+
15
+ interface ILuzmoService_IInvalidateCacheClientQueries extends grpc.MethodDefinition<luzmo_pb.InvalidateCacheClientQueriesRequest, google_protobuf_empty_pb.Empty> {
16
+ path: "/lansweeper.gateway.v1.Luzmo/InvalidateCacheClientQueries";
17
+ requestStream: false;
18
+ responseStream: false;
19
+ requestSerialize: grpc.serialize<luzmo_pb.InvalidateCacheClientQueriesRequest>;
20
+ requestDeserialize: grpc.deserialize<luzmo_pb.InvalidateCacheClientQueriesRequest>;
21
+ responseSerialize: grpc.serialize<google_protobuf_empty_pb.Empty>;
22
+ responseDeserialize: grpc.deserialize<google_protobuf_empty_pb.Empty>;
23
+ }
24
+
25
+ export const LuzmoService: ILuzmoService;
26
+
27
+ export interface ILuzmoServer extends grpc.UntypedServiceImplementation {
28
+ invalidateCacheClientQueries: grpc.handleUnaryCall<luzmo_pb.InvalidateCacheClientQueriesRequest, google_protobuf_empty_pb.Empty>;
29
+ }
30
+
31
+ export interface ILuzmoClient {
32
+ invalidateCacheClientQueries(request: luzmo_pb.InvalidateCacheClientQueriesRequest, callback: (error: grpc.ServiceError | null, response: google_protobuf_empty_pb.Empty) => void): grpc.ClientUnaryCall;
33
+ invalidateCacheClientQueries(request: luzmo_pb.InvalidateCacheClientQueriesRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: google_protobuf_empty_pb.Empty) => void): grpc.ClientUnaryCall;
34
+ invalidateCacheClientQueries(request: luzmo_pb.InvalidateCacheClientQueriesRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: google_protobuf_empty_pb.Empty) => void): grpc.ClientUnaryCall;
35
+ }
36
+
37
+ export class LuzmoClient extends grpc.Client implements ILuzmoClient {
38
+ constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
39
+ public invalidateCacheClientQueries(request: luzmo_pb.InvalidateCacheClientQueriesRequest, callback: (error: grpc.ServiceError | null, response: google_protobuf_empty_pb.Empty) => void): grpc.ClientUnaryCall;
40
+ public invalidateCacheClientQueries(request: luzmo_pb.InvalidateCacheClientQueriesRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: google_protobuf_empty_pb.Empty) => void): grpc.ClientUnaryCall;
41
+ public invalidateCacheClientQueries(request: luzmo_pb.InvalidateCacheClientQueriesRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: google_protobuf_empty_pb.Empty) => void): grpc.ClientUnaryCall;
42
+ }
@@ -0,0 +1,45 @@
1
+ // GENERATED CODE -- DO NOT EDIT!
2
+
3
+ 'use strict';
4
+ var grpc = require('@grpc/grpc-js');
5
+ var luzmo_pb = require('./luzmo_pb.js');
6
+ var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');
7
+
8
+ function serialize_google_protobuf_Empty(arg) {
9
+ if (!(arg instanceof google_protobuf_empty_pb.Empty)) {
10
+ throw new Error('Expected argument of type google.protobuf.Empty');
11
+ }
12
+ return Buffer.from(arg.serializeBinary());
13
+ }
14
+
15
+ function deserialize_google_protobuf_Empty(buffer_arg) {
16
+ return google_protobuf_empty_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg));
17
+ }
18
+
19
+ function serialize_lansweeper_gateway_v1_InvalidateCacheClientQueriesRequest(arg) {
20
+ if (!(arg instanceof luzmo_pb.InvalidateCacheClientQueriesRequest)) {
21
+ throw new Error('Expected argument of type lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest');
22
+ }
23
+ return Buffer.from(arg.serializeBinary());
24
+ }
25
+
26
+ function deserialize_lansweeper_gateway_v1_InvalidateCacheClientQueriesRequest(buffer_arg) {
27
+ return luzmo_pb.InvalidateCacheClientQueriesRequest.deserializeBinary(new Uint8Array(buffer_arg));
28
+ }
29
+
30
+
31
+ var LuzmoService = exports.LuzmoService = {
32
+ invalidateCacheClientQueries: {
33
+ path: '/lansweeper.gateway.v1.Luzmo/InvalidateCacheClientQueries',
34
+ requestStream: false,
35
+ responseStream: false,
36
+ requestType: luzmo_pb.InvalidateCacheClientQueriesRequest,
37
+ responseType: google_protobuf_empty_pb.Empty,
38
+ requestSerialize: serialize_lansweeper_gateway_v1_InvalidateCacheClientQueriesRequest,
39
+ requestDeserialize: deserialize_lansweeper_gateway_v1_InvalidateCacheClientQueriesRequest,
40
+ responseSerialize: serialize_google_protobuf_Empty,
41
+ responseDeserialize: deserialize_google_protobuf_Empty,
42
+ },
43
+ };
44
+
45
+ exports.LuzmoClient = grpc.makeGenericClientConstructor(LuzmoService);
@@ -0,0 +1,30 @@
1
+ // package: lansweeper.gateway.v1
2
+ // file: luzmo.proto
3
+
4
+ /* tslint:disable */
5
+ /* eslint-disable */
6
+
7
+ import * as jspb from "google-protobuf";
8
+ import * as google_protobuf_empty_pb from "google-protobuf/google/protobuf/empty_pb";
9
+
10
+ export class InvalidateCacheClientQueriesRequest extends jspb.Message {
11
+ clearClientKeysList(): void;
12
+ getClientKeysList(): Array<string>;
13
+ setClientKeysList(value: Array<string>): InvalidateCacheClientQueriesRequest;
14
+ addClientKeys(value: string, index?: number): string;
15
+
16
+ serializeBinary(): Uint8Array;
17
+ toObject(includeInstance?: boolean): InvalidateCacheClientQueriesRequest.AsObject;
18
+ static toObject(includeInstance: boolean, msg: InvalidateCacheClientQueriesRequest): InvalidateCacheClientQueriesRequest.AsObject;
19
+ static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
20
+ static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
21
+ static serializeBinaryToWriter(message: InvalidateCacheClientQueriesRequest, writer: jspb.BinaryWriter): void;
22
+ static deserializeBinary(bytes: Uint8Array): InvalidateCacheClientQueriesRequest;
23
+ static deserializeBinaryFromReader(message: InvalidateCacheClientQueriesRequest, reader: jspb.BinaryReader): InvalidateCacheClientQueriesRequest;
24
+ }
25
+
26
+ export namespace InvalidateCacheClientQueriesRequest {
27
+ export type AsObject = {
28
+ clientKeysList: Array<string>,
29
+ }
30
+ }
@@ -0,0 +1,204 @@
1
+ // source: luzmo.proto
2
+ /**
3
+ * @fileoverview
4
+ * @enhanceable
5
+ * @suppress {missingRequire} reports error on implicit type usages.
6
+ * @suppress {messageConventions} JS Compiler reports an error if a variable or
7
+ * field starts with 'MSG_' and isn't a translatable message.
8
+ * @public
9
+ */
10
+ // GENERATED CODE -- DO NOT EDIT!
11
+ /* eslint-disable */
12
+ // @ts-nocheck
13
+
14
+ var jspb = require('google-protobuf');
15
+ var goog = jspb;
16
+ var global = (function() {
17
+ if (this) { return this; }
18
+ if (typeof window !== 'undefined') { return window; }
19
+ if (typeof global !== 'undefined') { return global; }
20
+ if (typeof self !== 'undefined') { return self; }
21
+ return Function('return this')();
22
+ }.call(null));
23
+
24
+ var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');
25
+ goog.object.extend(proto, google_protobuf_empty_pb);
26
+ goog.exportSymbol('proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest', null, global);
27
+ /**
28
+ * Generated by JsPbCodeGenerator.
29
+ * @param {Array=} opt_data Optional initial data array, typically from a
30
+ * server response, or constructed directly in Javascript. The array is used
31
+ * in place and becomes part of the constructed object. It is not cloned.
32
+ * If no data is provided, the constructed object will be empty, but still
33
+ * valid.
34
+ * @extends {jspb.Message}
35
+ * @constructor
36
+ */
37
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest = function(opt_data) {
38
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.repeatedFields_, null);
39
+ };
40
+ goog.inherits(proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest, jspb.Message);
41
+ if (goog.DEBUG && !COMPILED) {
42
+ /**
43
+ * @public
44
+ * @override
45
+ */
46
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.displayName = 'proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest';
47
+ }
48
+
49
+ /**
50
+ * List of repeated fields within this message type.
51
+ * @private {!Array<number>}
52
+ * @const
53
+ */
54
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.repeatedFields_ = [1];
55
+
56
+
57
+
58
+ if (jspb.Message.GENERATE_TO_OBJECT) {
59
+ /**
60
+ * Creates an object representation of this proto.
61
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
62
+ * Optional fields that are not set will be set to undefined.
63
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
64
+ * For the list of reserved names please see:
65
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
66
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
67
+ * JSPB instance for transitional soy proto support:
68
+ * http://goto/soy-param-migration
69
+ * @return {!Object}
70
+ */
71
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.prototype.toObject = function(opt_includeInstance) {
72
+ return proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.toObject(opt_includeInstance, this);
73
+ };
74
+
75
+
76
+ /**
77
+ * Static version of the {@see toObject} method.
78
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
79
+ * the JSPB instance for transitional soy proto support:
80
+ * http://goto/soy-param-migration
81
+ * @param {!proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest} msg The msg instance to transform.
82
+ * @return {!Object}
83
+ * @suppress {unusedLocalVariables} f is only used for nested messages
84
+ */
85
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.toObject = function(includeInstance, msg) {
86
+ var f, obj = {
87
+ clientKeysList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f
88
+ };
89
+
90
+ if (includeInstance) {
91
+ obj.$jspbMessageInstance = msg;
92
+ }
93
+ return obj;
94
+ };
95
+ }
96
+
97
+
98
+ /**
99
+ * Deserializes binary data (in protobuf wire format).
100
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
101
+ * @return {!proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest}
102
+ */
103
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.deserializeBinary = function(bytes) {
104
+ var reader = new jspb.BinaryReader(bytes);
105
+ var msg = new proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest;
106
+ return proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.deserializeBinaryFromReader(msg, reader);
107
+ };
108
+
109
+
110
+ /**
111
+ * Deserializes binary data (in protobuf wire format) from the
112
+ * given reader into the given message object.
113
+ * @param {!proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest} msg The message object to deserialize into.
114
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
115
+ * @return {!proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest}
116
+ */
117
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.deserializeBinaryFromReader = function(msg, reader) {
118
+ while (reader.nextField()) {
119
+ if (reader.isEndGroup()) {
120
+ break;
121
+ }
122
+ var field = reader.getFieldNumber();
123
+ switch (field) {
124
+ case 1:
125
+ var value = /** @type {string} */ (reader.readString());
126
+ msg.addClientKeys(value);
127
+ break;
128
+ default:
129
+ reader.skipField();
130
+ break;
131
+ }
132
+ }
133
+ return msg;
134
+ };
135
+
136
+
137
+ /**
138
+ * Serializes the message to binary data (in protobuf wire format).
139
+ * @return {!Uint8Array}
140
+ */
141
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.prototype.serializeBinary = function() {
142
+ var writer = new jspb.BinaryWriter();
143
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.serializeBinaryToWriter(this, writer);
144
+ return writer.getResultBuffer();
145
+ };
146
+
147
+
148
+ /**
149
+ * Serializes the given message to binary data (in protobuf wire
150
+ * format), writing to the given BinaryWriter.
151
+ * @param {!proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest} message
152
+ * @param {!jspb.BinaryWriter} writer
153
+ * @suppress {unusedLocalVariables} f is only used for nested messages
154
+ */
155
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.serializeBinaryToWriter = function(message, writer) {
156
+ var f = undefined;
157
+ f = message.getClientKeysList();
158
+ if (f.length > 0) {
159
+ writer.writeRepeatedString(
160
+ 1,
161
+ f
162
+ );
163
+ }
164
+ };
165
+
166
+
167
+ /**
168
+ * repeated string client_keys = 1;
169
+ * @return {!Array<string>}
170
+ */
171
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.prototype.getClientKeysList = function() {
172
+ return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 1));
173
+ };
174
+
175
+
176
+ /**
177
+ * @param {!Array<string>} value
178
+ * @return {!proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest} returns this
179
+ */
180
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.prototype.setClientKeysList = function(value) {
181
+ return jspb.Message.setField(this, 1, value || []);
182
+ };
183
+
184
+
185
+ /**
186
+ * @param {string} value
187
+ * @param {number=} opt_index
188
+ * @return {!proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest} returns this
189
+ */
190
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.prototype.addClientKeys = function(value, opt_index) {
191
+ return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
192
+ };
193
+
194
+
195
+ /**
196
+ * Clears the list making it empty but non-null.
197
+ * @return {!proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest} returns this
198
+ */
199
+ proto.lansweeper.gateway.v1.InvalidateCacheClientQueriesRequest.prototype.clearClientKeysList = function() {
200
+ return this.setClientKeysList([]);
201
+ };
202
+
203
+
204
+ goog.object.extend(exports, proto.lansweeper.gateway.v1);
package/package.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "@lansweeper/gateway-grpc",
3
+ "version": "0.0.2",
4
+ "description": "Gateway gRPC",
5
+ "main": "gen-proto/index.js",
6
+ "types": "gen-proto/index.d.ts",
7
+ "license": "MIT",
8
+ "dependencies": {
9
+ "@grpc/grpc-js": "^1.6.2",
10
+ "google-protobuf": "^3.17.0"
11
+ },
12
+ "devDependencies": {
13
+ "@types/google-protobuf": "^3.15.5"
14
+ },
15
+ "gitHead": "cee0297080f421f4a6980275e4cdfa448430aede"
16
+ }
@@ -0,0 +1,13 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/empty.proto";
4
+
5
+ package lansweeper.gateway.v1;
6
+
7
+ message InvalidateCacheClientQueriesRequest {
8
+ repeated string client_keys = 1;
9
+ }
10
+
11
+ service Luzmo {
12
+ rpc InvalidateCacheClientQueries (InvalidateCacheClientQueriesRequest) returns (google.protobuf.Empty) {}
13
+ }