// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v3.12.2 // source: google/devtools/resultstore/v2/invocation.proto package resultstore import ( reflect "reflect" sync "sync" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // An Invocation typically represents the result of running a tool. Each has a // unique ID, typically generated by the server. Target resources under each // Invocation contain the bulk of the data. type Invocation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource name. Its format must be: // invocations/${INVOCATION_ID} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The resource ID components that identify the Invocation. They must match // the resource name after proper encoding. Id *Invocation_Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // The aggregate status of the invocation. StatusAttributes *StatusAttributes `protobuf:"bytes,3,opt,name=status_attributes,json=statusAttributes,proto3" json:"status_attributes,omitempty"` // When this invocation started and its duration. Timing *Timing `protobuf:"bytes,4,opt,name=timing,proto3" json:"timing,omitempty"` // Attributes of this invocation. InvocationAttributes *InvocationAttributes `protobuf:"bytes,5,opt,name=invocation_attributes,json=invocationAttributes,proto3" json:"invocation_attributes,omitempty"` // The workspace the tool was run in. WorkspaceInfo *WorkspaceInfo `protobuf:"bytes,6,opt,name=workspace_info,json=workspaceInfo,proto3" json:"workspace_info,omitempty"` // Arbitrary name-value pairs. // This is implemented as a multi-map. Multiple properties are allowed with // the same key. Properties will be returned in lexicographical order by key. Properties []*Property `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"` // A list of file references for invocation level files. // The file IDs must be unique within this list. Duplicate file IDs will // result in an error. Files will be returned in lexicographical order by ID. // Use this field to specify build logs, and other invocation level logs. // // Files with the following reserved file IDs cause specific post-processing // or have special handling. These files must be immediately available to // ResultStore for processing when the reference is uploaded. // // build.log: The primary log for the Invocation. // coverage_report.lcov: Aggregate coverage report for the invocation. Files []*File `protobuf:"bytes,8,rep,name=files,proto3" json:"files,omitempty"` // Summary of aggregate coverage across all Actions in this Invocation. // If missing, this data will be populated by the server from the // coverage_report.lcov file or the union of all ActionCoverages under this // invocation (in that order). CoverageSummaries []*LanguageCoverageSummary `protobuf:"bytes,9,rep,name=coverage_summaries,json=coverageSummaries,proto3" json:"coverage_summaries,omitempty"` // Aggregate code coverage for all build and test Actions within this // Invocation. If missing, this data will be populated by the server // from the coverage_report.lcov file or the union of all ActionCoverages // under this invocation (in that order). AggregateCoverage *AggregateCoverage `protobuf:"bytes,10,opt,name=aggregate_coverage,json=aggregateCoverage,proto3" json:"aggregate_coverage,omitempty"` // NOT IMPLEMENTED. // ResultStore will read and parse Files with reserved IDs listed above. Read // and parse errors for all these Files are reported here. // This is implemented as a map, with one FileProcessingErrors for each file. // Typically produced when parsing Files, but may also be provided directly // by clients. FileProcessingErrors []*FileProcessingErrors `protobuf:"bytes,11,rep,name=file_processing_errors,json=fileProcessingErrors,proto3" json:"file_processing_errors,omitempty"` } func (x *Invocation) Reset() { *x = Invocation{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Invocation) String() string { return protoimpl.X.MessageStringOf(x) } func (*Invocation) ProtoMessage() {} func (x *Invocation) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Invocation.ProtoReflect.Descriptor instead. func (*Invocation) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_invocation_proto_rawDescGZIP(), []int{0} } func (x *Invocation) GetName() string { if x != nil { return x.Name } return "" } func (x *Invocation) GetId() *Invocation_Id { if x != nil { return x.Id } return nil } func (x *Invocation) GetStatusAttributes() *StatusAttributes { if x != nil { return x.StatusAttributes } return nil } func (x *Invocation) GetTiming() *Timing { if x != nil { return x.Timing } return nil } func (x *Invocation) GetInvocationAttributes() *InvocationAttributes { if x != nil { return x.InvocationAttributes } return nil } func (x *Invocation) GetWorkspaceInfo() *WorkspaceInfo { if x != nil { return x.WorkspaceInfo } return nil } func (x *Invocation) GetProperties() []*Property { if x != nil { return x.Properties } return nil } func (x *Invocation) GetFiles() []*File { if x != nil { return x.Files } return nil } func (x *Invocation) GetCoverageSummaries() []*LanguageCoverageSummary { if x != nil { return x.CoverageSummaries } return nil } func (x *Invocation) GetAggregateCoverage() *AggregateCoverage { if x != nil { return x.AggregateCoverage } return nil } func (x *Invocation) GetFileProcessingErrors() []*FileProcessingErrors { if x != nil { return x.FileProcessingErrors } return nil } // If known, represents the state of the user/build-system workspace. type WorkspaceContext struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *WorkspaceContext) Reset() { *x = WorkspaceContext{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceContext) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceContext) ProtoMessage() {} func (x *WorkspaceContext) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceContext.ProtoReflect.Descriptor instead. func (*WorkspaceContext) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_invocation_proto_rawDescGZIP(), []int{1} } // Describes the workspace under which the tool was invoked, this includes // information that was fed into the command, the source code referenced, and // the tool itself. type WorkspaceInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Data about the workspace that might be useful for debugging. WorkspaceContext *WorkspaceContext `protobuf:"bytes,1,opt,name=workspace_context,json=workspaceContext,proto3" json:"workspace_context,omitempty"` // Where the tool was invoked Hostname string `protobuf:"bytes,3,opt,name=hostname,proto3" json:"hostname,omitempty"` // The client's working directory where the build/test was run from. WorkingDirectory string `protobuf:"bytes,4,opt,name=working_directory,json=workingDirectory,proto3" json:"working_directory,omitempty"` // Tools should set tool_tag to the name of the tool or use case. ToolTag string `protobuf:"bytes,5,opt,name=tool_tag,json=toolTag,proto3" json:"tool_tag,omitempty"` // The command lines invoked. The first command line is the one typed by the // user, then each one after that should be an expansion of the previous // command line. CommandLines []*CommandLine `protobuf:"bytes,7,rep,name=command_lines,json=commandLines,proto3" json:"command_lines,omitempty"` } func (x *WorkspaceInfo) Reset() { *x = WorkspaceInfo{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceInfo) ProtoMessage() {} func (x *WorkspaceInfo) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceInfo.ProtoReflect.Descriptor instead. func (*WorkspaceInfo) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_invocation_proto_rawDescGZIP(), []int{2} } func (x *WorkspaceInfo) GetWorkspaceContext() *WorkspaceContext { if x != nil { return x.WorkspaceContext } return nil } func (x *WorkspaceInfo) GetHostname() string { if x != nil { return x.Hostname } return "" } func (x *WorkspaceInfo) GetWorkingDirectory() string { if x != nil { return x.WorkingDirectory } return "" } func (x *WorkspaceInfo) GetToolTag() string { if x != nil { return x.ToolTag } return "" } func (x *WorkspaceInfo) GetCommandLines() []*CommandLine { if x != nil { return x.CommandLines } return nil } // The command and arguments that produced this Invocation. type CommandLine struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A label describing this command line. Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` // The command-line tool that is run: argv[0]. Tool string `protobuf:"bytes,2,opt,name=tool,proto3" json:"tool,omitempty"` // The arguments to the above tool: argv[1]...argv[N]. Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"` // The subcommand that was run with the tool, usually "build" or "test". // For example, in the Bazel command "bazel build //foo", this would be set // to "build". Omit if the tool doesn't accept a subcommand. This is must // be a reference to one of values in args. Command string `protobuf:"bytes,4,opt,name=command,proto3" json:"command,omitempty"` } func (x *CommandLine) Reset() { *x = CommandLine{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommandLine) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommandLine) ProtoMessage() {} func (x *CommandLine) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommandLine.ProtoReflect.Descriptor instead. func (*CommandLine) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_invocation_proto_rawDescGZIP(), []int{3} } func (x *CommandLine) GetLabel() string { if x != nil { return x.Label } return "" } func (x *CommandLine) GetTool() string { if x != nil { return x.Tool } return "" } func (x *CommandLine) GetArgs() []string { if x != nil { return x.Args } return nil } func (x *CommandLine) GetCommand() string { if x != nil { return x.Command } return "" } // Attributes that apply to all invocations. type InvocationAttributes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Immutable. The Cloud Project that owns this invocation (this is different than the // Consumer Cloud Project that calls this API). // This must be set in the CreateInvocation call, and can't be changed. // As input, callers can set this field to a project id (string) or a // stringified int64 project number. As output, the API populates this field // with the stringified int64 project number (per // https://google.aip.dev/cloud/2510). ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // The list of users in the command chain. The first user in this sequence // is the one who instigated the first command in the chain. For example, // this might contain just the user that ran a Bazel command, or a robot // that tested a change as part of a CI system. It could also contain the user // that manually triggered a CI test, then the robot that ran the test. Users []string `protobuf:"bytes,2,rep,name=users,proto3" json:"users,omitempty"` // Labels to categorize this invocation. // This is implemented as a set. All labels will be unique. Any duplicate // labels added will be ignored. Labels will be returned in lexicographical // order. Labels should be a list of words describing the Invocation. Labels // should be short, easy to read, and you shouldn't have more than a handful. // Labels should not be used for unique properties such as unique IDs. Use // properties in cases that don't meet these conditions. Labels []string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty"` // This field describes the overall context or purpose of this invocation. // It will be used in the UI to give users more information about // how or why this invocation was run. Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // If this Invocation was run in the context of a larger Continuous // Integration build or other automated system, this field may contain more // information about the greater context. InvocationContexts []*InvocationContext `protobuf:"bytes,6,rep,name=invocation_contexts,json=invocationContexts,proto3" json:"invocation_contexts,omitempty"` // Exit code of the process that ran the invocation. A non-zero value // means failure. For example, the exit code of a "bazel test" command. ExitCode int32 `protobuf:"varint,7,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` } func (x *InvocationAttributes) Reset() { *x = InvocationAttributes{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InvocationAttributes) String() string { return protoimpl.X.MessageStringOf(x) } func (*InvocationAttributes) ProtoMessage() {} func (x *InvocationAttributes) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InvocationAttributes.ProtoReflect.Descriptor instead. func (*InvocationAttributes) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_invocation_proto_rawDescGZIP(), []int{4} } func (x *InvocationAttributes) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *InvocationAttributes) GetUsers() []string { if x != nil { return x.Users } return nil } func (x *InvocationAttributes) GetLabels() []string { if x != nil { return x.Labels } return nil } func (x *InvocationAttributes) GetDescription() string { if x != nil { return x.Description } return "" } func (x *InvocationAttributes) GetInvocationContexts() []*InvocationContext { if x != nil { return x.InvocationContexts } return nil } func (x *InvocationAttributes) GetExitCode() int32 { if x != nil { return x.ExitCode } return 0 } // Describes the invocation context which includes a display name and URL. type InvocationContext struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A human readable name for the context under which this Invocation was run. DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // A URL pointing to a UI containing more information Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` } func (x *InvocationContext) Reset() { *x = InvocationContext{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InvocationContext) String() string { return protoimpl.X.MessageStringOf(x) } func (*InvocationContext) ProtoMessage() {} func (x *InvocationContext) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InvocationContext.ProtoReflect.Descriptor instead. func (*InvocationContext) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_invocation_proto_rawDescGZIP(), []int{5} } func (x *InvocationContext) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *InvocationContext) GetUrl() string { if x != nil { return x.Url } return "" } // The resource ID components that identify the Invocation. type Invocation_Id struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The Invocation ID. InvocationId string `protobuf:"bytes,1,opt,name=invocation_id,json=invocationId,proto3" json:"invocation_id,omitempty"` } func (x *Invocation_Id) Reset() { *x = Invocation_Id{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Invocation_Id) String() string { return protoimpl.X.MessageStringOf(x) } func (*Invocation_Id) ProtoMessage() {} func (x *Invocation_Id) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_invocation_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Invocation_Id.ProtoReflect.Descriptor instead. func (*Invocation_Id) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_invocation_proto_rawDescGZIP(), []int{0, 0} } func (x *Invocation_Id) GetInvocationId() string { if x != nil { return x.InvocationId } return "" } var File_google_devtools_resultstore_v2_invocation_proto protoreflect.FileDescriptor var file_google_devtools_resultstore_v2_invocation_proto_rawDesc = []byte{ 0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xec, 0x07, 0x0a, 0x0a, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x5d, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x69, 0x0a, 0x15, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x14, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x66, 0x0a, 0x12, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x6a, 0x0a, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x14, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x29, 0x0a, 0x02, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3a, 0x44, 0xea, 0x41, 0x41, 0x0a, 0x25, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x22, 0x12, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xa4, 0x02, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x67, 0x12, 0x50, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x65, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x6f, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0x8b, 0x02, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x13, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x12, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x48, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x42, 0x82, 0x01, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x32, 0x42, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x49, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_devtools_resultstore_v2_invocation_proto_rawDescOnce sync.Once file_google_devtools_resultstore_v2_invocation_proto_rawDescData = file_google_devtools_resultstore_v2_invocation_proto_rawDesc ) func file_google_devtools_resultstore_v2_invocation_proto_rawDescGZIP() []byte { file_google_devtools_resultstore_v2_invocation_proto_rawDescOnce.Do(func() { file_google_devtools_resultstore_v2_invocation_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_devtools_resultstore_v2_invocation_proto_rawDescData) }) return file_google_devtools_resultstore_v2_invocation_proto_rawDescData } var file_google_devtools_resultstore_v2_invocation_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_google_devtools_resultstore_v2_invocation_proto_goTypes = []interface{}{ (*Invocation)(nil), // 0: google.devtools.resultstore.v2.Invocation (*WorkspaceContext)(nil), // 1: google.devtools.resultstore.v2.WorkspaceContext (*WorkspaceInfo)(nil), // 2: google.devtools.resultstore.v2.WorkspaceInfo (*CommandLine)(nil), // 3: google.devtools.resultstore.v2.CommandLine (*InvocationAttributes)(nil), // 4: google.devtools.resultstore.v2.InvocationAttributes (*InvocationContext)(nil), // 5: google.devtools.resultstore.v2.InvocationContext (*Invocation_Id)(nil), // 6: google.devtools.resultstore.v2.Invocation.Id (*StatusAttributes)(nil), // 7: google.devtools.resultstore.v2.StatusAttributes (*Timing)(nil), // 8: google.devtools.resultstore.v2.Timing (*Property)(nil), // 9: google.devtools.resultstore.v2.Property (*File)(nil), // 10: google.devtools.resultstore.v2.File (*LanguageCoverageSummary)(nil), // 11: google.devtools.resultstore.v2.LanguageCoverageSummary (*AggregateCoverage)(nil), // 12: google.devtools.resultstore.v2.AggregateCoverage (*FileProcessingErrors)(nil), // 13: google.devtools.resultstore.v2.FileProcessingErrors } var file_google_devtools_resultstore_v2_invocation_proto_depIdxs = []int32{ 6, // 0: google.devtools.resultstore.v2.Invocation.id:type_name -> google.devtools.resultstore.v2.Invocation.Id 7, // 1: google.devtools.resultstore.v2.Invocation.status_attributes:type_name -> google.devtools.resultstore.v2.StatusAttributes 8, // 2: google.devtools.resultstore.v2.Invocation.timing:type_name -> google.devtools.resultstore.v2.Timing 4, // 3: google.devtools.resultstore.v2.Invocation.invocation_attributes:type_name -> google.devtools.resultstore.v2.InvocationAttributes 2, // 4: google.devtools.resultstore.v2.Invocation.workspace_info:type_name -> google.devtools.resultstore.v2.WorkspaceInfo 9, // 5: google.devtools.resultstore.v2.Invocation.properties:type_name -> google.devtools.resultstore.v2.Property 10, // 6: google.devtools.resultstore.v2.Invocation.files:type_name -> google.devtools.resultstore.v2.File 11, // 7: google.devtools.resultstore.v2.Invocation.coverage_summaries:type_name -> google.devtools.resultstore.v2.LanguageCoverageSummary 12, // 8: google.devtools.resultstore.v2.Invocation.aggregate_coverage:type_name -> google.devtools.resultstore.v2.AggregateCoverage 13, // 9: google.devtools.resultstore.v2.Invocation.file_processing_errors:type_name -> google.devtools.resultstore.v2.FileProcessingErrors 1, // 10: google.devtools.resultstore.v2.WorkspaceInfo.workspace_context:type_name -> google.devtools.resultstore.v2.WorkspaceContext 3, // 11: google.devtools.resultstore.v2.WorkspaceInfo.command_lines:type_name -> google.devtools.resultstore.v2.CommandLine 5, // 12: google.devtools.resultstore.v2.InvocationAttributes.invocation_contexts:type_name -> google.devtools.resultstore.v2.InvocationContext 13, // [13:13] is the sub-list for method output_type 13, // [13:13] is the sub-list for method input_type 13, // [13:13] is the sub-list for extension type_name 13, // [13:13] is the sub-list for extension extendee 0, // [0:13] is the sub-list for field type_name } func init() { file_google_devtools_resultstore_v2_invocation_proto_init() } func file_google_devtools_resultstore_v2_invocation_proto_init() { if File_google_devtools_resultstore_v2_invocation_proto != nil { return } file_google_devtools_resultstore_v2_common_proto_init() file_google_devtools_resultstore_v2_coverage_proto_init() file_google_devtools_resultstore_v2_coverage_summary_proto_init() file_google_devtools_resultstore_v2_file_proto_init() file_google_devtools_resultstore_v2_file_processing_error_proto_init() if !protoimpl.UnsafeEnabled { file_google_devtools_resultstore_v2_invocation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Invocation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_invocation_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceContext); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_invocation_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_invocation_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommandLine); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_invocation_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InvocationAttributes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_invocation_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InvocationContext); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_invocation_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Invocation_Id); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_devtools_resultstore_v2_invocation_proto_rawDesc, NumEnums: 0, NumMessages: 7, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_devtools_resultstore_v2_invocation_proto_goTypes, DependencyIndexes: file_google_devtools_resultstore_v2_invocation_proto_depIdxs, MessageInfos: file_google_devtools_resultstore_v2_invocation_proto_msgTypes, }.Build() File_google_devtools_resultstore_v2_invocation_proto = out.File file_google_devtools_resultstore_v2_invocation_proto_rawDesc = nil file_google_devtools_resultstore_v2_invocation_proto_goTypes = nil file_google_devtools_resultstore_v2_invocation_proto_depIdxs = nil }