file: { name: "google/protobuf/any.proto" package: "google.protobuf" message_type: { name: "Any" field: { name: "type_url" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "typeUrl" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_BYTES json_name: "value" } } options: { java_package: "com.google.protobuf" java_outer_classname: "AnyProto" java_multiple_files: true go_package: "google.golang.org/protobuf/types/known/anypb" objc_class_prefix: "GPB" csharp_namespace: "Google.Protobuf.WellKnownTypes" } source_code_info: { location: { span: 30 span: 0 span: 161 span: 1 } location: { path: 12 span: 30 span: 0 span: 18 leading_detached_comments: " 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" } location: { path: 2 span: 32 span: 0 span: 24 } location: { path: 8 span: 34 span: 0 span: 67 } location: { path: 8 path: 11 span: 34 span: 0 span: 67 } location: { path: 8 span: 35 span: 0 span: 44 } location: { path: 8 path: 1 span: 35 span: 0 span: 44 } location: { path: 8 span: 36 span: 0 span: 41 } location: { path: 8 path: 8 span: 36 span: 0 span: 41 } location: { path: 8 span: 37 span: 0 span: 34 } location: { path: 8 path: 10 span: 37 span: 0 span: 34 } location: { path: 8 span: 38 span: 0 span: 33 } location: { path: 8 path: 36 span: 38 span: 0 span: 33 } location: { path: 8 span: 39 span: 0 span: 59 } location: { path: 8 path: 37 span: 39 span: 0 span: 59 } location: { path: 4 path: 0 span: 127 span: 0 span: 161 span: 1 leading_comments: " `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 // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\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 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\": ,\n \"lastName\": \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" } location: { path: 4 path: 0 path: 1 span: 127 span: 8 span: 11 } location: { path: 4 path: 0 path: 2 path: 0 span: 157 span: 2 span: 22 leading_comments: " 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. As of May 2023, there are no widely used type server\n implementations and no plans to implement one.\n\n Schemes other than `http`, `https` (or the empty scheme) might be\n used with implementation specific semantics.\n\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 157 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 157 span: 9 span: 17 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 157 span: 20 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 span: 160 span: 2 span: 18 leading_comments: " Must be a valid serialized protocol buffer of the above specified type.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 160 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 160 span: 8 span: 13 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 160 span: 16 span: 17 } } syntax: "proto3" buf_extension: { is_import: true is_syntax_unspecified: false } } file: { name: "google/protobuf/descriptor.proto" package: "google.protobuf" message_type: { name: "FileDescriptorSet" field: { name: "file" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.FileDescriptorProto" json_name: "file" } extension_range: { start: 536000000 end: 536000001 options: { declaration: { number: 536000000 full_name: ".buf.descriptor.v1.buf_file_descriptor_set_extension" type: ".buf.descriptor.v1.FileDescriptorSetExtension" } } } } message_type: { name: "FileDescriptorProto" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "package" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "package" } field: { name: "dependency" number: 3 label: LABEL_REPEATED type: TYPE_STRING json_name: "dependency" } field: { name: "public_dependency" number: 10 label: LABEL_REPEATED type: TYPE_INT32 json_name: "publicDependency" } field: { name: "weak_dependency" number: 11 label: LABEL_REPEATED type: TYPE_INT32 json_name: "weakDependency" } field: { name: "option_dependency" number: 15 label: LABEL_REPEATED type: TYPE_STRING json_name: "optionDependency" } field: { name: "message_type" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.DescriptorProto" json_name: "messageType" } field: { name: "enum_type" number: 5 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.EnumDescriptorProto" json_name: "enumType" } field: { name: "service" number: 6 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.ServiceDescriptorProto" json_name: "service" } field: { name: "extension" number: 7 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.FieldDescriptorProto" json_name: "extension" } field: { name: "options" number: 8 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FileOptions" json_name: "options" } field: { name: "source_code_info" number: 9 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.SourceCodeInfo" json_name: "sourceCodeInfo" } field: { name: "syntax" number: 12 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "syntax" } field: { name: "edition" number: 14 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.Edition" json_name: "edition" } } message_type: { name: "DescriptorProto" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "field" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.FieldDescriptorProto" json_name: "field" } field: { name: "extension" number: 6 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.FieldDescriptorProto" json_name: "extension" } field: { name: "nested_type" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.DescriptorProto" json_name: "nestedType" } field: { name: "enum_type" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.EnumDescriptorProto" json_name: "enumType" } field: { name: "extension_range" number: 5 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.DescriptorProto.ExtensionRange" json_name: "extensionRange" } field: { name: "oneof_decl" number: 8 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.OneofDescriptorProto" json_name: "oneofDecl" } field: { name: "options" number: 7 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.MessageOptions" json_name: "options" } field: { name: "reserved_range" number: 9 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.DescriptorProto.ReservedRange" json_name: "reservedRange" } field: { name: "reserved_name" number: 10 label: LABEL_REPEATED type: TYPE_STRING json_name: "reservedName" } field: { name: "visibility" number: 11 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.SymbolVisibility" json_name: "visibility" } nested_type: { name: "ExtensionRange" field: { name: "start" number: 1 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "start" } field: { name: "end" number: 2 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "end" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.ExtensionRangeOptions" json_name: "options" } } nested_type: { name: "ReservedRange" field: { name: "start" number: 1 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "start" } field: { name: "end" number: 2 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "end" } } } message_type: { name: "ExtensionRangeOptions" field: { name: "uninterpreted_option" number: 999 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption" json_name: "uninterpretedOption" } field: { name: "declaration" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.ExtensionRangeOptions.Declaration" json_name: "declaration" options: { retention: RETENTION_SOURCE } } field: { name: "features" number: 50 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "features" } field: { name: "verification" number: 3 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.ExtensionRangeOptions.VerificationState" default_value: "UNVERIFIED" json_name: "verification" options: { retention: RETENTION_SOURCE } } nested_type: { name: "Declaration" field: { name: "number" number: 1 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "number" } field: { name: "full_name" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "fullName" } field: { name: "type" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "type" } field: { name: "reserved" number: 5 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "reserved" } field: { name: "repeated" number: 6 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "repeated" } reserved_range: { start: 4 end: 5 } } enum_type: { name: "VerificationState" value: { name: "DECLARATION" number: 0 } value: { name: "UNVERIFIED" number: 1 } } extension_range: { start: 1000 end: 536870912 } } message_type: { name: "FieldDescriptorProto" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "number" number: 3 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "number" } field: { name: "label" number: 4 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FieldDescriptorProto.Label" json_name: "label" } field: { name: "type" number: 5 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FieldDescriptorProto.Type" json_name: "type" } field: { name: "type_name" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "typeName" } field: { name: "extendee" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "extendee" } field: { name: "default_value" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "defaultValue" } field: { name: "oneof_index" number: 9 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "oneofIndex" } field: { name: "json_name" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "jsonName" } field: { name: "options" number: 8 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FieldOptions" json_name: "options" } field: { name: "proto3_optional" number: 17 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "proto3Optional" } enum_type: { name: "Type" value: { name: "TYPE_DOUBLE" number: 1 } value: { name: "TYPE_FLOAT" number: 2 } value: { name: "TYPE_INT64" number: 3 } value: { name: "TYPE_UINT64" number: 4 } value: { name: "TYPE_INT32" number: 5 } value: { name: "TYPE_FIXED64" number: 6 } value: { name: "TYPE_FIXED32" number: 7 } value: { name: "TYPE_BOOL" number: 8 } value: { name: "TYPE_STRING" number: 9 } value: { name: "TYPE_GROUP" number: 10 } value: { name: "TYPE_MESSAGE" number: 11 } value: { name: "TYPE_BYTES" number: 12 } value: { name: "TYPE_UINT32" number: 13 } value: { name: "TYPE_ENUM" number: 14 } value: { name: "TYPE_SFIXED32" number: 15 } value: { name: "TYPE_SFIXED64" number: 16 } value: { name: "TYPE_SINT32" number: 17 } value: { name: "TYPE_SINT64" number: 18 } } enum_type: { name: "Label" value: { name: "LABEL_OPTIONAL" number: 1 } value: { name: "LABEL_REPEATED" number: 3 } value: { name: "LABEL_REQUIRED" number: 2 } } } message_type: { name: "OneofDescriptorProto" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "options" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.OneofOptions" json_name: "options" } } message_type: { name: "EnumDescriptorProto" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "value" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.EnumValueDescriptorProto" json_name: "value" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.EnumOptions" json_name: "options" } field: { name: "reserved_range" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.EnumDescriptorProto.EnumReservedRange" json_name: "reservedRange" } field: { name: "reserved_name" number: 5 label: LABEL_REPEATED type: TYPE_STRING json_name: "reservedName" } field: { name: "visibility" number: 6 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.SymbolVisibility" json_name: "visibility" } nested_type: { name: "EnumReservedRange" field: { name: "start" number: 1 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "start" } field: { name: "end" number: 2 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "end" } } } message_type: { name: "EnumValueDescriptorProto" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "number" number: 2 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "number" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.EnumValueOptions" json_name: "options" } } message_type: { name: "ServiceDescriptorProto" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "method" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.MethodDescriptorProto" json_name: "method" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.ServiceOptions" json_name: "options" } } message_type: { name: "MethodDescriptorProto" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "input_type" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "inputType" } field: { name: "output_type" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "outputType" } field: { name: "options" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.MethodOptions" json_name: "options" } field: { name: "client_streaming" number: 5 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "clientStreaming" } field: { name: "server_streaming" number: 6 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "serverStreaming" } } message_type: { name: "FileOptions" field: { name: "java_package" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "javaPackage" } field: { name: "java_outer_classname" number: 8 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "javaOuterClassname" } field: { name: "java_multiple_files" number: 10 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "javaMultipleFiles" } field: { name: "java_generate_equals_and_hash" number: 20 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "javaGenerateEqualsAndHash" options: { deprecated: true } } field: { name: "java_string_check_utf8" number: 27 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "javaStringCheckUtf8" } field: { name: "optimize_for" number: 9 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FileOptions.OptimizeMode" default_value: "SPEED" json_name: "optimizeFor" } field: { name: "go_package" number: 11 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "goPackage" } field: { name: "cc_generic_services" number: 16 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "ccGenericServices" } field: { name: "java_generic_services" number: 17 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "javaGenericServices" } field: { name: "py_generic_services" number: 18 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "pyGenericServices" } field: { name: "deprecated" number: 23 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "deprecated" } field: { name: "cc_enable_arenas" number: 31 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "true" json_name: "ccEnableArenas" } field: { name: "objc_class_prefix" number: 36 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "objcClassPrefix" } field: { name: "csharp_namespace" number: 37 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "csharpNamespace" } field: { name: "swift_prefix" number: 39 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "swiftPrefix" } field: { name: "php_class_prefix" number: 40 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "phpClassPrefix" } field: { name: "php_namespace" number: 41 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "phpNamespace" } field: { name: "php_metadata_namespace" number: 44 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "phpMetadataNamespace" } field: { name: "ruby_package" number: 45 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "rubyPackage" } field: { name: "features" number: 50 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "features" } field: { name: "uninterpreted_option" number: 999 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption" json_name: "uninterpretedOption" } enum_type: { name: "OptimizeMode" value: { name: "SPEED" number: 1 } value: { name: "CODE_SIZE" number: 2 } value: { name: "LITE_RUNTIME" number: 3 } } extension_range: { start: 1000 end: 536870912 } reserved_range: { start: 42 end: 43 } reserved_range: { start: 38 end: 39 } reserved_name: "php_generic_services" } message_type: { name: "MessageOptions" field: { name: "message_set_wire_format" number: 1 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "messageSetWireFormat" } field: { name: "no_standard_descriptor_accessor" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "noStandardDescriptorAccessor" } field: { name: "deprecated" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "deprecated" } field: { name: "map_entry" number: 7 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "mapEntry" } field: { name: "deprecated_legacy_json_field_conflicts" number: 11 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "deprecatedLegacyJsonFieldConflicts" options: { deprecated: true } } field: { name: "features" number: 12 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "features" } field: { name: "uninterpreted_option" number: 999 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption" json_name: "uninterpretedOption" } extension_range: { start: 1000 end: 536870912 } reserved_range: { start: 4 end: 5 } reserved_range: { start: 5 end: 6 } reserved_range: { start: 6 end: 7 } reserved_range: { start: 8 end: 9 } reserved_range: { start: 9 end: 10 } } message_type: { name: "FieldOptions" field: { name: "ctype" number: 1 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FieldOptions.CType" default_value: "STRING" json_name: "ctype" } field: { name: "packed" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "packed" } field: { name: "jstype" number: 6 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FieldOptions.JSType" default_value: "JS_NORMAL" json_name: "jstype" } field: { name: "lazy" number: 5 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "lazy" } field: { name: "unverified_lazy" number: 15 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "unverifiedLazy" } field: { name: "deprecated" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "deprecated" } field: { name: "weak" number: 10 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "weak" } field: { name: "debug_redact" number: 16 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "debugRedact" } field: { name: "retention" number: 17 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FieldOptions.OptionRetention" json_name: "retention" } field: { name: "targets" number: 19 label: LABEL_REPEATED type: TYPE_ENUM type_name: ".google.protobuf.FieldOptions.OptionTargetType" json_name: "targets" } field: { name: "edition_defaults" number: 20 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.FieldOptions.EditionDefault" json_name: "editionDefaults" } field: { name: "features" number: 21 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "features" } field: { name: "feature_support" number: 22 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FieldOptions.FeatureSupport" json_name: "featureSupport" } field: { name: "uninterpreted_option" number: 999 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption" json_name: "uninterpretedOption" } nested_type: { name: "EditionDefault" field: { name: "edition" number: 3 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.Edition" json_name: "edition" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } } nested_type: { name: "FeatureSupport" field: { name: "edition_introduced" number: 1 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.Edition" json_name: "editionIntroduced" } field: { name: "edition_deprecated" number: 2 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.Edition" json_name: "editionDeprecated" } field: { name: "deprecation_warning" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "deprecationWarning" } field: { name: "edition_removed" number: 4 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.Edition" json_name: "editionRemoved" } } enum_type: { name: "CType" value: { name: "STRING" number: 0 } value: { name: "CORD" number: 1 } value: { name: "STRING_PIECE" number: 2 } } enum_type: { name: "JSType" value: { name: "JS_NORMAL" number: 0 } value: { name: "JS_STRING" number: 1 } value: { name: "JS_NUMBER" number: 2 } } enum_type: { name: "OptionRetention" value: { name: "RETENTION_UNKNOWN" number: 0 } value: { name: "RETENTION_RUNTIME" number: 1 } value: { name: "RETENTION_SOURCE" number: 2 } } enum_type: { name: "OptionTargetType" value: { name: "TARGET_TYPE_UNKNOWN" number: 0 } value: { name: "TARGET_TYPE_FILE" number: 1 } value: { name: "TARGET_TYPE_EXTENSION_RANGE" number: 2 } value: { name: "TARGET_TYPE_MESSAGE" number: 3 } value: { name: "TARGET_TYPE_FIELD" number: 4 } value: { name: "TARGET_TYPE_ONEOF" number: 5 } value: { name: "TARGET_TYPE_ENUM" number: 6 } value: { name: "TARGET_TYPE_ENUM_ENTRY" number: 7 } value: { name: "TARGET_TYPE_SERVICE" number: 8 } value: { name: "TARGET_TYPE_METHOD" number: 9 } } extension_range: { start: 1000 end: 536870912 } reserved_range: { start: 4 end: 5 } reserved_range: { start: 18 end: 19 } } message_type: { name: "OneofOptions" field: { name: "features" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "features" } field: { name: "uninterpreted_option" number: 999 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption" json_name: "uninterpretedOption" } extension_range: { start: 1000 end: 536870912 } } message_type: { name: "EnumOptions" field: { name: "allow_alias" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "allowAlias" } field: { name: "deprecated" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "deprecated" } field: { name: "deprecated_legacy_json_field_conflicts" number: 6 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "deprecatedLegacyJsonFieldConflicts" options: { deprecated: true } } field: { name: "features" number: 7 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "features" } field: { name: "uninterpreted_option" number: 999 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption" json_name: "uninterpretedOption" } extension_range: { start: 1000 end: 536870912 } reserved_range: { start: 5 end: 6 } } message_type: { name: "EnumValueOptions" field: { name: "deprecated" number: 1 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "deprecated" } field: { name: "features" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "features" } field: { name: "debug_redact" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "debugRedact" } field: { name: "feature_support" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FieldOptions.FeatureSupport" json_name: "featureSupport" } field: { name: "uninterpreted_option" number: 999 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption" json_name: "uninterpretedOption" } extension_range: { start: 1000 end: 536870912 } } message_type: { name: "ServiceOptions" field: { name: "features" number: 34 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "features" } field: { name: "deprecated" number: 33 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "deprecated" } field: { name: "uninterpreted_option" number: 999 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption" json_name: "uninterpretedOption" } extension_range: { start: 1000 end: 536870912 } } message_type: { name: "MethodOptions" field: { name: "deprecated" number: 33 label: LABEL_OPTIONAL type: TYPE_BOOL default_value: "false" json_name: "deprecated" } field: { name: "idempotency_level" number: 34 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.MethodOptions.IdempotencyLevel" default_value: "IDEMPOTENCY_UNKNOWN" json_name: "idempotencyLevel" } field: { name: "features" number: 35 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "features" } field: { name: "uninterpreted_option" number: 999 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption" json_name: "uninterpretedOption" } enum_type: { name: "IdempotencyLevel" value: { name: "IDEMPOTENCY_UNKNOWN" number: 0 } value: { name: "NO_SIDE_EFFECTS" number: 1 } value: { name: "IDEMPOTENT" number: 2 } } extension_range: { start: 1000 end: 536870912 } } message_type: { name: "UninterpretedOption" field: { name: "name" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.UninterpretedOption.NamePart" json_name: "name" } field: { name: "identifier_value" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "identifierValue" } field: { name: "positive_int_value" number: 4 label: LABEL_OPTIONAL type: TYPE_UINT64 json_name: "positiveIntValue" } field: { name: "negative_int_value" number: 5 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "negativeIntValue" } field: { name: "double_value" number: 6 label: LABEL_OPTIONAL type: TYPE_DOUBLE json_name: "doubleValue" } field: { name: "string_value" number: 7 label: LABEL_OPTIONAL type: TYPE_BYTES json_name: "stringValue" } field: { name: "aggregate_value" number: 8 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "aggregateValue" } nested_type: { name: "NamePart" field: { name: "name_part" number: 1 label: LABEL_REQUIRED type: TYPE_STRING json_name: "namePart" } field: { name: "is_extension" number: 2 label: LABEL_REQUIRED type: TYPE_BOOL json_name: "isExtension" } } } message_type: { name: "FeatureSet" field: { name: "field_presence" number: 1 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FeatureSet.FieldPresence" json_name: "fieldPresence" options: { retention: RETENTION_RUNTIME targets: TARGET_TYPE_FIELD targets: TARGET_TYPE_FILE edition_defaults: { edition: EDITION_LEGACY value: "EXPLICIT" } edition_defaults: { edition: EDITION_PROTO3 value: "IMPLICIT" } edition_defaults: { edition: EDITION_2023 value: "EXPLICIT" } feature_support: { edition_introduced: EDITION_2023 } } } field: { name: "enum_type" number: 2 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FeatureSet.EnumType" json_name: "enumType" options: { retention: RETENTION_RUNTIME targets: TARGET_TYPE_ENUM targets: TARGET_TYPE_FILE edition_defaults: { edition: EDITION_LEGACY value: "CLOSED" } edition_defaults: { edition: EDITION_PROTO3 value: "OPEN" } feature_support: { edition_introduced: EDITION_2023 } } } field: { name: "repeated_field_encoding" number: 3 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FeatureSet.RepeatedFieldEncoding" json_name: "repeatedFieldEncoding" options: { retention: RETENTION_RUNTIME targets: TARGET_TYPE_FIELD targets: TARGET_TYPE_FILE edition_defaults: { edition: EDITION_LEGACY value: "EXPANDED" } edition_defaults: { edition: EDITION_PROTO3 value: "PACKED" } feature_support: { edition_introduced: EDITION_2023 } } } field: { name: "utf8_validation" number: 4 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FeatureSet.Utf8Validation" json_name: "utf8Validation" options: { retention: RETENTION_RUNTIME targets: TARGET_TYPE_FIELD targets: TARGET_TYPE_FILE edition_defaults: { edition: EDITION_LEGACY value: "NONE" } edition_defaults: { edition: EDITION_PROTO3 value: "VERIFY" } feature_support: { edition_introduced: EDITION_2023 } } } field: { name: "message_encoding" number: 5 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FeatureSet.MessageEncoding" json_name: "messageEncoding" options: { retention: RETENTION_RUNTIME targets: TARGET_TYPE_FIELD targets: TARGET_TYPE_FILE edition_defaults: { edition: EDITION_LEGACY value: "LENGTH_PREFIXED" } feature_support: { edition_introduced: EDITION_2023 } } } field: { name: "json_format" number: 6 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FeatureSet.JsonFormat" json_name: "jsonFormat" options: { retention: RETENTION_RUNTIME targets: TARGET_TYPE_MESSAGE targets: TARGET_TYPE_ENUM targets: TARGET_TYPE_FILE edition_defaults: { edition: EDITION_LEGACY value: "LEGACY_BEST_EFFORT" } edition_defaults: { edition: EDITION_PROTO3 value: "ALLOW" } feature_support: { edition_introduced: EDITION_2023 } } } field: { name: "enforce_naming_style" number: 7 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FeatureSet.EnforceNamingStyle" json_name: "enforceNamingStyle" options: { retention: RETENTION_SOURCE targets: TARGET_TYPE_FILE targets: TARGET_TYPE_EXTENSION_RANGE targets: TARGET_TYPE_MESSAGE targets: TARGET_TYPE_FIELD targets: TARGET_TYPE_ONEOF targets: TARGET_TYPE_ENUM targets: TARGET_TYPE_ENUM_ENTRY targets: TARGET_TYPE_SERVICE targets: TARGET_TYPE_METHOD edition_defaults: { edition: EDITION_LEGACY value: "STYLE_LEGACY" } edition_defaults: { edition: EDITION_2024 value: "STYLE2024" } feature_support: { edition_introduced: EDITION_2024 } } } field: { name: "default_symbol_visibility" number: 8 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility" json_name: "defaultSymbolVisibility" options: { retention: RETENTION_SOURCE targets: TARGET_TYPE_FILE edition_defaults: { edition: EDITION_LEGACY value: "EXPORT_ALL" } edition_defaults: { edition: EDITION_2024 value: "EXPORT_TOP_LEVEL" } feature_support: { edition_introduced: EDITION_2024 } } } nested_type: { name: "VisibilityFeature" enum_type: { name: "DefaultSymbolVisibility" value: { name: "DEFAULT_SYMBOL_VISIBILITY_UNKNOWN" number: 0 } value: { name: "EXPORT_ALL" number: 1 } value: { name: "EXPORT_TOP_LEVEL" number: 2 } value: { name: "LOCAL_ALL" number: 3 } value: { name: "STRICT" number: 4 } } reserved_range: { start: 1 end: 536870912 } } enum_type: { name: "FieldPresence" value: { name: "FIELD_PRESENCE_UNKNOWN" number: 0 } value: { name: "EXPLICIT" number: 1 } value: { name: "IMPLICIT" number: 2 } value: { name: "LEGACY_REQUIRED" number: 3 } } enum_type: { name: "EnumType" value: { name: "ENUM_TYPE_UNKNOWN" number: 0 } value: { name: "OPEN" number: 1 } value: { name: "CLOSED" number: 2 } } enum_type: { name: "RepeatedFieldEncoding" value: { name: "REPEATED_FIELD_ENCODING_UNKNOWN" number: 0 } value: { name: "PACKED" number: 1 } value: { name: "EXPANDED" number: 2 } } enum_type: { name: "Utf8Validation" value: { name: "UTF8_VALIDATION_UNKNOWN" number: 0 } value: { name: "VERIFY" number: 2 } value: { name: "NONE" number: 3 } reserved_range: { start: 1 end: 1 } } enum_type: { name: "MessageEncoding" value: { name: "MESSAGE_ENCODING_UNKNOWN" number: 0 } value: { name: "LENGTH_PREFIXED" number: 1 } value: { name: "DELIMITED" number: 2 } } enum_type: { name: "JsonFormat" value: { name: "JSON_FORMAT_UNKNOWN" number: 0 } value: { name: "ALLOW" number: 1 } value: { name: "LEGACY_BEST_EFFORT" number: 2 } } enum_type: { name: "EnforceNamingStyle" value: { name: "ENFORCE_NAMING_STYLE_UNKNOWN" number: 0 } value: { name: "STYLE2024" number: 1 } value: { name: "STYLE_LEGACY" number: 2 } } extension_range: { start: 1000 end: 9995 options: { declaration: { number: 1000 full_name: ".pb.cpp" type: ".pb.CppFeatures" } declaration: { number: 1001 full_name: ".pb.java" type: ".pb.JavaFeatures" } declaration: { number: 1002 full_name: ".pb.go" type: ".pb.GoFeatures" } declaration: { number: 1003 full_name: ".pb.python" type: ".pb.PythonFeatures" } declaration: { number: 9990 full_name: ".pb.proto1" type: ".pb.Proto1Features" } } } extension_range: { start: 9995 end: 10000 } extension_range: { start: 10000 end: 10001 } reserved_range: { start: 999 end: 1000 } } message_type: { name: "FeatureSetDefaults" field: { name: "defaults" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault" json_name: "defaults" } field: { name: "minimum_edition" number: 4 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.Edition" json_name: "minimumEdition" } field: { name: "maximum_edition" number: 5 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.Edition" json_name: "maximumEdition" } nested_type: { name: "FeatureSetEditionDefault" field: { name: "edition" number: 3 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.Edition" json_name: "edition" } field: { name: "overridable_features" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "overridableFeatures" } field: { name: "fixed_features" number: 5 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FeatureSet" json_name: "fixedFeatures" } reserved_range: { start: 1 end: 2 } reserved_range: { start: 2 end: 3 } reserved_name: "features" } } message_type: { name: "SourceCodeInfo" field: { name: "location" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.SourceCodeInfo.Location" json_name: "location" } nested_type: { name: "Location" field: { name: "path" number: 1 label: LABEL_REPEATED type: TYPE_INT32 json_name: "path" options: { packed: true } } field: { name: "span" number: 2 label: LABEL_REPEATED type: TYPE_INT32 json_name: "span" options: { packed: true } } field: { name: "leading_comments" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "leadingComments" } field: { name: "trailing_comments" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "trailingComments" } field: { name: "leading_detached_comments" number: 6 label: LABEL_REPEATED type: TYPE_STRING json_name: "leadingDetachedComments" } } extension_range: { start: 536000000 end: 536000001 options: { declaration: { number: 536000000 full_name: ".buf.descriptor.v1.buf_source_code_info_extension" type: ".buf.descriptor.v1.SourceCodeInfoExtension" } } } } message_type: { name: "GeneratedCodeInfo" field: { name: "annotation" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.GeneratedCodeInfo.Annotation" json_name: "annotation" } nested_type: { name: "Annotation" field: { name: "path" number: 1 label: LABEL_REPEATED type: TYPE_INT32 json_name: "path" options: { packed: true } } field: { name: "source_file" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sourceFile" } field: { name: "begin" number: 3 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "begin" } field: { name: "end" number: 4 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "end" } field: { name: "semantic" number: 5 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".google.protobuf.GeneratedCodeInfo.Annotation.Semantic" json_name: "semantic" } enum_type: { name: "Semantic" value: { name: "NONE" number: 0 } value: { name: "SET" number: 1 } value: { name: "ALIAS" number: 2 } } } } enum_type: { name: "Edition" value: { name: "EDITION_UNKNOWN" number: 0 } value: { name: "EDITION_LEGACY" number: 900 } value: { name: "EDITION_PROTO2" number: 998 } value: { name: "EDITION_PROTO3" number: 999 } value: { name: "EDITION_2023" number: 1000 } value: { name: "EDITION_2024" number: 1001 } value: { name: "EDITION_1_TEST_ONLY" number: 1 } value: { name: "EDITION_2_TEST_ONLY" number: 2 } value: { name: "EDITION_99997_TEST_ONLY" number: 99997 } value: { name: "EDITION_99998_TEST_ONLY" number: 99998 } value: { name: "EDITION_99999_TEST_ONLY" number: 99999 } value: { name: "EDITION_MAX" number: 2147483647 } } enum_type: { name: "SymbolVisibility" value: { name: "VISIBILITY_UNSET" number: 0 } value: { name: "VISIBILITY_LOCAL" number: 1 } value: { name: "VISIBILITY_EXPORT" number: 2 } } options: { java_package: "com.google.protobuf" java_outer_classname: "DescriptorProtos" optimize_for: SPEED go_package: "google.golang.org/protobuf/types/descriptorpb" cc_enable_arenas: true objc_class_prefix: "GPB" csharp_namespace: "Google.Protobuf.Reflection" } source_code_info: { location: { span: 38 span: 0 span: 1416 span: 1 } location: { path: 12 span: 38 span: 0 span: 18 leading_detached_comments: " 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" leading_detached_comments: " Author: kenton@google.com (Kenton Varda)\n Based on original Protocol Buffers design by\n Sanjay Ghemawat, Jeff Dean, and others.\n\n The messages in this file describe the definitions found in .proto files.\n A valid .proto file can be translated directly to a FileDescriptorProto\n without any other information (e.g. without reading its imports).\n" } location: { path: 2 span: 40 span: 0 span: 24 } location: { path: 8 span: 42 span: 0 span: 68 } location: { path: 8 path: 11 span: 42 span: 0 span: 68 } location: { path: 8 span: 43 span: 0 span: 44 } location: { path: 8 path: 1 span: 43 span: 0 span: 44 } location: { path: 8 span: 44 span: 0 span: 49 } location: { path: 8 path: 8 span: 44 span: 0 span: 49 } location: { path: 8 span: 45 span: 0 span: 55 } location: { path: 8 path: 37 span: 45 span: 0 span: 55 } location: { path: 8 span: 46 span: 0 span: 33 } location: { path: 8 path: 36 span: 46 span: 0 span: 33 } location: { path: 8 span: 47 span: 0 span: 31 } location: { path: 8 path: 31 span: 47 span: 0 span: 31 } location: { path: 8 span: 51 span: 0 span: 28 } location: { path: 8 path: 9 span: 51 span: 0 span: 28 leading_comments: " descriptor.proto must be optimized for speed because reflection-based\n algorithms don't work during bootstrapping.\n" } location: { path: 4 path: 0 span: 55 span: 0 span: 64 span: 1 leading_comments: " The protocol compiler can output a FileDescriptorSet containing the .proto\n files it parses.\n" } location: { path: 4 path: 0 path: 1 span: 55 span: 8 span: 25 } location: { path: 4 path: 0 path: 2 path: 0 span: 56 span: 2 span: 40 } location: { path: 4 path: 0 path: 2 path: 0 path: 4 span: 56 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 0 path: 6 span: 56 span: 11 span: 30 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 56 span: 31 span: 35 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 56 span: 38 span: 39 } location: { path: 4 path: 0 path: 5 span: 59 span: 2 span: 63 span: 5 leading_comments: " Extensions for tooling.\n" } location: { path: 4 path: 0 path: 5 path: 0 span: 59 span: 13 span: 22 } location: { path: 4 path: 0 path: 5 path: 0 path: 1 span: 59 span: 13 span: 22 } location: { path: 4 path: 0 path: 5 path: 0 path: 2 span: 59 span: 13 span: 22 } location: { path: 4 path: 0 path: 5 path: 0 path: 3 span: 59 span: 23 span: 63 span: 4 } location: { path: 4 path: 0 path: 5 path: 0 path: 3 path: 2 path: 0 span: 59 span: 24 span: 63 span: 3 } location: { path: 4 path: 0 path: 5 path: 0 path: 3 path: 2 path: 0 path: 1 span: 60 span: 4 span: 21 } location: { path: 4 path: 0 path: 5 path: 0 path: 3 path: 2 path: 0 path: 3 span: 61 span: 4 span: 57 } location: { path: 4 path: 0 path: 5 path: 0 path: 3 path: 2 path: 0 path: 2 span: 62 span: 4 span: 69 } location: { path: 5 path: 0 span: 67 span: 0 span: 100 span: 1 leading_comments: " The full set of known editions.\n" } location: { path: 5 path: 0 path: 1 span: 67 span: 5 span: 12 } location: { path: 5 path: 0 path: 2 path: 0 span: 69 span: 2 span: 22 leading_comments: " A placeholder for an unknown edition value.\n" } location: { path: 5 path: 0 path: 2 path: 0 path: 1 span: 69 span: 2 span: 17 } location: { path: 5 path: 0 path: 2 path: 0 path: 2 span: 69 span: 20 span: 21 } location: { path: 5 path: 0 path: 2 path: 1 span: 73 span: 2 span: 23 leading_comments: " A placeholder edition for specifying default behaviors *before* a feature\n was first introduced. This is effectively an \"infinite past\".\n" } location: { path: 5 path: 0 path: 2 path: 1 path: 1 span: 73 span: 2 span: 16 } location: { path: 5 path: 0 path: 2 path: 1 path: 2 span: 73 span: 19 span: 22 } location: { path: 5 path: 0 path: 2 path: 2 span: 79 span: 2 span: 23 leading_comments: " Legacy syntax \"editions\". These pre-date editions, but behave much like\n distinct editions. These can't be used to specify the edition of proto\n files, but feature definitions must supply proto2/proto3 defaults for\n backwards compatibility.\n" } location: { path: 5 path: 0 path: 2 path: 2 path: 1 span: 79 span: 2 span: 16 } location: { path: 5 path: 0 path: 2 path: 2 path: 2 span: 79 span: 19 span: 22 } location: { path: 5 path: 0 path: 2 path: 3 span: 80 span: 2 span: 23 } location: { path: 5 path: 0 path: 2 path: 3 path: 1 span: 80 span: 2 span: 16 } location: { path: 5 path: 0 path: 2 path: 3 path: 2 span: 80 span: 19 span: 22 } location: { path: 5 path: 0 path: 2 path: 4 span: 85 span: 2 span: 22 leading_comments: " Editions that have been released. The specific values are arbitrary and\n should not be depended on, but they will always be time-ordered for easy\n comparison.\n" } location: { path: 5 path: 0 path: 2 path: 4 path: 1 span: 85 span: 2 span: 14 } location: { path: 5 path: 0 path: 2 path: 4 path: 2 span: 85 span: 17 span: 21 } location: { path: 5 path: 0 path: 2 path: 5 span: 86 span: 2 span: 22 } location: { path: 5 path: 0 path: 2 path: 5 path: 1 span: 86 span: 2 span: 14 } location: { path: 5 path: 0 path: 2 path: 5 path: 2 span: 86 span: 17 span: 21 } location: { path: 5 path: 0 path: 2 path: 6 span: 90 span: 2 span: 26 leading_comments: " Placeholder editions for testing feature resolution. These should not be\n used or relied on outside of tests.\n" } location: { path: 5 path: 0 path: 2 path: 6 path: 1 span: 90 span: 2 span: 21 } location: { path: 5 path: 0 path: 2 path: 6 path: 2 span: 90 span: 24 span: 25 } location: { path: 5 path: 0 path: 2 path: 7 span: 91 span: 2 span: 26 } location: { path: 5 path: 0 path: 2 path: 7 path: 1 span: 91 span: 2 span: 21 } location: { path: 5 path: 0 path: 2 path: 7 path: 2 span: 91 span: 24 span: 25 } location: { path: 5 path: 0 path: 2 path: 8 span: 92 span: 2 span: 34 } location: { path: 5 path: 0 path: 2 path: 8 path: 1 span: 92 span: 2 span: 25 } location: { path: 5 path: 0 path: 2 path: 8 path: 2 span: 92 span: 28 span: 33 } location: { path: 5 path: 0 path: 2 path: 9 span: 93 span: 2 span: 34 } location: { path: 5 path: 0 path: 2 path: 9 path: 1 span: 93 span: 2 span: 25 } location: { path: 5 path: 0 path: 2 path: 9 path: 2 span: 93 span: 28 span: 33 } location: { path: 5 path: 0 path: 2 path: 10 span: 94 span: 2 span: 34 } location: { path: 5 path: 0 path: 2 path: 10 path: 1 span: 94 span: 2 span: 25 } location: { path: 5 path: 0 path: 2 path: 10 path: 2 span: 94 span: 28 span: 33 } location: { path: 5 path: 0 path: 2 path: 11 span: 99 span: 2 span: 27 leading_comments: " Placeholder for specifying unbounded edition support. This should only\n ever be used by plugins that can expect to never require any changes to\n support a new edition.\n" } location: { path: 5 path: 0 path: 2 path: 11 path: 1 span: 99 span: 2 span: 13 } location: { path: 5 path: 0 path: 2 path: 11 path: 2 span: 99 span: 16 span: 26 } location: { path: 4 path: 1 span: 103 span: 0 span: 147 span: 1 leading_comments: " Describes a complete .proto file.\n" } location: { path: 4 path: 1 path: 1 span: 103 span: 8 span: 27 } location: { path: 4 path: 1 path: 2 path: 0 span: 104 span: 2 span: 27 trailing_comments: " file name, relative to root of source tree\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 4 span: 104 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 104 span: 11 span: 17 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 104 span: 18 span: 22 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 104 span: 25 span: 26 } location: { path: 4 path: 1 path: 2 path: 1 span: 105 span: 2 span: 30 trailing_comments: " e.g. \"foo\", \"foo.bar\", etc.\n" } location: { path: 4 path: 1 path: 2 path: 1 path: 4 span: 105 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 1 path: 5 span: 105 span: 11 span: 17 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 105 span: 18 span: 25 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 105 span: 28 span: 29 } location: { path: 4 path: 1 path: 2 path: 2 span: 108 span: 2 span: 33 leading_comments: " Names of files imported by this file.\n" } location: { path: 4 path: 1 path: 2 path: 2 path: 4 span: 108 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 2 path: 5 span: 108 span: 11 span: 17 } location: { path: 4 path: 1 path: 2 path: 2 path: 1 span: 108 span: 18 span: 28 } location: { path: 4 path: 1 path: 2 path: 2 path: 3 span: 108 span: 31 span: 32 } location: { path: 4 path: 1 path: 2 path: 3 span: 110 span: 2 span: 40 leading_comments: " Indexes of the public imported files in the dependency list above.\n" } location: { path: 4 path: 1 path: 2 path: 3 path: 4 span: 110 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 3 path: 5 span: 110 span: 11 span: 16 } location: { path: 4 path: 1 path: 2 path: 3 path: 1 span: 110 span: 17 span: 34 } location: { path: 4 path: 1 path: 2 path: 3 path: 3 span: 110 span: 37 span: 39 } location: { path: 4 path: 1 path: 2 path: 4 span: 113 span: 2 span: 38 leading_comments: " Indexes of the weak imported files in the dependency list.\n For Google-internal migration only. Do not use.\n" } location: { path: 4 path: 1 path: 2 path: 4 path: 4 span: 113 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 4 path: 5 span: 113 span: 11 span: 16 } location: { path: 4 path: 1 path: 2 path: 4 path: 1 span: 113 span: 17 span: 32 } location: { path: 4 path: 1 path: 2 path: 4 path: 3 span: 113 span: 35 span: 37 } location: { path: 4 path: 1 path: 2 path: 5 span: 117 span: 2 span: 41 leading_comments: " Names of files imported by this file purely for the purpose of providing\n option extensions. These are excluded from the dependency list above.\n" } location: { path: 4 path: 1 path: 2 path: 5 path: 4 span: 117 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 5 path: 5 span: 117 span: 11 span: 17 } location: { path: 4 path: 1 path: 2 path: 5 path: 1 span: 117 span: 18 span: 35 } location: { path: 4 path: 1 path: 2 path: 5 path: 3 span: 117 span: 38 span: 40 } location: { path: 4 path: 1 path: 2 path: 6 span: 120 span: 2 span: 44 leading_comments: " All top-level definitions in this file.\n" } location: { path: 4 path: 1 path: 2 path: 6 path: 4 span: 120 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 6 path: 6 span: 120 span: 11 span: 26 } location: { path: 4 path: 1 path: 2 path: 6 path: 1 span: 120 span: 27 span: 39 } location: { path: 4 path: 1 path: 2 path: 6 path: 3 span: 120 span: 42 span: 43 } location: { path: 4 path: 1 path: 2 path: 7 span: 121 span: 2 span: 45 } location: { path: 4 path: 1 path: 2 path: 7 path: 4 span: 121 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 7 path: 6 span: 121 span: 11 span: 30 } location: { path: 4 path: 1 path: 2 path: 7 path: 1 span: 121 span: 31 span: 40 } location: { path: 4 path: 1 path: 2 path: 7 path: 3 span: 121 span: 43 span: 44 } location: { path: 4 path: 1 path: 2 path: 8 span: 122 span: 2 span: 46 } location: { path: 4 path: 1 path: 2 path: 8 path: 4 span: 122 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 8 path: 6 span: 122 span: 11 span: 33 } location: { path: 4 path: 1 path: 2 path: 8 path: 1 span: 122 span: 34 span: 41 } location: { path: 4 path: 1 path: 2 path: 8 path: 3 span: 122 span: 44 span: 45 } location: { path: 4 path: 1 path: 2 path: 9 span: 123 span: 2 span: 46 } location: { path: 4 path: 1 path: 2 path: 9 path: 4 span: 123 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 9 path: 6 span: 123 span: 11 span: 31 } location: { path: 4 path: 1 path: 2 path: 9 path: 1 span: 123 span: 32 span: 41 } location: { path: 4 path: 1 path: 2 path: 9 path: 3 span: 123 span: 44 span: 45 } location: { path: 4 path: 1 path: 2 path: 10 span: 125 span: 2 span: 35 } location: { path: 4 path: 1 path: 2 path: 10 path: 4 span: 125 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 10 path: 6 span: 125 span: 11 span: 22 } location: { path: 4 path: 1 path: 2 path: 10 path: 1 span: 125 span: 23 span: 30 } location: { path: 4 path: 1 path: 2 path: 10 path: 3 span: 125 span: 33 span: 34 } location: { path: 4 path: 1 path: 2 path: 11 span: 131 span: 2 span: 47 leading_comments: " This field contains optional information about the original source code.\n You may safely remove this entire field without harming runtime\n functionality of the descriptors -- the information is needed only by\n development tools.\n" } location: { path: 4 path: 1 path: 2 path: 11 path: 4 span: 131 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 11 path: 6 span: 131 span: 11 span: 25 } location: { path: 4 path: 1 path: 2 path: 11 path: 1 span: 131 span: 26 span: 42 } location: { path: 4 path: 1 path: 2 path: 11 path: 3 span: 131 span: 45 span: 46 } location: { path: 4 path: 1 path: 2 path: 12 span: 140 span: 2 span: 30 leading_comments: " The syntax of the proto file.\n The supported values are \"proto2\", \"proto3\", and \"editions\".\n\n If `edition` is present, this value must be \"editions\".\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 1 path: 2 path: 12 path: 4 span: 140 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 12 path: 5 span: 140 span: 11 span: 17 } location: { path: 4 path: 1 path: 2 path: 12 path: 1 span: 140 span: 18 span: 24 } location: { path: 4 path: 1 path: 2 path: 12 path: 3 span: 140 span: 27 span: 29 } location: { path: 4 path: 1 path: 2 path: 13 span: 146 span: 2 span: 32 leading_comments: " The edition of the proto file.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 1 path: 2 path: 13 path: 4 span: 146 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 13 path: 6 span: 146 span: 11 span: 18 } location: { path: 4 path: 1 path: 2 path: 13 path: 1 span: 146 span: 19 span: 26 } location: { path: 4 path: 1 path: 2 path: 13 path: 3 span: 146 span: 29 span: 31 } location: { path: 4 path: 2 span: 150 span: 0 span: 185 span: 1 leading_comments: " Describes a message type.\n" } location: { path: 4 path: 2 path: 1 span: 150 span: 8 span: 23 } location: { path: 4 path: 2 path: 2 path: 0 span: 151 span: 2 span: 27 } location: { path: 4 path: 2 path: 2 path: 0 path: 4 span: 151 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 151 span: 11 span: 17 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 151 span: 18 span: 22 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 151 span: 25 span: 26 } location: { path: 4 path: 2 path: 2 path: 1 span: 153 span: 2 span: 42 } location: { path: 4 path: 2 path: 2 path: 1 path: 4 span: 153 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 1 path: 6 span: 153 span: 11 span: 31 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 153 span: 32 span: 37 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 153 span: 40 span: 41 } location: { path: 4 path: 2 path: 2 path: 2 span: 154 span: 2 span: 46 } location: { path: 4 path: 2 path: 2 path: 2 path: 4 span: 154 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 2 path: 6 span: 154 span: 11 span: 31 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 154 span: 32 span: 41 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 154 span: 44 span: 45 } location: { path: 4 path: 2 path: 2 path: 3 span: 156 span: 2 span: 43 } location: { path: 4 path: 2 path: 2 path: 3 path: 4 span: 156 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 3 path: 6 span: 156 span: 11 span: 26 } location: { path: 4 path: 2 path: 2 path: 3 path: 1 span: 156 span: 27 span: 38 } location: { path: 4 path: 2 path: 2 path: 3 path: 3 span: 156 span: 41 span: 42 } location: { path: 4 path: 2 path: 2 path: 4 span: 157 span: 2 span: 45 } location: { path: 4 path: 2 path: 2 path: 4 path: 4 span: 157 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 4 path: 6 span: 157 span: 11 span: 30 } location: { path: 4 path: 2 path: 2 path: 4 path: 1 span: 157 span: 31 span: 40 } location: { path: 4 path: 2 path: 2 path: 4 path: 3 span: 157 span: 43 span: 44 } location: { path: 4 path: 2 path: 3 path: 0 span: 159 span: 2 span: 164 span: 3 } location: { path: 4 path: 2 path: 3 path: 0 path: 1 span: 159 span: 10 span: 24 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 0 span: 160 span: 4 span: 29 trailing_comments: " Inclusive.\n" } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 0 path: 4 span: 160 span: 4 span: 12 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 0 path: 5 span: 160 span: 13 span: 18 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 0 path: 1 span: 160 span: 19 span: 24 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 0 path: 3 span: 160 span: 27 span: 28 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 1 span: 161 span: 4 span: 27 trailing_comments: " Exclusive.\n" } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 1 path: 4 span: 161 span: 4 span: 12 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 1 path: 5 span: 161 span: 13 span: 18 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 1 path: 1 span: 161 span: 19 span: 22 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 1 path: 3 span: 161 span: 25 span: 26 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 2 span: 163 span: 4 span: 47 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 2 path: 4 span: 163 span: 4 span: 12 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 2 path: 6 span: 163 span: 13 span: 34 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 2 path: 1 span: 163 span: 35 span: 42 } location: { path: 4 path: 2 path: 3 path: 0 path: 2 path: 2 path: 3 span: 163 span: 45 span: 46 } location: { path: 4 path: 2 path: 2 path: 5 span: 165 span: 2 span: 46 } location: { path: 4 path: 2 path: 2 path: 5 path: 4 span: 165 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 5 path: 6 span: 165 span: 11 span: 25 } location: { path: 4 path: 2 path: 2 path: 5 path: 1 span: 165 span: 26 span: 41 } location: { path: 4 path: 2 path: 2 path: 5 path: 3 span: 165 span: 44 span: 45 } location: { path: 4 path: 2 path: 2 path: 6 span: 167 span: 2 span: 47 } location: { path: 4 path: 2 path: 2 path: 6 path: 4 span: 167 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 6 path: 6 span: 167 span: 11 span: 31 } location: { path: 4 path: 2 path: 2 path: 6 path: 1 span: 167 span: 32 span: 42 } location: { path: 4 path: 2 path: 2 path: 6 path: 3 span: 167 span: 45 span: 46 } location: { path: 4 path: 2 path: 2 path: 7 span: 169 span: 2 span: 38 } location: { path: 4 path: 2 path: 2 path: 7 path: 4 span: 169 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 7 path: 6 span: 169 span: 11 span: 25 } location: { path: 4 path: 2 path: 2 path: 7 path: 1 span: 169 span: 26 span: 33 } location: { path: 4 path: 2 path: 2 path: 7 path: 3 span: 169 span: 36 span: 37 } location: { path: 4 path: 2 path: 3 path: 1 span: 174 span: 2 span: 177 span: 3 leading_comments: " Range of reserved tag numbers. Reserved tag numbers may not be used by\n fields or extension ranges in the same message. Reserved ranges may\n not overlap.\n" } location: { path: 4 path: 2 path: 3 path: 1 path: 1 span: 174 span: 10 span: 23 } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 0 span: 175 span: 4 span: 29 trailing_comments: " Inclusive.\n" } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 0 path: 4 span: 175 span: 4 span: 12 } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 0 path: 5 span: 175 span: 13 span: 18 } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 0 path: 1 span: 175 span: 19 span: 24 } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 0 path: 3 span: 175 span: 27 span: 28 } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 1 span: 176 span: 4 span: 27 trailing_comments: " Exclusive.\n" } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 1 path: 4 span: 176 span: 4 span: 12 } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 1 path: 5 span: 176 span: 13 span: 18 } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 1 path: 1 span: 176 span: 19 span: 22 } location: { path: 4 path: 2 path: 3 path: 1 path: 2 path: 1 path: 3 span: 176 span: 25 span: 26 } location: { path: 4 path: 2 path: 2 path: 8 span: 178 span: 2 span: 44 } location: { path: 4 path: 2 path: 2 path: 8 path: 4 span: 178 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 8 path: 6 span: 178 span: 11 span: 24 } location: { path: 4 path: 2 path: 2 path: 8 path: 1 span: 178 span: 25 span: 39 } location: { path: 4 path: 2 path: 2 path: 8 path: 3 span: 178 span: 42 span: 43 } location: { path: 4 path: 2 path: 2 path: 9 span: 181 span: 2 span: 37 leading_comments: " Reserved field names, which may not be used by fields in the same message.\n A given name may only be reserved once.\n" } location: { path: 4 path: 2 path: 2 path: 9 path: 4 span: 181 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 9 path: 5 span: 181 span: 11 span: 17 } location: { path: 4 path: 2 path: 2 path: 9 path: 1 span: 181 span: 18 span: 31 } location: { path: 4 path: 2 path: 2 path: 9 path: 3 span: 181 span: 34 span: 36 } location: { path: 4 path: 2 path: 2 path: 10 span: 184 span: 2 span: 44 leading_comments: " Support for `export` and `local` keywords on enums.\n" } location: { path: 4 path: 2 path: 2 path: 10 path: 4 span: 184 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 10 path: 6 span: 184 span: 11 span: 27 } location: { path: 4 path: 2 path: 2 path: 10 path: 1 span: 184 span: 28 span: 38 } location: { path: 4 path: 2 path: 2 path: 10 path: 3 span: 184 span: 41 span: 43 } location: { path: 4 path: 3 span: 187 span: 0 span: 239 span: 1 } location: { path: 4 path: 3 path: 1 span: 187 span: 8 span: 29 } location: { path: 4 path: 3 path: 2 path: 0 span: 189 span: 2 span: 58 leading_comments: " The parser stores options it doesn't recognize here. See above.\n" } location: { path: 4 path: 3 path: 2 path: 0 path: 4 span: 189 span: 2 span: 10 } location: { path: 4 path: 3 path: 2 path: 0 path: 6 span: 189 span: 11 span: 30 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 189 span: 31 span: 51 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 189 span: 54 span: 57 } location: { path: 4 path: 3 path: 3 path: 0 span: 191 span: 2 span: 214 span: 3 } location: { path: 4 path: 3 path: 3 path: 0 path: 1 span: 191 span: 10 span: 21 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 0 span: 193 span: 4 span: 30 leading_comments: " The extension number declared within the extension range.\n" } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 0 path: 4 span: 193 span: 4 span: 12 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 0 path: 5 span: 193 span: 13 span: 18 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 0 path: 1 span: 193 span: 19 span: 25 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 0 path: 3 span: 193 span: 28 span: 29 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 1 span: 197 span: 4 span: 34 leading_comments: " The fully-qualified name of the extension field. There must be a leading\n dot in front of the full name.\n" } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 1 path: 4 span: 197 span: 4 span: 12 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 1 path: 5 span: 197 span: 13 span: 19 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 1 path: 1 span: 197 span: 20 span: 29 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 1 path: 3 span: 197 span: 32 span: 33 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 2 span: 202 span: 4 span: 29 leading_comments: " The fully-qualified type name of the extension field. Unlike\n Metadata.type, Declaration.type must have a leading dot for messages\n and enums.\n" } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 2 path: 4 span: 202 span: 4 span: 12 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 2 path: 5 span: 202 span: 13 span: 19 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 2 path: 1 span: 202 span: 20 span: 24 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 2 path: 3 span: 202 span: 27 span: 28 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 3 span: 207 span: 4 span: 31 leading_comments: " If true, indicates that the number is reserved in the extension range,\n and any extension field with the number will fail to compile. Set this\n when a declared extension field is deleted.\n" } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 3 path: 4 span: 207 span: 4 span: 12 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 3 path: 5 span: 207 span: 13 span: 17 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 3 path: 1 span: 207 span: 18 span: 26 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 3 path: 3 span: 207 span: 29 span: 30 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 4 span: 211 span: 4 span: 31 leading_comments: " If true, indicates that the extension must be defined as repeated.\n Otherwise the extension must be defined as optional.\n" } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 4 path: 4 span: 211 span: 4 span: 12 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 4 path: 5 span: 211 span: 13 span: 17 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 4 path: 1 span: 211 span: 18 span: 26 } location: { path: 4 path: 3 path: 3 path: 0 path: 2 path: 4 path: 3 span: 211 span: 29 span: 30 } location: { path: 4 path: 3 path: 3 path: 0 path: 9 span: 213 span: 4 span: 15 trailing_comments: " removed is_repeated\n" } location: { path: 4 path: 3 path: 3 path: 0 path: 9 path: 0 span: 213 span: 13 span: 14 } location: { path: 4 path: 3 path: 3 path: 0 path: 9 path: 0 path: 1 span: 213 span: 13 span: 14 } location: { path: 4 path: 3 path: 3 path: 0 path: 9 path: 0 path: 2 span: 213 span: 13 span: 14 } location: { path: 4 path: 3 path: 2 path: 1 span: 219 span: 2 span: 70 leading_comments: " For external users: DO NOT USE. We are in the process of open sourcing\n extension declaration and executing internal cleanups before it can be\n used externally.\n" } location: { path: 4 path: 3 path: 2 path: 1 path: 4 span: 219 span: 2 span: 10 } location: { path: 4 path: 3 path: 2 path: 1 path: 6 span: 219 span: 11 span: 22 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 219 span: 23 span: 34 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 219 span: 37 span: 38 } location: { path: 4 path: 3 path: 2 path: 1 path: 8 span: 219 span: 39 span: 69 } location: { path: 4 path: 3 path: 2 path: 1 path: 8 path: 17 span: 219 span: 40 span: 68 } location: { path: 4 path: 3 path: 2 path: 2 span: 222 span: 2 span: 36 leading_comments: " Any features defined in the specific edition.\n" } location: { path: 4 path: 3 path: 2 path: 2 path: 4 span: 222 span: 2 span: 10 } location: { path: 4 path: 3 path: 2 path: 2 path: 6 span: 222 span: 11 span: 21 } location: { path: 4 path: 3 path: 2 path: 2 path: 1 span: 222 span: 22 span: 30 } location: { path: 4 path: 3 path: 2 path: 2 path: 3 span: 222 span: 33 span: 35 } location: { path: 4 path: 3 path: 4 path: 0 span: 225 span: 2 span: 229 span: 3 leading_comments: " The verification state of the extension range.\n" } location: { path: 4 path: 3 path: 4 path: 0 path: 1 span: 225 span: 7 span: 24 } location: { path: 4 path: 3 path: 4 path: 0 path: 2 path: 0 span: 227 span: 4 span: 20 leading_comments: " All the extensions of the range must be declared.\n" } location: { path: 4 path: 3 path: 4 path: 0 path: 2 path: 0 path: 1 span: 227 span: 4 span: 15 } location: { path: 4 path: 3 path: 4 path: 0 path: 2 path: 0 path: 2 span: 227 span: 18 span: 19 } location: { path: 4 path: 3 path: 4 path: 0 path: 2 path: 1 span: 228 span: 4 span: 19 } location: { path: 4 path: 3 path: 4 path: 0 path: 2 path: 1 path: 1 span: 228 span: 4 span: 14 } location: { path: 4 path: 3 path: 4 path: 0 path: 2 path: 1 path: 2 span: 228 span: 17 span: 18 } location: { path: 4 path: 3 path: 2 path: 3 span: 234 span: 2 span: 235 span: 59 leading_comments: " The verification state of the range.\n TODO: flip the default to DECLARATION once all empty ranges\n are marked as UNVERIFIED.\n" } location: { path: 4 path: 3 path: 2 path: 3 path: 4 span: 234 span: 2 span: 10 } location: { path: 4 path: 3 path: 2 path: 3 path: 6 span: 234 span: 11 span: 28 } location: { path: 4 path: 3 path: 2 path: 3 path: 1 span: 234 span: 29 span: 41 } location: { path: 4 path: 3 path: 2 path: 3 path: 3 span: 234 span: 44 span: 45 } location: { path: 4 path: 3 path: 2 path: 3 path: 8 span: 235 span: 6 span: 58 } location: { path: 4 path: 3 path: 2 path: 3 path: 7 span: 235 span: 7 span: 27 } location: { path: 4 path: 3 path: 2 path: 3 path: 8 path: 17 span: 235 span: 29 span: 57 } location: { path: 4 path: 3 path: 5 span: 238 span: 2 span: 25 leading_comments: " Clients can define custom options in extensions of this message. See above.\n" } location: { path: 4 path: 3 path: 5 path: 0 span: 238 span: 13 span: 24 } location: { path: 4 path: 3 path: 5 path: 0 path: 1 span: 238 span: 13 span: 17 } location: { path: 4 path: 3 path: 5 path: 0 path: 2 span: 238 span: 21 span: 24 } location: { path: 4 path: 4 span: 242 span: 0 span: 346 span: 1 leading_comments: " Describes a field within a message.\n" } location: { path: 4 path: 4 path: 1 span: 242 span: 8 span: 28 } location: { path: 4 path: 4 path: 4 path: 0 span: 243 span: 2 span: 275 span: 3 } location: { path: 4 path: 4 path: 4 path: 0 path: 1 span: 243 span: 7 span: 11 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 0 span: 246 span: 4 span: 20 leading_comments: " 0 is reserved for errors.\n Order is weird for historical reasons.\n" } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 0 path: 1 span: 246 span: 4 span: 15 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 0 path: 2 span: 246 span: 18 span: 19 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 1 span: 247 span: 4 span: 19 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 1 path: 1 span: 247 span: 4 span: 14 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 1 path: 2 span: 247 span: 17 span: 18 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 2 span: 250 span: 4 span: 19 leading_comments: " Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n negative values are likely.\n" } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 2 path: 1 span: 250 span: 4 span: 14 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 2 path: 2 span: 250 span: 17 span: 18 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 3 span: 251 span: 4 span: 20 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 3 path: 1 span: 251 span: 4 span: 15 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 3 path: 2 span: 251 span: 18 span: 19 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 4 span: 254 span: 4 span: 19 leading_comments: " Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n negative values are likely.\n" } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 4 path: 1 span: 254 span: 4 span: 14 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 4 path: 2 span: 254 span: 17 span: 18 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 5 span: 255 span: 4 span: 21 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 5 path: 1 span: 255 span: 4 span: 16 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 5 path: 2 span: 255 span: 19 span: 20 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 6 span: 256 span: 4 span: 21 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 6 path: 1 span: 256 span: 4 span: 16 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 6 path: 2 span: 256 span: 19 span: 20 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 7 span: 257 span: 4 span: 18 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 7 path: 1 span: 257 span: 4 span: 13 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 7 path: 2 span: 257 span: 16 span: 17 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 8 span: 258 span: 4 span: 20 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 8 path: 1 span: 258 span: 4 span: 15 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 8 path: 2 span: 258 span: 18 span: 19 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 9 span: 264 span: 4 span: 20 leading_comments: " Tag-delimited aggregate.\n Group type is deprecated and not supported after google.protobuf. However, Proto3\n implementations should still be able to parse the group wire format and\n treat group fields as unknown fields. In Editions, the group wire format\n can be enabled via the `message_encoding` feature.\n" } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 9 path: 1 span: 264 span: 4 span: 14 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 9 path: 2 span: 264 span: 17 span: 19 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 10 span: 265 span: 4 span: 22 trailing_comments: " Length-delimited aggregate.\n" } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 10 path: 1 span: 265 span: 4 span: 16 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 10 path: 2 span: 265 span: 19 span: 21 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 11 span: 268 span: 4 span: 20 leading_comments: " New in version 2.\n" } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 11 path: 1 span: 268 span: 4 span: 14 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 11 path: 2 span: 268 span: 17 span: 19 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 12 span: 269 span: 4 span: 21 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 12 path: 1 span: 269 span: 4 span: 15 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 12 path: 2 span: 269 span: 18 span: 20 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 13 span: 270 span: 4 span: 19 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 13 path: 1 span: 270 span: 4 span: 13 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 13 path: 2 span: 270 span: 16 span: 18 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 14 span: 271 span: 4 span: 23 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 14 path: 1 span: 271 span: 4 span: 17 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 14 path: 2 span: 271 span: 20 span: 22 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 15 span: 272 span: 4 span: 23 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 15 path: 1 span: 272 span: 4 span: 17 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 15 path: 2 span: 272 span: 20 span: 22 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 16 span: 273 span: 4 span: 21 trailing_comments: " Uses ZigZag encoding.\n" } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 16 path: 1 span: 273 span: 4 span: 15 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 16 path: 2 span: 273 span: 18 span: 20 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 17 span: 274 span: 4 span: 21 trailing_comments: " Uses ZigZag encoding.\n" } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 17 path: 1 span: 274 span: 4 span: 15 } location: { path: 4 path: 4 path: 4 path: 0 path: 2 path: 17 path: 2 span: 274 span: 18 span: 20 } location: { path: 4 path: 4 path: 4 path: 1 span: 277 span: 2 span: 285 span: 3 } location: { path: 4 path: 4 path: 4 path: 1 path: 1 span: 277 span: 7 span: 12 } location: { path: 4 path: 4 path: 4 path: 1 path: 2 path: 0 span: 279 span: 4 span: 23 leading_comments: " 0 is reserved for errors\n" } location: { path: 4 path: 4 path: 4 path: 1 path: 2 path: 0 path: 1 span: 279 span: 4 span: 18 } location: { path: 4 path: 4 path: 4 path: 1 path: 2 path: 0 path: 2 span: 279 span: 21 span: 22 } location: { path: 4 path: 4 path: 4 path: 1 path: 2 path: 1 span: 280 span: 4 span: 23 } location: { path: 4 path: 4 path: 4 path: 1 path: 2 path: 1 path: 1 span: 280 span: 4 span: 18 } location: { path: 4 path: 4 path: 4 path: 1 path: 2 path: 1 path: 2 span: 280 span: 21 span: 22 } location: { path: 4 path: 4 path: 4 path: 1 path: 2 path: 2 span: 284 span: 4 span: 23 leading_comments: " The required label is only allowed in google.protobuf. In proto3 and Editions\n it's explicitly prohibited. In Editions, the `field_presence` feature\n can be used to get this behavior.\n" } location: { path: 4 path: 4 path: 4 path: 1 path: 2 path: 2 path: 1 span: 284 span: 4 span: 18 } location: { path: 4 path: 4 path: 4 path: 1 path: 2 path: 2 path: 2 span: 284 span: 21 span: 22 } location: { path: 4 path: 4 path: 2 path: 0 span: 287 span: 2 span: 27 } location: { path: 4 path: 4 path: 2 path: 0 path: 4 span: 287 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 287 span: 11 span: 17 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 287 span: 18 span: 22 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 287 span: 25 span: 26 } location: { path: 4 path: 4 path: 2 path: 1 span: 288 span: 2 span: 28 } location: { path: 4 path: 4 path: 2 path: 1 path: 4 span: 288 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 1 path: 5 span: 288 span: 11 span: 16 } location: { path: 4 path: 4 path: 2 path: 1 path: 1 span: 288 span: 17 span: 23 } location: { path: 4 path: 4 path: 2 path: 1 path: 3 span: 288 span: 26 span: 27 } location: { path: 4 path: 4 path: 2 path: 2 span: 289 span: 2 span: 27 } location: { path: 4 path: 4 path: 2 path: 2 path: 4 span: 289 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 2 path: 6 span: 289 span: 11 span: 16 } location: { path: 4 path: 4 path: 2 path: 2 path: 1 span: 289 span: 17 span: 22 } location: { path: 4 path: 4 path: 2 path: 2 path: 3 span: 289 span: 25 span: 26 } location: { path: 4 path: 4 path: 2 path: 3 span: 293 span: 2 span: 25 leading_comments: " If type_name is set, this need not be set. If both this and type_name\n are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.\n" } location: { path: 4 path: 4 path: 2 path: 3 path: 4 span: 293 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 3 path: 6 span: 293 span: 11 span: 15 } location: { path: 4 path: 4 path: 2 path: 3 path: 1 span: 293 span: 16 span: 20 } location: { path: 4 path: 4 path: 2 path: 3 path: 3 span: 293 span: 23 span: 24 } location: { path: 4 path: 4 path: 2 path: 4 span: 300 span: 2 span: 32 leading_comments: " For message and enum types, this is the name of the type. If the name\n starts with a '.', it is fully-qualified. Otherwise, C++-like scoping\n rules are used to find the type (i.e. first the nested types within this\n message are searched, then within the parent, on up to the root\n namespace).\n" } location: { path: 4 path: 4 path: 2 path: 4 path: 4 span: 300 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 4 path: 5 span: 300 span: 11 span: 17 } location: { path: 4 path: 4 path: 2 path: 4 path: 1 span: 300 span: 18 span: 27 } location: { path: 4 path: 4 path: 2 path: 4 path: 3 span: 300 span: 30 span: 31 } location: { path: 4 path: 4 path: 2 path: 5 span: 304 span: 2 span: 31 leading_comments: " For extensions, this is the name of the type being extended. It is\n resolved in the same manner as type_name.\n" } location: { path: 4 path: 4 path: 2 path: 5 path: 4 span: 304 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 5 path: 5 span: 304 span: 11 span: 17 } location: { path: 4 path: 4 path: 2 path: 5 path: 1 span: 304 span: 18 span: 26 } location: { path: 4 path: 4 path: 2 path: 5 path: 3 span: 304 span: 29 span: 30 } location: { path: 4 path: 4 path: 2 path: 6 span: 310 span: 2 span: 36 leading_comments: " For numeric types, contains the original text representation of the value.\n For booleans, \"true\" or \"false\".\n For strings, contains the default text contents (not escaped in any way).\n For bytes, contains the C escaped value. All bytes >= 128 are escaped.\n" } location: { path: 4 path: 4 path: 2 path: 6 path: 4 span: 310 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 6 path: 5 span: 310 span: 11 span: 17 } location: { path: 4 path: 4 path: 2 path: 6 path: 1 span: 310 span: 18 span: 31 } location: { path: 4 path: 4 path: 2 path: 6 path: 3 span: 310 span: 34 span: 35 } location: { path: 4 path: 4 path: 2 path: 7 span: 314 span: 2 span: 33 leading_comments: " If set, gives the index of a oneof in the containing type's oneof_decl\n list. This field is a member of that oneof.\n" } location: { path: 4 path: 4 path: 2 path: 7 path: 4 span: 314 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 7 path: 5 span: 314 span: 11 span: 16 } location: { path: 4 path: 4 path: 2 path: 7 path: 1 span: 314 span: 17 span: 28 } location: { path: 4 path: 4 path: 2 path: 7 path: 3 span: 314 span: 31 span: 32 } location: { path: 4 path: 4 path: 2 path: 8 span: 320 span: 2 span: 33 leading_comments: " JSON name of this field. The value is set by protocol compiler. If the\n user has set a \"json_name\" option on this field, that option's value\n will be used. Otherwise, it's deduced from the field's name by converting\n it to camelCase.\n" } location: { path: 4 path: 4 path: 2 path: 8 path: 4 span: 320 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 8 path: 5 span: 320 span: 11 span: 17 } location: { path: 4 path: 4 path: 2 path: 8 path: 1 span: 320 span: 18 span: 27 } location: { path: 4 path: 4 path: 2 path: 8 path: 3 span: 320 span: 30 span: 32 } location: { path: 4 path: 4 path: 2 path: 9 span: 322 span: 2 span: 36 } location: { path: 4 path: 4 path: 2 path: 9 path: 4 span: 322 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 9 path: 6 span: 322 span: 11 span: 23 } location: { path: 4 path: 4 path: 2 path: 9 path: 1 span: 322 span: 24 span: 31 } location: { path: 4 path: 4 path: 2 path: 9 path: 3 span: 322 span: 34 span: 35 } location: { path: 4 path: 4 path: 2 path: 10 span: 345 span: 2 span: 37 leading_comments: " If true, this is a proto3 \"optional\". When a proto3 field is optional, it\n tracks presence regardless of field type.\n\n When proto3_optional is true, this field must belong to a oneof to signal\n to old proto3 clients that presence is tracked for this field. This oneof\n is known as a \"synthetic\" oneof, and this field must be its sole member\n (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs\n exist in the descriptor only, and do not generate any API. Synthetic oneofs\n must be ordered after all \"real\" oneofs.\n\n For message fields, proto3_optional doesn't create any semantic change,\n since non-repeated message fields always track presence. However it still\n indicates the semantic detail of whether the user wrote \"optional\" or not.\n This can be useful for round-tripping the .proto file. For consistency we\n give message fields a synthetic oneof also, even though it is not required\n to track presence. This is especially important because the parser can't\n tell if a field is a message or an enum, so it must always create a\n synthetic oneof.\n\n Proto2 optional fields do not set this flag, because they already indicate\n optional with `LABEL_OPTIONAL`.\n" } location: { path: 4 path: 4 path: 2 path: 10 path: 4 span: 345 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 10 path: 5 span: 345 span: 11 span: 15 } location: { path: 4 path: 4 path: 2 path: 10 path: 1 span: 345 span: 16 span: 31 } location: { path: 4 path: 4 path: 2 path: 10 path: 3 span: 345 span: 34 span: 36 } location: { path: 4 path: 5 span: 349 span: 0 span: 352 span: 1 leading_comments: " Describes a oneof.\n" } location: { path: 4 path: 5 path: 1 span: 349 span: 8 span: 28 } location: { path: 4 path: 5 path: 2 path: 0 span: 350 span: 2 span: 27 } location: { path: 4 path: 5 path: 2 path: 0 path: 4 span: 350 span: 2 span: 10 } location: { path: 4 path: 5 path: 2 path: 0 path: 5 span: 350 span: 11 span: 17 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 350 span: 18 span: 22 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 350 span: 25 span: 26 } location: { path: 4 path: 5 path: 2 path: 1 span: 351 span: 2 span: 36 } location: { path: 4 path: 5 path: 2 path: 1 path: 4 span: 351 span: 2 span: 10 } location: { path: 4 path: 5 path: 2 path: 1 path: 6 span: 351 span: 11 span: 23 } location: { path: 4 path: 5 path: 2 path: 1 path: 1 span: 351 span: 24 span: 31 } location: { path: 4 path: 5 path: 2 path: 1 path: 3 span: 351 span: 34 span: 35 } location: { path: 4 path: 6 span: 355 span: 0 span: 384 span: 1 leading_comments: " Describes an enum type.\n" } location: { path: 4 path: 6 path: 1 span: 355 span: 8 span: 27 } location: { path: 4 path: 6 path: 2 path: 0 span: 356 span: 2 span: 27 } location: { path: 4 path: 6 path: 2 path: 0 path: 4 span: 356 span: 2 span: 10 } location: { path: 4 path: 6 path: 2 path: 0 path: 5 span: 356 span: 11 span: 17 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 356 span: 18 span: 22 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 356 span: 25 span: 26 } location: { path: 4 path: 6 path: 2 path: 1 span: 358 span: 2 span: 46 } location: { path: 4 path: 6 path: 2 path: 1 path: 4 span: 358 span: 2 span: 10 } location: { path: 4 path: 6 path: 2 path: 1 path: 6 span: 358 span: 11 span: 35 } location: { path: 4 path: 6 path: 2 path: 1 path: 1 span: 358 span: 36 span: 41 } location: { path: 4 path: 6 path: 2 path: 1 path: 3 span: 358 span: 44 span: 45 } location: { path: 4 path: 6 path: 2 path: 2 span: 360 span: 2 span: 35 } location: { path: 4 path: 6 path: 2 path: 2 path: 4 span: 360 span: 2 span: 10 } location: { path: 4 path: 6 path: 2 path: 2 path: 6 span: 360 span: 11 span: 22 } location: { path: 4 path: 6 path: 2 path: 2 path: 1 span: 360 span: 23 span: 30 } location: { path: 4 path: 6 path: 2 path: 2 path: 3 span: 360 span: 33 span: 34 } location: { path: 4 path: 6 path: 3 path: 0 span: 368 span: 2 span: 371 span: 3 leading_comments: " Range of reserved numeric values. Reserved values may not be used by\n entries in the same enum. Reserved ranges may not overlap.\n\n Note that this is distinct from DescriptorProto.ReservedRange in that it\n is inclusive such that it can appropriately represent the entire int32\n domain.\n" } location: { path: 4 path: 6 path: 3 path: 0 path: 1 span: 368 span: 10 span: 27 } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 0 span: 369 span: 4 span: 29 trailing_comments: " Inclusive.\n" } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 0 path: 4 span: 369 span: 4 span: 12 } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 0 path: 5 span: 369 span: 13 span: 18 } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 0 path: 1 span: 369 span: 19 span: 24 } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 0 path: 3 span: 369 span: 27 span: 28 } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 1 span: 370 span: 4 span: 27 trailing_comments: " Inclusive.\n" } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 1 path: 4 span: 370 span: 4 span: 12 } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 1 path: 5 span: 370 span: 13 span: 18 } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 1 path: 1 span: 370 span: 19 span: 22 } location: { path: 4 path: 6 path: 3 path: 0 path: 2 path: 1 path: 3 span: 370 span: 25 span: 26 } location: { path: 4 path: 6 path: 2 path: 3 span: 376 span: 2 span: 48 leading_comments: " Range of reserved numeric values. Reserved numeric values may not be used\n by enum values in the same enum declaration. Reserved ranges may not\n overlap.\n" } location: { path: 4 path: 6 path: 2 path: 3 path: 4 span: 376 span: 2 span: 10 } location: { path: 4 path: 6 path: 2 path: 3 path: 6 span: 376 span: 11 span: 28 } location: { path: 4 path: 6 path: 2 path: 3 path: 1 span: 376 span: 29 span: 43 } location: { path: 4 path: 6 path: 2 path: 3 path: 3 span: 376 span: 46 span: 47 } location: { path: 4 path: 6 path: 2 path: 4 span: 380 span: 2 span: 36 leading_comments: " Reserved enum value names, which may not be reused. A given name may only\n be reserved once.\n" } location: { path: 4 path: 6 path: 2 path: 4 path: 4 span: 380 span: 2 span: 10 } location: { path: 4 path: 6 path: 2 path: 4 path: 5 span: 380 span: 11 span: 17 } location: { path: 4 path: 6 path: 2 path: 4 path: 1 span: 380 span: 18 span: 31 } location: { path: 4 path: 6 path: 2 path: 4 path: 3 span: 380 span: 34 span: 35 } location: { path: 4 path: 6 path: 2 path: 5 span: 383 span: 2 span: 43 leading_comments: " Support for `export` and `local` keywords on enums.\n" } location: { path: 4 path: 6 path: 2 path: 5 path: 4 span: 383 span: 2 span: 10 } location: { path: 4 path: 6 path: 2 path: 5 path: 6 span: 383 span: 11 span: 27 } location: { path: 4 path: 6 path: 2 path: 5 path: 1 span: 383 span: 28 span: 38 } location: { path: 4 path: 6 path: 2 path: 5 path: 3 span: 383 span: 41 span: 42 } location: { path: 4 path: 7 span: 387 span: 0 span: 392 span: 1 leading_comments: " Describes a value within an enum.\n" } location: { path: 4 path: 7 path: 1 span: 387 span: 8 span: 32 } location: { path: 4 path: 7 path: 2 path: 0 span: 388 span: 2 span: 27 } location: { path: 4 path: 7 path: 2 path: 0 path: 4 span: 388 span: 2 span: 10 } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 388 span: 11 span: 17 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 388 span: 18 span: 22 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 388 span: 25 span: 26 } location: { path: 4 path: 7 path: 2 path: 1 span: 389 span: 2 span: 28 } location: { path: 4 path: 7 path: 2 path: 1 path: 4 span: 389 span: 2 span: 10 } location: { path: 4 path: 7 path: 2 path: 1 path: 5 span: 389 span: 11 span: 16 } location: { path: 4 path: 7 path: 2 path: 1 path: 1 span: 389 span: 17 span: 23 } location: { path: 4 path: 7 path: 2 path: 1 path: 3 span: 389 span: 26 span: 27 } location: { path: 4 path: 7 path: 2 path: 2 span: 391 span: 2 span: 40 } location: { path: 4 path: 7 path: 2 path: 2 path: 4 span: 391 span: 2 span: 10 } location: { path: 4 path: 7 path: 2 path: 2 path: 6 span: 391 span: 11 span: 27 } location: { path: 4 path: 7 path: 2 path: 2 path: 1 span: 391 span: 28 span: 35 } location: { path: 4 path: 7 path: 2 path: 2 path: 3 span: 391 span: 38 span: 39 } location: { path: 4 path: 8 span: 395 span: 0 span: 400 span: 1 leading_comments: " Describes a service.\n" } location: { path: 4 path: 8 path: 1 span: 395 span: 8 span: 30 } location: { path: 4 path: 8 path: 2 path: 0 span: 396 span: 2 span: 27 } location: { path: 4 path: 8 path: 2 path: 0 path: 4 span: 396 span: 2 span: 10 } location: { path: 4 path: 8 path: 2 path: 0 path: 5 span: 396 span: 11 span: 17 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 396 span: 18 span: 22 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 396 span: 25 span: 26 } location: { path: 4 path: 8 path: 2 path: 1 span: 397 span: 2 span: 44 } location: { path: 4 path: 8 path: 2 path: 1 path: 4 span: 397 span: 2 span: 10 } location: { path: 4 path: 8 path: 2 path: 1 path: 6 span: 397 span: 11 span: 32 } location: { path: 4 path: 8 path: 2 path: 1 path: 1 span: 397 span: 33 span: 39 } location: { path: 4 path: 8 path: 2 path: 1 path: 3 span: 397 span: 42 span: 43 } location: { path: 4 path: 8 path: 2 path: 2 span: 399 span: 2 span: 38 } location: { path: 4 path: 8 path: 2 path: 2 path: 4 span: 399 span: 2 span: 10 } location: { path: 4 path: 8 path: 2 path: 2 path: 6 span: 399 span: 11 span: 25 } location: { path: 4 path: 8 path: 2 path: 2 path: 1 span: 399 span: 26 span: 33 } location: { path: 4 path: 8 path: 2 path: 2 path: 3 span: 399 span: 36 span: 37 } location: { path: 4 path: 9 span: 403 span: 0 span: 417 span: 1 leading_comments: " Describes a method of a service.\n" } location: { path: 4 path: 9 path: 1 span: 403 span: 8 span: 29 } location: { path: 4 path: 9 path: 2 path: 0 span: 404 span: 2 span: 27 } location: { path: 4 path: 9 path: 2 path: 0 path: 4 span: 404 span: 2 span: 10 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 404 span: 11 span: 17 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 404 span: 18 span: 22 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 404 span: 25 span: 26 } location: { path: 4 path: 9 path: 2 path: 1 span: 408 span: 2 span: 33 leading_comments: " Input and output type names. These are resolved in the same way as\n FieldDescriptorProto.type_name, but must refer to a message type.\n" } location: { path: 4 path: 9 path: 2 path: 1 path: 4 span: 408 span: 2 span: 10 } location: { path: 4 path: 9 path: 2 path: 1 path: 5 span: 408 span: 11 span: 17 } location: { path: 4 path: 9 path: 2 path: 1 path: 1 span: 408 span: 18 span: 28 } location: { path: 4 path: 9 path: 2 path: 1 path: 3 span: 408 span: 31 span: 32 } location: { path: 4 path: 9 path: 2 path: 2 span: 409 span: 2 span: 34 } location: { path: 4 path: 9 path: 2 path: 2 path: 4 span: 409 span: 2 span: 10 } location: { path: 4 path: 9 path: 2 path: 2 path: 5 span: 409 span: 11 span: 17 } location: { path: 4 path: 9 path: 2 path: 2 path: 1 span: 409 span: 18 span: 29 } location: { path: 4 path: 9 path: 2 path: 2 path: 3 span: 409 span: 32 span: 33 } location: { path: 4 path: 9 path: 2 path: 3 span: 411 span: 2 span: 37 } location: { path: 4 path: 9 path: 2 path: 3 path: 4 span: 411 span: 2 span: 10 } location: { path: 4 path: 9 path: 2 path: 3 path: 6 span: 411 span: 11 span: 24 } location: { path: 4 path: 9 path: 2 path: 3 path: 1 span: 411 span: 25 span: 32 } location: { path: 4 path: 9 path: 2 path: 3 path: 3 span: 411 span: 35 span: 36 } location: { path: 4 path: 9 path: 2 path: 4 span: 414 span: 2 span: 55 leading_comments: " Identifies if client streams multiple client messages\n" } location: { path: 4 path: 9 path: 2 path: 4 path: 4 span: 414 span: 2 span: 10 } location: { path: 4 path: 9 path: 2 path: 4 path: 5 span: 414 span: 11 span: 15 } location: { path: 4 path: 9 path: 2 path: 4 path: 1 span: 414 span: 16 span: 32 } location: { path: 4 path: 9 path: 2 path: 4 path: 3 span: 414 span: 35 span: 36 } location: { path: 4 path: 9 path: 2 path: 4 path: 8 span: 414 span: 37 span: 54 } location: { path: 4 path: 9 path: 2 path: 4 path: 7 span: 414 span: 38 span: 53 } location: { path: 4 path: 9 path: 2 path: 5 span: 416 span: 2 span: 55 leading_comments: " Identifies if server streams multiple server messages\n" } location: { path: 4 path: 9 path: 2 path: 5 path: 4 span: 416 span: 2 span: 10 } location: { path: 4 path: 9 path: 2 path: 5 path: 5 span: 416 span: 11 span: 15 } location: { path: 4 path: 9 path: 2 path: 5 path: 1 span: 416 span: 16 span: 32 } location: { path: 4 path: 9 path: 2 path: 5 path: 3 span: 416 span: 35 span: 36 } location: { path: 4 path: 9 path: 2 path: 5 path: 8 span: 416 span: 37 span: 54 } location: { path: 4 path: 9 path: 2 path: 5 path: 7 span: 416 span: 38 span: 53 } location: { path: 4 path: 10 span: 451 span: 0 span: 578 span: 1 leading_detached_comments: " ===================================================================\n Options\n" leading_detached_comments: " Each of the definitions above may have \"options\" attached. These are\n just annotations which may cause code to be generated slightly differently\n or may contain hints for code that manipulates protocol messages.\n\n Clients may define custom options as extensions of the *Options messages.\n These extensions may not yet be known at parsing time, so the parser cannot\n store the values in them. Instead it stores them in a field in the *Options\n message called uninterpreted_option. This field must have the same name\n across all *Options messages. We then use this field to populate the\n extensions when we build a descriptor, at which point all protos have been\n parsed and so all extensions are known.\n\n Extension numbers for custom options may be chosen as follows:\n * For options which will only be used within a single application or\n organization, or for experimental options, use field numbers 50000\n through 99999. It is up to you to ensure that you do not use the\n same number for multiple options.\n * For options which will be published and used publicly by multiple\n independent entities, e-mail protobuf-global-extension-registry@google.com\n to reserve extension numbers. Simply provide your project name (e.g.\n Objective-C plugin) and your project website (if available) -- there's no\n need to explain how you intend to use them. Usually you only need one\n extension number. You can declare multiple options with only one extension\n number by putting them in a sub-message. See the Custom Options section of\n the docs for examples:\n https://developers.google.com/protocol-buffers/docs/proto#options\n If this turns out to be popular, a web service will be set up\n to automatically assign option numbers.\n" } location: { path: 4 path: 10 path: 1 span: 451 span: 8 span: 19 } location: { path: 4 path: 10 path: 2 path: 0 span: 457 span: 2 span: 35 leading_comments: " Sets the Java package where classes generated from this .proto will be\n placed. By default, the proto package is used, but this is often\n inappropriate because proto packages do not normally start with backwards\n domain names.\n" } location: { path: 4 path: 10 path: 2 path: 0 path: 4 span: 457 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 0 path: 5 span: 457 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 457 span: 18 span: 30 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 457 span: 33 span: 34 } location: { path: 4 path: 10 path: 2 path: 1 span: 464 span: 2 span: 43 leading_comments: " Controls the name of the wrapper Java class generated for the .proto file.\n That class will always contain the .proto file's getDescriptor() method as\n well as any top-level extensions defined in the .proto file.\n If java_multiple_files is disabled, then all the other classes from the\n .proto file will be nested inside the single wrapper outer class.\n" } location: { path: 4 path: 10 path: 2 path: 1 path: 4 span: 464 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 1 path: 5 span: 464 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 1 path: 1 span: 464 span: 18 span: 38 } location: { path: 4 path: 10 path: 2 path: 1 path: 3 span: 464 span: 41 span: 42 } location: { path: 4 path: 10 path: 2 path: 2 span: 472 span: 2 span: 59 leading_comments: " If enabled, then the Java code generator will generate a separate .java\n file for each top-level message, enum, and service defined in the .proto\n file. Thus, these types will *not* be nested inside the wrapper class\n named by java_outer_classname. However, the wrapper class will still be\n generated to contain the file's getDescriptor() method as well as any\n top-level extensions defined in the file.\n" } location: { path: 4 path: 10 path: 2 path: 2 path: 4 span: 472 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 2 path: 5 span: 472 span: 11 span: 15 } location: { path: 4 path: 10 path: 2 path: 2 path: 1 span: 472 span: 16 span: 35 } location: { path: 4 path: 10 path: 2 path: 2 path: 3 span: 472 span: 38 span: 40 } location: { path: 4 path: 10 path: 2 path: 2 path: 8 span: 472 span: 41 span: 58 } location: { path: 4 path: 10 path: 2 path: 2 path: 7 span: 472 span: 42 span: 57 } location: { path: 4 path: 10 path: 2 path: 3 span: 475 span: 2 span: 69 leading_comments: " This option does nothing.\n" } location: { path: 4 path: 10 path: 2 path: 3 path: 4 span: 475 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 3 path: 5 span: 475 span: 11 span: 15 } location: { path: 4 path: 10 path: 2 path: 3 path: 1 span: 475 span: 16 span: 45 } location: { path: 4 path: 10 path: 2 path: 3 path: 3 span: 475 span: 48 span: 50 } location: { path: 4 path: 10 path: 2 path: 3 path: 8 span: 475 span: 51 span: 68 } location: { path: 4 path: 10 path: 2 path: 3 path: 8 path: 3 span: 475 span: 52 span: 67 } location: { path: 4 path: 10 path: 2 path: 4 span: 487 span: 2 span: 62 leading_comments: " A proto2 file can set this to true to opt in to UTF-8 checking for Java,\n which will throw an exception if invalid UTF-8 is parsed from the wire or\n assigned to a string field.\n\n TODO: clarify exactly what kinds of field types this option\n applies to, and update these docs accordingly.\n\n Proto3 files already perform these checks. Setting the option explicitly to\n false has no effect: it cannot be used to opt proto3 files out of UTF-8\n checks.\n" } location: { path: 4 path: 10 path: 2 path: 4 path: 4 span: 487 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 4 path: 5 span: 487 span: 11 span: 15 } location: { path: 4 path: 10 path: 2 path: 4 path: 1 span: 487 span: 16 span: 38 } location: { path: 4 path: 10 path: 2 path: 4 path: 3 span: 487 span: 41 span: 43 } location: { path: 4 path: 10 path: 2 path: 4 path: 8 span: 487 span: 44 span: 61 } location: { path: 4 path: 10 path: 2 path: 4 path: 7 span: 487 span: 45 span: 60 } location: { path: 4 path: 10 path: 4 path: 0 span: 490 span: 2 span: 495 span: 3 leading_comments: " Generated classes can be optimized for speed or code size.\n" } location: { path: 4 path: 10 path: 4 path: 0 path: 1 span: 490 span: 7 span: 19 } location: { path: 4 path: 10 path: 4 path: 0 path: 2 path: 0 span: 491 span: 4 span: 14 trailing_comments: " Generate complete code for parsing, serialization,\n" } location: { path: 4 path: 10 path: 4 path: 0 path: 2 path: 0 path: 1 span: 491 span: 4 span: 9 } location: { path: 4 path: 10 path: 4 path: 0 path: 2 path: 0 path: 2 span: 491 span: 12 span: 13 } location: { path: 4 path: 10 path: 4 path: 0 path: 2 path: 1 span: 493 span: 4 span: 18 leading_comments: " etc.\n" trailing_comments: " Use ReflectionOps to implement these methods.\n" } location: { path: 4 path: 10 path: 4 path: 0 path: 2 path: 1 path: 1 span: 493 span: 4 span: 13 } location: { path: 4 path: 10 path: 4 path: 0 path: 2 path: 1 path: 2 span: 493 span: 16 span: 17 } location: { path: 4 path: 10 path: 4 path: 0 path: 2 path: 2 span: 494 span: 4 span: 21 trailing_comments: " Generate code using MessageLite and the lite runtime.\n" } location: { path: 4 path: 10 path: 4 path: 0 path: 2 path: 2 path: 1 span: 494 span: 4 span: 16 } location: { path: 4 path: 10 path: 4 path: 0 path: 2 path: 2 path: 2 span: 494 span: 19 span: 20 } location: { path: 4 path: 10 path: 2 path: 5 span: 496 span: 2 span: 59 } location: { path: 4 path: 10 path: 2 path: 5 path: 4 span: 496 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 5 path: 6 span: 496 span: 11 span: 23 } location: { path: 4 path: 10 path: 2 path: 5 path: 1 span: 496 span: 24 span: 36 } location: { path: 4 path: 10 path: 2 path: 5 path: 3 span: 496 span: 39 span: 40 } location: { path: 4 path: 10 path: 2 path: 5 path: 8 span: 496 span: 41 span: 58 } location: { path: 4 path: 10 path: 2 path: 5 path: 7 span: 496 span: 42 span: 57 } location: { path: 4 path: 10 path: 2 path: 6 span: 503 span: 2 span: 34 leading_comments: " Sets the Go package where structs generated from this .proto will be\n placed. If omitted, the Go package will be derived from the following:\n - The basename of the package import path, if provided.\n - Otherwise, the package statement in the .proto file, if present.\n - Otherwise, the basename of the .proto file, without extension.\n" } location: { path: 4 path: 10 path: 2 path: 6 path: 4 span: 503 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 6 path: 5 span: 503 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 6 path: 1 span: 503 span: 18 span: 28 } location: { path: 4 path: 10 path: 2 path: 6 path: 3 span: 503 span: 31 span: 33 } location: { path: 4 path: 10 path: 2 path: 7 span: 515 span: 2 span: 59 leading_comments: " Should generic services be generated in each language? \"Generic\" services\n are not specific to any particular RPC system. They are generated by the\n main code generators in each language (without additional plugins).\n Generic services were the only kind of service generation supported by\n early versions of google.protobuf.\n\n Generic services are now considered deprecated in favor of using plugins\n that generate code specific to your particular RPC system. Therefore,\n these default to false. Old code which depends on generic services should\n explicitly set them to true.\n" } location: { path: 4 path: 10 path: 2 path: 7 path: 4 span: 515 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 7 path: 5 span: 515 span: 11 span: 15 } location: { path: 4 path: 10 path: 2 path: 7 path: 1 span: 515 span: 16 span: 35 } location: { path: 4 path: 10 path: 2 path: 7 path: 3 span: 515 span: 38 span: 40 } location: { path: 4 path: 10 path: 2 path: 7 path: 8 span: 515 span: 41 span: 58 } location: { path: 4 path: 10 path: 2 path: 7 path: 7 span: 515 span: 42 span: 57 } location: { path: 4 path: 10 path: 2 path: 8 span: 516 span: 2 span: 61 } location: { path: 4 path: 10 path: 2 path: 8 path: 4 span: 516 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 8 path: 5 span: 516 span: 11 span: 15 } location: { path: 4 path: 10 path: 2 path: 8 path: 1 span: 516 span: 16 span: 37 } location: { path: 4 path: 10 path: 2 path: 8 path: 3 span: 516 span: 40 span: 42 } location: { path: 4 path: 10 path: 2 path: 8 path: 8 span: 516 span: 43 span: 60 } location: { path: 4 path: 10 path: 2 path: 8 path: 7 span: 516 span: 44 span: 59 } location: { path: 4 path: 10 path: 2 path: 9 span: 517 span: 2 span: 59 } location: { path: 4 path: 10 path: 2 path: 9 path: 4 span: 517 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 9 path: 5 span: 517 span: 11 span: 15 } location: { path: 4 path: 10 path: 2 path: 9 path: 1 span: 517 span: 16 span: 35 } location: { path: 4 path: 10 path: 2 path: 9 path: 3 span: 517 span: 38 span: 40 } location: { path: 4 path: 10 path: 2 path: 9 path: 8 span: 517 span: 41 span: 58 } location: { path: 4 path: 10 path: 2 path: 9 path: 7 span: 517 span: 42 span: 57 } location: { path: 4 path: 10 path: 9 span: 518 span: 2 span: 14 trailing_comments: " removed php_generic_services\n" } location: { path: 4 path: 10 path: 9 path: 0 span: 518 span: 11 span: 13 } location: { path: 4 path: 10 path: 9 path: 0 path: 1 span: 518 span: 11 span: 13 } location: { path: 4 path: 10 path: 9 path: 0 path: 2 span: 518 span: 11 span: 13 } location: { path: 4 path: 10 path: 10 span: 519 span: 2 span: 34 } location: { path: 4 path: 10 path: 10 path: 0 span: 519 span: 11 span: 33 } location: { path: 4 path: 10 path: 2 path: 10 span: 525 span: 2 span: 50 leading_comments: " Is this file deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for everything in the file, or it will be completely ignored; in the very\n least, this is a formalization for deprecating files.\n" } location: { path: 4 path: 10 path: 2 path: 10 path: 4 span: 525 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 10 path: 5 span: 525 span: 11 span: 15 } location: { path: 4 path: 10 path: 2 path: 10 path: 1 span: 525 span: 16 span: 26 } location: { path: 4 path: 10 path: 2 path: 10 path: 3 span: 525 span: 29 span: 31 } location: { path: 4 path: 10 path: 2 path: 10 path: 8 span: 525 span: 32 span: 49 } location: { path: 4 path: 10 path: 2 path: 10 path: 7 span: 525 span: 33 span: 48 } location: { path: 4 path: 10 path: 2 path: 11 span: 529 span: 2 span: 55 leading_comments: " Enables the use of arenas for the proto messages in this file. This applies\n only to generated classes for C++.\n" } location: { path: 4 path: 10 path: 2 path: 11 path: 4 span: 529 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 11 path: 5 span: 529 span: 11 span: 15 } location: { path: 4 path: 10 path: 2 path: 11 path: 1 span: 529 span: 16 span: 32 } location: { path: 4 path: 10 path: 2 path: 11 path: 3 span: 529 span: 35 span: 37 } location: { path: 4 path: 10 path: 2 path: 11 path: 8 span: 529 span: 38 span: 54 } location: { path: 4 path: 10 path: 2 path: 11 path: 7 span: 529 span: 39 span: 53 } location: { path: 4 path: 10 path: 2 path: 12 span: 533 span: 2 span: 41 leading_comments: " Sets the objective c class prefix which is prepended to all objective c\n generated classes from this .proto. There is no default.\n" } location: { path: 4 path: 10 path: 2 path: 12 path: 4 span: 533 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 12 path: 5 span: 533 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 12 path: 1 span: 533 span: 18 span: 35 } location: { path: 4 path: 10 path: 2 path: 12 path: 3 span: 533 span: 38 span: 40 } location: { path: 4 path: 10 path: 2 path: 13 span: 536 span: 2 span: 40 leading_comments: " Namespace for generated classes; defaults to the package.\n" } location: { path: 4 path: 10 path: 2 path: 13 path: 4 span: 536 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 13 path: 5 span: 536 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 13 path: 1 span: 536 span: 18 span: 34 } location: { path: 4 path: 10 path: 2 path: 13 path: 3 span: 536 span: 37 span: 39 } location: { path: 4 path: 10 path: 2 path: 14 span: 542 span: 2 span: 36 leading_comments: " By default Swift generators will take the proto package and CamelCase it\n replacing '.' with underscore and use that to prefix the types/symbols\n defined. When this options is provided, they will use this value instead\n to prefix the types/symbols defined.\n" } location: { path: 4 path: 10 path: 2 path: 14 path: 4 span: 542 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 14 path: 5 span: 542 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 14 path: 1 span: 542 span: 18 span: 30 } location: { path: 4 path: 10 path: 2 path: 14 path: 3 span: 542 span: 33 span: 35 } location: { path: 4 path: 10 path: 2 path: 15 span: 546 span: 2 span: 40 leading_comments: " Sets the php class prefix which is prepended to all php generated classes\n from this .proto. Default is empty.\n" } location: { path: 4 path: 10 path: 2 path: 15 path: 4 span: 546 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 15 path: 5 span: 546 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 15 path: 1 span: 546 span: 18 span: 34 } location: { path: 4 path: 10 path: 2 path: 15 path: 3 span: 546 span: 37 span: 39 } location: { path: 4 path: 10 path: 2 path: 16 span: 551 span: 2 span: 37 leading_comments: " Use this option to change the namespace of php generated classes. Default\n is empty. When this option is empty, the package name will be used for\n determining the namespace.\n" } location: { path: 4 path: 10 path: 2 path: 16 path: 4 span: 551 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 16 path: 5 span: 551 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 16 path: 1 span: 551 span: 18 span: 31 } location: { path: 4 path: 10 path: 2 path: 16 path: 3 span: 551 span: 34 span: 36 } location: { path: 4 path: 10 path: 2 path: 17 span: 556 span: 2 span: 46 leading_comments: " Use this option to change the namespace of php generated metadata classes.\n Default is empty. When this option is empty, the proto file name will be\n used for determining the namespace.\n" } location: { path: 4 path: 10 path: 2 path: 17 path: 4 span: 556 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 17 path: 5 span: 556 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 17 path: 1 span: 556 span: 18 span: 40 } location: { path: 4 path: 10 path: 2 path: 17 path: 3 span: 556 span: 43 span: 45 } location: { path: 4 path: 10 path: 2 path: 18 span: 561 span: 2 span: 36 leading_comments: " Use this option to change the package of ruby generated classes. Default\n is empty. When this option is not set, the package name will be used for\n determining the ruby package.\n" } location: { path: 4 path: 10 path: 2 path: 18 path: 4 span: 561 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 18 path: 5 span: 561 span: 11 span: 17 } location: { path: 4 path: 10 path: 2 path: 18 path: 1 span: 561 span: 18 span: 30 } location: { path: 4 path: 10 path: 2 path: 18 path: 3 span: 561 span: 33 span: 35 } location: { path: 4 path: 10 path: 2 path: 19 span: 567 span: 2 span: 36 leading_comments: " Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 10 path: 2 path: 19 path: 4 span: 567 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 19 path: 6 span: 567 span: 11 span: 21 } location: { path: 4 path: 10 path: 2 path: 19 path: 1 span: 567 span: 22 span: 30 } location: { path: 4 path: 10 path: 2 path: 19 path: 3 span: 567 span: 33 span: 35 } location: { path: 4 path: 10 path: 2 path: 20 span: 571 span: 2 span: 58 leading_comments: " The parser stores options it doesn't recognize here.\n See the documentation for the \"Options\" section above.\n" } location: { path: 4 path: 10 path: 2 path: 20 path: 4 span: 571 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 20 path: 6 span: 571 span: 11 span: 30 } location: { path: 4 path: 10 path: 2 path: 20 path: 1 span: 571 span: 31 span: 51 } location: { path: 4 path: 10 path: 2 path: 20 path: 3 span: 571 span: 54 span: 57 } location: { path: 4 path: 10 path: 5 span: 575 span: 2 span: 25 leading_comments: " Clients can define custom options in extensions of this message.\n See the documentation for the \"Options\" section above.\n" } location: { path: 4 path: 10 path: 5 path: 0 span: 575 span: 13 span: 24 } location: { path: 4 path: 10 path: 5 path: 0 path: 1 span: 575 span: 13 span: 17 } location: { path: 4 path: 10 path: 5 path: 0 path: 2 span: 575 span: 21 span: 24 } location: { path: 4 path: 10 path: 9 span: 577 span: 2 span: 14 } location: { path: 4 path: 10 path: 9 path: 1 span: 577 span: 11 span: 13 } location: { path: 4 path: 10 path: 9 path: 1 path: 1 span: 577 span: 11 span: 13 } location: { path: 4 path: 10 path: 9 path: 1 path: 2 span: 577 span: 11 span: 13 } location: { path: 4 path: 11 span: 580 span: 0 span: 663 span: 1 } location: { path: 4 path: 11 path: 1 span: 580 span: 8 span: 22 } location: { path: 4 path: 11 path: 2 path: 0 span: 599 span: 2 span: 62 leading_comments: " Set true to use the old proto1 MessageSet wire format for extensions.\n This is provided for backwards-compatibility with the MessageSet wire\n format. You should not use this for any other reason: It's less\n efficient, has fewer features, and is more complicated.\n\n The message must be defined exactly as follows:\n message Foo {\n option message_set_wire_format = true;\n extensions 4 to max;\n }\n Note that the message cannot have any defined fields; MessageSets only\n have extensions.\n\n All extensions of your type must be singular messages; e.g. they cannot\n be int32s, enums, or repeated messages.\n\n Because this is an option, the above two restrictions are not enforced by\n the protocol compiler.\n" } location: { path: 4 path: 11 path: 2 path: 0 path: 4 span: 599 span: 2 span: 10 } location: { path: 4 path: 11 path: 2 path: 0 path: 5 span: 599 span: 11 span: 15 } location: { path: 4 path: 11 path: 2 path: 0 path: 1 span: 599 span: 16 span: 39 } location: { path: 4 path: 11 path: 2 path: 0 path: 3 span: 599 span: 42 span: 43 } location: { path: 4 path: 11 path: 2 path: 0 path: 8 span: 599 span: 44 span: 61 } location: { path: 4 path: 11 path: 2 path: 0 path: 7 span: 599 span: 45 span: 60 } location: { path: 4 path: 11 path: 2 path: 1 span: 604 span: 2 span: 70 leading_comments: " Disables the generation of the standard \"descriptor()\" accessor, which can\n conflict with a field of the same name. This is meant to make migration\n from proto1 easier; new code should avoid fields named \"descriptor\".\n" } location: { path: 4 path: 11 path: 2 path: 1 path: 4 span: 604 span: 2 span: 10 } location: { path: 4 path: 11 path: 2 path: 1 path: 5 span: 604 span: 11 span: 15 } location: { path: 4 path: 11 path: 2 path: 1 path: 1 span: 604 span: 16 span: 47 } location: { path: 4 path: 11 path: 2 path: 1 path: 3 span: 604 span: 50 span: 51 } location: { path: 4 path: 11 path: 2 path: 1 path: 8 span: 604 span: 52 span: 69 } location: { path: 4 path: 11 path: 2 path: 1 path: 7 span: 604 span: 53 span: 68 } location: { path: 4 path: 11 path: 2 path: 2 span: 610 span: 2 span: 49 leading_comments: " Is this message deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the message, or it will be completely ignored; in the very least,\n this is a formalization for deprecating messages.\n" } location: { path: 4 path: 11 path: 2 path: 2 path: 4 span: 610 span: 2 span: 10 } location: { path: 4 path: 11 path: 2 path: 2 path: 5 span: 610 span: 11 span: 15 } location: { path: 4 path: 11 path: 2 path: 2 path: 1 span: 610 span: 16 span: 26 } location: { path: 4 path: 11 path: 2 path: 2 path: 3 span: 610 span: 29 span: 30 } location: { path: 4 path: 11 path: 2 path: 2 path: 8 span: 610 span: 31 span: 48 } location: { path: 4 path: 11 path: 2 path: 2 path: 7 span: 610 span: 32 span: 47 } location: { path: 4 path: 11 path: 9 span: 612 span: 2 span: 19 } location: { path: 4 path: 11 path: 9 path: 0 span: 612 span: 11 span: 12 } location: { path: 4 path: 11 path: 9 path: 0 path: 1 span: 612 span: 11 span: 12 } location: { path: 4 path: 11 path: 9 path: 0 path: 2 span: 612 span: 11 span: 12 } location: { path: 4 path: 11 path: 9 path: 1 span: 612 span: 14 span: 15 } location: { path: 4 path: 11 path: 9 path: 1 path: 1 span: 612 span: 14 span: 15 } location: { path: 4 path: 11 path: 9 path: 1 path: 2 span: 612 span: 14 span: 15 } location: { path: 4 path: 11 path: 9 path: 2 span: 612 span: 17 span: 18 } location: { path: 4 path: 11 path: 9 path: 2 path: 1 span: 612 span: 17 span: 18 } location: { path: 4 path: 11 path: 9 path: 2 path: 2 span: 612 span: 17 span: 18 } location: { path: 4 path: 11 path: 2 path: 3 span: 635 span: 2 span: 30 leading_comments: " Whether the message is an automatically generated map entry type for the\n maps field.\n\n For maps fields:\n map map_field = 1;\n The parsed descriptor looks like:\n message MapFieldEntry {\n option map_entry = true;\n optional KeyType key = 1;\n optional ValueType value = 2;\n }\n repeated MapFieldEntry map_field = 1;\n\n Implementations may choose not to generate the map_entry=true message, but\n use a native map in the target language to hold the keys and values.\n The reflection APIs in such implementations still need to work as\n if the field is a repeated message field.\n\n NOTE: Do not set the option in .proto files. Always use the maps syntax\n instead. The option should only be implicitly set by the proto compiler\n parser.\n" } location: { path: 4 path: 11 path: 2 path: 3 path: 4 span: 635 span: 2 span: 10 } location: { path: 4 path: 11 path: 2 path: 3 path: 5 span: 635 span: 11 span: 15 } location: { path: 4 path: 11 path: 2 path: 3 path: 1 span: 635 span: 16 span: 25 } location: { path: 4 path: 11 path: 2 path: 3 path: 3 span: 635 span: 28 span: 29 } location: { path: 4 path: 11 path: 9 span: 637 span: 2 span: 13 trailing_comments: " javalite_serializable\n" } location: { path: 4 path: 11 path: 9 path: 3 span: 637 span: 11 span: 12 } location: { path: 4 path: 11 path: 9 path: 3 path: 1 span: 637 span: 11 span: 12 } location: { path: 4 path: 11 path: 9 path: 3 path: 2 span: 637 span: 11 span: 12 } location: { path: 4 path: 11 path: 9 span: 638 span: 2 span: 13 trailing_comments: " javanano_as_lite\n" } location: { path: 4 path: 11 path: 9 path: 4 span: 638 span: 11 span: 12 } location: { path: 4 path: 11 path: 9 path: 4 path: 1 span: 638 span: 11 span: 12 } location: { path: 4 path: 11 path: 9 path: 4 path: 2 span: 638 span: 11 span: 12 } location: { path: 4 path: 11 path: 2 path: 4 span: 650 span: 2 span: 80 leading_comments: " Enable the legacy handling of JSON field name conflicts. This lowercases\n and strips underscored from the fields before comparison in proto3 only.\n The new behavior takes `json_name` into account and applies to proto2 as\n well.\n\n This should only be used as a temporary measure against broken builds due\n to the change in behavior for JSON field name conflicts.\n\n TODO This is legacy behavior we plan to remove once downstream\n teams have had time to migrate.\n" } location: { path: 4 path: 11 path: 2 path: 4 path: 4 span: 650 span: 2 span: 10 } location: { path: 4 path: 11 path: 2 path: 4 path: 5 span: 650 span: 11 span: 15 } location: { path: 4 path: 11 path: 2 path: 4 path: 1 span: 650 span: 16 span: 54 } location: { path: 4 path: 11 path: 2 path: 4 path: 3 span: 650 span: 57 span: 59 } location: { path: 4 path: 11 path: 2 path: 4 path: 8 span: 650 span: 60 span: 79 } location: { path: 4 path: 11 path: 2 path: 4 path: 8 path: 3 span: 650 span: 61 span: 78 } location: { path: 4 path: 11 path: 2 path: 5 span: 656 span: 2 span: 36 leading_comments: " Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 11 path: 2 path: 5 path: 4 span: 656 span: 2 span: 10 } location: { path: 4 path: 11 path: 2 path: 5 path: 6 span: 656 span: 11 span: 21 } location: { path: 4 path: 11 path: 2 path: 5 path: 1 span: 656 span: 22 span: 30 } location: { path: 4 path: 11 path: 2 path: 5 path: 3 span: 656 span: 33 span: 35 } location: { path: 4 path: 11 path: 2 path: 6 span: 659 span: 2 span: 58 leading_comments: " The parser stores options it doesn't recognize here. See above.\n" } location: { path: 4 path: 11 path: 2 path: 6 path: 4 span: 659 span: 2 span: 10 } location: { path: 4 path: 11 path: 2 path: 6 path: 6 span: 659 span: 11 span: 30 } location: { path: 4 path: 11 path: 2 path: 6 path: 1 span: 659 span: 31 span: 51 } location: { path: 4 path: 11 path: 2 path: 6 path: 3 span: 659 span: 54 span: 57 } location: { path: 4 path: 11 path: 5 span: 662 span: 2 span: 25 leading_comments: " Clients can define custom options in extensions of this message. See above.\n" } location: { path: 4 path: 11 path: 5 path: 0 span: 662 span: 13 span: 24 } location: { path: 4 path: 11 path: 5 path: 0 path: 1 span: 662 span: 13 span: 17 } location: { path: 4 path: 11 path: 5 path: 0 path: 2 span: 662 span: 21 span: 24 } location: { path: 4 path: 12 span: 665 span: 0 span: 831 span: 1 } location: { path: 4 path: 12 path: 1 span: 665 span: 8 span: 20 } location: { path: 4 path: 12 path: 2 path: 0 span: 673 span: 2 span: 69 leading_comments: " NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead.\n The ctype option instructs the C++ code generator to use a different\n representation of the field than it normally would. See the specific\n options below. This option is only implemented to support use of\n [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of\n type \"bytes\" in the open source release.\n TODO: make ctype actually deprecated.\n" } location: { path: 4 path: 12 path: 2 path: 0 path: 4 span: 673 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 0 path: 6 span: 673 span: 11 span: 16 } location: { path: 4 path: 12 path: 2 path: 0 path: 1 span: 673 span: 17 span: 22 } location: { path: 4 path: 12 path: 2 path: 0 path: 3 span: 673 span: 25 span: 26 } location: { path: 4 path: 12 path: 2 path: 0 path: 8 span: 673 span: 27 span: 68 } location: { path: 4 path: 12 path: 2 path: 0 path: 7 span: 673 span: 51 span: 67 } location: { path: 4 path: 12 path: 4 path: 0 span: 674 span: 2 span: 687 span: 3 } location: { path: 4 path: 12 path: 4 path: 0 path: 1 span: 674 span: 7 span: 12 } location: { path: 4 path: 12 path: 4 path: 0 path: 2 path: 0 span: 676 span: 4 span: 15 leading_comments: " Default mode.\n" } location: { path: 4 path: 12 path: 4 path: 0 path: 2 path: 0 path: 1 span: 676 span: 4 span: 10 } location: { path: 4 path: 12 path: 4 path: 0 path: 2 path: 0 path: 2 span: 676 span: 13 span: 14 } location: { path: 4 path: 12 path: 4 path: 0 path: 2 path: 1 span: 684 span: 4 span: 13 leading_comments: " The option [ctype=CORD] may be applied to a non-repeated field of type\n \"bytes\". It indicates that in C++, the data should be stored in a Cord\n instead of a string. For very large strings, this may reduce memory\n fragmentation. It may also allow better performance when parsing from a\n Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n alias the original buffer.\n" } location: { path: 4 path: 12 path: 4 path: 0 path: 2 path: 1 path: 1 span: 684 span: 4 span: 8 } location: { path: 4 path: 12 path: 4 path: 0 path: 2 path: 1 path: 2 span: 684 span: 11 span: 12 } location: { path: 4 path: 12 path: 4 path: 0 path: 2 path: 2 span: 686 span: 4 span: 21 } location: { path: 4 path: 12 path: 4 path: 0 path: 2 path: 2 path: 1 span: 686 span: 4 span: 16 } location: { path: 4 path: 12 path: 4 path: 0 path: 2 path: 2 path: 2 span: 686 span: 19 span: 20 } location: { path: 4 path: 12 path: 2 path: 1 span: 695 span: 2 span: 27 leading_comments: " The packed option can be enabled for repeated primitive fields to enable\n a more efficient representation on the wire. Rather than repeatedly\n writing the tag and type for each element, the entire array is encoded as\n a single length-delimited blob. In proto3, only explicit setting it to\n false will avoid using packed encoding. This option is prohibited in\n Editions, but the `repeated_field_encoding` feature can be used to control\n the behavior.\n" } location: { path: 4 path: 12 path: 2 path: 1 path: 4 span: 695 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 1 path: 5 span: 695 span: 11 span: 15 } location: { path: 4 path: 12 path: 2 path: 1 path: 1 span: 695 span: 16 span: 22 } location: { path: 4 path: 12 path: 2 path: 1 path: 3 span: 695 span: 25 span: 26 } location: { path: 4 path: 12 path: 2 path: 2 span: 708 span: 2 span: 51 leading_comments: " The jstype option determines the JavaScript type used for values of the\n field. The option is permitted only for 64 bit integral and fixed types\n (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING\n is represented as JavaScript string, which avoids loss of precision that\n can happen when a large value is converted to a floating point JavaScript.\n Specifying JS_NUMBER for the jstype causes the generated JavaScript code to\n use the JavaScript \"number\" type. The behavior of the default option\n JS_NORMAL is implementation dependent.\n\n This option is an enum to permit additional types to be added, e.g.\n goog.math.Integer.\n" } location: { path: 4 path: 12 path: 2 path: 2 path: 4 span: 708 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 2 path: 6 span: 708 span: 11 span: 17 } location: { path: 4 path: 12 path: 2 path: 2 path: 1 span: 708 span: 18 span: 24 } location: { path: 4 path: 12 path: 2 path: 2 path: 3 span: 708 span: 27 span: 28 } location: { path: 4 path: 12 path: 2 path: 2 path: 8 span: 708 span: 29 span: 50 } location: { path: 4 path: 12 path: 2 path: 2 path: 7 span: 708 span: 30 span: 49 } location: { path: 4 path: 12 path: 4 path: 1 span: 709 span: 2 span: 718 span: 3 } location: { path: 4 path: 12 path: 4 path: 1 path: 1 span: 709 span: 7 span: 13 } location: { path: 4 path: 12 path: 4 path: 1 path: 2 path: 0 span: 711 span: 4 span: 18 leading_comments: " Use the default type.\n" } location: { path: 4 path: 12 path: 4 path: 1 path: 2 path: 0 path: 1 span: 711 span: 4 span: 13 } location: { path: 4 path: 12 path: 4 path: 1 path: 2 path: 0 path: 2 span: 711 span: 16 span: 17 } location: { path: 4 path: 12 path: 4 path: 1 path: 2 path: 1 span: 714 span: 4 span: 18 leading_comments: " Use JavaScript strings.\n" } location: { path: 4 path: 12 path: 4 path: 1 path: 2 path: 1 path: 1 span: 714 span: 4 span: 13 } location: { path: 4 path: 12 path: 4 path: 1 path: 2 path: 1 path: 2 span: 714 span: 16 span: 17 } location: { path: 4 path: 12 path: 4 path: 1 path: 2 path: 2 span: 717 span: 4 span: 18 leading_comments: " Use JavaScript numbers.\n" } location: { path: 4 path: 12 path: 4 path: 1 path: 2 path: 2 path: 1 span: 717 span: 4 span: 13 } location: { path: 4 path: 12 path: 4 path: 1 path: 2 path: 2 path: 2 span: 717 span: 16 span: 17 } location: { path: 4 path: 12 path: 2 path: 3 span: 742 span: 2 span: 43 leading_comments: " Should this field be parsed lazily? Lazy applies only to message-type\n fields. It means that when the outer message is initially parsed, the\n inner message's contents will not be parsed but instead stored in encoded\n form. The inner message will actually be parsed when it is first accessed.\n\n This is only a hint. Implementations are free to choose whether to use\n eager or lazy parsing regardless of the value of this option. However,\n setting this option true suggests that the protocol author believes that\n using lazy parsing on this field is worth the additional bookkeeping\n overhead typically needed to implement it.\n\n This option does not affect the public interface of any generated code;\n all method signatures remain the same. Furthermore, thread-safety of the\n interface is not affected by this option; const methods remain safe to\n call from multiple threads concurrently, while non-const methods continue\n to require exclusive access.\n\n Note that lazy message fields are still eagerly verified to check\n ill-formed wireformat or missing required fields. Calling IsInitialized()\n on the outer message would fail if the inner message has missing required\n fields. Failed verification would result in parsing failure (except when\n uninitialized messages are acceptable).\n" } location: { path: 4 path: 12 path: 2 path: 3 path: 4 span: 742 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 3 path: 5 span: 742 span: 11 span: 15 } location: { path: 4 path: 12 path: 2 path: 3 path: 1 span: 742 span: 16 span: 20 } location: { path: 4 path: 12 path: 2 path: 3 path: 3 span: 742 span: 23 span: 24 } location: { path: 4 path: 12 path: 2 path: 3 path: 8 span: 742 span: 25 span: 42 } location: { path: 4 path: 12 path: 2 path: 3 path: 7 span: 742 span: 26 span: 41 } location: { path: 4 path: 12 path: 2 path: 4 span: 747 span: 2 span: 55 leading_comments: " unverified_lazy does no correctness checks on the byte stream. This should\n only be used where lazy with verification is prohibitive for performance\n reasons.\n" } location: { path: 4 path: 12 path: 2 path: 4 path: 4 span: 747 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 4 path: 5 span: 747 span: 11 span: 15 } location: { path: 4 path: 12 path: 2 path: 4 path: 1 span: 747 span: 16 span: 31 } location: { path: 4 path: 12 path: 2 path: 4 path: 3 span: 747 span: 34 span: 36 } location: { path: 4 path: 12 path: 2 path: 4 path: 8 span: 747 span: 37 span: 54 } location: { path: 4 path: 12 path: 2 path: 4 path: 7 span: 747 span: 38 span: 53 } location: { path: 4 path: 12 path: 2 path: 5 span: 753 span: 2 span: 49 leading_comments: " Is this field deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for accessors, or it will be completely ignored; in the very least, this\n is a formalization for deprecating fields.\n" } location: { path: 4 path: 12 path: 2 path: 5 path: 4 span: 753 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 5 path: 5 span: 753 span: 11 span: 15 } location: { path: 4 path: 12 path: 2 path: 5 path: 1 span: 753 span: 16 span: 26 } location: { path: 4 path: 12 path: 2 path: 5 path: 3 span: 753 span: 29 span: 30 } location: { path: 4 path: 12 path: 2 path: 5 path: 8 span: 753 span: 31 span: 48 } location: { path: 4 path: 12 path: 2 path: 5 path: 7 span: 753 span: 32 span: 47 } location: { path: 4 path: 12 path: 2 path: 6 span: 756 span: 2 span: 44 leading_comments: " For Google-internal migration only. Do not use.\n" } location: { path: 4 path: 12 path: 2 path: 6 path: 4 span: 756 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 6 path: 5 span: 756 span: 11 span: 15 } location: { path: 4 path: 12 path: 2 path: 6 path: 1 span: 756 span: 16 span: 20 } location: { path: 4 path: 12 path: 2 path: 6 path: 3 span: 756 span: 23 span: 25 } location: { path: 4 path: 12 path: 2 path: 6 path: 8 span: 756 span: 26 span: 43 } location: { path: 4 path: 12 path: 2 path: 6 path: 7 span: 756 span: 27 span: 42 } location: { path: 4 path: 12 path: 2 path: 7 span: 760 span: 2 span: 52 leading_comments: " Indicate that the field value should not be printed out when using debug\n formats, e.g. when the field contains sensitive credentials.\n" } location: { path: 4 path: 12 path: 2 path: 7 path: 4 span: 760 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 7 path: 5 span: 760 span: 11 span: 15 } location: { path: 4 path: 12 path: 2 path: 7 path: 1 span: 760 span: 16 span: 28 } location: { path: 4 path: 12 path: 2 path: 7 path: 3 span: 760 span: 31 span: 33 } location: { path: 4 path: 12 path: 2 path: 7 path: 8 span: 760 span: 34 span: 51 } location: { path: 4 path: 12 path: 2 path: 7 path: 7 span: 760 span: 35 span: 50 } location: { path: 4 path: 12 path: 4 path: 2 span: 763 span: 2 span: 767 span: 3 leading_comments: " If set to RETENTION_SOURCE, the option will be omitted from the binary.\n" } location: { path: 4 path: 12 path: 4 path: 2 path: 1 span: 763 span: 7 span: 22 } location: { path: 4 path: 12 path: 4 path: 2 path: 2 path: 0 span: 764 span: 4 span: 26 } location: { path: 4 path: 12 path: 4 path: 2 path: 2 path: 0 path: 1 span: 764 span: 4 span: 21 } location: { path: 4 path: 12 path: 4 path: 2 path: 2 path: 0 path: 2 span: 764 span: 24 span: 25 } location: { path: 4 path: 12 path: 4 path: 2 path: 2 path: 1 span: 765 span: 4 span: 26 } location: { path: 4 path: 12 path: 4 path: 2 path: 2 path: 1 path: 1 span: 765 span: 4 span: 21 } location: { path: 4 path: 12 path: 4 path: 2 path: 2 path: 1 path: 2 span: 765 span: 24 span: 25 } location: { path: 4 path: 12 path: 4 path: 2 path: 2 path: 2 span: 766 span: 4 span: 25 } location: { path: 4 path: 12 path: 4 path: 2 path: 2 path: 2 path: 1 span: 766 span: 4 span: 20 } location: { path: 4 path: 12 path: 4 path: 2 path: 2 path: 2 path: 2 span: 766 span: 23 span: 24 } location: { path: 4 path: 12 path: 2 path: 8 span: 769 span: 2 span: 42 } location: { path: 4 path: 12 path: 2 path: 8 path: 4 span: 769 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 8 path: 6 span: 769 span: 11 span: 26 } location: { path: 4 path: 12 path: 2 path: 8 path: 1 span: 769 span: 27 span: 36 } location: { path: 4 path: 12 path: 2 path: 8 path: 3 span: 769 span: 39 span: 41 } location: { path: 4 path: 12 path: 4 path: 3 span: 774 span: 2 span: 785 span: 3 leading_comments: " This indicates the types of entities that the field may apply to when used\n as an option. If it is unset, then the field may be freely used as an\n option on any kind of entity.\n" } location: { path: 4 path: 12 path: 4 path: 3 path: 1 span: 774 span: 7 span: 23 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 0 span: 775 span: 4 span: 28 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 0 path: 1 span: 775 span: 4 span: 23 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 0 path: 2 span: 775 span: 26 span: 27 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 1 span: 776 span: 4 span: 25 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 1 path: 1 span: 776 span: 4 span: 20 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 1 path: 2 span: 776 span: 23 span: 24 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 2 span: 777 span: 4 span: 36 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 2 path: 1 span: 777 span: 4 span: 31 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 2 path: 2 span: 777 span: 34 span: 35 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 3 span: 778 span: 4 span: 28 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 3 path: 1 span: 778 span: 4 span: 23 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 3 path: 2 span: 778 span: 26 span: 27 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 4 span: 779 span: 4 span: 26 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 4 path: 1 span: 779 span: 4 span: 21 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 4 path: 2 span: 779 span: 24 span: 25 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 5 span: 780 span: 4 span: 26 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 5 path: 1 span: 780 span: 4 span: 21 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 5 path: 2 span: 780 span: 24 span: 25 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 6 span: 781 span: 4 span: 25 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 6 path: 1 span: 781 span: 4 span: 20 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 6 path: 2 span: 781 span: 23 span: 24 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 7 span: 782 span: 4 span: 31 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 7 path: 1 span: 782 span: 4 span: 26 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 7 path: 2 span: 782 span: 29 span: 30 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 8 span: 783 span: 4 span: 28 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 8 path: 1 span: 783 span: 4 span: 23 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 8 path: 2 span: 783 span: 26 span: 27 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 9 span: 784 span: 4 span: 27 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 9 path: 1 span: 784 span: 4 span: 22 } location: { path: 4 path: 12 path: 4 path: 3 path: 2 path: 9 path: 2 span: 784 span: 25 span: 26 } location: { path: 4 path: 12 path: 2 path: 9 span: 787 span: 2 span: 41 } location: { path: 4 path: 12 path: 2 path: 9 path: 4 span: 787 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 9 path: 6 span: 787 span: 11 span: 27 } location: { path: 4 path: 12 path: 2 path: 9 path: 1 span: 787 span: 28 span: 35 } location: { path: 4 path: 12 path: 2 path: 9 path: 3 span: 787 span: 38 span: 40 } location: { path: 4 path: 12 path: 3 path: 0 span: 789 span: 2 span: 792 span: 3 } location: { path: 4 path: 12 path: 3 path: 0 path: 1 span: 789 span: 10 span: 24 } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 0 span: 790 span: 4 span: 33 } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 0 path: 4 span: 790 span: 4 span: 12 } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 0 path: 6 span: 790 span: 13 span: 20 } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 0 path: 1 span: 790 span: 21 span: 28 } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 0 path: 3 span: 790 span: 31 span: 32 } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 1 span: 791 span: 4 span: 30 trailing_comments: " Textproto value.\n" } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 1 path: 4 span: 791 span: 4 span: 12 } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 1 path: 5 span: 791 span: 13 span: 19 } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 1 path: 1 span: 791 span: 20 span: 25 } location: { path: 4 path: 12 path: 3 path: 0 path: 2 path: 1 path: 3 span: 791 span: 28 span: 29 } location: { path: 4 path: 12 path: 2 path: 10 span: 793 span: 2 span: 48 } location: { path: 4 path: 12 path: 2 path: 10 path: 4 span: 793 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 10 path: 6 span: 793 span: 11 span: 25 } location: { path: 4 path: 12 path: 2 path: 10 path: 1 span: 793 span: 26 span: 42 } location: { path: 4 path: 12 path: 2 path: 10 path: 3 span: 793 span: 45 span: 47 } location: { path: 4 path: 12 path: 2 path: 11 span: 799 span: 2 span: 36 leading_comments: " Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 12 path: 2 path: 11 path: 4 span: 799 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 11 path: 6 span: 799 span: 11 span: 21 } location: { path: 4 path: 12 path: 2 path: 11 path: 1 span: 799 span: 22 span: 30 } location: { path: 4 path: 12 path: 2 path: 11 path: 3 span: 799 span: 33 span: 35 } location: { path: 4 path: 12 path: 3 path: 1 span: 802 span: 2 span: 820 span: 3 leading_comments: " Information about the support window of a feature.\n" } location: { path: 4 path: 12 path: 3 path: 1 path: 1 span: 802 span: 10 span: 24 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 0 span: 806 span: 4 span: 44 leading_comments: " The edition that this feature was first available in. In editions\n earlier than this one, the default assigned to EDITION_LEGACY will be\n used, and proto files will not be able to override it.\n" } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 0 path: 4 span: 806 span: 4 span: 12 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 0 path: 6 span: 806 span: 13 span: 20 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 0 path: 1 span: 806 span: 21 span: 39 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 0 path: 3 span: 806 span: 42 span: 43 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 1 span: 810 span: 4 span: 44 leading_comments: " The edition this feature becomes deprecated in. Using this after this\n edition may trigger warnings.\n" } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 1 path: 4 span: 810 span: 4 span: 12 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 1 path: 6 span: 810 span: 13 span: 20 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 1 path: 1 span: 810 span: 21 span: 39 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 1 path: 3 span: 810 span: 42 span: 43 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 2 span: 814 span: 4 span: 44 leading_comments: " The deprecation warning text if this feature is used after the edition it\n was marked deprecated in.\n" } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 2 path: 4 span: 814 span: 4 span: 12 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 2 path: 5 span: 814 span: 13 span: 19 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 2 path: 1 span: 814 span: 20 span: 39 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 2 path: 3 span: 814 span: 42 span: 43 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 3 span: 819 span: 4 span: 41 leading_comments: " The edition this feature is no longer available in. In editions after\n this one, the last default assigned will be used, and proto files will\n not be able to override it.\n" } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 3 path: 4 span: 819 span: 4 span: 12 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 3 path: 6 span: 819 span: 13 span: 20 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 3 path: 1 span: 819 span: 21 span: 36 } location: { path: 4 path: 12 path: 3 path: 1 path: 2 path: 3 path: 3 span: 819 span: 39 span: 40 } location: { path: 4 path: 12 path: 2 path: 12 span: 821 span: 2 span: 47 } location: { path: 4 path: 12 path: 2 path: 12 path: 4 span: 821 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 12 path: 6 span: 821 span: 11 span: 25 } location: { path: 4 path: 12 path: 2 path: 12 path: 1 span: 821 span: 26 span: 41 } location: { path: 4 path: 12 path: 2 path: 12 path: 3 span: 821 span: 44 span: 46 } location: { path: 4 path: 12 path: 2 path: 13 span: 824 span: 2 span: 58 leading_comments: " The parser stores options it doesn't recognize here. See above.\n" } location: { path: 4 path: 12 path: 2 path: 13 path: 4 span: 824 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 13 path: 6 span: 824 span: 11 span: 30 } location: { path: 4 path: 12 path: 2 path: 13 path: 1 span: 824 span: 31 span: 51 } location: { path: 4 path: 12 path: 2 path: 13 path: 3 span: 824 span: 54 span: 57 } location: { path: 4 path: 12 path: 5 span: 827 span: 2 span: 25 leading_comments: " Clients can define custom options in extensions of this message. See above.\n" } location: { path: 4 path: 12 path: 5 path: 0 span: 827 span: 13 span: 24 } location: { path: 4 path: 12 path: 5 path: 0 path: 1 span: 827 span: 13 span: 17 } location: { path: 4 path: 12 path: 5 path: 0 path: 2 span: 827 span: 21 span: 24 } location: { path: 4 path: 12 path: 9 span: 829 span: 2 span: 13 trailing_comments: " removed jtype\n" } location: { path: 4 path: 12 path: 9 path: 0 span: 829 span: 11 span: 12 } location: { path: 4 path: 12 path: 9 path: 0 path: 1 span: 829 span: 11 span: 12 } location: { path: 4 path: 12 path: 9 path: 0 path: 2 span: 829 span: 11 span: 12 } location: { path: 4 path: 12 path: 9 span: 830 span: 2 span: 14 trailing_comments: " reserve target, target_obsolete_do_not_use\n" } location: { path: 4 path: 12 path: 9 path: 1 span: 830 span: 11 span: 13 } location: { path: 4 path: 12 path: 9 path: 1 path: 1 span: 830 span: 11 span: 13 } location: { path: 4 path: 12 path: 9 path: 1 path: 2 span: 830 span: 11 span: 13 } location: { path: 4 path: 13 span: 833 span: 0 span: 845 span: 1 } location: { path: 4 path: 13 path: 1 span: 833 span: 8 span: 20 } location: { path: 4 path: 13 path: 2 path: 0 span: 838 span: 2 span: 35 leading_comments: " Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 13 path: 2 path: 0 path: 4 span: 838 span: 2 span: 10 } location: { path: 4 path: 13 path: 2 path: 0 path: 6 span: 838 span: 11 span: 21 } location: { path: 4 path: 13 path: 2 path: 0 path: 1 span: 838 span: 22 span: 30 } location: { path: 4 path: 13 path: 2 path: 0 path: 3 span: 838 span: 33 span: 34 } location: { path: 4 path: 13 path: 2 path: 1 span: 841 span: 2 span: 58 leading_comments: " The parser stores options it doesn't recognize here. See above.\n" } location: { path: 4 path: 13 path: 2 path: 1 path: 4 span: 841 span: 2 span: 10 } location: { path: 4 path: 13 path: 2 path: 1 path: 6 span: 841 span: 11 span: 30 } location: { path: 4 path: 13 path: 2 path: 1 path: 1 span: 841 span: 31 span: 51 } location: { path: 4 path: 13 path: 2 path: 1 path: 3 span: 841 span: 54 span: 57 } location: { path: 4 path: 13 path: 5 span: 844 span: 2 span: 25 leading_comments: " Clients can define custom options in extensions of this message. See above.\n" } location: { path: 4 path: 13 path: 5 path: 0 span: 844 span: 13 span: 24 } location: { path: 4 path: 13 path: 5 path: 0 path: 1 span: 844 span: 13 span: 17 } location: { path: 4 path: 13 path: 5 path: 0 path: 2 span: 844 span: 21 span: 24 } location: { path: 4 path: 14 span: 847 span: 0 span: 880 span: 1 } location: { path: 4 path: 14 path: 1 span: 847 span: 8 span: 19 } location: { path: 4 path: 14 path: 2 path: 0 span: 851 span: 2 span: 32 leading_comments: " Set this option to true to allow mapping different tag names to the same\n value.\n" } location: { path: 4 path: 14 path: 2 path: 0 path: 4 span: 851 span: 2 span: 10 } location: { path: 4 path: 14 path: 2 path: 0 path: 5 span: 851 span: 11 span: 15 } location: { path: 4 path: 14 path: 2 path: 0 path: 1 span: 851 span: 16 span: 27 } location: { path: 4 path: 14 path: 2 path: 0 path: 3 span: 851 span: 30 span: 31 } location: { path: 4 path: 14 path: 2 path: 1 span: 857 span: 2 span: 49 leading_comments: " Is this enum deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the enum, or it will be completely ignored; in the very least, this\n is a formalization for deprecating enums.\n" } location: { path: 4 path: 14 path: 2 path: 1 path: 4 span: 857 span: 2 span: 10 } location: { path: 4 path: 14 path: 2 path: 1 path: 5 span: 857 span: 11 span: 15 } location: { path: 4 path: 14 path: 2 path: 1 path: 1 span: 857 span: 16 span: 26 } location: { path: 4 path: 14 path: 2 path: 1 path: 3 span: 857 span: 29 span: 30 } location: { path: 4 path: 14 path: 2 path: 1 path: 8 span: 857 span: 31 span: 48 } location: { path: 4 path: 14 path: 2 path: 1 path: 7 span: 857 span: 32 span: 47 } location: { path: 4 path: 14 path: 9 span: 859 span: 2 span: 13 trailing_comments: " javanano_as_lite\n" } location: { path: 4 path: 14 path: 9 path: 0 span: 859 span: 11 span: 12 } location: { path: 4 path: 14 path: 9 path: 0 path: 1 span: 859 span: 11 span: 12 } location: { path: 4 path: 14 path: 9 path: 0 path: 2 span: 859 span: 11 span: 12 } location: { path: 4 path: 14 path: 2 path: 2 span: 867 span: 2 span: 79 leading_comments: " Enable the legacy handling of JSON field name conflicts. This lowercases\n and strips underscored from the fields before comparison in proto3 only.\n The new behavior takes `json_name` into account and applies to proto2 as\n well.\n TODO Remove this legacy behavior once downstream teams have\n had time to migrate.\n" } location: { path: 4 path: 14 path: 2 path: 2 path: 4 span: 867 span: 2 span: 10 } location: { path: 4 path: 14 path: 2 path: 2 path: 5 span: 867 span: 11 span: 15 } location: { path: 4 path: 14 path: 2 path: 2 path: 1 span: 867 span: 16 span: 54 } location: { path: 4 path: 14 path: 2 path: 2 path: 3 span: 867 span: 57 span: 58 } location: { path: 4 path: 14 path: 2 path: 2 path: 8 span: 867 span: 59 span: 78 } location: { path: 4 path: 14 path: 2 path: 2 path: 8 path: 3 span: 867 span: 60 span: 77 } location: { path: 4 path: 14 path: 2 path: 3 span: 873 span: 2 span: 35 leading_comments: " Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 14 path: 2 path: 3 path: 4 span: 873 span: 2 span: 10 } location: { path: 4 path: 14 path: 2 path: 3 path: 6 span: 873 span: 11 span: 21 } location: { path: 4 path: 14 path: 2 path: 3 path: 1 span: 873 span: 22 span: 30 } location: { path: 4 path: 14 path: 2 path: 3 path: 3 span: 873 span: 33 span: 34 } location: { path: 4 path: 14 path: 2 path: 4 span: 876 span: 2 span: 58 leading_comments: " The parser stores options it doesn't recognize here. See above.\n" } location: { path: 4 path: 14 path: 2 path: 4 path: 4 span: 876 span: 2 span: 10 } location: { path: 4 path: 14 path: 2 path: 4 path: 6 span: 876 span: 11 span: 30 } location: { path: 4 path: 14 path: 2 path: 4 path: 1 span: 876 span: 31 span: 51 } location: { path: 4 path: 14 path: 2 path: 4 path: 3 span: 876 span: 54 span: 57 } location: { path: 4 path: 14 path: 5 span: 879 span: 2 span: 25 leading_comments: " Clients can define custom options in extensions of this message. See above.\n" } location: { path: 4 path: 14 path: 5 path: 0 span: 879 span: 13 span: 24 } location: { path: 4 path: 14 path: 5 path: 0 path: 1 span: 879 span: 13 span: 17 } location: { path: 4 path: 14 path: 5 path: 0 path: 2 span: 879 span: 21 span: 24 } location: { path: 4 path: 15 span: 882 span: 0 span: 908 span: 1 } location: { path: 4 path: 15 path: 1 span: 882 span: 8 span: 24 } location: { path: 4 path: 15 path: 2 path: 0 span: 887 span: 2 span: 49 leading_comments: " Is this enum value deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the enum value, or it will be completely ignored; in the very least,\n this is a formalization for deprecating enum values.\n" } location: { path: 4 path: 15 path: 2 path: 0 path: 4 span: 887 span: 2 span: 10 } location: { path: 4 path: 15 path: 2 path: 0 path: 5 span: 887 span: 11 span: 15 } location: { path: 4 path: 15 path: 2 path: 0 path: 1 span: 887 span: 16 span: 26 } location: { path: 4 path: 15 path: 2 path: 0 path: 3 span: 887 span: 29 span: 30 } location: { path: 4 path: 15 path: 2 path: 0 path: 8 span: 887 span: 31 span: 48 } location: { path: 4 path: 15 path: 2 path: 0 path: 7 span: 887 span: 32 span: 47 } location: { path: 4 path: 15 path: 2 path: 1 span: 893 span: 2 span: 35 leading_comments: " Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 15 path: 2 path: 1 path: 4 span: 893 span: 2 span: 10 } location: { path: 4 path: 15 path: 2 path: 1 path: 6 span: 893 span: 11 span: 21 } location: { path: 4 path: 15 path: 2 path: 1 path: 1 span: 893 span: 22 span: 30 } location: { path: 4 path: 15 path: 2 path: 1 path: 3 span: 893 span: 33 span: 34 } location: { path: 4 path: 15 path: 2 path: 2 span: 898 span: 2 span: 51 leading_comments: " Indicate that fields annotated with this enum value should not be printed\n out when using debug formats, e.g. when the field contains sensitive\n credentials.\n" } location: { path: 4 path: 15 path: 2 path: 2 path: 4 span: 898 span: 2 span: 10 } location: { path: 4 path: 15 path: 2 path: 2 path: 5 span: 898 span: 11 span: 15 } location: { path: 4 path: 15 path: 2 path: 2 path: 1 span: 898 span: 16 span: 28 } location: { path: 4 path: 15 path: 2 path: 2 path: 3 span: 898 span: 31 span: 32 } location: { path: 4 path: 15 path: 2 path: 2 path: 8 span: 898 span: 33 span: 50 } location: { path: 4 path: 15 path: 2 path: 2 path: 7 span: 898 span: 34 span: 49 } location: { path: 4 path: 15 path: 2 path: 3 span: 901 span: 2 span: 59 leading_comments: " Information about the support window of a feature value.\n" } location: { path: 4 path: 15 path: 2 path: 3 path: 4 span: 901 span: 2 span: 10 } location: { path: 4 path: 15 path: 2 path: 3 path: 6 span: 901 span: 11 span: 38 } location: { path: 4 path: 15 path: 2 path: 3 path: 1 span: 901 span: 39 span: 54 } location: { path: 4 path: 15 path: 2 path: 3 path: 3 span: 901 span: 57 span: 58 } location: { path: 4 path: 15 path: 2 path: 4 span: 904 span: 2 span: 58 leading_comments: " The parser stores options it doesn't recognize here. See above.\n" } location: { path: 4 path: 15 path: 2 path: 4 path: 4 span: 904 span: 2 span: 10 } location: { path: 4 path: 15 path: 2 path: 4 path: 6 span: 904 span: 11 span: 30 } location: { path: 4 path: 15 path: 2 path: 4 path: 1 span: 904 span: 31 span: 51 } location: { path: 4 path: 15 path: 2 path: 4 path: 3 span: 904 span: 54 span: 57 } location: { path: 4 path: 15 path: 5 span: 907 span: 2 span: 25 leading_comments: " Clients can define custom options in extensions of this message. See above.\n" } location: { path: 4 path: 15 path: 5 path: 0 span: 907 span: 13 span: 24 } location: { path: 4 path: 15 path: 5 path: 0 path: 1 span: 907 span: 13 span: 17 } location: { path: 4 path: 15 path: 5 path: 0 path: 2 span: 907 span: 21 span: 24 } location: { path: 4 path: 16 span: 910 span: 0 span: 934 span: 1 } location: { path: 4 path: 16 path: 1 span: 910 span: 8 span: 22 } location: { path: 4 path: 16 path: 2 path: 0 span: 916 span: 2 span: 36 leading_comments: " Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 16 path: 2 path: 0 path: 4 span: 916 span: 2 span: 10 } location: { path: 4 path: 16 path: 2 path: 0 path: 6 span: 916 span: 11 span: 21 } location: { path: 4 path: 16 path: 2 path: 0 path: 1 span: 916 span: 22 span: 30 } location: { path: 4 path: 16 path: 2 path: 0 path: 3 span: 916 span: 33 span: 35 } location: { path: 4 path: 16 path: 2 path: 1 span: 927 span: 2 span: 50 leading_comments: " Is this service deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the service, or it will be completely ignored; in the very least,\n this is a formalization for deprecating services.\n" leading_detached_comments: " Note: Field numbers 1 through 32 are reserved for Google's internal RPC\n framework. We apologize for hoarding these numbers to ourselves, but\n we were already using them long before we decided to release Protocol\n Buffers.\n" } location: { path: 4 path: 16 path: 2 path: 1 path: 4 span: 927 span: 2 span: 10 } location: { path: 4 path: 16 path: 2 path: 1 path: 5 span: 927 span: 11 span: 15 } location: { path: 4 path: 16 path: 2 path: 1 path: 1 span: 927 span: 16 span: 26 } location: { path: 4 path: 16 path: 2 path: 1 path: 3 span: 927 span: 29 span: 31 } location: { path: 4 path: 16 path: 2 path: 1 path: 8 span: 927 span: 32 span: 49 } location: { path: 4 path: 16 path: 2 path: 1 path: 7 span: 927 span: 33 span: 48 } location: { path: 4 path: 16 path: 2 path: 2 span: 930 span: 2 span: 58 leading_comments: " The parser stores options it doesn't recognize here. See above.\n" } location: { path: 4 path: 16 path: 2 path: 2 path: 4 span: 930 span: 2 span: 10 } location: { path: 4 path: 16 path: 2 path: 2 path: 6 span: 930 span: 11 span: 30 } location: { path: 4 path: 16 path: 2 path: 2 path: 1 span: 930 span: 31 span: 51 } location: { path: 4 path: 16 path: 2 path: 2 path: 3 span: 930 span: 54 span: 57 } location: { path: 4 path: 16 path: 5 span: 933 span: 2 span: 25 leading_comments: " Clients can define custom options in extensions of this message. See above.\n" } location: { path: 4 path: 16 path: 5 path: 0 span: 933 span: 13 span: 24 } location: { path: 4 path: 16 path: 5 path: 0 path: 1 span: 933 span: 13 span: 17 } location: { path: 4 path: 16 path: 5 path: 0 path: 2 span: 933 span: 21 span: 24 } location: { path: 4 path: 17 span: 936 span: 0 span: 971 span: 1 } location: { path: 4 path: 17 path: 1 span: 936 span: 8 span: 21 } location: { path: 4 path: 17 path: 2 path: 0 span: 947 span: 2 span: 50 leading_comments: " Is this method deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the method, or it will be completely ignored; in the very least,\n this is a formalization for deprecating methods.\n" leading_detached_comments: " Note: Field numbers 1 through 32 are reserved for Google's internal RPC\n framework. We apologize for hoarding these numbers to ourselves, but\n we were already using them long before we decided to release Protocol\n Buffers.\n" } location: { path: 4 path: 17 path: 2 path: 0 path: 4 span: 947 span: 2 span: 10 } location: { path: 4 path: 17 path: 2 path: 0 path: 5 span: 947 span: 11 span: 15 } location: { path: 4 path: 17 path: 2 path: 0 path: 1 span: 947 span: 16 span: 26 } location: { path: 4 path: 17 path: 2 path: 0 path: 3 span: 947 span: 29 span: 31 } location: { path: 4 path: 17 path: 2 path: 0 path: 8 span: 947 span: 32 span: 49 } location: { path: 4 path: 17 path: 2 path: 0 path: 7 span: 947 span: 33 span: 48 } location: { path: 4 path: 17 path: 4 path: 0 span: 952 span: 2 span: 956 span: 3 leading_comments: " Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n or neither? HTTP based RPC implementation may choose GET verb for safe\n methods, and PUT verb for idempotent methods instead of the default POST.\n" } location: { path: 4 path: 17 path: 4 path: 0 path: 1 span: 952 span: 7 span: 23 } location: { path: 4 path: 17 path: 4 path: 0 path: 2 path: 0 span: 953 span: 4 span: 28 } location: { path: 4 path: 17 path: 4 path: 0 path: 2 path: 0 path: 1 span: 953 span: 4 span: 23 } location: { path: 4 path: 17 path: 4 path: 0 path: 2 path: 0 path: 2 span: 953 span: 26 span: 27 } location: { path: 4 path: 17 path: 4 path: 0 path: 2 path: 1 span: 954 span: 4 span: 24 trailing_comments: " implies idempotent\n" } location: { path: 4 path: 17 path: 4 path: 0 path: 2 path: 1 path: 1 span: 954 span: 4 span: 19 } location: { path: 4 path: 17 path: 4 path: 0 path: 2 path: 1 path: 2 span: 954 span: 22 span: 23 } location: { path: 4 path: 17 path: 4 path: 0 path: 2 path: 2 span: 955 span: 4 span: 19 trailing_comments: " idempotent, but may have side effects\n" } location: { path: 4 path: 17 path: 4 path: 0 path: 2 path: 2 path: 1 span: 955 span: 4 span: 14 } location: { path: 4 path: 17 path: 4 path: 0 path: 2 path: 2 path: 2 span: 955 span: 17 span: 18 } location: { path: 4 path: 17 path: 2 path: 1 span: 957 span: 2 span: 958 span: 38 } location: { path: 4 path: 17 path: 2 path: 1 path: 4 span: 957 span: 2 span: 10 } location: { path: 4 path: 17 path: 2 path: 1 path: 6 span: 957 span: 11 span: 27 } location: { path: 4 path: 17 path: 2 path: 1 path: 1 span: 957 span: 28 span: 45 } location: { path: 4 path: 17 path: 2 path: 1 path: 3 span: 957 span: 48 span: 50 } location: { path: 4 path: 17 path: 2 path: 1 path: 8 span: 958 span: 6 span: 37 } location: { path: 4 path: 17 path: 2 path: 1 path: 7 span: 958 span: 7 span: 36 } location: { path: 4 path: 17 path: 2 path: 2 span: 964 span: 2 span: 36 leading_comments: " Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n" } location: { path: 4 path: 17 path: 2 path: 2 path: 4 span: 964 span: 2 span: 10 } location: { path: 4 path: 17 path: 2 path: 2 path: 6 span: 964 span: 11 span: 21 } location: { path: 4 path: 17 path: 2 path: 2 path: 1 span: 964 span: 22 span: 30 } location: { path: 4 path: 17 path: 2 path: 2 path: 3 span: 964 span: 33 span: 35 } location: { path: 4 path: 17 path: 2 path: 3 span: 967 span: 2 span: 58 leading_comments: " The parser stores options it doesn't recognize here. See above.\n" } location: { path: 4 path: 17 path: 2 path: 3 path: 4 span: 967 span: 2 span: 10 } location: { path: 4 path: 17 path: 2 path: 3 path: 6 span: 967 span: 11 span: 30 } location: { path: 4 path: 17 path: 2 path: 3 path: 1 span: 967 span: 31 span: 51 } location: { path: 4 path: 17 path: 2 path: 3 path: 3 span: 967 span: 54 span: 57 } location: { path: 4 path: 17 path: 5 span: 970 span: 2 span: 25 leading_comments: " Clients can define custom options in extensions of this message. See above.\n" } location: { path: 4 path: 17 path: 5 path: 0 span: 970 span: 13 span: 24 } location: { path: 4 path: 17 path: 5 path: 0 path: 1 span: 970 span: 13 span: 17 } location: { path: 4 path: 17 path: 5 path: 0 path: 2 span: 970 span: 21 span: 24 } location: { path: 4 path: 18 span: 979 span: 0 span: 999 span: 1 leading_comments: " A message representing a option the parser does not recognize. This only\n appears in options protos created by the compiler::Parser class.\n DescriptorPool resolves these when building Descriptor objects. Therefore,\n options protos in descriptor objects (e.g. returned by Descriptor::options(),\n or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n in them.\n" } location: { path: 4 path: 18 path: 1 span: 979 span: 8 span: 27 } location: { path: 4 path: 18 path: 3 path: 0 span: 985 span: 2 span: 988 span: 3 leading_comments: " The name of the uninterpreted option. Each string represents a segment in\n a dot-separated name. is_extension is true iff a segment represents an\n extension (denoted with parentheses in options specs in .proto files).\n E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"moo\", false] } represents\n \"foo.(bar.baz).moo\".\n" } location: { path: 4 path: 18 path: 3 path: 0 path: 1 span: 985 span: 10 span: 18 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 0 span: 986 span: 4 span: 34 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 0 path: 4 span: 986 span: 4 span: 12 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 0 path: 5 span: 986 span: 13 span: 19 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 0 path: 1 span: 986 span: 20 span: 29 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 0 path: 3 span: 986 span: 32 span: 33 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 1 span: 987 span: 4 span: 35 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 1 path: 4 span: 987 span: 4 span: 12 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 1 path: 5 span: 987 span: 13 span: 17 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 1 path: 1 span: 987 span: 18 span: 30 } location: { path: 4 path: 18 path: 3 path: 0 path: 2 path: 1 path: 3 span: 987 span: 33 span: 34 } location: { path: 4 path: 18 path: 2 path: 0 span: 989 span: 2 span: 29 } location: { path: 4 path: 18 path: 2 path: 0 path: 4 span: 989 span: 2 span: 10 } location: { path: 4 path: 18 path: 2 path: 0 path: 6 span: 989 span: 11 span: 19 } location: { path: 4 path: 18 path: 2 path: 0 path: 1 span: 989 span: 20 span: 24 } location: { path: 4 path: 18 path: 2 path: 0 path: 3 span: 989 span: 27 span: 28 } location: { path: 4 path: 18 path: 2 path: 1 span: 993 span: 2 span: 39 leading_comments: " The value of the uninterpreted option, in whatever type the tokenizer\n identified it as during parsing. Exactly one of these should be set.\n" } location: { path: 4 path: 18 path: 2 path: 1 path: 4 span: 993 span: 2 span: 10 } location: { path: 4 path: 18 path: 2 path: 1 path: 5 span: 993 span: 11 span: 17 } location: { path: 4 path: 18 path: 2 path: 1 path: 1 span: 993 span: 18 span: 34 } location: { path: 4 path: 18 path: 2 path: 1 path: 3 span: 993 span: 37 span: 38 } location: { path: 4 path: 18 path: 2 path: 2 span: 994 span: 2 span: 41 } location: { path: 4 path: 18 path: 2 path: 2 path: 4 span: 994 span: 2 span: 10 } location: { path: 4 path: 18 path: 2 path: 2 path: 5 span: 994 span: 11 span: 17 } location: { path: 4 path: 18 path: 2 path: 2 path: 1 span: 994 span: 18 span: 36 } location: { path: 4 path: 18 path: 2 path: 2 path: 3 span: 994 span: 39 span: 40 } location: { path: 4 path: 18 path: 2 path: 3 span: 995 span: 2 span: 40 } location: { path: 4 path: 18 path: 2 path: 3 path: 4 span: 995 span: 2 span: 10 } location: { path: 4 path: 18 path: 2 path: 3 path: 5 span: 995 span: 11 span: 16 } location: { path: 4 path: 18 path: 2 path: 3 path: 1 span: 995 span: 17 span: 35 } location: { path: 4 path: 18 path: 2 path: 3 path: 3 span: 995 span: 38 span: 39 } location: { path: 4 path: 18 path: 2 path: 4 span: 996 span: 2 span: 35 } location: { path: 4 path: 18 path: 2 path: 4 path: 4 span: 996 span: 2 span: 10 } location: { path: 4 path: 18 path: 2 path: 4 path: 5 span: 996 span: 11 span: 17 } location: { path: 4 path: 18 path: 2 path: 4 path: 1 span: 996 span: 18 span: 30 } location: { path: 4 path: 18 path: 2 path: 4 path: 3 span: 996 span: 33 span: 34 } location: { path: 4 path: 18 path: 2 path: 5 span: 997 span: 2 span: 34 } location: { path: 4 path: 18 path: 2 path: 5 path: 4 span: 997 span: 2 span: 10 } location: { path: 4 path: 18 path: 2 path: 5 path: 5 span: 997 span: 11 span: 16 } location: { path: 4 path: 18 path: 2 path: 5 path: 1 span: 997 span: 17 span: 29 } location: { path: 4 path: 18 path: 2 path: 5 path: 3 span: 997 span: 32 span: 33 } location: { path: 4 path: 18 path: 2 path: 6 span: 998 span: 2 span: 38 } location: { path: 4 path: 18 path: 2 path: 6 path: 4 span: 998 span: 2 span: 10 } location: { path: 4 path: 18 path: 2 path: 6 path: 5 span: 998 span: 11 span: 17 } location: { path: 4 path: 18 path: 2 path: 6 path: 1 span: 998 span: 18 span: 33 } location: { path: 4 path: 18 path: 2 path: 6 path: 3 span: 998 span: 36 span: 37 } location: { path: 4 path: 19 span: 1010 span: 0 span: 1192 span: 1 leading_comments: " TODO Enums in C++ gencode (and potentially other languages) are\n not well scoped. This means that each of the feature enums below can clash\n with each other. The short names we've chosen maximize call-site\n readability, but leave us very open to this scenario. A future feature will\n be designed and implemented to handle this, hopefully before we ever hit a\n conflict here.\n" leading_detached_comments: " ===================================================================\n Features\n" } location: { path: 4 path: 19 path: 1 span: 1010 span: 8 span: 18 } location: { path: 4 path: 19 path: 4 path: 0 span: 1011 span: 2 span: 1016 span: 3 } location: { path: 4 path: 19 path: 4 path: 0 path: 1 span: 1011 span: 7 span: 20 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 0 span: 1012 span: 4 span: 31 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 0 path: 1 span: 1012 span: 4 span: 26 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 0 path: 2 span: 1012 span: 29 span: 30 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 1 span: 1013 span: 4 span: 17 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 1 path: 1 span: 1013 span: 4 span: 12 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 1 path: 2 span: 1013 span: 15 span: 16 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 2 span: 1014 span: 4 span: 17 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 2 path: 1 span: 1014 span: 4 span: 12 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 2 path: 2 span: 1014 span: 15 span: 16 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 3 span: 1015 span: 4 span: 24 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 3 path: 1 span: 1015 span: 4 span: 19 } location: { path: 4 path: 19 path: 4 path: 0 path: 2 path: 3 path: 2 span: 1015 span: 22 span: 23 } location: { path: 4 path: 19 path: 2 path: 0 span: 1017 span: 2 span: 1027 span: 4 } location: { path: 4 path: 19 path: 2 path: 0 path: 4 span: 1017 span: 2 span: 10 } location: { path: 4 path: 19 path: 2 path: 0 path: 6 span: 1017 span: 11 span: 24 } location: { path: 4 path: 19 path: 2 path: 0 path: 1 span: 1017 span: 25 span: 39 } location: { path: 4 path: 19 path: 2 path: 0 path: 3 span: 1017 span: 42 span: 43 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 span: 1017 span: 44 span: 1027 span: 3 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 17 span: 1018 span: 4 span: 33 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 19 path: 0 span: 1019 span: 4 span: 31 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 19 path: 1 span: 1020 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 22 span: 1021 span: 4 span: 1023 span: 5 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 22 path: 1 span: 1022 span: 6 span: 38 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 20 path: 0 span: 1024 span: 4 span: 69 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 20 path: 0 path: 3 span: 1024 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 20 path: 0 path: 2 span: 1024 span: 50 span: 67 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 20 path: 1 span: 1025 span: 4 span: 69 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 20 path: 1 path: 3 span: 1025 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 20 path: 1 path: 2 span: 1025 span: 50 span: 67 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 20 path: 2 span: 1026 span: 4 span: 67 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 20 path: 2 path: 3 span: 1026 span: 25 span: 46 } location: { path: 4 path: 19 path: 2 path: 0 path: 8 path: 20 path: 2 path: 2 span: 1026 span: 48 span: 65 } location: { path: 4 path: 19 path: 4 path: 1 span: 1029 span: 2 span: 1033 span: 3 } location: { path: 4 path: 19 path: 4 path: 1 path: 1 span: 1029 span: 7 span: 15 } location: { path: 4 path: 19 path: 4 path: 1 path: 2 path: 0 span: 1030 span: 4 span: 26 } location: { path: 4 path: 19 path: 4 path: 1 path: 2 path: 0 path: 1 span: 1030 span: 4 span: 21 } location: { path: 4 path: 19 path: 4 path: 1 path: 2 path: 0 path: 2 span: 1030 span: 24 span: 25 } location: { path: 4 path: 19 path: 4 path: 1 path: 2 path: 1 span: 1031 span: 4 span: 13 } location: { path: 4 path: 19 path: 4 path: 1 path: 2 path: 1 path: 1 span: 1031 span: 4 span: 8 } location: { path: 4 path: 19 path: 4 path: 1 path: 2 path: 1 path: 2 span: 1031 span: 11 span: 12 } location: { path: 4 path: 19 path: 4 path: 1 path: 2 path: 2 span: 1032 span: 4 span: 15 } location: { path: 4 path: 19 path: 4 path: 1 path: 2 path: 2 path: 1 span: 1032 span: 4 span: 10 } location: { path: 4 path: 19 path: 4 path: 1 path: 2 path: 2 path: 2 span: 1032 span: 13 span: 14 } location: { path: 4 path: 19 path: 2 path: 1 span: 1034 span: 2 span: 1043 span: 4 } location: { path: 4 path: 19 path: 2 path: 1 path: 4 span: 1034 span: 2 span: 10 } location: { path: 4 path: 19 path: 2 path: 1 path: 6 span: 1034 span: 11 span: 19 } location: { path: 4 path: 19 path: 2 path: 1 path: 1 span: 1034 span: 20 span: 29 } location: { path: 4 path: 19 path: 2 path: 1 path: 3 span: 1034 span: 32 span: 33 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 span: 1034 span: 34 span: 1043 span: 3 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 17 span: 1035 span: 4 span: 33 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 19 path: 0 span: 1036 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 19 path: 1 span: 1037 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 22 span: 1038 span: 4 span: 1040 span: 5 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 22 path: 1 span: 1039 span: 6 span: 38 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 20 path: 0 span: 1041 span: 4 span: 67 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 20 path: 0 path: 3 span: 1041 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 20 path: 0 path: 2 span: 1041 span: 50 span: 65 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 20 path: 1 span: 1042 span: 4 span: 65 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 20 path: 1 path: 3 span: 1042 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 1 path: 8 path: 20 path: 1 path: 2 span: 1042 span: 50 span: 63 } location: { path: 4 path: 19 path: 4 path: 2 span: 1045 span: 2 span: 1049 span: 3 } location: { path: 4 path: 19 path: 4 path: 2 path: 1 span: 1045 span: 7 span: 28 } location: { path: 4 path: 19 path: 4 path: 2 path: 2 path: 0 span: 1046 span: 4 span: 40 } location: { path: 4 path: 19 path: 4 path: 2 path: 2 path: 0 path: 1 span: 1046 span: 4 span: 35 } location: { path: 4 path: 19 path: 4 path: 2 path: 2 path: 0 path: 2 span: 1046 span: 38 span: 39 } location: { path: 4 path: 19 path: 4 path: 2 path: 2 path: 1 span: 1047 span: 4 span: 15 } location: { path: 4 path: 19 path: 4 path: 2 path: 2 path: 1 path: 1 span: 1047 span: 4 span: 10 } location: { path: 4 path: 19 path: 4 path: 2 path: 2 path: 1 path: 2 span: 1047 span: 13 span: 14 } location: { path: 4 path: 19 path: 4 path: 2 path: 2 path: 2 span: 1048 span: 4 span: 17 } location: { path: 4 path: 19 path: 4 path: 2 path: 2 path: 2 path: 1 span: 1048 span: 4 span: 12 } location: { path: 4 path: 19 path: 4 path: 2 path: 2 path: 2 path: 2 span: 1048 span: 15 span: 16 } location: { path: 4 path: 19 path: 2 path: 2 span: 1050 span: 2 span: 1059 span: 4 } location: { path: 4 path: 19 path: 2 path: 2 path: 4 span: 1050 span: 2 span: 10 } location: { path: 4 path: 19 path: 2 path: 2 path: 6 span: 1050 span: 11 span: 32 } location: { path: 4 path: 19 path: 2 path: 2 path: 1 span: 1050 span: 33 span: 56 } location: { path: 4 path: 19 path: 2 path: 2 path: 3 span: 1050 span: 59 span: 60 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 span: 1050 span: 61 span: 1059 span: 3 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 17 span: 1051 span: 4 span: 33 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 19 path: 0 span: 1052 span: 4 span: 31 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 19 path: 1 span: 1053 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 22 span: 1054 span: 4 span: 1056 span: 5 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 22 path: 1 span: 1055 span: 6 span: 38 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 20 path: 0 span: 1057 span: 4 span: 69 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 20 path: 0 path: 3 span: 1057 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 20 path: 0 path: 2 span: 1057 span: 50 span: 67 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 20 path: 1 span: 1058 span: 4 span: 67 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 20 path: 1 path: 3 span: 1058 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 2 path: 8 path: 20 path: 1 path: 2 span: 1058 span: 50 span: 65 } location: { path: 4 path: 19 path: 4 path: 3 span: 1061 span: 2 span: 1066 span: 3 } location: { path: 4 path: 19 path: 4 path: 3 path: 1 span: 1061 span: 7 span: 21 } location: { path: 4 path: 19 path: 4 path: 3 path: 2 path: 0 span: 1062 span: 4 span: 32 } location: { path: 4 path: 19 path: 4 path: 3 path: 2 path: 0 path: 1 span: 1062 span: 4 span: 27 } location: { path: 4 path: 19 path: 4 path: 3 path: 2 path: 0 path: 2 span: 1062 span: 30 span: 31 } location: { path: 4 path: 19 path: 4 path: 3 path: 2 path: 1 span: 1063 span: 4 span: 15 } location: { path: 4 path: 19 path: 4 path: 3 path: 2 path: 1 path: 1 span: 1063 span: 4 span: 10 } location: { path: 4 path: 19 path: 4 path: 3 path: 2 path: 1 path: 2 span: 1063 span: 13 span: 14 } location: { path: 4 path: 19 path: 4 path: 3 path: 2 path: 2 span: 1064 span: 4 span: 13 } location: { path: 4 path: 19 path: 4 path: 3 path: 2 path: 2 path: 1 span: 1064 span: 4 span: 8 } location: { path: 4 path: 19 path: 4 path: 3 path: 2 path: 2 path: 2 span: 1064 span: 11 span: 12 } location: { path: 4 path: 19 path: 4 path: 3 path: 4 span: 1065 span: 4 span: 15 } location: { path: 4 path: 19 path: 4 path: 3 path: 4 path: 0 span: 1065 span: 13 span: 14 } location: { path: 4 path: 19 path: 4 path: 3 path: 4 path: 0 path: 1 span: 1065 span: 13 span: 14 } location: { path: 4 path: 19 path: 4 path: 3 path: 4 path: 0 path: 2 span: 1065 span: 13 span: 14 } location: { path: 4 path: 19 path: 2 path: 3 span: 1067 span: 2 span: 1076 span: 4 } location: { path: 4 path: 19 path: 2 path: 3 path: 4 span: 1067 span: 2 span: 10 } location: { path: 4 path: 19 path: 2 path: 3 path: 6 span: 1067 span: 11 span: 25 } location: { path: 4 path: 19 path: 2 path: 3 path: 1 span: 1067 span: 26 span: 41 } location: { path: 4 path: 19 path: 2 path: 3 path: 3 span: 1067 span: 44 span: 45 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 span: 1067 span: 46 span: 1076 span: 3 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 17 span: 1068 span: 4 span: 33 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 19 path: 0 span: 1069 span: 4 span: 31 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 19 path: 1 span: 1070 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 22 span: 1071 span: 4 span: 1073 span: 5 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 22 path: 1 span: 1072 span: 6 span: 38 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 20 path: 0 span: 1074 span: 4 span: 65 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 20 path: 0 path: 3 span: 1074 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 20 path: 0 path: 2 span: 1074 span: 50 span: 63 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 20 path: 1 span: 1075 span: 4 span: 67 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 20 path: 1 path: 3 span: 1075 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 3 path: 8 path: 20 path: 1 path: 2 span: 1075 span: 50 span: 65 } location: { path: 4 path: 19 path: 4 path: 4 span: 1078 span: 2 span: 1082 span: 3 } location: { path: 4 path: 19 path: 4 path: 4 path: 1 span: 1078 span: 7 span: 22 } location: { path: 4 path: 19 path: 4 path: 4 path: 2 path: 0 span: 1079 span: 4 span: 33 } location: { path: 4 path: 19 path: 4 path: 4 path: 2 path: 0 path: 1 span: 1079 span: 4 span: 28 } location: { path: 4 path: 19 path: 4 path: 4 path: 2 path: 0 path: 2 span: 1079 span: 31 span: 32 } location: { path: 4 path: 19 path: 4 path: 4 path: 2 path: 1 span: 1080 span: 4 span: 24 } location: { path: 4 path: 19 path: 4 path: 4 path: 2 path: 1 path: 1 span: 1080 span: 4 span: 19 } location: { path: 4 path: 19 path: 4 path: 4 path: 2 path: 1 path: 2 span: 1080 span: 22 span: 23 } location: { path: 4 path: 19 path: 4 path: 4 path: 2 path: 2 span: 1081 span: 4 span: 18 } location: { path: 4 path: 19 path: 4 path: 4 path: 2 path: 2 path: 1 span: 1081 span: 4 span: 13 } location: { path: 4 path: 19 path: 4 path: 4 path: 2 path: 2 path: 2 span: 1081 span: 16 span: 17 } location: { path: 4 path: 19 path: 2 path: 4 span: 1083 span: 2 span: 1091 span: 4 } location: { path: 4 path: 19 path: 2 path: 4 path: 4 span: 1083 span: 2 span: 10 } location: { path: 4 path: 19 path: 2 path: 4 path: 6 span: 1083 span: 11 span: 26 } location: { path: 4 path: 19 path: 2 path: 4 path: 1 span: 1083 span: 27 span: 43 } location: { path: 4 path: 19 path: 2 path: 4 path: 3 span: 1083 span: 46 span: 47 } location: { path: 4 path: 19 path: 2 path: 4 path: 8 span: 1083 span: 48 span: 1091 span: 3 } location: { path: 4 path: 19 path: 2 path: 4 path: 8 path: 17 span: 1084 span: 4 span: 33 } location: { path: 4 path: 19 path: 2 path: 4 path: 8 path: 19 path: 0 span: 1085 span: 4 span: 31 } location: { path: 4 path: 19 path: 2 path: 4 path: 8 path: 19 path: 1 span: 1086 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 4 path: 8 path: 22 span: 1087 span: 4 span: 1089 span: 5 } location: { path: 4 path: 19 path: 2 path: 4 path: 8 path: 22 path: 1 span: 1088 span: 6 span: 38 } location: { path: 4 path: 19 path: 2 path: 4 path: 8 path: 20 path: 0 span: 1090 span: 4 span: 76 } location: { path: 4 path: 19 path: 2 path: 4 path: 8 path: 20 path: 0 path: 3 span: 1090 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 4 path: 8 path: 20 path: 0 path: 2 span: 1090 span: 50 span: 74 } location: { path: 4 path: 19 path: 4 path: 5 span: 1093 span: 2 span: 1097 span: 3 } location: { path: 4 path: 19 path: 4 path: 5 path: 1 span: 1093 span: 7 span: 17 } location: { path: 4 path: 19 path: 4 path: 5 path: 2 path: 0 span: 1094 span: 4 span: 28 } location: { path: 4 path: 19 path: 4 path: 5 path: 2 path: 0 path: 1 span: 1094 span: 4 span: 23 } location: { path: 4 path: 19 path: 4 path: 5 path: 2 path: 0 path: 2 span: 1094 span: 26 span: 27 } location: { path: 4 path: 19 path: 4 path: 5 path: 2 path: 1 span: 1095 span: 4 span: 14 } location: { path: 4 path: 19 path: 4 path: 5 path: 2 path: 1 path: 1 span: 1095 span: 4 span: 9 } location: { path: 4 path: 19 path: 4 path: 5 path: 2 path: 1 path: 2 span: 1095 span: 12 span: 13 } location: { path: 4 path: 19 path: 4 path: 5 path: 2 path: 2 span: 1096 span: 4 span: 27 } location: { path: 4 path: 19 path: 4 path: 5 path: 2 path: 2 path: 1 span: 1096 span: 4 span: 22 } location: { path: 4 path: 19 path: 4 path: 5 path: 2 path: 2 path: 2 span: 1096 span: 25 span: 26 } location: { path: 4 path: 19 path: 2 path: 5 span: 1098 span: 2 span: 1108 span: 4 } location: { path: 4 path: 19 path: 2 path: 5 path: 4 span: 1098 span: 2 span: 10 } location: { path: 4 path: 19 path: 2 path: 5 path: 6 span: 1098 span: 11 span: 21 } location: { path: 4 path: 19 path: 2 path: 5 path: 1 span: 1098 span: 22 span: 33 } location: { path: 4 path: 19 path: 2 path: 5 path: 3 span: 1098 span: 36 span: 37 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 span: 1098 span: 38 span: 1108 span: 3 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 17 span: 1099 span: 4 span: 33 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 19 path: 0 span: 1100 span: 4 span: 33 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 19 path: 1 span: 1101 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 19 path: 2 span: 1102 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 22 span: 1103 span: 4 span: 1105 span: 5 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 22 path: 1 span: 1104 span: 6 span: 38 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 20 path: 0 span: 1106 span: 4 span: 79 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 20 path: 0 path: 3 span: 1106 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 20 path: 0 path: 2 span: 1106 span: 50 span: 77 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 20 path: 1 span: 1107 span: 4 span: 66 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 20 path: 1 path: 3 span: 1107 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 5 path: 8 path: 20 path: 1 path: 2 span: 1107 span: 50 span: 64 } location: { path: 4 path: 19 path: 4 path: 6 span: 1110 span: 2 span: 1114 span: 3 } location: { path: 4 path: 19 path: 4 path: 6 path: 1 span: 1110 span: 7 span: 25 } location: { path: 4 path: 19 path: 4 path: 6 path: 2 path: 0 span: 1111 span: 4 span: 37 } location: { path: 4 path: 19 path: 4 path: 6 path: 2 path: 0 path: 1 span: 1111 span: 4 span: 32 } location: { path: 4 path: 19 path: 4 path: 6 path: 2 path: 0 path: 2 span: 1111 span: 35 span: 36 } location: { path: 4 path: 19 path: 4 path: 6 path: 2 path: 1 span: 1112 span: 4 span: 18 } location: { path: 4 path: 19 path: 4 path: 6 path: 2 path: 1 path: 1 span: 1112 span: 4 span: 13 } location: { path: 4 path: 19 path: 4 path: 6 path: 2 path: 1 path: 2 span: 1112 span: 16 span: 17 } location: { path: 4 path: 19 path: 4 path: 6 path: 2 path: 2 span: 1113 span: 4 span: 21 } location: { path: 4 path: 19 path: 4 path: 6 path: 2 path: 2 path: 1 span: 1113 span: 4 span: 16 } location: { path: 4 path: 19 path: 4 path: 6 path: 2 path: 2 path: 2 span: 1113 span: 19 span: 20 } location: { path: 4 path: 19 path: 2 path: 6 span: 1115 span: 2 span: 1131 span: 4 } location: { path: 4 path: 19 path: 2 path: 6 path: 4 span: 1115 span: 2 span: 10 } location: { path: 4 path: 19 path: 2 path: 6 path: 6 span: 1115 span: 11 span: 29 } location: { path: 4 path: 19 path: 2 path: 6 path: 1 span: 1115 span: 30 span: 50 } location: { path: 4 path: 19 path: 2 path: 6 path: 3 span: 1115 span: 53 span: 54 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 span: 1115 span: 55 span: 1131 span: 3 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 17 span: 1116 span: 4 span: 32 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 19 path: 0 span: 1117 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 19 path: 1 span: 1118 span: 4 span: 41 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 19 path: 2 span: 1119 span: 4 span: 33 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 19 path: 3 span: 1120 span: 4 span: 31 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 19 path: 4 span: 1121 span: 4 span: 31 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 19 path: 5 span: 1122 span: 4 span: 30 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 19 path: 6 span: 1123 span: 4 span: 36 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 19 path: 7 span: 1124 span: 4 span: 33 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 19 path: 8 span: 1125 span: 4 span: 32 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 22 span: 1126 span: 4 span: 1128 span: 5 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 22 path: 1 span: 1127 span: 6 span: 38 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 20 path: 0 span: 1129 span: 4 span: 73 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 20 path: 0 path: 3 span: 1129 span: 25 span: 48 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 20 path: 0 path: 2 span: 1129 span: 50 span: 71 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 20 path: 1 span: 1130 span: 4 span: 68 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 20 path: 1 path: 3 span: 1130 span: 25 span: 46 } location: { path: 4 path: 19 path: 2 path: 6 path: 8 path: 20 path: 1 path: 2 span: 1130 span: 48 span: 66 } location: { path: 4 path: 19 path: 3 path: 0 span: 1133 span: 2 span: 1152 span: 3 } location: { path: 4 path: 19 path: 3 path: 0 path: 1 span: 1133 span: 10 span: 27 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 span: 1134 span: 4 span: 1150 span: 5 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 1 span: 1134 span: 9 span: 32 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 0 span: 1135 span: 6 span: 44 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 0 path: 1 span: 1135 span: 6 span: 39 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 0 path: 2 span: 1135 span: 42 span: 43 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 1 span: 1138 span: 6 span: 21 leading_comments: " Default pre-EDITION_2024, all UNSET visibility are export.\n" } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 1 path: 1 span: 1138 span: 6 span: 16 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 1 path: 2 span: 1138 span: 19 span: 20 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 2 span: 1141 span: 6 span: 27 leading_comments: " All top-level symbols default to export, nested default to local.\n" } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 2 path: 1 span: 1141 span: 6 span: 22 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 2 path: 2 span: 1141 span: 25 span: 26 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 3 span: 1144 span: 6 span: 20 leading_comments: " All symbols default to local.\n" } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 3 path: 1 span: 1144 span: 6 span: 15 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 3 path: 2 span: 1144 span: 18 span: 19 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 4 span: 1149 span: 6 span: 17 leading_comments: " All symbols local by default. Nested types cannot be exported.\n With special case caveat for message { enum {} reserved 1 to max; }\n This is the recommended setting for new protos.\n" } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 4 path: 1 span: 1149 span: 6 span: 12 } location: { path: 4 path: 19 path: 3 path: 0 path: 4 path: 0 path: 2 path: 4 path: 2 span: 1149 span: 15 span: 16 } location: { path: 4 path: 19 path: 3 path: 0 path: 9 span: 1151 span: 4 span: 22 } location: { path: 4 path: 19 path: 3 path: 0 path: 9 path: 0 span: 1151 span: 13 span: 21 } location: { path: 4 path: 19 path: 3 path: 0 path: 9 path: 0 path: 1 span: 1151 span: 13 span: 14 } location: { path: 4 path: 19 path: 3 path: 0 path: 9 path: 0 path: 2 span: 1151 span: 18 span: 21 } location: { path: 4 path: 19 path: 2 path: 7 span: 1153 span: 2 span: 1162 span: 8 } location: { path: 4 path: 19 path: 2 path: 7 path: 4 span: 1153 span: 2 span: 10 } location: { path: 4 path: 19 path: 2 path: 7 path: 6 span: 1153 span: 11 span: 52 } location: { path: 4 path: 19 path: 2 path: 7 path: 1 span: 1153 span: 53 span: 78 } location: { path: 4 path: 19 path: 2 path: 7 path: 3 span: 1154 span: 6 span: 7 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 span: 1154 span: 8 span: 1162 span: 7 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 17 span: 1155 span: 8 span: 36 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 19 path: 0 span: 1156 span: 8 span: 34 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 22 span: 1157 span: 8 span: 1159 span: 9 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 22 path: 1 span: 1158 span: 10 span: 42 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 20 path: 0 span: 1160 span: 8 span: 75 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 20 path: 0 path: 3 span: 1160 span: 29 span: 52 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 20 path: 0 path: 2 span: 1160 span: 54 span: 73 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 20 path: 1 span: 1161 span: 8 span: 79 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 20 path: 1 path: 3 span: 1161 span: 29 span: 50 } location: { path: 4 path: 19 path: 2 path: 7 path: 8 path: 20 path: 1 path: 2 span: 1161 span: 52 span: 77 } location: { path: 4 path: 19 path: 9 span: 1164 span: 2 span: 15 } location: { path: 4 path: 19 path: 9 path: 0 span: 1164 span: 11 span: 14 } location: { path: 4 path: 19 path: 9 path: 0 path: 1 span: 1164 span: 11 span: 14 } location: { path: 4 path: 19 path: 9 path: 0 path: 2 span: 1164 span: 11 span: 14 } location: { path: 4 path: 19 path: 5 span: 1166 span: 2 span: 1188 span: 4 } location: { path: 4 path: 19 path: 5 path: 0 span: 1166 span: 13 span: 25 } location: { path: 4 path: 19 path: 5 path: 0 path: 1 span: 1166 span: 13 span: 17 } location: { path: 4 path: 19 path: 5 path: 0 path: 2 span: 1166 span: 21 span: 25 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 span: 1166 span: 26 span: 1188 span: 3 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 0 span: 1167 span: 4 span: 1171 span: 5 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 0 path: 1 span: 1168 span: 6 span: 18 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 0 path: 2 span: 1169 span: 6 span: 26 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 0 path: 3 span: 1170 span: 6 span: 29 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 1 span: 1172 span: 4 span: 1176 span: 5 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 1 path: 1 span: 1173 span: 6 span: 18 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 1 path: 2 span: 1174 span: 6 span: 27 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 1 path: 3 span: 1175 span: 6 span: 30 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 2 span: 1177 span: 4 span: 79 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 2 path: 1 span: 1177 span: 20 span: 32 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 2 path: 2 span: 1177 span: 34 span: 53 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 2 path: 3 span: 1177 span: 55 span: 77 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 3 span: 1178 span: 4 span: 1182 span: 5 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 3 path: 1 span: 1179 span: 6 span: 18 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 3 path: 2 span: 1180 span: 6 span: 29 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 3 path: 3 span: 1181 span: 6 span: 32 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 4 span: 1183 span: 4 span: 1187 span: 5 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 4 path: 1 span: 1184 span: 6 span: 18 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 4 path: 2 span: 1185 span: 6 span: 29 } location: { path: 4 path: 19 path: 5 path: 0 path: 3 path: 2 path: 4 path: 3 span: 1186 span: 6 span: 32 } location: { path: 4 path: 19 path: 5 span: 1190 span: 2 span: 26 trailing_comments: " For internal testing\n" } location: { path: 4 path: 19 path: 5 path: 1 span: 1190 span: 13 span: 25 } location: { path: 4 path: 19 path: 5 path: 1 path: 1 span: 1190 span: 13 span: 17 } location: { path: 4 path: 19 path: 5 path: 1 path: 2 span: 1190 span: 21 span: 25 } location: { path: 4 path: 19 path: 5 span: 1191 span: 2 span: 19 trailing_comments: " for https://github.com/bufbuild/protobuf-es\n" } location: { path: 4 path: 19 path: 5 path: 2 span: 1191 span: 13 span: 18 } location: { path: 4 path: 19 path: 5 path: 2 path: 1 span: 1191 span: 13 span: 18 } location: { path: 4 path: 19 path: 5 path: 2 path: 2 span: 1191 span: 13 span: 18 } location: { path: 4 path: 20 span: 1198 span: 0 span: 1224 span: 1 leading_comments: " A compiled specification for the defaults of a set of features. These\n messages are generated from FeatureSet extensions and can be used to seed\n feature resolution. The resolution with this object becomes a simple search\n for the closest matching edition, followed by proto merges.\n" } location: { path: 4 path: 20 path: 1 span: 1198 span: 8 span: 26 } location: { path: 4 path: 20 path: 3 path: 0 span: 1203 span: 2 span: 1214 span: 3 leading_comments: " A map from every known edition with a unique set of defaults to its\n defaults. Not all editions may be contained here. For a given edition,\n the defaults at the closest matching edition ordered at or before it should\n be used. This field must be in strict ascending order by edition.\n" } location: { path: 4 path: 20 path: 3 path: 0 path: 1 span: 1203 span: 10 span: 34 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 0 span: 1204 span: 4 span: 33 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 0 path: 4 span: 1204 span: 4 span: 12 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 0 path: 6 span: 1204 span: 13 span: 20 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 0 path: 1 span: 1204 span: 21 span: 28 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 0 path: 3 span: 1204 span: 31 span: 32 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 1 span: 1207 span: 4 span: 49 leading_comments: " Defaults of features that can be overridden in this edition.\n" } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 1 path: 4 span: 1207 span: 4 span: 12 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 1 path: 6 span: 1207 span: 13 span: 23 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 1 path: 1 span: 1207 span: 24 span: 44 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 1 path: 3 span: 1207 span: 47 span: 48 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 2 span: 1210 span: 4 span: 43 leading_comments: " Defaults of features that can't be overridden in this edition.\n" } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 2 path: 4 span: 1210 span: 4 span: 12 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 2 path: 6 span: 1210 span: 13 span: 23 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 2 path: 1 span: 1210 span: 24 span: 38 } location: { path: 4 path: 20 path: 3 path: 0 path: 2 path: 2 path: 3 span: 1210 span: 41 span: 42 } location: { path: 4 path: 20 path: 3 path: 0 path: 9 span: 1212 span: 4 span: 18 } location: { path: 4 path: 20 path: 3 path: 0 path: 9 path: 0 span: 1212 span: 13 span: 14 } location: { path: 4 path: 20 path: 3 path: 0 path: 9 path: 0 path: 1 span: 1212 span: 13 span: 14 } location: { path: 4 path: 20 path: 3 path: 0 path: 9 path: 0 path: 2 span: 1212 span: 13 span: 14 } location: { path: 4 path: 20 path: 3 path: 0 path: 9 path: 1 span: 1212 span: 16 span: 17 } location: { path: 4 path: 20 path: 3 path: 0 path: 9 path: 1 path: 1 span: 1212 span: 16 span: 17 } location: { path: 4 path: 20 path: 3 path: 0 path: 9 path: 1 path: 2 span: 1212 span: 16 span: 17 } location: { path: 4 path: 20 path: 3 path: 0 path: 10 span: 1213 span: 4 span: 24 } location: { path: 4 path: 20 path: 3 path: 0 path: 10 path: 0 span: 1213 span: 13 span: 23 } location: { path: 4 path: 20 path: 2 path: 0 span: 1215 span: 2 span: 49 } location: { path: 4 path: 20 path: 2 path: 0 path: 4 span: 1215 span: 2 span: 10 } location: { path: 4 path: 20 path: 2 path: 0 path: 6 span: 1215 span: 11 span: 35 } location: { path: 4 path: 20 path: 2 path: 0 path: 1 span: 1215 span: 36 span: 44 } location: { path: 4 path: 20 path: 2 path: 0 path: 3 span: 1215 span: 47 span: 48 } location: { path: 4 path: 20 path: 2 path: 1 span: 1219 span: 2 span: 39 leading_comments: " The minimum supported edition (inclusive) when this was constructed.\n Editions before this will not have defaults.\n" } location: { path: 4 path: 20 path: 2 path: 1 path: 4 span: 1219 span: 2 span: 10 } location: { path: 4 path: 20 path: 2 path: 1 path: 6 span: 1219 span: 11 span: 18 } location: { path: 4 path: 20 path: 2 path: 1 path: 1 span: 1219 span: 19 span: 34 } location: { path: 4 path: 20 path: 2 path: 1 path: 3 span: 1219 span: 37 span: 38 } location: { path: 4 path: 20 path: 2 path: 2 span: 1223 span: 2 span: 39 leading_comments: " The maximum known edition (inclusive) when this was constructed. Editions\n after this will not have reliable defaults.\n" } location: { path: 4 path: 20 path: 2 path: 2 path: 4 span: 1223 span: 2 span: 10 } location: { path: 4 path: 20 path: 2 path: 2 path: 6 span: 1223 span: 11 span: 18 } location: { path: 4 path: 20 path: 2 path: 2 path: 1 span: 1223 span: 19 span: 34 } location: { path: 4 path: 20 path: 2 path: 2 path: 3 span: 1223 span: 37 span: 38 } location: { path: 4 path: 21 span: 1231 span: 0 span: 1367 span: 1 leading_comments: " Encapsulates information about the original source file from which a\n FileDescriptorProto was generated.\n" leading_detached_comments: " ===================================================================\n Optional source code info\n" } location: { path: 4 path: 21 path: 1 span: 1231 span: 8 span: 22 } location: { path: 4 path: 21 path: 2 path: 0 span: 1275 span: 2 span: 33 leading_comments: " A Location identifies a piece of source code in a .proto file which\n corresponds to a particular definition. This information is intended\n to be useful to IDEs, code indexers, documentation generators, and similar\n tools.\n\n For example, say we have a file like:\n message Foo {\n optional string foo = 1;\n }\n Let's look at just the field definition:\n optional string foo = 1;\n ^ ^^ ^^ ^ ^^^\n a bc de f ghi\n We have the following locations:\n span path represents\n [a,i) [ 4, 0, 2, 0 ] The whole field definition.\n [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).\n [c,d) [ 4, 0, 2, 0, 5 ] The type (string).\n [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).\n [g,h) [ 4, 0, 2, 0, 3 ] The number (1).\n\n Notes:\n - A location may refer to a repeated field itself (i.e. not to any\n particular index within it). This is used whenever a set of elements are\n logically enclosed in a single code segment. For example, an entire\n extend block (possibly containing multiple extension definitions) will\n have an outer location whose path refers to the \"extensions\" repeated\n field without an index.\n - Multiple locations may have the same path. This happens when a single\n logical declaration is spread out across multiple places. The most\n obvious example is the \"extend\" block again -- there may be multiple\n extend blocks in the same scope, each of which will have the same path.\n - A location's span is not always a subset of its parent's span. For\n example, the \"extendee\" of an extension declaration appears at the\n beginning of the \"extend\" block and is shared by all extensions within\n the block.\n - Just because a location's span is a subset of some other location's span\n does not mean that it is a descendant. For example, a \"group\" defines\n both a type and a field in a single declaration. Thus, the locations\n corresponding to the type and field and their components will overlap.\n - Code which tries to interpret locations should probably be designed to\n ignore those that it doesn't understand, as more types of locations could\n be recorded in the future.\n" } location: { path: 4 path: 21 path: 2 path: 0 path: 4 span: 1275 span: 2 span: 10 } location: { path: 4 path: 21 path: 2 path: 0 path: 6 span: 1275 span: 11 span: 19 } location: { path: 4 path: 21 path: 2 path: 0 path: 1 span: 1275 span: 20 span: 28 } location: { path: 4 path: 21 path: 2 path: 0 path: 3 span: 1275 span: 31 span: 32 } location: { path: 4 path: 21 path: 3 path: 0 span: 1276 span: 2 span: 1359 span: 3 } location: { path: 4 path: 21 path: 3 path: 0 path: 1 span: 1276 span: 10 span: 18 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 0 span: 1300 span: 4 span: 44 leading_comments: " Identifies which part of the FileDescriptorProto was defined at this\n location.\n\n Each element is a field number or an index. They form a path from\n the root FileDescriptorProto to the place where the definition appears.\n For example, this path:\n [ 4, 3, 2, 7, 1 ]\n refers to:\n file.message_type(3) // 4, 3\n .field(7) // 2, 7\n .name() // 1\n This is because FileDescriptorProto.message_type has field number 4:\n repeated DescriptorProto message_type = 4;\n and DescriptorProto.field has field number 2:\n repeated FieldDescriptorProto field = 2;\n and FieldDescriptorProto.name has field number 1:\n optional string name = 1;\n\n Thus, the above path gives the location of a field name. If we removed\n the last element:\n [ 4, 3, 2, 7 ]\n this path refers to the whole field declaration (from the beginning\n of the label to the terminating semicolon).\n" } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 0 path: 4 span: 1300 span: 4 span: 12 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 0 path: 5 span: 1300 span: 13 span: 18 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 0 path: 1 span: 1300 span: 19 span: 23 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 0 path: 3 span: 1300 span: 26 span: 27 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 0 path: 8 span: 1300 span: 28 span: 43 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 0 path: 8 path: 2 span: 1300 span: 29 span: 42 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 1 span: 1307 span: 4 span: 44 leading_comments: " Always has exactly three or four elements: start line, start column,\n end line (optional, otherwise assumed same as start line), end column.\n These are packed into a single field for efficiency. Note that line\n and column numbers are zero-based -- typically you will want to add\n 1 to each before displaying to a user.\n" } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 1 path: 4 span: 1307 span: 4 span: 12 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 1 path: 5 span: 1307 span: 13 span: 18 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 1 path: 1 span: 1307 span: 19 span: 23 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 1 path: 3 span: 1307 span: 26 span: 27 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 1 path: 8 span: 1307 span: 28 span: 43 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 1 path: 8 path: 2 span: 1307 span: 29 span: 42 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 2 span: 1356 span: 4 span: 41 leading_comments: " If this SourceCodeInfo represents a complete declaration, these are any\n comments appearing before and after the declaration which appear to be\n attached to the declaration.\n\n A series of line comments appearing on consecutive lines, with no other\n tokens appearing on those lines, will be treated as a single comment.\n\n leading_detached_comments will keep paragraphs of comments that appear\n before (but not connected to) the current element. Each paragraph,\n separated by empty lines, will be one comment element in the repeated\n field.\n\n Only the comment content is provided; comment markers (e.g. //) are\n stripped out. For block comments, leading whitespace and an asterisk\n will be stripped from the beginning of each line other than the first.\n Newlines are included in the output.\n\n Examples:\n\n optional int32 foo = 1; // Comment attached to foo.\n // Comment attached to bar.\n optional int32 bar = 2;\n\n optional string baz = 3;\n // Comment attached to baz.\n // Another line attached to baz.\n\n // Comment attached to moo.\n //\n // Another line attached to moo.\n optional double moo = 4;\n\n // Detached comment for corge. This is not leading or trailing comments\n // to moo or corge because there are blank lines separating it from\n // both.\n\n // Detached comment for corge paragraph 2.\n\n optional string corge = 5;\n /* Block comment attached\n * to corge. Leading asterisks\n * will be removed. */\n /* Block comment attached to\n * grault. */\n optional int32 grault = 6;\n\n // ignored detached comments.\n" } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 2 path: 4 span: 1356 span: 4 span: 12 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 2 path: 5 span: 1356 span: 13 span: 19 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 2 path: 1 span: 1356 span: 20 span: 36 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 2 path: 3 span: 1356 span: 39 span: 40 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 3 span: 1357 span: 4 span: 42 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 3 path: 4 span: 1357 span: 4 span: 12 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 3 path: 5 span: 1357 span: 13 span: 19 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 3 path: 1 span: 1357 span: 20 span: 37 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 3 path: 3 span: 1357 span: 40 span: 41 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 4 span: 1358 span: 4 span: 50 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 4 path: 4 span: 1358 span: 4 span: 12 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 4 path: 5 span: 1358 span: 13 span: 19 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 4 path: 1 span: 1358 span: 20 span: 45 } location: { path: 4 path: 21 path: 3 path: 0 path: 2 path: 4 path: 3 span: 1358 span: 48 span: 49 } location: { path: 4 path: 21 path: 5 span: 1362 span: 2 span: 1366 span: 5 leading_comments: " Extensions for tooling.\n" } location: { path: 4 path: 21 path: 5 path: 0 span: 1362 span: 13 span: 22 } location: { path: 4 path: 21 path: 5 path: 0 path: 1 span: 1362 span: 13 span: 22 } location: { path: 4 path: 21 path: 5 path: 0 path: 2 span: 1362 span: 13 span: 22 } location: { path: 4 path: 21 path: 5 path: 0 path: 3 span: 1362 span: 23 span: 1366 span: 4 } location: { path: 4 path: 21 path: 5 path: 0 path: 3 path: 2 path: 0 span: 1362 span: 24 span: 1366 span: 3 } location: { path: 4 path: 21 path: 5 path: 0 path: 3 path: 2 path: 0 path: 1 span: 1363 span: 4 span: 21 } location: { path: 4 path: 21 path: 5 path: 0 path: 3 path: 2 path: 0 path: 3 span: 1364 span: 4 span: 54 } location: { path: 4 path: 21 path: 5 path: 0 path: 3 path: 2 path: 0 path: 2 span: 1365 span: 4 span: 66 } location: { path: 4 path: 22 span: 1372 span: 0 span: 1405 span: 1 leading_comments: " Describes the relationship between generated code and its original source\n file. A GeneratedCodeInfo message is associated with only one generated\n source file, but may contain references to different source .proto files.\n" } location: { path: 4 path: 22 path: 1 span: 1372 span: 8 span: 25 } location: { path: 4 path: 22 path: 2 path: 0 span: 1375 span: 2 span: 37 leading_comments: " An Annotation connects some span of text in generated code to an element\n of its generating .proto file.\n" } location: { path: 4 path: 22 path: 2 path: 0 path: 4 span: 1375 span: 2 span: 10 } location: { path: 4 path: 22 path: 2 path: 0 path: 6 span: 1375 span: 11 span: 21 } location: { path: 4 path: 22 path: 2 path: 0 path: 1 span: 1375 span: 22 span: 32 } location: { path: 4 path: 22 path: 2 path: 0 path: 3 span: 1375 span: 35 span: 36 } location: { path: 4 path: 22 path: 3 path: 0 span: 1376 span: 2 span: 1404 span: 3 } location: { path: 4 path: 22 path: 3 path: 0 path: 1 span: 1376 span: 10 span: 20 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 0 span: 1379 span: 4 span: 44 leading_comments: " Identifies the element in the original source .proto file. This field\n is formatted the same as SourceCodeInfo.Location.path.\n" } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 0 path: 4 span: 1379 span: 4 span: 12 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 0 path: 5 span: 1379 span: 13 span: 18 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 0 path: 1 span: 1379 span: 19 span: 23 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 0 path: 3 span: 1379 span: 26 span: 27 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 0 path: 8 span: 1379 span: 28 span: 43 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 0 path: 8 path: 2 span: 1379 span: 29 span: 42 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 1 span: 1382 span: 4 span: 36 leading_comments: " Identifies the filesystem path to the original source .proto.\n" } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 1 path: 4 span: 1382 span: 4 span: 12 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 1 path: 5 span: 1382 span: 13 span: 19 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 1 path: 1 span: 1382 span: 20 span: 31 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 1 path: 3 span: 1382 span: 34 span: 35 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 2 span: 1386 span: 4 span: 29 leading_comments: " Identifies the starting offset in bytes in the generated code\n that relates to the identified object.\n" } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 2 path: 4 span: 1386 span: 4 span: 12 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 2 path: 5 span: 1386 span: 13 span: 18 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 2 path: 1 span: 1386 span: 19 span: 24 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 2 path: 3 span: 1386 span: 27 span: 28 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 3 span: 1391 span: 4 span: 27 leading_comments: " Identifies the ending offset in bytes in the generated code that\n relates to the identified object. The end offset should be one past\n the last relevant byte (so the length of the text = end - begin).\n" } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 3 path: 4 span: 1391 span: 4 span: 12 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 3 path: 5 span: 1391 span: 13 span: 18 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 3 path: 1 span: 1391 span: 19 span: 22 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 3 path: 3 span: 1391 span: 25 span: 26 } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 span: 1395 span: 4 span: 1402 span: 5 leading_comments: " Represents the identified object's effect on the element in the original\n .proto file.\n" } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 1 span: 1395 span: 9 span: 17 } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 2 path: 0 span: 1397 span: 6 span: 15 leading_comments: " There is no effect or the effect is indescribable.\n" } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 2 path: 0 path: 1 span: 1397 span: 6 span: 10 } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 2 path: 0 path: 2 span: 1397 span: 13 span: 14 } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 2 path: 1 span: 1399 span: 6 span: 14 leading_comments: " The element is set or otherwise mutated.\n" } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 2 path: 1 path: 1 span: 1399 span: 6 span: 9 } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 2 path: 1 path: 2 span: 1399 span: 12 span: 13 } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 2 path: 2 span: 1401 span: 6 span: 16 leading_comments: " An alias to the element is returned.\n" } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 2 path: 2 path: 1 span: 1401 span: 6 span: 11 } location: { path: 4 path: 22 path: 3 path: 0 path: 4 path: 0 path: 2 path: 2 path: 2 span: 1401 span: 14 span: 15 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 4 span: 1403 span: 4 span: 35 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 4 path: 4 span: 1403 span: 4 span: 12 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 4 path: 6 span: 1403 span: 13 span: 21 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 4 path: 1 span: 1403 span: 22 span: 30 } location: { path: 4 path: 22 path: 3 path: 0 path: 2 path: 4 path: 3 span: 1403 span: 33 span: 34 } location: { path: 5 path: 1 span: 1412 span: 0 span: 1416 span: 1 leading_comments: " Describes the 'visibility' of a symbol with respect to the proto import\n system. Symbols can only be imported when the visibility rules do not prevent\n it (ex: local symbols cannot be imported). Visibility modifiers can only set\n on `message` and `enum` as they are the only types available to be referenced\n from other files.\n" } location: { path: 5 path: 1 path: 1 span: 1412 span: 5 span: 21 } location: { path: 5 path: 1 path: 2 path: 0 span: 1413 span: 2 span: 23 } location: { path: 5 path: 1 path: 2 path: 0 path: 1 span: 1413 span: 2 span: 18 } location: { path: 5 path: 1 path: 2 path: 0 path: 2 span: 1413 span: 21 span: 22 } location: { path: 5 path: 1 path: 2 path: 1 span: 1414 span: 2 span: 23 } location: { path: 5 path: 1 path: 2 path: 1 path: 1 span: 1414 span: 2 span: 18 } location: { path: 5 path: 1 path: 2 path: 1 path: 2 span: 1414 span: 21 span: 22 } location: { path: 5 path: 1 path: 2 path: 2 span: 1415 span: 2 span: 24 } location: { path: 5 path: 1 path: 2 path: 2 path: 1 span: 1415 span: 2 span: 19 } location: { path: 5 path: 1 path: 2 path: 2 path: 2 span: 1415 span: 22 span: 23 } } buf_extension: { is_import: true is_syntax_unspecified: false } } file: { name: "types/fieldpath.proto" package: "containerd.types" dependency: "google/protobuf/descriptor.proto" extension: { name: "fieldpath_all" number: 63300 label: LABEL_OPTIONAL type: TYPE_BOOL extendee: ".google.protobuf.FileOptions" json_name: "fieldpathAll" proto3_optional: true } extension: { name: "fieldpath" number: 64400 label: LABEL_OPTIONAL type: TYPE_BOOL extendee: ".google.protobuf.MessageOptions" json_name: "fieldpath" proto3_optional: true } options: { go_package: "github.com/containerd/containerd/api/types;types" } source_code_info: { location: { span: 28 span: 0 span: 41 span: 1 } location: { path: 12 span: 28 span: 0 span: 18 leading_detached_comments: " Protocol Buffers for Go with Gadgets\n\n Copyright (c) 2013, The GoGo Authors. All rights reserved.\n http://github.com/gogo/protobuf\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\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" } location: { path: 2 span: 29 span: 0 span: 25 } location: { path: 3 path: 0 span: 31 span: 0 span: 42 } location: { path: 8 span: 33 span: 0 span: 71 } location: { path: 8 path: 11 span: 33 span: 0 span: 71 } location: { path: 7 span: 35 span: 0 span: 37 span: 1 } location: { path: 7 path: 0 span: 36 span: 2 span: 38 } location: { path: 7 path: 0 path: 2 span: 35 span: 7 span: 34 } location: { path: 7 path: 0 path: 4 span: 36 span: 2 span: 10 } location: { path: 7 path: 0 path: 5 span: 36 span: 11 span: 15 } location: { path: 7 path: 0 path: 1 span: 36 span: 16 span: 29 } location: { path: 7 path: 0 path: 3 span: 36 span: 32 span: 37 } location: { path: 7 span: 39 span: 0 span: 41 span: 1 } location: { path: 7 path: 1 span: 40 span: 2 span: 34 } location: { path: 7 path: 1 path: 2 span: 39 span: 7 span: 37 } location: { path: 7 path: 1 path: 4 span: 40 span: 2 span: 10 } location: { path: 7 path: 1 path: 5 span: 40 span: 11 span: 15 } location: { path: 7 path: 1 path: 1 span: 40 span: 16 span: 25 } location: { path: 7 path: 1 path: 3 span: 40 span: 28 span: 33 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "events/container.proto" package: "containerd.events" dependency: "google/protobuf/any.proto" dependency: "types/fieldpath.proto" message_type: { name: "ContainerCreate" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "image" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "image" } field: { name: "runtime" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.events.ContainerCreate.Runtime" json_name: "runtime" } nested_type: { name: "Runtime" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "options" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } } message_type: { name: "ContainerUpdate" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "image" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "image" } field: { name: "labels" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.events.ContainerUpdate.LabelsEntry" json_name: "labels" } field: { name: "snapshot_key" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotKey" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "ContainerDelete" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } options: { go_package: "github.com/containerd/containerd/api/events;events" [containerd.types.fieldpath_all]: true } source_code_info: { location: { span: 16 span: 0 span: 45 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 26 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 31 } location: { path: 8 span: 23 span: 0 span: 73 } location: { path: 8 path: 11 span: 23 span: 0 span: 73 } location: { path: 8 span: 24 span: 0 span: 47 } location: { path: 8 path: 63300 span: 24 span: 0 span: 47 } location: { path: 4 path: 0 span: 26 span: 0 span: 34 span: 1 } location: { path: 4 path: 0 path: 1 span: 26 span: 8 span: 23 } location: { path: 4 path: 0 path: 2 path: 0 span: 27 span: 2 span: 16 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 27 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 27 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 27 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 span: 28 span: 2 span: 19 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 28 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 28 span: 9 span: 14 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 28 span: 17 span: 18 } location: { path: 4 path: 0 path: 3 path: 0 span: 29 span: 2 span: 32 span: 3 } location: { path: 4 path: 0 path: 3 path: 0 path: 1 span: 29 span: 10 span: 17 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 0 span: 30 span: 4 span: 20 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 0 path: 5 span: 30 span: 4 span: 10 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 0 path: 1 span: 30 span: 11 span: 15 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 0 path: 3 span: 30 span: 18 span: 19 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 1 span: 31 span: 4 span: 36 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 1 path: 6 span: 31 span: 4 span: 23 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 1 path: 1 span: 31 span: 24 span: 31 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 1 path: 3 span: 31 span: 34 span: 35 } location: { path: 4 path: 0 path: 2 path: 2 span: 33 span: 2 span: 22 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 33 span: 2 span: 9 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 33 span: 10 span: 17 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 33 span: 20 span: 21 } location: { path: 4 path: 1 span: 36 span: 0 span: 41 span: 1 } location: { path: 4 path: 1 path: 1 span: 36 span: 8 span: 23 } location: { path: 4 path: 1 path: 2 path: 0 span: 37 span: 2 span: 16 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 37 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 37 span: 9 span: 11 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 37 span: 14 span: 15 } location: { path: 4 path: 1 path: 2 path: 1 span: 38 span: 2 span: 19 } location: { path: 4 path: 1 path: 2 path: 1 path: 5 span: 38 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 38 span: 9 span: 14 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 38 span: 17 span: 18 } location: { path: 4 path: 1 path: 2 path: 2 span: 39 span: 2 span: 33 } location: { path: 4 path: 1 path: 2 path: 2 path: 6 span: 39 span: 2 span: 21 } location: { path: 4 path: 1 path: 2 path: 2 path: 1 span: 39 span: 22 span: 28 } location: { path: 4 path: 1 path: 2 path: 2 path: 3 span: 39 span: 31 span: 32 } location: { path: 4 path: 1 path: 2 path: 3 span: 40 span: 2 span: 26 } location: { path: 4 path: 1 path: 2 path: 3 path: 5 span: 40 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 3 path: 1 span: 40 span: 9 span: 21 } location: { path: 4 path: 1 path: 2 path: 3 path: 3 span: 40 span: 24 span: 25 } location: { path: 4 path: 2 span: 43 span: 0 span: 45 span: 1 } location: { path: 4 path: 2 path: 1 span: 43 span: 8 span: 23 } location: { path: 4 path: 2 path: 2 path: 0 span: 44 span: 2 span: 16 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 44 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 44 span: 9 span: 11 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 44 span: 14 span: 15 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "events/content.proto" package: "containerd.events" dependency: "types/fieldpath.proto" message_type: { name: "ContentCreate" field: { name: "digest" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "digest" } field: { name: "size" number: 2 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "size" } } message_type: { name: "ContentDelete" field: { name: "digest" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "digest" } } options: { go_package: "github.com/containerd/containerd/api/events;events" [containerd.types.fieldpath_all]: true } source_code_info: { location: { span: 16 span: 0 span: 32 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 26 } location: { path: 3 path: 0 span: 20 span: 0 span: 31 } location: { path: 8 span: 22 span: 0 span: 73 } location: { path: 8 path: 11 span: 22 span: 0 span: 73 } location: { path: 8 span: 23 span: 0 span: 47 } location: { path: 8 path: 63300 span: 23 span: 0 span: 47 } location: { path: 4 path: 0 span: 25 span: 0 span: 28 span: 1 } location: { path: 4 path: 0 path: 1 span: 25 span: 8 span: 21 } location: { path: 4 path: 0 path: 2 path: 0 span: 26 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 26 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 26 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 26 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 1 span: 27 span: 2 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 27 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 27 span: 8 span: 12 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 27 span: 15 span: 16 } location: { path: 4 path: 1 span: 30 span: 0 span: 32 span: 1 } location: { path: 4 path: 1 path: 1 span: 30 span: 8 span: 21 } location: { path: 4 path: 1 path: 2 path: 0 span: 31 span: 2 span: 20 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 31 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 31 span: 9 span: 15 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 31 span: 18 span: 19 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "events/image.proto" package: "containerd.services.images.v1" dependency: "types/fieldpath.proto" message_type: { name: "ImageCreate" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "labels" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.images.v1.ImageCreate.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "ImageUpdate" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "labels" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.images.v1.ImageUpdate.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "ImageDelete" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } } options: { go_package: "github.com/containerd/containerd/api/events;events" [containerd.types.fieldpath_all]: true } source_code_info: { location: { span: 16 span: 0 span: 37 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 38 } location: { path: 3 path: 0 span: 20 span: 0 span: 31 } location: { path: 8 span: 22 span: 0 span: 73 } location: { path: 8 path: 11 span: 22 span: 0 span: 73 } location: { path: 8 span: 23 span: 0 span: 47 } location: { path: 8 path: 63300 span: 23 span: 0 span: 47 } location: { path: 4 path: 0 span: 25 span: 0 span: 28 span: 1 } location: { path: 4 path: 0 path: 1 span: 25 span: 8 span: 19 } location: { path: 4 path: 0 path: 2 path: 0 span: 26 span: 2 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 26 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 26 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 26 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 span: 27 span: 2 span: 33 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 27 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 27 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 27 span: 31 span: 32 } location: { path: 4 path: 1 span: 30 span: 0 span: 33 span: 1 } location: { path: 4 path: 1 path: 1 span: 30 span: 8 span: 19 } location: { path: 4 path: 1 path: 2 path: 0 span: 31 span: 2 span: 18 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 31 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 31 span: 9 span: 13 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 31 span: 16 span: 17 } location: { path: 4 path: 1 path: 2 path: 1 span: 32 span: 2 span: 33 } location: { path: 4 path: 1 path: 2 path: 1 path: 6 span: 32 span: 2 span: 21 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 32 span: 22 span: 28 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 32 span: 31 span: 32 } location: { path: 4 path: 2 span: 35 span: 0 span: 37 span: 1 } location: { path: 4 path: 2 path: 1 span: 35 span: 8 span: 19 } location: { path: 4 path: 2 path: 2 path: 0 span: 36 span: 2 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 36 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 36 span: 9 span: 13 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 36 span: 16 span: 17 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "events/namespace.proto" package: "containerd.events" dependency: "types/fieldpath.proto" message_type: { name: "NamespaceCreate" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "labels" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.events.NamespaceCreate.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "NamespaceUpdate" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "labels" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.events.NamespaceUpdate.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "NamespaceDelete" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } } options: { go_package: "github.com/containerd/containerd/api/events;events" [containerd.types.fieldpath_all]: true } source_code_info: { location: { span: 16 span: 0 span: 37 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 26 } location: { path: 3 path: 0 span: 20 span: 0 span: 31 } location: { path: 8 span: 22 span: 0 span: 73 } location: { path: 8 path: 11 span: 22 span: 0 span: 73 } location: { path: 8 span: 23 span: 0 span: 47 } location: { path: 8 path: 63300 span: 23 span: 0 span: 47 } location: { path: 4 path: 0 span: 25 span: 0 span: 28 span: 1 } location: { path: 4 path: 0 path: 1 span: 25 span: 8 span: 23 } location: { path: 4 path: 0 path: 2 path: 0 span: 26 span: 2 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 26 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 26 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 26 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 span: 27 span: 2 span: 33 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 27 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 27 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 27 span: 31 span: 32 } location: { path: 4 path: 1 span: 30 span: 0 span: 33 span: 1 } location: { path: 4 path: 1 path: 1 span: 30 span: 8 span: 23 } location: { path: 4 path: 1 path: 2 path: 0 span: 31 span: 2 span: 18 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 31 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 31 span: 9 span: 13 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 31 span: 16 span: 17 } location: { path: 4 path: 1 path: 2 path: 1 span: 32 span: 2 span: 33 } location: { path: 4 path: 1 path: 2 path: 1 path: 6 span: 32 span: 2 span: 21 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 32 span: 22 span: 28 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 32 span: 31 span: 32 } location: { path: 4 path: 2 span: 35 span: 0 span: 37 span: 1 } location: { path: 4 path: 2 path: 1 span: 35 span: 8 span: 23 } location: { path: 4 path: 2 path: 2 path: 0 span: 36 span: 2 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 36 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 36 span: 9 span: 13 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 36 span: 16 span: 17 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "google/protobuf/timestamp.proto" package: "google.protobuf" message_type: { name: "Timestamp" field: { name: "seconds" number: 1 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "seconds" } field: { name: "nanos" number: 2 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "nanos" } } options: { java_package: "com.google.protobuf" java_outer_classname: "TimestampProto" java_multiple_files: true go_package: "google.golang.org/protobuf/types/known/timestamppb" cc_enable_arenas: true objc_class_prefix: "GPB" csharp_namespace: "Google.Protobuf.WellKnownTypes" } source_code_info: { location: { span: 30 span: 0 span: 143 span: 1 } location: { path: 12 span: 30 span: 0 span: 18 leading_detached_comments: " 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" } location: { path: 2 span: 32 span: 0 span: 24 } location: { path: 8 span: 34 span: 0 span: 31 } location: { path: 8 path: 31 span: 34 span: 0 span: 31 } location: { path: 8 span: 35 span: 0 span: 73 } location: { path: 8 path: 11 span: 35 span: 0 span: 73 } location: { path: 8 span: 36 span: 0 span: 44 } location: { path: 8 path: 1 span: 36 span: 0 span: 44 } location: { path: 8 span: 37 span: 0 span: 47 } location: { path: 8 path: 8 span: 37 span: 0 span: 47 } location: { path: 8 span: 38 span: 0 span: 34 } location: { path: 8 path: 10 span: 38 span: 0 span: 34 } location: { path: 8 span: 39 span: 0 span: 33 } location: { path: 8 path: 36 span: 39 span: 0 span: 33 } location: { path: 8 span: 40 span: 0 span: 59 } location: { path: 8 path: 37 span: 40 span: 0 span: 59 } location: { path: 4 path: 0 span: 132 span: 0 span: 143 span: 1 leading_comments: " 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 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 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://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.\n\n" } location: { path: 4 path: 0 path: 1 span: 132 span: 8 span: 17 } location: { path: 4 path: 0 path: 2 path: 0 span: 136 span: 2 span: 20 leading_comments: " 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" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 136 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 136 span: 8 span: 15 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 136 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 1 span: 142 span: 2 span: 18 leading_comments: " 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" } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 142 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 142 span: 8 span: 13 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 142 span: 16 span: 17 } } syntax: "proto3" buf_extension: { is_import: true is_syntax_unspecified: false } } file: { name: "events/sandbox.proto" package: "containerd.events" dependency: "google/protobuf/timestamp.proto" message_type: { name: "SandboxCreate" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "SandboxStart" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "SandboxExit" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "exit_status" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } options: { go_package: "github.com/containerd/containerd/api/events;events" } source_code_info: { location: { span: 16 span: 0 span: 36 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 26 } location: { path: 3 path: 0 span: 20 span: 0 span: 41 } location: { path: 8 span: 22 span: 0 span: 73 } location: { path: 8 path: 11 span: 22 span: 0 span: 73 } location: { path: 4 path: 0 span: 24 span: 0 span: 26 span: 1 } location: { path: 4 path: 0 path: 1 span: 24 span: 8 span: 21 } location: { path: 4 path: 0 path: 2 path: 0 span: 25 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 25 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 25 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 25 span: 22 span: 23 } location: { path: 4 path: 1 span: 28 span: 0 span: 30 span: 1 } location: { path: 4 path: 1 path: 1 span: 28 span: 8 span: 20 } location: { path: 4 path: 1 path: 2 path: 0 span: 29 span: 2 span: 24 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 29 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 29 span: 9 span: 19 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 29 span: 22 span: 23 } location: { path: 4 path: 2 span: 32 span: 0 span: 36 span: 1 } location: { path: 4 path: 2 path: 1 span: 32 span: 8 span: 19 } location: { path: 4 path: 2 path: 2 path: 0 span: 33 span: 2 span: 24 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 33 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 33 span: 9 span: 19 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 33 span: 22 span: 23 } location: { path: 4 path: 2 path: 2 path: 1 span: 34 span: 2 span: 25 } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 34 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 34 span: 9 span: 20 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 34 span: 23 span: 24 } location: { path: 4 path: 2 path: 2 path: 2 span: 35 span: 2 span: 42 } location: { path: 4 path: 2 path: 2 path: 2 path: 6 span: 35 span: 2 span: 27 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 35 span: 28 span: 37 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 35 span: 40 span: 41 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "events/snapshot.proto" package: "containerd.events" dependency: "types/fieldpath.proto" message_type: { name: "SnapshotPrepare" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "parent" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "parent" } field: { name: "snapshotter" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } } message_type: { name: "SnapshotCommit" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "name" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "snapshotter" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } } message_type: { name: "SnapshotRemove" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "snapshotter" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } } options: { go_package: "github.com/containerd/containerd/api/events;events" [containerd.types.fieldpath_all]: true } source_code_info: { location: { span: 16 span: 0 span: 40 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 26 } location: { path: 3 path: 0 span: 20 span: 0 span: 31 } location: { path: 8 span: 22 span: 0 span: 73 } location: { path: 8 path: 11 span: 22 span: 0 span: 73 } location: { path: 8 span: 23 span: 0 span: 47 } location: { path: 8 path: 63300 span: 23 span: 0 span: 47 } location: { path: 4 path: 0 span: 25 span: 0 span: 29 span: 1 } location: { path: 4 path: 0 path: 1 span: 25 span: 8 span: 23 } location: { path: 4 path: 0 path: 2 path: 0 span: 26 span: 2 span: 17 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 26 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 26 span: 9 span: 12 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 26 span: 15 span: 16 } location: { path: 4 path: 0 path: 2 path: 1 span: 27 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 27 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 27 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 27 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 2 span: 28 span: 2 span: 25 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 28 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 28 span: 9 span: 20 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 28 span: 23 span: 24 } location: { path: 4 path: 1 span: 31 span: 0 span: 35 span: 1 } location: { path: 4 path: 1 path: 1 span: 31 span: 8 span: 22 } location: { path: 4 path: 1 path: 2 path: 0 span: 32 span: 2 span: 17 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 32 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 32 span: 9 span: 12 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 32 span: 15 span: 16 } location: { path: 4 path: 1 path: 2 path: 1 span: 33 span: 2 span: 18 } location: { path: 4 path: 1 path: 2 path: 1 path: 5 span: 33 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 33 span: 9 span: 13 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 33 span: 16 span: 17 } location: { path: 4 path: 1 path: 2 path: 2 span: 34 span: 2 span: 25 } location: { path: 4 path: 1 path: 2 path: 2 path: 5 span: 34 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 2 path: 1 span: 34 span: 9 span: 20 } location: { path: 4 path: 1 path: 2 path: 2 path: 3 span: 34 span: 23 span: 24 } location: { path: 4 path: 2 span: 37 span: 0 span: 40 span: 1 } location: { path: 4 path: 2 path: 1 span: 37 span: 8 span: 22 } location: { path: 4 path: 2 path: 2 path: 0 span: 38 span: 2 span: 17 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 38 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 38 span: 9 span: 12 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 38 span: 15 span: 16 } location: { path: 4 path: 2 path: 2 path: 1 span: 39 span: 2 span: 25 } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 39 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 39 span: 9 span: 20 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 39 span: 23 span: 24 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/mount.proto" package: "containerd.types" dependency: "google/protobuf/timestamp.proto" message_type: { name: "Mount" field: { name: "type" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "type" } field: { name: "source" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "source" } field: { name: "target" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "target" } field: { name: "options" number: 4 label: LABEL_REPEATED type: TYPE_STRING json_name: "options" } } message_type: { name: "ActiveMount" field: { name: "mount" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "mount" } field: { name: "mounted_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "mountedAt" } field: { name: "mount_point" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "mountPoint" } field: { name: "data" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.ActiveMount.DataEntry" json_name: "data" } nested_type: { name: "DataEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "ActivationInfo" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "active" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.ActiveMount" json_name: "active" } field: { name: "system" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "system" } field: { name: "labels" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.ActivationInfo.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } options: { go_package: "github.com/containerd/containerd/api/types;types" } source_code_info: { location: { span: 16 span: 0 span: 64 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 25 } location: { path: 3 path: 0 span: 20 span: 0 span: 41 } location: { path: 8 span: 22 span: 0 span: 71 } location: { path: 8 path: 11 span: 22 span: 0 span: 71 } location: { path: 4 path: 0 span: 31 span: 0 span: 44 span: 1 leading_comments: " Mount describes mounts for a container.\n\n This type is the lingua franca of ContainerD. All services provide mounts\n to be used with the container at creation time.\n\n The Mount type follows the structure of the mount syscall, including a type,\n source, target and options.\n" } location: { path: 4 path: 0 path: 1 span: 31 span: 8 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 span: 33 span: 2 span: 18 leading_comments: " Type defines the nature of the mount.\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 33 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 33 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 33 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 span: 37 span: 2 span: 20 leading_comments: " Source specifies the name of the mount. Depending on mount type, this\n may be a volume name or a host path, or even ignored.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 37 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 37 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 37 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 2 span: 40 span: 2 span: 20 leading_comments: " Target path in container\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 40 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 40 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 40 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 3 span: 43 span: 2 span: 30 leading_comments: " Options specifies zero or more fstab style mount options.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 4 span: 43 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 43 span: 11 span: 17 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 43 span: 18 span: 25 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 43 span: 28 span: 29 } location: { path: 4 path: 1 span: 46 span: 0 span: 54 span: 1 } location: { path: 4 path: 1 path: 1 span: 46 span: 8 span: 19 } location: { path: 4 path: 1 path: 2 path: 0 span: 47 span: 2 span: 18 } location: { path: 4 path: 1 path: 2 path: 0 path: 6 span: 47 span: 2 span: 7 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 47 span: 8 span: 13 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 47 span: 16 span: 17 } location: { path: 4 path: 1 path: 2 path: 1 span: 49 span: 2 span: 43 } location: { path: 4 path: 1 path: 2 path: 1 path: 6 span: 49 span: 2 span: 27 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 49 span: 28 span: 38 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 49 span: 41 span: 42 } location: { path: 4 path: 1 path: 2 path: 2 span: 51 span: 2 span: 25 } location: { path: 4 path: 1 path: 2 path: 2 path: 5 span: 51 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 2 path: 1 span: 51 span: 9 span: 20 } location: { path: 4 path: 1 path: 2 path: 2 path: 3 span: 51 span: 23 span: 24 } location: { path: 4 path: 1 path: 2 path: 3 span: 53 span: 2 span: 31 } location: { path: 4 path: 1 path: 2 path: 3 path: 6 span: 53 span: 2 span: 21 } location: { path: 4 path: 1 path: 2 path: 3 path: 1 span: 53 span: 22 span: 26 } location: { path: 4 path: 1 path: 2 path: 3 path: 3 span: 53 span: 29 span: 30 } location: { path: 4 path: 2 span: 56 span: 0 span: 64 span: 1 } location: { path: 4 path: 2 path: 1 span: 56 span: 8 span: 22 } location: { path: 4 path: 2 path: 2 path: 0 span: 57 span: 2 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 57 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 57 span: 9 span: 13 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 57 span: 16 span: 17 } location: { path: 4 path: 2 path: 2 path: 1 span: 59 span: 2 span: 34 } location: { path: 4 path: 2 path: 2 path: 1 path: 4 span: 59 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 1 path: 6 span: 59 span: 11 span: 22 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 59 span: 23 span: 29 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 59 span: 32 span: 33 } location: { path: 4 path: 2 path: 2 path: 2 span: 61 span: 2 span: 28 } location: { path: 4 path: 2 path: 2 path: 2 path: 4 span: 61 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 2 path: 6 span: 61 span: 11 span: 16 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 61 span: 17 span: 23 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 61 span: 26 span: 27 } location: { path: 4 path: 2 path: 2 path: 3 span: 63 span: 2 span: 33 } location: { path: 4 path: 2 path: 2 path: 3 path: 6 span: 63 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 3 path: 1 span: 63 span: 22 span: 28 } location: { path: 4 path: 2 path: 2 path: 3 path: 3 span: 63 span: 31 span: 32 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "events/task.proto" package: "containerd.events" dependency: "google/protobuf/timestamp.proto" dependency: "types/fieldpath.proto" dependency: "types/mount.proto" message_type: { name: "TaskCreate" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "bundle" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "bundle" } field: { name: "rootfs" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "rootfs" } field: { name: "io" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.events.TaskIO" json_name: "io" } field: { name: "checkpoint" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "checkpoint" } field: { name: "pid" number: 6 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } } message_type: { name: "TaskStart" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } } message_type: { name: "TaskDelete" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "exit_status" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } field: { name: "id" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "TaskIO" field: { name: "stdin" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "terminal" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } } message_type: { name: "TaskExit" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "pid" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "exit_status" number: 4 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 5 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } message_type: { name: "TaskOOM" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } } message_type: { name: "TaskExecAdded" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "TaskExecStarted" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "pid" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } } message_type: { name: "TaskPaused" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } } message_type: { name: "TaskResumed" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } } message_type: { name: "TaskCheckpointed" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "checkpoint" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "checkpoint" } } options: { go_package: "github.com/containerd/containerd/api/events;events" [containerd.types.fieldpath_all]: true } source_code_info: { location: { span: 16 span: 0 span: 92 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 26 } location: { path: 3 path: 0 span: 20 span: 0 span: 41 } location: { path: 3 path: 1 span: 21 span: 0 span: 31 } location: { path: 3 path: 2 span: 22 span: 0 span: 27 } location: { path: 8 span: 24 span: 0 span: 73 } location: { path: 8 path: 11 span: 24 span: 0 span: 73 } location: { path: 8 span: 25 span: 0 span: 47 } location: { path: 8 path: 63300 span: 25 span: 0 span: 47 } location: { path: 4 path: 0 span: 27 span: 0 span: 34 span: 1 } location: { path: 4 path: 0 path: 1 span: 27 span: 8 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 span: 28 span: 2 span: 26 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 28 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 28 span: 9 span: 21 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 28 span: 24 span: 25 } location: { path: 4 path: 0 path: 2 path: 1 span: 29 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 29 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 29 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 29 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 2 span: 30 span: 2 span: 45 } location: { path: 4 path: 0 path: 2 path: 2 path: 4 span: 30 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 30 span: 11 span: 33 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 30 span: 34 span: 40 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 30 span: 43 span: 44 } location: { path: 4 path: 0 path: 2 path: 3 span: 31 span: 2 span: 16 } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 31 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 31 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 31 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 4 span: 32 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 32 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 32 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 32 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 5 span: 33 span: 2 span: 17 } location: { path: 4 path: 0 path: 2 path: 5 path: 5 span: 33 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 33 span: 9 span: 12 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 33 span: 15 span: 16 } location: { path: 4 path: 1 span: 36 span: 0 span: 39 span: 1 } location: { path: 4 path: 1 path: 1 span: 36 span: 8 span: 17 } location: { path: 4 path: 1 path: 2 path: 0 span: 37 span: 2 span: 26 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 37 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 37 span: 9 span: 21 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 37 span: 24 span: 25 } location: { path: 4 path: 1 path: 2 path: 1 span: 38 span: 2 span: 17 } location: { path: 4 path: 1 path: 2 path: 1 path: 5 span: 38 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 38 span: 9 span: 12 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 38 span: 15 span: 16 } location: { path: 4 path: 2 span: 41 span: 0 span: 49 span: 1 } location: { path: 4 path: 2 path: 1 span: 41 span: 8 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 span: 42 span: 2 span: 26 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 42 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 42 span: 9 span: 21 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 42 span: 24 span: 25 } location: { path: 4 path: 2 path: 2 path: 1 span: 43 span: 2 span: 17 } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 43 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 43 span: 9 span: 12 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 43 span: 15 span: 16 } location: { path: 4 path: 2 path: 2 path: 2 span: 44 span: 2 span: 25 } location: { path: 4 path: 2 path: 2 path: 2 path: 5 span: 44 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 44 span: 9 span: 20 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 44 span: 23 span: 24 } location: { path: 4 path: 2 path: 2 path: 3 span: 45 span: 2 span: 42 } location: { path: 4 path: 2 path: 2 path: 3 path: 6 span: 45 span: 2 span: 27 } location: { path: 4 path: 2 path: 2 path: 3 path: 1 span: 45 span: 28 span: 37 } location: { path: 4 path: 2 path: 2 path: 3 path: 3 span: 45 span: 40 span: 41 } location: { path: 4 path: 2 path: 2 path: 4 span: 48 span: 2 span: 16 leading_comments: " id is the specific exec. By default if omitted will be `\"\"` thus matches\n the init exec of the task matching `container_id`.\n" } location: { path: 4 path: 2 path: 2 path: 4 path: 5 span: 48 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 4 path: 1 span: 48 span: 9 span: 11 } location: { path: 4 path: 2 path: 2 path: 4 path: 3 span: 48 span: 14 span: 15 } location: { path: 4 path: 3 span: 51 span: 0 span: 56 span: 1 } location: { path: 4 path: 3 path: 1 span: 51 span: 8 span: 14 } location: { path: 4 path: 3 path: 2 path: 0 span: 52 span: 2 span: 19 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 52 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 52 span: 9 span: 14 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 52 span: 17 span: 18 } location: { path: 4 path: 3 path: 2 path: 1 span: 53 span: 2 span: 20 } location: { path: 4 path: 3 path: 2 path: 1 path: 5 span: 53 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 53 span: 9 span: 15 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 53 span: 18 span: 19 } location: { path: 4 path: 3 path: 2 path: 2 span: 54 span: 2 span: 20 } location: { path: 4 path: 3 path: 2 path: 2 path: 5 span: 54 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 2 path: 1 span: 54 span: 9 span: 15 } location: { path: 4 path: 3 path: 2 path: 2 path: 3 span: 54 span: 18 span: 19 } location: { path: 4 path: 3 path: 2 path: 3 span: 55 span: 2 span: 20 } location: { path: 4 path: 3 path: 2 path: 3 path: 5 span: 55 span: 2 span: 6 } location: { path: 4 path: 3 path: 2 path: 3 path: 1 span: 55 span: 7 span: 15 } location: { path: 4 path: 3 path: 2 path: 3 path: 3 span: 55 span: 18 span: 19 } location: { path: 4 path: 4 span: 58 span: 0 span: 64 span: 1 } location: { path: 4 path: 4 path: 1 span: 58 span: 8 span: 16 } location: { path: 4 path: 4 path: 2 path: 0 span: 59 span: 2 span: 26 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 59 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 59 span: 9 span: 21 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 59 span: 24 span: 25 } location: { path: 4 path: 4 path: 2 path: 1 span: 60 span: 2 span: 16 } location: { path: 4 path: 4 path: 2 path: 1 path: 5 span: 60 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 1 path: 1 span: 60 span: 9 span: 11 } location: { path: 4 path: 4 path: 2 path: 1 path: 3 span: 60 span: 14 span: 15 } location: { path: 4 path: 4 path: 2 path: 2 span: 61 span: 2 span: 17 } location: { path: 4 path: 4 path: 2 path: 2 path: 5 span: 61 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 2 path: 1 span: 61 span: 9 span: 12 } location: { path: 4 path: 4 path: 2 path: 2 path: 3 span: 61 span: 15 span: 16 } location: { path: 4 path: 4 path: 2 path: 3 span: 62 span: 2 span: 25 } location: { path: 4 path: 4 path: 2 path: 3 path: 5 span: 62 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 3 path: 1 span: 62 span: 9 span: 20 } location: { path: 4 path: 4 path: 2 path: 3 path: 3 span: 62 span: 23 span: 24 } location: { path: 4 path: 4 path: 2 path: 4 span: 63 span: 2 span: 42 } location: { path: 4 path: 4 path: 2 path: 4 path: 6 span: 63 span: 2 span: 27 } location: { path: 4 path: 4 path: 2 path: 4 path: 1 span: 63 span: 28 span: 37 } location: { path: 4 path: 4 path: 2 path: 4 path: 3 span: 63 span: 40 span: 41 } location: { path: 4 path: 5 span: 66 span: 0 span: 68 span: 1 } location: { path: 4 path: 5 path: 1 span: 66 span: 8 span: 15 } location: { path: 4 path: 5 path: 2 path: 0 span: 67 span: 2 span: 26 } location: { path: 4 path: 5 path: 2 path: 0 path: 5 span: 67 span: 2 span: 8 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 67 span: 9 span: 21 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 67 span: 24 span: 25 } location: { path: 4 path: 6 span: 70 span: 0 span: 73 span: 1 } location: { path: 4 path: 6 path: 1 span: 70 span: 8 span: 21 } location: { path: 4 path: 6 path: 2 path: 0 span: 71 span: 2 span: 26 } location: { path: 4 path: 6 path: 2 path: 0 path: 5 span: 71 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 71 span: 9 span: 21 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 71 span: 24 span: 25 } location: { path: 4 path: 6 path: 2 path: 1 span: 72 span: 2 span: 21 } location: { path: 4 path: 6 path: 2 path: 1 path: 5 span: 72 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 1 path: 1 span: 72 span: 9 span: 16 } location: { path: 4 path: 6 path: 2 path: 1 path: 3 span: 72 span: 19 span: 20 } location: { path: 4 path: 7 span: 75 span: 0 span: 79 span: 1 } location: { path: 4 path: 7 path: 1 span: 75 span: 8 span: 23 } location: { path: 4 path: 7 path: 2 path: 0 span: 76 span: 2 span: 26 } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 76 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 76 span: 9 span: 21 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 76 span: 24 span: 25 } location: { path: 4 path: 7 path: 2 path: 1 span: 77 span: 2 span: 21 } location: { path: 4 path: 7 path: 2 path: 1 path: 5 span: 77 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 1 path: 1 span: 77 span: 9 span: 16 } location: { path: 4 path: 7 path: 2 path: 1 path: 3 span: 77 span: 19 span: 20 } location: { path: 4 path: 7 path: 2 path: 2 span: 78 span: 2 span: 17 } location: { path: 4 path: 7 path: 2 path: 2 path: 5 span: 78 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 2 path: 1 span: 78 span: 9 span: 12 } location: { path: 4 path: 7 path: 2 path: 2 path: 3 span: 78 span: 15 span: 16 } location: { path: 4 path: 8 span: 81 span: 0 span: 83 span: 1 } location: { path: 4 path: 8 path: 1 span: 81 span: 8 span: 18 } location: { path: 4 path: 8 path: 2 path: 0 span: 82 span: 2 span: 26 } location: { path: 4 path: 8 path: 2 path: 0 path: 5 span: 82 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 82 span: 9 span: 21 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 82 span: 24 span: 25 } location: { path: 4 path: 9 span: 85 span: 0 span: 87 span: 1 } location: { path: 4 path: 9 path: 1 span: 85 span: 8 span: 19 } location: { path: 4 path: 9 path: 2 path: 0 span: 86 span: 2 span: 26 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 86 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 86 span: 9 span: 21 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 86 span: 24 span: 25 } location: { path: 4 path: 10 span: 89 span: 0 span: 92 span: 1 } location: { path: 4 path: 10 path: 1 span: 89 span: 8 span: 24 } location: { path: 4 path: 10 path: 2 path: 0 span: 90 span: 2 span: 26 } location: { path: 4 path: 10 path: 2 path: 0 path: 5 span: 90 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 90 span: 9 span: 21 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 90 span: 24 span: 25 } location: { path: 4 path: 10 path: 2 path: 1 span: 91 span: 2 span: 24 } location: { path: 4 path: 10 path: 2 path: 1 path: 5 span: 91 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 1 path: 1 span: 91 span: 9 span: 19 } location: { path: 4 path: 10 path: 2 path: 1 path: 3 span: 91 span: 22 span: 23 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "runtime/bootstrap/v1/bootstrap.proto" package: "containerd.runtime.bootstrap.v1" dependency: "google/protobuf/any.proto" message_type: { name: "BootstrapParams" field: { name: "instance_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "instanceId" } field: { name: "namespace" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "namespace" } field: { name: "log_level" number: 3 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".containerd.runtime.bootstrap.v1.LogLevel" json_name: "logLevel" } field: { name: "containerd_version" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerdVersion" } field: { name: "containerd_ttrpc_address" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerdTtrpcAddress" } field: { name: "containerd_grpc_address" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerdGrpcAddress" } field: { name: "containerd_binary" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerdBinary" } field: { name: "extensions" number: 8 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.runtime.bootstrap.v1.Extension" json_name: "extensions" } field: { name: "socket_dir" number: 9 label: LABEL_OPTIONAL type: TYPE_STRING oneof_index: 0 json_name: "socketDir" proto3_optional: true } oneof_decl: { name: "_socket_dir" } } message_type: { name: "Extension" field: { name: "value" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "value" } } message_type: { name: "BootstrapResult" field: { name: "version" number: 1 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "version" } field: { name: "address" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "address" } field: { name: "protocol" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "protocol" } field: { name: "capabilities" number: 4 label: LABEL_REPEATED type: TYPE_ENUM type_name: ".containerd.runtime.bootstrap.v1.Capability" json_name: "capabilities" } field: { name: "metadata" number: 5 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.runtime.bootstrap.v1.BootstrapResult.MetadataEntry" json_name: "metadata" } nested_type: { name: "MetadataEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } enum_type: { name: "LogLevel" value: { name: "LOG_LEVEL_INFO" number: 0 } value: { name: "LOG_LEVEL_TRACE" number: -8 } value: { name: "LOG_LEVEL_DEBUG" number: -4 } value: { name: "LOG_LEVEL_WARN" number: 4 } value: { name: "LOG_LEVEL_ERROR" number: 8 } value: { name: "LOG_LEVEL_FATAL" number: 10 } value: { name: "LOG_LEVEL_PANIC" number: 12 } } enum_type: { name: "Capability" value: { name: "CAPABILITY_UNSPECIFIED" number: 0 } } options: { go_package: "github.com/containerd/containerd/api/runtime/bootstrap/v1;bootstrap" } source_code_info: { location: { span: 33 span: 0 span: 129 span: 1 } location: { path: 12 span: 33 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" leading_detached_comments: " Bootstrap Protocol\n\n This protocol defines the interface between containerd and shims at startup.\n It replaces the previous scattered configuration mechanisms (CLI args, env vars,\n stdin JSON, spec.json annotations) with a single, versioned, extensible protocol.\n\n Flow:\n 1. containerd spawns the shim process\n 2. containerd writes BootstrapParams as JSON to shim's stdin\n 3. shim initializes and writes BootstrapResult as JSON to stdout\n 4. containerd connects to the address provided in BootstrapResult\n\n This design enables:\n - Forward/backward compatibility via version field\n - Typed extensibility via google.protobuf.Any and Extension\n - Clear capability negotiation between containerd and shims\n" } location: { path: 2 span: 35 span: 0 span: 40 } location: { path: 3 path: 0 span: 37 span: 0 span: 35 } location: { path: 8 span: 39 span: 0 span: 90 } location: { path: 8 path: 11 span: 39 span: 0 span: 90 } location: { path: 4 path: 0 span: 42 span: 0 span: 78 span: 1 leading_comments: " BootstrapParams contains all configuration passed from containerd to shim at startup.\n" } location: { path: 4 path: 0 path: 1 span: 42 span: 8 span: 23 } location: { path: 4 path: 0 path: 2 path: 0 span: 44 span: 2 span: 25 leading_comments: " Container/sandbox ID\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 44 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 44 span: 9 span: 20 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 44 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 1 span: 47 span: 2 span: 23 leading_comments: " Namespace for the container\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 47 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 47 span: 9 span: 18 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 47 span: 21 span: 22 } location: { path: 4 path: 0 path: 2 path: 2 span: 53 span: 2 span: 25 leading_comments: " Requested shim log level.\n INFO = 0, more critical levels are positive, and more verbose\n levels are negative. This is an open enum; shims should treat\n unrecognized values by mapping to the nearest known level.\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 53 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 53 span: 11 span: 20 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 53 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 3 span: 56 span: 2 span: 32 leading_comments: " containerd daemon version that is launching this shim.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 56 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 56 span: 9 span: 27 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 56 span: 30 span: 31 } location: { path: 4 path: 0 path: 2 path: 4 span: 59 span: 2 span: 38 leading_comments: " Containerd's TTRPC API address (e.g., \"unix:///run/containerd/containerd.sock.ttrpc\")\n" } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 59 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 59 span: 9 span: 33 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 59 span: 36 span: 37 } location: { path: 4 path: 0 path: 2 path: 5 span: 62 span: 2 span: 37 leading_comments: " Containerd's gRPC API address (e.g., \"unix:///run/containerd/containerd.sock\")\n" } location: { path: 4 path: 0 path: 2 path: 5 path: 5 span: 62 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 62 span: 9 span: 32 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 62 span: 35 span: 36 } location: { path: 4 path: 0 path: 2 path: 6 span: 65 span: 2 span: 31 leading_comments: " Path to containerd binary for event publishing\n" } location: { path: 4 path: 0 path: 2 path: 6 path: 5 span: 65 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 65 span: 9 span: 26 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 65 span: 29 span: 30 } location: { path: 4 path: 0 path: 2 path: 7 span: 70 span: 2 span: 36 leading_comments: " Extensible configuration sections for new features\n Each section can contain arbitrary structured data identified by type URL\n Examples: CRI config, NRI config, sandbox config, etc.\n" } location: { path: 4 path: 0 path: 2 path: 7 path: 4 span: 70 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 7 path: 6 span: 70 span: 11 span: 20 } location: { path: 4 path: 0 path: 2 path: 7 path: 1 span: 70 span: 21 span: 31 } location: { path: 4 path: 0 path: 2 path: 7 path: 3 span: 70 span: 34 span: 35 } location: { path: 4 path: 0 path: 2 path: 8 span: 77 span: 2 span: 33 leading_comments: " Optional directory for the shim to place its unix socket.\n If empty, the shim defaults to a short, well-known path\n (e.g., /run/containerd/s). The path must be kept short because\n the socket filename is a 64-character SHA256 hash and unix\n socket paths are limited to 104-108 bytes depending on platform.\n" } location: { path: 4 path: 0 path: 2 path: 8 path: 4 span: 77 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 8 path: 5 span: 77 span: 11 span: 17 } location: { path: 4 path: 0 path: 2 path: 8 path: 1 span: 77 span: 18 span: 28 } location: { path: 4 path: 0 path: 2 path: 8 path: 3 span: 77 span: 31 span: 32 } location: { path: 4 path: 1 span: 82 span: 0 span: 89 span: 1 leading_comments: " Extension provides extensibility for new configuration types\n without changing the core BootstrapParams protocol\n" } location: { path: 4 path: 1 path: 1 span: 82 span: 8 span: 17 } location: { path: 4 path: 1 path: 2 path: 0 span: 88 span: 2 span: 32 leading_comments: " Configuration data with embedded type URL\n Examples of type URLs:\n - \"containerd.io/cri.v1.PodSandboxConfig\"\n - \"containerd.io/nri.v1.PluginConfig\"\n - \"containerd.io/sandbox.v1.SandboxConfig\"\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 6 span: 88 span: 2 span: 21 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 88 span: 22 span: 27 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 88 span: 30 span: 31 } location: { path: 4 path: 2 span: 92 span: 0 span: 110 span: 1 leading_comments: " BootstrapResult is returned by shim via stdout after successful startup\n" } location: { path: 4 path: 2 path: 1 span: 92 span: 8 span: 23 } location: { path: 4 path: 2 path: 2 path: 0 span: 94 span: 2 span: 20 leading_comments: " Version of shim parameters (expected 2 for shim v2)\n" } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 94 span: 2 span: 7 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 94 span: 8 span: 15 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 94 span: 18 span: 19 } location: { path: 4 path: 2 path: 2 path: 1 span: 98 span: 2 span: 21 leading_comments: " Address where shim is listening (e.g., \"unix:///run/containerd/shim.sock\")\n Containerd will connect to this address for task operations\n" } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 98 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 98 span: 9 span: 16 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 98 span: 19 span: 20 } location: { path: 4 path: 2 path: 2 path: 2 span: 101 span: 2 span: 22 leading_comments: " Protocol used by shim: \"ttrpc\" or \"grpc\"\n" } location: { path: 4 path: 2 path: 2 path: 2 path: 5 span: 101 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 101 span: 9 span: 17 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 101 span: 20 span: 21 } location: { path: 4 path: 2 path: 2 path: 3 span: 106 span: 2 span: 39 leading_comments: " Optional: Capabilities supported by this shim instance.\n Reserved for future use to allow optional capability negotiation\n between the daemon and shim.\n" } location: { path: 4 path: 2 path: 2 path: 3 path: 4 span: 106 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 3 path: 6 span: 106 span: 11 span: 21 } location: { path: 4 path: 2 path: 2 path: 3 path: 1 span: 106 span: 22 span: 34 } location: { path: 4 path: 2 path: 2 path: 3 path: 3 span: 106 span: 37 span: 38 } location: { path: 4 path: 2 path: 2 path: 4 span: 109 span: 2 span: 35 leading_comments: " Optional: Additional metadata from shim\n" } location: { path: 4 path: 2 path: 2 path: 4 path: 6 span: 109 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 4 path: 1 span: 109 span: 22 span: 30 } location: { path: 4 path: 2 path: 2 path: 4 path: 3 span: 109 span: 33 span: 34 } location: { path: 5 path: 0 span: 115 span: 0 span: 123 span: 1 leading_comments: " LogLevel defines log verbosity. INFO = 0, more critical levels are\n positive, and more verbose levels are negative. This is an open enum;\n unknown numeric values are preserved on the wire.\n" } location: { path: 5 path: 0 path: 1 span: 115 span: 5 span: 13 } location: { path: 5 path: 0 path: 2 path: 0 span: 116 span: 2 span: 22 } location: { path: 5 path: 0 path: 2 path: 0 path: 1 span: 116 span: 2 span: 16 } location: { path: 5 path: 0 path: 2 path: 0 path: 2 span: 116 span: 20 span: 21 } location: { path: 5 path: 0 path: 2 path: 1 span: 117 span: 2 span: 23 } location: { path: 5 path: 0 path: 2 path: 1 path: 1 span: 117 span: 2 span: 17 } location: { path: 5 path: 0 path: 2 path: 1 path: 2 span: 117 span: 20 span: 22 } location: { path: 5 path: 0 path: 2 path: 2 span: 118 span: 2 span: 23 } location: { path: 5 path: 0 path: 2 path: 2 path: 1 span: 118 span: 2 span: 17 } location: { path: 5 path: 0 path: 2 path: 2 path: 2 span: 118 span: 20 span: 22 } location: { path: 5 path: 0 path: 2 path: 3 span: 119 span: 2 span: 22 } location: { path: 5 path: 0 path: 2 path: 3 path: 1 span: 119 span: 2 span: 16 } location: { path: 5 path: 0 path: 2 path: 3 path: 2 span: 119 span: 20 span: 21 } location: { path: 5 path: 0 path: 2 path: 4 span: 120 span: 2 span: 22 } location: { path: 5 path: 0 path: 2 path: 4 path: 1 span: 120 span: 2 span: 17 } location: { path: 5 path: 0 path: 2 path: 4 path: 2 span: 120 span: 20 span: 21 } location: { path: 5 path: 0 path: 2 path: 5 span: 121 span: 2 span: 23 } location: { path: 5 path: 0 path: 2 path: 5 path: 1 span: 121 span: 2 span: 17 } location: { path: 5 path: 0 path: 2 path: 5 path: 2 span: 121 span: 20 span: 22 } location: { path: 5 path: 0 path: 2 path: 6 span: 122 span: 2 span: 23 } location: { path: 5 path: 0 path: 2 path: 6 path: 1 span: 122 span: 2 span: 17 } location: { path: 5 path: 0 path: 2 path: 6 path: 2 span: 122 span: 20 span: 22 } location: { path: 5 path: 1 span: 127 span: 0 span: 129 span: 1 leading_comments: " Capability defines optional features that can be negotiated between\n containerd and shims.\n" } location: { path: 5 path: 1 path: 1 span: 127 span: 5 span: 15 } location: { path: 5 path: 1 path: 2 path: 0 span: 128 span: 2 span: 29 } location: { path: 5 path: 1 path: 2 path: 0 path: 1 span: 128 span: 2 span: 24 } location: { path: 5 path: 1 path: 2 path: 0 path: 2 span: 128 span: 27 span: 28 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/metrics.proto" package: "containerd.types" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/timestamp.proto" message_type: { name: "Metric" field: { name: "timestamp" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "timestamp" } field: { name: "id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "data" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "data" } } options: { go_package: "github.com/containerd/containerd/api/types;types" } source_code_info: { location: { span: 16 span: 0 span: 29 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 25 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 41 } location: { path: 8 span: 23 span: 0 span: 71 } location: { path: 8 path: 11 span: 23 span: 0 span: 71 } location: { path: 4 path: 0 span: 25 span: 0 span: 29 span: 1 } location: { path: 4 path: 0 path: 1 span: 25 span: 8 span: 14 } location: { path: 4 path: 0 path: 2 path: 0 span: 26 span: 2 span: 42 } location: { path: 4 path: 0 path: 2 path: 0 path: 6 span: 26 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 26 span: 28 span: 37 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 26 span: 40 span: 41 } location: { path: 4 path: 0 path: 2 path: 1 span: 27 span: 2 span: 16 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 27 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 27 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 27 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 2 span: 28 span: 2 span: 31 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 28 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 28 span: 22 span: 26 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 28 span: 29 span: 30 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/platform.proto" package: "containerd.types" message_type: { name: "Platform" field: { name: "os" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "os" } field: { name: "architecture" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "architecture" } field: { name: "variant" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "variant" } field: { name: "os_version" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "osVersion" } field: { name: "os_features" number: 5 label: LABEL_REPEATED type: TYPE_STRING json_name: "osFeatures" } } options: { go_package: "github.com/containerd/containerd/api/types;types" } source_code_info: { location: { span: 16 span: 0 span: 30 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 25 } location: { path: 8 span: 20 span: 0 span: 71 } location: { path: 8 path: 11 span: 20 span: 0 span: 71 } location: { path: 4 path: 0 span: 24 span: 0 span: 30 span: 1 leading_comments: " Platform follows the structure of the OCI platform specification, from\n descriptors.\n" } location: { path: 4 path: 0 path: 1 span: 24 span: 8 span: 16 } location: { path: 4 path: 0 path: 2 path: 0 span: 25 span: 2 span: 16 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 25 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 25 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 25 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 span: 26 span: 2 span: 26 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 26 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 26 span: 9 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 26 span: 24 span: 25 } location: { path: 4 path: 0 path: 2 path: 2 span: 27 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 27 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 27 span: 9 span: 16 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 27 span: 19 span: 20 } location: { path: 4 path: 0 path: 2 path: 3 span: 28 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 28 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 28 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 28 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 4 span: 29 span: 2 span: 34 } location: { path: 4 path: 0 path: 2 path: 4 path: 4 span: 29 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 29 span: 11 span: 17 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 29 span: 18 span: 29 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 29 span: 32 span: 33 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "runtime/sandbox/v1/sandbox.proto" package: "containerd.runtime.sandbox.v1" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/timestamp.proto" dependency: "types/metrics.proto" dependency: "types/mount.proto" dependency: "types/platform.proto" message_type: { name: "CreateSandboxRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "bundle_path" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "bundlePath" } field: { name: "rootfs" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "rootfs" } field: { name: "options" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } field: { name: "netns_path" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "netnsPath" } field: { name: "annotations" number: 6 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.runtime.sandbox.v1.CreateSandboxRequest.AnnotationsEntry" json_name: "annotations" } nested_type: { name: "AnnotationsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "CreateSandboxResponse" } message_type: { name: "StartSandboxRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "StartSandboxResponse" field: { name: "pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "created_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "spec" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "spec" } } message_type: { name: "PlatformRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "PlatformResponse" field: { name: "platform" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Platform" json_name: "platform" } } message_type: { name: "StopSandboxRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "timeout_secs" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "timeoutSecs" } } message_type: { name: "StopSandboxResponse" } message_type: { name: "UpdateSandboxRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "resources" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "resources" } field: { name: "annotations" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry" json_name: "annotations" } nested_type: { name: "AnnotationsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "WaitSandboxRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "WaitSandboxResponse" field: { name: "exit_status" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } message_type: { name: "UpdateSandboxResponse" } message_type: { name: "SandboxStatusRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "verbose" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "verbose" } } message_type: { name: "SandboxStatusResponse" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "state" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "state" } field: { name: "info" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry" json_name: "info" } field: { name: "created_at" number: 5 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "exited_at" number: 6 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } field: { name: "extra" number: 7 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "extra" } nested_type: { name: "InfoEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "PingRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "PingResponse" } message_type: { name: "ShutdownSandboxRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "ShutdownSandboxResponse" } message_type: { name: "SandboxMetricsRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "SandboxMetricsResponse" field: { name: "metrics" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Metric" json_name: "metrics" } } service: { name: "Sandbox" method: { name: "CreateSandbox" input_type: ".containerd.runtime.sandbox.v1.CreateSandboxRequest" output_type: ".containerd.runtime.sandbox.v1.CreateSandboxResponse" } method: { name: "StartSandbox" input_type: ".containerd.runtime.sandbox.v1.StartSandboxRequest" output_type: ".containerd.runtime.sandbox.v1.StartSandboxResponse" } method: { name: "Platform" input_type: ".containerd.runtime.sandbox.v1.PlatformRequest" output_type: ".containerd.runtime.sandbox.v1.PlatformResponse" } method: { name: "StopSandbox" input_type: ".containerd.runtime.sandbox.v1.StopSandboxRequest" output_type: ".containerd.runtime.sandbox.v1.StopSandboxResponse" } method: { name: "WaitSandbox" input_type: ".containerd.runtime.sandbox.v1.WaitSandboxRequest" output_type: ".containerd.runtime.sandbox.v1.WaitSandboxResponse" } method: { name: "SandboxStatus" input_type: ".containerd.runtime.sandbox.v1.SandboxStatusRequest" output_type: ".containerd.runtime.sandbox.v1.SandboxStatusResponse" } method: { name: "PingSandbox" input_type: ".containerd.runtime.sandbox.v1.PingRequest" output_type: ".containerd.runtime.sandbox.v1.PingResponse" } method: { name: "ShutdownSandbox" input_type: ".containerd.runtime.sandbox.v1.ShutdownSandboxRequest" output_type: ".containerd.runtime.sandbox.v1.ShutdownSandboxResponse" } method: { name: "SandboxMetrics" input_type: ".containerd.runtime.sandbox.v1.SandboxMetricsRequest" output_type: ".containerd.runtime.sandbox.v1.SandboxMetricsResponse" } } options: { go_package: "github.com/containerd/containerd/api/runtime/sandbox/v1;sandbox" } source_code_info: { location: { span: 16 span: 0 span: 148 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 38 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 41 } location: { path: 3 path: 2 span: 22 span: 0 span: 29 } location: { path: 3 path: 3 span: 23 span: 0 span: 27 } location: { path: 3 path: 4 span: 24 span: 0 span: 30 } location: { path: 8 span: 26 span: 0 span: 86 } location: { path: 8 path: 11 span: 26 span: 0 span: 86 } location: { path: 6 path: 0 span: 31 span: 0 span: 60 span: 1 leading_comments: " Sandbox is an optional interface that shim may implement to support sandboxes environments.\n A typical example of sandbox is microVM or pause container - an entity that groups containers and/or\n holds resources relevant for this group.\n" } location: { path: 6 path: 0 path: 1 span: 31 span: 8 span: 15 } location: { path: 6 path: 0 path: 2 path: 0 span: 34 span: 2 span: 74 leading_comments: " CreateSandbox will be called right after sandbox shim instance launched.\n It is a good place to initialize sandbox environment.\n" } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 34 span: 6 span: 19 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 34 span: 20 span: 40 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 34 span: 51 span: 72 } location: { path: 6 path: 0 path: 2 path: 1 span: 37 span: 2 span: 71 leading_comments: " StartSandbox will start a previously created sandbox.\n" } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 37 span: 6 span: 18 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 37 span: 19 span: 38 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 37 span: 49 span: 69 } location: { path: 6 path: 0 path: 2 path: 2 span: 41 span: 2 span: 59 leading_comments: " Platform queries the platform the sandbox is going to run containers on.\n containerd will use this to generate a proper OCI spec.\n" } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 41 span: 6 span: 14 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 41 span: 15 span: 30 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 41 span: 41 span: 57 } location: { path: 6 path: 0 path: 2 path: 3 span: 44 span: 2 span: 68 leading_comments: " StopSandbox will stop existing sandbox instance\n" } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 44 span: 6 span: 17 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 44 span: 18 span: 36 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 44 span: 47 span: 66 } location: { path: 6 path: 0 path: 2 path: 4 span: 47 span: 2 span: 68 leading_comments: " WaitSandbox blocks until sandbox exits.\n" } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 47 span: 6 span: 17 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 47 span: 18 span: 36 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 47 span: 47 span: 66 } location: { path: 6 path: 0 path: 2 path: 5 span: 50 span: 2 span: 74 leading_comments: " SandboxStatus will return current status of the running sandbox instance\n" } location: { path: 6 path: 0 path: 2 path: 5 path: 1 span: 50 span: 6 span: 19 } location: { path: 6 path: 0 path: 2 path: 5 path: 2 span: 50 span: 20 span: 40 } location: { path: 6 path: 0 path: 2 path: 5 path: 3 span: 50 span: 51 span: 72 } location: { path: 6 path: 0 path: 2 path: 6 span: 53 span: 2 span: 54 leading_comments: " PingSandbox is a lightweight API call to check whether sandbox alive.\n" } location: { path: 6 path: 0 path: 2 path: 6 path: 1 span: 53 span: 6 span: 17 } location: { path: 6 path: 0 path: 2 path: 6 path: 2 span: 53 span: 18 span: 29 } location: { path: 6 path: 0 path: 2 path: 6 path: 3 span: 53 span: 40 span: 52 } location: { path: 6 path: 0 path: 2 path: 7 span: 56 span: 2 span: 80 leading_comments: " ShutdownSandbox must shutdown shim instance.\n" } location: { path: 6 path: 0 path: 2 path: 7 path: 1 span: 56 span: 6 span: 21 } location: { path: 6 path: 0 path: 2 path: 7 path: 2 span: 56 span: 22 span: 44 } location: { path: 6 path: 0 path: 2 path: 7 path: 3 span: 56 span: 55 span: 78 } location: { path: 6 path: 0 path: 2 path: 8 span: 59 span: 2 span: 77 leading_comments: " SandboxMetrics retrieves metrics about a sandbox instance.\n" } location: { path: 6 path: 0 path: 2 path: 8 path: 1 span: 59 span: 6 span: 20 } location: { path: 6 path: 0 path: 2 path: 8 path: 2 span: 59 span: 21 span: 42 } location: { path: 6 path: 0 path: 2 path: 8 path: 3 span: 59 span: 53 span: 75 } location: { path: 4 path: 0 span: 62 span: 0 span: 69 span: 1 } location: { path: 4 path: 0 path: 1 span: 62 span: 8 span: 28 } location: { path: 4 path: 0 path: 2 path: 0 span: 63 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 63 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 63 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 63 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 1 span: 64 span: 2 span: 25 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 64 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 64 span: 9 span: 20 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 64 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 2 span: 65 span: 2 span: 45 } location: { path: 4 path: 0 path: 2 path: 2 path: 4 span: 65 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 65 span: 11 span: 33 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 65 span: 34 span: 40 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 65 span: 43 span: 44 } location: { path: 4 path: 0 path: 2 path: 3 span: 66 span: 2 span: 34 } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 66 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 66 span: 22 span: 29 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 66 span: 32 span: 33 } location: { path: 4 path: 0 path: 2 path: 4 span: 67 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 67 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 67 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 67 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 5 span: 68 span: 2 span: 38 } location: { path: 4 path: 0 path: 2 path: 5 path: 6 span: 68 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 68 span: 22 span: 33 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 68 span: 36 span: 37 } location: { path: 4 path: 1 span: 71 span: 0 span: 32 } location: { path: 4 path: 1 path: 1 span: 71 span: 8 span: 29 } location: { path: 4 path: 2 span: 73 span: 0 span: 75 span: 1 } location: { path: 4 path: 2 path: 1 span: 73 span: 8 span: 27 } location: { path: 4 path: 2 path: 2 path: 0 span: 74 span: 2 span: 24 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 74 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 74 span: 9 span: 19 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 74 span: 22 span: 23 } location: { path: 4 path: 3 span: 77 span: 0 span: 81 span: 1 } location: { path: 4 path: 3 path: 1 span: 77 span: 8 span: 28 } location: { path: 4 path: 3 path: 2 path: 0 span: 78 span: 2 span: 17 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 78 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 78 span: 9 span: 12 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 78 span: 15 span: 16 } location: { path: 4 path: 3 path: 2 path: 1 span: 79 span: 2 span: 43 } location: { path: 4 path: 3 path: 2 path: 1 path: 6 span: 79 span: 2 span: 27 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 79 span: 28 span: 38 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 79 span: 41 span: 42 } location: { path: 4 path: 3 path: 2 path: 2 span: 80 span: 2 span: 31 } location: { path: 4 path: 3 path: 2 path: 2 path: 6 span: 80 span: 2 span: 21 } location: { path: 4 path: 3 path: 2 path: 2 path: 1 span: 80 span: 22 span: 26 } location: { path: 4 path: 3 path: 2 path: 2 path: 3 span: 80 span: 29 span: 30 } location: { path: 4 path: 4 span: 83 span: 0 span: 85 span: 1 } location: { path: 4 path: 4 path: 1 span: 83 span: 8 span: 23 } location: { path: 4 path: 4 path: 2 path: 0 span: 84 span: 2 span: 24 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 84 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 84 span: 9 span: 19 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 84 span: 22 span: 23 } location: { path: 4 path: 5 span: 87 span: 0 span: 89 span: 1 } location: { path: 4 path: 5 path: 1 span: 87 span: 8 span: 24 } location: { path: 4 path: 5 path: 2 path: 0 span: 88 span: 2 span: 41 } location: { path: 4 path: 5 path: 2 path: 0 path: 6 span: 88 span: 2 span: 27 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 88 span: 28 span: 36 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 88 span: 39 span: 40 } location: { path: 4 path: 6 span: 91 span: 0 span: 94 span: 1 } location: { path: 4 path: 6 path: 1 span: 91 span: 8 span: 26 } location: { path: 4 path: 6 path: 2 path: 0 span: 92 span: 2 span: 24 } location: { path: 4 path: 6 path: 2 path: 0 path: 5 span: 92 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 92 span: 9 span: 19 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 92 span: 22 span: 23 } location: { path: 4 path: 6 path: 2 path: 1 span: 93 span: 2 span: 26 } location: { path: 4 path: 6 path: 2 path: 1 path: 5 span: 93 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 1 path: 1 span: 93 span: 9 span: 21 } location: { path: 4 path: 6 path: 2 path: 1 path: 3 span: 93 span: 24 span: 25 } location: { path: 4 path: 7 span: 96 span: 0 span: 30 } location: { path: 4 path: 7 path: 1 span: 96 span: 8 span: 27 } location: { path: 4 path: 8 span: 98 span: 0 span: 102 span: 1 } location: { path: 4 path: 8 path: 1 span: 98 span: 8 span: 28 } location: { path: 4 path: 8 path: 2 path: 0 span: 99 span: 2 span: 24 } location: { path: 4 path: 8 path: 2 path: 0 path: 5 span: 99 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 99 span: 9 span: 19 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 99 span: 22 span: 23 } location: { path: 4 path: 8 path: 2 path: 1 span: 100 span: 2 span: 36 } location: { path: 4 path: 8 path: 2 path: 1 path: 6 span: 100 span: 2 span: 21 } location: { path: 4 path: 8 path: 2 path: 1 path: 1 span: 100 span: 22 span: 31 } location: { path: 4 path: 8 path: 2 path: 1 path: 3 span: 100 span: 34 span: 35 } location: { path: 4 path: 8 path: 2 path: 2 span: 101 span: 2 span: 38 } location: { path: 4 path: 8 path: 2 path: 2 path: 6 span: 101 span: 2 span: 21 } location: { path: 4 path: 8 path: 2 path: 2 path: 1 span: 101 span: 22 span: 33 } location: { path: 4 path: 8 path: 2 path: 2 path: 3 span: 101 span: 36 span: 37 } location: { path: 4 path: 9 span: 104 span: 0 span: 106 span: 1 } location: { path: 4 path: 9 path: 1 span: 104 span: 8 span: 26 } location: { path: 4 path: 9 path: 2 path: 0 span: 105 span: 2 span: 24 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 105 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 105 span: 9 span: 19 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 105 span: 22 span: 23 } location: { path: 4 path: 10 span: 108 span: 0 span: 111 span: 1 } location: { path: 4 path: 10 path: 1 span: 108 span: 8 span: 27 } location: { path: 4 path: 10 path: 2 path: 0 span: 109 span: 2 span: 25 } location: { path: 4 path: 10 path: 2 path: 0 path: 5 span: 109 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 109 span: 9 span: 20 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 109 span: 23 span: 24 } location: { path: 4 path: 10 path: 2 path: 1 span: 110 span: 2 span: 42 } location: { path: 4 path: 10 path: 2 path: 1 path: 6 span: 110 span: 2 span: 27 } location: { path: 4 path: 10 path: 2 path: 1 path: 1 span: 110 span: 28 span: 37 } location: { path: 4 path: 10 path: 2 path: 1 path: 3 span: 110 span: 40 span: 41 } location: { path: 4 path: 11 span: 113 span: 0 span: 32 } location: { path: 4 path: 11 path: 1 span: 113 span: 8 span: 29 } location: { path: 4 path: 12 span: 115 span: 0 span: 118 span: 1 } location: { path: 4 path: 12 path: 1 span: 115 span: 8 span: 28 } location: { path: 4 path: 12 path: 2 path: 0 span: 116 span: 2 span: 24 } location: { path: 4 path: 12 path: 2 path: 0 path: 5 span: 116 span: 2 span: 8 } location: { path: 4 path: 12 path: 2 path: 0 path: 1 span: 116 span: 9 span: 19 } location: { path: 4 path: 12 path: 2 path: 0 path: 3 span: 116 span: 22 span: 23 } location: { path: 4 path: 12 path: 2 path: 1 span: 117 span: 2 span: 19 } location: { path: 4 path: 12 path: 2 path: 1 path: 5 span: 117 span: 2 span: 6 } location: { path: 4 path: 12 path: 2 path: 1 path: 1 span: 117 span: 7 span: 14 } location: { path: 4 path: 12 path: 2 path: 1 path: 3 span: 117 span: 17 span: 18 } location: { path: 4 path: 13 span: 120 span: 0 span: 128 span: 1 } location: { path: 4 path: 13 path: 1 span: 120 span: 8 span: 29 } location: { path: 4 path: 13 path: 2 path: 0 span: 121 span: 2 span: 24 } location: { path: 4 path: 13 path: 2 path: 0 path: 5 span: 121 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 0 path: 1 span: 121 span: 9 span: 19 } location: { path: 4 path: 13 path: 2 path: 0 path: 3 span: 121 span: 22 span: 23 } location: { path: 4 path: 13 path: 2 path: 1 span: 122 span: 2 span: 17 } location: { path: 4 path: 13 path: 2 path: 1 path: 5 span: 122 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 1 path: 1 span: 122 span: 9 span: 12 } location: { path: 4 path: 13 path: 2 path: 1 path: 3 span: 122 span: 15 span: 16 } location: { path: 4 path: 13 path: 2 path: 2 span: 123 span: 2 span: 19 } location: { path: 4 path: 13 path: 2 path: 2 path: 5 span: 123 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 2 path: 1 span: 123 span: 9 span: 14 } location: { path: 4 path: 13 path: 2 path: 2 path: 3 span: 123 span: 17 span: 18 } location: { path: 4 path: 13 path: 2 path: 3 span: 124 span: 2 span: 31 } location: { path: 4 path: 13 path: 2 path: 3 path: 6 span: 124 span: 2 span: 21 } location: { path: 4 path: 13 path: 2 path: 3 path: 1 span: 124 span: 22 span: 26 } location: { path: 4 path: 13 path: 2 path: 3 path: 3 span: 124 span: 29 span: 30 } location: { path: 4 path: 13 path: 2 path: 4 span: 125 span: 2 span: 43 } location: { path: 4 path: 13 path: 2 path: 4 path: 6 span: 125 span: 2 span: 27 } location: { path: 4 path: 13 path: 2 path: 4 path: 1 span: 125 span: 28 span: 38 } location: { path: 4 path: 13 path: 2 path: 4 path: 3 span: 125 span: 41 span: 42 } location: { path: 4 path: 13 path: 2 path: 5 span: 126 span: 2 span: 42 } location: { path: 4 path: 13 path: 2 path: 5 path: 6 span: 126 span: 2 span: 27 } location: { path: 4 path: 13 path: 2 path: 5 path: 1 span: 126 span: 28 span: 37 } location: { path: 4 path: 13 path: 2 path: 5 path: 3 span: 126 span: 40 span: 41 } location: { path: 4 path: 13 path: 2 path: 6 span: 127 span: 2 span: 32 } location: { path: 4 path: 13 path: 2 path: 6 path: 6 span: 127 span: 2 span: 21 } location: { path: 4 path: 13 path: 2 path: 6 path: 1 span: 127 span: 22 span: 27 } location: { path: 4 path: 13 path: 2 path: 6 path: 3 span: 127 span: 30 span: 31 } location: { path: 4 path: 14 span: 130 span: 0 span: 132 span: 1 } location: { path: 4 path: 14 path: 1 span: 130 span: 8 span: 19 } location: { path: 4 path: 14 path: 2 path: 0 span: 131 span: 2 span: 24 } location: { path: 4 path: 14 path: 2 path: 0 path: 5 span: 131 span: 2 span: 8 } location: { path: 4 path: 14 path: 2 path: 0 path: 1 span: 131 span: 9 span: 19 } location: { path: 4 path: 14 path: 2 path: 0 path: 3 span: 131 span: 22 span: 23 } location: { path: 4 path: 15 span: 134 span: 0 span: 23 } location: { path: 4 path: 15 path: 1 span: 134 span: 8 span: 20 } location: { path: 4 path: 16 span: 136 span: 0 span: 138 span: 1 } location: { path: 4 path: 16 path: 1 span: 136 span: 8 span: 30 } location: { path: 4 path: 16 path: 2 path: 0 span: 137 span: 2 span: 24 } location: { path: 4 path: 16 path: 2 path: 0 path: 5 span: 137 span: 2 span: 8 } location: { path: 4 path: 16 path: 2 path: 0 path: 1 span: 137 span: 9 span: 19 } location: { path: 4 path: 16 path: 2 path: 0 path: 3 span: 137 span: 22 span: 23 } location: { path: 4 path: 17 span: 140 span: 0 span: 34 } location: { path: 4 path: 17 path: 1 span: 140 span: 8 span: 31 } location: { path: 4 path: 18 span: 142 span: 0 span: 144 span: 1 } location: { path: 4 path: 18 path: 1 span: 142 span: 8 span: 29 } location: { path: 4 path: 18 path: 2 path: 0 span: 143 span: 2 span: 24 } location: { path: 4 path: 18 path: 2 path: 0 path: 5 span: 143 span: 2 span: 8 } location: { path: 4 path: 18 path: 2 path: 0 path: 1 span: 143 span: 9 span: 19 } location: { path: 4 path: 18 path: 2 path: 0 path: 3 span: 143 span: 22 span: 23 } location: { path: 4 path: 19 span: 146 span: 0 span: 148 span: 1 } location: { path: 4 path: 19 path: 1 span: 146 span: 8 span: 30 } location: { path: 4 path: 19 path: 2 path: 0 span: 147 span: 2 span: 38 } location: { path: 4 path: 19 path: 2 path: 0 path: 6 span: 147 span: 2 span: 25 } location: { path: 4 path: 19 path: 2 path: 0 path: 1 span: 147 span: 26 span: 33 } location: { path: 4 path: 19 path: 2 path: 0 path: 3 span: 147 span: 36 span: 37 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "google/protobuf/empty.proto" package: "google.protobuf" message_type: { name: "Empty" } options: { java_package: "com.google.protobuf" java_outer_classname: "EmptyProto" java_multiple_files: true go_package: "google.golang.org/protobuf/types/known/emptypb" cc_enable_arenas: true objc_class_prefix: "GPB" csharp_namespace: "Google.Protobuf.WellKnownTypes" } source_code_info: { location: { span: 30 span: 0 span: 50 span: 16 } location: { path: 12 span: 30 span: 0 span: 18 leading_detached_comments: " 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" } location: { path: 2 span: 32 span: 0 span: 24 } location: { path: 8 span: 34 span: 0 span: 69 } location: { path: 8 path: 11 span: 34 span: 0 span: 69 } location: { path: 8 span: 35 span: 0 span: 44 } location: { path: 8 path: 1 span: 35 span: 0 span: 44 } location: { path: 8 span: 36 span: 0 span: 43 } location: { path: 8 path: 8 span: 36 span: 0 span: 43 } location: { path: 8 span: 37 span: 0 span: 34 } location: { path: 8 path: 10 span: 37 span: 0 span: 34 } location: { path: 8 span: 38 span: 0 span: 33 } location: { path: 8 path: 36 span: 38 span: 0 span: 33 } location: { path: 8 span: 39 span: 0 span: 59 } location: { path: 8 path: 37 span: 39 span: 0 span: 59 } location: { path: 8 span: 40 span: 0 span: 31 } location: { path: 8 path: 31 span: 40 span: 0 span: 31 } location: { path: 4 path: 0 span: 50 span: 0 span: 16 leading_comments: " A generic empty message that you can re-use to avoid defining duplicated\n empty messages in your APIs. A typical example is to use it as the request\n or the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\n" } location: { path: 4 path: 0 path: 1 span: 50 span: 8 span: 13 } } syntax: "proto3" buf_extension: { is_import: true is_syntax_unspecified: false } } file: { name: "types/task/task.proto" package: "containerd.v1.types" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/timestamp.proto" message_type: { name: "Process" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "pid" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "status" number: 4 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".containerd.v1.types.Status" json_name: "status" } field: { name: "stdin" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "terminal" number: 8 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "exit_status" number: 9 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 10 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } message_type: { name: "ProcessInfo" field: { name: "pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "info" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "info" } } enum_type: { name: "Status" value: { name: "UNKNOWN" number: 0 } value: { name: "CREATED" number: 1 } value: { name: "RUNNING" number: 2 } value: { name: "STOPPED" number: 3 } value: { name: "PAUSED" number: 4 } value: { name: "PAUSING" number: 5 } } options: { go_package: "github.com/containerd/containerd/api/types/task" } source_code_info: { location: { span: 16 span: 0 span: 54 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 28 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 41 } location: { path: 8 span: 23 span: 0 span: 70 } location: { path: 8 path: 11 span: 23 span: 0 span: 70 } location: { path: 5 path: 0 span: 25 span: 0 span: 32 span: 1 } location: { path: 5 path: 0 path: 1 span: 25 span: 5 span: 11 } location: { path: 5 path: 0 path: 2 path: 0 span: 26 span: 2 span: 14 } location: { path: 5 path: 0 path: 2 path: 0 path: 1 span: 26 span: 2 span: 9 } location: { path: 5 path: 0 path: 2 path: 0 path: 2 span: 26 span: 12 span: 13 } location: { path: 5 path: 0 path: 2 path: 1 span: 27 span: 2 span: 14 } location: { path: 5 path: 0 path: 2 path: 1 path: 1 span: 27 span: 2 span: 9 } location: { path: 5 path: 0 path: 2 path: 1 path: 2 span: 27 span: 12 span: 13 } location: { path: 5 path: 0 path: 2 path: 2 span: 28 span: 2 span: 14 } location: { path: 5 path: 0 path: 2 path: 2 path: 1 span: 28 span: 2 span: 9 } location: { path: 5 path: 0 path: 2 path: 2 path: 2 span: 28 span: 12 span: 13 } location: { path: 5 path: 0 path: 2 path: 3 span: 29 span: 2 span: 14 } location: { path: 5 path: 0 path: 2 path: 3 path: 1 span: 29 span: 2 span: 9 } location: { path: 5 path: 0 path: 2 path: 3 path: 2 span: 29 span: 12 span: 13 } location: { path: 5 path: 0 path: 2 path: 4 span: 30 span: 2 span: 13 } location: { path: 5 path: 0 path: 2 path: 4 path: 1 span: 30 span: 2 span: 8 } location: { path: 5 path: 0 path: 2 path: 4 path: 2 span: 30 span: 11 span: 12 } location: { path: 5 path: 0 path: 2 path: 5 span: 31 span: 2 span: 14 } location: { path: 5 path: 0 path: 2 path: 5 path: 1 span: 31 span: 2 span: 9 } location: { path: 5 path: 0 path: 2 path: 5 path: 2 span: 31 span: 12 span: 13 } location: { path: 4 path: 0 span: 34 span: 0 span: 45 span: 1 } location: { path: 4 path: 0 path: 1 span: 34 span: 8 span: 15 } location: { path: 4 path: 0 path: 2 path: 0 span: 35 span: 2 span: 26 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 35 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 35 span: 9 span: 21 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 35 span: 24 span: 25 } location: { path: 4 path: 0 path: 2 path: 1 span: 36 span: 2 span: 16 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 36 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 36 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 36 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 2 span: 37 span: 2 span: 17 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 37 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 37 span: 9 span: 12 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 37 span: 15 span: 16 } location: { path: 4 path: 0 path: 2 path: 3 span: 38 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 38 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 38 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 38 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 span: 39 span: 2 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 39 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 39 span: 9 span: 14 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 39 span: 17 span: 18 } location: { path: 4 path: 0 path: 2 path: 5 span: 40 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 5 path: 5 span: 40 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 40 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 40 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 6 span: 41 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 6 path: 5 span: 41 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 41 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 41 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 7 span: 42 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 7 path: 5 span: 42 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 7 path: 1 span: 42 span: 7 span: 15 } location: { path: 4 path: 0 path: 2 path: 7 path: 3 span: 42 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 8 span: 43 span: 2 span: 25 } location: { path: 4 path: 0 path: 2 path: 8 path: 5 span: 43 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 8 path: 1 span: 43 span: 9 span: 20 } location: { path: 4 path: 0 path: 2 path: 8 path: 3 span: 43 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 9 span: 44 span: 2 span: 43 } location: { path: 4 path: 0 path: 2 path: 9 path: 6 span: 44 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 9 path: 1 span: 44 span: 28 span: 37 } location: { path: 4 path: 0 path: 2 path: 9 path: 3 span: 44 span: 40 span: 42 } location: { path: 4 path: 1 span: 47 span: 0 span: 54 span: 1 } location: { path: 4 path: 1 path: 1 span: 47 span: 8 span: 19 } location: { path: 4 path: 1 path: 2 path: 0 span: 49 span: 2 span: 17 leading_comments: " PID is the process ID.\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 49 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 49 span: 9 span: 12 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 49 span: 15 span: 16 } location: { path: 4 path: 1 path: 2 path: 1 span: 53 span: 2 span: 31 leading_comments: " Info contains additional process information.\n\n Info varies by platform.\n" } location: { path: 4 path: 1 path: 2 path: 1 path: 6 span: 53 span: 2 span: 21 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 53 span: 22 span: 26 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 53 span: 29 span: 30 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "runtime/task/v2/shim.proto" package: "containerd.task.v2" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/timestamp.proto" dependency: "types/mount.proto" dependency: "types/task/task.proto" message_type: { name: "CreateTaskRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "bundle" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "bundle" } field: { name: "rootfs" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "rootfs" } field: { name: "terminal" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "stdin" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "checkpoint" number: 8 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "checkpoint" } field: { name: "parent_checkpoint" number: 9 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "parentCheckpoint" } field: { name: "options" number: 10 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } message_type: { name: "CreateTaskResponse" field: { name: "pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } } message_type: { name: "DeleteRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "DeleteResponse" field: { name: "pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "exit_status" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } message_type: { name: "ExecProcessRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "terminal" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "stdin" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "spec" number: 7 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "spec" } } message_type: { name: "ExecProcessResponse" } message_type: { name: "ResizePtyRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "width" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "width" } field: { name: "height" number: 4 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "height" } } message_type: { name: "StateRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "StateResponse" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "bundle" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "bundle" } field: { name: "pid" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "status" number: 4 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".containerd.v1.types.Status" json_name: "status" } field: { name: "stdin" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "terminal" number: 8 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "exit_status" number: 9 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 10 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } field: { name: "exec_id" number: 11 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "KillRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "signal" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "signal" } field: { name: "all" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "all" } } message_type: { name: "CloseIORequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "stdin" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "stdin" } } message_type: { name: "PidsRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "PidsResponse" field: { name: "processes" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.v1.types.ProcessInfo" json_name: "processes" } } message_type: { name: "CheckpointTaskRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "path" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "path" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } message_type: { name: "UpdateTaskRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "resources" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "resources" } field: { name: "annotations" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.task.v2.UpdateTaskRequest.AnnotationsEntry" json_name: "annotations" } nested_type: { name: "AnnotationsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "StartRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "StartResponse" field: { name: "pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } } message_type: { name: "WaitRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "WaitResponse" field: { name: "exit_status" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } message_type: { name: "StatsRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "StatsResponse" field: { name: "stats" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "stats" } } message_type: { name: "ConnectRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "ConnectResponse" field: { name: "shim_pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "shimPid" } field: { name: "task_pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "taskPid" } field: { name: "version" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "version" } } message_type: { name: "ShutdownRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "now" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "now" } } message_type: { name: "PauseRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "ResumeRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } service: { name: "Task" method: { name: "State" input_type: ".containerd.task.v2.StateRequest" output_type: ".containerd.task.v2.StateResponse" } method: { name: "Create" input_type: ".containerd.task.v2.CreateTaskRequest" output_type: ".containerd.task.v2.CreateTaskResponse" } method: { name: "Start" input_type: ".containerd.task.v2.StartRequest" output_type: ".containerd.task.v2.StartResponse" } method: { name: "Delete" input_type: ".containerd.task.v2.DeleteRequest" output_type: ".containerd.task.v2.DeleteResponse" } method: { name: "Pids" input_type: ".containerd.task.v2.PidsRequest" output_type: ".containerd.task.v2.PidsResponse" } method: { name: "Pause" input_type: ".containerd.task.v2.PauseRequest" output_type: ".google.protobuf.Empty" } method: { name: "Resume" input_type: ".containerd.task.v2.ResumeRequest" output_type: ".google.protobuf.Empty" } method: { name: "Checkpoint" input_type: ".containerd.task.v2.CheckpointTaskRequest" output_type: ".google.protobuf.Empty" } method: { name: "Kill" input_type: ".containerd.task.v2.KillRequest" output_type: ".google.protobuf.Empty" } method: { name: "Exec" input_type: ".containerd.task.v2.ExecProcessRequest" output_type: ".google.protobuf.Empty" } method: { name: "ResizePty" input_type: ".containerd.task.v2.ResizePtyRequest" output_type: ".google.protobuf.Empty" } method: { name: "CloseIO" input_type: ".containerd.task.v2.CloseIORequest" output_type: ".google.protobuf.Empty" } method: { name: "Update" input_type: ".containerd.task.v2.UpdateTaskRequest" output_type: ".google.protobuf.Empty" } method: { name: "Wait" input_type: ".containerd.task.v2.WaitRequest" output_type: ".containerd.task.v2.WaitResponse" } method: { name: "Stats" input_type: ".containerd.task.v2.StatsRequest" output_type: ".containerd.task.v2.StatsResponse" } method: { name: "Connect" input_type: ".containerd.task.v2.ConnectRequest" output_type: ".containerd.task.v2.ConnectResponse" } method: { name: "Shutdown" input_type: ".containerd.task.v2.ShutdownRequest" output_type: ".google.protobuf.Empty" } } options: { go_package: "github.com/containerd/containerd/api/runtime/task/v2;task" } source_code_info: { location: { span: 16 span: 0 span: 199 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 27 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 37 } location: { path: 3 path: 2 span: 22 span: 0 span: 41 } location: { path: 3 path: 3 span: 23 span: 0 span: 27 } location: { path: 3 path: 4 span: 24 span: 0 span: 31 } location: { path: 8 span: 26 span: 0 span: 80 } location: { path: 8 path: 11 span: 26 span: 0 span: 80 } location: { path: 6 path: 0 span: 32 span: 0 span: 50 span: 1 leading_comments: " Shim service is launched for each container and is responsible for owning the IO\n for the container and its additional processes. The shim is also the parent of\n each container and allows reattaching to the IO and receiving the exit status\n for the container processes.\n" } location: { path: 6 path: 0 path: 1 span: 32 span: 8 span: 12 } location: { path: 6 path: 0 path: 2 path: 0 span: 33 span: 2 span: 50 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 33 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 33 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 33 span: 35 span: 48 } location: { path: 6 path: 0 path: 2 path: 1 span: 34 span: 2 span: 61 } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 34 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 34 span: 13 span: 30 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 34 span: 41 span: 59 } location: { path: 6 path: 0 path: 2 path: 2 span: 35 span: 2 span: 50 } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 35 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 35 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 35 span: 35 span: 48 } location: { path: 6 path: 0 path: 2 path: 3 span: 36 span: 2 span: 53 } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 36 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 36 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 36 span: 37 span: 51 } location: { path: 6 path: 0 path: 2 path: 4 span: 37 span: 2 span: 47 } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 37 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 37 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 37 span: 33 span: 45 } location: { path: 6 path: 0 path: 2 path: 5 span: 38 span: 2 span: 58 } location: { path: 6 path: 0 path: 2 path: 5 path: 1 span: 38 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 5 path: 2 span: 38 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 5 path: 3 span: 38 span: 35 span: 56 } location: { path: 6 path: 0 path: 2 path: 6 span: 39 span: 2 span: 60 } location: { path: 6 path: 0 path: 2 path: 6 path: 1 span: 39 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 6 path: 2 span: 39 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 6 path: 3 span: 39 span: 37 span: 58 } location: { path: 6 path: 0 path: 2 path: 7 span: 40 span: 2 span: 72 } location: { path: 6 path: 0 path: 2 path: 7 path: 1 span: 40 span: 6 span: 16 } location: { path: 6 path: 0 path: 2 path: 7 path: 2 span: 40 span: 17 span: 38 } location: { path: 6 path: 0 path: 2 path: 7 path: 3 span: 40 span: 49 span: 70 } location: { path: 6 path: 0 path: 2 path: 8 span: 41 span: 2 span: 56 } location: { path: 6 path: 0 path: 2 path: 8 path: 1 span: 41 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 8 path: 2 span: 41 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 8 path: 3 span: 41 span: 33 span: 54 } location: { path: 6 path: 0 path: 2 path: 9 span: 42 span: 2 span: 63 } location: { path: 6 path: 0 path: 2 path: 9 path: 1 span: 42 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 9 path: 2 span: 42 span: 11 span: 29 } location: { path: 6 path: 0 path: 2 path: 9 path: 3 span: 42 span: 40 span: 61 } location: { path: 6 path: 0 path: 2 path: 10 span: 43 span: 2 span: 66 } location: { path: 6 path: 0 path: 2 path: 10 path: 1 span: 43 span: 6 span: 15 } location: { path: 6 path: 0 path: 2 path: 10 path: 2 span: 43 span: 16 span: 32 } location: { path: 6 path: 0 path: 2 path: 10 path: 3 span: 43 span: 43 span: 64 } location: { path: 6 path: 0 path: 2 path: 11 span: 44 span: 2 span: 62 } location: { path: 6 path: 0 path: 2 path: 11 path: 1 span: 44 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 11 path: 2 span: 44 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 11 path: 3 span: 44 span: 39 span: 60 } location: { path: 6 path: 0 path: 2 path: 12 span: 45 span: 2 span: 64 } location: { path: 6 path: 0 path: 2 path: 12 path: 1 span: 45 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 12 path: 2 span: 45 span: 13 span: 30 } location: { path: 6 path: 0 path: 2 path: 12 path: 3 span: 45 span: 41 span: 62 } location: { path: 6 path: 0 path: 2 path: 13 span: 46 span: 2 span: 47 } location: { path: 6 path: 0 path: 2 path: 13 path: 1 span: 46 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 13 path: 2 span: 46 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 13 path: 3 span: 46 span: 33 span: 45 } location: { path: 6 path: 0 path: 2 path: 14 span: 47 span: 2 span: 50 } location: { path: 6 path: 0 path: 2 path: 14 path: 1 span: 47 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 14 path: 2 span: 47 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 14 path: 3 span: 47 span: 35 span: 48 } location: { path: 6 path: 0 path: 2 path: 15 span: 48 span: 2 span: 56 } location: { path: 6 path: 0 path: 2 path: 15 path: 1 span: 48 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 15 path: 2 span: 48 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 15 path: 3 span: 48 span: 39 span: 54 } location: { path: 6 path: 0 path: 2 path: 16 span: 49 span: 2 span: 64 } location: { path: 6 path: 0 path: 2 path: 16 path: 1 span: 49 span: 6 span: 14 } location: { path: 6 path: 0 path: 2 path: 16 path: 2 span: 49 span: 15 span: 30 } location: { path: 6 path: 0 path: 2 path: 16 path: 3 span: 49 span: 41 span: 62 } location: { path: 4 path: 0 span: 52 span: 0 span: 63 span: 1 } location: { path: 4 path: 0 path: 1 span: 52 span: 8 span: 25 } location: { path: 4 path: 0 path: 2 path: 0 span: 53 span: 2 span: 16 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 53 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 53 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 53 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 span: 54 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 54 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 54 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 54 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 2 span: 55 span: 2 span: 45 } location: { path: 4 path: 0 path: 2 path: 2 path: 4 span: 55 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 55 span: 11 span: 33 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 55 span: 34 span: 40 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 55 span: 43 span: 44 } location: { path: 4 path: 0 path: 2 path: 3 span: 56 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 56 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 56 span: 7 span: 15 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 56 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 span: 57 span: 2 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 57 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 57 span: 9 span: 14 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 57 span: 17 span: 18 } location: { path: 4 path: 0 path: 2 path: 5 span: 58 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 5 path: 5 span: 58 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 58 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 58 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 6 span: 59 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 6 path: 5 span: 59 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 59 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 59 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 7 span: 60 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 7 path: 5 span: 60 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 7 path: 1 span: 60 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 7 path: 3 span: 60 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 8 span: 61 span: 2 span: 31 } location: { path: 4 path: 0 path: 2 path: 8 path: 5 span: 61 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 8 path: 1 span: 61 span: 9 span: 26 } location: { path: 4 path: 0 path: 2 path: 8 path: 3 span: 61 span: 29 span: 30 } location: { path: 4 path: 0 path: 2 path: 9 span: 62 span: 2 span: 35 } location: { path: 4 path: 0 path: 2 path: 9 path: 6 span: 62 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 9 path: 1 span: 62 span: 22 span: 29 } location: { path: 4 path: 0 path: 2 path: 9 path: 3 span: 62 span: 32 span: 34 } location: { path: 4 path: 1 span: 65 span: 0 span: 67 span: 1 } location: { path: 4 path: 1 path: 1 span: 65 span: 8 span: 26 } location: { path: 4 path: 1 path: 2 path: 0 span: 66 span: 2 span: 17 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 66 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 66 span: 9 span: 12 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 66 span: 15 span: 16 } location: { path: 4 path: 2 span: 69 span: 0 span: 72 span: 1 } location: { path: 4 path: 2 path: 1 span: 69 span: 8 span: 21 } location: { path: 4 path: 2 path: 2 path: 0 span: 70 span: 2 span: 16 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 70 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 70 span: 9 span: 11 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 70 span: 14 span: 15 } location: { path: 4 path: 2 path: 2 path: 1 span: 71 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 71 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 71 span: 9 span: 16 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 71 span: 19 span: 20 } location: { path: 4 path: 3 span: 74 span: 0 span: 78 span: 1 } location: { path: 4 path: 3 path: 1 span: 74 span: 8 span: 22 } location: { path: 4 path: 3 path: 2 path: 0 span: 75 span: 2 span: 17 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 75 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 75 span: 9 span: 12 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 75 span: 15 span: 16 } location: { path: 4 path: 3 path: 2 path: 1 span: 76 span: 2 span: 25 } location: { path: 4 path: 3 path: 2 path: 1 path: 5 span: 76 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 76 span: 9 span: 20 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 76 span: 23 span: 24 } location: { path: 4 path: 3 path: 2 path: 2 span: 77 span: 2 span: 42 } location: { path: 4 path: 3 path: 2 path: 2 path: 6 span: 77 span: 2 span: 27 } location: { path: 4 path: 3 path: 2 path: 2 path: 1 span: 77 span: 28 span: 37 } location: { path: 4 path: 3 path: 2 path: 2 path: 3 span: 77 span: 40 span: 41 } location: { path: 4 path: 4 span: 80 span: 0 span: 88 span: 1 } location: { path: 4 path: 4 path: 1 span: 80 span: 8 span: 26 } location: { path: 4 path: 4 path: 2 path: 0 span: 81 span: 2 span: 16 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 81 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 81 span: 9 span: 11 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 81 span: 14 span: 15 } location: { path: 4 path: 4 path: 2 path: 1 span: 82 span: 2 span: 21 } location: { path: 4 path: 4 path: 2 path: 1 path: 5 span: 82 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 1 path: 1 span: 82 span: 9 span: 16 } location: { path: 4 path: 4 path: 2 path: 1 path: 3 span: 82 span: 19 span: 20 } location: { path: 4 path: 4 path: 2 path: 2 span: 83 span: 2 span: 20 } location: { path: 4 path: 4 path: 2 path: 2 path: 5 span: 83 span: 2 span: 6 } location: { path: 4 path: 4 path: 2 path: 2 path: 1 span: 83 span: 7 span: 15 } location: { path: 4 path: 4 path: 2 path: 2 path: 3 span: 83 span: 18 span: 19 } location: { path: 4 path: 4 path: 2 path: 3 span: 84 span: 2 span: 19 } location: { path: 4 path: 4 path: 2 path: 3 path: 5 span: 84 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 3 path: 1 span: 84 span: 9 span: 14 } location: { path: 4 path: 4 path: 2 path: 3 path: 3 span: 84 span: 17 span: 18 } location: { path: 4 path: 4 path: 2 path: 4 span: 85 span: 2 span: 20 } location: { path: 4 path: 4 path: 2 path: 4 path: 5 span: 85 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 4 path: 1 span: 85 span: 9 span: 15 } location: { path: 4 path: 4 path: 2 path: 4 path: 3 span: 85 span: 18 span: 19 } location: { path: 4 path: 4 path: 2 path: 5 span: 86 span: 2 span: 20 } location: { path: 4 path: 4 path: 2 path: 5 path: 5 span: 86 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 5 path: 1 span: 86 span: 9 span: 15 } location: { path: 4 path: 4 path: 2 path: 5 path: 3 span: 86 span: 18 span: 19 } location: { path: 4 path: 4 path: 2 path: 6 span: 87 span: 2 span: 31 } location: { path: 4 path: 4 path: 2 path: 6 path: 6 span: 87 span: 2 span: 21 } location: { path: 4 path: 4 path: 2 path: 6 path: 1 span: 87 span: 22 span: 26 } location: { path: 4 path: 4 path: 2 path: 6 path: 3 span: 87 span: 29 span: 30 } location: { path: 4 path: 5 span: 90 span: 0 span: 30 } location: { path: 4 path: 5 path: 1 span: 90 span: 8 span: 27 } location: { path: 4 path: 6 span: 92 span: 0 span: 97 span: 1 } location: { path: 4 path: 6 path: 1 span: 92 span: 8 span: 24 } location: { path: 4 path: 6 path: 2 path: 0 span: 93 span: 2 span: 16 } location: { path: 4 path: 6 path: 2 path: 0 path: 5 span: 93 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 93 span: 9 span: 11 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 93 span: 14 span: 15 } location: { path: 4 path: 6 path: 2 path: 1 span: 94 span: 2 span: 21 } location: { path: 4 path: 6 path: 2 path: 1 path: 5 span: 94 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 1 path: 1 span: 94 span: 9 span: 16 } location: { path: 4 path: 6 path: 2 path: 1 path: 3 span: 94 span: 19 span: 20 } location: { path: 4 path: 6 path: 2 path: 2 span: 95 span: 2 span: 19 } location: { path: 4 path: 6 path: 2 path: 2 path: 5 span: 95 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 2 path: 1 span: 95 span: 9 span: 14 } location: { path: 4 path: 6 path: 2 path: 2 path: 3 span: 95 span: 17 span: 18 } location: { path: 4 path: 6 path: 2 path: 3 span: 96 span: 2 span: 20 } location: { path: 4 path: 6 path: 2 path: 3 path: 5 span: 96 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 3 path: 1 span: 96 span: 9 span: 15 } location: { path: 4 path: 6 path: 2 path: 3 path: 3 span: 96 span: 18 span: 19 } location: { path: 4 path: 7 span: 99 span: 0 span: 102 span: 1 } location: { path: 4 path: 7 path: 1 span: 99 span: 8 span: 20 } location: { path: 4 path: 7 path: 2 path: 0 span: 100 span: 2 span: 16 } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 100 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 100 span: 9 span: 11 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 100 span: 14 span: 15 } location: { path: 4 path: 7 path: 2 path: 1 span: 101 span: 2 span: 21 } location: { path: 4 path: 7 path: 2 path: 1 path: 5 span: 101 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 1 path: 1 span: 101 span: 9 span: 16 } location: { path: 4 path: 7 path: 2 path: 1 path: 3 span: 101 span: 19 span: 20 } location: { path: 4 path: 8 span: 104 span: 0 span: 116 span: 1 } location: { path: 4 path: 8 path: 1 span: 104 span: 8 span: 21 } location: { path: 4 path: 8 path: 2 path: 0 span: 105 span: 2 span: 16 } location: { path: 4 path: 8 path: 2 path: 0 path: 5 span: 105 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 105 span: 9 span: 11 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 105 span: 14 span: 15 } location: { path: 4 path: 8 path: 2 path: 1 span: 106 span: 2 span: 20 } location: { path: 4 path: 8 path: 2 path: 1 path: 5 span: 106 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 1 path: 1 span: 106 span: 9 span: 15 } location: { path: 4 path: 8 path: 2 path: 1 path: 3 span: 106 span: 18 span: 19 } location: { path: 4 path: 8 path: 2 path: 2 span: 107 span: 2 span: 17 } location: { path: 4 path: 8 path: 2 path: 2 path: 5 span: 107 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 2 path: 1 span: 107 span: 9 span: 12 } location: { path: 4 path: 8 path: 2 path: 2 path: 3 span: 107 span: 15 span: 16 } location: { path: 4 path: 8 path: 2 path: 3 span: 108 span: 2 span: 40 } location: { path: 4 path: 8 path: 2 path: 3 path: 6 span: 108 span: 2 span: 28 } location: { path: 4 path: 8 path: 2 path: 3 path: 1 span: 108 span: 29 span: 35 } location: { path: 4 path: 8 path: 2 path: 3 path: 3 span: 108 span: 38 span: 39 } location: { path: 4 path: 8 path: 2 path: 4 span: 109 span: 2 span: 19 } location: { path: 4 path: 8 path: 2 path: 4 path: 5 span: 109 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 4 path: 1 span: 109 span: 9 span: 14 } location: { path: 4 path: 8 path: 2 path: 4 path: 3 span: 109 span: 17 span: 18 } location: { path: 4 path: 8 path: 2 path: 5 span: 110 span: 2 span: 20 } location: { path: 4 path: 8 path: 2 path: 5 path: 5 span: 110 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 5 path: 1 span: 110 span: 9 span: 15 } location: { path: 4 path: 8 path: 2 path: 5 path: 3 span: 110 span: 18 span: 19 } location: { path: 4 path: 8 path: 2 path: 6 span: 111 span: 2 span: 20 } location: { path: 4 path: 8 path: 2 path: 6 path: 5 span: 111 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 6 path: 1 span: 111 span: 9 span: 15 } location: { path: 4 path: 8 path: 2 path: 6 path: 3 span: 111 span: 18 span: 19 } location: { path: 4 path: 8 path: 2 path: 7 span: 112 span: 2 span: 20 } location: { path: 4 path: 8 path: 2 path: 7 path: 5 span: 112 span: 2 span: 6 } location: { path: 4 path: 8 path: 2 path: 7 path: 1 span: 112 span: 7 span: 15 } location: { path: 4 path: 8 path: 2 path: 7 path: 3 span: 112 span: 18 span: 19 } location: { path: 4 path: 8 path: 2 path: 8 span: 113 span: 2 span: 25 } location: { path: 4 path: 8 path: 2 path: 8 path: 5 span: 113 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 8 path: 1 span: 113 span: 9 span: 20 } location: { path: 4 path: 8 path: 2 path: 8 path: 3 span: 113 span: 23 span: 24 } location: { path: 4 path: 8 path: 2 path: 9 span: 114 span: 2 span: 43 } location: { path: 4 path: 8 path: 2 path: 9 path: 6 span: 114 span: 2 span: 27 } location: { path: 4 path: 8 path: 2 path: 9 path: 1 span: 114 span: 28 span: 37 } location: { path: 4 path: 8 path: 2 path: 9 path: 3 span: 114 span: 40 span: 42 } location: { path: 4 path: 8 path: 2 path: 10 span: 115 span: 2 span: 22 } location: { path: 4 path: 8 path: 2 path: 10 path: 5 span: 115 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 10 path: 1 span: 115 span: 9 span: 16 } location: { path: 4 path: 8 path: 2 path: 10 path: 3 span: 115 span: 19 span: 21 } location: { path: 4 path: 9 span: 118 span: 0 span: 123 span: 1 } location: { path: 4 path: 9 path: 1 span: 118 span: 8 span: 19 } location: { path: 4 path: 9 path: 2 path: 0 span: 119 span: 2 span: 16 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 119 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 119 span: 9 span: 11 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 119 span: 14 span: 15 } location: { path: 4 path: 9 path: 2 path: 1 span: 120 span: 2 span: 21 } location: { path: 4 path: 9 path: 2 path: 1 path: 5 span: 120 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 1 path: 1 span: 120 span: 9 span: 16 } location: { path: 4 path: 9 path: 2 path: 1 path: 3 span: 120 span: 19 span: 20 } location: { path: 4 path: 9 path: 2 path: 2 span: 121 span: 2 span: 20 } location: { path: 4 path: 9 path: 2 path: 2 path: 5 span: 121 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 2 path: 1 span: 121 span: 9 span: 15 } location: { path: 4 path: 9 path: 2 path: 2 path: 3 span: 121 span: 18 span: 19 } location: { path: 4 path: 9 path: 2 path: 3 span: 122 span: 2 span: 15 } location: { path: 4 path: 9 path: 2 path: 3 path: 5 span: 122 span: 2 span: 6 } location: { path: 4 path: 9 path: 2 path: 3 path: 1 span: 122 span: 7 span: 10 } location: { path: 4 path: 9 path: 2 path: 3 path: 3 span: 122 span: 13 span: 14 } location: { path: 4 path: 10 span: 125 span: 0 span: 129 span: 1 } location: { path: 4 path: 10 path: 1 span: 125 span: 8 span: 22 } location: { path: 4 path: 10 path: 2 path: 0 span: 126 span: 2 span: 16 } location: { path: 4 path: 10 path: 2 path: 0 path: 5 span: 126 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 126 span: 9 span: 11 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 126 span: 14 span: 15 } location: { path: 4 path: 10 path: 2 path: 1 span: 127 span: 2 span: 21 } location: { path: 4 path: 10 path: 2 path: 1 path: 5 span: 127 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 1 path: 1 span: 127 span: 9 span: 16 } location: { path: 4 path: 10 path: 2 path: 1 path: 3 span: 127 span: 19 span: 20 } location: { path: 4 path: 10 path: 2 path: 2 span: 128 span: 2 span: 17 } location: { path: 4 path: 10 path: 2 path: 2 path: 5 span: 128 span: 2 span: 6 } location: { path: 4 path: 10 path: 2 path: 2 path: 1 span: 128 span: 7 span: 12 } location: { path: 4 path: 10 path: 2 path: 2 path: 3 span: 128 span: 15 span: 16 } location: { path: 4 path: 11 span: 131 span: 0 span: 133 span: 1 } location: { path: 4 path: 11 path: 1 span: 131 span: 8 span: 19 } location: { path: 4 path: 11 path: 2 path: 0 span: 132 span: 2 span: 16 } location: { path: 4 path: 11 path: 2 path: 0 path: 5 span: 132 span: 2 span: 8 } location: { path: 4 path: 11 path: 2 path: 0 path: 1 span: 132 span: 9 span: 11 } location: { path: 4 path: 11 path: 2 path: 0 path: 3 span: 132 span: 14 span: 15 } location: { path: 4 path: 12 span: 135 span: 0 span: 137 span: 1 } location: { path: 4 path: 12 path: 1 span: 135 span: 8 span: 20 } location: { path: 4 path: 12 path: 2 path: 0 span: 136 span: 2 span: 57 } location: { path: 4 path: 12 path: 2 path: 0 path: 4 span: 136 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 0 path: 6 span: 136 span: 11 span: 42 } location: { path: 4 path: 12 path: 2 path: 0 path: 1 span: 136 span: 43 span: 52 } location: { path: 4 path: 12 path: 2 path: 0 path: 3 span: 136 span: 55 span: 56 } location: { path: 4 path: 13 span: 139 span: 0 span: 143 span: 1 } location: { path: 4 path: 13 path: 1 span: 139 span: 8 span: 29 } location: { path: 4 path: 13 path: 2 path: 0 span: 140 span: 2 span: 16 } location: { path: 4 path: 13 path: 2 path: 0 path: 5 span: 140 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 0 path: 1 span: 140 span: 9 span: 11 } location: { path: 4 path: 13 path: 2 path: 0 path: 3 span: 140 span: 14 span: 15 } location: { path: 4 path: 13 path: 2 path: 1 span: 141 span: 2 span: 18 } location: { path: 4 path: 13 path: 2 path: 1 path: 5 span: 141 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 1 path: 1 span: 141 span: 9 span: 13 } location: { path: 4 path: 13 path: 2 path: 1 path: 3 span: 141 span: 16 span: 17 } location: { path: 4 path: 13 path: 2 path: 2 span: 142 span: 2 span: 34 } location: { path: 4 path: 13 path: 2 path: 2 path: 6 span: 142 span: 2 span: 21 } location: { path: 4 path: 13 path: 2 path: 2 path: 1 span: 142 span: 22 span: 29 } location: { path: 4 path: 13 path: 2 path: 2 path: 3 span: 142 span: 32 span: 33 } location: { path: 4 path: 14 span: 145 span: 0 span: 149 span: 1 } location: { path: 4 path: 14 path: 1 span: 145 span: 8 span: 25 } location: { path: 4 path: 14 path: 2 path: 0 span: 146 span: 2 span: 16 } location: { path: 4 path: 14 path: 2 path: 0 path: 5 span: 146 span: 2 span: 8 } location: { path: 4 path: 14 path: 2 path: 0 path: 1 span: 146 span: 9 span: 11 } location: { path: 4 path: 14 path: 2 path: 0 path: 3 span: 146 span: 14 span: 15 } location: { path: 4 path: 14 path: 2 path: 1 span: 147 span: 2 span: 36 } location: { path: 4 path: 14 path: 2 path: 1 path: 6 span: 147 span: 2 span: 21 } location: { path: 4 path: 14 path: 2 path: 1 path: 1 span: 147 span: 22 span: 31 } location: { path: 4 path: 14 path: 2 path: 1 path: 3 span: 147 span: 34 span: 35 } location: { path: 4 path: 14 path: 2 path: 2 span: 148 span: 2 span: 38 } location: { path: 4 path: 14 path: 2 path: 2 path: 6 span: 148 span: 2 span: 21 } location: { path: 4 path: 14 path: 2 path: 2 path: 1 span: 148 span: 22 span: 33 } location: { path: 4 path: 14 path: 2 path: 2 path: 3 span: 148 span: 36 span: 37 } location: { path: 4 path: 15 span: 151 span: 0 span: 154 span: 1 } location: { path: 4 path: 15 path: 1 span: 151 span: 8 span: 20 } location: { path: 4 path: 15 path: 2 path: 0 span: 152 span: 2 span: 16 } location: { path: 4 path: 15 path: 2 path: 0 path: 5 span: 152 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 0 path: 1 span: 152 span: 9 span: 11 } location: { path: 4 path: 15 path: 2 path: 0 path: 3 span: 152 span: 14 span: 15 } location: { path: 4 path: 15 path: 2 path: 1 span: 153 span: 2 span: 21 } location: { path: 4 path: 15 path: 2 path: 1 path: 5 span: 153 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 1 path: 1 span: 153 span: 9 span: 16 } location: { path: 4 path: 15 path: 2 path: 1 path: 3 span: 153 span: 19 span: 20 } location: { path: 4 path: 16 span: 156 span: 0 span: 158 span: 1 } location: { path: 4 path: 16 path: 1 span: 156 span: 8 span: 21 } location: { path: 4 path: 16 path: 2 path: 0 span: 157 span: 2 span: 17 } location: { path: 4 path: 16 path: 2 path: 0 path: 5 span: 157 span: 2 span: 8 } location: { path: 4 path: 16 path: 2 path: 0 path: 1 span: 157 span: 9 span: 12 } location: { path: 4 path: 16 path: 2 path: 0 path: 3 span: 157 span: 15 span: 16 } location: { path: 4 path: 17 span: 160 span: 0 span: 163 span: 1 } location: { path: 4 path: 17 path: 1 span: 160 span: 8 span: 19 } location: { path: 4 path: 17 path: 2 path: 0 span: 161 span: 2 span: 16 } location: { path: 4 path: 17 path: 2 path: 0 path: 5 span: 161 span: 2 span: 8 } location: { path: 4 path: 17 path: 2 path: 0 path: 1 span: 161 span: 9 span: 11 } location: { path: 4 path: 17 path: 2 path: 0 path: 3 span: 161 span: 14 span: 15 } location: { path: 4 path: 17 path: 2 path: 1 span: 162 span: 2 span: 21 } location: { path: 4 path: 17 path: 2 path: 1 path: 5 span: 162 span: 2 span: 8 } location: { path: 4 path: 17 path: 2 path: 1 path: 1 span: 162 span: 9 span: 16 } location: { path: 4 path: 17 path: 2 path: 1 path: 3 span: 162 span: 19 span: 20 } location: { path: 4 path: 18 span: 165 span: 0 span: 168 span: 1 } location: { path: 4 path: 18 path: 1 span: 165 span: 8 span: 20 } location: { path: 4 path: 18 path: 2 path: 0 span: 166 span: 2 span: 25 } location: { path: 4 path: 18 path: 2 path: 0 path: 5 span: 166 span: 2 span: 8 } location: { path: 4 path: 18 path: 2 path: 0 path: 1 span: 166 span: 9 span: 20 } location: { path: 4 path: 18 path: 2 path: 0 path: 3 span: 166 span: 23 span: 24 } location: { path: 4 path: 18 path: 2 path: 1 span: 167 span: 2 span: 42 } location: { path: 4 path: 18 path: 2 path: 1 path: 6 span: 167 span: 2 span: 27 } location: { path: 4 path: 18 path: 2 path: 1 path: 1 span: 167 span: 28 span: 37 } location: { path: 4 path: 18 path: 2 path: 1 path: 3 span: 167 span: 40 span: 41 } location: { path: 4 path: 19 span: 170 span: 0 span: 172 span: 1 } location: { path: 4 path: 19 path: 1 span: 170 span: 8 span: 20 } location: { path: 4 path: 19 path: 2 path: 0 span: 171 span: 2 span: 16 } location: { path: 4 path: 19 path: 2 path: 0 path: 5 span: 171 span: 2 span: 8 } location: { path: 4 path: 19 path: 2 path: 0 path: 1 span: 171 span: 9 span: 11 } location: { path: 4 path: 19 path: 2 path: 0 path: 3 span: 171 span: 14 span: 15 } location: { path: 4 path: 20 span: 174 span: 0 span: 176 span: 1 } location: { path: 4 path: 20 path: 1 span: 174 span: 8 span: 21 } location: { path: 4 path: 20 path: 2 path: 0 span: 175 span: 2 span: 32 } location: { path: 4 path: 20 path: 2 path: 0 path: 6 span: 175 span: 2 span: 21 } location: { path: 4 path: 20 path: 2 path: 0 path: 1 span: 175 span: 22 span: 27 } location: { path: 4 path: 20 path: 2 path: 0 path: 3 span: 175 span: 30 span: 31 } location: { path: 4 path: 21 span: 178 span: 0 span: 180 span: 1 } location: { path: 4 path: 21 path: 1 span: 178 span: 8 span: 22 } location: { path: 4 path: 21 path: 2 path: 0 span: 179 span: 2 span: 16 } location: { path: 4 path: 21 path: 2 path: 0 path: 5 span: 179 span: 2 span: 8 } location: { path: 4 path: 21 path: 2 path: 0 path: 1 span: 179 span: 9 span: 11 } location: { path: 4 path: 21 path: 2 path: 0 path: 3 span: 179 span: 14 span: 15 } location: { path: 4 path: 22 span: 182 span: 0 span: 186 span: 1 } location: { path: 4 path: 22 path: 1 span: 182 span: 8 span: 23 } location: { path: 4 path: 22 path: 2 path: 0 span: 183 span: 2 span: 22 } location: { path: 4 path: 22 path: 2 path: 0 path: 5 span: 183 span: 2 span: 8 } location: { path: 4 path: 22 path: 2 path: 0 path: 1 span: 183 span: 9 span: 17 } location: { path: 4 path: 22 path: 2 path: 0 path: 3 span: 183 span: 20 span: 21 } location: { path: 4 path: 22 path: 2 path: 1 span: 184 span: 2 span: 22 } location: { path: 4 path: 22 path: 2 path: 1 path: 5 span: 184 span: 2 span: 8 } location: { path: 4 path: 22 path: 2 path: 1 path: 1 span: 184 span: 9 span: 17 } location: { path: 4 path: 22 path: 2 path: 1 path: 3 span: 184 span: 20 span: 21 } location: { path: 4 path: 22 path: 2 path: 2 span: 185 span: 2 span: 21 } location: { path: 4 path: 22 path: 2 path: 2 path: 5 span: 185 span: 2 span: 8 } location: { path: 4 path: 22 path: 2 path: 2 path: 1 span: 185 span: 9 span: 16 } location: { path: 4 path: 22 path: 2 path: 2 path: 3 span: 185 span: 19 span: 20 } location: { path: 4 path: 23 span: 188 span: 0 span: 191 span: 1 } location: { path: 4 path: 23 path: 1 span: 188 span: 8 span: 23 } location: { path: 4 path: 23 path: 2 path: 0 span: 189 span: 2 span: 16 } location: { path: 4 path: 23 path: 2 path: 0 path: 5 span: 189 span: 2 span: 8 } location: { path: 4 path: 23 path: 2 path: 0 path: 1 span: 189 span: 9 span: 11 } location: { path: 4 path: 23 path: 2 path: 0 path: 3 span: 189 span: 14 span: 15 } location: { path: 4 path: 23 path: 2 path: 1 span: 190 span: 2 span: 15 } location: { path: 4 path: 23 path: 2 path: 1 path: 5 span: 190 span: 2 span: 6 } location: { path: 4 path: 23 path: 2 path: 1 path: 1 span: 190 span: 7 span: 10 } location: { path: 4 path: 23 path: 2 path: 1 path: 3 span: 190 span: 13 span: 14 } location: { path: 4 path: 24 span: 193 span: 0 span: 195 span: 1 } location: { path: 4 path: 24 path: 1 span: 193 span: 8 span: 20 } location: { path: 4 path: 24 path: 2 path: 0 span: 194 span: 2 span: 16 } location: { path: 4 path: 24 path: 2 path: 0 path: 5 span: 194 span: 2 span: 8 } location: { path: 4 path: 24 path: 2 path: 0 path: 1 span: 194 span: 9 span: 11 } location: { path: 4 path: 24 path: 2 path: 0 path: 3 span: 194 span: 14 span: 15 } location: { path: 4 path: 25 span: 197 span: 0 span: 199 span: 1 } location: { path: 4 path: 25 path: 1 span: 197 span: 8 span: 21 } location: { path: 4 path: 25 path: 2 path: 0 span: 198 span: 2 span: 16 } location: { path: 4 path: 25 path: 2 path: 0 path: 5 span: 198 span: 2 span: 8 } location: { path: 4 path: 25 path: 2 path: 0 path: 1 span: 198 span: 9 span: 11 } location: { path: 4 path: 25 path: 2 path: 0 path: 3 span: 198 span: 14 span: 15 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "runtime/task/v3/shim.proto" package: "containerd.task.v3" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/timestamp.proto" dependency: "types/mount.proto" dependency: "types/task/task.proto" message_type: { name: "CreateTaskRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "bundle" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "bundle" } field: { name: "rootfs" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "rootfs" } field: { name: "terminal" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "stdin" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "checkpoint" number: 8 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "checkpoint" } field: { name: "parent_checkpoint" number: 9 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "parentCheckpoint" } field: { name: "options" number: 10 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } message_type: { name: "CreateTaskResponse" field: { name: "pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } } message_type: { name: "DeleteRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "DeleteResponse" field: { name: "pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "exit_status" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } message_type: { name: "ExecProcessRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "terminal" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "stdin" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "spec" number: 7 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "spec" } } message_type: { name: "ExecProcessResponse" } message_type: { name: "ResizePtyRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "width" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "width" } field: { name: "height" number: 4 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "height" } } message_type: { name: "StateRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "StateResponse" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "bundle" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "bundle" } field: { name: "pid" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "status" number: 4 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".containerd.v1.types.Status" json_name: "status" } field: { name: "stdin" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "terminal" number: 8 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "exit_status" number: 9 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 10 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } field: { name: "exec_id" number: 11 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "KillRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "signal" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "signal" } field: { name: "all" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "all" } } message_type: { name: "CloseIORequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "stdin" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "stdin" } } message_type: { name: "PidsRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "PidsResponse" field: { name: "processes" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.v1.types.ProcessInfo" json_name: "processes" } } message_type: { name: "CheckpointTaskRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "path" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "path" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } message_type: { name: "UpdateTaskRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "resources" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "resources" } field: { name: "annotations" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.task.v3.UpdateTaskRequest.AnnotationsEntry" json_name: "annotations" } nested_type: { name: "AnnotationsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "StartRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "StartResponse" field: { name: "pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } } message_type: { name: "WaitRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "WaitResponse" field: { name: "exit_status" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } message_type: { name: "StatsRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "StatsResponse" field: { name: "stats" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "stats" } } message_type: { name: "ConnectRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "ConnectResponse" field: { name: "shim_pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "shimPid" } field: { name: "task_pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "taskPid" } field: { name: "version" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "version" } } message_type: { name: "ShutdownRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "now" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "now" } } message_type: { name: "PauseRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "ResumeRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } service: { name: "Task" method: { name: "State" input_type: ".containerd.task.v3.StateRequest" output_type: ".containerd.task.v3.StateResponse" } method: { name: "Create" input_type: ".containerd.task.v3.CreateTaskRequest" output_type: ".containerd.task.v3.CreateTaskResponse" } method: { name: "Start" input_type: ".containerd.task.v3.StartRequest" output_type: ".containerd.task.v3.StartResponse" } method: { name: "Delete" input_type: ".containerd.task.v3.DeleteRequest" output_type: ".containerd.task.v3.DeleteResponse" } method: { name: "Pids" input_type: ".containerd.task.v3.PidsRequest" output_type: ".containerd.task.v3.PidsResponse" } method: { name: "Pause" input_type: ".containerd.task.v3.PauseRequest" output_type: ".google.protobuf.Empty" } method: { name: "Resume" input_type: ".containerd.task.v3.ResumeRequest" output_type: ".google.protobuf.Empty" } method: { name: "Checkpoint" input_type: ".containerd.task.v3.CheckpointTaskRequest" output_type: ".google.protobuf.Empty" } method: { name: "Kill" input_type: ".containerd.task.v3.KillRequest" output_type: ".google.protobuf.Empty" } method: { name: "Exec" input_type: ".containerd.task.v3.ExecProcessRequest" output_type: ".google.protobuf.Empty" } method: { name: "ResizePty" input_type: ".containerd.task.v3.ResizePtyRequest" output_type: ".google.protobuf.Empty" } method: { name: "CloseIO" input_type: ".containerd.task.v3.CloseIORequest" output_type: ".google.protobuf.Empty" } method: { name: "Update" input_type: ".containerd.task.v3.UpdateTaskRequest" output_type: ".google.protobuf.Empty" } method: { name: "Wait" input_type: ".containerd.task.v3.WaitRequest" output_type: ".containerd.task.v3.WaitResponse" } method: { name: "Stats" input_type: ".containerd.task.v3.StatsRequest" output_type: ".containerd.task.v3.StatsResponse" } method: { name: "Connect" input_type: ".containerd.task.v3.ConnectRequest" output_type: ".containerd.task.v3.ConnectResponse" } method: { name: "Shutdown" input_type: ".containerd.task.v3.ShutdownRequest" output_type: ".google.protobuf.Empty" } } options: { go_package: "github.com/containerd/containerd/api/runtime/task/v3;task" } source_code_info: { location: { span: 16 span: 0 span: 199 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 27 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 37 } location: { path: 3 path: 2 span: 22 span: 0 span: 41 } location: { path: 3 path: 3 span: 23 span: 0 span: 27 } location: { path: 3 path: 4 span: 24 span: 0 span: 31 } location: { path: 8 span: 26 span: 0 span: 80 } location: { path: 8 path: 11 span: 26 span: 0 span: 80 } location: { path: 6 path: 0 span: 32 span: 0 span: 50 span: 1 leading_comments: " Shim service is launched for each container and is responsible for owning the IO\n for the container and its additional processes. The shim is also the parent of\n each container and allows reattaching to the IO and receiving the exit status\n for the container processes.\n" } location: { path: 6 path: 0 path: 1 span: 32 span: 8 span: 12 } location: { path: 6 path: 0 path: 2 path: 0 span: 33 span: 2 span: 50 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 33 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 33 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 33 span: 35 span: 48 } location: { path: 6 path: 0 path: 2 path: 1 span: 34 span: 2 span: 61 } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 34 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 34 span: 13 span: 30 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 34 span: 41 span: 59 } location: { path: 6 path: 0 path: 2 path: 2 span: 35 span: 2 span: 50 } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 35 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 35 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 35 span: 35 span: 48 } location: { path: 6 path: 0 path: 2 path: 3 span: 36 span: 2 span: 53 } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 36 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 36 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 36 span: 37 span: 51 } location: { path: 6 path: 0 path: 2 path: 4 span: 37 span: 2 span: 47 } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 37 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 37 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 37 span: 33 span: 45 } location: { path: 6 path: 0 path: 2 path: 5 span: 38 span: 2 span: 58 } location: { path: 6 path: 0 path: 2 path: 5 path: 1 span: 38 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 5 path: 2 span: 38 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 5 path: 3 span: 38 span: 35 span: 56 } location: { path: 6 path: 0 path: 2 path: 6 span: 39 span: 2 span: 60 } location: { path: 6 path: 0 path: 2 path: 6 path: 1 span: 39 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 6 path: 2 span: 39 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 6 path: 3 span: 39 span: 37 span: 58 } location: { path: 6 path: 0 path: 2 path: 7 span: 40 span: 2 span: 72 } location: { path: 6 path: 0 path: 2 path: 7 path: 1 span: 40 span: 6 span: 16 } location: { path: 6 path: 0 path: 2 path: 7 path: 2 span: 40 span: 17 span: 38 } location: { path: 6 path: 0 path: 2 path: 7 path: 3 span: 40 span: 49 span: 70 } location: { path: 6 path: 0 path: 2 path: 8 span: 41 span: 2 span: 56 } location: { path: 6 path: 0 path: 2 path: 8 path: 1 span: 41 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 8 path: 2 span: 41 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 8 path: 3 span: 41 span: 33 span: 54 } location: { path: 6 path: 0 path: 2 path: 9 span: 42 span: 2 span: 63 } location: { path: 6 path: 0 path: 2 path: 9 path: 1 span: 42 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 9 path: 2 span: 42 span: 11 span: 29 } location: { path: 6 path: 0 path: 2 path: 9 path: 3 span: 42 span: 40 span: 61 } location: { path: 6 path: 0 path: 2 path: 10 span: 43 span: 2 span: 66 } location: { path: 6 path: 0 path: 2 path: 10 path: 1 span: 43 span: 6 span: 15 } location: { path: 6 path: 0 path: 2 path: 10 path: 2 span: 43 span: 16 span: 32 } location: { path: 6 path: 0 path: 2 path: 10 path: 3 span: 43 span: 43 span: 64 } location: { path: 6 path: 0 path: 2 path: 11 span: 44 span: 2 span: 62 } location: { path: 6 path: 0 path: 2 path: 11 path: 1 span: 44 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 11 path: 2 span: 44 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 11 path: 3 span: 44 span: 39 span: 60 } location: { path: 6 path: 0 path: 2 path: 12 span: 45 span: 2 span: 64 } location: { path: 6 path: 0 path: 2 path: 12 path: 1 span: 45 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 12 path: 2 span: 45 span: 13 span: 30 } location: { path: 6 path: 0 path: 2 path: 12 path: 3 span: 45 span: 41 span: 62 } location: { path: 6 path: 0 path: 2 path: 13 span: 46 span: 2 span: 47 } location: { path: 6 path: 0 path: 2 path: 13 path: 1 span: 46 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 13 path: 2 span: 46 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 13 path: 3 span: 46 span: 33 span: 45 } location: { path: 6 path: 0 path: 2 path: 14 span: 47 span: 2 span: 50 } location: { path: 6 path: 0 path: 2 path: 14 path: 1 span: 47 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 14 path: 2 span: 47 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 14 path: 3 span: 47 span: 35 span: 48 } location: { path: 6 path: 0 path: 2 path: 15 span: 48 span: 2 span: 56 } location: { path: 6 path: 0 path: 2 path: 15 path: 1 span: 48 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 15 path: 2 span: 48 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 15 path: 3 span: 48 span: 39 span: 54 } location: { path: 6 path: 0 path: 2 path: 16 span: 49 span: 2 span: 64 } location: { path: 6 path: 0 path: 2 path: 16 path: 1 span: 49 span: 6 span: 14 } location: { path: 6 path: 0 path: 2 path: 16 path: 2 span: 49 span: 15 span: 30 } location: { path: 6 path: 0 path: 2 path: 16 path: 3 span: 49 span: 41 span: 62 } location: { path: 4 path: 0 span: 52 span: 0 span: 63 span: 1 } location: { path: 4 path: 0 path: 1 span: 52 span: 8 span: 25 } location: { path: 4 path: 0 path: 2 path: 0 span: 53 span: 2 span: 16 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 53 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 53 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 53 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 span: 54 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 54 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 54 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 54 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 2 span: 55 span: 2 span: 45 } location: { path: 4 path: 0 path: 2 path: 2 path: 4 span: 55 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 55 span: 11 span: 33 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 55 span: 34 span: 40 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 55 span: 43 span: 44 } location: { path: 4 path: 0 path: 2 path: 3 span: 56 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 56 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 56 span: 7 span: 15 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 56 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 span: 57 span: 2 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 57 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 57 span: 9 span: 14 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 57 span: 17 span: 18 } location: { path: 4 path: 0 path: 2 path: 5 span: 58 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 5 path: 5 span: 58 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 58 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 58 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 6 span: 59 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 6 path: 5 span: 59 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 59 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 59 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 7 span: 60 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 7 path: 5 span: 60 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 7 path: 1 span: 60 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 7 path: 3 span: 60 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 8 span: 61 span: 2 span: 31 } location: { path: 4 path: 0 path: 2 path: 8 path: 5 span: 61 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 8 path: 1 span: 61 span: 9 span: 26 } location: { path: 4 path: 0 path: 2 path: 8 path: 3 span: 61 span: 29 span: 30 } location: { path: 4 path: 0 path: 2 path: 9 span: 62 span: 2 span: 35 } location: { path: 4 path: 0 path: 2 path: 9 path: 6 span: 62 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 9 path: 1 span: 62 span: 22 span: 29 } location: { path: 4 path: 0 path: 2 path: 9 path: 3 span: 62 span: 32 span: 34 } location: { path: 4 path: 1 span: 65 span: 0 span: 67 span: 1 } location: { path: 4 path: 1 path: 1 span: 65 span: 8 span: 26 } location: { path: 4 path: 1 path: 2 path: 0 span: 66 span: 2 span: 17 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 66 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 66 span: 9 span: 12 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 66 span: 15 span: 16 } location: { path: 4 path: 2 span: 69 span: 0 span: 72 span: 1 } location: { path: 4 path: 2 path: 1 span: 69 span: 8 span: 21 } location: { path: 4 path: 2 path: 2 path: 0 span: 70 span: 2 span: 16 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 70 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 70 span: 9 span: 11 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 70 span: 14 span: 15 } location: { path: 4 path: 2 path: 2 path: 1 span: 71 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 71 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 71 span: 9 span: 16 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 71 span: 19 span: 20 } location: { path: 4 path: 3 span: 74 span: 0 span: 78 span: 1 } location: { path: 4 path: 3 path: 1 span: 74 span: 8 span: 22 } location: { path: 4 path: 3 path: 2 path: 0 span: 75 span: 2 span: 17 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 75 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 75 span: 9 span: 12 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 75 span: 15 span: 16 } location: { path: 4 path: 3 path: 2 path: 1 span: 76 span: 2 span: 25 } location: { path: 4 path: 3 path: 2 path: 1 path: 5 span: 76 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 76 span: 9 span: 20 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 76 span: 23 span: 24 } location: { path: 4 path: 3 path: 2 path: 2 span: 77 span: 2 span: 42 } location: { path: 4 path: 3 path: 2 path: 2 path: 6 span: 77 span: 2 span: 27 } location: { path: 4 path: 3 path: 2 path: 2 path: 1 span: 77 span: 28 span: 37 } location: { path: 4 path: 3 path: 2 path: 2 path: 3 span: 77 span: 40 span: 41 } location: { path: 4 path: 4 span: 80 span: 0 span: 88 span: 1 } location: { path: 4 path: 4 path: 1 span: 80 span: 8 span: 26 } location: { path: 4 path: 4 path: 2 path: 0 span: 81 span: 2 span: 16 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 81 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 81 span: 9 span: 11 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 81 span: 14 span: 15 } location: { path: 4 path: 4 path: 2 path: 1 span: 82 span: 2 span: 21 } location: { path: 4 path: 4 path: 2 path: 1 path: 5 span: 82 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 1 path: 1 span: 82 span: 9 span: 16 } location: { path: 4 path: 4 path: 2 path: 1 path: 3 span: 82 span: 19 span: 20 } location: { path: 4 path: 4 path: 2 path: 2 span: 83 span: 2 span: 20 } location: { path: 4 path: 4 path: 2 path: 2 path: 5 span: 83 span: 2 span: 6 } location: { path: 4 path: 4 path: 2 path: 2 path: 1 span: 83 span: 7 span: 15 } location: { path: 4 path: 4 path: 2 path: 2 path: 3 span: 83 span: 18 span: 19 } location: { path: 4 path: 4 path: 2 path: 3 span: 84 span: 2 span: 19 } location: { path: 4 path: 4 path: 2 path: 3 path: 5 span: 84 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 3 path: 1 span: 84 span: 9 span: 14 } location: { path: 4 path: 4 path: 2 path: 3 path: 3 span: 84 span: 17 span: 18 } location: { path: 4 path: 4 path: 2 path: 4 span: 85 span: 2 span: 20 } location: { path: 4 path: 4 path: 2 path: 4 path: 5 span: 85 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 4 path: 1 span: 85 span: 9 span: 15 } location: { path: 4 path: 4 path: 2 path: 4 path: 3 span: 85 span: 18 span: 19 } location: { path: 4 path: 4 path: 2 path: 5 span: 86 span: 2 span: 20 } location: { path: 4 path: 4 path: 2 path: 5 path: 5 span: 86 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 5 path: 1 span: 86 span: 9 span: 15 } location: { path: 4 path: 4 path: 2 path: 5 path: 3 span: 86 span: 18 span: 19 } location: { path: 4 path: 4 path: 2 path: 6 span: 87 span: 2 span: 31 } location: { path: 4 path: 4 path: 2 path: 6 path: 6 span: 87 span: 2 span: 21 } location: { path: 4 path: 4 path: 2 path: 6 path: 1 span: 87 span: 22 span: 26 } location: { path: 4 path: 4 path: 2 path: 6 path: 3 span: 87 span: 29 span: 30 } location: { path: 4 path: 5 span: 90 span: 0 span: 30 } location: { path: 4 path: 5 path: 1 span: 90 span: 8 span: 27 } location: { path: 4 path: 6 span: 92 span: 0 span: 97 span: 1 } location: { path: 4 path: 6 path: 1 span: 92 span: 8 span: 24 } location: { path: 4 path: 6 path: 2 path: 0 span: 93 span: 2 span: 16 } location: { path: 4 path: 6 path: 2 path: 0 path: 5 span: 93 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 93 span: 9 span: 11 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 93 span: 14 span: 15 } location: { path: 4 path: 6 path: 2 path: 1 span: 94 span: 2 span: 21 } location: { path: 4 path: 6 path: 2 path: 1 path: 5 span: 94 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 1 path: 1 span: 94 span: 9 span: 16 } location: { path: 4 path: 6 path: 2 path: 1 path: 3 span: 94 span: 19 span: 20 } location: { path: 4 path: 6 path: 2 path: 2 span: 95 span: 2 span: 19 } location: { path: 4 path: 6 path: 2 path: 2 path: 5 span: 95 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 2 path: 1 span: 95 span: 9 span: 14 } location: { path: 4 path: 6 path: 2 path: 2 path: 3 span: 95 span: 17 span: 18 } location: { path: 4 path: 6 path: 2 path: 3 span: 96 span: 2 span: 20 } location: { path: 4 path: 6 path: 2 path: 3 path: 5 span: 96 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 3 path: 1 span: 96 span: 9 span: 15 } location: { path: 4 path: 6 path: 2 path: 3 path: 3 span: 96 span: 18 span: 19 } location: { path: 4 path: 7 span: 99 span: 0 span: 102 span: 1 } location: { path: 4 path: 7 path: 1 span: 99 span: 8 span: 20 } location: { path: 4 path: 7 path: 2 path: 0 span: 100 span: 2 span: 16 } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 100 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 100 span: 9 span: 11 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 100 span: 14 span: 15 } location: { path: 4 path: 7 path: 2 path: 1 span: 101 span: 2 span: 21 } location: { path: 4 path: 7 path: 2 path: 1 path: 5 span: 101 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 1 path: 1 span: 101 span: 9 span: 16 } location: { path: 4 path: 7 path: 2 path: 1 path: 3 span: 101 span: 19 span: 20 } location: { path: 4 path: 8 span: 104 span: 0 span: 116 span: 1 } location: { path: 4 path: 8 path: 1 span: 104 span: 8 span: 21 } location: { path: 4 path: 8 path: 2 path: 0 span: 105 span: 2 span: 16 } location: { path: 4 path: 8 path: 2 path: 0 path: 5 span: 105 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 105 span: 9 span: 11 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 105 span: 14 span: 15 } location: { path: 4 path: 8 path: 2 path: 1 span: 106 span: 2 span: 20 } location: { path: 4 path: 8 path: 2 path: 1 path: 5 span: 106 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 1 path: 1 span: 106 span: 9 span: 15 } location: { path: 4 path: 8 path: 2 path: 1 path: 3 span: 106 span: 18 span: 19 } location: { path: 4 path: 8 path: 2 path: 2 span: 107 span: 2 span: 17 } location: { path: 4 path: 8 path: 2 path: 2 path: 5 span: 107 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 2 path: 1 span: 107 span: 9 span: 12 } location: { path: 4 path: 8 path: 2 path: 2 path: 3 span: 107 span: 15 span: 16 } location: { path: 4 path: 8 path: 2 path: 3 span: 108 span: 2 span: 40 } location: { path: 4 path: 8 path: 2 path: 3 path: 6 span: 108 span: 2 span: 28 } location: { path: 4 path: 8 path: 2 path: 3 path: 1 span: 108 span: 29 span: 35 } location: { path: 4 path: 8 path: 2 path: 3 path: 3 span: 108 span: 38 span: 39 } location: { path: 4 path: 8 path: 2 path: 4 span: 109 span: 2 span: 19 } location: { path: 4 path: 8 path: 2 path: 4 path: 5 span: 109 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 4 path: 1 span: 109 span: 9 span: 14 } location: { path: 4 path: 8 path: 2 path: 4 path: 3 span: 109 span: 17 span: 18 } location: { path: 4 path: 8 path: 2 path: 5 span: 110 span: 2 span: 20 } location: { path: 4 path: 8 path: 2 path: 5 path: 5 span: 110 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 5 path: 1 span: 110 span: 9 span: 15 } location: { path: 4 path: 8 path: 2 path: 5 path: 3 span: 110 span: 18 span: 19 } location: { path: 4 path: 8 path: 2 path: 6 span: 111 span: 2 span: 20 } location: { path: 4 path: 8 path: 2 path: 6 path: 5 span: 111 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 6 path: 1 span: 111 span: 9 span: 15 } location: { path: 4 path: 8 path: 2 path: 6 path: 3 span: 111 span: 18 span: 19 } location: { path: 4 path: 8 path: 2 path: 7 span: 112 span: 2 span: 20 } location: { path: 4 path: 8 path: 2 path: 7 path: 5 span: 112 span: 2 span: 6 } location: { path: 4 path: 8 path: 2 path: 7 path: 1 span: 112 span: 7 span: 15 } location: { path: 4 path: 8 path: 2 path: 7 path: 3 span: 112 span: 18 span: 19 } location: { path: 4 path: 8 path: 2 path: 8 span: 113 span: 2 span: 25 } location: { path: 4 path: 8 path: 2 path: 8 path: 5 span: 113 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 8 path: 1 span: 113 span: 9 span: 20 } location: { path: 4 path: 8 path: 2 path: 8 path: 3 span: 113 span: 23 span: 24 } location: { path: 4 path: 8 path: 2 path: 9 span: 114 span: 2 span: 43 } location: { path: 4 path: 8 path: 2 path: 9 path: 6 span: 114 span: 2 span: 27 } location: { path: 4 path: 8 path: 2 path: 9 path: 1 span: 114 span: 28 span: 37 } location: { path: 4 path: 8 path: 2 path: 9 path: 3 span: 114 span: 40 span: 42 } location: { path: 4 path: 8 path: 2 path: 10 span: 115 span: 2 span: 22 } location: { path: 4 path: 8 path: 2 path: 10 path: 5 span: 115 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 10 path: 1 span: 115 span: 9 span: 16 } location: { path: 4 path: 8 path: 2 path: 10 path: 3 span: 115 span: 19 span: 21 } location: { path: 4 path: 9 span: 118 span: 0 span: 123 span: 1 } location: { path: 4 path: 9 path: 1 span: 118 span: 8 span: 19 } location: { path: 4 path: 9 path: 2 path: 0 span: 119 span: 2 span: 16 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 119 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 119 span: 9 span: 11 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 119 span: 14 span: 15 } location: { path: 4 path: 9 path: 2 path: 1 span: 120 span: 2 span: 21 } location: { path: 4 path: 9 path: 2 path: 1 path: 5 span: 120 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 1 path: 1 span: 120 span: 9 span: 16 } location: { path: 4 path: 9 path: 2 path: 1 path: 3 span: 120 span: 19 span: 20 } location: { path: 4 path: 9 path: 2 path: 2 span: 121 span: 2 span: 20 } location: { path: 4 path: 9 path: 2 path: 2 path: 5 span: 121 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 2 path: 1 span: 121 span: 9 span: 15 } location: { path: 4 path: 9 path: 2 path: 2 path: 3 span: 121 span: 18 span: 19 } location: { path: 4 path: 9 path: 2 path: 3 span: 122 span: 2 span: 15 } location: { path: 4 path: 9 path: 2 path: 3 path: 5 span: 122 span: 2 span: 6 } location: { path: 4 path: 9 path: 2 path: 3 path: 1 span: 122 span: 7 span: 10 } location: { path: 4 path: 9 path: 2 path: 3 path: 3 span: 122 span: 13 span: 14 } location: { path: 4 path: 10 span: 125 span: 0 span: 129 span: 1 } location: { path: 4 path: 10 path: 1 span: 125 span: 8 span: 22 } location: { path: 4 path: 10 path: 2 path: 0 span: 126 span: 2 span: 16 } location: { path: 4 path: 10 path: 2 path: 0 path: 5 span: 126 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 126 span: 9 span: 11 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 126 span: 14 span: 15 } location: { path: 4 path: 10 path: 2 path: 1 span: 127 span: 2 span: 21 } location: { path: 4 path: 10 path: 2 path: 1 path: 5 span: 127 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 1 path: 1 span: 127 span: 9 span: 16 } location: { path: 4 path: 10 path: 2 path: 1 path: 3 span: 127 span: 19 span: 20 } location: { path: 4 path: 10 path: 2 path: 2 span: 128 span: 2 span: 17 } location: { path: 4 path: 10 path: 2 path: 2 path: 5 span: 128 span: 2 span: 6 } location: { path: 4 path: 10 path: 2 path: 2 path: 1 span: 128 span: 7 span: 12 } location: { path: 4 path: 10 path: 2 path: 2 path: 3 span: 128 span: 15 span: 16 } location: { path: 4 path: 11 span: 131 span: 0 span: 133 span: 1 } location: { path: 4 path: 11 path: 1 span: 131 span: 8 span: 19 } location: { path: 4 path: 11 path: 2 path: 0 span: 132 span: 2 span: 16 } location: { path: 4 path: 11 path: 2 path: 0 path: 5 span: 132 span: 2 span: 8 } location: { path: 4 path: 11 path: 2 path: 0 path: 1 span: 132 span: 9 span: 11 } location: { path: 4 path: 11 path: 2 path: 0 path: 3 span: 132 span: 14 span: 15 } location: { path: 4 path: 12 span: 135 span: 0 span: 137 span: 1 } location: { path: 4 path: 12 path: 1 span: 135 span: 8 span: 20 } location: { path: 4 path: 12 path: 2 path: 0 span: 136 span: 2 span: 57 } location: { path: 4 path: 12 path: 2 path: 0 path: 4 span: 136 span: 2 span: 10 } location: { path: 4 path: 12 path: 2 path: 0 path: 6 span: 136 span: 11 span: 42 } location: { path: 4 path: 12 path: 2 path: 0 path: 1 span: 136 span: 43 span: 52 } location: { path: 4 path: 12 path: 2 path: 0 path: 3 span: 136 span: 55 span: 56 } location: { path: 4 path: 13 span: 139 span: 0 span: 143 span: 1 } location: { path: 4 path: 13 path: 1 span: 139 span: 8 span: 29 } location: { path: 4 path: 13 path: 2 path: 0 span: 140 span: 2 span: 16 } location: { path: 4 path: 13 path: 2 path: 0 path: 5 span: 140 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 0 path: 1 span: 140 span: 9 span: 11 } location: { path: 4 path: 13 path: 2 path: 0 path: 3 span: 140 span: 14 span: 15 } location: { path: 4 path: 13 path: 2 path: 1 span: 141 span: 2 span: 18 } location: { path: 4 path: 13 path: 2 path: 1 path: 5 span: 141 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 1 path: 1 span: 141 span: 9 span: 13 } location: { path: 4 path: 13 path: 2 path: 1 path: 3 span: 141 span: 16 span: 17 } location: { path: 4 path: 13 path: 2 path: 2 span: 142 span: 2 span: 34 } location: { path: 4 path: 13 path: 2 path: 2 path: 6 span: 142 span: 2 span: 21 } location: { path: 4 path: 13 path: 2 path: 2 path: 1 span: 142 span: 22 span: 29 } location: { path: 4 path: 13 path: 2 path: 2 path: 3 span: 142 span: 32 span: 33 } location: { path: 4 path: 14 span: 145 span: 0 span: 149 span: 1 } location: { path: 4 path: 14 path: 1 span: 145 span: 8 span: 25 } location: { path: 4 path: 14 path: 2 path: 0 span: 146 span: 2 span: 16 } location: { path: 4 path: 14 path: 2 path: 0 path: 5 span: 146 span: 2 span: 8 } location: { path: 4 path: 14 path: 2 path: 0 path: 1 span: 146 span: 9 span: 11 } location: { path: 4 path: 14 path: 2 path: 0 path: 3 span: 146 span: 14 span: 15 } location: { path: 4 path: 14 path: 2 path: 1 span: 147 span: 2 span: 36 } location: { path: 4 path: 14 path: 2 path: 1 path: 6 span: 147 span: 2 span: 21 } location: { path: 4 path: 14 path: 2 path: 1 path: 1 span: 147 span: 22 span: 31 } location: { path: 4 path: 14 path: 2 path: 1 path: 3 span: 147 span: 34 span: 35 } location: { path: 4 path: 14 path: 2 path: 2 span: 148 span: 2 span: 38 } location: { path: 4 path: 14 path: 2 path: 2 path: 6 span: 148 span: 2 span: 21 } location: { path: 4 path: 14 path: 2 path: 2 path: 1 span: 148 span: 22 span: 33 } location: { path: 4 path: 14 path: 2 path: 2 path: 3 span: 148 span: 36 span: 37 } location: { path: 4 path: 15 span: 151 span: 0 span: 154 span: 1 } location: { path: 4 path: 15 path: 1 span: 151 span: 8 span: 20 } location: { path: 4 path: 15 path: 2 path: 0 span: 152 span: 2 span: 16 } location: { path: 4 path: 15 path: 2 path: 0 path: 5 span: 152 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 0 path: 1 span: 152 span: 9 span: 11 } location: { path: 4 path: 15 path: 2 path: 0 path: 3 span: 152 span: 14 span: 15 } location: { path: 4 path: 15 path: 2 path: 1 span: 153 span: 2 span: 21 } location: { path: 4 path: 15 path: 2 path: 1 path: 5 span: 153 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 1 path: 1 span: 153 span: 9 span: 16 } location: { path: 4 path: 15 path: 2 path: 1 path: 3 span: 153 span: 19 span: 20 } location: { path: 4 path: 16 span: 156 span: 0 span: 158 span: 1 } location: { path: 4 path: 16 path: 1 span: 156 span: 8 span: 21 } location: { path: 4 path: 16 path: 2 path: 0 span: 157 span: 2 span: 17 } location: { path: 4 path: 16 path: 2 path: 0 path: 5 span: 157 span: 2 span: 8 } location: { path: 4 path: 16 path: 2 path: 0 path: 1 span: 157 span: 9 span: 12 } location: { path: 4 path: 16 path: 2 path: 0 path: 3 span: 157 span: 15 span: 16 } location: { path: 4 path: 17 span: 160 span: 0 span: 163 span: 1 } location: { path: 4 path: 17 path: 1 span: 160 span: 8 span: 19 } location: { path: 4 path: 17 path: 2 path: 0 span: 161 span: 2 span: 16 } location: { path: 4 path: 17 path: 2 path: 0 path: 5 span: 161 span: 2 span: 8 } location: { path: 4 path: 17 path: 2 path: 0 path: 1 span: 161 span: 9 span: 11 } location: { path: 4 path: 17 path: 2 path: 0 path: 3 span: 161 span: 14 span: 15 } location: { path: 4 path: 17 path: 2 path: 1 span: 162 span: 2 span: 21 } location: { path: 4 path: 17 path: 2 path: 1 path: 5 span: 162 span: 2 span: 8 } location: { path: 4 path: 17 path: 2 path: 1 path: 1 span: 162 span: 9 span: 16 } location: { path: 4 path: 17 path: 2 path: 1 path: 3 span: 162 span: 19 span: 20 } location: { path: 4 path: 18 span: 165 span: 0 span: 168 span: 1 } location: { path: 4 path: 18 path: 1 span: 165 span: 8 span: 20 } location: { path: 4 path: 18 path: 2 path: 0 span: 166 span: 2 span: 25 } location: { path: 4 path: 18 path: 2 path: 0 path: 5 span: 166 span: 2 span: 8 } location: { path: 4 path: 18 path: 2 path: 0 path: 1 span: 166 span: 9 span: 20 } location: { path: 4 path: 18 path: 2 path: 0 path: 3 span: 166 span: 23 span: 24 } location: { path: 4 path: 18 path: 2 path: 1 span: 167 span: 2 span: 42 } location: { path: 4 path: 18 path: 2 path: 1 path: 6 span: 167 span: 2 span: 27 } location: { path: 4 path: 18 path: 2 path: 1 path: 1 span: 167 span: 28 span: 37 } location: { path: 4 path: 18 path: 2 path: 1 path: 3 span: 167 span: 40 span: 41 } location: { path: 4 path: 19 span: 170 span: 0 span: 172 span: 1 } location: { path: 4 path: 19 path: 1 span: 170 span: 8 span: 20 } location: { path: 4 path: 19 path: 2 path: 0 span: 171 span: 2 span: 16 } location: { path: 4 path: 19 path: 2 path: 0 path: 5 span: 171 span: 2 span: 8 } location: { path: 4 path: 19 path: 2 path: 0 path: 1 span: 171 span: 9 span: 11 } location: { path: 4 path: 19 path: 2 path: 0 path: 3 span: 171 span: 14 span: 15 } location: { path: 4 path: 20 span: 174 span: 0 span: 176 span: 1 } location: { path: 4 path: 20 path: 1 span: 174 span: 8 span: 21 } location: { path: 4 path: 20 path: 2 path: 0 span: 175 span: 2 span: 32 } location: { path: 4 path: 20 path: 2 path: 0 path: 6 span: 175 span: 2 span: 21 } location: { path: 4 path: 20 path: 2 path: 0 path: 1 span: 175 span: 22 span: 27 } location: { path: 4 path: 20 path: 2 path: 0 path: 3 span: 175 span: 30 span: 31 } location: { path: 4 path: 21 span: 178 span: 0 span: 180 span: 1 } location: { path: 4 path: 21 path: 1 span: 178 span: 8 span: 22 } location: { path: 4 path: 21 path: 2 path: 0 span: 179 span: 2 span: 16 } location: { path: 4 path: 21 path: 2 path: 0 path: 5 span: 179 span: 2 span: 8 } location: { path: 4 path: 21 path: 2 path: 0 path: 1 span: 179 span: 9 span: 11 } location: { path: 4 path: 21 path: 2 path: 0 path: 3 span: 179 span: 14 span: 15 } location: { path: 4 path: 22 span: 182 span: 0 span: 186 span: 1 } location: { path: 4 path: 22 path: 1 span: 182 span: 8 span: 23 } location: { path: 4 path: 22 path: 2 path: 0 span: 183 span: 2 span: 22 } location: { path: 4 path: 22 path: 2 path: 0 path: 5 span: 183 span: 2 span: 8 } location: { path: 4 path: 22 path: 2 path: 0 path: 1 span: 183 span: 9 span: 17 } location: { path: 4 path: 22 path: 2 path: 0 path: 3 span: 183 span: 20 span: 21 } location: { path: 4 path: 22 path: 2 path: 1 span: 184 span: 2 span: 22 } location: { path: 4 path: 22 path: 2 path: 1 path: 5 span: 184 span: 2 span: 8 } location: { path: 4 path: 22 path: 2 path: 1 path: 1 span: 184 span: 9 span: 17 } location: { path: 4 path: 22 path: 2 path: 1 path: 3 span: 184 span: 20 span: 21 } location: { path: 4 path: 22 path: 2 path: 2 span: 185 span: 2 span: 21 } location: { path: 4 path: 22 path: 2 path: 2 path: 5 span: 185 span: 2 span: 8 } location: { path: 4 path: 22 path: 2 path: 2 path: 1 span: 185 span: 9 span: 16 } location: { path: 4 path: 22 path: 2 path: 2 path: 3 span: 185 span: 19 span: 20 } location: { path: 4 path: 23 span: 188 span: 0 span: 191 span: 1 } location: { path: 4 path: 23 path: 1 span: 188 span: 8 span: 23 } location: { path: 4 path: 23 path: 2 path: 0 span: 189 span: 2 span: 16 } location: { path: 4 path: 23 path: 2 path: 0 path: 5 span: 189 span: 2 span: 8 } location: { path: 4 path: 23 path: 2 path: 0 path: 1 span: 189 span: 9 span: 11 } location: { path: 4 path: 23 path: 2 path: 0 path: 3 span: 189 span: 14 span: 15 } location: { path: 4 path: 23 path: 2 path: 1 span: 190 span: 2 span: 15 } location: { path: 4 path: 23 path: 2 path: 1 path: 5 span: 190 span: 2 span: 6 } location: { path: 4 path: 23 path: 2 path: 1 path: 1 span: 190 span: 7 span: 10 } location: { path: 4 path: 23 path: 2 path: 1 path: 3 span: 190 span: 13 span: 14 } location: { path: 4 path: 24 span: 193 span: 0 span: 195 span: 1 } location: { path: 4 path: 24 path: 1 span: 193 span: 8 span: 20 } location: { path: 4 path: 24 path: 2 path: 0 span: 194 span: 2 span: 16 } location: { path: 4 path: 24 path: 2 path: 0 path: 5 span: 194 span: 2 span: 8 } location: { path: 4 path: 24 path: 2 path: 0 path: 1 span: 194 span: 9 span: 11 } location: { path: 4 path: 24 path: 2 path: 0 path: 3 span: 194 span: 14 span: 15 } location: { path: 4 path: 25 span: 197 span: 0 span: 199 span: 1 } location: { path: 4 path: 25 path: 1 span: 197 span: 8 span: 21 } location: { path: 4 path: 25 path: 2 path: 0 span: 198 span: 2 span: 16 } location: { path: 4 path: 25 path: 2 path: 0 path: 5 span: 198 span: 2 span: 8 } location: { path: 4 path: 25 path: 2 path: 0 path: 1 span: 198 span: 9 span: 11 } location: { path: 4 path: 25 path: 2 path: 0 path: 3 span: 198 span: 14 span: 15 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "google/protobuf/field_mask.proto" package: "google.protobuf" message_type: { name: "FieldMask" field: { name: "paths" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "paths" } } options: { java_package: "com.google.protobuf" java_outer_classname: "FieldMaskProto" java_multiple_files: true go_package: "google.golang.org/protobuf/types/known/fieldmaskpb" cc_enable_arenas: true objc_class_prefix: "GPB" csharp_namespace: "Google.Protobuf.WellKnownTypes" } source_code_info: { location: { span: 30 span: 0 span: 244 span: 1 } location: { path: 12 span: 30 span: 0 span: 18 leading_detached_comments: " 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" } location: { path: 2 span: 32 span: 0 span: 24 } location: { path: 8 span: 34 span: 0 span: 44 } location: { path: 8 path: 1 span: 34 span: 0 span: 44 } location: { path: 8 span: 35 span: 0 span: 47 } location: { path: 8 path: 8 span: 35 span: 0 span: 47 } location: { path: 8 span: 36 span: 0 span: 34 } location: { path: 8 path: 10 span: 36 span: 0 span: 34 } location: { path: 8 span: 37 span: 0 span: 33 } location: { path: 8 path: 36 span: 37 span: 0 span: 33 } location: { path: 8 span: 38 span: 0 span: 59 } location: { path: 8 path: 37 span: 38 span: 0 span: 59 } location: { path: 8 span: 39 span: 0 span: 73 } location: { path: 8 path: 11 span: 39 span: 0 span: 73 } location: { path: 8 span: 40 span: 0 span: 31 } location: { path: 8 path: 31 span: 40 span: 0 span: 31 } location: { path: 4 path: 0 span: 241 span: 0 span: 244 span: 1 leading_comments: " `FieldMask` represents a set of symbolic field paths, for example:\n\n paths: \"f.a\"\n paths: \"f.b.d\"\n\n Here `f` represents a field in some root message, `a` and `b`\n fields in the message found in `f`, and `d` a field found in the\n message in `f.b`.\n\n Field masks are used to specify a subset of fields that should be\n returned by a get operation or modified by an update operation.\n Field masks also have a custom JSON encoding (see below).\n\n # Field Masks in Projections\n\n When used in the context of a projection, a response message or\n sub-message is filtered by the API to only contain those fields as\n specified in the mask. For example, if the mask in the previous\n example is applied to a response message as follows:\n\n f {\n a : 22\n b {\n d : 1\n x : 2\n }\n y : 13\n }\n z: 8\n\n The result will not contain specific values for fields x,y and z\n (their value will be set to the default, and omitted in proto text\n output):\n\n\n f {\n a : 22\n b {\n d : 1\n }\n }\n\n A repeated field is not allowed except at the last position of a\n paths string.\n\n If a FieldMask object is not present in a get operation, the\n operation applies to all fields (as if a FieldMask of all fields\n had been specified).\n\n Note that a field mask does not necessarily apply to the\n top-level response message. In case of a REST get operation, the\n field mask applies directly to the response, but in case of a REST\n list operation, the mask instead applies to each individual message\n in the returned resource list. In case of a REST custom method,\n other definitions may be used. Where the mask applies will be\n clearly documented together with its declaration in the API. In\n any case, the effect on the returned resource/resources is required\n behavior for APIs.\n\n # Field Masks in Update Operations\n\n A field mask in update operations specifies which fields of the\n targeted resource are going to be updated. The API is required\n to only change the values of the fields as specified in the mask\n and leave the others untouched. If a resource is passed in to\n describe the updated values, the API ignores the values of all\n fields not covered by the mask.\n\n If a repeated field is specified for an update operation, new values will\n be appended to the existing repeated field in the target resource. Note that\n a repeated field is only allowed in the last position of a `paths` string.\n\n If a sub-message is specified in the last position of the field mask for an\n update operation, then new value will be merged into the existing sub-message\n in the target resource.\n\n For example, given the target message:\n\n f {\n b {\n d: 1\n x: 2\n }\n c: [1]\n }\n\n And an update message:\n\n f {\n b {\n d: 10\n }\n c: [2]\n }\n\n then if the field mask is:\n\n paths: [\"f.b\", \"f.c\"]\n\n then the result will be:\n\n f {\n b {\n d: 10\n x: 2\n }\n c: [1, 2]\n }\n\n An implementation may provide options to override this default behavior for\n repeated and message fields.\n\n In order to reset a field's value to the default, the field must\n be in the mask and set to the default value in the provided resource.\n Hence, in order to reset all fields of a resource, provide a default\n instance of the resource and set all fields in the mask, or do\n not provide a mask as described below.\n\n If a field mask is not present on update, the operation applies to\n all fields (as if a field mask of all fields has been specified).\n Note that in the presence of schema evolution, this may mean that\n fields the client does not know and has therefore not filled into\n the request will be reset to their default. If this is unwanted\n behavior, a specific service may require a client to always specify\n a field mask, producing an error if not.\n\n As with get operations, the location of the resource which\n describes the updated values in the request message depends on the\n operation kind. In any case, the effect of the field mask is\n required to be honored by the API.\n\n ## Considerations for HTTP REST\n\n The HTTP kind of an update operation which uses a field mask must\n be set to PATCH instead of PUT in order to satisfy HTTP semantics\n (PUT must only be used for full updates).\n\n # JSON Encoding of Field Masks\n\n In JSON, a field mask is encoded as a single string where paths are\n separated by a comma. Fields name in each path are converted\n to/from lower-camel naming conventions.\n\n As an example, consider the following message declarations:\n\n message Profile {\n User user = 1;\n Photo photo = 2;\n }\n message User {\n string display_name = 1;\n string address = 2;\n }\n\n In proto a field mask for `Profile` may look as such:\n\n mask {\n paths: \"user.display_name\"\n paths: \"photo\"\n }\n\n In JSON, the same mask is represented as below:\n\n {\n mask: \"user.displayName,photo\"\n }\n\n # Field Masks and Oneof Fields\n\n Field masks treat fields in oneofs just as regular fields. Consider the\n following message:\n\n message SampleMessage {\n oneof test_oneof {\n string name = 4;\n SubMessage sub_message = 9;\n }\n }\n\n The field mask can be:\n\n mask {\n paths: \"name\"\n }\n\n Or:\n\n mask {\n paths: \"sub_message\"\n }\n\n Note that oneof type names (\"test_oneof\" in this case) cannot be used in\n paths.\n\n ## Field Mask Verification\n\n The implementation of any API method which has a FieldMask type field in the\n request should verify the included field paths, and return an\n `INVALID_ARGUMENT` error if any path is unmappable.\n" } location: { path: 4 path: 0 path: 1 span: 241 span: 8 span: 17 } location: { path: 4 path: 0 path: 2 path: 0 span: 243 span: 2 span: 28 leading_comments: " The set of field mask paths.\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 4 span: 243 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 243 span: 11 span: 17 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 243 span: 18 span: 23 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 243 span: 26 span: 27 } } syntax: "proto3" buf_extension: { is_import: true is_syntax_unspecified: false } } file: { name: "services/containers/v1/containers.proto" package: "containerd.services.containers.v1" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/field_mask.proto" dependency: "google/protobuf/timestamp.proto" message_type: { name: "Container" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "labels" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container.LabelsEntry" json_name: "labels" } field: { name: "image" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "image" } field: { name: "runtime" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container.Runtime" json_name: "runtime" } field: { name: "spec" number: 5 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "spec" } field: { name: "snapshotter" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "snapshot_key" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotKey" } field: { name: "created_at" number: 8 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "updated_at" number: 9 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "updatedAt" } field: { name: "extensions" number: 10 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container.ExtensionsEntry" json_name: "extensions" } field: { name: "sandbox" number: 11 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandbox" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } nested_type: { name: "Runtime" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "options" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } nested_type: { name: "ExtensionsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "value" } options: { map_entry: true } } } message_type: { name: "GetContainerRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "GetContainerResponse" field: { name: "container" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container" json_name: "container" } } message_type: { name: "ListContainersRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "ListContainersResponse" field: { name: "containers" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container" json_name: "containers" } } message_type: { name: "CreateContainerRequest" field: { name: "container" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container" json_name: "container" } } message_type: { name: "CreateContainerResponse" field: { name: "container" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container" json_name: "container" } } message_type: { name: "UpdateContainerRequest" field: { name: "container" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container" json_name: "container" } field: { name: "update_mask" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FieldMask" json_name: "updateMask" } } message_type: { name: "UpdateContainerResponse" field: { name: "container" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container" json_name: "container" } } message_type: { name: "DeleteContainerRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "ListContainerMessage" field: { name: "container" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.containers.v1.Container" json_name: "container" } } service: { name: "Containers" method: { name: "Get" input_type: ".containerd.services.containers.v1.GetContainerRequest" output_type: ".containerd.services.containers.v1.GetContainerResponse" } method: { name: "List" input_type: ".containerd.services.containers.v1.ListContainersRequest" output_type: ".containerd.services.containers.v1.ListContainersResponse" } method: { name: "ListStream" input_type: ".containerd.services.containers.v1.ListContainersRequest" output_type: ".containerd.services.containers.v1.ListContainerMessage" server_streaming: true } method: { name: "Create" input_type: ".containerd.services.containers.v1.CreateContainerRequest" output_type: ".containerd.services.containers.v1.CreateContainerResponse" } method: { name: "Update" input_type: ".containerd.services.containers.v1.UpdateContainerRequest" output_type: ".containerd.services.containers.v1.UpdateContainerResponse" } method: { name: "Delete" input_type: ".containerd.services.containers.v1.DeleteContainerRequest" output_type: ".google.protobuf.Empty" } } options: { go_package: "github.com/containerd/containerd/api/services/containers/v1;containers" } source_code_info: { location: { span: 16 span: 0 span: 180 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 42 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 37 } location: { path: 3 path: 2 span: 22 span: 0 span: 42 } location: { path: 3 path: 3 span: 23 span: 0 span: 41 } location: { path: 8 span: 25 span: 0 span: 93 } location: { path: 8 path: 11 span: 25 span: 0 span: 93 } location: { path: 6 path: 0 span: 43 span: 0 span: 50 span: 1 leading_comments: " Containers provides metadata storage for containers used in the execution\n service.\n\n The objects here provide an state-independent view of containers for use in\n management and resource pinning. From that perspective, containers do not\n have a \"state\" but rather this is the set of resources that will be\n considered in use by the container.\n\n From the perspective of the execution service, these objects represent the\n base parameters for creating a container process.\n\n In general, when looking to add fields for this type, first ask yourself\n whether or not the function of the field has to do with runtime execution or\n is invariant of the runtime state of the container. If it has to do with\n runtime, or changes as the \"container\" is started and stops, it probably\n doesn't belong on this object.\n" } location: { path: 6 path: 0 path: 1 span: 43 span: 8 span: 18 } location: { path: 6 path: 0 path: 2 path: 0 span: 44 span: 2 span: 62 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 44 span: 6 span: 9 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 44 span: 10 span: 29 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 44 span: 40 span: 60 } location: { path: 6 path: 0 path: 2 path: 1 span: 45 span: 2 span: 67 } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 45 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 45 span: 11 span: 32 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 45 span: 43 span: 65 } location: { path: 6 path: 0 path: 2 path: 2 span: 46 span: 2 span: 78 } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 46 span: 6 span: 16 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 46 span: 17 span: 38 } location: { path: 6 path: 0 path: 2 path: 2 path: 6 span: 46 span: 49 span: 55 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 46 span: 56 span: 76 } location: { path: 6 path: 0 path: 2 path: 3 span: 47 span: 2 span: 71 } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 47 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 47 span: 13 span: 35 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 47 span: 46 span: 69 } location: { path: 6 path: 0 path: 2 path: 4 span: 48 span: 2 span: 71 } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 48 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 48 span: 13 span: 35 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 48 span: 46 span: 69 } location: { path: 6 path: 0 path: 2 path: 5 span: 49 span: 2 span: 69 } location: { path: 6 path: 0 path: 2 path: 5 path: 1 span: 49 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 5 path: 2 span: 49 span: 13 span: 35 } location: { path: 6 path: 0 path: 2 path: 5 path: 3 span: 49 span: 46 span: 67 } location: { path: 4 path: 0 span: 52 span: 0 span: 118 span: 1 } location: { path: 4 path: 0 path: 1 span: 52 span: 8 span: 17 } location: { path: 4 path: 0 path: 2 path: 0 span: 56 span: 2 span: 16 leading_comments: " ID is the user-specified identifier.\n\n This field may not be updated.\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 56 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 56 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 56 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 span: 64 span: 2 span: 33 leading_comments: " Labels provides an area to include arbitrary data on containers.\n\n The combined size of a key/value pair cannot exceed 4096 bytes.\n\n Note that to add a new value to this field, read the existing set and\n include the entire result in the update call.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 64 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 64 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 64 span: 31 span: 32 } location: { path: 4 path: 0 path: 2 path: 2 span: 70 span: 2 span: 19 leading_comments: " Image contains the reference of the image used to build the\n specification and snapshots for running this container.\n\n If this field is updated, the spec and rootfs needed to updated, as well.\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 70 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 70 span: 9 span: 14 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 70 span: 17 span: 18 } location: { path: 4 path: 0 path: 3 path: 1 span: 72 span: 2 span: 77 span: 3 } location: { path: 4 path: 0 path: 3 path: 1 path: 1 span: 72 span: 10 span: 17 } location: { path: 4 path: 0 path: 3 path: 1 path: 2 path: 0 span: 74 span: 4 span: 20 leading_comments: " Name is the name of the runtime.\n" } location: { path: 4 path: 0 path: 3 path: 1 path: 2 path: 0 path: 5 span: 74 span: 4 span: 10 } location: { path: 4 path: 0 path: 3 path: 1 path: 2 path: 0 path: 1 span: 74 span: 11 span: 15 } location: { path: 4 path: 0 path: 3 path: 1 path: 2 path: 0 path: 3 span: 74 span: 18 span: 19 } location: { path: 4 path: 0 path: 3 path: 1 path: 2 path: 1 span: 76 span: 4 span: 36 leading_comments: " Options specify additional runtime initialization options.\n" } location: { path: 4 path: 0 path: 3 path: 1 path: 2 path: 1 path: 6 span: 76 span: 4 span: 23 } location: { path: 4 path: 0 path: 3 path: 1 path: 2 path: 1 path: 1 span: 76 span: 24 span: 31 } location: { path: 4 path: 0 path: 3 path: 1 path: 2 path: 1 path: 3 span: 76 span: 34 span: 35 } location: { path: 4 path: 0 path: 2 path: 3 span: 79 span: 2 span: 22 leading_comments: " Runtime specifies which runtime to use for executing this container.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 79 span: 2 span: 9 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 79 span: 10 span: 17 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 79 span: 20 span: 21 } location: { path: 4 path: 0 path: 2 path: 4 span: 82 span: 2 span: 31 leading_comments: " Spec to be used when creating the container. This is runtime specific.\n" } location: { path: 4 path: 0 path: 2 path: 4 path: 6 span: 82 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 82 span: 22 span: 26 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 82 span: 29 span: 30 } location: { path: 4 path: 0 path: 2 path: 5 span: 85 span: 2 span: 25 leading_comments: " Snapshotter specifies the snapshotter name used for rootfs\n" } location: { path: 4 path: 0 path: 2 path: 5 path: 5 span: 85 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 85 span: 9 span: 20 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 85 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 6 span: 97 span: 2 span: 26 leading_comments: " SnapshotKey specifies the snapshot key to use for the container's root\n filesystem. When starting a task from this container, a caller should\n look up the mounts from the snapshot service and include those on the\n task create request.\n\n Snapshots referenced in this field will not be garbage collected.\n\n This field is set to empty when the rootfs is not a snapshot.\n\n This field may be updated.\n" } location: { path: 4 path: 0 path: 2 path: 6 path: 5 span: 97 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 97 span: 9 span: 21 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 97 span: 24 span: 25 } location: { path: 4 path: 0 path: 2 path: 7 span: 100 span: 2 span: 43 leading_comments: " CreatedAt is the time the container was first created.\n" } location: { path: 4 path: 0 path: 2 path: 7 path: 6 span: 100 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 7 path: 1 span: 100 span: 28 span: 38 } location: { path: 4 path: 0 path: 2 path: 7 path: 3 span: 100 span: 41 span: 42 } location: { path: 4 path: 0 path: 2 path: 8 span: 103 span: 2 span: 43 leading_comments: " UpdatedAt is the last time the container was mutated.\n" } location: { path: 4 path: 0 path: 2 path: 8 path: 6 span: 103 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 8 path: 1 span: 103 span: 28 span: 38 } location: { path: 4 path: 0 path: 2 path: 8 path: 3 span: 103 span: 41 span: 42 } location: { path: 4 path: 0 path: 2 path: 9 span: 114 span: 2 span: 51 leading_comments: " Extensions allow clients to provide zero or more blobs that are directly\n associated with the container. One may provide protobuf, json, or other\n encoding formats. The primary use of this is to further decorate the\n container object with fields that may be specific to a client integration.\n\n The key portion of this map should identify a \"name\" for the extension\n that should be unique against other extensions. When updating extension\n data, one should only update the specified extension using field paths\n to select a specific map key.\n" } location: { path: 4 path: 0 path: 2 path: 9 path: 6 span: 114 span: 2 span: 34 } location: { path: 4 path: 0 path: 2 path: 9 path: 1 span: 114 span: 35 span: 45 } location: { path: 4 path: 0 path: 2 path: 9 path: 3 span: 114 span: 48 span: 50 } location: { path: 4 path: 0 path: 2 path: 10 span: 117 span: 2 span: 22 leading_comments: " Sandbox ID this container belongs to.\n" } location: { path: 4 path: 0 path: 2 path: 10 path: 5 span: 117 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 10 path: 1 span: 117 span: 9 span: 16 } location: { path: 4 path: 0 path: 2 path: 10 path: 3 span: 117 span: 19 span: 21 } location: { path: 4 path: 1 span: 120 span: 0 span: 122 span: 1 } location: { path: 4 path: 1 path: 1 span: 120 span: 8 span: 27 } location: { path: 4 path: 1 path: 2 path: 0 span: 121 span: 2 span: 16 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 121 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 121 span: 9 span: 11 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 121 span: 14 span: 15 } location: { path: 4 path: 2 span: 124 span: 0 span: 126 span: 1 } location: { path: 4 path: 2 path: 1 span: 124 span: 8 span: 28 } location: { path: 4 path: 2 path: 2 path: 0 span: 125 span: 2 span: 26 } location: { path: 4 path: 2 path: 2 path: 0 path: 6 span: 125 span: 2 span: 11 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 125 span: 12 span: 21 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 125 span: 24 span: 25 } location: { path: 4 path: 3 span: 128 span: 0 span: 140 span: 1 } location: { path: 4 path: 3 path: 1 span: 128 span: 8 span: 29 } location: { path: 4 path: 3 path: 2 path: 0 span: 139 span: 2 span: 30 leading_comments: " Filters contains one or more filters using the syntax defined in the\n containerd filter package.\n\n The returned result will be those that match any of the provided\n filters. Expanded, containers that match the following will be\n returned:\n\n\tfilters[0] or filters[1] or ... or filters[n-1] or filters[n]\n\n If filters is zero-length or nil, all items will be returned.\n" } location: { path: 4 path: 3 path: 2 path: 0 path: 4 span: 139 span: 2 span: 10 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 139 span: 11 span: 17 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 139 span: 18 span: 25 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 139 span: 28 span: 29 } location: { path: 4 path: 4 span: 142 span: 0 span: 144 span: 1 } location: { path: 4 path: 4 path: 1 span: 142 span: 8 span: 30 } location: { path: 4 path: 4 path: 2 path: 0 span: 143 span: 2 span: 36 } location: { path: 4 path: 4 path: 2 path: 0 path: 4 span: 143 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 0 path: 6 span: 143 span: 11 span: 20 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 143 span: 21 span: 31 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 143 span: 34 span: 35 } location: { path: 4 path: 5 span: 146 span: 0 span: 148 span: 1 } location: { path: 4 path: 5 path: 1 span: 146 span: 8 span: 30 } location: { path: 4 path: 5 path: 2 path: 0 span: 147 span: 2 span: 26 } location: { path: 4 path: 5 path: 2 path: 0 path: 6 span: 147 span: 2 span: 11 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 147 span: 12 span: 21 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 147 span: 24 span: 25 } location: { path: 4 path: 6 span: 150 span: 0 span: 152 span: 1 } location: { path: 4 path: 6 path: 1 span: 150 span: 8 span: 31 } location: { path: 4 path: 6 path: 2 path: 0 span: 151 span: 2 span: 26 } location: { path: 4 path: 6 path: 2 path: 0 path: 6 span: 151 span: 2 span: 11 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 151 span: 12 span: 21 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 151 span: 24 span: 25 } location: { path: 4 path: 7 span: 159 span: 0 span: 168 span: 1 leading_comments: " UpdateContainerRequest updates the metadata on one or more container.\n\n The operation should follow semantics described in\n https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/field-mask,\n unless otherwise qualified.\n" } location: { path: 4 path: 7 path: 1 span: 159 span: 8 span: 30 } location: { path: 4 path: 7 path: 2 path: 0 span: 163 span: 2 span: 26 leading_comments: " Container provides the target values, as declared by the mask, for the update.\n\n The ID field must be set.\n" } location: { path: 4 path: 7 path: 2 path: 0 path: 6 span: 163 span: 2 span: 11 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 163 span: 12 span: 21 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 163 span: 24 span: 25 } location: { path: 4 path: 7 path: 2 path: 1 span: 167 span: 2 span: 44 leading_comments: " UpdateMask specifies which fields to perform the update on. If empty,\n the operation applies to all fields.\n" } location: { path: 4 path: 7 path: 2 path: 1 path: 6 span: 167 span: 2 span: 27 } location: { path: 4 path: 7 path: 2 path: 1 path: 1 span: 167 span: 28 span: 39 } location: { path: 4 path: 7 path: 2 path: 1 path: 3 span: 167 span: 42 span: 43 } location: { path: 4 path: 8 span: 170 span: 0 span: 172 span: 1 } location: { path: 4 path: 8 path: 1 span: 170 span: 8 span: 31 } location: { path: 4 path: 8 path: 2 path: 0 span: 171 span: 2 span: 26 } location: { path: 4 path: 8 path: 2 path: 0 path: 6 span: 171 span: 2 span: 11 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 171 span: 12 span: 21 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 171 span: 24 span: 25 } location: { path: 4 path: 9 span: 174 span: 0 span: 176 span: 1 } location: { path: 4 path: 9 path: 1 span: 174 span: 8 span: 30 } location: { path: 4 path: 9 path: 2 path: 0 span: 175 span: 2 span: 16 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 175 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 175 span: 9 span: 11 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 175 span: 14 span: 15 } location: { path: 4 path: 10 span: 178 span: 0 span: 180 span: 1 } location: { path: 4 path: 10 path: 1 span: 178 span: 8 span: 28 } location: { path: 4 path: 10 path: 2 path: 0 span: 179 span: 2 span: 26 } location: { path: 4 path: 10 path: 2 path: 0 path: 6 span: 179 span: 2 span: 11 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 179 span: 12 span: 21 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 179 span: 24 span: 25 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/content/v1/content.proto" package: "containerd.services.content.v1" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/field_mask.proto" dependency: "google/protobuf/timestamp.proto" message_type: { name: "Info" field: { name: "digest" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "digest" } field: { name: "size" number: 2 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "size" } field: { name: "created_at" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "updated_at" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "updatedAt" } field: { name: "labels" number: 5 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.content.v1.Info.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "InfoRequest" field: { name: "digest" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "digest" } } message_type: { name: "InfoResponse" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.content.v1.Info" json_name: "info" } } message_type: { name: "UpdateRequest" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.content.v1.Info" json_name: "info" } field: { name: "update_mask" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FieldMask" json_name: "updateMask" } } message_type: { name: "UpdateResponse" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.content.v1.Info" json_name: "info" } } message_type: { name: "ListContentRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "ListContentResponse" field: { name: "info" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.content.v1.Info" json_name: "info" } } message_type: { name: "DeleteContentRequest" field: { name: "digest" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "digest" } } message_type: { name: "ReadContentRequest" field: { name: "digest" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "digest" } field: { name: "offset" number: 2 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "offset" } field: { name: "size" number: 3 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "size" } } message_type: { name: "ReadContentResponse" field: { name: "offset" number: 1 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "offset" } field: { name: "data" number: 2 label: LABEL_OPTIONAL type: TYPE_BYTES json_name: "data" } } message_type: { name: "Status" field: { name: "started_at" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "startedAt" } field: { name: "updated_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "updatedAt" } field: { name: "ref" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "ref" } field: { name: "offset" number: 4 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "offset" } field: { name: "total" number: 5 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "total" } field: { name: "expected" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "expected" } } message_type: { name: "StatusRequest" field: { name: "ref" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "ref" } } message_type: { name: "StatusResponse" field: { name: "status" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.content.v1.Status" json_name: "status" } } message_type: { name: "ListStatusesRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "ListStatusesResponse" field: { name: "statuses" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.content.v1.Status" json_name: "statuses" } } message_type: { name: "WriteContentRequest" field: { name: "action" number: 1 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".containerd.services.content.v1.WriteAction" json_name: "action" } field: { name: "ref" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "ref" } field: { name: "total" number: 3 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "total" } field: { name: "expected" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "expected" } field: { name: "offset" number: 5 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "offset" } field: { name: "data" number: 6 label: LABEL_OPTIONAL type: TYPE_BYTES json_name: "data" } field: { name: "labels" number: 7 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.content.v1.WriteContentRequest.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "WriteContentResponse" field: { name: "action" number: 1 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".containerd.services.content.v1.WriteAction" json_name: "action" } field: { name: "started_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "startedAt" } field: { name: "updated_at" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "updatedAt" } field: { name: "offset" number: 4 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "offset" } field: { name: "total" number: 5 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "total" } field: { name: "digest" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "digest" } } message_type: { name: "AbortRequest" field: { name: "ref" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "ref" } } enum_type: { name: "WriteAction" value: { name: "STAT" number: 0 } value: { name: "WRITE" number: 1 } value: { name: "COMMIT" number: 2 } } service: { name: "Content" method: { name: "Info" input_type: ".containerd.services.content.v1.InfoRequest" output_type: ".containerd.services.content.v1.InfoResponse" } method: { name: "Update" input_type: ".containerd.services.content.v1.UpdateRequest" output_type: ".containerd.services.content.v1.UpdateResponse" } method: { name: "List" input_type: ".containerd.services.content.v1.ListContentRequest" output_type: ".containerd.services.content.v1.ListContentResponse" server_streaming: true } method: { name: "Delete" input_type: ".containerd.services.content.v1.DeleteContentRequest" output_type: ".google.protobuf.Empty" } method: { name: "Read" input_type: ".containerd.services.content.v1.ReadContentRequest" output_type: ".containerd.services.content.v1.ReadContentResponse" server_streaming: true } method: { name: "Status" input_type: ".containerd.services.content.v1.StatusRequest" output_type: ".containerd.services.content.v1.StatusResponse" } method: { name: "ListStatuses" input_type: ".containerd.services.content.v1.ListStatusesRequest" output_type: ".containerd.services.content.v1.ListStatusesResponse" } method: { name: "Write" input_type: ".containerd.services.content.v1.WriteContentRequest" output_type: ".containerd.services.content.v1.WriteContentResponse" client_streaming: true server_streaming: true } method: { name: "Abort" input_type: ".containerd.services.content.v1.AbortRequest" output_type: ".google.protobuf.Empty" } } options: { go_package: "github.com/containerd/containerd/api/services/content/v1;content" } source_code_info: { location: { span: 16 span: 0 span: 328 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 39 } location: { path: 3 path: 0 span: 20 span: 0 span: 37 } location: { path: 3 path: 1 span: 21 span: 0 span: 42 } location: { path: 3 path: 2 span: 22 span: 0 span: 41 } location: { path: 8 span: 24 span: 0 span: 87 } location: { path: 8 path: 11 span: 24 span: 0 span: 87 } location: { path: 6 path: 0 span: 27 span: 0 span: 89 span: 1 leading_comments: " Content provides access to a content addressable storage system.\n" } location: { path: 6 path: 0 path: 1 span: 27 span: 8 span: 15 } location: { path: 6 path: 0 path: 2 path: 0 span: 32 span: 2 span: 47 leading_comments: " Info returns information about a committed object.\n\n This call can be used for getting the size of content and checking for\n existence.\n" } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 32 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 32 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 32 span: 33 span: 45 } location: { path: 6 path: 0 path: 2 path: 1 span: 39 span: 2 span: 53 leading_comments: " Update updates content metadata.\n\n This call can be used to manage the mutable content labels. The\n immutable metadata such as digest, size, and committed at cannot\n be updated.\n" } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 39 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 39 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 39 span: 37 span: 51 } location: { path: 6 path: 0 path: 2 path: 2 span: 47 span: 2 span: 68 leading_comments: " List streams the entire set of content as Info objects and closes the\n stream.\n\n Typically, this will yield a large response, chunked into messages.\n Clients should make provisions to ensure they can handle the entire data\n set.\n" } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 47 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 47 span: 11 span: 29 } location: { path: 6 path: 0 path: 2 path: 2 path: 6 span: 47 span: 40 span: 46 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 47 span: 47 span: 66 } location: { path: 6 path: 0 path: 2 path: 3 span: 50 span: 2 span: 67 leading_comments: " Delete will delete the referenced object.\n" } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 50 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 50 span: 13 span: 33 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 50 span: 44 span: 65 } location: { path: 6 path: 0 path: 2 path: 4 span: 55 span: 2 span: 68 leading_comments: " Read allows one to read an object based on the offset into the content.\n\n The requested data may be returned in one or more messages.\n" } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 55 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 55 span: 11 span: 29 } location: { path: 6 path: 0 path: 2 path: 4 path: 6 span: 55 span: 40 span: 46 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 55 span: 47 span: 66 } location: { path: 6 path: 0 path: 2 path: 5 span: 58 span: 2 span: 53 leading_comments: " Status returns the status for a single reference.\n" } location: { path: 6 path: 0 path: 2 path: 5 path: 1 span: 58 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 5 path: 2 span: 58 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 5 path: 3 span: 58 span: 37 span: 51 } location: { path: 6 path: 0 path: 2 path: 6 span: 66 span: 2 span: 71 leading_comments: " ListStatuses returns the status of ongoing object ingestions, started via\n Write.\n\n Only those matching the regular expression will be provided in the\n response. If the provided regular expression is empty, all ingestions\n will be provided.\n" } location: { path: 6 path: 0 path: 2 path: 6 path: 1 span: 66 span: 6 span: 18 } location: { path: 6 path: 0 path: 2 path: 6 path: 2 span: 66 span: 19 span: 38 } location: { path: 6 path: 0 path: 2 path: 6 path: 3 span: 66 span: 49 span: 69 } location: { path: 6 path: 0 path: 2 path: 7 span: 84 span: 2 span: 78 leading_comments: " Write begins or resumes writes to a resource identified by a unique ref.\n Only one active stream may exist at a time for each ref.\n\n Once a write stream has started, it may only write to a single ref, thus\n once a stream is started, the ref may be omitted on subsequent writes.\n\n For any write transaction represented by a ref, only a single write may\n be made to a given offset. If overlapping writes occur, it is an error.\n Writes should be sequential and implementations may throw an error if\n this is required.\n\n If expected_digest is set and already part of the content store, the\n write will fail.\n\n When completed, the commit flag should be set to true. If expected size\n or digest is set, the content will be validated against those values.\n" } location: { path: 6 path: 0 path: 2 path: 7 path: 1 span: 84 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 7 path: 5 span: 84 span: 12 span: 18 } location: { path: 6 path: 0 path: 2 path: 7 path: 2 span: 84 span: 19 span: 38 } location: { path: 6 path: 0 path: 2 path: 7 path: 6 span: 84 span: 49 span: 55 } location: { path: 6 path: 0 path: 2 path: 7 path: 3 span: 84 span: 56 span: 76 } location: { path: 6 path: 0 path: 2 path: 8 span: 88 span: 2 span: 58 leading_comments: " Abort cancels the ongoing write named in the request. Any resources\n associated with the write will be collected.\n" } location: { path: 6 path: 0 path: 2 path: 8 path: 1 span: 88 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 8 path: 2 span: 88 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 8 path: 3 span: 88 span: 35 span: 56 } location: { path: 4 path: 0 span: 91 span: 0 span: 108 span: 1 } location: { path: 4 path: 0 path: 1 span: 91 span: 8 span: 12 } location: { path: 4 path: 0 path: 2 path: 0 span: 93 span: 2 span: 20 leading_comments: " Digest is the hash identity of the blob.\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 93 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 93 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 93 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 1 span: 96 span: 2 span: 17 leading_comments: " Size is the total number of bytes in the blob.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 96 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 96 span: 8 span: 12 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 96 span: 15 span: 16 } location: { path: 4 path: 0 path: 2 path: 2 span: 99 span: 2 span: 43 leading_comments: " CreatedAt provides the time at which the blob was committed.\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 99 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 99 span: 28 span: 38 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 99 span: 41 span: 42 } location: { path: 4 path: 0 path: 2 path: 3 span: 102 span: 2 span: 43 leading_comments: " UpdatedAt provides the time the info was last updated.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 102 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 102 span: 28 span: 38 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 102 span: 41 span: 42 } location: { path: 4 path: 0 path: 2 path: 4 span: 107 span: 2 span: 33 leading_comments: " Labels are arbitrary data on snapshots.\n\n The combined size of a key/value pair cannot exceed 4096 bytes.\n" } location: { path: 4 path: 0 path: 2 path: 4 path: 6 span: 107 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 107 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 107 span: 31 span: 32 } location: { path: 4 path: 1 span: 110 span: 0 span: 112 span: 1 } location: { path: 4 path: 1 path: 1 span: 110 span: 8 span: 19 } location: { path: 4 path: 1 path: 2 path: 0 span: 111 span: 2 span: 20 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 111 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 111 span: 9 span: 15 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 111 span: 18 span: 19 } location: { path: 4 path: 2 span: 114 span: 0 span: 116 span: 1 } location: { path: 4 path: 2 path: 1 span: 114 span: 8 span: 20 } location: { path: 4 path: 2 path: 2 path: 0 span: 115 span: 2 span: 16 } location: { path: 4 path: 2 path: 2 path: 0 path: 6 span: 115 span: 2 span: 6 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 115 span: 7 span: 11 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 115 span: 14 span: 15 } location: { path: 4 path: 3 span: 118 span: 0 span: 128 span: 1 } location: { path: 4 path: 3 path: 1 span: 118 span: 8 span: 21 } location: { path: 4 path: 3 path: 2 path: 0 span: 119 span: 2 span: 16 } location: { path: 4 path: 3 path: 2 path: 0 path: 6 span: 119 span: 2 span: 6 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 119 span: 7 span: 11 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 119 span: 14 span: 15 } location: { path: 4 path: 3 path: 2 path: 1 span: 127 span: 2 span: 44 leading_comments: " UpdateMask specifies which fields to perform the update on. If empty,\n the operation applies to all fields.\n\n In info, Digest, Size, and CreatedAt are immutable,\n other field may be updated using this mask.\n If no mask is provided, all mutable field are updated.\n" } location: { path: 4 path: 3 path: 2 path: 1 path: 6 span: 127 span: 2 span: 27 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 127 span: 28 span: 39 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 127 span: 42 span: 43 } location: { path: 4 path: 4 span: 130 span: 0 span: 132 span: 1 } location: { path: 4 path: 4 path: 1 span: 130 span: 8 span: 22 } location: { path: 4 path: 4 path: 2 path: 0 span: 131 span: 2 span: 16 } location: { path: 4 path: 4 path: 2 path: 0 path: 6 span: 131 span: 2 span: 6 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 131 span: 7 span: 11 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 131 span: 14 span: 15 } location: { path: 4 path: 5 span: 134 span: 0 span: 146 span: 1 } location: { path: 4 path: 5 path: 1 span: 134 span: 8 span: 26 } location: { path: 4 path: 5 path: 2 path: 0 span: 145 span: 2 span: 30 leading_comments: " Filters contains one or more filters using the syntax defined in the\n containerd filter package.\n\n The returned result will be those that match any of the provided\n filters. Expanded, containers that match the following will be\n returned:\n\n\tfilters[0] or filters[1] or ... or filters[n-1] or filters[n]\n\n If filters is zero-length or nil, all items will be returned.\n" } location: { path: 4 path: 5 path: 2 path: 0 path: 4 span: 145 span: 2 span: 10 } location: { path: 4 path: 5 path: 2 path: 0 path: 5 span: 145 span: 11 span: 17 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 145 span: 18 span: 25 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 145 span: 28 span: 29 } location: { path: 4 path: 6 span: 148 span: 0 span: 150 span: 1 } location: { path: 4 path: 6 path: 1 span: 148 span: 8 span: 27 } location: { path: 4 path: 6 path: 2 path: 0 span: 149 span: 2 span: 25 } location: { path: 4 path: 6 path: 2 path: 0 path: 4 span: 149 span: 2 span: 10 } location: { path: 4 path: 6 path: 2 path: 0 path: 6 span: 149 span: 11 span: 15 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 149 span: 16 span: 20 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 149 span: 23 span: 24 } location: { path: 4 path: 7 span: 152 span: 0 span: 155 span: 1 } location: { path: 4 path: 7 path: 1 span: 152 span: 8 span: 28 } location: { path: 4 path: 7 path: 2 path: 0 span: 154 span: 2 span: 20 leading_comments: " Digest specifies which content to delete.\n" } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 154 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 154 span: 9 span: 15 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 154 span: 18 span: 19 } location: { path: 4 path: 8 span: 159 span: 0 span: 171 span: 1 leading_comments: " ReadContentRequest defines the fields that make up a request to read a portion of\n data from a stored object.\n" } location: { path: 4 path: 8 path: 1 span: 159 span: 8 span: 26 } location: { path: 4 path: 8 path: 2 path: 0 span: 161 span: 2 span: 20 leading_comments: " Digest is the hash identity to read.\n" } location: { path: 4 path: 8 path: 2 path: 0 path: 5 span: 161 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 161 span: 9 span: 15 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 161 span: 18 span: 19 } location: { path: 4 path: 8 path: 2 path: 1 span: 166 span: 2 span: 19 leading_comments: " Offset specifies the number of bytes from the start at which to begin\n the read. If zero or less, the read will be from the start. This uses\n standard zero-indexed semantics.\n" } location: { path: 4 path: 8 path: 2 path: 1 path: 5 span: 166 span: 2 span: 7 } location: { path: 4 path: 8 path: 2 path: 1 path: 1 span: 166 span: 8 span: 14 } location: { path: 4 path: 8 path: 2 path: 1 path: 3 span: 166 span: 17 span: 18 } location: { path: 4 path: 8 path: 2 path: 2 span: 170 span: 2 span: 17 leading_comments: " size is the total size of the read. If zero, the entire blob will be\n returned by the service.\n" } location: { path: 4 path: 8 path: 2 path: 2 path: 5 span: 170 span: 2 span: 7 } location: { path: 4 path: 8 path: 2 path: 2 path: 1 span: 170 span: 8 span: 12 } location: { path: 4 path: 8 path: 2 path: 2 path: 3 span: 170 span: 15 span: 16 } location: { path: 4 path: 9 span: 174 span: 0 span: 177 span: 1 leading_comments: " ReadContentResponse carries byte data for a read request.\n" } location: { path: 4 path: 9 path: 1 span: 174 span: 8 span: 27 } location: { path: 4 path: 9 path: 2 path: 0 span: 175 span: 2 span: 19 trailing_comments: " offset of the returned data\n" } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 175 span: 2 span: 7 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 175 span: 8 span: 14 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 175 span: 17 span: 18 } location: { path: 4 path: 9 path: 2 path: 1 span: 176 span: 2 span: 17 trailing_comments: " actual data\n" } location: { path: 4 path: 9 path: 2 path: 1 path: 5 span: 176 span: 2 span: 7 } location: { path: 4 path: 9 path: 2 path: 1 path: 1 span: 176 span: 8 span: 12 } location: { path: 4 path: 9 path: 2 path: 1 path: 3 span: 176 span: 15 span: 16 } location: { path: 4 path: 10 span: 179 span: 0 span: 186 span: 1 } location: { path: 4 path: 10 path: 1 span: 179 span: 8 span: 14 } location: { path: 4 path: 10 path: 2 path: 0 span: 180 span: 2 span: 43 } location: { path: 4 path: 10 path: 2 path: 0 path: 6 span: 180 span: 2 span: 27 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 180 span: 28 span: 38 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 180 span: 41 span: 42 } location: { path: 4 path: 10 path: 2 path: 1 span: 181 span: 2 span: 43 } location: { path: 4 path: 10 path: 2 path: 1 path: 6 span: 181 span: 2 span: 27 } location: { path: 4 path: 10 path: 2 path: 1 path: 1 span: 181 span: 28 span: 38 } location: { path: 4 path: 10 path: 2 path: 1 path: 3 span: 181 span: 41 span: 42 } location: { path: 4 path: 10 path: 2 path: 2 span: 182 span: 2 span: 17 } location: { path: 4 path: 10 path: 2 path: 2 path: 5 span: 182 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 2 path: 1 span: 182 span: 9 span: 12 } location: { path: 4 path: 10 path: 2 path: 2 path: 3 span: 182 span: 15 span: 16 } location: { path: 4 path: 10 path: 2 path: 3 span: 183 span: 2 span: 19 } location: { path: 4 path: 10 path: 2 path: 3 path: 5 span: 183 span: 2 span: 7 } location: { path: 4 path: 10 path: 2 path: 3 path: 1 span: 183 span: 8 span: 14 } location: { path: 4 path: 10 path: 2 path: 3 path: 3 span: 183 span: 17 span: 18 } location: { path: 4 path: 10 path: 2 path: 4 span: 184 span: 2 span: 18 } location: { path: 4 path: 10 path: 2 path: 4 path: 5 span: 184 span: 2 span: 7 } location: { path: 4 path: 10 path: 2 path: 4 path: 1 span: 184 span: 8 span: 13 } location: { path: 4 path: 10 path: 2 path: 4 path: 3 span: 184 span: 16 span: 17 } location: { path: 4 path: 10 path: 2 path: 5 span: 185 span: 2 span: 22 } location: { path: 4 path: 10 path: 2 path: 5 path: 5 span: 185 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 5 path: 1 span: 185 span: 9 span: 17 } location: { path: 4 path: 10 path: 2 path: 5 path: 3 span: 185 span: 20 span: 21 } location: { path: 4 path: 11 span: 188 span: 0 span: 190 span: 1 } location: { path: 4 path: 11 path: 1 span: 188 span: 8 span: 21 } location: { path: 4 path: 11 path: 2 path: 0 span: 189 span: 2 span: 17 } location: { path: 4 path: 11 path: 2 path: 0 path: 5 span: 189 span: 2 span: 8 } location: { path: 4 path: 11 path: 2 path: 0 path: 1 span: 189 span: 9 span: 12 } location: { path: 4 path: 11 path: 2 path: 0 path: 3 span: 189 span: 15 span: 16 } location: { path: 4 path: 12 span: 192 span: 0 span: 194 span: 1 } location: { path: 4 path: 12 path: 1 span: 192 span: 8 span: 22 } location: { path: 4 path: 12 path: 2 path: 0 span: 193 span: 2 span: 20 } location: { path: 4 path: 12 path: 2 path: 0 path: 6 span: 193 span: 2 span: 8 } location: { path: 4 path: 12 path: 2 path: 0 path: 1 span: 193 span: 9 span: 15 } location: { path: 4 path: 12 path: 2 path: 0 path: 3 span: 193 span: 18 span: 19 } location: { path: 4 path: 13 span: 196 span: 0 span: 198 span: 1 } location: { path: 4 path: 13 path: 1 span: 196 span: 8 span: 27 } location: { path: 4 path: 13 path: 2 path: 0 span: 197 span: 2 span: 30 } location: { path: 4 path: 13 path: 2 path: 0 path: 4 span: 197 span: 2 span: 10 } location: { path: 4 path: 13 path: 2 path: 0 path: 5 span: 197 span: 11 span: 17 } location: { path: 4 path: 13 path: 2 path: 0 path: 1 span: 197 span: 18 span: 25 } location: { path: 4 path: 13 path: 2 path: 0 path: 3 span: 197 span: 28 span: 29 } location: { path: 4 path: 14 span: 200 span: 0 span: 202 span: 1 } location: { path: 4 path: 14 path: 1 span: 200 span: 8 span: 28 } location: { path: 4 path: 14 path: 2 path: 0 span: 201 span: 2 span: 31 } location: { path: 4 path: 14 path: 2 path: 0 path: 4 span: 201 span: 2 span: 10 } location: { path: 4 path: 14 path: 2 path: 0 path: 6 span: 201 span: 11 span: 17 } location: { path: 4 path: 14 path: 2 path: 0 path: 1 span: 201 span: 18 span: 26 } location: { path: 4 path: 14 path: 2 path: 0 path: 3 span: 201 span: 29 span: 30 } location: { path: 5 path: 0 span: 205 span: 0 span: 226 span: 1 leading_comments: " WriteAction defines the behavior of a WriteRequest.\n" } location: { path: 5 path: 0 path: 1 span: 205 span: 5 span: 16 } location: { path: 5 path: 0 path: 2 path: 0 span: 208 span: 2 span: 11 leading_comments: " WriteActionStat instructs the writer to return the current status while\n holding the lock on the write.\n" } location: { path: 5 path: 0 path: 2 path: 0 path: 1 span: 208 span: 2 span: 6 } location: { path: 5 path: 0 path: 2 path: 0 path: 2 span: 208 span: 9 span: 10 } location: { path: 5 path: 0 path: 2 path: 1 span: 216 span: 2 span: 12 leading_comments: " WriteActionWrite sets the action for the write request to write data.\n\n Any data included will be written at the provided offset. The\n transaction will be left open for further writes.\n\n This is the default.\n" } location: { path: 5 path: 0 path: 2 path: 1 path: 1 span: 216 span: 2 span: 7 } location: { path: 5 path: 0 path: 2 path: 1 path: 2 span: 216 span: 10 span: 11 } location: { path: 5 path: 0 path: 2 path: 2 span: 225 span: 2 span: 13 leading_comments: " WriteActionCommit will write any outstanding data in the message and\n commit the write, storing it under the digest.\n\n This can be used in a single message to send the data, verify it and\n commit it.\n\n This action will always terminate the write.\n" } location: { path: 5 path: 0 path: 2 path: 2 path: 1 span: 225 span: 2 span: 8 } location: { path: 5 path: 0 path: 2 path: 2 path: 2 span: 225 span: 11 span: 12 } location: { path: 4 path: 15 span: 229 span: 0 span: 289 span: 1 leading_comments: " WriteContentRequest writes data to the request ref at offset.\n" } location: { path: 4 path: 15 path: 1 span: 229 span: 8 span: 27 } location: { path: 4 path: 15 path: 2 path: 0 span: 241 span: 2 span: 25 leading_comments: " Action sets the behavior of the write.\n\n When this is a write and the ref is not yet allocated, the ref will be\n allocated and the data will be written at offset.\n\n If the action is write and the ref is allocated, it will accept data to\n an offset that has not yet been written.\n\n If the action is write and there is no data, the current write status\n will be returned. This works differently from status because the stream\n holds a lock.\n" } location: { path: 4 path: 15 path: 2 path: 0 path: 6 span: 241 span: 2 span: 13 } location: { path: 4 path: 15 path: 2 path: 0 path: 1 span: 241 span: 14 span: 20 } location: { path: 4 path: 15 path: 2 path: 0 path: 3 span: 241 span: 23 span: 24 } location: { path: 4 path: 15 path: 2 path: 1 span: 244 span: 2 span: 17 leading_comments: " Ref identifies the pre-commit object to write to.\n" } location: { path: 4 path: 15 path: 2 path: 1 path: 5 span: 244 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 1 path: 1 span: 244 span: 9 span: 12 } location: { path: 4 path: 15 path: 2 path: 1 path: 3 span: 244 span: 15 span: 16 } location: { path: 4 path: 15 path: 2 path: 2 span: 255 span: 2 span: 18 leading_comments: " Total can be set to have the service validate the total size of the\n committed content.\n\n The latest value before or with the commit action message will be use to\n validate the content. If the offset overflows total, the service may\n report an error. It is only required on one message for the write.\n\n If the value is zero or less, no validation of the final content will be\n performed.\n" } location: { path: 4 path: 15 path: 2 path: 2 path: 5 span: 255 span: 2 span: 7 } location: { path: 4 path: 15 path: 2 path: 2 path: 1 span: 255 span: 8 span: 13 } location: { path: 4 path: 15 path: 2 path: 2 path: 3 span: 255 span: 16 span: 17 } location: { path: 4 path: 15 path: 2 path: 3 span: 266 span: 2 span: 22 leading_comments: " Expected can be set to have the service validate the final content against\n the provided digest.\n\n If the digest is already present in the object store, an AlreadyExists\n error will be returned.\n\n Only the latest version will be used to check the content against the\n digest. It is only required to include it on a single message, before or\n with the commit action message.\n" } location: { path: 4 path: 15 path: 2 path: 3 path: 5 span: 266 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 3 path: 1 span: 266 span: 9 span: 17 } location: { path: 4 path: 15 path: 2 path: 3 path: 3 span: 266 span: 20 span: 21 } location: { path: 4 path: 15 path: 2 path: 4 span: 277 span: 2 span: 19 leading_comments: " Offset specifies the number of bytes from the start at which to begin\n the write. For most implementations, this means from the start of the\n file. This uses standard, zero-indexed semantics.\n\n If the action is write, the remote may remove all previously written\n data after the offset. Implementations may support arbitrary offsets but\n MUST support reseting this value to zero with a write. If an\n implementation does not support a write at a particular offset, an\n OutOfRange error must be returned.\n" } location: { path: 4 path: 15 path: 2 path: 4 path: 5 span: 277 span: 2 span: 7 } location: { path: 4 path: 15 path: 2 path: 4 path: 1 span: 277 span: 8 span: 14 } location: { path: 4 path: 15 path: 2 path: 4 path: 3 span: 277 span: 17 span: 18 } location: { path: 4 path: 15 path: 2 path: 5 span: 283 span: 2 span: 17 leading_comments: " Data is the actual bytes to be written.\n\n If this is empty and the message is not a commit, a response will be\n returned with the current write state.\n" } location: { path: 4 path: 15 path: 2 path: 5 path: 5 span: 283 span: 2 span: 7 } location: { path: 4 path: 15 path: 2 path: 5 path: 1 span: 283 span: 8 span: 12 } location: { path: 4 path: 15 path: 2 path: 5 path: 3 span: 283 span: 15 span: 16 } location: { path: 4 path: 15 path: 2 path: 6 span: 288 span: 2 span: 33 leading_comments: " Labels are arbitrary data on snapshots.\n\n The combined size of a key/value pair cannot exceed 4096 bytes.\n" } location: { path: 4 path: 15 path: 2 path: 6 path: 6 span: 288 span: 2 span: 21 } location: { path: 4 path: 15 path: 2 path: 6 path: 1 span: 288 span: 22 span: 28 } location: { path: 4 path: 15 path: 2 path: 6 path: 3 span: 288 span: 31 span: 32 } location: { path: 4 path: 16 span: 292 span: 0 span: 324 span: 1 leading_comments: " WriteContentResponse is returned on the culmination of a write call.\n" } location: { path: 4 path: 16 path: 1 span: 292 span: 8 span: 28 } location: { path: 4 path: 16 path: 2 path: 0 span: 295 span: 2 span: 25 leading_comments: " Action contains the action for the final message of the stream. A writer\n should confirm that they match the intended result.\n" } location: { path: 4 path: 16 path: 2 path: 0 path: 6 span: 295 span: 2 span: 13 } location: { path: 4 path: 16 path: 2 path: 0 path: 1 span: 295 span: 14 span: 20 } location: { path: 4 path: 16 path: 2 path: 0 path: 3 span: 295 span: 23 span: 24 } location: { path: 4 path: 16 path: 2 path: 1 span: 301 span: 2 span: 43 leading_comments: " StartedAt provides the time at which the write began.\n\n This must be set for stat and commit write actions. All other write\n actions may omit this.\n" } location: { path: 4 path: 16 path: 2 path: 1 path: 6 span: 301 span: 2 span: 27 } location: { path: 4 path: 16 path: 2 path: 1 path: 1 span: 301 span: 28 span: 38 } location: { path: 4 path: 16 path: 2 path: 1 path: 3 span: 301 span: 41 span: 42 } location: { path: 4 path: 16 path: 2 path: 2 span: 307 span: 2 span: 43 leading_comments: " UpdatedAt provides the last time of a successful write.\n\n This must be set for stat and commit write actions. All other write\n actions may omit this.\n" } location: { path: 4 path: 16 path: 2 path: 2 path: 6 span: 307 span: 2 span: 27 } location: { path: 4 path: 16 path: 2 path: 2 path: 1 span: 307 span: 28 span: 38 } location: { path: 4 path: 16 path: 2 path: 2 path: 3 span: 307 span: 41 span: 42 } location: { path: 4 path: 16 path: 2 path: 3 span: 310 span: 2 span: 19 leading_comments: " Offset is the current committed size for the write.\n" } location: { path: 4 path: 16 path: 2 path: 3 path: 5 span: 310 span: 2 span: 7 } location: { path: 4 path: 16 path: 2 path: 3 path: 1 span: 310 span: 8 span: 14 } location: { path: 4 path: 16 path: 2 path: 3 path: 3 span: 310 span: 17 span: 18 } location: { path: 4 path: 16 path: 2 path: 4 span: 318 span: 2 span: 18 leading_comments: " Total provides the current, expected total size of the write.\n\n We include this to provide consistency with the Status structure on the\n client writer.\n\n This is only valid on the Stat and Commit response.\n" } location: { path: 4 path: 16 path: 2 path: 4 path: 5 span: 318 span: 2 span: 7 } location: { path: 4 path: 16 path: 2 path: 4 path: 1 span: 318 span: 8 span: 13 } location: { path: 4 path: 16 path: 2 path: 4 path: 3 span: 318 span: 16 span: 17 } location: { path: 4 path: 16 path: 2 path: 5 span: 323 span: 2 span: 20 leading_comments: " Digest, if present, includes the digest up to the currently committed\n bytes. If action is commit, this field will be set. It is implementation\n defined if this is set for other actions.\n" } location: { path: 4 path: 16 path: 2 path: 5 path: 5 span: 323 span: 2 span: 8 } location: { path: 4 path: 16 path: 2 path: 5 path: 1 span: 323 span: 9 span: 15 } location: { path: 4 path: 16 path: 2 path: 5 path: 3 span: 323 span: 18 span: 19 } location: { path: 4 path: 17 span: 326 span: 0 span: 328 span: 1 } location: { path: 4 path: 17 path: 1 span: 326 span: 8 span: 20 } location: { path: 4 path: 17 path: 2 path: 0 span: 327 span: 2 span: 17 } location: { path: 4 path: 17 path: 2 path: 0 path: 5 span: 327 span: 2 span: 8 } location: { path: 4 path: 17 path: 2 path: 0 path: 1 span: 327 span: 9 span: 12 } location: { path: 4 path: 17 path: 2 path: 0 path: 3 span: 327 span: 15 span: 16 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/descriptor.proto" package: "containerd.types" message_type: { name: "Descriptor" field: { name: "media_type" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "mediaType" } field: { name: "digest" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "digest" } field: { name: "size" number: 3 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "size" } field: { name: "annotations" number: 5 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Descriptor.AnnotationsEntry" json_name: "annotations" } nested_type: { name: "AnnotationsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } options: { go_package: "github.com/containerd/containerd/api/types;types" } source_code_info: { location: { span: 16 span: 0 span: 32 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 25 } location: { path: 8 span: 20 span: 0 span: 71 } location: { path: 8 path: 11 span: 20 span: 0 span: 71 } location: { path: 4 path: 0 span: 27 span: 0 span: 32 span: 1 leading_comments: " Descriptor describes a blob in a content store.\n\n This descriptor can be used to reference content from an\n oci descriptor found in a manifest.\n See https://godoc.org/github.com/opencontainers/image-spec/specs-go/v1#Descriptor\n" } location: { path: 4 path: 0 path: 1 span: 27 span: 8 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 span: 28 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 28 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 28 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 28 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 1 span: 29 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 29 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 29 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 29 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 2 span: 30 span: 2 span: 17 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 30 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 30 span: 8 span: 12 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 30 span: 15 span: 16 } location: { path: 4 path: 0 path: 2 path: 3 span: 31 span: 2 span: 38 } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 31 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 31 span: 22 span: 33 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 31 span: 36 span: 37 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/diff/v1/diff.proto" package: "containerd.services.diff.v1" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/timestamp.proto" dependency: "types/descriptor.proto" dependency: "types/mount.proto" message_type: { name: "ApplyRequest" field: { name: "diff" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Descriptor" json_name: "diff" } field: { name: "mounts" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "mounts" } field: { name: "payloads" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.diff.v1.ApplyRequest.PayloadsEntry" json_name: "payloads" } field: { name: "sync_fs" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "syncFs" } nested_type: { name: "PayloadsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "value" } options: { map_entry: true } } } message_type: { name: "ApplyResponse" field: { name: "applied" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Descriptor" json_name: "applied" } } message_type: { name: "DiffRequest" field: { name: "left" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "left" } field: { name: "right" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "right" } field: { name: "media_type" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "mediaType" } field: { name: "ref" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "ref" } field: { name: "labels" number: 5 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.diff.v1.DiffRequest.LabelsEntry" json_name: "labels" } field: { name: "source_date_epoch" number: 6 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "sourceDateEpoch" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "DiffResponse" field: { name: "diff" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Descriptor" json_name: "diff" } } service: { name: "Diff" method: { name: "Apply" input_type: ".containerd.services.diff.v1.ApplyRequest" output_type: ".containerd.services.diff.v1.ApplyResponse" } method: { name: "Diff" input_type: ".containerd.services.diff.v1.DiffRequest" output_type: ".containerd.services.diff.v1.DiffResponse" } } options: { go_package: "github.com/containerd/containerd/api/services/diff/v1;diff" } source_code_info: { location: { span: 16 span: 0 span: 89 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 36 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 41 } location: { path: 3 path: 2 span: 22 span: 0 span: 32 } location: { path: 3 path: 3 span: 23 span: 0 span: 27 } location: { path: 8 span: 25 span: 0 span: 81 } location: { path: 8 path: 11 span: 25 span: 0 span: 81 } location: { path: 6 path: 0 span: 28 span: 0 span: 37 span: 1 leading_comments: " Diff service creates and applies diffs\n" } location: { path: 6 path: 0 path: 1 span: 28 span: 8 span: 12 } location: { path: 6 path: 0 path: 2 path: 0 span: 32 span: 2 span: 50 leading_comments: " Apply applies the content associated with the provided digests onto\n the provided mounts. Archive content will be extracted and\n decompressed if necessary.\n" } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 32 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 32 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 32 span: 35 span: 48 } location: { path: 6 path: 0 path: 2 path: 1 span: 36 span: 2 span: 47 leading_comments: " Diff creates a diff between the given mounts and uploads the result\n to the content store.\n" } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 36 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 36 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 36 span: 33 span: 45 } location: { path: 4 path: 0 span: 39 span: 0 span: 48 span: 1 } location: { path: 4 path: 0 path: 1 span: 39 span: 8 span: 20 } location: { path: 4 path: 0 path: 2 path: 0 span: 41 span: 2 span: 39 leading_comments: " Diff is the descriptor of the diff to be extracted\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 6 span: 41 span: 2 span: 29 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 41 span: 30 span: 34 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 41 span: 37 span: 38 } location: { path: 4 path: 0 path: 2 path: 1 span: 43 span: 2 span: 45 } location: { path: 4 path: 0 path: 2 path: 1 path: 4 span: 43 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 43 span: 11 span: 33 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 43 span: 34 span: 40 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 43 span: 43 span: 44 } location: { path: 4 path: 0 path: 2 path: 2 span: 45 span: 2 span: 48 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 45 span: 2 span: 34 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 45 span: 35 span: 43 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 45 span: 46 span: 47 } location: { path: 4 path: 0 path: 2 path: 3 span: 47 span: 2 span: 19 leading_comments: " SyncFs is to synchronize the underlying filesystem containing files.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 47 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 47 span: 7 span: 14 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 47 span: 17 span: 18 } location: { path: 4 path: 1 span: 50 span: 0 span: 55 span: 1 } location: { path: 4 path: 1 path: 1 span: 50 span: 8 span: 21 } location: { path: 4 path: 1 path: 2 path: 0 span: 54 span: 2 span: 42 leading_comments: " Applied is the descriptor for the object which was applied.\n If the input was a compressed blob then the result will be\n the descriptor for the uncompressed blob.\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 6 span: 54 span: 2 span: 29 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 54 span: 30 span: 37 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 54 span: 40 span: 41 } location: { path: 4 path: 2 span: 57 span: 0 span: 84 span: 1 } location: { path: 4 path: 2 path: 1 span: 57 span: 8 span: 19 } location: { path: 4 path: 2 path: 2 path: 0 span: 60 span: 2 span: 43 leading_comments: " Left are the mounts which represent the older copy\n in which is the base of the computed changes.\n" } location: { path: 4 path: 2 path: 2 path: 0 path: 4 span: 60 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 0 path: 6 span: 60 span: 11 span: 33 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 60 span: 34 span: 38 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 60 span: 41 span: 42 } location: { path: 4 path: 2 path: 2 path: 1 span: 64 span: 2 span: 44 leading_comments: " Right are the mounts which represents the newer copy\n in which changes from the left were made into.\n" } location: { path: 4 path: 2 path: 2 path: 1 path: 4 span: 64 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 1 path: 6 span: 64 span: 11 span: 33 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 64 span: 34 span: 39 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 64 span: 42 span: 43 } location: { path: 4 path: 2 path: 2 path: 2 span: 68 span: 2 span: 24 leading_comments: " MediaType is the media type descriptor for the created diff\n object\n" } location: { path: 4 path: 2 path: 2 path: 2 path: 5 span: 68 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 68 span: 9 span: 19 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 68 span: 22 span: 23 } location: { path: 4 path: 2 path: 2 path: 3 span: 72 span: 2 span: 17 leading_comments: " Ref identifies the pre-commit content store object. This\n reference can be used to get the status from the content store.\n" } location: { path: 4 path: 2 path: 2 path: 3 path: 5 span: 72 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 3 path: 1 span: 72 span: 9 span: 12 } location: { path: 4 path: 2 path: 2 path: 3 path: 3 span: 72 span: 15 span: 16 } location: { path: 4 path: 2 path: 2 path: 4 span: 76 span: 2 span: 33 leading_comments: " Labels are the labels to apply to the generated content\n on content store commit.\n" } location: { path: 4 path: 2 path: 2 path: 4 path: 6 span: 76 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 4 path: 1 span: 76 span: 22 span: 28 } location: { path: 4 path: 2 path: 2 path: 4 path: 3 span: 76 span: 31 span: 32 } location: { path: 4 path: 2 path: 2 path: 5 span: 83 span: 2 span: 50 leading_comments: " SourceDateEpoch specifies the timestamp used to provide control for reproducibility.\n See also https://reproducible-builds.org/docs/source-date-epoch/ .\n\n Since containerd v2.0, the whiteout timestamps are set to zero (1970-01-01),\n not to the source date epoch.\n" } location: { path: 4 path: 2 path: 2 path: 5 path: 6 span: 83 span: 2 span: 27 } location: { path: 4 path: 2 path: 2 path: 5 path: 1 span: 83 span: 28 span: 45 } location: { path: 4 path: 2 path: 2 path: 5 path: 3 span: 83 span: 48 span: 49 } location: { path: 4 path: 3 span: 86 span: 0 span: 89 span: 1 } location: { path: 4 path: 3 path: 1 span: 86 span: 8 span: 20 } location: { path: 4 path: 3 path: 2 path: 0 span: 88 span: 2 span: 39 leading_comments: " Diff is the descriptor of the diff which can be applied\n" } location: { path: 4 path: 3 path: 2 path: 0 path: 6 span: 88 span: 2 span: 29 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 88 span: 30 span: 34 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 88 span: 37 span: 38 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/event.proto" package: "containerd.types" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/timestamp.proto" dependency: "types/fieldpath.proto" message_type: { name: "Envelope" field: { name: "timestamp" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "timestamp" } field: { name: "namespace" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "namespace" } field: { name: "topic" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "topic" } field: { name: "event" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "event" } options: { [containerd.types.fieldpath]: true } } options: { go_package: "github.com/containerd/containerd/api/types;types" } source_code_info: { location: { span: 16 span: 0 span: 32 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 25 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 41 } location: { path: 3 path: 2 span: 22 span: 0 span: 31 } location: { path: 8 span: 24 span: 0 span: 71 } location: { path: 8 path: 11 span: 24 span: 0 span: 71 } location: { path: 4 path: 0 span: 26 span: 0 span: 32 span: 1 } location: { path: 4 path: 0 path: 1 span: 26 span: 8 span: 16 } location: { path: 4 path: 0 path: 7 span: 27 span: 2 span: 45 } location: { path: 4 path: 0 path: 7 path: 64400 span: 27 span: 2 span: 45 } location: { path: 4 path: 0 path: 2 path: 0 span: 28 span: 2 span: 42 } location: { path: 4 path: 0 path: 2 path: 0 path: 6 span: 28 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 28 span: 28 span: 37 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 28 span: 40 span: 41 } location: { path: 4 path: 0 path: 2 path: 1 span: 29 span: 2 span: 23 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 29 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 29 span: 9 span: 18 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 29 span: 21 span: 22 } location: { path: 4 path: 0 path: 2 path: 2 span: 30 span: 2 span: 19 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 30 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 30 span: 9 span: 14 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 30 span: 17 span: 18 } location: { path: 4 path: 0 path: 2 path: 3 span: 31 span: 2 span: 32 } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 31 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 31 span: 22 span: 27 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 31 span: 30 span: 31 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/events/v1/events.proto" package: "containerd.services.events.v1" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/empty.proto" dependency: "types/event.proto" message_type: { name: "PublishRequest" field: { name: "topic" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "topic" } field: { name: "event" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "event" } } message_type: { name: "ForwardRequest" field: { name: "envelope" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Envelope" json_name: "envelope" } } message_type: { name: "SubscribeRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } service: { name: "Events" method: { name: "Publish" input_type: ".containerd.services.events.v1.PublishRequest" output_type: ".google.protobuf.Empty" } method: { name: "Forward" input_type: ".containerd.services.events.v1.ForwardRequest" output_type: ".google.protobuf.Empty" } method: { name: "Subscribe" input_type: ".containerd.services.events.v1.SubscribeRequest" output_type: ".containerd.types.Envelope" server_streaming: true } } options: { go_package: "github.com/containerd/containerd/api/services/events/v1;events" } source_code_info: { location: { span: 16 span: 0 span: 61 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 38 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 37 } location: { path: 3 path: 2 span: 22 span: 0 span: 27 } location: { path: 8 span: 24 span: 0 span: 85 } location: { path: 8 path: 11 span: 24 span: 0 span: 85 } location: { path: 6 path: 0 span: 26 span: 0 span: 48 span: 1 } location: { path: 6 path: 0 path: 1 span: 26 span: 8 span: 14 } location: { path: 6 path: 0 path: 2 path: 0 span: 31 span: 2 span: 62 leading_comments: " Publish an event to a topic.\n\n The event will be packed into a timestamp envelope with the namespace\n introspected from the context. The envelope will then be dispatched.\n" } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 31 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 31 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 31 span: 39 span: 60 } location: { path: 6 path: 0 path: 2 path: 1 span: 38 span: 2 span: 62 leading_comments: " Forward sends an event that has already been packaged into an envelope\n with a timestamp and namespace.\n\n This is useful if earlier timestamping is required or when forwarding on\n behalf of another component, namespace or publisher.\n" } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 38 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 38 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 38 span: 39 span: 60 } location: { path: 6 path: 0 path: 2 path: 2 span: 47 span: 2 span: 77 leading_comments: " Subscribe to a stream of events, possibly returning only that match any\n of the provided filters.\n\n Unlike many other methods in containerd, subscribers will get messages\n from all namespaces unless otherwise specified. If this is not desired,\n a filter can be provided in the format 'namespace==' to\n restrict the received events.\n" } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 47 span: 6 span: 15 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 47 span: 16 span: 32 } location: { path: 6 path: 0 path: 2 path: 2 path: 6 span: 47 span: 43 span: 49 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 47 span: 50 span: 75 } location: { path: 4 path: 0 span: 50 span: 0 span: 53 span: 1 } location: { path: 4 path: 0 path: 1 span: 50 span: 8 span: 22 } location: { path: 4 path: 0 path: 2 path: 0 span: 51 span: 2 span: 19 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 51 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 51 span: 9 span: 14 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 51 span: 17 span: 18 } location: { path: 4 path: 0 path: 2 path: 1 span: 52 span: 2 span: 32 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 52 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 52 span: 22 span: 27 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 52 span: 30 span: 31 } location: { path: 4 path: 1 span: 55 span: 0 span: 57 span: 1 } location: { path: 4 path: 1 path: 1 span: 55 span: 8 span: 22 } location: { path: 4 path: 1 path: 2 path: 0 span: 56 span: 2 span: 41 } location: { path: 4 path: 1 path: 2 path: 0 path: 6 span: 56 span: 2 span: 27 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 56 span: 28 span: 36 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 56 span: 39 span: 40 } location: { path: 4 path: 2 span: 59 span: 0 span: 61 span: 1 } location: { path: 4 path: 2 path: 1 span: 59 span: 8 span: 24 } location: { path: 4 path: 2 path: 2 path: 0 span: 60 span: 2 span: 30 } location: { path: 4 path: 2 path: 2 path: 0 path: 4 span: 60 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 60 span: 11 span: 17 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 60 span: 18 span: 25 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 60 span: 28 span: 29 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/images/v1/images.proto" package: "containerd.services.images.v1" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/field_mask.proto" dependency: "google/protobuf/timestamp.proto" dependency: "types/descriptor.proto" message_type: { name: "Image" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "labels" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.images.v1.Image.LabelsEntry" json_name: "labels" } field: { name: "target" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Descriptor" json_name: "target" } field: { name: "created_at" number: 7 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "updated_at" number: 8 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "updatedAt" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "GetImageRequest" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } } message_type: { name: "GetImageResponse" field: { name: "image" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.images.v1.Image" json_name: "image" } } message_type: { name: "CreateImageRequest" field: { name: "image" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.images.v1.Image" json_name: "image" } field: { name: "source_date_epoch" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "sourceDateEpoch" } } message_type: { name: "CreateImageResponse" field: { name: "image" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.images.v1.Image" json_name: "image" } } message_type: { name: "UpdateImageRequest" field: { name: "image" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.images.v1.Image" json_name: "image" } field: { name: "update_mask" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FieldMask" json_name: "updateMask" } field: { name: "source_date_epoch" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "sourceDateEpoch" } } message_type: { name: "UpdateImageResponse" field: { name: "image" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.images.v1.Image" json_name: "image" } } message_type: { name: "ListImagesRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "ListImagesResponse" field: { name: "images" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.images.v1.Image" json_name: "images" } } message_type: { name: "DeleteImageRequest" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "sync" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "sync" } field: { name: "target" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Descriptor" oneof_index: 0 json_name: "target" proto3_optional: true } oneof_decl: { name: "_target" } } service: { name: "Images" method: { name: "Get" input_type: ".containerd.services.images.v1.GetImageRequest" output_type: ".containerd.services.images.v1.GetImageResponse" } method: { name: "List" input_type: ".containerd.services.images.v1.ListImagesRequest" output_type: ".containerd.services.images.v1.ListImagesResponse" } method: { name: "Create" input_type: ".containerd.services.images.v1.CreateImageRequest" output_type: ".containerd.services.images.v1.CreateImageResponse" } method: { name: "Update" input_type: ".containerd.services.images.v1.UpdateImageRequest" output_type: ".containerd.services.images.v1.UpdateImageResponse" } method: { name: "Delete" input_type: ".containerd.services.images.v1.DeleteImageRequest" output_type: ".google.protobuf.Empty" } } options: { go_package: "github.com/containerd/containerd/api/services/images/v1;images" } source_code_info: { location: { span: 16 span: 0 span: 148 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 38 } location: { path: 3 path: 0 span: 20 span: 0 span: 37 } location: { path: 3 path: 1 span: 21 span: 0 span: 42 } location: { path: 3 path: 2 span: 22 span: 0 span: 41 } location: { path: 3 path: 3 span: 23 span: 0 span: 32 } location: { path: 8 span: 25 span: 0 span: 85 } location: { path: 8 path: 11 span: 25 span: 0 span: 85 } location: { path: 6 path: 0 span: 38 span: 0 span: 56 span: 1 leading_comments: " Images is a service that allows one to register images with containerd.\n\n In containerd, an image is merely the mapping of a name to a content root,\n described by a descriptor. The behavior and state of image is purely\n dictated by the type of the descriptor.\n\n From the perspective of this service, these references are mostly shallow,\n in that the existence of the required content won't be validated until\n required by consuming services.\n\n As such, this can really be considered a \"metadata service\".\n" } location: { path: 6 path: 0 path: 1 span: 38 span: 8 span: 14 } location: { path: 6 path: 0 path: 2 path: 0 span: 40 span: 2 span: 54 leading_comments: " Get returns an image by name.\n" } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 40 span: 6 span: 9 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 40 span: 10 span: 25 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 40 span: 36 span: 52 } location: { path: 6 path: 0 path: 2 path: 1 span: 43 span: 2 span: 59 leading_comments: " List returns a list of all images known to containerd.\n" } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 43 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 43 span: 11 span: 28 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 43 span: 39 span: 57 } location: { path: 6 path: 0 path: 2 path: 2 span: 48 span: 2 span: 63 leading_comments: " Create an image record in the metadata store.\n\n The name of the image must be unique.\n" } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 48 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 48 span: 13 span: 31 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 48 span: 42 span: 61 } location: { path: 6 path: 0 path: 2 path: 3 span: 52 span: 2 span: 63 leading_comments: " Update assigns the name to a given target image based on the provided\n image.\n" } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 52 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 52 span: 13 span: 31 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 52 span: 42 span: 61 } location: { path: 6 path: 0 path: 2 path: 4 span: 55 span: 2 span: 65 leading_comments: " Delete deletes the image by name.\n" } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 55 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 55 span: 13 span: 31 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 55 span: 42 span: 63 } location: { path: 4 path: 0 span: 58 span: 0 span: 79 span: 1 } location: { path: 4 path: 0 path: 1 span: 58 span: 8 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 span: 62 span: 2 span: 18 leading_comments: " Name provides a unique name for the image.\n\n Containerd treats this as the primary identifier.\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 62 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 62 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 62 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 span: 69 span: 2 span: 33 leading_comments: " Labels provides free form labels for the image. These are runtime only\n and do not get inherited into the package image in any way.\n\n Labels may be updated using the field mask.\n The combined size of a key/value pair cannot exceed 4096 bytes.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 69 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 69 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 69 span: 31 span: 32 } location: { path: 4 path: 0 path: 2 path: 2 span: 72 span: 2 span: 41 leading_comments: " Target describes the content entry point of the image.\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 72 span: 2 span: 29 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 72 span: 30 span: 36 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 72 span: 39 span: 40 } location: { path: 4 path: 0 path: 2 path: 3 span: 75 span: 2 span: 43 leading_comments: " CreatedAt is the time the image was first created.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 75 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 75 span: 28 span: 38 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 75 span: 41 span: 42 } location: { path: 4 path: 0 path: 2 path: 4 span: 78 span: 2 span: 43 leading_comments: " UpdatedAt is the last time the image was mutated.\n" } location: { path: 4 path: 0 path: 2 path: 4 path: 6 span: 78 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 78 span: 28 span: 38 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 78 span: 41 span: 42 } location: { path: 4 path: 1 span: 81 span: 0 span: 83 span: 1 } location: { path: 4 path: 1 path: 1 span: 81 span: 8 span: 23 } location: { path: 4 path: 1 path: 2 path: 0 span: 82 span: 2 span: 18 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 82 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 82 span: 9 span: 13 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 82 span: 16 span: 17 } location: { path: 4 path: 2 span: 85 span: 0 span: 87 span: 1 } location: { path: 4 path: 2 path: 1 span: 85 span: 8 span: 24 } location: { path: 4 path: 2 path: 2 path: 0 span: 86 span: 2 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 path: 6 span: 86 span: 2 span: 7 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 86 span: 8 span: 13 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 86 span: 16 span: 17 } location: { path: 4 path: 3 span: 89 span: 0 span: 93 span: 1 } location: { path: 4 path: 3 path: 1 span: 89 span: 8 span: 26 } location: { path: 4 path: 3 path: 2 path: 0 span: 90 span: 2 span: 18 } location: { path: 4 path: 3 path: 2 path: 0 path: 6 span: 90 span: 2 span: 7 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 90 span: 8 span: 13 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 90 span: 16 span: 17 } location: { path: 4 path: 3 path: 2 path: 1 span: 92 span: 2 span: 50 } location: { path: 4 path: 3 path: 2 path: 1 path: 6 span: 92 span: 2 span: 27 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 92 span: 28 span: 45 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 92 span: 48 span: 49 } location: { path: 4 path: 4 span: 95 span: 0 span: 97 span: 1 } location: { path: 4 path: 4 path: 1 span: 95 span: 8 span: 27 } location: { path: 4 path: 4 path: 2 path: 0 span: 96 span: 2 span: 18 } location: { path: 4 path: 4 path: 2 path: 0 path: 6 span: 96 span: 2 span: 7 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 96 span: 8 span: 13 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 96 span: 16 span: 17 } location: { path: 4 path: 5 span: 99 span: 0 span: 110 span: 1 } location: { path: 4 path: 5 path: 1 span: 99 span: 8 span: 26 } location: { path: 4 path: 5 path: 2 path: 0 span: 103 span: 2 span: 18 leading_comments: " Image provides a full or partial image for update.\n\n The name field must be set or an error will be returned.\n" } location: { path: 4 path: 5 path: 2 path: 0 path: 6 span: 103 span: 2 span: 7 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 103 span: 8 span: 13 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 103 span: 16 span: 17 } location: { path: 4 path: 5 path: 2 path: 1 span: 107 span: 2 span: 44 leading_comments: " UpdateMask specifies which fields to perform the update on. If empty,\n the operation applies to all fields.\n" } location: { path: 4 path: 5 path: 2 path: 1 path: 6 span: 107 span: 2 span: 27 } location: { path: 4 path: 5 path: 2 path: 1 path: 1 span: 107 span: 28 span: 39 } location: { path: 4 path: 5 path: 2 path: 1 path: 3 span: 107 span: 42 span: 43 } location: { path: 4 path: 5 path: 2 path: 2 span: 109 span: 2 span: 50 } location: { path: 4 path: 5 path: 2 path: 2 path: 6 span: 109 span: 2 span: 27 } location: { path: 4 path: 5 path: 2 path: 2 path: 1 span: 109 span: 28 span: 45 } location: { path: 4 path: 5 path: 2 path: 2 path: 3 span: 109 span: 48 span: 49 } location: { path: 4 path: 6 span: 112 span: 0 span: 114 span: 1 } location: { path: 4 path: 6 path: 1 span: 112 span: 8 span: 27 } location: { path: 4 path: 6 path: 2 path: 0 span: 113 span: 2 span: 18 } location: { path: 4 path: 6 path: 2 path: 0 path: 6 span: 113 span: 2 span: 7 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 113 span: 8 span: 13 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 113 span: 16 span: 17 } location: { path: 4 path: 7 span: 116 span: 0 span: 128 span: 1 } location: { path: 4 path: 7 path: 1 span: 116 span: 8 span: 25 } location: { path: 4 path: 7 path: 2 path: 0 span: 127 span: 2 span: 30 leading_comments: " Filters contains one or more filters using the syntax defined in the\n containerd filter package.\n\n The returned result will be those that match any of the provided\n filters. Expanded, images that match the following will be\n returned:\n\n\tfilters[0] or filters[1] or ... or filters[n-1] or filters[n]\n\n If filters is zero-length or nil, all items will be returned.\n" } location: { path: 4 path: 7 path: 2 path: 0 path: 4 span: 127 span: 2 span: 10 } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 127 span: 11 span: 17 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 127 span: 18 span: 25 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 127 span: 28 span: 29 } location: { path: 4 path: 8 span: 130 span: 0 span: 132 span: 1 } location: { path: 4 path: 8 path: 1 span: 130 span: 8 span: 26 } location: { path: 4 path: 8 path: 2 path: 0 span: 131 span: 2 span: 28 } location: { path: 4 path: 8 path: 2 path: 0 path: 4 span: 131 span: 2 span: 10 } location: { path: 4 path: 8 path: 2 path: 0 path: 6 span: 131 span: 11 span: 16 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 131 span: 17 span: 23 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 131 span: 26 span: 27 } location: { path: 4 path: 9 span: 134 span: 0 span: 148 span: 1 } location: { path: 4 path: 9 path: 1 span: 134 span: 8 span: 26 } location: { path: 4 path: 9 path: 2 path: 0 span: 135 span: 2 span: 18 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 135 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 135 span: 9 span: 13 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 135 span: 16 span: 17 } location: { path: 4 path: 9 path: 2 path: 1 span: 141 span: 2 span: 16 leading_comments: " Sync indicates that the delete and cleanup should be done\n synchronously before returning to the caller\n\n Default is false\n" } location: { path: 4 path: 9 path: 2 path: 1 path: 5 span: 141 span: 2 span: 6 } location: { path: 4 path: 9 path: 2 path: 1 path: 1 span: 141 span: 7 span: 11 } location: { path: 4 path: 9 path: 2 path: 1 path: 3 span: 141 span: 14 span: 15 } location: { path: 4 path: 9 path: 2 path: 2 span: 147 span: 2 span: 50 leading_comments: " Target value for image to be deleted\n\n If image descriptor does not match the same digest,\n the delete operation will return \"not found\" error.\n" } location: { path: 4 path: 9 path: 2 path: 2 path: 4 span: 147 span: 2 span: 10 } location: { path: 4 path: 9 path: 2 path: 2 path: 6 span: 147 span: 11 span: 38 } location: { path: 4 path: 9 path: 2 path: 2 path: 1 span: 147 span: 39 span: 45 } location: { path: 4 path: 9 path: 2 path: 2 path: 3 span: 147 span: 48 span: 49 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "google/rpc/status.proto" package: "google.rpc" dependency: "google/protobuf/any.proto" message_type: { name: "Status" field: { name: "code" number: 1 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "code" } field: { name: "message" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "message" } field: { name: "details" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "details" } } options: { java_package: "com.google.rpc" java_outer_classname: "StatusProto" java_multiple_files: true go_package: "google.golang.org/genproto/googleapis/rpc/status;status" objc_class_prefix: "RPC" } source_code_info: { location: { span: 14 span: 0 span: 47 span: 1 } location: { path: 12 span: 14 span: 0 span: 18 leading_detached_comments: " Copyright 2026 Google LLC\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" } location: { path: 2 span: 16 span: 0 span: 19 } location: { path: 3 path: 0 span: 18 span: 0 span: 35 } location: { path: 8 span: 20 span: 0 span: 78 } location: { path: 8 path: 11 span: 20 span: 0 span: 78 } location: { path: 8 span: 21 span: 0 span: 34 } location: { path: 8 path: 10 span: 21 span: 0 span: 34 } location: { path: 8 span: 22 span: 0 span: 44 } location: { path: 8 path: 8 span: 22 span: 0 span: 44 } location: { path: 8 span: 23 span: 0 span: 39 } location: { path: 8 path: 1 span: 23 span: 0 span: 39 } location: { path: 8 span: 24 span: 0 span: 33 } location: { path: 8 path: 36 span: 24 span: 0 span: 33 } location: { path: 4 path: 0 span: 33 span: 0 span: 47 span: 1 leading_comments: " The `Status` type defines a logical error model that is suitable for\n different programming environments, including REST APIs and RPC APIs. It is\n used by [gRPC](https://github.com/grpc). Each `Status` message contains\n three pieces of data: error code, error message, and error details.\n\n You can find out more about this error model and how to work with it in the\n [API Design Guide](https://cloud.google.com/apis/design/errors).\n" } location: { path: 4 path: 0 path: 1 span: 33 span: 8 span: 14 } location: { path: 4 path: 0 path: 2 path: 0 span: 36 span: 2 span: 17 leading_comments: " The status code, which should be an enum value of\n [google.rpc.Code][google.rpc.Code].\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 36 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 36 span: 8 span: 12 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 36 span: 15 span: 16 } location: { path: 4 path: 0 path: 2 path: 1 span: 42 span: 2 span: 21 leading_comments: " A developer-facing error message, which should be in English. Any\n user-facing error message should be localized and sent in the\n [google.rpc.Status.details][google.rpc.Status.details] field, or localized\n by the client.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 42 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 42 span: 9 span: 16 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 42 span: 19 span: 20 } location: { path: 4 path: 0 path: 2 path: 2 span: 46 span: 2 span: 43 leading_comments: " A list of messages that carry the error details. There is a common set of\n message types for APIs to use.\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 4 span: 46 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 46 span: 11 span: 30 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 46 span: 31 span: 38 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 46 span: 41 span: 42 } } syntax: "proto3" buf_extension: { is_import: true module_info: { name: { remote: "buf.build" owner: "googleapis" repository: "googleapis" } commit: "c17df5b2beca46928cc87d5656bd5343" } is_syntax_unspecified: false } } file: { name: "types/introspection.proto" package: "containerd.types" dependency: "google/protobuf/any.proto" message_type: { name: "RuntimeRequest" field: { name: "runtime_path" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "runtimePath" } field: { name: "options" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } message_type: { name: "RuntimeVersion" field: { name: "version" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "version" } field: { name: "revision" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "revision" } } message_type: { name: "RuntimeInfo" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "version" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.RuntimeVersion" json_name: "version" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } field: { name: "features" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "features" } field: { name: "annotations" number: 5 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.RuntimeInfo.AnnotationsEntry" json_name: "annotations" } nested_type: { name: "AnnotationsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } options: { go_package: "github.com/containerd/containerd/api/types;types" } source_code_info: { location: { span: 16 span: 0 span: 45 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 25 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 8 span: 22 span: 0 span: 71 } location: { path: 8 path: 11 span: 22 span: 0 span: 71 } location: { path: 4 path: 0 span: 24 span: 0 span: 29 span: 1 } location: { path: 4 path: 0 path: 1 span: 24 span: 8 span: 22 } location: { path: 4 path: 0 path: 2 path: 0 span: 25 span: 2 span: 26 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 25 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 25 span: 9 span: 21 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 25 span: 24 span: 25 } location: { path: 4 path: 0 path: 2 path: 1 span: 28 span: 2 span: 34 leading_comments: " Options correspond to CreateTaskRequest.options.\n This is needed to pass the runc binary path, etc.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 28 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 28 span: 22 span: 29 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 28 span: 32 span: 33 } location: { path: 4 path: 1 span: 31 span: 0 span: 34 span: 1 } location: { path: 4 path: 1 path: 1 span: 31 span: 8 span: 22 } location: { path: 4 path: 1 path: 2 path: 0 span: 32 span: 2 span: 21 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 32 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 32 span: 9 span: 16 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 32 span: 19 span: 20 } location: { path: 4 path: 1 path: 2 path: 1 span: 33 span: 2 span: 22 } location: { path: 4 path: 1 path: 2 path: 1 path: 5 span: 33 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 33 span: 9 span: 17 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 33 span: 20 span: 21 } location: { path: 4 path: 2 span: 36 span: 0 span: 45 span: 1 } location: { path: 4 path: 2 path: 1 span: 36 span: 8 span: 19 } location: { path: 4 path: 2 path: 2 path: 0 span: 37 span: 2 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 37 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 37 span: 9 span: 13 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 37 span: 16 span: 17 } location: { path: 4 path: 2 path: 2 path: 1 span: 38 span: 2 span: 29 } location: { path: 4 path: 2 path: 2 path: 1 path: 6 span: 38 span: 2 span: 16 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 38 span: 17 span: 24 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 38 span: 27 span: 28 } location: { path: 4 path: 2 path: 2 path: 2 span: 40 span: 2 span: 34 leading_comments: " Options correspond to RuntimeInfoRequest.Options (contains runc binary path, etc.)\n" } location: { path: 4 path: 2 path: 2 path: 2 path: 6 span: 40 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 40 span: 22 span: 29 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 40 span: 32 span: 33 } location: { path: 4 path: 2 path: 2 path: 3 span: 42 span: 2 span: 35 leading_comments: " OCI-compatible runtimes should use https://github.com/opencontainers/runtime-spec/blob/main/features.md\n" } location: { path: 4 path: 2 path: 2 path: 3 path: 6 span: 42 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 3 path: 1 span: 42 span: 22 span: 30 } location: { path: 4 path: 2 path: 2 path: 3 path: 3 span: 42 span: 33 span: 34 } location: { path: 4 path: 2 path: 2 path: 4 span: 44 span: 2 span: 38 leading_comments: " Annotations of the shim. Irrelevant to features.Annotations.\n" } location: { path: 4 path: 2 path: 2 path: 4 path: 6 span: 44 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 4 path: 1 span: 44 span: 22 span: 33 } location: { path: 4 path: 2 path: 2 path: 4 path: 3 span: 44 span: 36 span: 37 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/introspection/v1/introspection.proto" package: "containerd.services.introspection.v1" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/timestamp.proto" dependency: "google/rpc/status.proto" dependency: "types/introspection.proto" dependency: "types/platform.proto" message_type: { name: "Plugin" field: { name: "type" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "type" } field: { name: "id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "requires" number: 3 label: LABEL_REPEATED type: TYPE_STRING json_name: "requires" } field: { name: "platforms" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Platform" json_name: "platforms" } field: { name: "exports" number: 5 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.introspection.v1.Plugin.ExportsEntry" json_name: "exports" } field: { name: "capabilities" number: 6 label: LABEL_REPEATED type: TYPE_STRING json_name: "capabilities" } field: { name: "init_err" number: 7 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.rpc.Status" json_name: "initErr" } nested_type: { name: "ExportsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "PluginsRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "PluginsResponse" field: { name: "plugins" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.introspection.v1.Plugin" json_name: "plugins" } } message_type: { name: "ServerResponse" field: { name: "uuid" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "uuid" } field: { name: "pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT64 json_name: "pid" } field: { name: "pidns" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT64 json_name: "pidns" } field: { name: "deprecations" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.introspection.v1.DeprecationWarning" json_name: "deprecations" } } message_type: { name: "DeprecationWarning" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "message" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "message" } field: { name: "last_occurrence" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "lastOccurrence" } } message_type: { name: "PluginInfoRequest" field: { name: "type" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "type" } field: { name: "id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } message_type: { name: "PluginInfoResponse" field: { name: "plugin" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.introspection.v1.Plugin" json_name: "plugin" } field: { name: "extra" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "extra" } } service: { name: "Introspection" method: { name: "Plugins" input_type: ".containerd.services.introspection.v1.PluginsRequest" output_type: ".containerd.services.introspection.v1.PluginsResponse" } method: { name: "Server" input_type: ".google.protobuf.Empty" output_type: ".containerd.services.introspection.v1.ServerResponse" } method: { name: "PluginInfo" input_type: ".containerd.services.introspection.v1.PluginInfoRequest" output_type: ".containerd.services.introspection.v1.PluginInfoResponse" } } options: { go_package: "github.com/containerd/containerd/api/services/introspection/v1;introspection" } source_code_info: { location: { span: 16 span: 0 span: 132 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 45 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 37 } location: { path: 3 path: 2 span: 22 span: 0 span: 41 } location: { path: 3 path: 3 span: 23 span: 0 span: 33 } location: { path: 3 path: 4 span: 24 span: 0 span: 35 } location: { path: 3 path: 5 span: 25 span: 0 span: 30 } location: { path: 8 span: 27 span: 0 span: 99 } location: { path: 8 path: 11 span: 27 span: 0 span: 99 } location: { path: 6 path: 0 span: 29 span: 0 span: 39 span: 1 } location: { path: 6 path: 0 path: 1 span: 29 span: 8 span: 21 } location: { path: 6 path: 0 path: 2 path: 0 span: 34 span: 2 span: 56 leading_comments: " Plugins returns a list of plugins in containerd.\n\n Clients can use this to detect features and capabilities when using\n containerd.\n" } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 34 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 34 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 34 span: 39 span: 54 } location: { path: 6 path: 0 path: 2 path: 1 span: 36 span: 2 span: 61 leading_comments: " Server returns information about the containerd server\n" } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 36 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 36 span: 13 span: 34 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 36 span: 45 span: 59 } location: { path: 6 path: 0 path: 2 path: 2 span: 38 span: 2 span: 65 leading_comments: " PluginInfo returns information directly from a plugin if the plugin supports it\n" } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 38 span: 6 span: 16 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 38 span: 17 span: 34 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 38 span: 45 span: 63 } location: { path: 4 path: 0 span: 41 span: 0 span: 85 span: 1 } location: { path: 4 path: 0 path: 1 span: 41 span: 8 span: 14 } location: { path: 4 path: 0 path: 2 path: 0 span: 46 span: 2 span: 18 leading_comments: " Type defines the type of plugin.\n\n See package plugin for a list of possible values. Non core plugins may\n define their own values during registration.\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 46 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 46 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 46 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 span: 49 span: 2 span: 16 leading_comments: " ID identifies the plugin uniquely in the system.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 49 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 49 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 49 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 2 span: 52 span: 2 span: 31 leading_comments: " Requires lists the plugin types required by this plugin.\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 4 span: 52 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 52 span: 11 span: 17 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 52 span: 18 span: 26 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 52 span: 29 span: 30 } location: { path: 4 path: 0 path: 2 path: 3 span: 63 span: 2 span: 40 leading_comments: " Platforms enumerates the platforms this plugin will support.\n\n If values are provided here, the plugin will only be operable under the\n provided platforms.\n\n If this is empty, the plugin will work across all platforms.\n\n If the plugin prefers certain platforms over others, they should be\n listed from most to least preferred.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 4 span: 63 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 63 span: 11 span: 25 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 63 span: 26 span: 35 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 63 span: 38 span: 39 } location: { path: 4 path: 0 path: 2 path: 4 span: 69 span: 2 span: 34 leading_comments: " Exports allows plugins to provide values about state or configuration to\n interested parties.\n\n One example is exposing the configured path of a snapshotter plugin.\n" } location: { path: 4 path: 0 path: 2 path: 4 path: 6 span: 69 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 69 span: 22 span: 29 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 69 span: 32 span: 33 } location: { path: 4 path: 0 path: 2 path: 5 span: 76 span: 2 span: 35 leading_comments: " Capabilities allows plugins to communicate feature switches to allow\n clients to detect features that may not be on be default or may be\n different from version to version.\n\n Use this sparingly.\n" } location: { path: 4 path: 0 path: 2 path: 5 path: 4 span: 76 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 5 path: 5 span: 76 span: 11 span: 17 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 76 span: 18 span: 30 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 76 span: 33 span: 34 } location: { path: 4 path: 0 path: 2 path: 6 span: 84 span: 2 span: 33 leading_comments: " InitErr will be set if the plugin fails initialization.\n\n This means the plugin may have been registered but a non-terminal error\n was encountered during initialization.\n\n Plugins that have this value set cannot be used.\n" } location: { path: 4 path: 0 path: 2 path: 6 path: 6 span: 84 span: 2 span: 19 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 84 span: 20 span: 28 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 84 span: 31 span: 32 } location: { path: 4 path: 1 span: 87 span: 0 span: 99 span: 1 } location: { path: 4 path: 1 path: 1 span: 87 span: 8 span: 22 } location: { path: 4 path: 1 path: 2 path: 0 span: 98 span: 2 span: 30 leading_comments: " Filters contains one or more filters using the syntax defined in the\n containerd filter package.\n\n The returned result will be those that match any of the provided\n filters. Expanded, plugins that match the following will be\n returned:\n\n\tfilters[0] or filters[1] or ... or filters[n-1] or filters[n]\n\n If filters is zero-length or nil, all items will be returned.\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 4 span: 98 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 98 span: 11 span: 17 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 98 span: 18 span: 25 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 98 span: 28 span: 29 } location: { path: 4 path: 2 span: 101 span: 0 span: 103 span: 1 } location: { path: 4 path: 2 path: 1 span: 101 span: 8 span: 23 } location: { path: 4 path: 2 path: 2 path: 0 span: 102 span: 2 span: 30 } location: { path: 4 path: 2 path: 2 path: 0 path: 4 span: 102 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 0 path: 6 span: 102 span: 11 span: 17 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 102 span: 18 span: 25 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 102 span: 28 span: 29 } location: { path: 4 path: 3 span: 105 span: 0 span: 110 span: 1 } location: { path: 4 path: 3 path: 1 span: 105 span: 8 span: 22 } location: { path: 4 path: 3 path: 2 path: 0 span: 106 span: 2 span: 18 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 106 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 106 span: 9 span: 13 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 106 span: 16 span: 17 } location: { path: 4 path: 3 path: 2 path: 1 span: 107 span: 2 span: 17 } location: { path: 4 path: 3 path: 2 path: 1 path: 5 span: 107 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 107 span: 9 span: 12 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 107 span: 15 span: 16 } location: { path: 4 path: 3 path: 2 path: 2 span: 108 span: 2 span: 19 trailing_comments: " PID namespace, such as 4026531836\n" } location: { path: 4 path: 3 path: 2 path: 2 path: 5 span: 108 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 2 path: 1 span: 108 span: 9 span: 14 } location: { path: 4 path: 3 path: 2 path: 2 path: 3 span: 108 span: 17 span: 18 } location: { path: 4 path: 3 path: 2 path: 3 span: 109 span: 2 span: 47 } location: { path: 4 path: 3 path: 2 path: 3 path: 4 span: 109 span: 2 span: 10 } location: { path: 4 path: 3 path: 2 path: 3 path: 6 span: 109 span: 11 span: 29 } location: { path: 4 path: 3 path: 2 path: 3 path: 1 span: 109 span: 30 span: 42 } location: { path: 4 path: 3 path: 2 path: 3 path: 3 span: 109 span: 45 span: 46 } location: { path: 4 path: 4 span: 112 span: 0 span: 116 span: 1 } location: { path: 4 path: 4 path: 1 span: 112 span: 8 span: 26 } location: { path: 4 path: 4 path: 2 path: 0 span: 113 span: 2 span: 16 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 113 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 113 span: 9 span: 11 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 113 span: 14 span: 15 } location: { path: 4 path: 4 path: 2 path: 1 span: 114 span: 2 span: 21 } location: { path: 4 path: 4 path: 2 path: 1 path: 5 span: 114 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 1 path: 1 span: 114 span: 9 span: 16 } location: { path: 4 path: 4 path: 2 path: 1 path: 3 span: 114 span: 19 span: 20 } location: { path: 4 path: 4 path: 2 path: 2 span: 115 span: 2 span: 48 } location: { path: 4 path: 4 path: 2 path: 2 path: 6 span: 115 span: 2 span: 27 } location: { path: 4 path: 4 path: 2 path: 2 path: 1 span: 115 span: 28 span: 43 } location: { path: 4 path: 4 path: 2 path: 2 path: 3 span: 115 span: 46 span: 47 } location: { path: 4 path: 5 span: 118 span: 0 span: 127 span: 1 } location: { path: 4 path: 5 path: 1 span: 118 span: 8 span: 25 } location: { path: 4 path: 5 path: 2 path: 0 span: 119 span: 2 span: 18 } location: { path: 4 path: 5 path: 2 path: 0 path: 5 span: 119 span: 2 span: 8 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 119 span: 9 span: 13 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 119 span: 16 span: 17 } location: { path: 4 path: 5 path: 2 path: 1 span: 120 span: 2 span: 16 } location: { path: 4 path: 5 path: 2 path: 1 path: 5 span: 120 span: 2 span: 8 } location: { path: 4 path: 5 path: 2 path: 1 path: 1 span: 120 span: 9 span: 11 } location: { path: 4 path: 5 path: 2 path: 1 path: 3 span: 120 span: 14 span: 15 } location: { path: 4 path: 5 path: 2 path: 2 span: 126 span: 2 span: 34 leading_comments: " Options may be used to request extra dynamic information from\n a plugin.\n This object is determined by the plugin and the plugin may return\n NotImplemented or InvalidArgument if it is not supported\n" } location: { path: 4 path: 5 path: 2 path: 2 path: 6 span: 126 span: 2 span: 21 } location: { path: 4 path: 5 path: 2 path: 2 path: 1 span: 126 span: 22 span: 29 } location: { path: 4 path: 5 path: 2 path: 2 path: 3 span: 126 span: 32 span: 33 } location: { path: 4 path: 6 span: 129 span: 0 span: 132 span: 1 } location: { path: 4 path: 6 path: 1 span: 129 span: 8 span: 26 } location: { path: 4 path: 6 path: 2 path: 0 span: 130 span: 2 span: 20 } location: { path: 4 path: 6 path: 2 path: 0 path: 6 span: 130 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 130 span: 9 span: 15 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 130 span: 18 span: 19 } location: { path: 4 path: 6 path: 2 path: 1 span: 131 span: 2 span: 32 } location: { path: 4 path: 6 path: 2 path: 1 path: 6 span: 131 span: 2 span: 21 } location: { path: 4 path: 6 path: 2 path: 1 path: 1 span: 131 span: 22 span: 27 } location: { path: 4 path: 6 path: 2 path: 1 path: 3 span: 131 span: 30 span: 31 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/leases/v1/leases.proto" package: "containerd.services.leases.v1" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/timestamp.proto" message_type: { name: "Lease" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "created_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "labels" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.leases.v1.Lease.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "CreateRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "labels" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.leases.v1.CreateRequest.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "CreateResponse" field: { name: "lease" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.leases.v1.Lease" json_name: "lease" } } message_type: { name: "DeleteRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "sync" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "sync" } } message_type: { name: "ListRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "ListResponse" field: { name: "leases" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.leases.v1.Lease" json_name: "leases" } } message_type: { name: "Resource" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "type" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "type" } } message_type: { name: "AddResourceRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "resource" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.leases.v1.Resource" json_name: "resource" } } message_type: { name: "DeleteResourceRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "resource" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.leases.v1.Resource" json_name: "resource" } } message_type: { name: "ListResourcesRequest" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } message_type: { name: "ListResourcesResponse" field: { name: "resources" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.leases.v1.Resource" json_name: "resources" } } service: { name: "Leases" method: { name: "Create" input_type: ".containerd.services.leases.v1.CreateRequest" output_type: ".containerd.services.leases.v1.CreateResponse" } method: { name: "Delete" input_type: ".containerd.services.leases.v1.DeleteRequest" output_type: ".google.protobuf.Empty" } method: { name: "List" input_type: ".containerd.services.leases.v1.ListRequest" output_type: ".containerd.services.leases.v1.ListResponse" } method: { name: "AddResource" input_type: ".containerd.services.leases.v1.AddResourceRequest" output_type: ".google.protobuf.Empty" } method: { name: "DeleteResource" input_type: ".containerd.services.leases.v1.DeleteResourceRequest" output_type: ".google.protobuf.Empty" } method: { name: "ListResources" input_type: ".containerd.services.leases.v1.ListResourcesRequest" output_type: ".containerd.services.leases.v1.ListResourcesResponse" } } options: { go_package: "github.com/containerd/containerd/api/services/leases/v1;leases" } source_code_info: { location: { span: 15 span: 0 span: 115 span: 1 } location: { path: 12 span: 15 span: 0 span: 18 leading_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 17 span: 0 span: 38 } location: { path: 3 path: 0 span: 19 span: 0 span: 37 } location: { path: 3 path: 1 span: 20 span: 0 span: 41 } location: { path: 8 span: 22 span: 0 span: 85 } location: { path: 8 path: 11 span: 22 span: 0 span: 85 } location: { path: 6 path: 0 span: 25 span: 0 span: 47 span: 1 leading_comments: " Leases service manages resources leases within the metadata store.\n" } location: { path: 6 path: 0 path: 1 span: 25 span: 8 span: 14 } location: { path: 6 path: 0 path: 2 path: 0 span: 28 span: 2 span: 53 leading_comments: " Create creates a new lease for managing changes to metadata. A lease\n can be used to protect objects from being removed.\n" } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 28 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 28 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 28 span: 37 span: 51 } location: { path: 6 path: 0 path: 2 path: 1 span: 33 span: 2 span: 60 leading_comments: " Delete deletes the lease and makes any unreferenced objects created\n during the lease eligible for garbage collection if not referenced\n or retained by other resources during the lease.\n" } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 33 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 33 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 33 span: 37 span: 58 } location: { path: 6 path: 0 path: 2 path: 2 span: 37 span: 2 span: 47 leading_comments: " List lists all active leases, returning the full list of\n leases and optionally including the referenced resources.\n" } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 37 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 37 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 37 span: 33 span: 45 } location: { path: 6 path: 0 path: 2 path: 3 span: 40 span: 2 span: 70 leading_comments: " AddResource references the resource by the provided lease.\n" } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 40 span: 6 span: 17 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 40 span: 18 span: 36 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 40 span: 47 span: 68 } location: { path: 6 path: 0 path: 2 path: 4 span: 43 span: 2 span: 76 leading_comments: " DeleteResource dereferences the resource by the provided lease.\n" } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 43 span: 6 span: 20 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 43 span: 21 span: 42 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 43 span: 53 span: 74 } location: { path: 6 path: 0 path: 2 path: 5 span: 46 span: 2 span: 74 leading_comments: " ListResources lists all the resources referenced by the lease.\n" } location: { path: 6 path: 0 path: 2 path: 5 path: 1 span: 46 span: 6 span: 19 } location: { path: 6 path: 0 path: 2 path: 5 path: 2 span: 46 span: 20 span: 40 } location: { path: 6 path: 0 path: 2 path: 5 path: 3 span: 46 span: 51 span: 72 } location: { path: 4 path: 0 span: 50 span: 0 span: 56 span: 1 leading_comments: " Lease is an object which retains resources while it exists.\n" } location: { path: 4 path: 0 path: 1 span: 50 span: 8 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 span: 51 span: 2 span: 16 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 51 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 51 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 51 span: 14 span: 15 } location: { path: 4 path: 0 path: 2 path: 1 span: 53 span: 2 span: 43 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 53 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 53 span: 28 span: 38 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 53 span: 41 span: 42 } location: { path: 4 path: 0 path: 2 path: 2 span: 55 span: 2 span: 33 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 55 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 55 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 55 span: 31 span: 32 } location: { path: 4 path: 1 span: 58 span: 0 span: 64 span: 1 } location: { path: 4 path: 1 path: 1 span: 58 span: 8 span: 21 } location: { path: 4 path: 1 path: 2 path: 0 span: 61 span: 2 span: 16 leading_comments: " ID is used to identity the lease, when the id is not set the service\n generates a random identifier for the lease.\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 61 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 61 span: 9 span: 11 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 61 span: 14 span: 15 } location: { path: 4 path: 1 path: 2 path: 1 span: 63 span: 2 span: 33 } location: { path: 4 path: 1 path: 2 path: 1 path: 6 span: 63 span: 2 span: 21 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 63 span: 22 span: 28 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 63 span: 31 span: 32 } location: { path: 4 path: 2 span: 66 span: 0 span: 68 span: 1 } location: { path: 4 path: 2 path: 1 span: 66 span: 8 span: 22 } location: { path: 4 path: 2 path: 2 path: 0 span: 67 span: 2 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 path: 6 span: 67 span: 2 span: 7 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 67 span: 8 span: 13 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 67 span: 16 span: 17 } location: { path: 4 path: 3 span: 70 span: 0 span: 78 span: 1 } location: { path: 4 path: 3 path: 1 span: 70 span: 8 span: 21 } location: { path: 4 path: 3 path: 2 path: 0 span: 71 span: 2 span: 16 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 71 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 71 span: 9 span: 11 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 71 span: 14 span: 15 } location: { path: 4 path: 3 path: 2 path: 1 span: 77 span: 2 span: 16 leading_comments: " Sync indicates that the delete and cleanup should be done\n synchronously before returning to the caller\n\n Default is false\n" } location: { path: 4 path: 3 path: 2 path: 1 path: 5 span: 77 span: 2 span: 6 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 77 span: 7 span: 11 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 77 span: 14 span: 15 } location: { path: 4 path: 4 span: 80 span: 0 span: 82 span: 1 } location: { path: 4 path: 4 path: 1 span: 80 span: 8 span: 19 } location: { path: 4 path: 4 path: 2 path: 0 span: 81 span: 2 span: 30 } location: { path: 4 path: 4 path: 2 path: 0 path: 4 span: 81 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 81 span: 11 span: 17 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 81 span: 18 span: 25 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 81 span: 28 span: 29 } location: { path: 4 path: 5 span: 84 span: 0 span: 86 span: 1 } location: { path: 4 path: 5 path: 1 span: 84 span: 8 span: 20 } location: { path: 4 path: 5 path: 2 path: 0 span: 85 span: 2 span: 28 } location: { path: 4 path: 5 path: 2 path: 0 path: 4 span: 85 span: 2 span: 10 } location: { path: 4 path: 5 path: 2 path: 0 path: 6 span: 85 span: 11 span: 16 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 85 span: 17 span: 23 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 85 span: 26 span: 27 } location: { path: 4 path: 6 span: 88 span: 0 span: 95 span: 1 } location: { path: 4 path: 6 path: 1 span: 88 span: 8 span: 16 } location: { path: 4 path: 6 path: 2 path: 0 span: 89 span: 2 span: 16 } location: { path: 4 path: 6 path: 2 path: 0 path: 5 span: 89 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 89 span: 9 span: 11 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 89 span: 14 span: 15 } location: { path: 4 path: 6 path: 2 path: 1 span: 94 span: 2 span: 18 leading_comments: " For snapshotter resource, there are many snapshotter types here, like\n overlayfs, devmapper etc. The type will be formatted with type,\n like \"snapshotter/overlayfs\".\n" } location: { path: 4 path: 6 path: 2 path: 1 path: 5 span: 94 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 1 path: 1 span: 94 span: 9 span: 13 } location: { path: 4 path: 6 path: 2 path: 1 path: 3 span: 94 span: 16 span: 17 } location: { path: 4 path: 7 span: 97 span: 0 span: 101 span: 1 } location: { path: 4 path: 7 path: 1 span: 97 span: 8 span: 26 } location: { path: 4 path: 7 path: 2 path: 0 span: 98 span: 2 span: 16 } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 98 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 98 span: 9 span: 11 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 98 span: 14 span: 15 } location: { path: 4 path: 7 path: 2 path: 1 span: 100 span: 2 span: 24 } location: { path: 4 path: 7 path: 2 path: 1 path: 6 span: 100 span: 2 span: 10 } location: { path: 4 path: 7 path: 2 path: 1 path: 1 span: 100 span: 11 span: 19 } location: { path: 4 path: 7 path: 2 path: 1 path: 3 span: 100 span: 22 span: 23 } location: { path: 4 path: 8 span: 103 span: 0 span: 107 span: 1 } location: { path: 4 path: 8 path: 1 span: 103 span: 8 span: 29 } location: { path: 4 path: 8 path: 2 path: 0 span: 104 span: 2 span: 16 } location: { path: 4 path: 8 path: 2 path: 0 path: 5 span: 104 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 104 span: 9 span: 11 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 104 span: 14 span: 15 } location: { path: 4 path: 8 path: 2 path: 1 span: 106 span: 2 span: 24 } location: { path: 4 path: 8 path: 2 path: 1 path: 6 span: 106 span: 2 span: 10 } location: { path: 4 path: 8 path: 2 path: 1 path: 1 span: 106 span: 11 span: 19 } location: { path: 4 path: 8 path: 2 path: 1 path: 3 span: 106 span: 22 span: 23 } location: { path: 4 path: 9 span: 109 span: 0 span: 111 span: 1 } location: { path: 4 path: 9 path: 1 span: 109 span: 8 span: 28 } location: { path: 4 path: 9 path: 2 path: 0 span: 110 span: 2 span: 16 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 110 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 110 span: 9 span: 11 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 110 span: 14 span: 15 } location: { path: 4 path: 10 span: 113 span: 0 span: 115 span: 1 } location: { path: 4 path: 10 path: 1 span: 113 span: 8 span: 29 } location: { path: 4 path: 10 path: 2 path: 0 span: 114 span: 2 span: 34 } location: { path: 4 path: 10 path: 2 path: 0 path: 4 span: 114 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 0 path: 6 span: 114 span: 11 span: 19 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 114 span: 20 span: 29 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 114 span: 32 span: 33 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/mounts/v1/mounts.proto" package: "containerd.services.mounts.v1" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/field_mask.proto" dependency: "types/mount.proto" message_type: { name: "ActivateRequest" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "mounts" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "mounts" } field: { name: "labels" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.mounts.v1.ActivateRequest.LabelsEntry" json_name: "labels" } field: { name: "temporary" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "temporary" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "ActivateResponse" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.ActivationInfo" json_name: "info" } } message_type: { name: "DeactivateRequest" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } } message_type: { name: "InfoRequest" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } } message_type: { name: "InfoResponse" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.ActivationInfo" json_name: "info" } } message_type: { name: "UpdateRequest" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.ActivationInfo" json_name: "info" } field: { name: "update_mask" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FieldMask" json_name: "updateMask" } } message_type: { name: "UpdateResponse" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.ActivationInfo" json_name: "info" } } message_type: { name: "ListRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "ListMessage" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.ActivationInfo" json_name: "info" } } service: { name: "Mounts" method: { name: "Activate" input_type: ".containerd.services.mounts.v1.ActivateRequest" output_type: ".containerd.services.mounts.v1.ActivateResponse" } method: { name: "Deactivate" input_type: ".containerd.services.mounts.v1.DeactivateRequest" output_type: ".google.protobuf.Empty" } method: { name: "Info" input_type: ".containerd.services.mounts.v1.InfoRequest" output_type: ".containerd.services.mounts.v1.InfoResponse" } method: { name: "Update" input_type: ".containerd.services.mounts.v1.UpdateRequest" output_type: ".containerd.services.mounts.v1.UpdateResponse" } method: { name: "List" input_type: ".containerd.services.mounts.v1.ListRequest" output_type: ".containerd.services.mounts.v1.ListMessage" server_streaming: true } } options: { go_package: "github.com/containerd/containerd/api/services/mounts/v1;mounts" } source_code_info: { location: { span: 15 span: 0 span: 76 span: 1 } location: { path: 12 span: 15 span: 0 span: 18 leading_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 17 span: 0 span: 38 } location: { path: 3 path: 0 span: 19 span: 0 span: 37 } location: { path: 3 path: 1 span: 20 span: 0 span: 42 } location: { path: 3 path: 2 span: 21 span: 0 span: 27 } location: { path: 8 span: 23 span: 0 span: 85 } location: { path: 8 path: 11 span: 23 span: 0 span: 85 } location: { path: 6 path: 0 span: 26 span: 0 span: 32 span: 1 leading_comments: " Mounts service manages mounts\n" } location: { path: 6 path: 0 path: 1 span: 26 span: 8 span: 14 } location: { path: 6 path: 0 path: 2 path: 0 span: 27 span: 2 span: 59 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 27 span: 6 span: 14 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 27 span: 15 span: 30 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 27 span: 41 span: 57 } location: { path: 6 path: 0 path: 2 path: 1 span: 28 span: 2 span: 68 } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 28 span: 6 span: 16 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 28 span: 17 span: 34 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 28 span: 45 span: 66 } location: { path: 6 path: 0 path: 2 path: 2 span: 29 span: 2 span: 47 } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 29 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 29 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 29 span: 33 span: 45 } location: { path: 6 path: 0 path: 2 path: 3 span: 30 span: 2 span: 53 } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 30 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 30 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 30 span: 37 span: 51 } location: { path: 6 path: 0 path: 2 path: 4 span: 31 span: 2 span: 53 } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 31 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 31 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 4 path: 6 span: 31 span: 33 span: 39 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 31 span: 40 span: 51 } location: { path: 4 path: 0 span: 34 span: 0 span: 42 span: 1 } location: { path: 4 path: 0 path: 1 span: 34 span: 8 span: 23 } location: { path: 4 path: 0 path: 2 path: 0 span: 35 span: 2 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 35 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 35 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 35 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 span: 37 span: 2 span: 45 } location: { path: 4 path: 0 path: 2 path: 1 path: 4 span: 37 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 37 span: 11 span: 33 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 37 span: 34 span: 40 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 37 span: 43 span: 44 } location: { path: 4 path: 0 path: 2 path: 2 span: 39 span: 2 span: 33 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 39 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 39 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 39 span: 31 span: 32 } location: { path: 4 path: 0 path: 2 path: 3 span: 41 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 41 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 41 span: 7 span: 16 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 41 span: 19 span: 20 } location: { path: 4 path: 1 span: 44 span: 0 span: 46 span: 1 } location: { path: 4 path: 1 path: 1 span: 44 span: 8 span: 24 } location: { path: 4 path: 1 path: 2 path: 0 span: 45 span: 2 span: 43 } location: { path: 4 path: 1 path: 2 path: 0 path: 6 span: 45 span: 2 span: 33 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 45 span: 34 span: 38 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 45 span: 41 span: 42 } location: { path: 4 path: 2 span: 48 span: 0 span: 50 span: 1 } location: { path: 4 path: 2 path: 1 span: 48 span: 8 span: 25 } location: { path: 4 path: 2 path: 2 path: 0 span: 49 span: 2 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 49 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 49 span: 9 span: 13 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 49 span: 16 span: 17 } location: { path: 4 path: 3 span: 52 span: 0 span: 54 span: 1 } location: { path: 4 path: 3 path: 1 span: 52 span: 8 span: 19 } location: { path: 4 path: 3 path: 2 path: 0 span: 53 span: 2 span: 18 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 53 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 53 span: 9 span: 13 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 53 span: 16 span: 17 } location: { path: 4 path: 4 span: 56 span: 0 span: 58 span: 1 } location: { path: 4 path: 4 path: 1 span: 56 span: 8 span: 20 } location: { path: 4 path: 4 path: 2 path: 0 span: 57 span: 2 span: 43 } location: { path: 4 path: 4 path: 2 path: 0 path: 6 span: 57 span: 2 span: 33 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 57 span: 34 span: 38 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 57 span: 41 span: 42 } location: { path: 4 path: 5 span: 60 span: 0 span: 64 span: 1 } location: { path: 4 path: 5 path: 1 span: 60 span: 8 span: 21 } location: { path: 4 path: 5 path: 2 path: 0 span: 61 span: 2 span: 43 } location: { path: 4 path: 5 path: 2 path: 0 path: 6 span: 61 span: 2 span: 33 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 61 span: 34 span: 38 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 61 span: 41 span: 42 } location: { path: 4 path: 5 path: 2 path: 1 span: 63 span: 2 span: 44 } location: { path: 4 path: 5 path: 2 path: 1 path: 6 span: 63 span: 2 span: 27 } location: { path: 4 path: 5 path: 2 path: 1 path: 1 span: 63 span: 28 span: 39 } location: { path: 4 path: 5 path: 2 path: 1 path: 3 span: 63 span: 42 span: 43 } location: { path: 4 path: 6 span: 66 span: 0 span: 68 span: 1 } location: { path: 4 path: 6 path: 1 span: 66 span: 8 span: 22 } location: { path: 4 path: 6 path: 2 path: 0 span: 67 span: 2 span: 43 } location: { path: 4 path: 6 path: 2 path: 0 path: 6 span: 67 span: 2 span: 33 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 67 span: 34 span: 38 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 67 span: 41 span: 42 } location: { path: 4 path: 7 span: 70 span: 0 span: 72 span: 1 } location: { path: 4 path: 7 path: 1 span: 70 span: 8 span: 19 } location: { path: 4 path: 7 path: 2 path: 0 span: 71 span: 2 span: 30 } location: { path: 4 path: 7 path: 2 path: 0 path: 4 span: 71 span: 2 span: 10 } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 71 span: 11 span: 17 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 71 span: 18 span: 25 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 71 span: 28 span: 29 } location: { path: 4 path: 8 span: 74 span: 0 span: 76 span: 1 } location: { path: 4 path: 8 path: 1 span: 74 span: 8 span: 19 } location: { path: 4 path: 8 path: 2 path: 0 span: 75 span: 2 span: 43 } location: { path: 4 path: 8 path: 2 path: 0 path: 6 span: 75 span: 2 span: 33 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 75 span: 34 span: 38 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 75 span: 41 span: 42 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/namespaces/v1/namespace.proto" package: "containerd.services.namespaces.v1" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/field_mask.proto" message_type: { name: "Namespace" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "labels" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.namespaces.v1.Namespace.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "GetNamespaceRequest" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } } message_type: { name: "GetNamespaceResponse" field: { name: "namespace" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.namespaces.v1.Namespace" json_name: "namespace" } } message_type: { name: "ListNamespacesRequest" field: { name: "filter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "filter" } } message_type: { name: "ListNamespacesResponse" field: { name: "namespaces" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.namespaces.v1.Namespace" json_name: "namespaces" } } message_type: { name: "CreateNamespaceRequest" field: { name: "namespace" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.namespaces.v1.Namespace" json_name: "namespace" } } message_type: { name: "CreateNamespaceResponse" field: { name: "namespace" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.namespaces.v1.Namespace" json_name: "namespace" } } message_type: { name: "UpdateNamespaceRequest" field: { name: "namespace" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.namespaces.v1.Namespace" json_name: "namespace" } field: { name: "update_mask" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FieldMask" json_name: "updateMask" } } message_type: { name: "UpdateNamespaceResponse" field: { name: "namespace" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.namespaces.v1.Namespace" json_name: "namespace" } } message_type: { name: "DeleteNamespaceRequest" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } } service: { name: "Namespaces" method: { name: "Get" input_type: ".containerd.services.namespaces.v1.GetNamespaceRequest" output_type: ".containerd.services.namespaces.v1.GetNamespaceResponse" } method: { name: "List" input_type: ".containerd.services.namespaces.v1.ListNamespacesRequest" output_type: ".containerd.services.namespaces.v1.ListNamespacesResponse" } method: { name: "Create" input_type: ".containerd.services.namespaces.v1.CreateNamespaceRequest" output_type: ".containerd.services.namespaces.v1.CreateNamespaceResponse" } method: { name: "Update" input_type: ".containerd.services.namespaces.v1.UpdateNamespaceRequest" output_type: ".containerd.services.namespaces.v1.UpdateNamespaceResponse" } method: { name: "Delete" input_type: ".containerd.services.namespaces.v1.DeleteNamespaceRequest" output_type: ".google.protobuf.Empty" } } options: { go_package: "github.com/containerd/containerd/api/services/namespaces/v1;namespaces" } source_code_info: { location: { span: 16 span: 0 span: 106 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 42 } location: { path: 3 path: 0 span: 20 span: 0 span: 37 } location: { path: 3 path: 1 span: 21 span: 0 span: 42 } location: { path: 8 span: 23 span: 0 span: 93 } location: { path: 8 path: 11 span: 23 span: 0 span: 93 } location: { path: 6 path: 0 span: 36 span: 0 span: 42 span: 1 leading_comments: " Namespaces provides the ability to manipulate containerd namespaces.\n\n All objects in the system are required to be a member of a namespace. If a\n namespace is deleted, all objects, including containers, images and\n snapshots, will be deleted, as well.\n\n Unless otherwise noted, operations in containerd apply only to the namespace\n supplied per request.\n\n I hope this goes without saying, but namespaces are themselves NOT\n namespaced.\n" } location: { path: 6 path: 0 path: 1 span: 36 span: 8 span: 18 } location: { path: 6 path: 0 path: 2 path: 0 span: 37 span: 2 span: 62 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 37 span: 6 span: 9 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 37 span: 10 span: 29 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 37 span: 40 span: 60 } location: { path: 6 path: 0 path: 2 path: 1 span: 38 span: 2 span: 67 } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 38 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 38 span: 11 span: 32 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 38 span: 43 span: 65 } location: { path: 6 path: 0 path: 2 path: 2 span: 39 span: 2 span: 71 } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 39 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 39 span: 13 span: 35 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 39 span: 46 span: 69 } location: { path: 6 path: 0 path: 2 path: 3 span: 40 span: 2 span: 71 } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 40 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 40 span: 13 span: 35 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 40 span: 46 span: 69 } location: { path: 6 path: 0 path: 2 path: 4 span: 41 span: 2 span: 69 } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 41 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 41 span: 13 span: 35 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 41 span: 46 span: 67 } location: { path: 4 path: 0 span: 44 span: 0 span: 54 span: 1 } location: { path: 4 path: 0 path: 1 span: 44 span: 8 span: 17 } location: { path: 4 path: 0 path: 2 path: 0 span: 45 span: 2 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 45 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 45 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 45 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 span: 53 span: 2 span: 33 leading_comments: " Labels provides an area to include arbitrary data on namespaces.\n\n The combined size of a key/value pair cannot exceed 4096 bytes.\n\n Note that to add a new value to this field, read the existing set and\n include the entire result in the update call.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 53 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 53 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 53 span: 31 span: 32 } location: { path: 4 path: 1 span: 56 span: 0 span: 58 span: 1 } location: { path: 4 path: 1 path: 1 span: 56 span: 8 span: 27 } location: { path: 4 path: 1 path: 2 path: 0 span: 57 span: 2 span: 18 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 57 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 57 span: 9 span: 13 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 57 span: 16 span: 17 } location: { path: 4 path: 2 span: 60 span: 0 span: 62 span: 1 } location: { path: 4 path: 2 path: 1 span: 60 span: 8 span: 28 } location: { path: 4 path: 2 path: 2 path: 0 span: 61 span: 2 span: 26 } location: { path: 4 path: 2 path: 2 path: 0 path: 6 span: 61 span: 2 span: 11 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 61 span: 12 span: 21 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 61 span: 24 span: 25 } location: { path: 4 path: 3 span: 64 span: 0 span: 66 span: 1 } location: { path: 4 path: 3 path: 1 span: 64 span: 8 span: 29 } location: { path: 4 path: 3 path: 2 path: 0 span: 65 span: 2 span: 20 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 65 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 65 span: 9 span: 15 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 65 span: 18 span: 19 } location: { path: 4 path: 4 span: 68 span: 0 span: 70 span: 1 } location: { path: 4 path: 4 path: 1 span: 68 span: 8 span: 30 } location: { path: 4 path: 4 path: 2 path: 0 span: 69 span: 2 span: 36 } location: { path: 4 path: 4 path: 2 path: 0 path: 4 span: 69 span: 2 span: 10 } location: { path: 4 path: 4 path: 2 path: 0 path: 6 span: 69 span: 11 span: 20 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 69 span: 21 span: 31 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 69 span: 34 span: 35 } location: { path: 4 path: 5 span: 72 span: 0 span: 74 span: 1 } location: { path: 4 path: 5 path: 1 span: 72 span: 8 span: 30 } location: { path: 4 path: 5 path: 2 path: 0 span: 73 span: 2 span: 26 } location: { path: 4 path: 5 path: 2 path: 0 path: 6 span: 73 span: 2 span: 11 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 73 span: 12 span: 21 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 73 span: 24 span: 25 } location: { path: 4 path: 6 span: 76 span: 0 span: 78 span: 1 } location: { path: 4 path: 6 path: 1 span: 76 span: 8 span: 31 } location: { path: 4 path: 6 path: 2 path: 0 span: 77 span: 2 span: 26 } location: { path: 4 path: 6 path: 2 path: 0 path: 6 span: 77 span: 2 span: 11 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 77 span: 12 span: 21 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 77 span: 24 span: 25 } location: { path: 4 path: 7 span: 85 span: 0 span: 98 span: 1 leading_comments: " UpdateNamespaceRequest updates the metadata for a namespace.\n\n The operation should follow semantics described in\n https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/field-mask,\n unless otherwise qualified.\n" } location: { path: 4 path: 7 path: 1 span: 85 span: 8 span: 30 } location: { path: 4 path: 7 path: 2 path: 0 span: 89 span: 2 span: 26 leading_comments: " Namespace provides the target value, as declared by the mask, for the update.\n\n The namespace field must be set.\n" } location: { path: 4 path: 7 path: 2 path: 0 path: 6 span: 89 span: 2 span: 11 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 89 span: 12 span: 21 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 89 span: 24 span: 25 } location: { path: 4 path: 7 path: 2 path: 1 span: 97 span: 2 span: 44 leading_comments: " UpdateMask specifies which fields to perform the update on. If empty,\n the operation applies to all fields.\n\n For the most part, this applies only to selectively updating labels on\n the namespace. While field masks are typically limited to ascii alphas\n and digits, we just take everything after the \"labels.\" as the map key.\n" } location: { path: 4 path: 7 path: 2 path: 1 path: 6 span: 97 span: 2 span: 27 } location: { path: 4 path: 7 path: 2 path: 1 path: 1 span: 97 span: 28 span: 39 } location: { path: 4 path: 7 path: 2 path: 1 path: 3 span: 97 span: 42 span: 43 } location: { path: 4 path: 8 span: 100 span: 0 span: 102 span: 1 } location: { path: 4 path: 8 path: 1 span: 100 span: 8 span: 31 } location: { path: 4 path: 8 path: 2 path: 0 span: 101 span: 2 span: 26 } location: { path: 4 path: 8 path: 2 path: 0 path: 6 span: 101 span: 2 span: 11 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 101 span: 12 span: 21 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 101 span: 24 span: 25 } location: { path: 4 path: 9 span: 104 span: 0 span: 106 span: 1 } location: { path: 4 path: 9 path: 1 span: 104 span: 8 span: 30 } location: { path: 4 path: 9 path: 2 path: 0 span: 105 span: 2 span: 18 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 105 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 105 span: 9 span: 13 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 105 span: 16 span: 17 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/sandbox.proto" package: "containerd.types" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/timestamp.proto" message_type: { name: "Sandbox" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "runtime" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox.Runtime" json_name: "runtime" } field: { name: "spec" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "spec" } field: { name: "labels" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox.LabelsEntry" json_name: "labels" } field: { name: "created_at" number: 5 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "updated_at" number: 6 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "updatedAt" } field: { name: "extensions" number: 7 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox.ExtensionsEntry" json_name: "extensions" } field: { name: "sandboxer" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } nested_type: { name: "Runtime" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "options" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } nested_type: { name: "ExtensionsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "value" } options: { map_entry: true } } } options: { go_package: "github.com/containerd/containerd/api/types;types" } source_code_info: { location: { span: 16 span: 0 span: 52 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 25 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 41 } location: { path: 8 span: 23 span: 0 span: 71 } location: { path: 8 path: 11 span: 23 span: 0 span: 71 } location: { path: 4 path: 0 span: 27 span: 0 span: 52 span: 1 leading_comments: " Sandbox represents a sandbox metadata object that keeps all info required by controller to\n work with a particular instance.\n" } location: { path: 4 path: 0 path: 1 span: 27 span: 8 span: 15 } location: { path: 4 path: 0 path: 2 path: 0 span: 29 span: 2 span: 24 leading_comments: " SandboxID is a unique instance identifier within namespace\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 29 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 29 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 29 span: 22 span: 23 } location: { path: 4 path: 0 path: 3 path: 0 span: 30 span: 2 span: 36 span: 3 } location: { path: 4 path: 0 path: 3 path: 0 path: 1 span: 30 span: 10 span: 17 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 0 span: 32 span: 4 span: 20 leading_comments: " Name is the name of the runtime.\n" } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 0 path: 5 span: 32 span: 4 span: 10 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 0 path: 1 span: 32 span: 11 span: 15 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 0 path: 3 span: 32 span: 18 span: 19 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 1 span: 35 span: 4 span: 36 leading_comments: " Options specify additional runtime initialization options for the shim (this data will be available in StartShim).\n Typically this data expected to be runtime shim implementation specific.\n" } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 1 path: 6 span: 35 span: 4 span: 23 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 1 path: 1 span: 35 span: 24 span: 31 } location: { path: 4 path: 0 path: 3 path: 0 path: 2 path: 1 path: 3 span: 35 span: 34 span: 35 } location: { path: 4 path: 0 path: 2 path: 1 span: 38 span: 2 span: 22 leading_comments: " Runtime specifies which runtime to use for executing this container.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 38 span: 2 span: 9 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 38 span: 10 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 38 span: 20 span: 21 } location: { path: 4 path: 0 path: 2 path: 2 span: 41 span: 2 span: 31 leading_comments: " Spec is sandbox configuration (kin of OCI runtime spec), spec's data will be written to a config.json file in the\n bundle directory (similary to OCI spec).\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 41 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 41 span: 22 span: 26 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 41 span: 29 span: 30 } location: { path: 4 path: 0 path: 2 path: 3 span: 43 span: 2 span: 33 leading_comments: " Labels provides an area to include arbitrary data on containers.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 43 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 43 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 43 span: 31 span: 32 } location: { path: 4 path: 0 path: 2 path: 4 span: 45 span: 2 span: 43 leading_comments: " CreatedAt is the time the container was first created.\n" } location: { path: 4 path: 0 path: 2 path: 4 path: 6 span: 45 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 45 span: 28 span: 38 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 45 span: 41 span: 42 } location: { path: 4 path: 0 path: 2 path: 5 span: 47 span: 2 span: 43 leading_comments: " UpdatedAt is the last time the container was mutated.\n" } location: { path: 4 path: 0 path: 2 path: 5 path: 6 span: 47 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 47 span: 28 span: 38 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 47 span: 41 span: 42 } location: { path: 4 path: 0 path: 2 path: 6 span: 49 span: 2 span: 50 leading_comments: " Extensions allow clients to provide optional blobs that can be handled by runtime.\n" } location: { path: 4 path: 0 path: 2 path: 6 path: 6 span: 49 span: 2 span: 34 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 49 span: 35 span: 45 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 49 span: 48 span: 49 } location: { path: 4 path: 0 path: 2 path: 7 span: 51 span: 2 span: 24 leading_comments: " Sandboxer is the name of the sandbox controller who manages the sandbox.\n" } location: { path: 4 path: 0 path: 2 path: 7 path: 5 span: 51 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 7 path: 1 span: 51 span: 9 span: 18 } location: { path: 4 path: 0 path: 2 path: 7 path: 3 span: 51 span: 21 span: 23 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/sandbox/v1/sandbox.proto" package: "containerd.services.sandbox.v1" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/timestamp.proto" dependency: "types/metrics.proto" dependency: "types/mount.proto" dependency: "types/platform.proto" dependency: "types/sandbox.proto" message_type: { name: "StoreCreateRequest" field: { name: "sandbox" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox" json_name: "sandbox" } } message_type: { name: "StoreCreateResponse" field: { name: "sandbox" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox" json_name: "sandbox" } } message_type: { name: "StoreUpdateRequest" field: { name: "sandbox" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox" json_name: "sandbox" } field: { name: "fields" number: 2 label: LABEL_REPEATED type: TYPE_STRING json_name: "fields" } } message_type: { name: "StoreUpdateResponse" field: { name: "sandbox" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox" json_name: "sandbox" } } message_type: { name: "StoreDeleteRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "StoreDeleteResponse" } message_type: { name: "StoreListRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "StoreListResponse" field: { name: "list" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox" json_name: "list" } } message_type: { name: "StoreGetRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "StoreGetResponse" field: { name: "sandbox" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox" json_name: "sandbox" } } message_type: { name: "ControllerCreateRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "rootfs" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "rootfs" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } field: { name: "netns_path" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "netnsPath" } field: { name: "annotations" number: 5 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.sandbox.v1.ControllerCreateRequest.AnnotationsEntry" json_name: "annotations" } field: { name: "sandbox" number: 6 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox" json_name: "sandbox" } field: { name: "sandboxer" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } nested_type: { name: "AnnotationsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "ControllerCreateResponse" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } } message_type: { name: "ControllerStartRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "sandboxer" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } } message_type: { name: "ControllerStartResponse" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "created_at" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "labels" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.sandbox.v1.ControllerStartResponse.LabelsEntry" json_name: "labels" } field: { name: "address" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "address" } field: { name: "version" number: 6 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "version" } field: { name: "spec" number: 7 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "spec" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "ControllerPlatformRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "sandboxer" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } } message_type: { name: "ControllerPlatformResponse" field: { name: "platform" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Platform" json_name: "platform" } } message_type: { name: "ControllerStopRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "timeout_secs" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "timeoutSecs" } field: { name: "sandboxer" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } } message_type: { name: "ControllerStopResponse" } message_type: { name: "ControllerWaitRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "sandboxer" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } } message_type: { name: "ControllerWaitResponse" field: { name: "exit_status" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } message_type: { name: "ControllerStatusRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "verbose" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "verbose" } field: { name: "sandboxer" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } } message_type: { name: "ControllerStatusResponse" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "state" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "state" } field: { name: "info" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.sandbox.v1.ControllerStatusResponse.InfoEntry" json_name: "info" } field: { name: "created_at" number: 5 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "exited_at" number: 6 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } field: { name: "extra" number: 7 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "extra" } field: { name: "address" number: 8 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "address" } field: { name: "version" number: 9 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "version" } nested_type: { name: "InfoEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "ControllerShutdownRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "sandboxer" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } } message_type: { name: "ControllerShutdownResponse" } message_type: { name: "ControllerMetricsRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "sandboxer" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } } message_type: { name: "ControllerMetricsResponse" field: { name: "metrics" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Metric" json_name: "metrics" } } message_type: { name: "ControllerUpdateRequest" field: { name: "sandbox_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxId" } field: { name: "sandboxer" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "sandboxer" } field: { name: "sandbox" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Sandbox" json_name: "sandbox" } field: { name: "fields" number: 4 label: LABEL_REPEATED type: TYPE_STRING json_name: "fields" } } message_type: { name: "ControllerUpdateResponse" } service: { name: "Store" method: { name: "Create" input_type: ".containerd.services.sandbox.v1.StoreCreateRequest" output_type: ".containerd.services.sandbox.v1.StoreCreateResponse" } method: { name: "Update" input_type: ".containerd.services.sandbox.v1.StoreUpdateRequest" output_type: ".containerd.services.sandbox.v1.StoreUpdateResponse" } method: { name: "Delete" input_type: ".containerd.services.sandbox.v1.StoreDeleteRequest" output_type: ".containerd.services.sandbox.v1.StoreDeleteResponse" } method: { name: "List" input_type: ".containerd.services.sandbox.v1.StoreListRequest" output_type: ".containerd.services.sandbox.v1.StoreListResponse" } method: { name: "Get" input_type: ".containerd.services.sandbox.v1.StoreGetRequest" output_type: ".containerd.services.sandbox.v1.StoreGetResponse" } } service: { name: "Controller" method: { name: "Create" input_type: ".containerd.services.sandbox.v1.ControllerCreateRequest" output_type: ".containerd.services.sandbox.v1.ControllerCreateResponse" } method: { name: "Start" input_type: ".containerd.services.sandbox.v1.ControllerStartRequest" output_type: ".containerd.services.sandbox.v1.ControllerStartResponse" } method: { name: "Platform" input_type: ".containerd.services.sandbox.v1.ControllerPlatformRequest" output_type: ".containerd.services.sandbox.v1.ControllerPlatformResponse" } method: { name: "Stop" input_type: ".containerd.services.sandbox.v1.ControllerStopRequest" output_type: ".containerd.services.sandbox.v1.ControllerStopResponse" } method: { name: "Wait" input_type: ".containerd.services.sandbox.v1.ControllerWaitRequest" output_type: ".containerd.services.sandbox.v1.ControllerWaitResponse" } method: { name: "Status" input_type: ".containerd.services.sandbox.v1.ControllerStatusRequest" output_type: ".containerd.services.sandbox.v1.ControllerStatusResponse" } method: { name: "Shutdown" input_type: ".containerd.services.sandbox.v1.ControllerShutdownRequest" output_type: ".containerd.services.sandbox.v1.ControllerShutdownResponse" } method: { name: "Metrics" input_type: ".containerd.services.sandbox.v1.ControllerMetricsRequest" output_type: ".containerd.services.sandbox.v1.ControllerMetricsResponse" } method: { name: "Update" input_type: ".containerd.services.sandbox.v1.ControllerUpdateRequest" output_type: ".containerd.services.sandbox.v1.ControllerUpdateResponse" } } options: { go_package: "github.com/containerd/containerd/api/services/sandbox/v1;sandbox" } source_code_info: { location: { span: 16 span: 0 span: 202 span: 35 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 25 span: 0 span: 39 leading_comments: " Sandbox is a v2 runtime extension that allows more complex execution environments for containers.\n This adds a notion of groups of containers that share same lifecycle and/or resources.\n A few good fits for sandbox can be:\n - A \"pause\" container in k8s, that acts as a parent process for child containers to hold network namespace.\n - (micro)VMs that launch a VM process and executes containers inside guest OS.\n containerd in this case remains implementation agnostic and delegates sandbox handling to runtimes.\n See proposal and discussion here: https://github.com/containerd/containerd/issues/4131\n" } location: { path: 3 path: 0 span: 27 span: 0 span: 35 } location: { path: 3 path: 1 span: 28 span: 0 span: 41 } location: { path: 3 path: 2 span: 29 span: 0 span: 29 } location: { path: 3 path: 3 span: 30 span: 0 span: 27 } location: { path: 3 path: 4 span: 31 span: 0 span: 30 } location: { path: 3 path: 5 span: 32 span: 0 span: 29 } location: { path: 8 span: 34 span: 0 span: 87 } location: { path: 8 path: 11 span: 34 span: 0 span: 87 } location: { path: 6 path: 0 span: 39 span: 0 span: 45 span: 1 leading_comments: " Store provides a metadata storage interface for sandboxes. Similarly to `Containers`,\n sandbox object includes info required to start a new instance, but no runtime state.\n When running a new sandbox instance, store objects are used as base type to create from.\n" } location: { path: 6 path: 0 path: 1 span: 39 span: 8 span: 13 } location: { path: 6 path: 0 path: 2 path: 0 span: 40 span: 2 span: 63 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 40 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 40 span: 13 span: 31 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 40 span: 42 span: 61 } location: { path: 6 path: 0 path: 2 path: 1 span: 41 span: 2 span: 63 } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 41 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 41 span: 13 span: 31 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 41 span: 42 span: 61 } location: { path: 6 path: 0 path: 2 path: 2 span: 42 span: 2 span: 63 } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 42 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 42 span: 13 span: 31 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 42 span: 42 span: 61 } location: { path: 6 path: 0 path: 2 path: 3 span: 43 span: 2 span: 57 } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 43 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 43 span: 11 span: 27 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 43 span: 38 span: 55 } location: { path: 6 path: 0 path: 2 path: 4 span: 44 span: 2 span: 54 } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 44 span: 6 span: 9 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 44 span: 10 span: 25 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 44 span: 36 span: 52 } location: { path: 4 path: 0 span: 47 span: 0 span: 49 span: 1 } location: { path: 4 path: 0 path: 1 span: 47 span: 8 span: 26 } location: { path: 4 path: 0 path: 2 path: 0 span: 48 span: 2 span: 39 } location: { path: 4 path: 0 path: 2 path: 0 path: 6 span: 48 span: 2 span: 26 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 48 span: 27 span: 34 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 48 span: 37 span: 38 } location: { path: 4 path: 1 span: 51 span: 0 span: 53 span: 1 } location: { path: 4 path: 1 path: 1 span: 51 span: 8 span: 27 } location: { path: 4 path: 1 path: 2 path: 0 span: 52 span: 2 span: 39 } location: { path: 4 path: 1 path: 2 path: 0 path: 6 span: 52 span: 2 span: 26 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 52 span: 27 span: 34 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 52 span: 37 span: 38 } location: { path: 4 path: 2 span: 55 span: 0 span: 58 span: 1 } location: { path: 4 path: 2 path: 1 span: 55 span: 8 span: 26 } location: { path: 4 path: 2 path: 2 path: 0 span: 56 span: 2 span: 39 } location: { path: 4 path: 2 path: 2 path: 0 path: 6 span: 56 span: 2 span: 26 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 56 span: 27 span: 34 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 56 span: 37 span: 38 } location: { path: 4 path: 2 path: 2 path: 1 span: 57 span: 2 span: 29 } location: { path: 4 path: 2 path: 2 path: 1 path: 4 span: 57 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 57 span: 11 span: 17 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 57 span: 18 span: 24 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 57 span: 27 span: 28 } location: { path: 4 path: 3 span: 60 span: 0 span: 62 span: 1 } location: { path: 4 path: 3 path: 1 span: 60 span: 8 span: 27 } location: { path: 4 path: 3 path: 2 path: 0 span: 61 span: 2 span: 39 } location: { path: 4 path: 3 path: 2 path: 0 path: 6 span: 61 span: 2 span: 26 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 61 span: 27 span: 34 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 61 span: 37 span: 38 } location: { path: 4 path: 4 span: 64 span: 0 span: 66 span: 1 } location: { path: 4 path: 4 path: 1 span: 64 span: 8 span: 26 } location: { path: 4 path: 4 path: 2 path: 0 span: 65 span: 2 span: 24 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 65 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 65 span: 9 span: 19 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 65 span: 22 span: 23 } location: { path: 4 path: 5 span: 68 span: 0 span: 30 } location: { path: 4 path: 5 path: 1 span: 68 span: 8 span: 27 } location: { path: 4 path: 6 span: 70 span: 0 span: 72 span: 1 } location: { path: 4 path: 6 path: 1 span: 70 span: 8 span: 24 } location: { path: 4 path: 6 path: 2 path: 0 span: 71 span: 2 span: 30 } location: { path: 4 path: 6 path: 2 path: 0 path: 4 span: 71 span: 2 span: 10 } location: { path: 4 path: 6 path: 2 path: 0 path: 5 span: 71 span: 11 span: 17 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 71 span: 18 span: 25 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 71 span: 28 span: 29 } location: { path: 4 path: 7 span: 74 span: 0 span: 76 span: 1 } location: { path: 4 path: 7 path: 1 span: 74 span: 8 span: 25 } location: { path: 4 path: 7 path: 2 path: 0 span: 75 span: 2 span: 45 } location: { path: 4 path: 7 path: 2 path: 0 path: 4 span: 75 span: 2 span: 10 } location: { path: 4 path: 7 path: 2 path: 0 path: 6 span: 75 span: 11 span: 35 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 75 span: 36 span: 40 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 75 span: 43 span: 44 } location: { path: 4 path: 8 span: 78 span: 0 span: 80 span: 1 } location: { path: 4 path: 8 path: 1 span: 78 span: 8 span: 23 } location: { path: 4 path: 8 path: 2 path: 0 span: 79 span: 2 span: 24 } location: { path: 4 path: 8 path: 2 path: 0 path: 5 span: 79 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 79 span: 9 span: 19 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 79 span: 22 span: 23 } location: { path: 4 path: 9 span: 82 span: 0 span: 84 span: 1 } location: { path: 4 path: 9 path: 1 span: 82 span: 8 span: 24 } location: { path: 4 path: 9 path: 2 path: 0 span: 83 span: 2 span: 39 } location: { path: 4 path: 9 path: 2 path: 0 path: 6 span: 83 span: 2 span: 26 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 83 span: 27 span: 34 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 83 span: 37 span: 38 } location: { path: 6 path: 1 span: 87 span: 0 span: 97 span: 1 leading_comments: " Controller is an interface to manage runtime sandbox instances.\n" } location: { path: 6 path: 1 path: 1 span: 87 span: 8 span: 18 } location: { path: 6 path: 1 path: 2 path: 0 span: 88 span: 2 span: 73 } location: { path: 6 path: 1 path: 2 path: 0 path: 1 span: 88 span: 6 span: 12 } location: { path: 6 path: 1 path: 2 path: 0 path: 2 span: 88 span: 13 span: 36 } location: { path: 6 path: 1 path: 2 path: 0 path: 3 span: 88 span: 47 span: 71 } location: { path: 6 path: 1 path: 2 path: 1 span: 89 span: 2 span: 70 } location: { path: 6 path: 1 path: 2 path: 1 path: 1 span: 89 span: 6 span: 11 } location: { path: 6 path: 1 path: 2 path: 1 path: 2 span: 89 span: 12 span: 34 } location: { path: 6 path: 1 path: 2 path: 1 path: 3 span: 89 span: 45 span: 68 } location: { path: 6 path: 1 path: 2 path: 2 span: 90 span: 2 span: 79 } location: { path: 6 path: 1 path: 2 path: 2 path: 1 span: 90 span: 6 span: 14 } location: { path: 6 path: 1 path: 2 path: 2 path: 2 span: 90 span: 15 span: 40 } location: { path: 6 path: 1 path: 2 path: 2 path: 3 span: 90 span: 51 span: 77 } location: { path: 6 path: 1 path: 2 path: 3 span: 91 span: 2 span: 67 } location: { path: 6 path: 1 path: 2 path: 3 path: 1 span: 91 span: 6 span: 10 } location: { path: 6 path: 1 path: 2 path: 3 path: 2 span: 91 span: 11 span: 32 } location: { path: 6 path: 1 path: 2 path: 3 path: 3 span: 91 span: 43 span: 65 } location: { path: 6 path: 1 path: 2 path: 4 span: 92 span: 2 span: 67 } location: { path: 6 path: 1 path: 2 path: 4 path: 1 span: 92 span: 6 span: 10 } location: { path: 6 path: 1 path: 2 path: 4 path: 2 span: 92 span: 11 span: 32 } location: { path: 6 path: 1 path: 2 path: 4 path: 3 span: 92 span: 43 span: 65 } location: { path: 6 path: 1 path: 2 path: 5 span: 93 span: 2 span: 73 } location: { path: 6 path: 1 path: 2 path: 5 path: 1 span: 93 span: 6 span: 12 } location: { path: 6 path: 1 path: 2 path: 5 path: 2 span: 93 span: 13 span: 36 } location: { path: 6 path: 1 path: 2 path: 5 path: 3 span: 93 span: 47 span: 71 } location: { path: 6 path: 1 path: 2 path: 6 span: 94 span: 2 span: 79 } location: { path: 6 path: 1 path: 2 path: 6 path: 1 span: 94 span: 6 span: 14 } location: { path: 6 path: 1 path: 2 path: 6 path: 2 span: 94 span: 15 span: 40 } location: { path: 6 path: 1 path: 2 path: 6 path: 3 span: 94 span: 51 span: 77 } location: { path: 6 path: 1 path: 2 path: 7 span: 95 span: 2 span: 76 } location: { path: 6 path: 1 path: 2 path: 7 path: 1 span: 95 span: 6 span: 13 } location: { path: 6 path: 1 path: 2 path: 7 path: 2 span: 95 span: 14 span: 38 } location: { path: 6 path: 1 path: 2 path: 7 path: 3 span: 95 span: 49 span: 74 } location: { path: 6 path: 1 path: 2 path: 8 span: 96 span: 2 span: 73 } location: { path: 6 path: 1 path: 2 path: 8 path: 1 span: 96 span: 6 span: 12 } location: { path: 6 path: 1 path: 2 path: 8 path: 2 span: 96 span: 13 span: 36 } location: { path: 6 path: 1 path: 2 path: 8 path: 3 span: 96 span: 47 span: 71 } location: { path: 4 path: 10 span: 99 span: 0 span: 107 span: 1 } location: { path: 4 path: 10 path: 1 span: 99 span: 8 span: 31 } location: { path: 4 path: 10 path: 2 path: 0 span: 100 span: 2 span: 24 } location: { path: 4 path: 10 path: 2 path: 0 path: 5 span: 100 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 100 span: 9 span: 19 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 100 span: 22 span: 23 } location: { path: 4 path: 10 path: 2 path: 1 span: 101 span: 2 span: 45 } location: { path: 4 path: 10 path: 2 path: 1 path: 4 span: 101 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 1 path: 6 span: 101 span: 11 span: 33 } location: { path: 4 path: 10 path: 2 path: 1 path: 1 span: 101 span: 34 span: 40 } location: { path: 4 path: 10 path: 2 path: 1 path: 3 span: 101 span: 43 span: 44 } location: { path: 4 path: 10 path: 2 path: 2 span: 102 span: 2 span: 34 } location: { path: 4 path: 10 path: 2 path: 2 path: 6 span: 102 span: 2 span: 21 } location: { path: 4 path: 10 path: 2 path: 2 path: 1 span: 102 span: 22 span: 29 } location: { path: 4 path: 10 path: 2 path: 2 path: 3 span: 102 span: 32 span: 33 } location: { path: 4 path: 10 path: 2 path: 3 span: 103 span: 2 span: 24 } location: { path: 4 path: 10 path: 2 path: 3 path: 5 span: 103 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 3 path: 1 span: 103 span: 9 span: 19 } location: { path: 4 path: 10 path: 2 path: 3 path: 3 span: 103 span: 22 span: 23 } location: { path: 4 path: 10 path: 2 path: 4 span: 104 span: 2 span: 38 } location: { path: 4 path: 10 path: 2 path: 4 path: 6 span: 104 span: 2 span: 21 } location: { path: 4 path: 10 path: 2 path: 4 path: 1 span: 104 span: 22 span: 33 } location: { path: 4 path: 10 path: 2 path: 4 path: 3 span: 104 span: 36 span: 37 } location: { path: 4 path: 10 path: 2 path: 5 span: 105 span: 2 span: 39 } location: { path: 4 path: 10 path: 2 path: 5 path: 6 span: 105 span: 2 span: 26 } location: { path: 4 path: 10 path: 2 path: 5 path: 1 span: 105 span: 27 span: 34 } location: { path: 4 path: 10 path: 2 path: 5 path: 3 span: 105 span: 37 span: 38 } location: { path: 4 path: 10 path: 2 path: 6 span: 106 span: 2 span: 24 } location: { path: 4 path: 10 path: 2 path: 6 path: 5 span: 106 span: 2 span: 8 } location: { path: 4 path: 10 path: 2 path: 6 path: 1 span: 106 span: 9 span: 18 } location: { path: 4 path: 10 path: 2 path: 6 path: 3 span: 106 span: 21 span: 23 } location: { path: 4 path: 11 span: 109 span: 0 span: 111 span: 1 } location: { path: 4 path: 11 path: 1 span: 109 span: 8 span: 32 } location: { path: 4 path: 11 path: 2 path: 0 span: 110 span: 2 span: 24 } location: { path: 4 path: 11 path: 2 path: 0 path: 5 span: 110 span: 2 span: 8 } location: { path: 4 path: 11 path: 2 path: 0 path: 1 span: 110 span: 9 span: 19 } location: { path: 4 path: 11 path: 2 path: 0 path: 3 span: 110 span: 22 span: 23 } location: { path: 4 path: 12 span: 113 span: 0 span: 116 span: 1 } location: { path: 4 path: 12 path: 1 span: 113 span: 8 span: 30 } location: { path: 4 path: 12 path: 2 path: 0 span: 114 span: 2 span: 24 } location: { path: 4 path: 12 path: 2 path: 0 path: 5 span: 114 span: 2 span: 8 } location: { path: 4 path: 12 path: 2 path: 0 path: 1 span: 114 span: 9 span: 19 } location: { path: 4 path: 12 path: 2 path: 0 path: 3 span: 114 span: 22 span: 23 } location: { path: 4 path: 12 path: 2 path: 1 span: 115 span: 2 span: 24 } location: { path: 4 path: 12 path: 2 path: 1 path: 5 span: 115 span: 2 span: 8 } location: { path: 4 path: 12 path: 2 path: 1 path: 1 span: 115 span: 9 span: 18 } location: { path: 4 path: 12 path: 2 path: 1 path: 3 span: 115 span: 21 span: 23 } location: { path: 4 path: 13 span: 118 span: 0 span: 129 span: 1 } location: { path: 4 path: 13 path: 1 span: 118 span: 8 span: 31 } location: { path: 4 path: 13 path: 2 path: 0 span: 119 span: 2 span: 24 } location: { path: 4 path: 13 path: 2 path: 0 path: 5 span: 119 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 0 path: 1 span: 119 span: 9 span: 19 } location: { path: 4 path: 13 path: 2 path: 0 path: 3 span: 119 span: 22 span: 23 } location: { path: 4 path: 13 path: 2 path: 1 span: 120 span: 2 span: 17 } location: { path: 4 path: 13 path: 2 path: 1 path: 5 span: 120 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 1 path: 1 span: 120 span: 9 span: 12 } location: { path: 4 path: 13 path: 2 path: 1 path: 3 span: 120 span: 15 span: 16 } location: { path: 4 path: 13 path: 2 path: 2 span: 121 span: 2 span: 43 } location: { path: 4 path: 13 path: 2 path: 2 path: 6 span: 121 span: 2 span: 27 } location: { path: 4 path: 13 path: 2 path: 2 path: 1 span: 121 span: 28 span: 38 } location: { path: 4 path: 13 path: 2 path: 2 path: 3 span: 121 span: 41 span: 42 } location: { path: 4 path: 13 path: 2 path: 3 span: 122 span: 2 span: 33 } location: { path: 4 path: 13 path: 2 path: 3 path: 6 span: 122 span: 2 span: 21 } location: { path: 4 path: 13 path: 2 path: 3 path: 1 span: 122 span: 22 span: 28 } location: { path: 4 path: 13 path: 2 path: 3 path: 3 span: 122 span: 31 span: 32 } location: { path: 4 path: 13 path: 2 path: 4 span: 126 span: 2 span: 21 leading_comments: " Address of the sandbox for containerd to connect,\n for calling Task or other APIs serving in the sandbox.\n it is in the form of ttrpc+unix://path/to/uds or grpc+vsock://:.\n" } location: { path: 4 path: 13 path: 2 path: 4 path: 5 span: 126 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 4 path: 1 span: 126 span: 9 span: 16 } location: { path: 4 path: 13 path: 2 path: 4 path: 3 span: 126 span: 19 span: 20 } location: { path: 4 path: 13 path: 2 path: 5 span: 127 span: 2 span: 21 } location: { path: 4 path: 13 path: 2 path: 5 path: 5 span: 127 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 5 path: 1 span: 127 span: 9 span: 16 } location: { path: 4 path: 13 path: 2 path: 5 path: 3 span: 127 span: 19 span: 20 } location: { path: 4 path: 13 path: 2 path: 6 span: 128 span: 2 span: 31 } location: { path: 4 path: 13 path: 2 path: 6 path: 6 span: 128 span: 2 span: 21 } location: { path: 4 path: 13 path: 2 path: 6 path: 1 span: 128 span: 22 span: 26 } location: { path: 4 path: 13 path: 2 path: 6 path: 3 span: 128 span: 29 span: 30 } location: { path: 4 path: 14 span: 131 span: 0 span: 134 span: 1 } location: { path: 4 path: 14 path: 1 span: 131 span: 8 span: 33 } location: { path: 4 path: 14 path: 2 path: 0 span: 132 span: 2 span: 24 } location: { path: 4 path: 14 path: 2 path: 0 path: 5 span: 132 span: 2 span: 8 } location: { path: 4 path: 14 path: 2 path: 0 path: 1 span: 132 span: 9 span: 19 } location: { path: 4 path: 14 path: 2 path: 0 path: 3 span: 132 span: 22 span: 23 } location: { path: 4 path: 14 path: 2 path: 1 span: 133 span: 2 span: 24 } location: { path: 4 path: 14 path: 2 path: 1 path: 5 span: 133 span: 2 span: 8 } location: { path: 4 path: 14 path: 2 path: 1 path: 1 span: 133 span: 9 span: 18 } location: { path: 4 path: 14 path: 2 path: 1 path: 3 span: 133 span: 21 span: 23 } location: { path: 4 path: 15 span: 136 span: 0 span: 138 span: 1 } location: { path: 4 path: 15 path: 1 span: 136 span: 8 span: 34 } location: { path: 4 path: 15 path: 2 path: 0 span: 137 span: 2 span: 41 } location: { path: 4 path: 15 path: 2 path: 0 path: 6 span: 137 span: 2 span: 27 } location: { path: 4 path: 15 path: 2 path: 0 path: 1 span: 137 span: 28 span: 36 } location: { path: 4 path: 15 path: 2 path: 0 path: 3 span: 137 span: 39 span: 40 } location: { path: 4 path: 16 span: 140 span: 0 span: 144 span: 1 } location: { path: 4 path: 16 path: 1 span: 140 span: 8 span: 29 } location: { path: 4 path: 16 path: 2 path: 0 span: 141 span: 2 span: 24 } location: { path: 4 path: 16 path: 2 path: 0 path: 5 span: 141 span: 2 span: 8 } location: { path: 4 path: 16 path: 2 path: 0 path: 1 span: 141 span: 9 span: 19 } location: { path: 4 path: 16 path: 2 path: 0 path: 3 span: 141 span: 22 span: 23 } location: { path: 4 path: 16 path: 2 path: 1 span: 142 span: 2 span: 26 } location: { path: 4 path: 16 path: 2 path: 1 path: 5 span: 142 span: 2 span: 8 } location: { path: 4 path: 16 path: 2 path: 1 path: 1 span: 142 span: 9 span: 21 } location: { path: 4 path: 16 path: 2 path: 1 path: 3 span: 142 span: 24 span: 25 } location: { path: 4 path: 16 path: 2 path: 2 span: 143 span: 2 span: 24 } location: { path: 4 path: 16 path: 2 path: 2 path: 5 span: 143 span: 2 span: 8 } location: { path: 4 path: 16 path: 2 path: 2 path: 1 span: 143 span: 9 span: 18 } location: { path: 4 path: 16 path: 2 path: 2 path: 3 span: 143 span: 21 span: 23 } location: { path: 4 path: 17 span: 146 span: 0 span: 33 } location: { path: 4 path: 17 path: 1 span: 146 span: 8 span: 30 } location: { path: 4 path: 18 span: 148 span: 0 span: 151 span: 1 } location: { path: 4 path: 18 path: 1 span: 148 span: 8 span: 29 } location: { path: 4 path: 18 path: 2 path: 0 span: 149 span: 2 span: 24 } location: { path: 4 path: 18 path: 2 path: 0 path: 5 span: 149 span: 2 span: 8 } location: { path: 4 path: 18 path: 2 path: 0 path: 1 span: 149 span: 9 span: 19 } location: { path: 4 path: 18 path: 2 path: 0 path: 3 span: 149 span: 22 span: 23 } location: { path: 4 path: 18 path: 2 path: 1 span: 150 span: 2 span: 24 } location: { path: 4 path: 18 path: 2 path: 1 path: 5 span: 150 span: 2 span: 8 } location: { path: 4 path: 18 path: 2 path: 1 path: 1 span: 150 span: 9 span: 18 } location: { path: 4 path: 18 path: 2 path: 1 path: 3 span: 150 span: 21 span: 23 } location: { path: 4 path: 19 span: 153 span: 0 span: 156 span: 1 } location: { path: 4 path: 19 path: 1 span: 153 span: 8 span: 30 } location: { path: 4 path: 19 path: 2 path: 0 span: 154 span: 2 span: 25 } location: { path: 4 path: 19 path: 2 path: 0 path: 5 span: 154 span: 2 span: 8 } location: { path: 4 path: 19 path: 2 path: 0 path: 1 span: 154 span: 9 span: 20 } location: { path: 4 path: 19 path: 2 path: 0 path: 3 span: 154 span: 23 span: 24 } location: { path: 4 path: 19 path: 2 path: 1 span: 155 span: 2 span: 42 } location: { path: 4 path: 19 path: 2 path: 1 path: 6 span: 155 span: 2 span: 27 } location: { path: 4 path: 19 path: 2 path: 1 path: 1 span: 155 span: 28 span: 37 } location: { path: 4 path: 19 path: 2 path: 1 path: 3 span: 155 span: 40 span: 41 } location: { path: 4 path: 20 span: 158 span: 0 span: 162 span: 1 } location: { path: 4 path: 20 path: 1 span: 158 span: 8 span: 31 } location: { path: 4 path: 20 path: 2 path: 0 span: 159 span: 2 span: 24 } location: { path: 4 path: 20 path: 2 path: 0 path: 5 span: 159 span: 2 span: 8 } location: { path: 4 path: 20 path: 2 path: 0 path: 1 span: 159 span: 9 span: 19 } location: { path: 4 path: 20 path: 2 path: 0 path: 3 span: 159 span: 22 span: 23 } location: { path: 4 path: 20 path: 2 path: 1 span: 160 span: 2 span: 19 } location: { path: 4 path: 20 path: 2 path: 1 path: 5 span: 160 span: 2 span: 6 } location: { path: 4 path: 20 path: 2 path: 1 path: 1 span: 160 span: 7 span: 14 } location: { path: 4 path: 20 path: 2 path: 1 path: 3 span: 160 span: 17 span: 18 } location: { path: 4 path: 20 path: 2 path: 2 span: 161 span: 2 span: 24 } location: { path: 4 path: 20 path: 2 path: 2 path: 5 span: 161 span: 2 span: 8 } location: { path: 4 path: 20 path: 2 path: 2 path: 1 span: 161 span: 9 span: 18 } location: { path: 4 path: 20 path: 2 path: 2 path: 3 span: 161 span: 21 span: 23 } location: { path: 4 path: 21 span: 164 span: 0 span: 177 span: 1 } location: { path: 4 path: 21 path: 1 span: 164 span: 8 span: 32 } location: { path: 4 path: 21 path: 2 path: 0 span: 165 span: 2 span: 24 } location: { path: 4 path: 21 path: 2 path: 0 path: 5 span: 165 span: 2 span: 8 } location: { path: 4 path: 21 path: 2 path: 0 path: 1 span: 165 span: 9 span: 19 } location: { path: 4 path: 21 path: 2 path: 0 path: 3 span: 165 span: 22 span: 23 } location: { path: 4 path: 21 path: 2 path: 1 span: 166 span: 2 span: 17 } location: { path: 4 path: 21 path: 2 path: 1 path: 5 span: 166 span: 2 span: 8 } location: { path: 4 path: 21 path: 2 path: 1 path: 1 span: 166 span: 9 span: 12 } location: { path: 4 path: 21 path: 2 path: 1 path: 3 span: 166 span: 15 span: 16 } location: { path: 4 path: 21 path: 2 path: 2 span: 167 span: 2 span: 19 } location: { path: 4 path: 21 path: 2 path: 2 path: 5 span: 167 span: 2 span: 8 } location: { path: 4 path: 21 path: 2 path: 2 path: 1 span: 167 span: 9 span: 14 } location: { path: 4 path: 21 path: 2 path: 2 path: 3 span: 167 span: 17 span: 18 } location: { path: 4 path: 21 path: 2 path: 3 span: 168 span: 2 span: 31 } location: { path: 4 path: 21 path: 2 path: 3 path: 6 span: 168 span: 2 span: 21 } location: { path: 4 path: 21 path: 2 path: 3 path: 1 span: 168 span: 22 span: 26 } location: { path: 4 path: 21 path: 2 path: 3 path: 3 span: 168 span: 29 span: 30 } location: { path: 4 path: 21 path: 2 path: 4 span: 169 span: 2 span: 43 } location: { path: 4 path: 21 path: 2 path: 4 path: 6 span: 169 span: 2 span: 27 } location: { path: 4 path: 21 path: 2 path: 4 path: 1 span: 169 span: 28 span: 38 } location: { path: 4 path: 21 path: 2 path: 4 path: 3 span: 169 span: 41 span: 42 } location: { path: 4 path: 21 path: 2 path: 5 span: 170 span: 2 span: 42 } location: { path: 4 path: 21 path: 2 path: 5 path: 6 span: 170 span: 2 span: 27 } location: { path: 4 path: 21 path: 2 path: 5 path: 1 span: 170 span: 28 span: 37 } location: { path: 4 path: 21 path: 2 path: 5 path: 3 span: 170 span: 40 span: 41 } location: { path: 4 path: 21 path: 2 path: 6 span: 171 span: 2 span: 32 } location: { path: 4 path: 21 path: 2 path: 6 path: 6 span: 171 span: 2 span: 21 } location: { path: 4 path: 21 path: 2 path: 6 path: 1 span: 171 span: 22 span: 27 } location: { path: 4 path: 21 path: 2 path: 6 path: 3 span: 171 span: 30 span: 31 } location: { path: 4 path: 21 path: 2 path: 7 span: 175 span: 2 span: 21 leading_comments: " Address of the sandbox for containerd to connect,\n for calling Task or other APIs serving in the sandbox.\n it is in the form of ttrpc+unix://path/to/uds or grpc+vsock://:.\n" } location: { path: 4 path: 21 path: 2 path: 7 path: 5 span: 175 span: 2 span: 8 } location: { path: 4 path: 21 path: 2 path: 7 path: 1 span: 175 span: 9 span: 16 } location: { path: 4 path: 21 path: 2 path: 7 path: 3 span: 175 span: 19 span: 20 } location: { path: 4 path: 21 path: 2 path: 8 span: 176 span: 2 span: 21 } location: { path: 4 path: 21 path: 2 path: 8 path: 5 span: 176 span: 2 span: 8 } location: { path: 4 path: 21 path: 2 path: 8 path: 1 span: 176 span: 9 span: 16 } location: { path: 4 path: 21 path: 2 path: 8 path: 3 span: 176 span: 19 span: 20 } location: { path: 4 path: 22 span: 179 span: 0 span: 182 span: 1 } location: { path: 4 path: 22 path: 1 span: 179 span: 8 span: 33 } location: { path: 4 path: 22 path: 2 path: 0 span: 180 span: 2 span: 24 } location: { path: 4 path: 22 path: 2 path: 0 path: 5 span: 180 span: 2 span: 8 } location: { path: 4 path: 22 path: 2 path: 0 path: 1 span: 180 span: 9 span: 19 } location: { path: 4 path: 22 path: 2 path: 0 path: 3 span: 180 span: 22 span: 23 } location: { path: 4 path: 22 path: 2 path: 1 span: 181 span: 2 span: 24 } location: { path: 4 path: 22 path: 2 path: 1 path: 5 span: 181 span: 2 span: 8 } location: { path: 4 path: 22 path: 2 path: 1 path: 1 span: 181 span: 9 span: 18 } location: { path: 4 path: 22 path: 2 path: 1 path: 3 span: 181 span: 21 span: 23 } location: { path: 4 path: 23 span: 184 span: 0 span: 37 } location: { path: 4 path: 23 path: 1 span: 184 span: 8 span: 34 } location: { path: 4 path: 24 span: 186 span: 0 span: 189 span: 1 } location: { path: 4 path: 24 path: 1 span: 186 span: 8 span: 32 } location: { path: 4 path: 24 path: 2 path: 0 span: 187 span: 2 span: 24 } location: { path: 4 path: 24 path: 2 path: 0 path: 5 span: 187 span: 2 span: 8 } location: { path: 4 path: 24 path: 2 path: 0 path: 1 span: 187 span: 9 span: 19 } location: { path: 4 path: 24 path: 2 path: 0 path: 3 span: 187 span: 22 span: 23 } location: { path: 4 path: 24 path: 2 path: 1 span: 188 span: 2 span: 24 } location: { path: 4 path: 24 path: 2 path: 1 path: 5 span: 188 span: 2 span: 8 } location: { path: 4 path: 24 path: 2 path: 1 path: 1 span: 188 span: 9 span: 18 } location: { path: 4 path: 24 path: 2 path: 1 path: 3 span: 188 span: 21 span: 23 } location: { path: 4 path: 25 span: 191 span: 0 span: 193 span: 1 } location: { path: 4 path: 25 path: 1 span: 191 span: 8 span: 33 } location: { path: 4 path: 25 path: 2 path: 0 span: 192 span: 2 span: 27 } location: { path: 4 path: 25 path: 2 path: 0 path: 6 span: 192 span: 2 span: 14 } location: { path: 4 path: 25 path: 2 path: 0 path: 1 span: 192 span: 15 span: 22 } location: { path: 4 path: 25 path: 2 path: 0 path: 3 span: 192 span: 25 span: 26 } location: { path: 4 path: 26 span: 195 span: 0 span: 200 span: 1 } location: { path: 4 path: 26 path: 1 span: 195 span: 8 span: 31 } location: { path: 4 path: 26 path: 2 path: 0 span: 196 span: 2 span: 24 } location: { path: 4 path: 26 path: 2 path: 0 path: 5 span: 196 span: 2 span: 8 } location: { path: 4 path: 26 path: 2 path: 0 path: 1 span: 196 span: 9 span: 19 } location: { path: 4 path: 26 path: 2 path: 0 path: 3 span: 196 span: 22 span: 23 } location: { path: 4 path: 26 path: 2 path: 1 span: 197 span: 2 span: 23 } location: { path: 4 path: 26 path: 2 path: 1 path: 5 span: 197 span: 2 span: 8 } location: { path: 4 path: 26 path: 2 path: 1 path: 1 span: 197 span: 9 span: 18 } location: { path: 4 path: 26 path: 2 path: 1 path: 3 span: 197 span: 21 span: 22 } location: { path: 4 path: 26 path: 2 path: 2 span: 198 span: 2 span: 39 } location: { path: 4 path: 26 path: 2 path: 2 path: 6 span: 198 span: 2 span: 26 } location: { path: 4 path: 26 path: 2 path: 2 path: 1 span: 198 span: 27 span: 34 } location: { path: 4 path: 26 path: 2 path: 2 path: 3 span: 198 span: 37 span: 38 } location: { path: 4 path: 26 path: 2 path: 3 span: 199 span: 2 span: 29 } location: { path: 4 path: 26 path: 2 path: 3 path: 4 span: 199 span: 2 span: 10 } location: { path: 4 path: 26 path: 2 path: 3 path: 5 span: 199 span: 11 span: 17 } location: { path: 4 path: 26 path: 2 path: 3 path: 1 span: 199 span: 18 span: 24 } location: { path: 4 path: 26 path: 2 path: 3 path: 3 span: 199 span: 27 span: 28 } location: { path: 4 path: 27 span: 202 span: 0 span: 35 } location: { path: 4 path: 27 path: 1 span: 202 span: 8 span: 32 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/snapshots/v1/snapshots.proto" package: "containerd.services.snapshots.v1" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/field_mask.proto" dependency: "google/protobuf/timestamp.proto" dependency: "types/mount.proto" message_type: { name: "PrepareSnapshotRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "key" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "parent" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "parent" } field: { name: "labels" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.snapshots.v1.PrepareSnapshotRequest.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "PrepareSnapshotResponse" field: { name: "mounts" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "mounts" } } message_type: { name: "ViewSnapshotRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "key" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "parent" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "parent" } field: { name: "labels" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.snapshots.v1.ViewSnapshotRequest.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "ViewSnapshotResponse" field: { name: "mounts" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "mounts" } } message_type: { name: "MountsRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "key" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } } message_type: { name: "MountsResponse" field: { name: "mounts" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "mounts" } } message_type: { name: "RemoveSnapshotRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "key" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } } message_type: { name: "CommitSnapshotRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "name" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "key" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "labels" number: 4 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.snapshots.v1.CommitSnapshotRequest.LabelsEntry" json_name: "labels" } field: { name: "parent" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "parent" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "StatSnapshotRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "key" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } } message_type: { name: "Info" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "parent" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "parent" } field: { name: "kind" number: 3 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".containerd.services.snapshots.v1.Kind" json_name: "kind" } field: { name: "created_at" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "createdAt" } field: { name: "updated_at" number: 5 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "updatedAt" } field: { name: "labels" number: 6 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.snapshots.v1.Info.LabelsEntry" json_name: "labels" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "StatSnapshotResponse" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.snapshots.v1.Info" json_name: "info" } } message_type: { name: "UpdateSnapshotRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "info" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.snapshots.v1.Info" json_name: "info" } field: { name: "update_mask" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.FieldMask" json_name: "updateMask" } } message_type: { name: "UpdateSnapshotResponse" field: { name: "info" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.snapshots.v1.Info" json_name: "info" } } message_type: { name: "ListSnapshotsRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "filters" number: 2 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "ListSnapshotsResponse" field: { name: "info" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.snapshots.v1.Info" json_name: "info" } } message_type: { name: "UsageRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } field: { name: "key" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } } message_type: { name: "UsageResponse" field: { name: "size" number: 1 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "size" } field: { name: "inodes" number: 2 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "inodes" } } message_type: { name: "CleanupRequest" field: { name: "snapshotter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } } enum_type: { name: "Kind" value: { name: "UNKNOWN" number: 0 } value: { name: "VIEW" number: 1 } value: { name: "ACTIVE" number: 2 } value: { name: "COMMITTED" number: 3 } } service: { name: "Snapshots" method: { name: "Prepare" input_type: ".containerd.services.snapshots.v1.PrepareSnapshotRequest" output_type: ".containerd.services.snapshots.v1.PrepareSnapshotResponse" } method: { name: "View" input_type: ".containerd.services.snapshots.v1.ViewSnapshotRequest" output_type: ".containerd.services.snapshots.v1.ViewSnapshotResponse" } method: { name: "Mounts" input_type: ".containerd.services.snapshots.v1.MountsRequest" output_type: ".containerd.services.snapshots.v1.MountsResponse" } method: { name: "Commit" input_type: ".containerd.services.snapshots.v1.CommitSnapshotRequest" output_type: ".google.protobuf.Empty" } method: { name: "Remove" input_type: ".containerd.services.snapshots.v1.RemoveSnapshotRequest" output_type: ".google.protobuf.Empty" } method: { name: "Stat" input_type: ".containerd.services.snapshots.v1.StatSnapshotRequest" output_type: ".containerd.services.snapshots.v1.StatSnapshotResponse" } method: { name: "Update" input_type: ".containerd.services.snapshots.v1.UpdateSnapshotRequest" output_type: ".containerd.services.snapshots.v1.UpdateSnapshotResponse" } method: { name: "List" input_type: ".containerd.services.snapshots.v1.ListSnapshotsRequest" output_type: ".containerd.services.snapshots.v1.ListSnapshotsResponse" server_streaming: true } method: { name: "Usage" input_type: ".containerd.services.snapshots.v1.UsageRequest" output_type: ".containerd.services.snapshots.v1.UsageResponse" } method: { name: "Cleanup" input_type: ".containerd.services.snapshots.v1.CleanupRequest" output_type: ".google.protobuf.Empty" } } options: { go_package: "github.com/containerd/containerd/api/services/snapshots/v1;snapshots" } source_code_info: { location: { span: 16 span: 0 span: 180 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 41 } location: { path: 3 path: 0 span: 20 span: 0 span: 37 } location: { path: 3 path: 1 span: 21 span: 0 span: 42 } location: { path: 3 path: 2 span: 22 span: 0 span: 41 } location: { path: 3 path: 3 span: 23 span: 0 span: 27 } location: { path: 8 span: 25 span: 0 span: 91 } location: { path: 8 path: 11 span: 25 span: 0 span: 91 } location: { path: 6 path: 0 span: 28 span: 0 span: 39 span: 1 leading_comments: " Snapshot service manages snapshots\n" } location: { path: 6 path: 0 path: 1 span: 28 span: 8 span: 17 } location: { path: 6 path: 0 path: 2 path: 0 span: 29 span: 2 span: 72 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 29 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 29 span: 14 span: 36 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 29 span: 47 span: 70 } location: { path: 6 path: 0 path: 2 path: 1 span: 30 span: 2 span: 63 } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 30 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 30 span: 11 span: 30 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 30 span: 41 span: 61 } location: { path: 6 path: 0 path: 2 path: 2 span: 31 span: 2 span: 53 } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 31 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 31 span: 13 span: 26 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 31 span: 37 span: 51 } location: { path: 6 path: 0 path: 2 path: 3 span: 32 span: 2 span: 68 } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 32 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 32 span: 13 span: 34 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 32 span: 45 span: 66 } location: { path: 6 path: 0 path: 2 path: 4 span: 33 span: 2 span: 68 } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 33 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 33 span: 13 span: 34 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 33 span: 45 span: 66 } location: { path: 6 path: 0 path: 2 path: 5 span: 34 span: 2 span: 63 } location: { path: 6 path: 0 path: 2 path: 5 path: 1 span: 34 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 5 path: 2 span: 34 span: 11 span: 30 } location: { path: 6 path: 0 path: 2 path: 5 path: 3 span: 34 span: 41 span: 61 } location: { path: 6 path: 0 path: 2 path: 6 span: 35 span: 2 span: 69 } location: { path: 6 path: 0 path: 2 path: 6 path: 1 span: 35 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 6 path: 2 span: 35 span: 13 span: 34 } location: { path: 6 path: 0 path: 2 path: 6 path: 3 span: 35 span: 45 span: 67 } location: { path: 6 path: 0 path: 2 path: 7 span: 36 span: 2 span: 72 } location: { path: 6 path: 0 path: 2 path: 7 path: 1 span: 36 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 7 path: 2 span: 36 span: 11 span: 31 } location: { path: 6 path: 0 path: 2 path: 7 path: 6 span: 36 span: 42 span: 48 } location: { path: 6 path: 0 path: 2 path: 7 path: 3 span: 36 span: 49 span: 70 } location: { path: 6 path: 0 path: 2 path: 8 span: 37 span: 2 span: 50 } location: { path: 6 path: 0 path: 2 path: 8 path: 1 span: 37 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 8 path: 2 span: 37 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 8 path: 3 span: 37 span: 35 span: 48 } location: { path: 6 path: 0 path: 2 path: 9 span: 38 span: 2 span: 62 } location: { path: 6 path: 0 path: 2 path: 9 path: 1 span: 38 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 9 path: 2 span: 38 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 9 path: 3 span: 38 span: 39 span: 60 } location: { path: 4 path: 0 span: 41 span: 0 span: 50 span: 1 } location: { path: 4 path: 0 path: 1 span: 41 span: 8 span: 30 } location: { path: 4 path: 0 path: 2 path: 0 span: 42 span: 2 span: 25 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 42 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 42 span: 9 span: 20 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 42 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 1 span: 43 span: 2 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 43 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 43 span: 9 span: 12 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 43 span: 15 span: 16 } location: { path: 4 path: 0 path: 2 path: 2 span: 44 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 44 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 44 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 44 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 3 span: 49 span: 2 span: 33 leading_comments: " Labels are arbitrary data on snapshots.\n\n The combined size of a key/value pair cannot exceed 4096 bytes.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 6 span: 49 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 49 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 49 span: 31 span: 32 } location: { path: 4 path: 1 span: 52 span: 0 span: 54 span: 1 } location: { path: 4 path: 1 path: 1 span: 52 span: 8 span: 31 } location: { path: 4 path: 1 path: 2 path: 0 span: 53 span: 2 span: 45 } location: { path: 4 path: 1 path: 2 path: 0 path: 4 span: 53 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 0 path: 6 span: 53 span: 11 span: 33 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 53 span: 34 span: 40 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 53 span: 43 span: 44 } location: { path: 4 path: 2 span: 56 span: 0 span: 65 span: 1 } location: { path: 4 path: 2 path: 1 span: 56 span: 8 span: 27 } location: { path: 4 path: 2 path: 2 path: 0 span: 57 span: 2 span: 25 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 57 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 57 span: 9 span: 20 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 57 span: 23 span: 24 } location: { path: 4 path: 2 path: 2 path: 1 span: 58 span: 2 span: 17 } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 58 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 58 span: 9 span: 12 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 58 span: 15 span: 16 } location: { path: 4 path: 2 path: 2 path: 2 span: 59 span: 2 span: 20 } location: { path: 4 path: 2 path: 2 path: 2 path: 5 span: 59 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 59 span: 9 span: 15 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 59 span: 18 span: 19 } location: { path: 4 path: 2 path: 2 path: 3 span: 64 span: 2 span: 33 leading_comments: " Labels are arbitrary data on snapshots.\n\n The combined size of a key/value pair cannot exceed 4096 bytes.\n" } location: { path: 4 path: 2 path: 2 path: 3 path: 6 span: 64 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 3 path: 1 span: 64 span: 22 span: 28 } location: { path: 4 path: 2 path: 2 path: 3 path: 3 span: 64 span: 31 span: 32 } location: { path: 4 path: 3 span: 67 span: 0 span: 69 span: 1 } location: { path: 4 path: 3 path: 1 span: 67 span: 8 span: 28 } location: { path: 4 path: 3 path: 2 path: 0 span: 68 span: 2 span: 45 } location: { path: 4 path: 3 path: 2 path: 0 path: 4 span: 68 span: 2 span: 10 } location: { path: 4 path: 3 path: 2 path: 0 path: 6 span: 68 span: 11 span: 33 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 68 span: 34 span: 40 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 68 span: 43 span: 44 } location: { path: 4 path: 4 span: 71 span: 0 span: 74 span: 1 } location: { path: 4 path: 4 path: 1 span: 71 span: 8 span: 21 } location: { path: 4 path: 4 path: 2 path: 0 span: 72 span: 2 span: 25 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 72 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 72 span: 9 span: 20 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 72 span: 23 span: 24 } location: { path: 4 path: 4 path: 2 path: 1 span: 73 span: 2 span: 17 } location: { path: 4 path: 4 path: 2 path: 1 path: 5 span: 73 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 1 path: 1 span: 73 span: 9 span: 12 } location: { path: 4 path: 4 path: 2 path: 1 path: 3 span: 73 span: 15 span: 16 } location: { path: 4 path: 5 span: 76 span: 0 span: 78 span: 1 } location: { path: 4 path: 5 path: 1 span: 76 span: 8 span: 22 } location: { path: 4 path: 5 path: 2 path: 0 span: 77 span: 2 span: 45 } location: { path: 4 path: 5 path: 2 path: 0 path: 4 span: 77 span: 2 span: 10 } location: { path: 4 path: 5 path: 2 path: 0 path: 6 span: 77 span: 11 span: 33 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 77 span: 34 span: 40 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 77 span: 43 span: 44 } location: { path: 4 path: 6 span: 80 span: 0 span: 83 span: 1 } location: { path: 4 path: 6 path: 1 span: 80 span: 8 span: 29 } location: { path: 4 path: 6 path: 2 path: 0 span: 81 span: 2 span: 25 } location: { path: 4 path: 6 path: 2 path: 0 path: 5 span: 81 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 81 span: 9 span: 20 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 81 span: 23 span: 24 } location: { path: 4 path: 6 path: 2 path: 1 span: 82 span: 2 span: 17 } location: { path: 4 path: 6 path: 2 path: 1 path: 5 span: 82 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 1 path: 1 span: 82 span: 9 span: 12 } location: { path: 4 path: 6 path: 2 path: 1 path: 3 span: 82 span: 15 span: 16 } location: { path: 4 path: 7 span: 85 span: 0 span: 96 span: 1 } location: { path: 4 path: 7 path: 1 span: 85 span: 8 span: 29 } location: { path: 4 path: 7 path: 2 path: 0 span: 86 span: 2 span: 25 } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 86 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 86 span: 9 span: 20 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 86 span: 23 span: 24 } location: { path: 4 path: 7 path: 2 path: 1 span: 87 span: 2 span: 18 } location: { path: 4 path: 7 path: 2 path: 1 path: 5 span: 87 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 1 path: 1 span: 87 span: 9 span: 13 } location: { path: 4 path: 7 path: 2 path: 1 path: 3 span: 87 span: 16 span: 17 } location: { path: 4 path: 7 path: 2 path: 2 span: 88 span: 2 span: 17 } location: { path: 4 path: 7 path: 2 path: 2 path: 5 span: 88 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 2 path: 1 span: 88 span: 9 span: 12 } location: { path: 4 path: 7 path: 2 path: 2 path: 3 span: 88 span: 15 span: 16 } location: { path: 4 path: 7 path: 2 path: 3 span: 93 span: 2 span: 33 leading_comments: " Labels are arbitrary data on snapshots.\n\n The combined size of a key/value pair cannot exceed 4096 bytes.\n" } location: { path: 4 path: 7 path: 2 path: 3 path: 6 span: 93 span: 2 span: 21 } location: { path: 4 path: 7 path: 2 path: 3 path: 1 span: 93 span: 22 span: 28 } location: { path: 4 path: 7 path: 2 path: 3 path: 3 span: 93 span: 31 span: 32 } location: { path: 4 path: 7 path: 2 path: 4 span: 95 span: 2 span: 20 } location: { path: 4 path: 7 path: 2 path: 4 path: 5 span: 95 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 4 path: 1 span: 95 span: 9 span: 15 } location: { path: 4 path: 7 path: 2 path: 4 path: 3 span: 95 span: 18 span: 19 } location: { path: 4 path: 8 span: 98 span: 0 span: 101 span: 1 } location: { path: 4 path: 8 path: 1 span: 98 span: 8 span: 27 } location: { path: 4 path: 8 path: 2 path: 0 span: 99 span: 2 span: 25 } location: { path: 4 path: 8 path: 2 path: 0 path: 5 span: 99 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 99 span: 9 span: 20 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 99 span: 23 span: 24 } location: { path: 4 path: 8 path: 2 path: 1 span: 100 span: 2 span: 17 } location: { path: 4 path: 8 path: 2 path: 1 path: 5 span: 100 span: 2 span: 8 } location: { path: 4 path: 8 path: 2 path: 1 path: 1 span: 100 span: 9 span: 12 } location: { path: 4 path: 8 path: 2 path: 1 path: 3 span: 100 span: 15 span: 16 } location: { path: 5 path: 0 span: 103 span: 0 span: 108 span: 1 } location: { path: 5 path: 0 path: 1 span: 103 span: 5 span: 9 } location: { path: 5 path: 0 path: 2 path: 0 span: 104 span: 2 span: 14 } location: { path: 5 path: 0 path: 2 path: 0 path: 1 span: 104 span: 2 span: 9 } location: { path: 5 path: 0 path: 2 path: 0 path: 2 span: 104 span: 12 span: 13 } location: { path: 5 path: 0 path: 2 path: 1 span: 105 span: 2 span: 11 } location: { path: 5 path: 0 path: 2 path: 1 path: 1 span: 105 span: 2 span: 6 } location: { path: 5 path: 0 path: 2 path: 1 path: 2 span: 105 span: 9 span: 10 } location: { path: 5 path: 0 path: 2 path: 2 span: 106 span: 2 span: 13 } location: { path: 5 path: 0 path: 2 path: 2 path: 1 span: 106 span: 2 span: 8 } location: { path: 5 path: 0 path: 2 path: 2 path: 2 span: 106 span: 11 span: 12 } location: { path: 5 path: 0 path: 2 path: 3 span: 107 span: 2 span: 16 } location: { path: 5 path: 0 path: 2 path: 3 path: 1 span: 107 span: 2 span: 11 } location: { path: 5 path: 0 path: 2 path: 3 path: 2 span: 107 span: 14 span: 15 } location: { path: 4 path: 9 span: 110 span: 0 span: 125 span: 1 } location: { path: 4 path: 9 path: 1 span: 110 span: 8 span: 12 } location: { path: 4 path: 9 path: 2 path: 0 span: 111 span: 2 span: 18 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 111 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 111 span: 9 span: 13 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 111 span: 16 span: 17 } location: { path: 4 path: 9 path: 2 path: 1 span: 112 span: 2 span: 20 } location: { path: 4 path: 9 path: 2 path: 1 path: 5 span: 112 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 1 path: 1 span: 112 span: 9 span: 15 } location: { path: 4 path: 9 path: 2 path: 1 path: 3 span: 112 span: 18 span: 19 } location: { path: 4 path: 9 path: 2 path: 2 span: 113 span: 2 span: 16 } location: { path: 4 path: 9 path: 2 path: 2 path: 6 span: 113 span: 2 span: 6 } location: { path: 4 path: 9 path: 2 path: 2 path: 1 span: 113 span: 7 span: 11 } location: { path: 4 path: 9 path: 2 path: 2 path: 3 span: 113 span: 14 span: 15 } location: { path: 4 path: 9 path: 2 path: 3 span: 116 span: 2 span: 43 leading_comments: " CreatedAt provides the time at which the snapshot was created.\n" } location: { path: 4 path: 9 path: 2 path: 3 path: 6 span: 116 span: 2 span: 27 } location: { path: 4 path: 9 path: 2 path: 3 path: 1 span: 116 span: 28 span: 38 } location: { path: 4 path: 9 path: 2 path: 3 path: 3 span: 116 span: 41 span: 42 } location: { path: 4 path: 9 path: 2 path: 4 span: 119 span: 2 span: 43 leading_comments: " UpdatedAt provides the time the info was last updated.\n" } location: { path: 4 path: 9 path: 2 path: 4 path: 6 span: 119 span: 2 span: 27 } location: { path: 4 path: 9 path: 2 path: 4 path: 1 span: 119 span: 28 span: 38 } location: { path: 4 path: 9 path: 2 path: 4 path: 3 span: 119 span: 41 span: 42 } location: { path: 4 path: 9 path: 2 path: 5 span: 124 span: 2 span: 33 leading_comments: " Labels are arbitrary data on snapshots.\n\n The combined size of a key/value pair cannot exceed 4096 bytes.\n" } location: { path: 4 path: 9 path: 2 path: 5 path: 6 span: 124 span: 2 span: 21 } location: { path: 4 path: 9 path: 2 path: 5 path: 1 span: 124 span: 22 span: 28 } location: { path: 4 path: 9 path: 2 path: 5 path: 3 span: 124 span: 31 span: 32 } location: { path: 4 path: 10 span: 127 span: 0 span: 129 span: 1 } location: { path: 4 path: 10 path: 1 span: 127 span: 8 span: 28 } location: { path: 4 path: 10 path: 2 path: 0 span: 128 span: 2 span: 16 } location: { path: 4 path: 10 path: 2 path: 0 path: 6 span: 128 span: 2 span: 6 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 128 span: 7 span: 11 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 128 span: 14 span: 15 } location: { path: 4 path: 11 span: 131 span: 0 span: 142 span: 1 } location: { path: 4 path: 11 path: 1 span: 131 span: 8 span: 29 } location: { path: 4 path: 11 path: 2 path: 0 span: 132 span: 2 span: 25 } location: { path: 4 path: 11 path: 2 path: 0 path: 5 span: 132 span: 2 span: 8 } location: { path: 4 path: 11 path: 2 path: 0 path: 1 span: 132 span: 9 span: 20 } location: { path: 4 path: 11 path: 2 path: 0 path: 3 span: 132 span: 23 span: 24 } location: { path: 4 path: 11 path: 2 path: 1 span: 133 span: 2 span: 16 } location: { path: 4 path: 11 path: 2 path: 1 path: 6 span: 133 span: 2 span: 6 } location: { path: 4 path: 11 path: 2 path: 1 path: 1 span: 133 span: 7 span: 11 } location: { path: 4 path: 11 path: 2 path: 1 path: 3 span: 133 span: 14 span: 15 } location: { path: 4 path: 11 path: 2 path: 2 span: 141 span: 2 span: 44 leading_comments: " UpdateMask specifies which fields to perform the update on. If empty,\n the operation applies to all fields.\n\n In info, Name, Parent, Kind, Created are immutable,\n other field may be updated using this mask.\n If no mask is provided, all mutable field are updated.\n" } location: { path: 4 path: 11 path: 2 path: 2 path: 6 span: 141 span: 2 span: 27 } location: { path: 4 path: 11 path: 2 path: 2 path: 1 span: 141 span: 28 span: 39 } location: { path: 4 path: 11 path: 2 path: 2 path: 3 span: 141 span: 42 span: 43 } location: { path: 4 path: 12 span: 144 span: 0 span: 146 span: 1 } location: { path: 4 path: 12 path: 1 span: 144 span: 8 span: 30 } location: { path: 4 path: 12 path: 2 path: 0 span: 145 span: 2 span: 16 } location: { path: 4 path: 12 path: 2 path: 0 path: 6 span: 145 span: 2 span: 6 } location: { path: 4 path: 12 path: 2 path: 0 path: 1 span: 145 span: 7 span: 11 } location: { path: 4 path: 12 path: 2 path: 0 path: 3 span: 145 span: 14 span: 15 } location: { path: 4 path: 13 span: 148 span: 0 span: 162 span: 1 } location: { path: 4 path: 13 path: 1 span: 148 span: 8 span: 28 } location: { path: 4 path: 13 path: 2 path: 0 span: 149 span: 2 span: 25 } location: { path: 4 path: 13 path: 2 path: 0 path: 5 span: 149 span: 2 span: 8 } location: { path: 4 path: 13 path: 2 path: 0 path: 1 span: 149 span: 9 span: 20 } location: { path: 4 path: 13 path: 2 path: 0 path: 3 span: 149 span: 23 span: 24 } location: { path: 4 path: 13 path: 2 path: 1 span: 161 span: 2 span: 30 leading_comments: " Filters contains one or more filters using the syntax defined in the\n containerd filter package.\n\n The returned result will be those that match any of the provided\n filters. Expanded, images that match the following will be\n returned:\n\n\tfilters[0] or filters[1] or ... or filters[n-1] or filters[n]\n\n If filters is zero-length or nil, all items will be returned.\n" } location: { path: 4 path: 13 path: 2 path: 1 path: 4 span: 161 span: 2 span: 10 } location: { path: 4 path: 13 path: 2 path: 1 path: 5 span: 161 span: 11 span: 17 } location: { path: 4 path: 13 path: 2 path: 1 path: 1 span: 161 span: 18 span: 25 } location: { path: 4 path: 13 path: 2 path: 1 path: 3 span: 161 span: 28 span: 29 } location: { path: 4 path: 14 span: 164 span: 0 span: 166 span: 1 } location: { path: 4 path: 14 path: 1 span: 164 span: 8 span: 29 } location: { path: 4 path: 14 path: 2 path: 0 span: 165 span: 2 span: 25 } location: { path: 4 path: 14 path: 2 path: 0 path: 4 span: 165 span: 2 span: 10 } location: { path: 4 path: 14 path: 2 path: 0 path: 6 span: 165 span: 11 span: 15 } location: { path: 4 path: 14 path: 2 path: 0 path: 1 span: 165 span: 16 span: 20 } location: { path: 4 path: 14 path: 2 path: 0 path: 3 span: 165 span: 23 span: 24 } location: { path: 4 path: 15 span: 168 span: 0 span: 171 span: 1 } location: { path: 4 path: 15 path: 1 span: 168 span: 8 span: 20 } location: { path: 4 path: 15 path: 2 path: 0 span: 169 span: 2 span: 25 } location: { path: 4 path: 15 path: 2 path: 0 path: 5 span: 169 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 0 path: 1 span: 169 span: 9 span: 20 } location: { path: 4 path: 15 path: 2 path: 0 path: 3 span: 169 span: 23 span: 24 } location: { path: 4 path: 15 path: 2 path: 1 span: 170 span: 2 span: 17 } location: { path: 4 path: 15 path: 2 path: 1 path: 5 span: 170 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 1 path: 1 span: 170 span: 9 span: 12 } location: { path: 4 path: 15 path: 2 path: 1 path: 3 span: 170 span: 15 span: 16 } location: { path: 4 path: 16 span: 173 span: 0 span: 176 span: 1 } location: { path: 4 path: 16 path: 1 span: 173 span: 8 span: 21 } location: { path: 4 path: 16 path: 2 path: 0 span: 174 span: 2 span: 17 } location: { path: 4 path: 16 path: 2 path: 0 path: 5 span: 174 span: 2 span: 7 } location: { path: 4 path: 16 path: 2 path: 0 path: 1 span: 174 span: 8 span: 12 } location: { path: 4 path: 16 path: 2 path: 0 path: 3 span: 174 span: 15 span: 16 } location: { path: 4 path: 16 path: 2 path: 1 span: 175 span: 2 span: 19 } location: { path: 4 path: 16 path: 2 path: 1 path: 5 span: 175 span: 2 span: 7 } location: { path: 4 path: 16 path: 2 path: 1 path: 1 span: 175 span: 8 span: 14 } location: { path: 4 path: 16 path: 2 path: 1 path: 3 span: 175 span: 17 span: 18 } location: { path: 4 path: 17 span: 178 span: 0 span: 180 span: 1 } location: { path: 4 path: 17 path: 1 span: 178 span: 8 span: 22 } location: { path: 4 path: 17 path: 2 path: 0 span: 179 span: 2 span: 25 } location: { path: 4 path: 17 path: 2 path: 0 path: 5 span: 179 span: 2 span: 8 } location: { path: 4 path: 17 path: 2 path: 0 path: 1 span: 179 span: 9 span: 20 } location: { path: 4 path: 17 path: 2 path: 0 path: 3 span: 179 span: 23 span: 24 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/streaming/v1/streaming.proto" package: "containerd.services.streaming.v1" dependency: "google/protobuf/any.proto" message_type: { name: "StreamInit" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } } service: { name: "Streaming" method: { name: "Stream" input_type: ".google.protobuf.Any" output_type: ".google.protobuf.Any" client_streaming: true server_streaming: true } } options: { go_package: "github.com/containerd/containerd/api/services/streaming/v1;streaming" } source_code_info: { location: { span: 16 span: 0 span: 30 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 41 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 8 span: 22 span: 0 span: 91 } location: { path: 8 path: 11 span: 22 span: 0 span: 91 } location: { path: 6 path: 0 span: 24 span: 0 span: 26 span: 1 } location: { path: 6 path: 0 path: 1 span: 24 span: 8 span: 17 } location: { path: 6 path: 0 path: 2 path: 0 span: 25 span: 2 span: 78 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 25 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 0 path: 5 span: 25 span: 13 span: 19 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 25 span: 20 span: 39 } location: { path: 6 path: 0 path: 2 path: 0 path: 6 span: 25 span: 50 span: 56 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 25 span: 57 span: 76 } location: { path: 4 path: 0 span: 28 span: 0 span: 30 span: 1 } location: { path: 4 path: 0 path: 1 span: 28 span: 8 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 span: 29 span: 2 span: 16 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 29 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 29 span: 9 span: 11 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 29 span: 14 span: 15 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/tasks/v1/tasks.proto" package: "containerd.services.tasks.v1" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/empty.proto" dependency: "google/protobuf/timestamp.proto" dependency: "types/descriptor.proto" dependency: "types/metrics.proto" dependency: "types/mount.proto" dependency: "types/task/task.proto" message_type: { name: "CreateTaskRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "rootfs" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Mount" json_name: "rootfs" } field: { name: "stdin" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 5 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "terminal" number: 7 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "checkpoint" number: 8 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Descriptor" json_name: "checkpoint" } field: { name: "options" number: 9 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } field: { name: "runtime_path" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "runtimePath" } field: { name: "task_api_address" number: 11 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "taskApiAddress" } field: { name: "task_api_version" number: 12 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "taskApiVersion" } } message_type: { name: "CreateTaskResponse" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } } message_type: { name: "StartRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "StartResponse" field: { name: "pid" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } } message_type: { name: "DeleteTaskRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } } message_type: { name: "DeleteResponse" field: { name: "id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "id" } field: { name: "pid" number: 2 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "pid" } field: { name: "exit_status" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } message_type: { name: "DeleteProcessRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "GetRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "GetResponse" field: { name: "process" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.v1.types.Process" json_name: "process" } } message_type: { name: "ListTasksRequest" field: { name: "filter" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "filter" } } message_type: { name: "ListTasksResponse" field: { name: "tasks" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.v1.types.Process" json_name: "tasks" } } message_type: { name: "KillRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "signal" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "signal" } field: { name: "all" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "all" } } message_type: { name: "ExecProcessRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "stdin" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdin" } field: { name: "stdout" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stdout" } field: { name: "stderr" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stderr" } field: { name: "terminal" number: 5 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "spec" number: 6 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "spec" } field: { name: "exec_id" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "ExecProcessResponse" } message_type: { name: "ResizePtyRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "width" number: 3 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "width" } field: { name: "height" number: 4 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "height" } } message_type: { name: "CloseIORequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } field: { name: "stdin" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "stdin" } } message_type: { name: "PauseTaskRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } } message_type: { name: "ResumeTaskRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } } message_type: { name: "ListPidsRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } } message_type: { name: "ListPidsResponse" field: { name: "processes" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.v1.types.ProcessInfo" json_name: "processes" } } message_type: { name: "CheckpointTaskRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "parent_checkpoint" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "parentCheckpoint" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "options" } } message_type: { name: "CheckpointTaskResponse" field: { name: "descriptors" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Descriptor" json_name: "descriptors" } } message_type: { name: "UpdateTaskRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "resources" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "resources" } field: { name: "annotations" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.services.tasks.v1.UpdateTaskRequest.AnnotationsEntry" json_name: "annotations" } nested_type: { name: "AnnotationsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "MetricsRequest" field: { name: "filters" number: 1 label: LABEL_REPEATED type: TYPE_STRING json_name: "filters" } } message_type: { name: "MetricsResponse" field: { name: "metrics" number: 1 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Metric" json_name: "metrics" } } message_type: { name: "WaitRequest" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "exec_id" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } message_type: { name: "WaitResponse" field: { name: "exit_status" number: 1 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "exitStatus" } field: { name: "exited_at" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "exitedAt" } } service: { name: "Tasks" method: { name: "Create" input_type: ".containerd.services.tasks.v1.CreateTaskRequest" output_type: ".containerd.services.tasks.v1.CreateTaskResponse" } method: { name: "Start" input_type: ".containerd.services.tasks.v1.StartRequest" output_type: ".containerd.services.tasks.v1.StartResponse" } method: { name: "Delete" input_type: ".containerd.services.tasks.v1.DeleteTaskRequest" output_type: ".containerd.services.tasks.v1.DeleteResponse" } method: { name: "DeleteProcess" input_type: ".containerd.services.tasks.v1.DeleteProcessRequest" output_type: ".containerd.services.tasks.v1.DeleteResponse" } method: { name: "Get" input_type: ".containerd.services.tasks.v1.GetRequest" output_type: ".containerd.services.tasks.v1.GetResponse" } method: { name: "List" input_type: ".containerd.services.tasks.v1.ListTasksRequest" output_type: ".containerd.services.tasks.v1.ListTasksResponse" } method: { name: "Kill" input_type: ".containerd.services.tasks.v1.KillRequest" output_type: ".google.protobuf.Empty" } method: { name: "Exec" input_type: ".containerd.services.tasks.v1.ExecProcessRequest" output_type: ".google.protobuf.Empty" } method: { name: "ResizePty" input_type: ".containerd.services.tasks.v1.ResizePtyRequest" output_type: ".google.protobuf.Empty" } method: { name: "CloseIO" input_type: ".containerd.services.tasks.v1.CloseIORequest" output_type: ".google.protobuf.Empty" } method: { name: "Pause" input_type: ".containerd.services.tasks.v1.PauseTaskRequest" output_type: ".google.protobuf.Empty" } method: { name: "Resume" input_type: ".containerd.services.tasks.v1.ResumeTaskRequest" output_type: ".google.protobuf.Empty" } method: { name: "ListPids" input_type: ".containerd.services.tasks.v1.ListPidsRequest" output_type: ".containerd.services.tasks.v1.ListPidsResponse" } method: { name: "Checkpoint" input_type: ".containerd.services.tasks.v1.CheckpointTaskRequest" output_type: ".containerd.services.tasks.v1.CheckpointTaskResponse" } method: { name: "Update" input_type: ".containerd.services.tasks.v1.UpdateTaskRequest" output_type: ".google.protobuf.Empty" } method: { name: "Metrics" input_type: ".containerd.services.tasks.v1.MetricsRequest" output_type: ".containerd.services.tasks.v1.MetricsResponse" } method: { name: "Wait" input_type: ".containerd.services.tasks.v1.WaitRequest" output_type: ".containerd.services.tasks.v1.WaitResponse" } } options: { go_package: "github.com/containerd/containerd/api/services/tasks/v1;tasks" } source_code_info: { location: { span: 16 span: 0 span: 235 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 37 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 37 } location: { path: 3 path: 2 span: 22 span: 0 span: 41 } location: { path: 3 path: 3 span: 23 span: 0 span: 32 } location: { path: 3 path: 4 span: 24 span: 0 span: 29 } location: { path: 3 path: 5 span: 25 span: 0 span: 27 } location: { path: 3 path: 6 span: 26 span: 0 span: 31 } location: { path: 8 span: 28 span: 0 span: 83 } location: { path: 8 path: 11 span: 28 span: 0 span: 83 } location: { path: 6 path: 0 span: 30 span: 0 span: 68 span: 1 } location: { path: 6 path: 0 path: 1 span: 30 span: 8 span: 13 } location: { path: 6 path: 0 path: 2 path: 0 span: 32 span: 2 span: 61 leading_comments: " Create a task.\n" } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 32 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 32 span: 13 span: 30 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 32 span: 41 span: 59 } location: { path: 6 path: 0 path: 2 path: 1 span: 35 span: 2 span: 50 leading_comments: " Start a process.\n" } location: { path: 6 path: 0 path: 2 path: 1 path: 1 span: 35 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 1 path: 2 span: 35 span: 12 span: 24 } location: { path: 6 path: 0 path: 2 path: 1 path: 3 span: 35 span: 35 span: 48 } location: { path: 6 path: 0 path: 2 path: 2 span: 38 span: 2 span: 57 leading_comments: " Delete a task and on disk state.\n" } location: { path: 6 path: 0 path: 2 path: 2 path: 1 span: 38 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 2 path: 2 span: 38 span: 13 span: 30 } location: { path: 6 path: 0 path: 2 path: 2 path: 3 span: 38 span: 41 span: 55 } location: { path: 6 path: 0 path: 2 path: 3 span: 40 span: 2 span: 67 } location: { path: 6 path: 0 path: 2 path: 3 path: 1 span: 40 span: 6 span: 19 } location: { path: 6 path: 0 path: 2 path: 3 path: 2 span: 40 span: 20 span: 40 } location: { path: 6 path: 0 path: 2 path: 3 path: 3 span: 40 span: 51 span: 65 } location: { path: 6 path: 0 path: 2 path: 4 span: 42 span: 2 span: 44 } location: { path: 6 path: 0 path: 2 path: 4 path: 1 span: 42 span: 6 span: 9 } location: { path: 6 path: 0 path: 2 path: 4 path: 2 span: 42 span: 10 span: 20 } location: { path: 6 path: 0 path: 2 path: 4 path: 3 span: 42 span: 31 span: 42 } location: { path: 6 path: 0 path: 2 path: 5 span: 44 span: 2 span: 57 } location: { path: 6 path: 0 path: 2 path: 5 path: 1 span: 44 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 5 path: 2 span: 44 span: 11 span: 27 } location: { path: 6 path: 0 path: 2 path: 5 path: 3 span: 44 span: 38 span: 55 } location: { path: 6 path: 0 path: 2 path: 6 span: 47 span: 2 span: 56 leading_comments: " Kill a task or process.\n" } location: { path: 6 path: 0 path: 2 path: 6 path: 1 span: 47 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 6 path: 2 span: 47 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 6 path: 3 span: 47 span: 33 span: 54 } location: { path: 6 path: 0 path: 2 path: 7 span: 49 span: 2 span: 63 } location: { path: 6 path: 0 path: 2 path: 7 path: 1 span: 49 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 7 path: 2 span: 49 span: 11 span: 29 } location: { path: 6 path: 0 path: 2 path: 7 path: 3 span: 49 span: 40 span: 61 } location: { path: 6 path: 0 path: 2 path: 8 span: 51 span: 2 span: 66 } location: { path: 6 path: 0 path: 2 path: 8 path: 1 span: 51 span: 6 span: 15 } location: { path: 6 path: 0 path: 2 path: 8 path: 2 span: 51 span: 16 span: 32 } location: { path: 6 path: 0 path: 2 path: 8 path: 3 span: 51 span: 43 span: 64 } location: { path: 6 path: 0 path: 2 path: 9 span: 53 span: 2 span: 62 } location: { path: 6 path: 0 path: 2 path: 9 path: 1 span: 53 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 9 path: 2 span: 53 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 9 path: 3 span: 53 span: 39 span: 60 } location: { path: 6 path: 0 path: 2 path: 10 span: 55 span: 2 span: 62 } location: { path: 6 path: 0 path: 2 path: 10 path: 1 span: 55 span: 6 span: 11 } location: { path: 6 path: 0 path: 2 path: 10 path: 2 span: 55 span: 12 span: 28 } location: { path: 6 path: 0 path: 2 path: 10 path: 3 span: 55 span: 39 span: 60 } location: { path: 6 path: 0 path: 2 path: 11 span: 57 span: 2 span: 64 } location: { path: 6 path: 0 path: 2 path: 11 path: 1 span: 57 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 11 path: 2 span: 57 span: 13 span: 30 } location: { path: 6 path: 0 path: 2 path: 11 path: 3 span: 57 span: 41 span: 62 } location: { path: 6 path: 0 path: 2 path: 12 span: 59 span: 2 span: 59 } location: { path: 6 path: 0 path: 2 path: 12 path: 1 span: 59 span: 6 span: 14 } location: { path: 6 path: 0 path: 2 path: 12 path: 2 span: 59 span: 15 span: 30 } location: { path: 6 path: 0 path: 2 path: 12 path: 3 span: 59 span: 41 span: 57 } location: { path: 6 path: 0 path: 2 path: 13 span: 61 span: 2 span: 73 } location: { path: 6 path: 0 path: 2 path: 13 path: 1 span: 61 span: 6 span: 16 } location: { path: 6 path: 0 path: 2 path: 13 path: 2 span: 61 span: 17 span: 38 } location: { path: 6 path: 0 path: 2 path: 13 path: 3 span: 61 span: 49 span: 71 } location: { path: 6 path: 0 path: 2 path: 14 span: 63 span: 2 span: 64 } location: { path: 6 path: 0 path: 2 path: 14 path: 1 span: 63 span: 6 span: 12 } location: { path: 6 path: 0 path: 2 path: 14 path: 2 span: 63 span: 13 span: 30 } location: { path: 6 path: 0 path: 2 path: 14 path: 3 span: 63 span: 41 span: 62 } location: { path: 6 path: 0 path: 2 path: 15 span: 65 span: 2 span: 56 } location: { path: 6 path: 0 path: 2 path: 15 path: 1 span: 65 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 15 path: 2 span: 65 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 15 path: 3 span: 65 span: 39 span: 54 } location: { path: 6 path: 0 path: 2 path: 16 span: 67 span: 2 span: 47 } location: { path: 6 path: 0 path: 2 path: 16 path: 1 span: 67 span: 6 span: 10 } location: { path: 6 path: 0 path: 2 path: 16 path: 2 span: 67 span: 11 span: 22 } location: { path: 6 path: 0 path: 2 path: 16 path: 3 span: 67 span: 33 span: 45 } location: { path: 4 path: 0 span: 70 span: 0 span: 101 span: 1 } location: { path: 4 path: 0 path: 1 span: 70 span: 8 span: 25 } location: { path: 4 path: 0 path: 2 path: 0 span: 71 span: 2 span: 26 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 71 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 71 span: 9 span: 21 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 71 span: 24 span: 25 } location: { path: 4 path: 0 path: 2 path: 1 span: 79 span: 2 span: 45 leading_comments: " RootFS provides the pre-chroot mounts to perform in the shim before\n executing the container task.\n\n These are for mounts that cannot be performed in the user namespace.\n Typically, these mounts should be resolved from snapshots specified on\n the container object.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 4 span: 79 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 79 span: 11 span: 33 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 79 span: 34 span: 40 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 79 span: 43 span: 44 } location: { path: 4 path: 0 path: 2 path: 2 span: 81 span: 2 span: 19 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 81 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 81 span: 9 span: 14 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 81 span: 17 span: 18 } location: { path: 4 path: 0 path: 2 path: 3 span: 82 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 82 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 82 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 82 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 span: 83 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 83 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 83 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 83 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 5 span: 84 span: 2 span: 20 } location: { path: 4 path: 0 path: 2 path: 5 path: 5 span: 84 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 84 span: 7 span: 15 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 84 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 6 span: 86 span: 2 span: 45 } location: { path: 4 path: 0 path: 2 path: 6 path: 6 span: 86 span: 2 span: 29 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 86 span: 30 span: 40 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 86 span: 43 span: 44 } location: { path: 4 path: 0 path: 2 path: 7 span: 88 span: 2 span: 34 } location: { path: 4 path: 0 path: 2 path: 7 path: 6 span: 88 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 7 path: 1 span: 88 span: 22 span: 29 } location: { path: 4 path: 0 path: 2 path: 7 path: 3 span: 88 span: 32 span: 33 } location: { path: 4 path: 0 path: 2 path: 8 span: 90 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 8 path: 5 span: 90 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 8 path: 1 span: 90 span: 9 span: 21 } location: { path: 4 path: 0 path: 2 path: 8 path: 3 span: 90 span: 24 span: 26 } location: { path: 4 path: 0 path: 2 path: 9 span: 97 span: 2 span: 31 leading_comments: " TaskApiAddress optionally specifies the address of an existing task API\n endpoint (e.g. an in-VM agent for sandbox runtimes such as Kata).\n When set, containerd connects to this address for task operations instead\n of bootstrapping a new shim. The format is +://...,\n e.g. \"ttrpc+unix:///path/to/uds\" or \"grpc+vsock://:\".\n" } location: { path: 4 path: 0 path: 2 path: 9 path: 5 span: 97 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 9 path: 1 span: 97 span: 9 span: 25 } location: { path: 4 path: 0 path: 2 path: 9 path: 3 span: 97 span: 28 span: 30 } location: { path: 4 path: 0 path: 2 path: 10 span: 100 span: 2 span: 31 leading_comments: " TaskApiVersion is the shim API version served at TaskApiAddress.\n Currently supported values are 2 and 3.\n" } location: { path: 4 path: 0 path: 2 path: 10 path: 5 span: 100 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 10 path: 1 span: 100 span: 9 span: 25 } location: { path: 4 path: 0 path: 2 path: 10 path: 3 span: 100 span: 28 span: 30 } location: { path: 4 path: 1 span: 103 span: 0 span: 106 span: 1 } location: { path: 4 path: 1 path: 1 span: 103 span: 8 span: 26 } location: { path: 4 path: 1 path: 2 path: 0 span: 104 span: 2 span: 26 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 104 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 104 span: 9 span: 21 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 104 span: 24 span: 25 } location: { path: 4 path: 1 path: 2 path: 1 span: 105 span: 2 span: 17 } location: { path: 4 path: 1 path: 2 path: 1 path: 5 span: 105 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 105 span: 9 span: 12 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 105 span: 15 span: 16 } location: { path: 4 path: 2 span: 108 span: 0 span: 111 span: 1 } location: { path: 4 path: 2 path: 1 span: 108 span: 8 span: 20 } location: { path: 4 path: 2 path: 2 path: 0 span: 109 span: 2 span: 26 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 109 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 109 span: 9 span: 21 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 109 span: 24 span: 25 } location: { path: 4 path: 2 path: 2 path: 1 span: 110 span: 2 span: 21 } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 110 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 110 span: 9 span: 16 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 110 span: 19 span: 20 } location: { path: 4 path: 3 span: 113 span: 0 span: 115 span: 1 } location: { path: 4 path: 3 path: 1 span: 113 span: 8 span: 21 } location: { path: 4 path: 3 path: 2 path: 0 span: 114 span: 2 span: 17 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 114 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 114 span: 9 span: 12 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 114 span: 15 span: 16 } location: { path: 4 path: 4 span: 117 span: 0 span: 119 span: 1 } location: { path: 4 path: 4 path: 1 span: 117 span: 8 span: 25 } location: { path: 4 path: 4 path: 2 path: 0 span: 118 span: 2 span: 26 } location: { path: 4 path: 4 path: 2 path: 0 path: 5 span: 118 span: 2 span: 8 } location: { path: 4 path: 4 path: 2 path: 0 path: 1 span: 118 span: 9 span: 21 } location: { path: 4 path: 4 path: 2 path: 0 path: 3 span: 118 span: 24 span: 25 } location: { path: 4 path: 5 span: 121 span: 0 span: 126 span: 1 } location: { path: 4 path: 5 path: 1 span: 121 span: 8 span: 22 } location: { path: 4 path: 5 path: 2 path: 0 span: 122 span: 2 span: 16 } location: { path: 4 path: 5 path: 2 path: 0 path: 5 span: 122 span: 2 span: 8 } location: { path: 4 path: 5 path: 2 path: 0 path: 1 span: 122 span: 9 span: 11 } location: { path: 4 path: 5 path: 2 path: 0 path: 3 span: 122 span: 14 span: 15 } location: { path: 4 path: 5 path: 2 path: 1 span: 123 span: 2 span: 17 } location: { path: 4 path: 5 path: 2 path: 1 path: 5 span: 123 span: 2 span: 8 } location: { path: 4 path: 5 path: 2 path: 1 path: 1 span: 123 span: 9 span: 12 } location: { path: 4 path: 5 path: 2 path: 1 path: 3 span: 123 span: 15 span: 16 } location: { path: 4 path: 5 path: 2 path: 2 span: 124 span: 2 span: 25 } location: { path: 4 path: 5 path: 2 path: 2 path: 5 span: 124 span: 2 span: 8 } location: { path: 4 path: 5 path: 2 path: 2 path: 1 span: 124 span: 9 span: 20 } location: { path: 4 path: 5 path: 2 path: 2 path: 3 span: 124 span: 23 span: 24 } location: { path: 4 path: 5 path: 2 path: 3 span: 125 span: 2 span: 42 } location: { path: 4 path: 5 path: 2 path: 3 path: 6 span: 125 span: 2 span: 27 } location: { path: 4 path: 5 path: 2 path: 3 path: 1 span: 125 span: 28 span: 37 } location: { path: 4 path: 5 path: 2 path: 3 path: 3 span: 125 span: 40 span: 41 } location: { path: 4 path: 6 span: 128 span: 0 span: 131 span: 1 } location: { path: 4 path: 6 path: 1 span: 128 span: 8 span: 28 } location: { path: 4 path: 6 path: 2 path: 0 span: 129 span: 2 span: 26 } location: { path: 4 path: 6 path: 2 path: 0 path: 5 span: 129 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 0 path: 1 span: 129 span: 9 span: 21 } location: { path: 4 path: 6 path: 2 path: 0 path: 3 span: 129 span: 24 span: 25 } location: { path: 4 path: 6 path: 2 path: 1 span: 130 span: 2 span: 21 } location: { path: 4 path: 6 path: 2 path: 1 path: 5 span: 130 span: 2 span: 8 } location: { path: 4 path: 6 path: 2 path: 1 path: 1 span: 130 span: 9 span: 16 } location: { path: 4 path: 6 path: 2 path: 1 path: 3 span: 130 span: 19 span: 20 } location: { path: 4 path: 7 span: 133 span: 0 span: 136 span: 1 } location: { path: 4 path: 7 path: 1 span: 133 span: 8 span: 18 } location: { path: 4 path: 7 path: 2 path: 0 span: 134 span: 2 span: 26 } location: { path: 4 path: 7 path: 2 path: 0 path: 5 span: 134 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 0 path: 1 span: 134 span: 9 span: 21 } location: { path: 4 path: 7 path: 2 path: 0 path: 3 span: 134 span: 24 span: 25 } location: { path: 4 path: 7 path: 2 path: 1 span: 135 span: 2 span: 21 } location: { path: 4 path: 7 path: 2 path: 1 path: 5 span: 135 span: 2 span: 8 } location: { path: 4 path: 7 path: 2 path: 1 path: 1 span: 135 span: 9 span: 16 } location: { path: 4 path: 7 path: 2 path: 1 path: 3 span: 135 span: 19 span: 20 } location: { path: 4 path: 8 span: 138 span: 0 span: 140 span: 1 } location: { path: 4 path: 8 path: 1 span: 138 span: 8 span: 19 } location: { path: 4 path: 8 path: 2 path: 0 span: 139 span: 2 span: 42 } location: { path: 4 path: 8 path: 2 path: 0 path: 6 span: 139 span: 2 span: 29 } location: { path: 4 path: 8 path: 2 path: 0 path: 1 span: 139 span: 30 span: 37 } location: { path: 4 path: 8 path: 2 path: 0 path: 3 span: 139 span: 40 span: 41 } location: { path: 4 path: 9 span: 142 span: 0 span: 144 span: 1 } location: { path: 4 path: 9 path: 1 span: 142 span: 8 span: 24 } location: { path: 4 path: 9 path: 2 path: 0 span: 143 span: 2 span: 20 } location: { path: 4 path: 9 path: 2 path: 0 path: 5 span: 143 span: 2 span: 8 } location: { path: 4 path: 9 path: 2 path: 0 path: 1 span: 143 span: 9 span: 15 } location: { path: 4 path: 9 path: 2 path: 0 path: 3 span: 143 span: 18 span: 19 } location: { path: 4 path: 10 span: 146 span: 0 span: 148 span: 1 } location: { path: 4 path: 10 path: 1 span: 146 span: 8 span: 25 } location: { path: 4 path: 10 path: 2 path: 0 span: 147 span: 2 span: 49 } location: { path: 4 path: 10 path: 2 path: 0 path: 4 span: 147 span: 2 span: 10 } location: { path: 4 path: 10 path: 2 path: 0 path: 6 span: 147 span: 11 span: 38 } location: { path: 4 path: 10 path: 2 path: 0 path: 1 span: 147 span: 39 span: 44 } location: { path: 4 path: 10 path: 2 path: 0 path: 3 span: 147 span: 47 span: 48 } location: { path: 4 path: 11 span: 150 span: 0 span: 155 span: 1 } location: { path: 4 path: 11 path: 1 span: 150 span: 8 span: 19 } location: { path: 4 path: 11 path: 2 path: 0 span: 151 span: 2 span: 26 } location: { path: 4 path: 11 path: 2 path: 0 path: 5 span: 151 span: 2 span: 8 } location: { path: 4 path: 11 path: 2 path: 0 path: 1 span: 151 span: 9 span: 21 } location: { path: 4 path: 11 path: 2 path: 0 path: 3 span: 151 span: 24 span: 25 } location: { path: 4 path: 11 path: 2 path: 1 span: 152 span: 2 span: 21 } location: { path: 4 path: 11 path: 2 path: 1 path: 5 span: 152 span: 2 span: 8 } location: { path: 4 path: 11 path: 2 path: 1 path: 1 span: 152 span: 9 span: 16 } location: { path: 4 path: 11 path: 2 path: 1 path: 3 span: 152 span: 19 span: 20 } location: { path: 4 path: 11 path: 2 path: 2 span: 153 span: 2 span: 20 } location: { path: 4 path: 11 path: 2 path: 2 path: 5 span: 153 span: 2 span: 8 } location: { path: 4 path: 11 path: 2 path: 2 path: 1 span: 153 span: 9 span: 15 } location: { path: 4 path: 11 path: 2 path: 2 path: 3 span: 153 span: 18 span: 19 } location: { path: 4 path: 11 path: 2 path: 3 span: 154 span: 2 span: 15 } location: { path: 4 path: 11 path: 2 path: 3 path: 5 span: 154 span: 2 span: 6 } location: { path: 4 path: 11 path: 2 path: 3 path: 1 span: 154 span: 7 span: 10 } location: { path: 4 path: 11 path: 2 path: 3 path: 3 span: 154 span: 13 span: 14 } location: { path: 4 path: 12 span: 157 span: 0 span: 169 span: 1 } location: { path: 4 path: 12 path: 1 span: 157 span: 8 span: 26 } location: { path: 4 path: 12 path: 2 path: 0 span: 158 span: 2 span: 26 } location: { path: 4 path: 12 path: 2 path: 0 path: 5 span: 158 span: 2 span: 8 } location: { path: 4 path: 12 path: 2 path: 0 path: 1 span: 158 span: 9 span: 21 } location: { path: 4 path: 12 path: 2 path: 0 path: 3 span: 158 span: 24 span: 25 } location: { path: 4 path: 12 path: 2 path: 1 span: 159 span: 2 span: 19 } location: { path: 4 path: 12 path: 2 path: 1 path: 5 span: 159 span: 2 span: 8 } location: { path: 4 path: 12 path: 2 path: 1 path: 1 span: 159 span: 9 span: 14 } location: { path: 4 path: 12 path: 2 path: 1 path: 3 span: 159 span: 17 span: 18 } location: { path: 4 path: 12 path: 2 path: 2 span: 160 span: 2 span: 20 } location: { path: 4 path: 12 path: 2 path: 2 path: 5 span: 160 span: 2 span: 8 } location: { path: 4 path: 12 path: 2 path: 2 path: 1 span: 160 span: 9 span: 15 } location: { path: 4 path: 12 path: 2 path: 2 path: 3 span: 160 span: 18 span: 19 } location: { path: 4 path: 12 path: 2 path: 3 span: 161 span: 2 span: 20 } location: { path: 4 path: 12 path: 2 path: 3 path: 5 span: 161 span: 2 span: 8 } location: { path: 4 path: 12 path: 2 path: 3 path: 1 span: 161 span: 9 span: 15 } location: { path: 4 path: 12 path: 2 path: 3 path: 3 span: 161 span: 18 span: 19 } location: { path: 4 path: 12 path: 2 path: 4 span: 162 span: 2 span: 20 } location: { path: 4 path: 12 path: 2 path: 4 path: 5 span: 162 span: 2 span: 6 } location: { path: 4 path: 12 path: 2 path: 4 path: 1 span: 162 span: 7 span: 15 } location: { path: 4 path: 12 path: 2 path: 4 path: 3 span: 162 span: 18 span: 19 } location: { path: 4 path: 12 path: 2 path: 5 span: 166 span: 2 span: 31 leading_comments: " Spec for starting a process in the target container.\n\n For runc, this is a process spec, for example.\n" } location: { path: 4 path: 12 path: 2 path: 5 path: 6 span: 166 span: 2 span: 21 } location: { path: 4 path: 12 path: 2 path: 5 path: 1 span: 166 span: 22 span: 26 } location: { path: 4 path: 12 path: 2 path: 5 path: 3 span: 166 span: 29 span: 30 } location: { path: 4 path: 12 path: 2 path: 6 span: 168 span: 2 span: 21 leading_comments: " id of the exec process\n" } location: { path: 4 path: 12 path: 2 path: 6 path: 5 span: 168 span: 2 span: 8 } location: { path: 4 path: 12 path: 2 path: 6 path: 1 span: 168 span: 9 span: 16 } location: { path: 4 path: 12 path: 2 path: 6 path: 3 span: 168 span: 19 span: 20 } location: { path: 4 path: 13 span: 171 span: 0 span: 30 } location: { path: 4 path: 13 path: 1 span: 171 span: 8 span: 27 } location: { path: 4 path: 14 span: 173 span: 0 span: 178 span: 1 } location: { path: 4 path: 14 path: 1 span: 173 span: 8 span: 24 } location: { path: 4 path: 14 path: 2 path: 0 span: 174 span: 2 span: 26 } location: { path: 4 path: 14 path: 2 path: 0 path: 5 span: 174 span: 2 span: 8 } location: { path: 4 path: 14 path: 2 path: 0 path: 1 span: 174 span: 9 span: 21 } location: { path: 4 path: 14 path: 2 path: 0 path: 3 span: 174 span: 24 span: 25 } location: { path: 4 path: 14 path: 2 path: 1 span: 175 span: 2 span: 21 } location: { path: 4 path: 14 path: 2 path: 1 path: 5 span: 175 span: 2 span: 8 } location: { path: 4 path: 14 path: 2 path: 1 path: 1 span: 175 span: 9 span: 16 } location: { path: 4 path: 14 path: 2 path: 1 path: 3 span: 175 span: 19 span: 20 } location: { path: 4 path: 14 path: 2 path: 2 span: 176 span: 2 span: 19 } location: { path: 4 path: 14 path: 2 path: 2 path: 5 span: 176 span: 2 span: 8 } location: { path: 4 path: 14 path: 2 path: 2 path: 1 span: 176 span: 9 span: 14 } location: { path: 4 path: 14 path: 2 path: 2 path: 3 span: 176 span: 17 span: 18 } location: { path: 4 path: 14 path: 2 path: 3 span: 177 span: 2 span: 20 } location: { path: 4 path: 14 path: 2 path: 3 path: 5 span: 177 span: 2 span: 8 } location: { path: 4 path: 14 path: 2 path: 3 path: 1 span: 177 span: 9 span: 15 } location: { path: 4 path: 14 path: 2 path: 3 path: 3 span: 177 span: 18 span: 19 } location: { path: 4 path: 15 span: 180 span: 0 span: 184 span: 1 } location: { path: 4 path: 15 path: 1 span: 180 span: 8 span: 22 } location: { path: 4 path: 15 path: 2 path: 0 span: 181 span: 2 span: 26 } location: { path: 4 path: 15 path: 2 path: 0 path: 5 span: 181 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 0 path: 1 span: 181 span: 9 span: 21 } location: { path: 4 path: 15 path: 2 path: 0 path: 3 span: 181 span: 24 span: 25 } location: { path: 4 path: 15 path: 2 path: 1 span: 182 span: 2 span: 21 } location: { path: 4 path: 15 path: 2 path: 1 path: 5 span: 182 span: 2 span: 8 } location: { path: 4 path: 15 path: 2 path: 1 path: 1 span: 182 span: 9 span: 16 } location: { path: 4 path: 15 path: 2 path: 1 path: 3 span: 182 span: 19 span: 20 } location: { path: 4 path: 15 path: 2 path: 2 span: 183 span: 2 span: 17 } location: { path: 4 path: 15 path: 2 path: 2 path: 5 span: 183 span: 2 span: 6 } location: { path: 4 path: 15 path: 2 path: 2 path: 1 span: 183 span: 7 span: 12 } location: { path: 4 path: 15 path: 2 path: 2 path: 3 span: 183 span: 15 span: 16 } location: { path: 4 path: 16 span: 186 span: 0 span: 188 span: 1 } location: { path: 4 path: 16 path: 1 span: 186 span: 8 span: 24 } location: { path: 4 path: 16 path: 2 path: 0 span: 187 span: 2 span: 26 } location: { path: 4 path: 16 path: 2 path: 0 path: 5 span: 187 span: 2 span: 8 } location: { path: 4 path: 16 path: 2 path: 0 path: 1 span: 187 span: 9 span: 21 } location: { path: 4 path: 16 path: 2 path: 0 path: 3 span: 187 span: 24 span: 25 } location: { path: 4 path: 17 span: 190 span: 0 span: 192 span: 1 } location: { path: 4 path: 17 path: 1 span: 190 span: 8 span: 25 } location: { path: 4 path: 17 path: 2 path: 0 span: 191 span: 2 span: 26 } location: { path: 4 path: 17 path: 2 path: 0 path: 5 span: 191 span: 2 span: 8 } location: { path: 4 path: 17 path: 2 path: 0 path: 1 span: 191 span: 9 span: 21 } location: { path: 4 path: 17 path: 2 path: 0 path: 3 span: 191 span: 24 span: 25 } location: { path: 4 path: 18 span: 194 span: 0 span: 196 span: 1 } location: { path: 4 path: 18 path: 1 span: 194 span: 8 span: 23 } location: { path: 4 path: 18 path: 2 path: 0 span: 195 span: 2 span: 26 } location: { path: 4 path: 18 path: 2 path: 0 path: 5 span: 195 span: 2 span: 8 } location: { path: 4 path: 18 path: 2 path: 0 path: 1 span: 195 span: 9 span: 21 } location: { path: 4 path: 18 path: 2 path: 0 path: 3 span: 195 span: 24 span: 25 } location: { path: 4 path: 19 span: 198 span: 0 span: 201 span: 1 } location: { path: 4 path: 19 path: 1 span: 198 span: 8 span: 24 } location: { path: 4 path: 19 path: 2 path: 0 span: 200 span: 2 span: 57 leading_comments: " Processes includes the process ID and additional process information\n" } location: { path: 4 path: 19 path: 2 path: 0 path: 4 span: 200 span: 2 span: 10 } location: { path: 4 path: 19 path: 2 path: 0 path: 6 span: 200 span: 11 span: 42 } location: { path: 4 path: 19 path: 2 path: 0 path: 1 span: 200 span: 43 span: 52 } location: { path: 4 path: 19 path: 2 path: 0 path: 3 span: 200 span: 55 span: 56 } location: { path: 4 path: 20 span: 203 span: 0 span: 207 span: 1 } location: { path: 4 path: 20 path: 1 span: 203 span: 8 span: 29 } location: { path: 4 path: 20 path: 2 path: 0 span: 204 span: 2 span: 26 } location: { path: 4 path: 20 path: 2 path: 0 path: 5 span: 204 span: 2 span: 8 } location: { path: 4 path: 20 path: 2 path: 0 path: 1 span: 204 span: 9 span: 21 } location: { path: 4 path: 20 path: 2 path: 0 path: 3 span: 204 span: 24 span: 25 } location: { path: 4 path: 20 path: 2 path: 1 span: 205 span: 2 span: 31 } location: { path: 4 path: 20 path: 2 path: 1 path: 5 span: 205 span: 2 span: 8 } location: { path: 4 path: 20 path: 2 path: 1 path: 1 span: 205 span: 9 span: 26 } location: { path: 4 path: 20 path: 2 path: 1 path: 3 span: 205 span: 29 span: 30 } location: { path: 4 path: 20 path: 2 path: 2 span: 206 span: 2 span: 34 } location: { path: 4 path: 20 path: 2 path: 2 path: 6 span: 206 span: 2 span: 21 } location: { path: 4 path: 20 path: 2 path: 2 path: 1 span: 206 span: 22 span: 29 } location: { path: 4 path: 20 path: 2 path: 2 path: 3 span: 206 span: 32 span: 33 } location: { path: 4 path: 21 span: 209 span: 0 span: 211 span: 1 } location: { path: 4 path: 21 path: 1 span: 209 span: 8 span: 30 } location: { path: 4 path: 21 path: 2 path: 0 span: 210 span: 2 span: 55 } location: { path: 4 path: 21 path: 2 path: 0 path: 4 span: 210 span: 2 span: 10 } location: { path: 4 path: 21 path: 2 path: 0 path: 6 span: 210 span: 11 span: 38 } location: { path: 4 path: 21 path: 2 path: 0 path: 1 span: 210 span: 39 span: 50 } location: { path: 4 path: 21 path: 2 path: 0 path: 3 span: 210 span: 53 span: 54 } location: { path: 4 path: 22 span: 213 span: 0 span: 217 span: 1 } location: { path: 4 path: 22 path: 1 span: 213 span: 8 span: 25 } location: { path: 4 path: 22 path: 2 path: 0 span: 214 span: 2 span: 26 } location: { path: 4 path: 22 path: 2 path: 0 path: 5 span: 214 span: 2 span: 8 } location: { path: 4 path: 22 path: 2 path: 0 path: 1 span: 214 span: 9 span: 21 } location: { path: 4 path: 22 path: 2 path: 0 path: 3 span: 214 span: 24 span: 25 } location: { path: 4 path: 22 path: 2 path: 1 span: 215 span: 2 span: 36 } location: { path: 4 path: 22 path: 2 path: 1 path: 6 span: 215 span: 2 span: 21 } location: { path: 4 path: 22 path: 2 path: 1 path: 1 span: 215 span: 22 span: 31 } location: { path: 4 path: 22 path: 2 path: 1 path: 3 span: 215 span: 34 span: 35 } location: { path: 4 path: 22 path: 2 path: 2 span: 216 span: 2 span: 38 } location: { path: 4 path: 22 path: 2 path: 2 path: 6 span: 216 span: 2 span: 21 } location: { path: 4 path: 22 path: 2 path: 2 path: 1 span: 216 span: 22 span: 33 } location: { path: 4 path: 22 path: 2 path: 2 path: 3 span: 216 span: 36 span: 37 } location: { path: 4 path: 23 span: 219 span: 0 span: 221 span: 1 } location: { path: 4 path: 23 path: 1 span: 219 span: 8 span: 22 } location: { path: 4 path: 23 path: 2 path: 0 span: 220 span: 2 span: 30 } location: { path: 4 path: 23 path: 2 path: 0 path: 4 span: 220 span: 2 span: 10 } location: { path: 4 path: 23 path: 2 path: 0 path: 5 span: 220 span: 11 span: 17 } location: { path: 4 path: 23 path: 2 path: 0 path: 1 span: 220 span: 18 span: 25 } location: { path: 4 path: 23 path: 2 path: 0 path: 3 span: 220 span: 28 span: 29 } location: { path: 4 path: 24 span: 223 span: 0 span: 225 span: 1 } location: { path: 4 path: 24 path: 1 span: 223 span: 8 span: 23 } location: { path: 4 path: 24 path: 2 path: 0 span: 224 span: 2 span: 36 } location: { path: 4 path: 24 path: 2 path: 0 path: 4 span: 224 span: 2 span: 10 } location: { path: 4 path: 24 path: 2 path: 0 path: 6 span: 224 span: 11 span: 23 } location: { path: 4 path: 24 path: 2 path: 0 path: 1 span: 224 span: 24 span: 31 } location: { path: 4 path: 24 path: 2 path: 0 path: 3 span: 224 span: 34 span: 35 } location: { path: 4 path: 25 span: 227 span: 0 span: 230 span: 1 } location: { path: 4 path: 25 path: 1 span: 227 span: 8 span: 19 } location: { path: 4 path: 25 path: 2 path: 0 span: 228 span: 2 span: 26 } location: { path: 4 path: 25 path: 2 path: 0 path: 5 span: 228 span: 2 span: 8 } location: { path: 4 path: 25 path: 2 path: 0 path: 1 span: 228 span: 9 span: 21 } location: { path: 4 path: 25 path: 2 path: 0 path: 3 span: 228 span: 24 span: 25 } location: { path: 4 path: 25 path: 2 path: 1 span: 229 span: 2 span: 21 } location: { path: 4 path: 25 path: 2 path: 1 path: 5 span: 229 span: 2 span: 8 } location: { path: 4 path: 25 path: 2 path: 1 path: 1 span: 229 span: 9 span: 16 } location: { path: 4 path: 25 path: 2 path: 1 path: 3 span: 229 span: 19 span: 20 } location: { path: 4 path: 26 span: 232 span: 0 span: 235 span: 1 } location: { path: 4 path: 26 path: 1 span: 232 span: 8 span: 20 } location: { path: 4 path: 26 path: 2 path: 0 span: 233 span: 2 span: 25 } location: { path: 4 path: 26 path: 2 path: 0 path: 5 span: 233 span: 2 span: 8 } location: { path: 4 path: 26 path: 2 path: 0 path: 1 span: 233 span: 9 span: 20 } location: { path: 4 path: 26 path: 2 path: 0 path: 3 span: 233 span: 23 span: 24 } location: { path: 4 path: 26 path: 2 path: 1 span: 234 span: 2 span: 42 } location: { path: 4 path: 26 path: 2 path: 1 path: 6 span: 234 span: 2 span: 27 } location: { path: 4 path: 26 path: 2 path: 1 path: 1 span: 234 span: 28 span: 37 } location: { path: 4 path: 26 path: 2 path: 1 path: 3 span: 234 span: 40 span: 41 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/transfer/v1/transfer.proto" package: "containerd.services.transfer.v1" dependency: "google/protobuf/any.proto" dependency: "google/protobuf/empty.proto" message_type: { name: "TransferRequest" field: { name: "source" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "source" } field: { name: "destination" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Any" json_name: "destination" } field: { name: "options" number: 3 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.services.transfer.v1.TransferOptions" json_name: "options" } } message_type: { name: "TransferOptions" field: { name: "progress_stream" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "progressStream" } } service: { name: "Transfer" method: { name: "Transfer" input_type: ".containerd.services.transfer.v1.TransferRequest" output_type: ".google.protobuf.Empty" } } options: { go_package: "github.com/containerd/containerd/api/services/transfer/v1;transfer" } source_code_info: { location: { span: 16 span: 0 span: 38 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 40 } location: { path: 3 path: 0 span: 20 span: 0 span: 35 } location: { path: 3 path: 1 span: 21 span: 0 span: 37 } location: { path: 8 span: 23 span: 0 span: 89 } location: { path: 8 path: 11 span: 23 span: 0 span: 89 } location: { path: 6 path: 0 span: 25 span: 0 span: 27 span: 1 } location: { path: 6 path: 0 path: 1 span: 25 span: 8 span: 16 } location: { path: 6 path: 0 path: 2 path: 0 span: 26 span: 2 span: 64 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 26 span: 6 span: 14 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 26 span: 15 span: 30 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 26 span: 41 span: 62 } location: { path: 4 path: 0 span: 29 span: 0 span: 33 span: 1 } location: { path: 4 path: 0 path: 1 span: 29 span: 8 span: 23 } location: { path: 4 path: 0 path: 2 path: 0 span: 30 span: 2 span: 33 } location: { path: 4 path: 0 path: 2 path: 0 path: 6 span: 30 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 30 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 30 span: 31 span: 32 } location: { path: 4 path: 0 path: 2 path: 1 span: 31 span: 2 span: 38 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 31 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 31 span: 22 span: 33 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 31 span: 36 span: 37 } location: { path: 4 path: 0 path: 2 path: 2 span: 32 span: 2 span: 30 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 32 span: 2 span: 17 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 32 span: 18 span: 25 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 32 span: 28 span: 29 } location: { path: 4 path: 1 span: 35 span: 0 span: 38 span: 1 } location: { path: 4 path: 1 path: 1 span: 35 span: 8 span: 23 } location: { path: 4 path: 1 path: 2 path: 0 span: 36 span: 2 span: 29 trailing_comments: " Progress min interval\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 36 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 36 span: 9 span: 24 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 36 span: 27 span: 28 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/ttrpc/events/v1/events.proto" package: "containerd.services.events.ttrpc.v1" dependency: "google/protobuf/empty.proto" dependency: "types/event.proto" message_type: { name: "ForwardRequest" field: { name: "envelope" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Envelope" json_name: "envelope" } } service: { name: "Events" method: { name: "Forward" input_type: ".containerd.services.events.ttrpc.v1.ForwardRequest" output_type: ".google.protobuf.Empty" } } options: { go_package: "github.com/containerd/containerd/api/services/ttrpc/events/v1;events" } source_code_info: { location: { span: 16 span: 0 span: 36 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 44 } location: { path: 3 path: 0 span: 20 span: 0 span: 37 } location: { path: 3 path: 1 span: 21 span: 0 span: 27 } location: { path: 8 span: 23 span: 0 span: 91 } location: { path: 8 path: 11 span: 23 span: 0 span: 91 } location: { path: 6 path: 0 span: 25 span: 0 span: 32 span: 1 } location: { path: 6 path: 0 path: 1 span: 25 span: 8 span: 14 } location: { path: 6 path: 0 path: 2 path: 0 span: 31 span: 2 span: 62 leading_comments: " Forward sends an event that has already been packaged into an envelope\n with a timestamp and namespace.\n\n This is useful if earlier timestamping is required or when forwarding on\n behalf of another component, namespace or publisher.\n" } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 31 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 31 span: 14 span: 28 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 31 span: 39 span: 60 } location: { path: 4 path: 0 span: 34 span: 0 span: 36 span: 1 } location: { path: 4 path: 0 path: 1 span: 34 span: 8 span: 22 } location: { path: 4 path: 0 path: 2 path: 0 span: 35 span: 2 span: 41 } location: { path: 4 path: 0 path: 2 path: 0 path: 6 span: 35 span: 2 span: 27 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 35 span: 28 span: 36 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 35 span: 39 span: 40 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "services/version/v1/version.proto" package: "containerd.services.version.v1" dependency: "google/protobuf/empty.proto" message_type: { name: "VersionResponse" field: { name: "version" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "version" } field: { name: "revision" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "revision" } } service: { name: "Version" method: { name: "Version" input_type: ".google.protobuf.Empty" output_type: ".containerd.services.version.v1.VersionResponse" } } options: { go_package: "github.com/containerd/containerd/api/services/version/v1;version" } source_code_info: { location: { span: 16 span: 0 span: 32 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 39 } location: { path: 3 path: 0 span: 20 span: 0 span: 37 } location: { path: 8 span: 23 span: 0 span: 87 } location: { path: 8 path: 11 span: 23 span: 0 span: 87 leading_comments: " TODO(stevvooe): Should version service actually be versioned?\n" } location: { path: 6 path: 0 span: 25 span: 0 span: 27 span: 1 } location: { path: 6 path: 0 path: 1 span: 25 span: 8 span: 15 } location: { path: 6 path: 0 path: 2 path: 0 span: 26 span: 2 span: 63 } location: { path: 6 path: 0 path: 2 path: 0 path: 1 span: 26 span: 6 span: 13 } location: { path: 6 path: 0 path: 2 path: 0 path: 2 span: 26 span: 14 span: 35 } location: { path: 6 path: 0 path: 2 path: 0 path: 3 span: 26 span: 46 span: 61 } location: { path: 4 path: 0 span: 29 span: 0 span: 32 span: 1 } location: { path: 4 path: 0 path: 1 span: 29 span: 8 span: 23 } location: { path: 4 path: 0 path: 2 path: 0 span: 30 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 30 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 30 span: 9 span: 16 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 30 span: 19 span: 20 } location: { path: 4 path: 0 path: 2 path: 1 span: 31 span: 2 span: 22 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 31 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 31 span: 9 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 31 span: 20 span: 21 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/runc/options/oci.proto" package: "containerd.runc.v1" message_type: { name: "Options" field: { name: "no_pivot_root" number: 1 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "noPivotRoot" } field: { name: "no_new_keyring" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "noNewKeyring" } field: { name: "shim_cgroup" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "shimCgroup" } field: { name: "io_uid" number: 4 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "ioUid" } field: { name: "io_gid" number: 5 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "ioGid" } field: { name: "binary_name" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "binaryName" } field: { name: "root" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "root" } field: { name: "systemd_cgroup" number: 9 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "systemdCgroup" } field: { name: "criu_image_path" number: 10 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "criuImagePath" } field: { name: "criu_work_path" number: 11 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "criuWorkPath" } field: { name: "task_api_address" number: 12 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "taskApiAddress" options: { deprecated: true } } field: { name: "task_api_version" number: 13 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "taskApiVersion" options: { deprecated: true } } reserved_range: { start: 8 end: 9 } } message_type: { name: "CheckpointOptions" field: { name: "exit" number: 1 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "exit" } field: { name: "open_tcp" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "openTcp" } field: { name: "external_unix_sockets" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "externalUnixSockets" } field: { name: "terminal" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "terminal" } field: { name: "file_locks" number: 5 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "fileLocks" } field: { name: "empty_namespaces" number: 6 label: LABEL_REPEATED type: TYPE_STRING json_name: "emptyNamespaces" } field: { name: "cgroups_mode" number: 7 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "cgroupsMode" } field: { name: "image_path" number: 8 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "imagePath" } field: { name: "work_path" number: 9 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "workPath" } } message_type: { name: "ProcessDetails" field: { name: "exec_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "execId" } } options: { go_package: "github.com/containerd/containerd/api/types/runc/options;options" } source_code_info: { location: { span: 0 span: 0 span: 62 span: 1 } location: { path: 12 span: 0 span: 0 span: 18 } location: { path: 2 span: 2 span: 0 span: 27 } location: { path: 8 span: 4 span: 0 span: 86 } location: { path: 8 path: 11 span: 4 span: 0 span: 86 } location: { path: 4 path: 0 span: 6 span: 0 span: 36 span: 1 } location: { path: 4 path: 0 path: 1 span: 6 span: 8 span: 15 } location: { path: 4 path: 0 path: 2 path: 0 span: 8 span: 2 span: 25 leading_comments: " disable pivot root when creating a container\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 8 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 8 span: 7 span: 20 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 8 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 1 span: 10 span: 2 span: 26 leading_comments: " create a new keyring for the container\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 10 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 10 span: 7 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 10 span: 24 span: 25 } location: { path: 4 path: 0 path: 2 path: 2 span: 12 span: 2 span: 25 leading_comments: " place the shim in a cgroup\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 12 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 12 span: 9 span: 20 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 12 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 3 span: 14 span: 2 span: 20 leading_comments: " set the I/O's pipes uid\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 14 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 14 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 14 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 4 span: 16 span: 2 span: 20 leading_comments: " set the I/O's pipes gid\n" } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 16 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 16 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 16 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 5 span: 18 span: 2 span: 25 leading_comments: " binary name of the runc binary\n" } location: { path: 4 path: 0 path: 2 path: 5 path: 5 span: 18 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 18 span: 9 span: 20 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 18 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 6 span: 20 span: 2 span: 18 leading_comments: " runc root directory\n" } location: { path: 4 path: 0 path: 2 path: 6 path: 5 span: 20 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 20 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 20 span: 16 span: 17 } location: { path: 4 path: 0 path: 9 span: 24 span: 2 span: 13 leading_comments: " criu binary path.\n\n Removed in containerd v2.0: string criu_path = 8;\n" } location: { path: 4 path: 0 path: 9 path: 0 span: 24 span: 11 span: 12 } location: { path: 4 path: 0 path: 9 path: 0 path: 1 span: 24 span: 11 span: 12 } location: { path: 4 path: 0 path: 9 path: 0 path: 2 span: 24 span: 11 span: 12 } location: { path: 4 path: 0 path: 2 path: 7 span: 26 span: 2 span: 26 leading_comments: " enable systemd cgroups\n" } location: { path: 4 path: 0 path: 2 path: 7 path: 5 span: 26 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 7 path: 1 span: 26 span: 7 span: 21 } location: { path: 4 path: 0 path: 2 path: 7 path: 3 span: 26 span: 24 span: 25 } location: { path: 4 path: 0 path: 2 path: 8 span: 28 span: 2 span: 30 leading_comments: " criu image path\n" } location: { path: 4 path: 0 path: 2 path: 8 path: 5 span: 28 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 8 path: 1 span: 28 span: 9 span: 24 } location: { path: 4 path: 0 path: 2 path: 8 path: 3 span: 28 span: 27 span: 29 } location: { path: 4 path: 0 path: 2 path: 9 span: 30 span: 2 span: 29 leading_comments: " criu work path\n" } location: { path: 4 path: 0 path: 2 path: 9 path: 5 span: 30 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 9 path: 1 span: 30 span: 9 span: 23 } location: { path: 4 path: 0 path: 2 path: 9 path: 3 span: 30 span: 26 span: 28 } location: { path: 4 path: 0 path: 2 path: 10 span: 33 span: 2 span: 51 leading_comments: " task api address, can be a unix domain socket, or vsock address.\n it is in the form of ttrpc+unix://path/to/uds or grpc+vsock://:.\n" } location: { path: 4 path: 0 path: 2 path: 10 path: 5 span: 33 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 10 path: 1 span: 33 span: 9 span: 25 } location: { path: 4 path: 0 path: 2 path: 10 path: 3 span: 33 span: 28 span: 30 } location: { path: 4 path: 0 path: 2 path: 10 path: 8 span: 33 span: 31 span: 50 } location: { path: 4 path: 0 path: 2 path: 10 path: 8 path: 3 span: 33 span: 32 span: 49 } location: { path: 4 path: 0 path: 2 path: 11 span: 35 span: 2 span: 51 leading_comments: " task api version, currently supported value is 2 and 3.\n" } location: { path: 4 path: 0 path: 2 path: 11 path: 5 span: 35 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 11 path: 1 span: 35 span: 9 span: 25 } location: { path: 4 path: 0 path: 2 path: 11 path: 3 span: 35 span: 28 span: 30 } location: { path: 4 path: 0 path: 2 path: 11 path: 8 span: 35 span: 31 span: 50 } location: { path: 4 path: 0 path: 2 path: 11 path: 8 path: 3 span: 35 span: 32 span: 49 } location: { path: 4 path: 1 span: 38 span: 0 span: 57 span: 1 } location: { path: 4 path: 1 path: 1 span: 38 span: 8 span: 25 } location: { path: 4 path: 1 path: 2 path: 0 span: 40 span: 2 span: 16 leading_comments: " exit the container after a checkpoint\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 40 span: 2 span: 6 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 40 span: 7 span: 11 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 40 span: 14 span: 15 } location: { path: 4 path: 1 path: 2 path: 1 span: 42 span: 2 span: 20 leading_comments: " checkpoint open tcp connections\n" } location: { path: 4 path: 1 path: 2 path: 1 path: 5 span: 42 span: 2 span: 6 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 42 span: 7 span: 15 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 42 span: 18 span: 19 } location: { path: 4 path: 1 path: 2 path: 2 span: 44 span: 2 span: 33 leading_comments: " checkpoint external unix sockets\n" } location: { path: 4 path: 1 path: 2 path: 2 path: 5 span: 44 span: 2 span: 6 } location: { path: 4 path: 1 path: 2 path: 2 path: 1 span: 44 span: 7 span: 28 } location: { path: 4 path: 1 path: 2 path: 2 path: 3 span: 44 span: 31 span: 32 } location: { path: 4 path: 1 path: 2 path: 3 span: 46 span: 2 span: 20 leading_comments: " checkpoint terminals (ptys)\n" } location: { path: 4 path: 1 path: 2 path: 3 path: 5 span: 46 span: 2 span: 6 } location: { path: 4 path: 1 path: 2 path: 3 path: 1 span: 46 span: 7 span: 15 } location: { path: 4 path: 1 path: 2 path: 3 path: 3 span: 46 span: 18 span: 19 } location: { path: 4 path: 1 path: 2 path: 4 span: 48 span: 2 span: 22 leading_comments: " allow checkpointing of file locks\n" } location: { path: 4 path: 1 path: 2 path: 4 path: 5 span: 48 span: 2 span: 6 } location: { path: 4 path: 1 path: 2 path: 4 path: 1 span: 48 span: 7 span: 17 } location: { path: 4 path: 1 path: 2 path: 4 path: 3 span: 48 span: 20 span: 21 } location: { path: 4 path: 1 path: 2 path: 5 span: 50 span: 2 span: 39 leading_comments: " restore provided namespaces as empty namespaces\n" } location: { path: 4 path: 1 path: 2 path: 5 path: 4 span: 50 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 5 path: 5 span: 50 span: 11 span: 17 } location: { path: 4 path: 1 path: 2 path: 5 path: 1 span: 50 span: 18 span: 34 } location: { path: 4 path: 1 path: 2 path: 5 path: 3 span: 50 span: 37 span: 38 } location: { path: 4 path: 1 path: 2 path: 6 span: 52 span: 2 span: 26 leading_comments: " set the cgroups mode, soft, full, strict\n" } location: { path: 4 path: 1 path: 2 path: 6 path: 5 span: 52 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 6 path: 1 span: 52 span: 9 span: 21 } location: { path: 4 path: 1 path: 2 path: 6 path: 3 span: 52 span: 24 span: 25 } location: { path: 4 path: 1 path: 2 path: 7 span: 54 span: 2 span: 24 leading_comments: " checkpoint image path\n" } location: { path: 4 path: 1 path: 2 path: 7 path: 5 span: 54 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 7 path: 1 span: 54 span: 9 span: 19 } location: { path: 4 path: 1 path: 2 path: 7 path: 3 span: 54 span: 22 span: 23 } location: { path: 4 path: 1 path: 2 path: 8 span: 56 span: 2 span: 23 leading_comments: " checkpoint work path\n" } location: { path: 4 path: 1 path: 2 path: 8 path: 5 span: 56 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 8 path: 1 span: 56 span: 9 span: 18 } location: { path: 4 path: 1 path: 2 path: 8 path: 3 span: 56 span: 21 span: 22 } location: { path: 4 path: 2 span: 59 span: 0 span: 62 span: 1 } location: { path: 4 path: 2 path: 1 span: 59 span: 8 span: 22 } location: { path: 4 path: 2 path: 2 path: 0 span: 61 span: 2 span: 21 leading_comments: " exec process id if the process is managed by a shim\n" } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 61 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 61 span: 9 span: 16 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 61 span: 19 span: 20 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/runtimeoptions/v1/api.proto" package: "runtimeoptions.v1" message_type: { name: "Options" field: { name: "type_url" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "typeUrl" } field: { name: "config_path" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "configPath" } field: { name: "config_body" number: 3 label: LABEL_OPTIONAL type: TYPE_BYTES json_name: "configBody" } } options: { go_package: "github.com/containerd/containerd/api/types/runtimeoptions/v1;runtimeoptions" } source_code_info: { location: { span: 1 span: 0 span: 16 span: 1 } location: { path: 12 span: 1 span: 0 span: 18 leading_comments: " To regenerate api.pb.go run `make protos`\n" } location: { path: 2 span: 3 span: 0 span: 26 } location: { path: 8 span: 5 span: 0 span: 98 } location: { path: 8 path: 11 span: 5 span: 0 span: 98 } location: { path: 4 path: 0 span: 7 span: 0 span: 16 span: 1 } location: { path: 4 path: 0 path: 1 span: 7 span: 8 span: 15 } location: { path: 4 path: 0 path: 2 path: 0 span: 9 span: 2 span: 22 leading_comments: " TypeUrl specifies the type of the content inside the config file.\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 9 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 9 span: 9 span: 17 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 9 span: 20 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 span: 12 span: 2 span: 25 leading_comments: " ConfigPath specifies the filesystem location of the config file\n used by the runtime.\n" } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 12 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 12 span: 9 span: 20 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 12 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 2 span: 15 span: 2 span: 24 leading_comments: " Blob specifies an in-memory TOML blob passed from containerd's configuration section\n for this runtime. This will be used if config_path is not specified.\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 15 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 15 span: 8 span: 19 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 15 span: 22 span: 23 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/transfer/container.proto" package: "containerd.types.transfer" message_type: { name: "ContainerPath" field: { name: "container_id" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "containerId" } field: { name: "path" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "path" } field: { name: "no_walk" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "noWalk" } field: { name: "preserve_ownership" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "preserveOwnership" } } options: { go_package: "github.com/containerd/containerd/api/types/transfer" } source_code_info: { location: { span: 15 span: 0 span: 38 span: 1 } location: { path: 12 span: 15 span: 0 span: 18 leading_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 34 } location: { path: 8 span: 20 span: 0 span: 74 } location: { path: 8 path: 11 span: 20 span: 0 span: 74 } location: { path: 4 path: 0 span: 25 span: 0 span: 38 span: 1 leading_comments: " ContainerPath represents a path within an active container's\n filesystem. It acts as either a source or destination in a transfer\n operation, identifying the container and path for archive operations.\n" } location: { path: 4 path: 0 path: 1 span: 25 span: 8 span: 21 } location: { path: 4 path: 0 path: 2 path: 0 span: 26 span: 8 span: 32 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 26 span: 8 span: 14 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 26 span: 15 span: 27 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 26 span: 30 span: 31 } location: { path: 4 path: 0 path: 2 path: 1 span: 27 span: 8 span: 24 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 27 span: 8 span: 14 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 27 span: 15 span: 19 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 27 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 2 span: 32 span: 8 span: 25 leading_comments: " When true and path is a directory, return only the directory entry\n itself without walking into its contents. This is useful for\n stat-like operations where only the directory's metadata is needed.\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 32 span: 8 span: 12 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 32 span: 13 span: 20 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 32 span: 23 span: 24 } location: { path: 4 path: 0 path: 2 path: 3 span: 37 span: 8 span: 36 leading_comments: " When true, preserve the UID/GID from tar headers when extracting\n files. When false, extracted files are owned by the extracting\n process.\n" } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 37 span: 8 span: 12 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 37 span: 13 span: 31 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 37 span: 34 span: 35 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/transfer/imagestore.proto" package: "containerd.types.transfer" dependency: "types/platform.proto" message_type: { name: "ImageStore" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "labels" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.transfer.ImageStore.LabelsEntry" json_name: "labels" } field: { name: "platforms" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Platform" json_name: "platforms" } field: { name: "all_metadata" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "allMetadata" } field: { name: "manifest_limit" number: 5 label: LABEL_OPTIONAL type: TYPE_UINT32 json_name: "manifestLimit" } field: { name: "extra_references" number: 6 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.transfer.ImageReference" json_name: "extraReferences" } field: { name: "unpacks" number: 10 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.transfer.UnpackConfiguration" json_name: "unpacks" } nested_type: { name: "LabelsEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "UnpackConfiguration" field: { name: "platform" number: 1 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Platform" json_name: "platform" } field: { name: "snapshotter" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "snapshotter" } } message_type: { name: "ImageReference" field: { name: "name" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "is_prefix" number: 2 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "isPrefix" } field: { name: "allow_overwrite" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "allowOverwrite" } field: { name: "add_digest" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "addDigest" } field: { name: "skip_named_digest" number: 5 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "skipNamedDigest" } } options: { go_package: "github.com/containerd/containerd/api/types/transfer" } source_code_info: { location: { span: 16 span: 0 span: 81 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 34 } location: { path: 3 path: 0 span: 20 span: 0 span: 30 } location: { path: 8 span: 22 span: 0 span: 74 } location: { path: 8 path: 11 span: 22 span: 0 span: 74 } location: { path: 4 path: 0 span: 24 span: 0 span: 42 span: 1 } location: { path: 4 path: 0 path: 1 span: 24 span: 8 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 span: 25 span: 2 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 25 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 25 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 25 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 1 span: 26 span: 2 span: 33 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 26 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 26 span: 22 span: 28 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 26 span: 31 span: 32 } location: { path: 4 path: 0 path: 2 path: 2 span: 30 span: 2 span: 40 leading_detached_comments: " Content filters\n" } location: { path: 4 path: 0 path: 2 path: 2 path: 4 span: 30 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 2 path: 6 span: 30 span: 11 span: 25 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 30 span: 26 span: 35 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 30 span: 38 span: 39 } location: { path: 4 path: 0 path: 2 path: 3 span: 31 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 31 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 31 span: 7 span: 19 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 31 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 4 span: 32 span: 2 span: 28 } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 32 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 32 span: 9 span: 23 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 32 span: 26 span: 27 } location: { path: 4 path: 0 path: 2 path: 5 span: 37 span: 2 span: 47 leading_comments: " extra_references are used to set image names on imports of sub-images from the index\n" leading_detached_comments: " Import naming\n" } location: { path: 4 path: 0 path: 2 path: 5 path: 4 span: 37 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 5 path: 6 span: 37 span: 11 span: 25 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 37 span: 26 span: 42 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 37 span: 45 span: 46 } location: { path: 4 path: 0 path: 2 path: 6 span: 41 span: 2 span: 44 leading_detached_comments: " Unpack Configuration, multiple allowed\n" } location: { path: 4 path: 0 path: 2 path: 6 path: 4 span: 41 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 6 path: 6 span: 41 span: 11 span: 30 } location: { path: 4 path: 0 path: 2 path: 6 path: 1 span: 41 span: 31 span: 38 } location: { path: 4 path: 0 path: 2 path: 6 path: 3 span: 41 span: 41 span: 43 } location: { path: 4 path: 1 span: 44 span: 0 span: 51 span: 1 } location: { path: 4 path: 1 path: 1 span: 44 span: 8 span: 27 } location: { path: 4 path: 1 path: 2 path: 0 span: 47 span: 2 span: 30 leading_comments: " platform is the platform to unpack for, used for resolving manifest and snapshotter\n if not provided\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 6 span: 47 span: 2 span: 16 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 47 span: 17 span: 25 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 47 span: 28 span: 29 } location: { path: 4 path: 1 path: 2 path: 1 span: 50 span: 2 span: 25 leading_comments: " snapshotter to unpack to, if not provided default for platform shoudl be used\n" } location: { path: 4 path: 1 path: 2 path: 1 path: 5 span: 50 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 50 span: 9 span: 20 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 50 span: 23 span: 24 } location: { path: 4 path: 2 span: 54 span: 0 span: 81 span: 1 leading_comments: " ImageReference is used to create or find a reference for an image\n" } location: { path: 4 path: 2 path: 1 span: 54 span: 8 span: 22 } location: { path: 4 path: 2 path: 2 path: 0 span: 55 span: 2 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 55 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 55 span: 9 span: 13 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 55 span: 16 span: 17 } location: { path: 4 path: 2 path: 2 path: 1 span: 61 span: 2 span: 21 leading_comments: " is_prefix determines whether the Name should be considered\n a prefix (without tag or digest).\n For lookup, this may allow matching multiple tags.\n For store, this must have a tag or digest added.\n" } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 61 span: 2 span: 6 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 61 span: 7 span: 16 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 61 span: 19 span: 20 } location: { path: 4 path: 2 path: 2 path: 2 span: 66 span: 2 span: 27 leading_comments: " allow_overwrite allows overwriting or ignoring the name if\n another reference is provided (such as through an annotation).\n Only used if IsPrefix is true.\n" } location: { path: 4 path: 2 path: 2 path: 2 path: 5 span: 66 span: 2 span: 6 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 66 span: 7 span: 22 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 66 span: 25 span: 26 } location: { path: 4 path: 2 path: 2 path: 3 span: 72 span: 2 span: 22 leading_comments: " add_digest adds the manifest digest to the reference.\n For lookup, this allows matching tags with any digest.\n For store, this allows adding the digest to the name.\n Only used if IsPrefix is true.\n" } location: { path: 4 path: 2 path: 2 path: 3 path: 5 span: 72 span: 2 span: 6 } location: { path: 4 path: 2 path: 2 path: 3 path: 1 span: 72 span: 7 span: 17 } location: { path: 4 path: 2 path: 2 path: 3 path: 3 span: 72 span: 20 span: 21 } location: { path: 4 path: 2 path: 2 path: 4 span: 80 span: 2 span: 29 leading_comments: " skip_named_digest only considers digest references which do not\n have a non-digested named reference.\n For lookup, this will deduplicate digest references when there is a named match.\n For store, this only adds this digest reference when there is no matching full\n name reference from the prefix.\n Only used if IsPrefix is true.\n" } location: { path: 4 path: 2 path: 2 path: 4 path: 5 span: 80 span: 2 span: 6 } location: { path: 4 path: 2 path: 2 path: 4 path: 1 span: 80 span: 7 span: 24 } location: { path: 4 path: 2 path: 2 path: 4 path: 3 span: 80 span: 27 span: 28 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/transfer/importexport.proto" package: "containerd.types.transfer" dependency: "types/platform.proto" message_type: { name: "ImageImportStream" field: { name: "stream" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stream" } field: { name: "media_type" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "mediaType" } field: { name: "force_compress" number: 3 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "forceCompress" } } message_type: { name: "ImageExportStream" field: { name: "stream" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stream" } field: { name: "media_type" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "mediaType" } field: { name: "platforms" number: 3 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.Platform" json_name: "platforms" } field: { name: "all_platforms" number: 4 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "allPlatforms" } field: { name: "skip_compatibility_manifest" number: 5 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "skipCompatibilityManifest" } field: { name: "skip_non_distributable" number: 6 label: LABEL_OPTIONAL type: TYPE_BOOL json_name: "skipNonDistributable" } } options: { go_package: "github.com/containerd/containerd/api/types/transfer" } source_code_info: { location: { span: 16 span: 0 span: 51 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 34 } location: { path: 3 path: 0 span: 20 span: 0 span: 30 } location: { path: 8 span: 22 span: 0 span: 74 } location: { path: 8 path: 11 span: 22 span: 0 span: 74 } location: { path: 4 path: 0 span: 24 span: 0 span: 33 span: 1 } location: { path: 4 path: 0 path: 1 span: 24 span: 8 span: 25 } location: { path: 4 path: 0 path: 2 path: 0 span: 28 span: 2 span: 20 leading_comments: " Stream is used to identify the binary input stream for the import operation.\n The stream uses the transfer binary stream protocol with the client as the sender.\n The binary data is expected to be a raw tar stream.\n" } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 28 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 28 span: 9 span: 15 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 28 span: 18 span: 19 } location: { path: 4 path: 0 path: 2 path: 1 span: 30 span: 2 span: 24 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 30 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 30 span: 9 span: 19 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 30 span: 22 span: 23 } location: { path: 4 path: 0 path: 2 path: 2 span: 32 span: 2 span: 26 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 32 span: 2 span: 6 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 32 span: 7 span: 21 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 32 span: 24 span: 25 } location: { path: 4 path: 1 span: 35 span: 0 span: 51 span: 1 } location: { path: 4 path: 1 path: 1 span: 35 span: 8 span: 25 } location: { path: 4 path: 1 path: 2 path: 0 span: 39 span: 2 span: 20 leading_comments: " Stream is used to identify the binary output stream for the export operation.\n The stream uses the transfer binary stream protocol with the server as the sender.\n The binary data is expected to be a raw tar stream.\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 39 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 39 span: 9 span: 15 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 39 span: 18 span: 19 } location: { path: 4 path: 1 path: 2 path: 1 span: 41 span: 2 span: 24 } location: { path: 4 path: 1 path: 2 path: 1 path: 5 span: 41 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 41 span: 9 span: 19 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 41 span: 22 span: 23 } location: { path: 4 path: 1 path: 2 path: 2 span: 44 span: 2 span: 40 leading_comments: " The specified platforms\n" } location: { path: 4 path: 1 path: 2 path: 2 path: 4 span: 44 span: 2 span: 10 } location: { path: 4 path: 1 path: 2 path: 2 path: 6 span: 44 span: 11 span: 25 } location: { path: 4 path: 1 path: 2 path: 2 path: 1 span: 44 span: 26 span: 35 } location: { path: 4 path: 1 path: 2 path: 2 path: 3 span: 44 span: 38 span: 39 } location: { path: 4 path: 1 path: 2 path: 3 span: 46 span: 2 span: 25 leading_comments: " Whether to include all platforms\n" } location: { path: 4 path: 1 path: 2 path: 3 path: 5 span: 46 span: 2 span: 6 } location: { path: 4 path: 1 path: 2 path: 3 path: 1 span: 46 span: 7 span: 20 } location: { path: 4 path: 1 path: 2 path: 3 path: 3 span: 46 span: 23 span: 24 } location: { path: 4 path: 1 path: 2 path: 4 span: 48 span: 2 span: 39 leading_comments: " Skips the creation of the Docker compatible manifest.json file\n" } location: { path: 4 path: 1 path: 2 path: 4 path: 5 span: 48 span: 2 span: 6 } location: { path: 4 path: 1 path: 2 path: 4 path: 1 span: 48 span: 7 span: 34 } location: { path: 4 path: 1 path: 2 path: 4 path: 3 span: 48 span: 37 span: 38 } location: { path: 4 path: 1 path: 2 path: 5 span: 50 span: 2 span: 34 leading_comments: " Excludes non-distributable blobs such as Windows base layers.\n" } location: { path: 4 path: 1 path: 2 path: 5 path: 5 span: 50 span: 2 span: 6 } location: { path: 4 path: 1 path: 2 path: 5 path: 1 span: 50 span: 7 span: 29 } location: { path: 4 path: 1 path: 2 path: 5 path: 3 span: 50 span: 32 span: 33 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/transfer/progress.proto" package: "containerd.types.transfer" dependency: "types/descriptor.proto" message_type: { name: "Progress" field: { name: "event" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "event" } field: { name: "name" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "name" } field: { name: "parents" number: 3 label: LABEL_REPEATED type: TYPE_STRING json_name: "parents" } field: { name: "progress" number: 4 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "progress" } field: { name: "total" number: 5 label: LABEL_OPTIONAL type: TYPE_INT64 json_name: "total" } field: { name: "desc" number: 6 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.Descriptor" json_name: "desc" } } options: { go_package: "github.com/containerd/containerd/api/types/transfer" } source_code_info: { location: { span: 16 span: 0 span: 31 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 34 } location: { path: 3 path: 0 span: 20 span: 0 span: 32 } location: { path: 8 span: 22 span: 0 span: 74 } location: { path: 8 path: 11 span: 22 span: 0 span: 74 } location: { path: 4 path: 0 span: 24 span: 0 span: 31 span: 1 } location: { path: 4 path: 0 path: 1 span: 24 span: 8 span: 16 } location: { path: 4 path: 0 path: 2 path: 0 span: 25 span: 2 span: 19 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 25 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 25 span: 9 span: 14 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 25 span: 17 span: 18 } location: { path: 4 path: 0 path: 2 path: 1 span: 26 span: 2 span: 18 } location: { path: 4 path: 0 path: 2 path: 1 path: 5 span: 26 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 26 span: 9 span: 13 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 26 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 2 span: 27 span: 2 span: 30 } location: { path: 4 path: 0 path: 2 path: 2 path: 4 span: 27 span: 2 span: 10 } location: { path: 4 path: 0 path: 2 path: 2 path: 5 span: 27 span: 11 span: 17 } location: { path: 4 path: 0 path: 2 path: 2 path: 1 span: 27 span: 18 span: 25 } location: { path: 4 path: 0 path: 2 path: 2 path: 3 span: 27 span: 28 span: 29 } location: { path: 4 path: 0 path: 2 path: 3 span: 28 span: 2 span: 21 } location: { path: 4 path: 0 path: 2 path: 3 path: 5 span: 28 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 3 path: 1 span: 28 span: 8 span: 16 } location: { path: 4 path: 0 path: 2 path: 3 path: 3 span: 28 span: 19 span: 20 } location: { path: 4 path: 0 path: 2 path: 4 span: 29 span: 2 span: 18 } location: { path: 4 path: 0 path: 2 path: 4 path: 5 span: 29 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 4 path: 1 span: 29 span: 8 span: 13 } location: { path: 4 path: 0 path: 2 path: 4 path: 3 span: 29 span: 16 span: 17 } location: { path: 4 path: 0 path: 2 path: 5 span: 30 span: 2 span: 39 } location: { path: 4 path: 0 path: 2 path: 5 path: 6 span: 30 span: 2 span: 29 } location: { path: 4 path: 0 path: 2 path: 5 path: 1 span: 30 span: 30 span: 34 } location: { path: 4 path: 0 path: 2 path: 5 path: 3 span: 30 span: 37 span: 38 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/transfer/registry.proto" package: "containerd.types.transfer" dependency: "google/protobuf/timestamp.proto" message_type: { name: "OCIRegistry" field: { name: "reference" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "reference" } field: { name: "resolver" number: 2 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".containerd.types.transfer.RegistryResolver" json_name: "resolver" } } message_type: { name: "RegistryResolver" field: { name: "auth_stream" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "authStream" } field: { name: "headers" number: 2 label: LABEL_REPEATED type: TYPE_MESSAGE type_name: ".containerd.types.transfer.RegistryResolver.HeadersEntry" json_name: "headers" } field: { name: "host_dir" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "hostDir" } field: { name: "default_scheme" number: 4 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "defaultScheme" } field: { name: "http_debug" number: 5 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".containerd.types.transfer.HTTPDebug" json_name: "httpDebug" } field: { name: "logs_stream" number: 6 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "logsStream" } nested_type: { name: "HeadersEntry" field: { name: "key" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "key" } field: { name: "value" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "value" } options: { map_entry: true } } } message_type: { name: "AuthRequest" field: { name: "host" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "host" } field: { name: "reference" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "reference" } field: { name: "wwwauthenticate" number: 3 label: LABEL_REPEATED type: TYPE_STRING json_name: "wwwauthenticate" } } message_type: { name: "AuthResponse" field: { name: "authType" number: 1 label: LABEL_OPTIONAL type: TYPE_ENUM type_name: ".containerd.types.transfer.AuthType" json_name: "authType" } field: { name: "secret" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "secret" } field: { name: "username" number: 3 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "username" } field: { name: "expire_at" number: 4 label: LABEL_OPTIONAL type: TYPE_MESSAGE type_name: ".google.protobuf.Timestamp" json_name: "expireAt" } } enum_type: { name: "HTTPDebug" value: { name: "DISABLED" number: 0 } value: { name: "DEBUG" number: 1 } value: { name: "TRACE" number: 2 } value: { name: "BOTH" number: 3 } } enum_type: { name: "AuthType" value: { name: "NONE" number: 0 } value: { name: "CREDENTIALS" number: 1 } value: { name: "REFRESH" number: 2 } value: { name: "HEADER" number: 3 } } options: { go_package: "github.com/containerd/containerd/api/types/transfer" } source_code_info: { location: { span: 16 span: 0 span: 96 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 34 } location: { path: 3 path: 0 span: 20 span: 0 span: 41 } location: { path: 8 span: 22 span: 0 span: 74 } location: { path: 8 path: 11 span: 22 span: 0 span: 74 } location: { path: 4 path: 0 span: 24 span: 0 span: 27 span: 1 } location: { path: 4 path: 0 path: 1 span: 24 span: 8 span: 19 } location: { path: 4 path: 0 path: 2 path: 0 span: 25 span: 2 span: 23 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 25 span: 2 span: 8 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 25 span: 9 span: 18 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 25 span: 21 span: 22 } location: { path: 4 path: 0 path: 2 path: 1 span: 26 span: 2 span: 32 } location: { path: 4 path: 0 path: 2 path: 1 path: 6 span: 26 span: 2 span: 18 } location: { path: 4 path: 0 path: 2 path: 1 path: 1 span: 26 span: 19 span: 27 } location: { path: 4 path: 0 path: 2 path: 1 path: 3 span: 26 span: 30 span: 31 } location: { path: 5 path: 0 span: 29 span: 0 span: 37 span: 1 } location: { path: 5 path: 0 path: 1 span: 29 span: 5 span: 14 } location: { path: 5 path: 0 path: 2 path: 0 span: 30 span: 2 span: 15 } location: { path: 5 path: 0 path: 2 path: 0 path: 1 span: 30 span: 2 span: 10 } location: { path: 5 path: 0 path: 2 path: 0 path: 2 span: 30 span: 13 span: 14 } location: { path: 5 path: 0 path: 2 path: 1 span: 32 span: 2 span: 12 leading_comments: " Enable HTTP debugging\n" } location: { path: 5 path: 0 path: 2 path: 1 path: 1 span: 32 span: 2 span: 7 } location: { path: 5 path: 0 path: 2 path: 1 path: 2 span: 32 span: 10 span: 11 } location: { path: 5 path: 0 path: 2 path: 2 span: 34 span: 2 span: 12 leading_comments: " Enable HTTP requests tracing\n" } location: { path: 5 path: 0 path: 2 path: 2 path: 1 span: 34 span: 2 span: 7 } location: { path: 5 path: 0 path: 2 path: 2 path: 2 span: 34 span: 10 span: 11 } location: { path: 5 path: 0 path: 2 path: 3 span: 36 span: 2 span: 11 leading_comments: " Enable both HTTP debugging and requests tracing\n" } location: { path: 5 path: 0 path: 2 path: 3 path: 1 span: 36 span: 2 span: 6 } location: { path: 5 path: 0 path: 2 path: 3 path: 2 span: 36 span: 9 span: 10 } location: { path: 4 path: 1 span: 39 span: 0 span: 59 span: 1 } location: { path: 4 path: 1 path: 1 span: 39 span: 8 span: 24 } location: { path: 4 path: 1 path: 2 path: 0 span: 42 span: 2 span: 25 leading_comments: " auth_stream is used to refer to a stream which auth callbacks may be\n made on.\n" } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 42 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 42 span: 9 span: 20 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 42 span: 23 span: 24 } location: { path: 4 path: 1 path: 2 path: 1 span: 45 span: 2 span: 34 leading_comments: " Headers\n" } location: { path: 4 path: 1 path: 2 path: 1 path: 6 span: 45 span: 2 span: 21 } location: { path: 4 path: 1 path: 2 path: 1 path: 1 span: 45 span: 22 span: 29 } location: { path: 4 path: 1 path: 2 path: 1 path: 3 span: 45 span: 32 span: 33 } location: { path: 4 path: 1 path: 2 path: 2 span: 47 span: 2 span: 22 } location: { path: 4 path: 1 path: 2 path: 2 path: 5 span: 47 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 2 path: 1 span: 47 span: 9 span: 17 } location: { path: 4 path: 1 path: 2 path: 2 path: 3 span: 47 span: 20 span: 21 } location: { path: 4 path: 1 path: 2 path: 3 span: 49 span: 2 span: 28 trailing_comments: " Force skip verify\n CA callback? Client TLS callback?\n" } location: { path: 4 path: 1 path: 2 path: 3 path: 5 span: 49 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 3 path: 1 span: 49 span: 9 span: 23 } location: { path: 4 path: 1 path: 2 path: 3 path: 3 span: 49 span: 26 span: 27 } location: { path: 4 path: 1 path: 2 path: 4 span: 54 span: 2 span: 27 leading_comments: " Whether to debug/trace HTTP requests to OCI registry.\n" } location: { path: 4 path: 1 path: 2 path: 4 path: 6 span: 54 span: 2 span: 11 } location: { path: 4 path: 1 path: 2 path: 4 path: 1 span: 54 span: 12 span: 22 } location: { path: 4 path: 1 path: 2 path: 4 path: 3 span: 54 span: 25 span: 26 } location: { path: 4 path: 1 path: 2 path: 5 span: 58 span: 2 span: 25 leading_comments: " Stream ID to use for HTTP logs (when logs are streamed to client).\n When empty, logs are written to containerd logs.\n" } location: { path: 4 path: 1 path: 2 path: 5 path: 5 span: 58 span: 2 span: 8 } location: { path: 4 path: 1 path: 2 path: 5 path: 1 span: 58 span: 9 span: 20 } location: { path: 4 path: 1 path: 2 path: 5 path: 3 span: 58 span: 23 span: 24 } location: { path: 4 path: 2 span: 62 span: 0 span: 71 span: 1 leading_comments: " AuthRequest is sent as a callback on a stream\n" } location: { path: 4 path: 2 path: 1 span: 62 span: 8 span: 19 } location: { path: 4 path: 2 path: 2 path: 0 span: 64 span: 2 span: 18 leading_comments: " host is the registry host\n" } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 64 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 64 span: 9 span: 13 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 64 span: 16 span: 17 } location: { path: 4 path: 2 path: 2 path: 1 span: 67 span: 2 span: 23 leading_comments: " reference is the namespace and repository name requested from the registry\n" } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 67 span: 2 span: 8 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 67 span: 9 span: 18 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 67 span: 21 span: 22 } location: { path: 4 path: 2 path: 2 path: 2 span: 70 span: 2 span: 38 leading_comments: " wwwauthenticate is the HTTP WWW-Authenticate header values returned from the registry\n" } location: { path: 4 path: 2 path: 2 path: 2 path: 4 span: 70 span: 2 span: 10 } location: { path: 4 path: 2 path: 2 path: 2 path: 5 span: 70 span: 11 span: 17 } location: { path: 4 path: 2 path: 2 path: 2 path: 1 span: 70 span: 18 span: 33 } location: { path: 4 path: 2 path: 2 path: 2 path: 3 span: 70 span: 36 span: 37 } location: { path: 5 path: 1 span: 73 span: 0 span: 88 span: 1 } location: { path: 5 path: 1 path: 1 span: 73 span: 5 span: 13 } location: { path: 5 path: 1 path: 2 path: 0 span: 74 span: 2 span: 11 } location: { path: 5 path: 1 path: 2 path: 0 path: 1 span: 74 span: 2 span: 6 } location: { path: 5 path: 1 path: 2 path: 0 path: 2 span: 74 span: 9 span: 10 } location: { path: 5 path: 1 path: 2 path: 1 span: 78 span: 2 span: 18 leading_comments: " CREDENTIALS is used to exchange username/password for access token\n using an oauth or \"Docker Registry Token\" server\n" } location: { path: 5 path: 1 path: 2 path: 1 path: 1 span: 78 span: 2 span: 13 } location: { path: 5 path: 1 path: 2 path: 1 path: 2 span: 78 span: 16 span: 17 } location: { path: 5 path: 1 path: 2 path: 2 span: 82 span: 2 span: 14 leading_comments: " REFRESH is used to exchange secret for access token using an oauth\n or \"Docker Registry Token\" server\n" } location: { path: 5 path: 1 path: 2 path: 2 path: 1 span: 82 span: 2 span: 9 } location: { path: 5 path: 1 path: 2 path: 2 path: 2 span: 82 span: 12 span: 13 } location: { path: 5 path: 1 path: 2 path: 3 span: 87 span: 2 span: 13 leading_comments: " HEADER is used to set the HTTP Authorization header to secret\n directly for the registry.\n Value should be ` `\n" } location: { path: 5 path: 1 path: 2 path: 3 path: 1 span: 87 span: 2 span: 8 } location: { path: 5 path: 1 path: 2 path: 3 path: 2 span: 87 span: 11 span: 12 } location: { path: 4 path: 3 span: 90 span: 0 span: 96 span: 1 } location: { path: 4 path: 3 path: 1 span: 90 span: 8 span: 20 } location: { path: 4 path: 3 path: 2 path: 0 span: 91 span: 2 span: 24 } location: { path: 4 path: 3 path: 2 path: 0 path: 6 span: 91 span: 2 span: 10 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 91 span: 11 span: 19 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 91 span: 22 span: 23 } location: { path: 4 path: 3 path: 2 path: 1 span: 92 span: 2 span: 20 } location: { path: 4 path: 3 path: 2 path: 1 path: 5 span: 92 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 92 span: 9 span: 15 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 92 span: 18 span: 19 } location: { path: 4 path: 3 path: 2 path: 2 span: 93 span: 2 span: 22 } location: { path: 4 path: 3 path: 2 path: 2 path: 5 span: 93 span: 2 span: 8 } location: { path: 4 path: 3 path: 2 path: 2 path: 1 span: 93 span: 9 span: 17 } location: { path: 4 path: 3 path: 2 path: 2 path: 3 span: 93 span: 20 span: 21 } location: { path: 4 path: 3 path: 2 path: 3 span: 94 span: 2 span: 42 trailing_comments: " TODO: Stream error\n" } location: { path: 4 path: 3 path: 2 path: 3 path: 6 span: 94 span: 2 span: 27 } location: { path: 4 path: 3 path: 2 path: 3 path: 1 span: 94 span: 28 span: 37 } location: { path: 4 path: 3 path: 2 path: 3 path: 3 span: 94 span: 40 span: 41 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } } file: { name: "types/transfer/streaming.proto" package: "containerd.types.transfer" message_type: { name: "Data" field: { name: "data" number: 1 label: LABEL_OPTIONAL type: TYPE_BYTES json_name: "data" } } message_type: { name: "WindowUpdate" field: { name: "update" number: 1 label: LABEL_OPTIONAL type: TYPE_INT32 json_name: "update" } } message_type: { name: "ReadStream" field: { name: "stream" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stream" } field: { name: "media_type" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "mediaType" } } message_type: { name: "WriteStream" field: { name: "stream" number: 1 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "stream" } field: { name: "media_type" number: 2 label: LABEL_OPTIONAL type: TYPE_STRING json_name: "mediaType" } } options: { go_package: "github.com/containerd/containerd/api/types/transfer" } source_code_info: { location: { span: 16 span: 0 span: 44 span: 1 } location: { path: 12 span: 16 span: 0 span: 18 leading_detached_comments: "\nCopyright The containerd Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n" } location: { path: 2 span: 18 span: 0 span: 34 } location: { path: 8 span: 20 span: 0 span: 74 } location: { path: 8 path: 11 span: 20 span: 0 span: 74 } location: { path: 4 path: 0 span: 22 span: 0 span: 24 span: 1 } location: { path: 4 path: 0 path: 1 span: 22 span: 8 span: 12 } location: { path: 4 path: 0 path: 2 path: 0 span: 23 span: 2 span: 17 } location: { path: 4 path: 0 path: 2 path: 0 path: 5 span: 23 span: 2 span: 7 } location: { path: 4 path: 0 path: 2 path: 0 path: 1 span: 23 span: 8 span: 12 } location: { path: 4 path: 0 path: 2 path: 0 path: 3 span: 23 span: 15 span: 16 } location: { path: 4 path: 1 span: 26 span: 0 span: 28 span: 1 } location: { path: 4 path: 1 path: 1 span: 26 span: 8 span: 20 } location: { path: 4 path: 1 path: 2 path: 0 span: 27 span: 2 span: 19 } location: { path: 4 path: 1 path: 2 path: 0 path: 5 span: 27 span: 2 span: 7 } location: { path: 4 path: 1 path: 2 path: 0 path: 1 span: 27 span: 8 span: 14 } location: { path: 4 path: 1 path: 2 path: 0 path: 3 span: 27 span: 17 span: 18 } location: { path: 4 path: 2 span: 33 span: 0 span: 36 span: 1 leading_comments: " ReadStream carries data from the client to the server (import\n direction). The client sends data through the stream and the\n server reads it.\n" } location: { path: 4 path: 2 path: 1 span: 33 span: 8 span: 18 } location: { path: 4 path: 2 path: 2 path: 0 span: 34 span: 8 span: 26 } location: { path: 4 path: 2 path: 2 path: 0 path: 5 span: 34 span: 8 span: 14 } location: { path: 4 path: 2 path: 2 path: 0 path: 1 span: 34 span: 15 span: 21 } location: { path: 4 path: 2 path: 2 path: 0 path: 3 span: 34 span: 24 span: 25 } location: { path: 4 path: 2 path: 2 path: 1 span: 35 span: 8 span: 30 } location: { path: 4 path: 2 path: 2 path: 1 path: 5 span: 35 span: 8 span: 14 } location: { path: 4 path: 2 path: 2 path: 1 path: 1 span: 35 span: 15 span: 25 } location: { path: 4 path: 2 path: 2 path: 1 path: 3 span: 35 span: 28 span: 29 } location: { path: 4 path: 3 span: 41 span: 0 span: 44 span: 1 leading_comments: " WriteStream carries data from the server to the client (export\n direction). The server writes data into the stream and the\n client receives it.\n" } location: { path: 4 path: 3 path: 1 span: 41 span: 8 span: 19 } location: { path: 4 path: 3 path: 2 path: 0 span: 42 span: 8 span: 26 } location: { path: 4 path: 3 path: 2 path: 0 path: 5 span: 42 span: 8 span: 14 } location: { path: 4 path: 3 path: 2 path: 0 path: 1 span: 42 span: 15 span: 21 } location: { path: 4 path: 3 path: 2 path: 0 path: 3 span: 42 span: 24 span: 25 } location: { path: 4 path: 3 path: 2 path: 1 span: 43 span: 8 span: 30 } location: { path: 4 path: 3 path: 2 path: 1 path: 5 span: 43 span: 8 span: 14 } location: { path: 4 path: 3 path: 2 path: 1 path: 1 span: 43 span: 15 span: 25 } location: { path: 4 path: 3 path: 2 path: 1 path: 3 span: 43 span: 28 span: 29 } } syntax: "proto3" buf_extension: { is_import: false module_info: { name: { remote: "buf.build" owner: "containerd" repository: "api-dev" } } is_syntax_unspecified: false } }