@lansweeper/permissions-grpc 0.0.5 → 0.0.7

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/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.0.7](https://github.com/Lansweeper/lansweeperapis/compare/@lansweeper/permissions-grpc@0.0.6...@lansweeper/permissions-grpc@0.0.7) (2021-11-23)
7
+
8
+ **Note:** Version bump only for package @lansweeper/permissions-grpc
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.0.6](https://github.com/Lansweeper/lansweeperapis/compare/@lansweeper/permissions-grpc@0.0.5...@lansweeper/permissions-grpc@0.0.6) (2021-11-23)
15
+
16
+ **Note:** Version bump only for package @lansweeper/permissions-grpc
17
+
18
+
19
+
20
+
21
+
6
22
  ## [0.0.5](https://github.com/Lansweeper/lansweeperapis/compare/@lansweeper/permissions-grpc@0.0.4...@lansweeper/permissions-grpc@0.0.5) (2021-09-16)
7
23
 
8
24
  **Note:** Version bump only for package @lansweeper/permissions-grpc
package/buf.yaml CHANGED
@@ -4,6 +4,7 @@ lint:
4
4
  - DEFAULT
5
5
  - FILE_LOWER_SNAKE_CASE
6
6
  except:
7
+ - FIELD_LOWER_SNAKE_CASE
7
8
  - PACKAGE_DIRECTORY_MATCH
8
9
  - PACKAGE_SAME_DIRECTORY
9
10
  - SERVICE_SUFFIX
@@ -1 +1 @@
1
- {"file":[{"name":"proto/permissions.proto","package":"checkpermission","messageType":[{"name":"CheckPermissionRequest","field":[{"name":"site_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"siteId"},{"name":"account_id","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"accountId"},{"name":"action","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"action"},{"name":"trace_id","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"traceId"}]},{"name":"CheckPermissionResponse","field":[{"name":"granted","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"granted"},{"name":"installations","number":2,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"installations"},{"name":"asset_scopes","number":3,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"assetScopes"},{"name":"derived_permissions","number":4,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"derivedPermissions"}]},{"name":"GetUserPermissionsRequest","field":[{"name":"user_id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"userId"},{"name":"site_id","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"siteId"},{"name":"trace_id","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":0,"jsonName":"traceId","proto3Optional":true}],"oneofDecl":[{"name":"_trace_id"}]},{"name":"GetUserPermissionsResponse","field":[{"name":"permissions","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".checkpermission.GetUserPermissionsResponse.PermissionsEntry","jsonName":"permissions"}],"nestedType":[{"name":"Permissions","field":[{"name":"installations","number":1,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"installations"},{"name":"asset_scopes","number":2,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"assetScopes"}]},{"name":"PermissionsEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".checkpermission.GetUserPermissionsResponse.Permissions","jsonName":"value"}],"options":{"mapEntry":true}}]}],"service":[{"name":"CheckPermissionService","method":[{"name":"CheckPermission","inputType":".checkpermission.CheckPermissionRequest","outputType":".checkpermission.CheckPermissionResponse","options":{}},{"name":"GetUserPermissions","inputType":".checkpermission.GetUserPermissionsRequest","outputType":".checkpermission.GetUserPermissionsResponse","options":{}}]}],"sourceCodeInfo":{"location":[{"span":[0,0,36,1]},{"path":[12],"span":[0,0,18]},{"path":[2],"span":[2,0,24]},{"path":[4,0],"span":[4,0,9,1]},{"path":[4,0,1],"span":[4,8,30]},{"path":[4,0,2,0],"span":[5,2,21]},{"path":[4,0,2,0,5],"span":[5,2,8]},{"path":[4,0,2,0,1],"span":[5,9,16]},{"path":[4,0,2,0,3],"span":[5,19,20]},{"path":[4,0,2,1],"span":[6,2,24]},{"path":[4,0,2,1,5],"span":[6,2,8]},{"path":[4,0,2,1,1],"span":[6,9,19]},{"path":[4,0,2,1,3],"span":[6,22,23]},{"path":[4,0,2,2],"span":[7,2,20]},{"path":[4,0,2,2,5],"span":[7,2,8]},{"path":[4,0,2,2,1],"span":[7,9,15]},{"path":[4,0,2,2,3],"span":[7,18,19]},{"path":[4,0,2,3],"span":[8,2,22]},{"path":[4,0,2,3,5],"span":[8,2,8]},{"path":[4,0,2,3,1],"span":[8,9,17]},{"path":[4,0,2,3,3],"span":[8,20,21]},{"path":[4,1],"span":[11,0,16,1]},{"path":[4,1,1],"span":[11,8,31]},{"path":[4,1,2,0],"span":[12,2,19]},{"path":[4,1,2,0,5],"span":[12,2,6]},{"path":[4,1,2,0,1],"span":[12,7,14]},{"path":[4,1,2,0,3],"span":[12,17,18]},{"path":[4,1,2,1],"span":[13,2,36]},{"path":[4,1,2,1,4],"span":[13,2,10]},{"path":[4,1,2,1,5],"span":[13,11,17]},{"path":[4,1,2,1,1],"span":[13,18,31]},{"path":[4,1,2,1,3],"span":[13,34,35]},{"path":[4,1,2,2],"span":[14,2,35]},{"path":[4,1,2,2,4],"span":[14,2,10]},{"path":[4,1,2,2,5],"span":[14,11,17]},{"path":[4,1,2,2,1],"span":[14,18,30]},{"path":[4,1,2,2,3],"span":[14,33,34]},{"path":[4,1,2,3],"span":[15,2,42]},{"path":[4,1,2,3,4],"span":[15,2,10]},{"path":[4,1,2,3,5],"span":[15,11,17]},{"path":[4,1,2,3,1],"span":[15,18,37]},{"path":[4,1,2,3,3],"span":[15,40,41]},{"path":[4,2],"span":[18,0,22,1]},{"path":[4,2,1],"span":[18,8,33]},{"path":[4,2,2,0],"span":[19,2,21]},{"path":[4,2,2,0,5],"span":[19,2,8]},{"path":[4,2,2,0,1],"span":[19,9,16]},{"path":[4,2,2,0,3],"span":[19,19,20]},{"path":[4,2,2,1],"span":[20,2,21]},{"path":[4,2,2,1,5],"span":[20,2,8]},{"path":[4,2,2,1,1],"span":[20,9,16]},{"path":[4,2,2,1,3],"span":[20,19,20]},{"path":[4,2,2,2],"span":[21,2,31]},{"path":[4,2,2,2,4],"span":[21,2,10]},{"path":[4,2,2,2,5],"span":[21,11,17]},{"path":[4,2,2,2,1],"span":[21,18,26]},{"path":[4,2,2,2,3],"span":[21,29,30]},{"path":[4,3],"span":[24,0,30,1]},{"path":[4,3,1],"span":[24,8,34]},{"path":[4,3,3,0],"span":[25,2,28,3]},{"path":[4,3,3,0,1],"span":[25,10,21]},{"path":[4,3,3,0,2,0],"span":[26,4,38]},{"path":[4,3,3,0,2,0,4],"span":[26,4,12]},{"path":[4,3,3,0,2,0,5],"span":[26,13,19]},{"path":[4,3,3,0,2,0,1],"span":[26,20,33]},{"path":[4,3,3,0,2,0,3],"span":[26,36,37]},{"path":[4,3,3,0,2,1],"span":[27,4,37]},{"path":[4,3,3,0,2,1,4],"span":[27,4,12]},{"path":[4,3,3,0,2,1,5],"span":[27,13,19]},{"path":[4,3,3,0,2,1,1],"span":[27,20,32]},{"path":[4,3,3,0,2,1,3],"span":[27,35,36]},{"path":[4,3,2,0],"span":[29,2,43]},{"path":[4,3,2,0,6],"span":[29,2,26]},{"path":[4,3,2,0,1],"span":[29,27,38]},{"path":[4,3,2,0,3],"span":[29,41,42]},{"path":[6,0],"span":[33,0,36,1]},{"path":[6,0,1],"span":[33,8,30]},{"path":[6,0,2,0],"span":[34,2,83]},{"path":[6,0,2,0,1],"span":[34,6,21]},{"path":[6,0,2,0,2],"span":[34,23,45]},{"path":[6,0,2,0,3],"span":[34,56,79]},{"path":[6,0,2,1],"span":[35,2,92]},{"path":[6,0,2,1,1],"span":[35,6,24]},{"path":[6,0,2,1,2],"span":[35,26,51]},{"path":[6,0,2,1,3],"span":[35,62,88]}]},"syntax":"proto3","bufExtension":{"isImport":false,"isSyntaxUnspecified":false}}]}
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":"proto/permissions.proto","package":"checkpermission","messageType":[{"name":"CheckPermissionRequest","field":[{"name":"siteId","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"siteId"},{"name":"accountId","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"accountId"},{"name":"action","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"action"},{"name":"traceId","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"traceId"}]},{"name":"CheckPermissionResponse","field":[{"name":"granted","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"granted"},{"name":"installations","number":2,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"installations"},{"name":"assetScopes","number":3,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"assetScopes"},{"name":"derivedPermissions","number":4,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"derivedPermissions"}]},{"name":"GetUserPermissionsRequest","field":[{"name":"userId","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"userId"},{"name":"siteId","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"siteId"},{"name":"traceId","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":0,"jsonName":"traceId","proto3Optional":true}],"oneofDecl":[{"name":"_traceId"}]},{"name":"GetUserPermissionsResponse","field":[{"name":"permissions","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".checkpermission.GetUserPermissionsResponse.PermissionsEntry","jsonName":"permissions"}],"nestedType":[{"name":"Permissions","field":[{"name":"installations","number":1,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"installations"},{"name":"assetScopes","number":2,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"assetScopes"}]},{"name":"PermissionsEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".checkpermission.GetUserPermissionsResponse.Permissions","jsonName":"value"}],"options":{"mapEntry":true}}]}],"service":[{"name":"CheckPermissionService","method":[{"name":"CheckPermission","inputType":".checkpermission.CheckPermissionRequest","outputType":".checkpermission.CheckPermissionResponse","options":{}},{"name":"GetUserPermissions","inputType":".checkpermission.GetUserPermissionsRequest","outputType":".checkpermission.GetUserPermissionsResponse","options":{}}]}],"sourceCodeInfo":{"location":[{"span":[0,0,36,1]},{"path":[12],"span":[0,0,18]},{"path":[2],"span":[2,0,24]},{"path":[4,0],"span":[4,0,9,1]},{"path":[4,0,1],"span":[4,8,30]},{"path":[4,0,2,0],"span":[5,2,20]},{"path":[4,0,2,0,5],"span":[5,2,8]},{"path":[4,0,2,0,1],"span":[5,9,15]},{"path":[4,0,2,0,3],"span":[5,18,19]},{"path":[4,0,2,1],"span":[6,2,23]},{"path":[4,0,2,1,5],"span":[6,2,8]},{"path":[4,0,2,1,1],"span":[6,9,18]},{"path":[4,0,2,1,3],"span":[6,21,22]},{"path":[4,0,2,2],"span":[7,2,20]},{"path":[4,0,2,2,5],"span":[7,2,8]},{"path":[4,0,2,2,1],"span":[7,9,15]},{"path":[4,0,2,2,3],"span":[7,18,19]},{"path":[4,0,2,3],"span":[8,2,21]},{"path":[4,0,2,3,5],"span":[8,2,8]},{"path":[4,0,2,3,1],"span":[8,9,16]},{"path":[4,0,2,3,3],"span":[8,19,20]},{"path":[4,1],"span":[11,0,16,1]},{"path":[4,1,1],"span":[11,8,31]},{"path":[4,1,2,0],"span":[12,2,19]},{"path":[4,1,2,0,5],"span":[12,2,6]},{"path":[4,1,2,0,1],"span":[12,7,14]},{"path":[4,1,2,0,3],"span":[12,17,18]},{"path":[4,1,2,1],"span":[13,2,36]},{"path":[4,1,2,1,4],"span":[13,2,10]},{"path":[4,1,2,1,5],"span":[13,11,17]},{"path":[4,1,2,1,1],"span":[13,18,31]},{"path":[4,1,2,1,3],"span":[13,34,35]},{"path":[4,1,2,2],"span":[14,2,34]},{"path":[4,1,2,2,4],"span":[14,2,10]},{"path":[4,1,2,2,5],"span":[14,11,17]},{"path":[4,1,2,2,1],"span":[14,18,29]},{"path":[4,1,2,2,3],"span":[14,32,33]},{"path":[4,1,2,3],"span":[15,2,41]},{"path":[4,1,2,3,4],"span":[15,2,10]},{"path":[4,1,2,3,5],"span":[15,11,17]},{"path":[4,1,2,3,1],"span":[15,18,36]},{"path":[4,1,2,3,3],"span":[15,39,40]},{"path":[4,2],"span":[18,0,22,1]},{"path":[4,2,1],"span":[18,8,33]},{"path":[4,2,2,0],"span":[19,2,20]},{"path":[4,2,2,0,5],"span":[19,2,8]},{"path":[4,2,2,0,1],"span":[19,9,15]},{"path":[4,2,2,0,3],"span":[19,18,19]},{"path":[4,2,2,1],"span":[20,2,20]},{"path":[4,2,2,1,5],"span":[20,2,8]},{"path":[4,2,2,1,1],"span":[20,9,15]},{"path":[4,2,2,1,3],"span":[20,18,19]},{"path":[4,2,2,2],"span":[21,2,30]},{"path":[4,2,2,2,4],"span":[21,2,10]},{"path":[4,2,2,2,5],"span":[21,11,17]},{"path":[4,2,2,2,1],"span":[21,18,25]},{"path":[4,2,2,2,3],"span":[21,28,29]},{"path":[4,3],"span":[24,0,30,1]},{"path":[4,3,1],"span":[24,8,34]},{"path":[4,3,3,0],"span":[25,2,28,3]},{"path":[4,3,3,0,1],"span":[25,10,21]},{"path":[4,3,3,0,2,0],"span":[26,4,38]},{"path":[4,3,3,0,2,0,4],"span":[26,4,12]},{"path":[4,3,3,0,2,0,5],"span":[26,13,19]},{"path":[4,3,3,0,2,0,1],"span":[26,20,33]},{"path":[4,3,3,0,2,0,3],"span":[26,36,37]},{"path":[4,3,3,0,2,1],"span":[27,4,36]},{"path":[4,3,3,0,2,1,4],"span":[27,4,12]},{"path":[4,3,3,0,2,1,5],"span":[27,13,19]},{"path":[4,3,3,0,2,1,1],"span":[27,20,31]},{"path":[4,3,3,0,2,1,3],"span":[27,34,35]},{"path":[4,3,2,0],"span":[29,2,43]},{"path":[4,3,2,0,6],"span":[29,2,26]},{"path":[4,3,2,0,1],"span":[29,27,38]},{"path":[4,3,2,0,3],"span":[29,41,42]},{"path":[6,0],"span":[33,0,36,1]},{"path":[6,0,1],"span":[33,8,30]},{"path":[6,0,2,0],"span":[34,2,83]},{"path":[6,0,2,0,1],"span":[34,6,21]},{"path":[6,0,2,0,2],"span":[34,23,45]},{"path":[6,0,2,0,3],"span":[34,56,79]},{"path":[6,0,2,1],"span":[35,2,92]},{"path":[6,0,2,1,1],"span":[35,6,24]},{"path":[6,0,2,1,2],"span":[35,26,51]},{"path":[6,0,2,1,3],"span":[35,62,88]}]},"syntax":"proto3","bufExtension":{"isImport":false,"isSyntaxUnspecified":false}}]}
@@ -7,14 +7,14 @@
7
7
  import * as jspb from "google-protobuf";
8
8
 
9
9
  export class CheckPermissionRequest extends jspb.Message {
10
- getSiteId(): string;
11
- setSiteId(value: string): CheckPermissionRequest;
12
- getAccountId(): string;
13
- setAccountId(value: string): CheckPermissionRequest;
10
+ getSiteid(): string;
11
+ setSiteid(value: string): CheckPermissionRequest;
12
+ getAccountid(): string;
13
+ setAccountid(value: string): CheckPermissionRequest;
14
14
  getAction(): string;
15
15
  setAction(value: string): CheckPermissionRequest;
16
- getTraceId(): string;
17
- setTraceId(value: string): CheckPermissionRequest;
16
+ getTraceid(): string;
17
+ setTraceid(value: string): CheckPermissionRequest;
18
18
 
19
19
  serializeBinary(): Uint8Array;
20
20
  toObject(includeInstance?: boolean): CheckPermissionRequest.AsObject;
@@ -28,10 +28,10 @@ export class CheckPermissionRequest extends jspb.Message {
28
28
 
29
29
  export namespace CheckPermissionRequest {
30
30
  export type AsObject = {
31
- siteId: string,
32
- accountId: string,
31
+ siteid: string,
32
+ accountid: string,
33
33
  action: string,
34
- traceId: string,
34
+ traceid: string,
35
35
  }
36
36
  }
37
37
 
@@ -42,14 +42,14 @@ export class CheckPermissionResponse extends jspb.Message {
42
42
  getInstallationsList(): Array<string>;
43
43
  setInstallationsList(value: Array<string>): CheckPermissionResponse;
44
44
  addInstallations(value: string, index?: number): string;
45
- clearAssetScopesList(): void;
46
- getAssetScopesList(): Array<string>;
47
- setAssetScopesList(value: Array<string>): CheckPermissionResponse;
48
- addAssetScopes(value: string, index?: number): string;
49
- clearDerivedPermissionsList(): void;
50
- getDerivedPermissionsList(): Array<string>;
51
- setDerivedPermissionsList(value: Array<string>): CheckPermissionResponse;
52
- addDerivedPermissions(value: string, index?: number): string;
45
+ clearAssetscopesList(): void;
46
+ getAssetscopesList(): Array<string>;
47
+ setAssetscopesList(value: Array<string>): CheckPermissionResponse;
48
+ addAssetscopes(value: string, index?: number): string;
49
+ clearDerivedpermissionsList(): void;
50
+ getDerivedpermissionsList(): Array<string>;
51
+ setDerivedpermissionsList(value: Array<string>): CheckPermissionResponse;
52
+ addDerivedpermissions(value: string, index?: number): string;
53
53
 
54
54
  serializeBinary(): Uint8Array;
55
55
  toObject(includeInstance?: boolean): CheckPermissionResponse.AsObject;
@@ -65,21 +65,21 @@ export namespace CheckPermissionResponse {
65
65
  export type AsObject = {
66
66
  granted: boolean,
67
67
  installationsList: Array<string>,
68
- assetScopesList: Array<string>,
69
- derivedPermissionsList: Array<string>,
68
+ assetscopesList: Array<string>,
69
+ derivedpermissionsList: Array<string>,
70
70
  }
71
71
  }
72
72
 
73
73
  export class GetUserPermissionsRequest extends jspb.Message {
74
- getUserId(): string;
75
- setUserId(value: string): GetUserPermissionsRequest;
76
- getSiteId(): string;
77
- setSiteId(value: string): GetUserPermissionsRequest;
74
+ getUserid(): string;
75
+ setUserid(value: string): GetUserPermissionsRequest;
76
+ getSiteid(): string;
77
+ setSiteid(value: string): GetUserPermissionsRequest;
78
78
 
79
- hasTraceId(): boolean;
80
- clearTraceId(): void;
81
- getTraceId(): string | undefined;
82
- setTraceId(value: string): GetUserPermissionsRequest;
79
+ hasTraceid(): boolean;
80
+ clearTraceid(): void;
81
+ getTraceid(): string | undefined;
82
+ setTraceid(value: string): GetUserPermissionsRequest;
83
83
 
84
84
  serializeBinary(): Uint8Array;
85
85
  toObject(includeInstance?: boolean): GetUserPermissionsRequest.AsObject;
@@ -93,9 +93,9 @@ export class GetUserPermissionsRequest extends jspb.Message {
93
93
 
94
94
  export namespace GetUserPermissionsRequest {
95
95
  export type AsObject = {
96
- userId: string,
97
- siteId: string,
98
- traceId?: string,
96
+ userid: string,
97
+ siteid: string,
98
+ traceid?: string,
99
99
  }
100
100
  }
101
101
 
@@ -126,10 +126,10 @@ export namespace GetUserPermissionsResponse {
126
126
  getInstallationsList(): Array<string>;
127
127
  setInstallationsList(value: Array<string>): Permissions;
128
128
  addInstallations(value: string, index?: number): string;
129
- clearAssetScopesList(): void;
130
- getAssetScopesList(): Array<string>;
131
- setAssetScopesList(value: Array<string>): Permissions;
132
- addAssetScopes(value: string, index?: number): string;
129
+ clearAssetscopesList(): void;
130
+ getAssetscopesList(): Array<string>;
131
+ setAssetscopesList(value: Array<string>): Permissions;
132
+ addAssetscopes(value: string, index?: number): string;
133
133
 
134
134
  serializeBinary(): Uint8Array;
135
135
  toObject(includeInstance?: boolean): Permissions.AsObject;
@@ -144,7 +144,7 @@ export namespace GetUserPermissionsResponse {
144
144
  export namespace Permissions {
145
145
  export type AsObject = {
146
146
  installationsList: Array<string>,
147
- assetScopesList: Array<string>,
147
+ assetscopesList: Array<string>,
148
148
  }
149
149
  }
150
150
 
@@ -157,10 +157,10 @@ proto.checkpermission.CheckPermissionRequest.prototype.toObject = function(opt_i
157
157
  */
158
158
  proto.checkpermission.CheckPermissionRequest.toObject = function(includeInstance, msg) {
159
159
  var f, obj = {
160
- siteId: jspb.Message.getFieldWithDefault(msg, 1, ""),
161
- accountId: jspb.Message.getFieldWithDefault(msg, 2, ""),
160
+ siteid: jspb.Message.getFieldWithDefault(msg, 1, ""),
161
+ accountid: jspb.Message.getFieldWithDefault(msg, 2, ""),
162
162
  action: jspb.Message.getFieldWithDefault(msg, 3, ""),
163
- traceId: jspb.Message.getFieldWithDefault(msg, 4, "")
163
+ traceid: jspb.Message.getFieldWithDefault(msg, 4, "")
164
164
  };
165
165
 
166
166
  if (includeInstance) {
@@ -199,11 +199,11 @@ proto.checkpermission.CheckPermissionRequest.deserializeBinaryFromReader = funct
199
199
  switch (field) {
200
200
  case 1:
201
201
  var value = /** @type {string} */ (reader.readString());
202
- msg.setSiteId(value);
202
+ msg.setSiteid(value);
203
203
  break;
204
204
  case 2:
205
205
  var value = /** @type {string} */ (reader.readString());
206
- msg.setAccountId(value);
206
+ msg.setAccountid(value);
207
207
  break;
208
208
  case 3:
209
209
  var value = /** @type {string} */ (reader.readString());
@@ -211,7 +211,7 @@ proto.checkpermission.CheckPermissionRequest.deserializeBinaryFromReader = funct
211
211
  break;
212
212
  case 4:
213
213
  var value = /** @type {string} */ (reader.readString());
214
- msg.setTraceId(value);
214
+ msg.setTraceid(value);
215
215
  break;
216
216
  default:
217
217
  reader.skipField();
@@ -242,14 +242,14 @@ proto.checkpermission.CheckPermissionRequest.prototype.serializeBinary = functio
242
242
  */
243
243
  proto.checkpermission.CheckPermissionRequest.serializeBinaryToWriter = function(message, writer) {
244
244
  var f = undefined;
245
- f = message.getSiteId();
245
+ f = message.getSiteid();
246
246
  if (f.length > 0) {
247
247
  writer.writeString(
248
248
  1,
249
249
  f
250
250
  );
251
251
  }
252
- f = message.getAccountId();
252
+ f = message.getAccountid();
253
253
  if (f.length > 0) {
254
254
  writer.writeString(
255
255
  2,
@@ -263,7 +263,7 @@ proto.checkpermission.CheckPermissionRequest.serializeBinaryToWriter = function(
263
263
  f
264
264
  );
265
265
  }
266
- f = message.getTraceId();
266
+ f = message.getTraceid();
267
267
  if (f.length > 0) {
268
268
  writer.writeString(
269
269
  4,
@@ -274,10 +274,10 @@ proto.checkpermission.CheckPermissionRequest.serializeBinaryToWriter = function(
274
274
 
275
275
 
276
276
  /**
277
- * optional string site_id = 1;
277
+ * optional string siteId = 1;
278
278
  * @return {string}
279
279
  */
280
- proto.checkpermission.CheckPermissionRequest.prototype.getSiteId = function() {
280
+ proto.checkpermission.CheckPermissionRequest.prototype.getSiteid = function() {
281
281
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
282
282
  };
283
283
 
@@ -286,16 +286,16 @@ proto.checkpermission.CheckPermissionRequest.prototype.getSiteId = function() {
286
286
  * @param {string} value
287
287
  * @return {!proto.checkpermission.CheckPermissionRequest} returns this
288
288
  */
289
- proto.checkpermission.CheckPermissionRequest.prototype.setSiteId = function(value) {
289
+ proto.checkpermission.CheckPermissionRequest.prototype.setSiteid = function(value) {
290
290
  return jspb.Message.setProto3StringField(this, 1, value);
291
291
  };
292
292
 
293
293
 
294
294
  /**
295
- * optional string account_id = 2;
295
+ * optional string accountId = 2;
296
296
  * @return {string}
297
297
  */
298
- proto.checkpermission.CheckPermissionRequest.prototype.getAccountId = function() {
298
+ proto.checkpermission.CheckPermissionRequest.prototype.getAccountid = function() {
299
299
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
300
300
  };
301
301
 
@@ -304,7 +304,7 @@ proto.checkpermission.CheckPermissionRequest.prototype.getAccountId = function()
304
304
  * @param {string} value
305
305
  * @return {!proto.checkpermission.CheckPermissionRequest} returns this
306
306
  */
307
- proto.checkpermission.CheckPermissionRequest.prototype.setAccountId = function(value) {
307
+ proto.checkpermission.CheckPermissionRequest.prototype.setAccountid = function(value) {
308
308
  return jspb.Message.setProto3StringField(this, 2, value);
309
309
  };
310
310
 
@@ -328,10 +328,10 @@ proto.checkpermission.CheckPermissionRequest.prototype.setAction = function(valu
328
328
 
329
329
 
330
330
  /**
331
- * optional string trace_id = 4;
331
+ * optional string traceId = 4;
332
332
  * @return {string}
333
333
  */
334
- proto.checkpermission.CheckPermissionRequest.prototype.getTraceId = function() {
334
+ proto.checkpermission.CheckPermissionRequest.prototype.getTraceid = function() {
335
335
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
336
336
  };
337
337
 
@@ -340,7 +340,7 @@ proto.checkpermission.CheckPermissionRequest.prototype.getTraceId = function() {
340
340
  * @param {string} value
341
341
  * @return {!proto.checkpermission.CheckPermissionRequest} returns this
342
342
  */
343
- proto.checkpermission.CheckPermissionRequest.prototype.setTraceId = function(value) {
343
+ proto.checkpermission.CheckPermissionRequest.prototype.setTraceid = function(value) {
344
344
  return jspb.Message.setProto3StringField(this, 4, value);
345
345
  };
346
346
 
@@ -386,8 +386,8 @@ proto.checkpermission.CheckPermissionResponse.toObject = function(includeInstanc
386
386
  var f, obj = {
387
387
  granted: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
388
388
  installationsList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,
389
- assetScopesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
390
- derivedPermissionsList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f
389
+ assetscopesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
390
+ derivedpermissionsList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f
391
391
  };
392
392
 
393
393
  if (includeInstance) {
@@ -434,11 +434,11 @@ proto.checkpermission.CheckPermissionResponse.deserializeBinaryFromReader = func
434
434
  break;
435
435
  case 3:
436
436
  var value = /** @type {string} */ (reader.readString());
437
- msg.addAssetScopes(value);
437
+ msg.addAssetscopes(value);
438
438
  break;
439
439
  case 4:
440
440
  var value = /** @type {string} */ (reader.readString());
441
- msg.addDerivedPermissions(value);
441
+ msg.addDerivedpermissions(value);
442
442
  break;
443
443
  default:
444
444
  reader.skipField();
@@ -483,14 +483,14 @@ proto.checkpermission.CheckPermissionResponse.serializeBinaryToWriter = function
483
483
  f
484
484
  );
485
485
  }
486
- f = message.getAssetScopesList();
486
+ f = message.getAssetscopesList();
487
487
  if (f.length > 0) {
488
488
  writer.writeRepeatedString(
489
489
  3,
490
490
  f
491
491
  );
492
492
  }
493
- f = message.getDerivedPermissionsList();
493
+ f = message.getDerivedpermissionsList();
494
494
  if (f.length > 0) {
495
495
  writer.writeRepeatedString(
496
496
  4,
@@ -556,10 +556,10 @@ proto.checkpermission.CheckPermissionResponse.prototype.clearInstallationsList =
556
556
 
557
557
 
558
558
  /**
559
- * repeated string asset_scopes = 3;
559
+ * repeated string assetScopes = 3;
560
560
  * @return {!Array<string>}
561
561
  */
562
- proto.checkpermission.CheckPermissionResponse.prototype.getAssetScopesList = function() {
562
+ proto.checkpermission.CheckPermissionResponse.prototype.getAssetscopesList = function() {
563
563
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));
564
564
  };
565
565
 
@@ -568,7 +568,7 @@ proto.checkpermission.CheckPermissionResponse.prototype.getAssetScopesList = fun
568
568
  * @param {!Array<string>} value
569
569
  * @return {!proto.checkpermission.CheckPermissionResponse} returns this
570
570
  */
571
- proto.checkpermission.CheckPermissionResponse.prototype.setAssetScopesList = function(value) {
571
+ proto.checkpermission.CheckPermissionResponse.prototype.setAssetscopesList = function(value) {
572
572
  return jspb.Message.setField(this, 3, value || []);
573
573
  };
574
574
 
@@ -578,7 +578,7 @@ proto.checkpermission.CheckPermissionResponse.prototype.setAssetScopesList = fun
578
578
  * @param {number=} opt_index
579
579
  * @return {!proto.checkpermission.CheckPermissionResponse} returns this
580
580
  */
581
- proto.checkpermission.CheckPermissionResponse.prototype.addAssetScopes = function(value, opt_index) {
581
+ proto.checkpermission.CheckPermissionResponse.prototype.addAssetscopes = function(value, opt_index) {
582
582
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
583
583
  };
584
584
 
@@ -587,16 +587,16 @@ proto.checkpermission.CheckPermissionResponse.prototype.addAssetScopes = functio
587
587
  * Clears the list making it empty but non-null.
588
588
  * @return {!proto.checkpermission.CheckPermissionResponse} returns this
589
589
  */
590
- proto.checkpermission.CheckPermissionResponse.prototype.clearAssetScopesList = function() {
591
- return this.setAssetScopesList([]);
590
+ proto.checkpermission.CheckPermissionResponse.prototype.clearAssetscopesList = function() {
591
+ return this.setAssetscopesList([]);
592
592
  };
593
593
 
594
594
 
595
595
  /**
596
- * repeated string derived_permissions = 4;
596
+ * repeated string derivedPermissions = 4;
597
597
  * @return {!Array<string>}
598
598
  */
599
- proto.checkpermission.CheckPermissionResponse.prototype.getDerivedPermissionsList = function() {
599
+ proto.checkpermission.CheckPermissionResponse.prototype.getDerivedpermissionsList = function() {
600
600
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 4));
601
601
  };
602
602
 
@@ -605,7 +605,7 @@ proto.checkpermission.CheckPermissionResponse.prototype.getDerivedPermissionsLis
605
605
  * @param {!Array<string>} value
606
606
  * @return {!proto.checkpermission.CheckPermissionResponse} returns this
607
607
  */
608
- proto.checkpermission.CheckPermissionResponse.prototype.setDerivedPermissionsList = function(value) {
608
+ proto.checkpermission.CheckPermissionResponse.prototype.setDerivedpermissionsList = function(value) {
609
609
  return jspb.Message.setField(this, 4, value || []);
610
610
  };
611
611
 
@@ -615,7 +615,7 @@ proto.checkpermission.CheckPermissionResponse.prototype.setDerivedPermissionsLis
615
615
  * @param {number=} opt_index
616
616
  * @return {!proto.checkpermission.CheckPermissionResponse} returns this
617
617
  */
618
- proto.checkpermission.CheckPermissionResponse.prototype.addDerivedPermissions = function(value, opt_index) {
618
+ proto.checkpermission.CheckPermissionResponse.prototype.addDerivedpermissions = function(value, opt_index) {
619
619
  return jspb.Message.addToRepeatedField(this, 4, value, opt_index);
620
620
  };
621
621
 
@@ -624,8 +624,8 @@ proto.checkpermission.CheckPermissionResponse.prototype.addDerivedPermissions =
624
624
  * Clears the list making it empty but non-null.
625
625
  * @return {!proto.checkpermission.CheckPermissionResponse} returns this
626
626
  */
627
- proto.checkpermission.CheckPermissionResponse.prototype.clearDerivedPermissionsList = function() {
628
- return this.setDerivedPermissionsList([]);
627
+ proto.checkpermission.CheckPermissionResponse.prototype.clearDerivedpermissionsList = function() {
628
+ return this.setDerivedpermissionsList([]);
629
629
  };
630
630
 
631
631
 
@@ -661,9 +661,9 @@ proto.checkpermission.GetUserPermissionsRequest.prototype.toObject = function(op
661
661
  */
662
662
  proto.checkpermission.GetUserPermissionsRequest.toObject = function(includeInstance, msg) {
663
663
  var f, obj = {
664
- userId: jspb.Message.getFieldWithDefault(msg, 1, ""),
665
- siteId: jspb.Message.getFieldWithDefault(msg, 2, ""),
666
- traceId: jspb.Message.getFieldWithDefault(msg, 3, "")
664
+ userid: jspb.Message.getFieldWithDefault(msg, 1, ""),
665
+ siteid: jspb.Message.getFieldWithDefault(msg, 2, ""),
666
+ traceid: jspb.Message.getFieldWithDefault(msg, 3, "")
667
667
  };
668
668
 
669
669
  if (includeInstance) {
@@ -702,15 +702,15 @@ proto.checkpermission.GetUserPermissionsRequest.deserializeBinaryFromReader = fu
702
702
  switch (field) {
703
703
  case 1:
704
704
  var value = /** @type {string} */ (reader.readString());
705
- msg.setUserId(value);
705
+ msg.setUserid(value);
706
706
  break;
707
707
  case 2:
708
708
  var value = /** @type {string} */ (reader.readString());
709
- msg.setSiteId(value);
709
+ msg.setSiteid(value);
710
710
  break;
711
711
  case 3:
712
712
  var value = /** @type {string} */ (reader.readString());
713
- msg.setTraceId(value);
713
+ msg.setTraceid(value);
714
714
  break;
715
715
  default:
716
716
  reader.skipField();
@@ -741,14 +741,14 @@ proto.checkpermission.GetUserPermissionsRequest.prototype.serializeBinary = func
741
741
  */
742
742
  proto.checkpermission.GetUserPermissionsRequest.serializeBinaryToWriter = function(message, writer) {
743
743
  var f = undefined;
744
- f = message.getUserId();
744
+ f = message.getUserid();
745
745
  if (f.length > 0) {
746
746
  writer.writeString(
747
747
  1,
748
748
  f
749
749
  );
750
750
  }
751
- f = message.getSiteId();
751
+ f = message.getSiteid();
752
752
  if (f.length > 0) {
753
753
  writer.writeString(
754
754
  2,
@@ -766,10 +766,10 @@ proto.checkpermission.GetUserPermissionsRequest.serializeBinaryToWriter = functi
766
766
 
767
767
 
768
768
  /**
769
- * optional string user_id = 1;
769
+ * optional string userId = 1;
770
770
  * @return {string}
771
771
  */
772
- proto.checkpermission.GetUserPermissionsRequest.prototype.getUserId = function() {
772
+ proto.checkpermission.GetUserPermissionsRequest.prototype.getUserid = function() {
773
773
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
774
774
  };
775
775
 
@@ -778,16 +778,16 @@ proto.checkpermission.GetUserPermissionsRequest.prototype.getUserId = function()
778
778
  * @param {string} value
779
779
  * @return {!proto.checkpermission.GetUserPermissionsRequest} returns this
780
780
  */
781
- proto.checkpermission.GetUserPermissionsRequest.prototype.setUserId = function(value) {
781
+ proto.checkpermission.GetUserPermissionsRequest.prototype.setUserid = function(value) {
782
782
  return jspb.Message.setProto3StringField(this, 1, value);
783
783
  };
784
784
 
785
785
 
786
786
  /**
787
- * optional string site_id = 2;
787
+ * optional string siteId = 2;
788
788
  * @return {string}
789
789
  */
790
- proto.checkpermission.GetUserPermissionsRequest.prototype.getSiteId = function() {
790
+ proto.checkpermission.GetUserPermissionsRequest.prototype.getSiteid = function() {
791
791
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
792
792
  };
793
793
 
@@ -796,16 +796,16 @@ proto.checkpermission.GetUserPermissionsRequest.prototype.getSiteId = function()
796
796
  * @param {string} value
797
797
  * @return {!proto.checkpermission.GetUserPermissionsRequest} returns this
798
798
  */
799
- proto.checkpermission.GetUserPermissionsRequest.prototype.setSiteId = function(value) {
799
+ proto.checkpermission.GetUserPermissionsRequest.prototype.setSiteid = function(value) {
800
800
  return jspb.Message.setProto3StringField(this, 2, value);
801
801
  };
802
802
 
803
803
 
804
804
  /**
805
- * optional string trace_id = 3;
805
+ * optional string traceId = 3;
806
806
  * @return {string}
807
807
  */
808
- proto.checkpermission.GetUserPermissionsRequest.prototype.getTraceId = function() {
808
+ proto.checkpermission.GetUserPermissionsRequest.prototype.getTraceid = function() {
809
809
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
810
810
  };
811
811
 
@@ -814,7 +814,7 @@ proto.checkpermission.GetUserPermissionsRequest.prototype.getTraceId = function(
814
814
  * @param {string} value
815
815
  * @return {!proto.checkpermission.GetUserPermissionsRequest} returns this
816
816
  */
817
- proto.checkpermission.GetUserPermissionsRequest.prototype.setTraceId = function(value) {
817
+ proto.checkpermission.GetUserPermissionsRequest.prototype.setTraceid = function(value) {
818
818
  return jspb.Message.setField(this, 3, value);
819
819
  };
820
820
 
@@ -823,7 +823,7 @@ proto.checkpermission.GetUserPermissionsRequest.prototype.setTraceId = function(
823
823
  * Clears the field making it undefined.
824
824
  * @return {!proto.checkpermission.GetUserPermissionsRequest} returns this
825
825
  */
826
- proto.checkpermission.GetUserPermissionsRequest.prototype.clearTraceId = function() {
826
+ proto.checkpermission.GetUserPermissionsRequest.prototype.clearTraceid = function() {
827
827
  return jspb.Message.setField(this, 3, undefined);
828
828
  };
829
829
 
@@ -832,7 +832,7 @@ proto.checkpermission.GetUserPermissionsRequest.prototype.clearTraceId = functio
832
832
  * Returns whether this field is set.
833
833
  * @return {boolean}
834
834
  */
835
- proto.checkpermission.GetUserPermissionsRequest.prototype.hasTraceId = function() {
835
+ proto.checkpermission.GetUserPermissionsRequest.prototype.hasTraceid = function() {
836
836
  return jspb.Message.getField(this, 3) != null;
837
837
  };
838
838
 
@@ -988,7 +988,7 @@ proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.toObject
988
988
  proto.checkpermission.GetUserPermissionsResponse.Permissions.toObject = function(includeInstance, msg) {
989
989
  var f, obj = {
990
990
  installationsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f,
991
- assetScopesList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f
991
+ assetscopesList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f
992
992
  };
993
993
 
994
994
  if (includeInstance) {
@@ -1031,7 +1031,7 @@ proto.checkpermission.GetUserPermissionsResponse.Permissions.deserializeBinaryFr
1031
1031
  break;
1032
1032
  case 2:
1033
1033
  var value = /** @type {string} */ (reader.readString());
1034
- msg.addAssetScopes(value);
1034
+ msg.addAssetscopes(value);
1035
1035
  break;
1036
1036
  default:
1037
1037
  reader.skipField();
@@ -1069,7 +1069,7 @@ proto.checkpermission.GetUserPermissionsResponse.Permissions.serializeBinaryToWr
1069
1069
  f
1070
1070
  );
1071
1071
  }
1072
- f = message.getAssetScopesList();
1072
+ f = message.getAssetscopesList();
1073
1073
  if (f.length > 0) {
1074
1074
  writer.writeRepeatedString(
1075
1075
  2,
@@ -1117,10 +1117,10 @@ proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.clearInst
1117
1117
 
1118
1118
 
1119
1119
  /**
1120
- * repeated string asset_scopes = 2;
1120
+ * repeated string assetScopes = 2;
1121
1121
  * @return {!Array<string>}
1122
1122
  */
1123
- proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.getAssetScopesList = function() {
1123
+ proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.getAssetscopesList = function() {
1124
1124
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));
1125
1125
  };
1126
1126
 
@@ -1129,7 +1129,7 @@ proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.getAssetS
1129
1129
  * @param {!Array<string>} value
1130
1130
  * @return {!proto.checkpermission.GetUserPermissionsResponse.Permissions} returns this
1131
1131
  */
1132
- proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.setAssetScopesList = function(value) {
1132
+ proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.setAssetscopesList = function(value) {
1133
1133
  return jspb.Message.setField(this, 2, value || []);
1134
1134
  };
1135
1135
 
@@ -1139,7 +1139,7 @@ proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.setAssetS
1139
1139
  * @param {number=} opt_index
1140
1140
  * @return {!proto.checkpermission.GetUserPermissionsResponse.Permissions} returns this
1141
1141
  */
1142
- proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.addAssetScopes = function(value, opt_index) {
1142
+ proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.addAssetscopes = function(value, opt_index) {
1143
1143
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
1144
1144
  };
1145
1145
 
@@ -1148,8 +1148,8 @@ proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.addAssetS
1148
1148
  * Clears the list making it empty but non-null.
1149
1149
  * @return {!proto.checkpermission.GetUserPermissionsResponse.Permissions} returns this
1150
1150
  */
1151
- proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.clearAssetScopesList = function() {
1152
- return this.setAssetScopesList([]);
1151
+ proto.checkpermission.GetUserPermissionsResponse.Permissions.prototype.clearAssetscopesList = function() {
1152
+ return this.setAssetscopesList([]);
1153
1153
  };
1154
1154
 
1155
1155
 
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@lansweeper/permissions-grpc",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "description": "Permissions grpc",
5
5
  "main": "gen-proto/index.js",
6
6
  "types": "gen-proto/index.d.ts",
7
7
  "license": "MIT",
8
8
  "dependencies": {
9
- "@grpc/grpc-js": "^1.3.2",
9
+ "@grpc/grpc-js": "^1.4.4",
10
10
  "google-protobuf": "^3.17.0"
11
11
  },
12
12
  "devDependencies": {
13
13
  "@types/google-protobuf": "^3.15.5"
14
14
  },
15
- "gitHead": "fddf7c770b9e4a73b069d57613d4e539ad4a5d24"
15
+ "gitHead": "ff3494c1c61da7a7611ea8490739b3395d5ee792"
16
16
  }
@@ -3,29 +3,29 @@ syntax = "proto3";
3
3
  package checkpermission;
4
4
 
5
5
  message CheckPermissionRequest {
6
- string site_id = 1;
7
- string account_id = 2;
6
+ string siteId = 1;
7
+ string accountId = 2;
8
8
  string action = 3;
9
- string trace_id = 4;
9
+ string traceId = 4;
10
10
  }
11
11
 
12
12
  message CheckPermissionResponse {
13
13
  bool granted = 1;
14
14
  repeated string installations = 2;
15
- repeated string asset_scopes = 3;
16
- repeated string derived_permissions = 4;
15
+ repeated string assetScopes = 3;
16
+ repeated string derivedPermissions = 4;
17
17
  }
18
18
 
19
19
  message GetUserPermissionsRequest {
20
- string user_id = 1;
21
- string site_id = 2;
22
- optional string trace_id = 3;
20
+ string userId = 1;
21
+ string siteId = 2;
22
+ optional string traceId = 3;
23
23
  }
24
24
 
25
25
  message GetUserPermissionsResponse {
26
26
  message Permissions {
27
27
  repeated string installations = 1;
28
- repeated string asset_scopes = 2;
28
+ repeated string assetScopes = 2;
29
29
  }
30
30
  map<string, Permissions> permissions = 1;
31
31
  }