blob: 12e71ff0af2ae5d6fc7b2ff2bec9e0569d57788e [file] [log] [blame]
// Copyright 2019 The LUCI Authors.
//
// 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.25.0-devel
// protoc v3.12.1
// source: go.chromium.org/luci/resultdb/proto/v1/recorder.proto
package resultpb
import prpc "go.chromium.org/luci/grpc/prpc"
import (
context "context"
_ "google.golang.org/genproto/googleapis/api/annotations"
field_mask "google.golang.org/genproto/protobuf/field_mask"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
emptypb "google.golang.org/protobuf/types/known/emptypb"
reflect "reflect"
sync "sync"
)
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)
)
// A request message for CreateInvocation.
type CreateInvocationRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Invocation identifier, becomes a part of the invocation.name.
// LUCI systems MAY create invocations with nicely formatted IDs, such as
// "build-1234567890". All other clients MUST use GUIDs.
//
// Regex: ^[a-z][a-z0-9_\-]*$.
InvocationId string `protobuf:"bytes,1,opt,name=invocation_id,json=invocationId,proto3" json:"invocation_id,omitempty"`
// Invocation data to insert.
Invocation *Invocation `protobuf:"bytes,2,opt,name=invocation,proto3" json:"invocation,omitempty"`
// A unique identifier for this request. Restricted to 36 ASCII characters.
// A random UUID is recommended.
// This request is only idempotent if a `request_id` is provided.
RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *CreateInvocationRequest) Reset() {
*x = CreateInvocationRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateInvocationRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateInvocationRequest) ProtoMessage() {}
func (x *CreateInvocationRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_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 CreateInvocationRequest.ProtoReflect.Descriptor instead.
func (*CreateInvocationRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{0}
}
func (x *CreateInvocationRequest) GetInvocationId() string {
if x != nil {
return x.InvocationId
}
return ""
}
func (x *CreateInvocationRequest) GetInvocation() *Invocation {
if x != nil {
return x.Invocation
}
return nil
}
func (x *CreateInvocationRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// A request message for BatchCreateInvocations
type BatchCreateInvocationsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// requests[i].request_id MUST be either empty or equal to request_id in
// this message.
//
// Up to 500 requests.
Requests []*CreateInvocationRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
// A unique identifier for this request. Restricted to 36 ASCII characters.
// A random UUID is recommended.
// This request is only idempotent if a `request_id` is provided, so it is
// strongly recommended to populate this field.
RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *BatchCreateInvocationsRequest) Reset() {
*x = BatchCreateInvocationsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchCreateInvocationsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchCreateInvocationsRequest) ProtoMessage() {}
func (x *BatchCreateInvocationsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_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 BatchCreateInvocationsRequest.ProtoReflect.Descriptor instead.
func (*BatchCreateInvocationsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{1}
}
func (x *BatchCreateInvocationsRequest) GetRequests() []*CreateInvocationRequest {
if x != nil {
return x.Requests
}
return nil
}
func (x *BatchCreateInvocationsRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// A response message for BatchCreateInvocations RPC.
type BatchCreateInvocationsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Invocations created.
Invocations []*Invocation `protobuf:"bytes,1,rep,name=invocations,proto3" json:"invocations,omitempty"`
// One token per each created invocation.
// These are passed in the response instead of as metadata, because large
// batches increase the size of the response headers beyond allowed limits and
// cause failures like crbug.com/1064496
// update_tokens[i] corresponds to invocations[i].
// *Do not log these values*.
UpdateTokens []string `protobuf:"bytes,2,rep,name=update_tokens,json=updateTokens,proto3" json:"update_tokens,omitempty"`
}
func (x *BatchCreateInvocationsResponse) Reset() {
*x = BatchCreateInvocationsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchCreateInvocationsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchCreateInvocationsResponse) ProtoMessage() {}
func (x *BatchCreateInvocationsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_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 BatchCreateInvocationsResponse.ProtoReflect.Descriptor instead.
func (*BatchCreateInvocationsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{2}
}
func (x *BatchCreateInvocationsResponse) GetInvocations() []*Invocation {
if x != nil {
return x.Invocations
}
return nil
}
func (x *BatchCreateInvocationsResponse) GetUpdateTokens() []string {
if x != nil {
return x.UpdateTokens
}
return nil
}
// A request message for UpdateInvocation RPC.
type UpdateInvocationRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Invocation to update.
Invocation *Invocation `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"`
// The list of fields to be updated.
UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
}
func (x *UpdateInvocationRequest) Reset() {
*x = UpdateInvocationRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateInvocationRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateInvocationRequest) ProtoMessage() {}
func (x *UpdateInvocationRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_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 UpdateInvocationRequest.ProtoReflect.Descriptor instead.
func (*UpdateInvocationRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{3}
}
func (x *UpdateInvocationRequest) GetInvocation() *Invocation {
if x != nil {
return x.Invocation
}
return nil
}
func (x *UpdateInvocationRequest) GetUpdateMask() *field_mask.FieldMask {
if x != nil {
return x.UpdateMask
}
return nil
}
// A request message for FinalizeInvocation RPC.
type FinalizeInvocationRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the invocation to finalize.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *FinalizeInvocationRequest) Reset() {
*x = FinalizeInvocationRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FinalizeInvocationRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FinalizeInvocationRequest) ProtoMessage() {}
func (x *FinalizeInvocationRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_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 FinalizeInvocationRequest.ProtoReflect.Descriptor instead.
func (*FinalizeInvocationRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{4}
}
func (x *FinalizeInvocationRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// A request message for UpdateIncludedInvocations RPC.
type UpdateIncludedInvocationsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the invocation to add/remove inclusions to/from,
// see Invocation.name.
// For example, name of the buildbucket build invocation that should include
// a swarming task invocation.
IncludingInvocation string `protobuf:"bytes,1,opt,name=including_invocation,json=includingInvocation,proto3" json:"including_invocation,omitempty"`
// Names of the invocations to include, see Invocation.name.
// If any of these invocations are already included, they will be silently
// ignored for idempotency.
AddInvocations []string `protobuf:"bytes,2,rep,name=add_invocations,json=addInvocations,proto3" json:"add_invocations,omitempty"`
// Names of the previously included invocations to remove, see
// Invocation.name.
// If any of these invocations are not included already, they will be silently
// ignored for idempotency.
RemoveInvocations []string `protobuf:"bytes,3,rep,name=remove_invocations,json=removeInvocations,proto3" json:"remove_invocations,omitempty"`
}
func (x *UpdateIncludedInvocationsRequest) Reset() {
*x = UpdateIncludedInvocationsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateIncludedInvocationsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateIncludedInvocationsRequest) ProtoMessage() {}
func (x *UpdateIncludedInvocationsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_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 UpdateIncludedInvocationsRequest.ProtoReflect.Descriptor instead.
func (*UpdateIncludedInvocationsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{5}
}
func (x *UpdateIncludedInvocationsRequest) GetIncludingInvocation() string {
if x != nil {
return x.IncludingInvocation
}
return ""
}
func (x *UpdateIncludedInvocationsRequest) GetAddInvocations() []string {
if x != nil {
return x.AddInvocations
}
return nil
}
func (x *UpdateIncludedInvocationsRequest) GetRemoveInvocations() []string {
if x != nil {
return x.RemoveInvocations
}
return nil
}
// A request message for CreateTestResult RPC.
type CreateTestResultRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the parent invocation, see Invocation.name.
Invocation string `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"`
// The test result to create.
// Test id and result id are used to dedupe requests, i.e.
// if a test result with the same test id and result id already exists in
// the invocation, then the requests succeeds as opposed to returns with
// ALREADY_EXISTS error.
TestResult *TestResult `protobuf:"bytes,2,opt,name=test_result,json=testResult,proto3" json:"test_result,omitempty"`
// A unique identifier for this request. Restricted to 36 ASCII characters.
// A random UUID is recommended.
// This request is only idempotent if a `request_id` is provided, so it is
// strongly recommended to populate this field.
//
// Impl note: this field is used to compute the spanner-level result id, which
// will encode tuple (request_id, index_of_request)", where
// - request_id is a random GUID if not provided by the user
// - index_of_request is 0 in CreateTestResult RPC, or index of the request
// in BatchCreateTestResultsRequest in the batch RPC.
// TODO(jchinlee): remove this impl note when it is converted into code.
RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *CreateTestResultRequest) Reset() {
*x = CreateTestResultRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateTestResultRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateTestResultRequest) ProtoMessage() {}
func (x *CreateTestResultRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_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 CreateTestResultRequest.ProtoReflect.Descriptor instead.
func (*CreateTestResultRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{6}
}
func (x *CreateTestResultRequest) GetInvocation() string {
if x != nil {
return x.Invocation
}
return ""
}
func (x *CreateTestResultRequest) GetTestResult() *TestResult {
if x != nil {
return x.TestResult
}
return nil
}
func (x *CreateTestResultRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// A request message for BatchCreateTestResults RPC.
type BatchCreateTestResultsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the parent invocation, see Invocation.name.
Invocation string `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"`
// Requests to create test results.
// requests[i].invocation MUST be either empty or equal to invocation in this
// message.
// requests[i].request_id MUST be either empty or equal to request_id in
// this message.
//
// Up to 500 requests.
Requests []*CreateTestResultRequest `protobuf:"bytes,2,rep,name=requests,proto3" json:"requests,omitempty"`
// A unique identifier for this request. Restricted to 36 ASCII characters.
// A random UUID is recommended.
// This request is only idempotent if a `request_id` is provided, so it is
// strongly recommended to populate this field.
//
RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *BatchCreateTestResultsRequest) Reset() {
*x = BatchCreateTestResultsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchCreateTestResultsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchCreateTestResultsRequest) ProtoMessage() {}
func (x *BatchCreateTestResultsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[7]
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 BatchCreateTestResultsRequest.ProtoReflect.Descriptor instead.
func (*BatchCreateTestResultsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{7}
}
func (x *BatchCreateTestResultsRequest) GetInvocation() string {
if x != nil {
return x.Invocation
}
return ""
}
func (x *BatchCreateTestResultsRequest) GetRequests() []*CreateTestResultRequest {
if x != nil {
return x.Requests
}
return nil
}
func (x *BatchCreateTestResultsRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// A response message for BatchCreateTestResults RPC.
type BatchCreateTestResultsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Test results created.
TestResults []*TestResult `protobuf:"bytes,1,rep,name=test_results,json=testResults,proto3" json:"test_results,omitempty"`
}
func (x *BatchCreateTestResultsResponse) Reset() {
*x = BatchCreateTestResultsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchCreateTestResultsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchCreateTestResultsResponse) ProtoMessage() {}
func (x *BatchCreateTestResultsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[8]
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 BatchCreateTestResultsResponse.ProtoReflect.Descriptor instead.
func (*BatchCreateTestResultsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{8}
}
func (x *BatchCreateTestResultsResponse) GetTestResults() []*TestResult {
if x != nil {
return x.TestResults
}
return nil
}
// A request message for CreateTestExoneration RPC.
type CreateTestExonerationRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the parent invocation, see Invocation.name.
Invocation string `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"`
// The TestExoneration to create.
TestExoneration *TestExoneration `protobuf:"bytes,2,opt,name=test_exoneration,json=testExoneration,proto3" json:"test_exoneration,omitempty"`
// A unique identifier for this request. Restricted to 36 ASCII characters.
// A random UUID is recommended.
// This request is only idempotent if a `request_id` is provided.
RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *CreateTestExonerationRequest) Reset() {
*x = CreateTestExonerationRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateTestExonerationRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateTestExonerationRequest) ProtoMessage() {}
func (x *CreateTestExonerationRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[9]
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 CreateTestExonerationRequest.ProtoReflect.Descriptor instead.
func (*CreateTestExonerationRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{9}
}
func (x *CreateTestExonerationRequest) GetInvocation() string {
if x != nil {
return x.Invocation
}
return ""
}
func (x *CreateTestExonerationRequest) GetTestExoneration() *TestExoneration {
if x != nil {
return x.TestExoneration
}
return nil
}
func (x *CreateTestExonerationRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// A request message for BatchCreateTestExonerations RPC.
type BatchCreateTestExonerationsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the parent invocation, see Invocation.name.
Invocation string `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"`
// Requests to create TestExonerations.
// requests[i].invocation MUST be either empty or equal to invocation in this
// message.
// requests[i].request_id MUST be either empty or equal to request_id in
// this message.
//
// Up to 500 requests.
Requests []*CreateTestExonerationRequest `protobuf:"bytes,2,rep,name=requests,proto3" json:"requests,omitempty"`
// A unique identifier for this request. Restricted to 36 ASCII characters.
// A random UUID is recommended.
// This request is only idempotent if a `request_id` is provided, so it is
// strongly recommended to populate this field.
RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *BatchCreateTestExonerationsRequest) Reset() {
*x = BatchCreateTestExonerationsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchCreateTestExonerationsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchCreateTestExonerationsRequest) ProtoMessage() {}
func (x *BatchCreateTestExonerationsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[10]
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 BatchCreateTestExonerationsRequest.ProtoReflect.Descriptor instead.
func (*BatchCreateTestExonerationsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{10}
}
func (x *BatchCreateTestExonerationsRequest) GetInvocation() string {
if x != nil {
return x.Invocation
}
return ""
}
func (x *BatchCreateTestExonerationsRequest) GetRequests() []*CreateTestExonerationRequest {
if x != nil {
return x.Requests
}
return nil
}
func (x *BatchCreateTestExonerationsRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// A response message for BatchCreateTestExonerations RPC.
type BatchCreateTestExonerationsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Test exonerations created.
TestExonerations []*TestExoneration `protobuf:"bytes,1,rep,name=test_exonerations,json=testExonerations,proto3" json:"test_exonerations,omitempty"`
}
func (x *BatchCreateTestExonerationsResponse) Reset() {
*x = BatchCreateTestExonerationsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchCreateTestExonerationsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchCreateTestExonerationsResponse) ProtoMessage() {}
func (x *BatchCreateTestExonerationsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[11]
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 BatchCreateTestExonerationsResponse.ProtoReflect.Descriptor instead.
func (*BatchCreateTestExonerationsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{11}
}
func (x *BatchCreateTestExonerationsResponse) GetTestExonerations() []*TestExoneration {
if x != nil {
return x.TestExonerations
}
return nil
}
// A request message for CreateArtifactRequest.
type CreateArtifactRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the parent resource where the artifact will be created.
//
// For invocation-level artifacts, it is the invocation name.
// For test-result-level artifacts, it is the TestResult name.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Artifact to upload.
// The length of the artifact contents MUST be <= 512KiB.
// artifact.artifact_id MUST be set.
// artifact.name will be ignored.
Artifact *Artifact `protobuf:"bytes,2,opt,name=artifact,proto3" json:"artifact,omitempty"`
}
func (x *CreateArtifactRequest) Reset() {
*x = CreateArtifactRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateArtifactRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateArtifactRequest) ProtoMessage() {}
func (x *CreateArtifactRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[12]
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 CreateArtifactRequest.ProtoReflect.Descriptor instead.
func (*CreateArtifactRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{12}
}
func (x *CreateArtifactRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *CreateArtifactRequest) GetArtifact() *Artifact {
if x != nil {
return x.Artifact
}
return nil
}
// A request message for BatchCreateArtifactsRequest.
type BatchCreateArtifactsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Requests to create Artifacts.
// The sum of the content lengths MUST be <= 10MiB.
// requests[i].invocation MUST be equal to invocation in this message.
// requests[i].request_id MUST be either empty or equal to request_id
// in this message.
Requests []*CreateArtifactRequest `protobuf:"bytes,2,rep,name=requests,proto3" json:"requests,omitempty"`
}
func (x *BatchCreateArtifactsRequest) Reset() {
*x = BatchCreateArtifactsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchCreateArtifactsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchCreateArtifactsRequest) ProtoMessage() {}
func (x *BatchCreateArtifactsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[13]
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 BatchCreateArtifactsRequest.ProtoReflect.Descriptor instead.
func (*BatchCreateArtifactsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{13}
}
func (x *BatchCreateArtifactsRequest) GetRequests() []*CreateArtifactRequest {
if x != nil {
return x.Requests
}
return nil
}
type BatchCreateArtifactsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Artifacts created.
Artifacts []*Artifact `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"`
}
func (x *BatchCreateArtifactsResponse) Reset() {
*x = BatchCreateArtifactsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchCreateArtifactsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchCreateArtifactsResponse) ProtoMessage() {}
func (x *BatchCreateArtifactsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[14]
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 BatchCreateArtifactsResponse.ProtoReflect.Descriptor instead.
func (*BatchCreateArtifactsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP(), []int{14}
}
func (x *BatchCreateArtifactsResponse) GetArtifacts() []*Artifact {
if x != nil {
return x.Artifacts
}
return nil
}
var File_go_chromium_org_luci_resultdb_proto_v1_recorder_proto protoreflect.FileDescriptor
var file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDesc = []byte{
0x0a, 0x35, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65,
0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 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, 0x1b, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74,
0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d,
0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x2e, 0x63, 0x68,
0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f,
0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76,
0x31, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x37, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x67, 0x6f, 0x2e, 0x63, 0x68,
0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f,
0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76,
0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0xa0, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e,
0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x28, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x69, 0x6e, 0x76,
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0a, 0x69, 0x6e, 0x76,
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31,
0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x6e, 0x76,
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x85, 0x01, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x75, 0x63,
0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72,
0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12,
0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x85,
0x01, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e,
0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65,
0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61,
0x73, 0x6b, 0x22, 0x34, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x6e,
0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x6f, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a,
0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x6e, 0x76,
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e,
0x61, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d,
0x0a, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f,
0x76, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa1, 0x01,
0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x76,
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42,
0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c,
0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c,
0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49,
0x64, 0x22, 0xaa, 0x01, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e,
0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x75, 0x63,
0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72,
0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12,
0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x61,
0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73,
0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x73, 0x22, 0xb5, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74,
0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x76,
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x10, 0x74, 0x65, 0x73, 0x74, 0x5f,
0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64,
0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x45,
0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x22, 0x42, 0x61,
0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f,
0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64,
0x22, 0x75, 0x0a, 0x23, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x5f,
0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x71, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a,
0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e,
0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x22, 0x62, 0x0a, 0x1b, 0x42, 0x61,
0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x75,
0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x58,
0x0a, 0x1c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74,
0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38,
0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64,
0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61,
0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x32, 0xe9, 0x08, 0x0a, 0x08, 0x52, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49,
0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x6c, 0x75, 0x63, 0x69,
0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65,
0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75,
0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65,
0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f,
0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76,
0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76,
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x30, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e,
0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e,
0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76,
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x22, 0x00, 0x12, 0x61, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x6e,
0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e,
0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x61,
0x6c, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73,
0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49,
0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x12, 0x32, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x63, 0x6c,
0x75, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00,
0x12, 0x5d, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x12, 0x29, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75,
0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65,
0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e,
0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12,
0x7d, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65,
0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x6c, 0x75, 0x63, 0x69,
0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74,
0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x75, 0x63,
0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61,
0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73,
0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c,
0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e,
0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45,
0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x8c, 0x01, 0x0a,
0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74,
0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x2e, 0x6c,
0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e,
0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x45,
0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x14, 0x42,
0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61,
0x63, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c,
0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61,
0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x22, 0x00, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73,
0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x3b, 0x72,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescOnce sync.Once
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescData = file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDesc
)
func file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescGZIP() []byte {
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescOnce.Do(func() {
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescData)
})
return file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDescData
}
var file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_goTypes = []interface{}{
(*CreateInvocationRequest)(nil), // 0: luci.resultdb.v1.CreateInvocationRequest
(*BatchCreateInvocationsRequest)(nil), // 1: luci.resultdb.v1.BatchCreateInvocationsRequest
(*BatchCreateInvocationsResponse)(nil), // 2: luci.resultdb.v1.BatchCreateInvocationsResponse
(*UpdateInvocationRequest)(nil), // 3: luci.resultdb.v1.UpdateInvocationRequest
(*FinalizeInvocationRequest)(nil), // 4: luci.resultdb.v1.FinalizeInvocationRequest
(*UpdateIncludedInvocationsRequest)(nil), // 5: luci.resultdb.v1.UpdateIncludedInvocationsRequest
(*CreateTestResultRequest)(nil), // 6: luci.resultdb.v1.CreateTestResultRequest
(*BatchCreateTestResultsRequest)(nil), // 7: luci.resultdb.v1.BatchCreateTestResultsRequest
(*BatchCreateTestResultsResponse)(nil), // 8: luci.resultdb.v1.BatchCreateTestResultsResponse
(*CreateTestExonerationRequest)(nil), // 9: luci.resultdb.v1.CreateTestExonerationRequest
(*BatchCreateTestExonerationsRequest)(nil), // 10: luci.resultdb.v1.BatchCreateTestExonerationsRequest
(*BatchCreateTestExonerationsResponse)(nil), // 11: luci.resultdb.v1.BatchCreateTestExonerationsResponse
(*CreateArtifactRequest)(nil), // 12: luci.resultdb.v1.CreateArtifactRequest
(*BatchCreateArtifactsRequest)(nil), // 13: luci.resultdb.v1.BatchCreateArtifactsRequest
(*BatchCreateArtifactsResponse)(nil), // 14: luci.resultdb.v1.BatchCreateArtifactsResponse
(*Invocation)(nil), // 15: luci.resultdb.v1.Invocation
(*field_mask.FieldMask)(nil), // 16: google.protobuf.FieldMask
(*TestResult)(nil), // 17: luci.resultdb.v1.TestResult
(*TestExoneration)(nil), // 18: luci.resultdb.v1.TestExoneration
(*Artifact)(nil), // 19: luci.resultdb.v1.Artifact
(*emptypb.Empty)(nil), // 20: google.protobuf.Empty
}
var file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_depIdxs = []int32{
15, // 0: luci.resultdb.v1.CreateInvocationRequest.invocation:type_name -> luci.resultdb.v1.Invocation
0, // 1: luci.resultdb.v1.BatchCreateInvocationsRequest.requests:type_name -> luci.resultdb.v1.CreateInvocationRequest
15, // 2: luci.resultdb.v1.BatchCreateInvocationsResponse.invocations:type_name -> luci.resultdb.v1.Invocation
15, // 3: luci.resultdb.v1.UpdateInvocationRequest.invocation:type_name -> luci.resultdb.v1.Invocation
16, // 4: luci.resultdb.v1.UpdateInvocationRequest.update_mask:type_name -> google.protobuf.FieldMask
17, // 5: luci.resultdb.v1.CreateTestResultRequest.test_result:type_name -> luci.resultdb.v1.TestResult
6, // 6: luci.resultdb.v1.BatchCreateTestResultsRequest.requests:type_name -> luci.resultdb.v1.CreateTestResultRequest
17, // 7: luci.resultdb.v1.BatchCreateTestResultsResponse.test_results:type_name -> luci.resultdb.v1.TestResult
18, // 8: luci.resultdb.v1.CreateTestExonerationRequest.test_exoneration:type_name -> luci.resultdb.v1.TestExoneration
9, // 9: luci.resultdb.v1.BatchCreateTestExonerationsRequest.requests:type_name -> luci.resultdb.v1.CreateTestExonerationRequest
18, // 10: luci.resultdb.v1.BatchCreateTestExonerationsResponse.test_exonerations:type_name -> luci.resultdb.v1.TestExoneration
19, // 11: luci.resultdb.v1.CreateArtifactRequest.artifact:type_name -> luci.resultdb.v1.Artifact
12, // 12: luci.resultdb.v1.BatchCreateArtifactsRequest.requests:type_name -> luci.resultdb.v1.CreateArtifactRequest
19, // 13: luci.resultdb.v1.BatchCreateArtifactsResponse.artifacts:type_name -> luci.resultdb.v1.Artifact
0, // 14: luci.resultdb.v1.Recorder.CreateInvocation:input_type -> luci.resultdb.v1.CreateInvocationRequest
1, // 15: luci.resultdb.v1.Recorder.BatchCreateInvocations:input_type -> luci.resultdb.v1.BatchCreateInvocationsRequest
3, // 16: luci.resultdb.v1.Recorder.UpdateInvocation:input_type -> luci.resultdb.v1.UpdateInvocationRequest
4, // 17: luci.resultdb.v1.Recorder.FinalizeInvocation:input_type -> luci.resultdb.v1.FinalizeInvocationRequest
5, // 18: luci.resultdb.v1.Recorder.UpdateIncludedInvocations:input_type -> luci.resultdb.v1.UpdateIncludedInvocationsRequest
6, // 19: luci.resultdb.v1.Recorder.CreateTestResult:input_type -> luci.resultdb.v1.CreateTestResultRequest
7, // 20: luci.resultdb.v1.Recorder.BatchCreateTestResults:input_type -> luci.resultdb.v1.BatchCreateTestResultsRequest
9, // 21: luci.resultdb.v1.Recorder.CreateTestExoneration:input_type -> luci.resultdb.v1.CreateTestExonerationRequest
10, // 22: luci.resultdb.v1.Recorder.BatchCreateTestExonerations:input_type -> luci.resultdb.v1.BatchCreateTestExonerationsRequest
13, // 23: luci.resultdb.v1.Recorder.BatchCreateArtifacts:input_type -> luci.resultdb.v1.BatchCreateArtifactsRequest
15, // 24: luci.resultdb.v1.Recorder.CreateInvocation:output_type -> luci.resultdb.v1.Invocation
2, // 25: luci.resultdb.v1.Recorder.BatchCreateInvocations:output_type -> luci.resultdb.v1.BatchCreateInvocationsResponse
15, // 26: luci.resultdb.v1.Recorder.UpdateInvocation:output_type -> luci.resultdb.v1.Invocation
15, // 27: luci.resultdb.v1.Recorder.FinalizeInvocation:output_type -> luci.resultdb.v1.Invocation
20, // 28: luci.resultdb.v1.Recorder.UpdateIncludedInvocations:output_type -> google.protobuf.Empty
17, // 29: luci.resultdb.v1.Recorder.CreateTestResult:output_type -> luci.resultdb.v1.TestResult
8, // 30: luci.resultdb.v1.Recorder.BatchCreateTestResults:output_type -> luci.resultdb.v1.BatchCreateTestResultsResponse
18, // 31: luci.resultdb.v1.Recorder.CreateTestExoneration:output_type -> luci.resultdb.v1.TestExoneration
11, // 32: luci.resultdb.v1.Recorder.BatchCreateTestExonerations:output_type -> luci.resultdb.v1.BatchCreateTestExonerationsResponse
14, // 33: luci.resultdb.v1.Recorder.BatchCreateArtifacts:output_type -> luci.resultdb.v1.BatchCreateArtifactsResponse
24, // [24:34] is the sub-list for method output_type
14, // [14:24] is the sub-list for method input_type
14, // [14:14] is the sub-list for extension type_name
14, // [14:14] is the sub-list for extension extendee
0, // [0:14] is the sub-list for field type_name
}
func init() { file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_init() }
func file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_init() {
if File_go_chromium_org_luci_resultdb_proto_v1_recorder_proto != nil {
return
}
file_go_chromium_org_luci_resultdb_proto_v1_artifact_proto_init()
file_go_chromium_org_luci_resultdb_proto_v1_invocation_proto_init()
file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_init()
if !protoimpl.UnsafeEnabled {
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateInvocationRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchCreateInvocationsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchCreateInvocationsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateInvocationRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FinalizeInvocationRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateIncludedInvocationsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateTestResultRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchCreateTestResultsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchCreateTestResultsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateTestExonerationRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchCreateTestExonerationsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchCreateTestExonerationsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateArtifactRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchCreateArtifactsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchCreateArtifactsResponse); 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_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDesc,
NumEnums: 0,
NumMessages: 15,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_goTypes,
DependencyIndexes: file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_depIdxs,
MessageInfos: file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_msgTypes,
}.Build()
File_go_chromium_org_luci_resultdb_proto_v1_recorder_proto = out.File
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_rawDesc = nil
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_goTypes = nil
file_go_chromium_org_luci_resultdb_proto_v1_recorder_proto_depIdxs = nil
}
// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6
// RecorderClient is the client API for Recorder service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type RecorderClient interface {
// Creates a new invocation.
// The request specifies the invocation id and its contents.
//
// The response header metadata contains "update-token" required for future
// updates, including finalization.
//
// If invocation with the given ID already exists, returns ALREADY_EXISTS
// error code.
CreateInvocation(ctx context.Context, in *CreateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error)
// Creates multiple invocations in a single rpc.
//
// The response header metadata contains a multi-valued "update-token"
// required for future updates, including finalization. The tokens will be
// given in the same order as BatchCreateInvocationRequest.requests.
BatchCreateInvocations(ctx context.Context, in *BatchCreateInvocationsRequest, opts ...grpc.CallOption) (*BatchCreateInvocationsResponse, error)
// Updates an existing non-finalized invocation.
UpdateInvocation(ctx context.Context, in *UpdateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error)
// Transitions the given invocation to the state FINALIZED.
FinalizeInvocation(ctx context.Context, in *FinalizeInvocationRequest, opts ...grpc.CallOption) (*Invocation, error)
// Updates inclusions for a non-finalized invocation.
UpdateIncludedInvocations(ctx context.Context, in *UpdateIncludedInvocationsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Appends a test result to a non-finalized invocation.
CreateTestResult(ctx context.Context, in *CreateTestResultRequest, opts ...grpc.CallOption) (*TestResult, error)
// Atomically appends a batch of test results to a non-finalized invocation.
BatchCreateTestResults(ctx context.Context, in *BatchCreateTestResultsRequest, opts ...grpc.CallOption) (*BatchCreateTestResultsResponse, error)
// Appends a test exoneration to a non-finalized invocation.
CreateTestExoneration(ctx context.Context, in *CreateTestExonerationRequest, opts ...grpc.CallOption) (*TestExoneration, error)
// Atomically appends a batch of test exonerations to a non-finalized
// invocation.
BatchCreateTestExonerations(ctx context.Context, in *BatchCreateTestExonerationsRequest, opts ...grpc.CallOption) (*BatchCreateTestExonerationsResponse, error)
// Create multiple artifacts.
//
// An artifact can be either invocation-level or test-result-level.
// See Artifact.name for more info.
BatchCreateArtifacts(ctx context.Context, in *BatchCreateArtifactsRequest, opts ...grpc.CallOption) (*BatchCreateArtifactsResponse, error)
}
type recorderPRPCClient struct {
client *prpc.Client
}
func NewRecorderPRPCClient(client *prpc.Client) RecorderClient {
return &recorderPRPCClient{client}
}
func (c *recorderPRPCClient) CreateInvocation(ctx context.Context, in *CreateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) {
out := new(Invocation)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "CreateInvocation", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderPRPCClient) BatchCreateInvocations(ctx context.Context, in *BatchCreateInvocationsRequest, opts ...grpc.CallOption) (*BatchCreateInvocationsResponse, error) {
out := new(BatchCreateInvocationsResponse)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "BatchCreateInvocations", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderPRPCClient) UpdateInvocation(ctx context.Context, in *UpdateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) {
out := new(Invocation)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "UpdateInvocation", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderPRPCClient) FinalizeInvocation(ctx context.Context, in *FinalizeInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) {
out := new(Invocation)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "FinalizeInvocation", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderPRPCClient) UpdateIncludedInvocations(ctx context.Context, in *UpdateIncludedInvocationsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "UpdateIncludedInvocations", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderPRPCClient) CreateTestResult(ctx context.Context, in *CreateTestResultRequest, opts ...grpc.CallOption) (*TestResult, error) {
out := new(TestResult)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "CreateTestResult", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderPRPCClient) BatchCreateTestResults(ctx context.Context, in *BatchCreateTestResultsRequest, opts ...grpc.CallOption) (*BatchCreateTestResultsResponse, error) {
out := new(BatchCreateTestResultsResponse)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "BatchCreateTestResults", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderPRPCClient) CreateTestExoneration(ctx context.Context, in *CreateTestExonerationRequest, opts ...grpc.CallOption) (*TestExoneration, error) {
out := new(TestExoneration)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "CreateTestExoneration", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderPRPCClient) BatchCreateTestExonerations(ctx context.Context, in *BatchCreateTestExonerationsRequest, opts ...grpc.CallOption) (*BatchCreateTestExonerationsResponse, error) {
out := new(BatchCreateTestExonerationsResponse)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "BatchCreateTestExonerations", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderPRPCClient) BatchCreateArtifacts(ctx context.Context, in *BatchCreateArtifactsRequest, opts ...grpc.CallOption) (*BatchCreateArtifactsResponse, error) {
out := new(BatchCreateArtifactsResponse)
err := c.client.Call(ctx, "luci.resultdb.v1.Recorder", "BatchCreateArtifacts", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
type recorderClient struct {
cc grpc.ClientConnInterface
}
func NewRecorderClient(cc grpc.ClientConnInterface) RecorderClient {
return &recorderClient{cc}
}
func (c *recorderClient) CreateInvocation(ctx context.Context, in *CreateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) {
out := new(Invocation)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/CreateInvocation", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderClient) BatchCreateInvocations(ctx context.Context, in *BatchCreateInvocationsRequest, opts ...grpc.CallOption) (*BatchCreateInvocationsResponse, error) {
out := new(BatchCreateInvocationsResponse)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/BatchCreateInvocations", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderClient) UpdateInvocation(ctx context.Context, in *UpdateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) {
out := new(Invocation)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/UpdateInvocation", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderClient) FinalizeInvocation(ctx context.Context, in *FinalizeInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) {
out := new(Invocation)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/FinalizeInvocation", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderClient) UpdateIncludedInvocations(ctx context.Context, in *UpdateIncludedInvocationsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/UpdateIncludedInvocations", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderClient) CreateTestResult(ctx context.Context, in *CreateTestResultRequest, opts ...grpc.CallOption) (*TestResult, error) {
out := new(TestResult)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/CreateTestResult", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderClient) BatchCreateTestResults(ctx context.Context, in *BatchCreateTestResultsRequest, opts ...grpc.CallOption) (*BatchCreateTestResultsResponse, error) {
out := new(BatchCreateTestResultsResponse)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/BatchCreateTestResults", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderClient) CreateTestExoneration(ctx context.Context, in *CreateTestExonerationRequest, opts ...grpc.CallOption) (*TestExoneration, error) {
out := new(TestExoneration)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/CreateTestExoneration", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderClient) BatchCreateTestExonerations(ctx context.Context, in *BatchCreateTestExonerationsRequest, opts ...grpc.CallOption) (*BatchCreateTestExonerationsResponse, error) {
out := new(BatchCreateTestExonerationsResponse)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/BatchCreateTestExonerations", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *recorderClient) BatchCreateArtifacts(ctx context.Context, in *BatchCreateArtifactsRequest, opts ...grpc.CallOption) (*BatchCreateArtifactsResponse, error) {
out := new(BatchCreateArtifactsResponse)
err := c.cc.Invoke(ctx, "/luci.resultdb.v1.Recorder/BatchCreateArtifacts", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// RecorderServer is the server API for Recorder service.
type RecorderServer interface {
// Creates a new invocation.
// The request specifies the invocation id and its contents.
//
// The response header metadata contains "update-token" required for future
// updates, including finalization.
//
// If invocation with the given ID already exists, returns ALREADY_EXISTS
// error code.
CreateInvocation(context.Context, *CreateInvocationRequest) (*Invocation, error)
// Creates multiple invocations in a single rpc.
//
// The response header metadata contains a multi-valued "update-token"
// required for future updates, including finalization. The tokens will be
// given in the same order as BatchCreateInvocationRequest.requests.
BatchCreateInvocations(context.Context, *BatchCreateInvocationsRequest) (*BatchCreateInvocationsResponse, error)
// Updates an existing non-finalized invocation.
UpdateInvocation(context.Context, *UpdateInvocationRequest) (*Invocation, error)
// Transitions the given invocation to the state FINALIZED.
FinalizeInvocation(context.Context, *FinalizeInvocationRequest) (*Invocation, error)
// Updates inclusions for a non-finalized invocation.
UpdateIncludedInvocations(context.Context, *UpdateIncludedInvocationsRequest) (*emptypb.Empty, error)
// Appends a test result to a non-finalized invocation.
CreateTestResult(context.Context, *CreateTestResultRequest) (*TestResult, error)
// Atomically appends a batch of test results to a non-finalized invocation.
BatchCreateTestResults(context.Context, *BatchCreateTestResultsRequest) (*BatchCreateTestResultsResponse, error)
// Appends a test exoneration to a non-finalized invocation.
CreateTestExoneration(context.Context, *CreateTestExonerationRequest) (*TestExoneration, error)
// Atomically appends a batch of test exonerations to a non-finalized
// invocation.
BatchCreateTestExonerations(context.Context, *BatchCreateTestExonerationsRequest) (*BatchCreateTestExonerationsResponse, error)
// Create multiple artifacts.
//
// An artifact can be either invocation-level or test-result-level.
// See Artifact.name for more info.
BatchCreateArtifacts(context.Context, *BatchCreateArtifactsRequest) (*BatchCreateArtifactsResponse, error)
}
// UnimplementedRecorderServer can be embedded to have forward compatible implementations.
type UnimplementedRecorderServer struct {
}
func (*UnimplementedRecorderServer) CreateInvocation(context.Context, *CreateInvocationRequest) (*Invocation, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateInvocation not implemented")
}
func (*UnimplementedRecorderServer) BatchCreateInvocations(context.Context, *BatchCreateInvocationsRequest) (*BatchCreateInvocationsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method BatchCreateInvocations not implemented")
}
func (*UnimplementedRecorderServer) UpdateInvocation(context.Context, *UpdateInvocationRequest) (*Invocation, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateInvocation not implemented")
}
func (*UnimplementedRecorderServer) FinalizeInvocation(context.Context, *FinalizeInvocationRequest) (*Invocation, error) {
return nil, status.Errorf(codes.Unimplemented, "method FinalizeInvocation not implemented")
}
func (*UnimplementedRecorderServer) UpdateIncludedInvocations(context.Context, *UpdateIncludedInvocationsRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateIncludedInvocations not implemented")
}
func (*UnimplementedRecorderServer) CreateTestResult(context.Context, *CreateTestResultRequest) (*TestResult, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateTestResult not implemented")
}
func (*UnimplementedRecorderServer) BatchCreateTestResults(context.Context, *BatchCreateTestResultsRequest) (*BatchCreateTestResultsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method BatchCreateTestResults not implemented")
}
func (*UnimplementedRecorderServer) CreateTestExoneration(context.Context, *CreateTestExonerationRequest) (*TestExoneration, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateTestExoneration not implemented")
}
func (*UnimplementedRecorderServer) BatchCreateTestExonerations(context.Context, *BatchCreateTestExonerationsRequest) (*BatchCreateTestExonerationsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method BatchCreateTestExonerations not implemented")
}
func (*UnimplementedRecorderServer) BatchCreateArtifacts(context.Context, *BatchCreateArtifactsRequest) (*BatchCreateArtifactsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method BatchCreateArtifacts not implemented")
}
func RegisterRecorderServer(s prpc.Registrar, srv RecorderServer) {
s.RegisterService(&_Recorder_serviceDesc, srv)
}
func _Recorder_CreateInvocation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateInvocationRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).CreateInvocation(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/CreateInvocation",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).CreateInvocation(ctx, req.(*CreateInvocationRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recorder_BatchCreateInvocations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(BatchCreateInvocationsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).BatchCreateInvocations(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/BatchCreateInvocations",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).BatchCreateInvocations(ctx, req.(*BatchCreateInvocationsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recorder_UpdateInvocation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateInvocationRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).UpdateInvocation(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/UpdateInvocation",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).UpdateInvocation(ctx, req.(*UpdateInvocationRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recorder_FinalizeInvocation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(FinalizeInvocationRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).FinalizeInvocation(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/FinalizeInvocation",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).FinalizeInvocation(ctx, req.(*FinalizeInvocationRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recorder_UpdateIncludedInvocations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateIncludedInvocationsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).UpdateIncludedInvocations(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/UpdateIncludedInvocations",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).UpdateIncludedInvocations(ctx, req.(*UpdateIncludedInvocationsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recorder_CreateTestResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateTestResultRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).CreateTestResult(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/CreateTestResult",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).CreateTestResult(ctx, req.(*CreateTestResultRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recorder_BatchCreateTestResults_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(BatchCreateTestResultsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).BatchCreateTestResults(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/BatchCreateTestResults",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).BatchCreateTestResults(ctx, req.(*BatchCreateTestResultsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recorder_CreateTestExoneration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateTestExonerationRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).CreateTestExoneration(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/CreateTestExoneration",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).CreateTestExoneration(ctx, req.(*CreateTestExonerationRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recorder_BatchCreateTestExonerations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(BatchCreateTestExonerationsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).BatchCreateTestExonerations(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/BatchCreateTestExonerations",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).BatchCreateTestExonerations(ctx, req.(*BatchCreateTestExonerationsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Recorder_BatchCreateArtifacts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(BatchCreateArtifactsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(RecorderServer).BatchCreateArtifacts(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.resultdb.v1.Recorder/BatchCreateArtifacts",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RecorderServer).BatchCreateArtifacts(ctx, req.(*BatchCreateArtifactsRequest))
}
return interceptor(ctx, in, info, handler)
}
var _Recorder_serviceDesc = grpc.ServiceDesc{
ServiceName: "luci.resultdb.v1.Recorder",
HandlerType: (*RecorderServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "CreateInvocation",
Handler: _Recorder_CreateInvocation_Handler,
},
{
MethodName: "BatchCreateInvocations",
Handler: _Recorder_BatchCreateInvocations_Handler,
},
{
MethodName: "UpdateInvocation",
Handler: _Recorder_UpdateInvocation_Handler,
},
{
MethodName: "FinalizeInvocation",
Handler: _Recorder_FinalizeInvocation_Handler,
},
{
MethodName: "UpdateIncludedInvocations",
Handler: _Recorder_UpdateIncludedInvocations_Handler,
},
{
MethodName: "CreateTestResult",
Handler: _Recorder_CreateTestResult_Handler,
},
{
MethodName: "BatchCreateTestResults",
Handler: _Recorder_BatchCreateTestResults_Handler,
},
{
MethodName: "CreateTestExoneration",
Handler: _Recorder_CreateTestExoneration_Handler,
},
{
MethodName: "BatchCreateTestExonerations",
Handler: _Recorder_BatchCreateTestExonerations_Handler,
},
{
MethodName: "BatchCreateArtifacts",
Handler: _Recorder_BatchCreateArtifacts_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "go.chromium.org/luci/resultdb/proto/v1/recorder.proto",
}