// 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/resultstore_upload.proto package resultstore import ( context "context" reflect "reflect" sync "sync" _ "google.golang.org/genproto/googleapis/api/annotations" 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" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) 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) ) // The operation for the request (e.g. Create(), Update(), etc.) type UploadRequest_UploadOperation int32 const ( // Unspecified UploadRequest_UPLOAD_OPERATION_UNSPECIFIED UploadRequest_UploadOperation = 0 // Create the given resources except Invocation. // For more information, check the Create APIs. UploadRequest_CREATE UploadRequest_UploadOperation = 1 // Applies a standard update to the resource identified by the given // proto's name. For more information, see the Update APIs. // UploadBatch does not support arbitrary field masks. The list of allowed // field masks can be found below. UploadRequest_UPDATE UploadRequest_UploadOperation = 2 // Applies an merge update to the resource identified by the given // proto's name. For more information, see the Merge APIs. // UploadBatch does not support arbitrary field masks. The list of allowed // field masks can be found below. UploadRequest_MERGE UploadRequest_UploadOperation = 3 // Declares the resource with the given name as finalized and immutable by // the uploader. Only supported for Invocation, Target, ConfiguredTarget. // There must be no operation on child resources after parent resource is // Finalized. If there is a Finalize of Invocation, it must be the final // UploadRequest. For more information, see the Finalize APIs. // An empty resource should be provided below. UploadRequest_FINALIZE UploadRequest_UploadOperation = 4 ) // Enum value maps for UploadRequest_UploadOperation. var ( UploadRequest_UploadOperation_name = map[int32]string{ 0: "UPLOAD_OPERATION_UNSPECIFIED", 1: "CREATE", 2: "UPDATE", 3: "MERGE", 4: "FINALIZE", } UploadRequest_UploadOperation_value = map[string]int32{ "UPLOAD_OPERATION_UNSPECIFIED": 0, "CREATE": 1, "UPDATE": 2, "MERGE": 3, "FINALIZE": 4, } ) func (x UploadRequest_UploadOperation) Enum() *UploadRequest_UploadOperation { p := new(UploadRequest_UploadOperation) *p = x return p } func (x UploadRequest_UploadOperation) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (UploadRequest_UploadOperation) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_resultstore_v2_resultstore_upload_proto_enumTypes[0].Descriptor() } func (UploadRequest_UploadOperation) Type() protoreflect.EnumType { return &file_google_devtools_resultstore_v2_resultstore_upload_proto_enumTypes[0] } func (x UploadRequest_UploadOperation) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use UploadRequest_UploadOperation.Descriptor instead. func (UploadRequest_UploadOperation) EnumDescriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{28, 0} } // Request passed into CreateInvocation type CreateInvocationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. If set, invocation_id must also be provided. // Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // The invocation ID. It is optional, but strongly recommended. // // If left empty then a new unique ID will be assigned by the server. If // populated, a RFC 4122-compliant v4 UUID is preferred, but v3 or v5 UUIDs // are allowed too. InvocationId string `protobuf:"bytes,2,opt,name=invocation_id,json=invocationId,proto3" json:"invocation_id,omitempty"` // Required. The invocation to create. Its name field will be ignored, since the name // will be derived from the id field above and assigned by the server. Invocation *Invocation `protobuf:"bytes,3,opt,name=invocation,proto3" json:"invocation,omitempty"` // This is a token to authorize upload access to this invocation. It must be // set to a RFC 4122-compliant v3, v4, or v5 UUID. Once this is set in // CreateInvocation, all other upload RPCs for that Invocation and any of its // child resources must also include the exact same token, or they will be // rejected. The generated token should be unique to this invocation, and it // should be kept secret. // // The purpose of this field is to prevent other users and tools from // clobbering your upload intentionally or accidentally. The standard way of // using this token is to create a second v4 UUID when the invocation_id is // created, and storing them together during the upload. Essentially, this is // a "password" to the invocation. AuthorizationToken string `protobuf:"bytes,4,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // By default, Invocations are auto-finalized if they are not modified for 24 // hours. If you need auto-finalize to happen sooner, set this field to the // time you'd like auto-finalize to occur. AutoFinalizeTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=auto_finalize_time,json=autoFinalizeTime,proto3" json:"auto_finalize_time,omitempty"` // Client provided unique token for batch upload to ensure data integrity and // to provide a way to resume batch upload in case of a distributed failure on // the client side. The standard uploading client is presumed to have many // machines uploading to ResultStore, and that any given machine could process // any given Invocation at any time. This field is used to coordinate between // the client's machines, resolve concurrency issues, and enforce "exactly // once" semantics on each batch within the upload. // // The typical usage of the resume_token is that it should contain a "key" // indicating to the client where it is in the upload process, so that the // client can use it to resume the upload by reconstructing the state of // upload from the point where it was interrupted. // // If this matches the previously uploaded resume_token, then this request // will silently do nothing, making CreateInvocation idempotent. // If this token is provided, all further upload RPCs must be done through // UploadBatch. This token must not be combined with request_id. // Must be web safe Base64 encoded bytes. InitialResumeToken string `protobuf:"bytes,7,opt,name=initial_resume_token,json=initialResumeToken,proto3" json:"initial_resume_token,omitempty"` // Client-specific data used to resume batch upload if an error occurs and // retry is needed. This serves a role closely related to resume_token, as // both fields may be used to provide state required to restore a Batch // Upload, but they differ in two important aspects: // - it is not compared to previous values, and as such does not provide // concurrency control; // - it allows for a larger payload, since the contents are never // inspected/compared; // The size of the message must be within 1 MiB. Too large requests will be // rejected. UploaderState []byte `protobuf:"bytes,8,opt,name=uploader_state,json=uploaderState,proto3" json:"uploader_state,omitempty"` } func (x *CreateInvocationRequest) Reset() { *x = CreateInvocationRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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_google_devtools_resultstore_v2_resultstore_upload_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_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{0} } func (x *CreateInvocationRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } 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) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *CreateInvocationRequest) GetAutoFinalizeTime() *timestamppb.Timestamp { if x != nil { return x.AutoFinalizeTime } return nil } func (x *CreateInvocationRequest) GetInitialResumeToken() string { if x != nil { return x.InitialResumeToken } return "" } func (x *CreateInvocationRequest) GetUploaderState() []byte { if x != nil { return x.UploaderState } return nil } // Request passed into UpdateInvocation type UpdateInvocationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Contains the name and the fields of the invocation to be updated. The // name format must be: invocations/${INVOCATION_ID} Invocation *Invocation `protobuf:"bytes,3,opt,name=invocation,proto3" json:"invocation,omitempty"` // Indicates which fields to update. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *UpdateInvocationRequest) Reset() { *x = UpdateInvocationRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[1] 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_google_devtools_resultstore_v2_resultstore_upload_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 UpdateInvocationRequest.ProtoReflect.Descriptor instead. func (*UpdateInvocationRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{1} } func (x *UpdateInvocationRequest) GetInvocation() *Invocation { if x != nil { return x.Invocation } return nil } func (x *UpdateInvocationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *UpdateInvocationRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Request passed into MergeInvocation type MergeInvocationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Contains the name and the fields of the invocation to be merged. The // name format must be: invocations/${INVOCATION_ID} Invocation *Invocation `protobuf:"bytes,3,opt,name=invocation,proto3" json:"invocation,omitempty"` // Indicates which fields to merge. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *MergeInvocationRequest) Reset() { *x = MergeInvocationRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MergeInvocationRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*MergeInvocationRequest) ProtoMessage() {} func (x *MergeInvocationRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 MergeInvocationRequest.ProtoReflect.Descriptor instead. func (*MergeInvocationRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{2} } func (x *MergeInvocationRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *MergeInvocationRequest) GetInvocation() *Invocation { if x != nil { return x.Invocation } return nil } func (x *MergeInvocationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *MergeInvocationRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Request passed into TouchInvocation type TouchInvocationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the invocation. Its format must be: // invocations/${INVOCATION_ID} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,2,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *TouchInvocationRequest) Reset() { *x = TouchInvocationRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TouchInvocationRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*TouchInvocationRequest) ProtoMessage() {} func (x *TouchInvocationRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 TouchInvocationRequest.ProtoReflect.Descriptor instead. func (*TouchInvocationRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{3} } func (x *TouchInvocationRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *TouchInvocationRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Response returned from TouchInvocation type TouchInvocationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the invocation. Its format will be: // invocations/${INVOCATION_ID} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The resource ID components that identify the Invocation. Id *Invocation_Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *TouchInvocationResponse) Reset() { *x = TouchInvocationResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TouchInvocationResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*TouchInvocationResponse) ProtoMessage() {} func (x *TouchInvocationResponse) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 TouchInvocationResponse.ProtoReflect.Descriptor instead. func (*TouchInvocationResponse) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{4} } func (x *TouchInvocationResponse) GetName() string { if x != nil { return x.Name } return "" } func (x *TouchInvocationResponse) GetId() *Invocation_Id { if x != nil { return x.Id } return nil } // Request passed into DeleteInvocation type DeleteInvocationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the invocation. Its format must be: // invocations/${INVOCATION_ID} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *DeleteInvocationRequest) Reset() { *x = DeleteInvocationRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteInvocationRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteInvocationRequest) ProtoMessage() {} func (x *DeleteInvocationRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 DeleteInvocationRequest.ProtoReflect.Descriptor instead. func (*DeleteInvocationRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{5} } func (x *DeleteInvocationRequest) GetName() string { if x != nil { return x.Name } return "" } // Request passed into FinalizeInvocation type FinalizeInvocationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the invocation. Its format must be: // invocations/${INVOCATION_ID} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,3,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *FinalizeInvocationRequest) Reset() { *x = FinalizeInvocationRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[6] 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_google_devtools_resultstore_v2_resultstore_upload_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 FinalizeInvocationRequest.ProtoReflect.Descriptor instead. func (*FinalizeInvocationRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{6} } func (x *FinalizeInvocationRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *FinalizeInvocationRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Response returned from FinalizeInvocation type FinalizeInvocationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the invocation. Its format will be: // invocations/${INVOCATION_ID} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The resource ID components that identify the Invocation. Id *Invocation_Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *FinalizeInvocationResponse) Reset() { *x = FinalizeInvocationResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FinalizeInvocationResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FinalizeInvocationResponse) ProtoMessage() {} func (x *FinalizeInvocationResponse) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 FinalizeInvocationResponse.ProtoReflect.Descriptor instead. func (*FinalizeInvocationResponse) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{7} } func (x *FinalizeInvocationResponse) GetName() string { if x != nil { return x.Name } return "" } func (x *FinalizeInvocationResponse) GetId() *Invocation_Id { if x != nil { return x.Id } return nil } // Request passed into CreateTarget type CreateTargetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Required. The name of the parent invocation in which the target is created. // Its format must be invocations/${INVOCATION_ID} Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"` // The target identifier. It can be any string up to 1024 Unicode characters // long except for the reserved id '-'. TargetId string `protobuf:"bytes,3,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` // Required. The target to create. Its name field will be ignored, since the name will // be derived from the id field above and assigned by the server. Target *Target `protobuf:"bytes,4,opt,name=target,proto3" json:"target,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *CreateTargetRequest) Reset() { *x = CreateTargetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateTargetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateTargetRequest) ProtoMessage() {} func (x *CreateTargetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 CreateTargetRequest.ProtoReflect.Descriptor instead. func (*CreateTargetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{8} } func (x *CreateTargetRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *CreateTargetRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateTargetRequest) GetTargetId() string { if x != nil { return x.TargetId } return "" } func (x *CreateTargetRequest) GetTarget() *Target { if x != nil { return x.Target } return nil } func (x *CreateTargetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Request passed into UpdateTarget type UpdateTargetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Contains the name and the fields of the target to be updated. The name // format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)} Target *Target `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` // Indicates which fields to update. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // If true then the Update operation will become a Create operation if the // Target is NOT_FOUND. CreateIfNotFound bool `protobuf:"varint,6,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` } func (x *UpdateTargetRequest) Reset() { *x = UpdateTargetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateTargetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateTargetRequest) ProtoMessage() {} func (x *UpdateTargetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 UpdateTargetRequest.ProtoReflect.Descriptor instead. func (*UpdateTargetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{9} } func (x *UpdateTargetRequest) GetTarget() *Target { if x != nil { return x.Target } return nil } func (x *UpdateTargetRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *UpdateTargetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *UpdateTargetRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } // Request passed into MergeTarget type MergeTargetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Contains the name and the fields of the target to be merged. The name // format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)} Target *Target `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` // Indicates which fields to merge. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // If true then the Merge operation will become a Create operation if the // Target is NOT_FOUND. CreateIfNotFound bool `protobuf:"varint,6,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` } func (x *MergeTargetRequest) Reset() { *x = MergeTargetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MergeTargetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*MergeTargetRequest) ProtoMessage() {} func (x *MergeTargetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 MergeTargetRequest.ProtoReflect.Descriptor instead. func (*MergeTargetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{10} } func (x *MergeTargetRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *MergeTargetRequest) GetTarget() *Target { if x != nil { return x.Target } return nil } func (x *MergeTargetRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *MergeTargetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *MergeTargetRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } // Request passed into FinalizeTarget type FinalizeTargetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the target. Its format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,3,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *FinalizeTargetRequest) Reset() { *x = FinalizeTargetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FinalizeTargetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FinalizeTargetRequest) ProtoMessage() {} func (x *FinalizeTargetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 FinalizeTargetRequest.ProtoReflect.Descriptor instead. func (*FinalizeTargetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{11} } func (x *FinalizeTargetRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *FinalizeTargetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Response returned from FinalizeTarget type FinalizeTargetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the target. Its format will be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The resource ID components that identify the Target. Id *Target_Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *FinalizeTargetResponse) Reset() { *x = FinalizeTargetResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FinalizeTargetResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FinalizeTargetResponse) ProtoMessage() {} func (x *FinalizeTargetResponse) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 FinalizeTargetResponse.ProtoReflect.Descriptor instead. func (*FinalizeTargetResponse) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{12} } func (x *FinalizeTargetResponse) GetName() string { if x != nil { return x.Name } return "" } func (x *FinalizeTargetResponse) GetId() *Target_Id { if x != nil { return x.Id } return nil } // Request passed into CreateConfiguredTarget type CreateConfiguredTargetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Required. The name of the parent target in which the configured target is created. // Its format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)} Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"` // The configuration identifier. This must match the ID of an existing // Configuration under this Invocation. Cannot be the reserved id '-'. ConfigId string `protobuf:"bytes,3,opt,name=config_id,json=configId,proto3" json:"config_id,omitempty"` // Required. The configured target to create. Its name field will be ignored, since the // name will be derived from the id field above and assigned by the server. ConfiguredTarget *ConfiguredTarget `protobuf:"bytes,4,opt,name=configured_target,json=configuredTarget,proto3" json:"configured_target,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *CreateConfiguredTargetRequest) Reset() { *x = CreateConfiguredTargetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateConfiguredTargetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateConfiguredTargetRequest) ProtoMessage() {} func (x *CreateConfiguredTargetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 CreateConfiguredTargetRequest.ProtoReflect.Descriptor instead. func (*CreateConfiguredTargetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{13} } func (x *CreateConfiguredTargetRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *CreateConfiguredTargetRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateConfiguredTargetRequest) GetConfigId() string { if x != nil { return x.ConfigId } return "" } func (x *CreateConfiguredTargetRequest) GetConfiguredTarget() *ConfiguredTarget { if x != nil { return x.ConfiguredTarget } return nil } func (x *CreateConfiguredTargetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Request passed into UpdateConfiguredTarget type UpdateConfiguredTargetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Contains the name and the fields of the configured target to be updated. // The name format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIG_ID} ConfiguredTarget *ConfiguredTarget `protobuf:"bytes,3,opt,name=configured_target,json=configuredTarget,proto3" json:"configured_target,omitempty"` // Indicates which fields to update. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // If true then the Update operation will become a Create operation if the // ConfiguredTarget is NOT_FOUND. CreateIfNotFound bool `protobuf:"varint,6,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` } func (x *UpdateConfiguredTargetRequest) Reset() { *x = UpdateConfiguredTargetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateConfiguredTargetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateConfiguredTargetRequest) ProtoMessage() {} func (x *UpdateConfiguredTargetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_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 UpdateConfiguredTargetRequest.ProtoReflect.Descriptor instead. func (*UpdateConfiguredTargetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{14} } func (x *UpdateConfiguredTargetRequest) GetConfiguredTarget() *ConfiguredTarget { if x != nil { return x.ConfiguredTarget } return nil } func (x *UpdateConfiguredTargetRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *UpdateConfiguredTargetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *UpdateConfiguredTargetRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } // Request passed into MergeConfiguredTarget type MergeConfiguredTargetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Contains the name and the fields of the configured target to be merged. // The name format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIG_ID} ConfiguredTarget *ConfiguredTarget `protobuf:"bytes,3,opt,name=configured_target,json=configuredTarget,proto3" json:"configured_target,omitempty"` // Indicates which fields to merge. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // If true then the Merge operation will become a Create operation if the // ConfiguredTarget is NOT_FOUND. CreateIfNotFound bool `protobuf:"varint,6,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` } func (x *MergeConfiguredTargetRequest) Reset() { *x = MergeConfiguredTargetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MergeConfiguredTargetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*MergeConfiguredTargetRequest) ProtoMessage() {} func (x *MergeConfiguredTargetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[15] 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 MergeConfiguredTargetRequest.ProtoReflect.Descriptor instead. func (*MergeConfiguredTargetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{15} } func (x *MergeConfiguredTargetRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *MergeConfiguredTargetRequest) GetConfiguredTarget() *ConfiguredTarget { if x != nil { return x.ConfiguredTarget } return nil } func (x *MergeConfiguredTargetRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *MergeConfiguredTargetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *MergeConfiguredTargetRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } // Request passed into FinalizeConfiguredTarget type FinalizeConfiguredTargetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the configured target. Its format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIG_ID} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,3,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *FinalizeConfiguredTargetRequest) Reset() { *x = FinalizeConfiguredTargetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FinalizeConfiguredTargetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FinalizeConfiguredTargetRequest) ProtoMessage() {} func (x *FinalizeConfiguredTargetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[16] 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 FinalizeConfiguredTargetRequest.ProtoReflect.Descriptor instead. func (*FinalizeConfiguredTargetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{16} } func (x *FinalizeConfiguredTargetRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *FinalizeConfiguredTargetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Response returned from FinalizeConfiguredTarget type FinalizeConfiguredTargetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the configured target. Its format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIG_ID} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The resource ID components that identify the ConfiguredTarget. Id *ConfiguredTarget_Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *FinalizeConfiguredTargetResponse) Reset() { *x = FinalizeConfiguredTargetResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FinalizeConfiguredTargetResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FinalizeConfiguredTargetResponse) ProtoMessage() {} func (x *FinalizeConfiguredTargetResponse) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[17] 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 FinalizeConfiguredTargetResponse.ProtoReflect.Descriptor instead. func (*FinalizeConfiguredTargetResponse) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{17} } func (x *FinalizeConfiguredTargetResponse) GetName() string { if x != nil { return x.Name } return "" } func (x *FinalizeConfiguredTargetResponse) GetId() *ConfiguredTarget_Id { if x != nil { return x.Id } return nil } // Request passed into CreateAction type CreateActionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Required. The name of the parent configured target in which the action is created. // Its format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIG_ID} Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"` // The action identifier. It can be any string up to 512 Unicode characters // long, except for the reserved id '-'. // // Recommended IDs for Test Actions: // "test": For a single test action. // "test_shard0_run0_attempt0" ... "test_shard9_run9_attempt9": For tests with // shard/run/attempts. // // Recommended IDs for Build Actions: // "build": If you only have a single build action. ActionId string `protobuf:"bytes,3,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"` // Required. The action to create. Its name field will be ignored, since the // name will be derived from the id field above and assigned by the server. Action *Action `protobuf:"bytes,4,opt,name=action,proto3" json:"action,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *CreateActionRequest) Reset() { *x = CreateActionRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateActionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateActionRequest) ProtoMessage() {} func (x *CreateActionRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[18] 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 CreateActionRequest.ProtoReflect.Descriptor instead. func (*CreateActionRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{18} } func (x *CreateActionRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *CreateActionRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateActionRequest) GetActionId() string { if x != nil { return x.ActionId } return "" } func (x *CreateActionRequest) GetAction() *Action { if x != nil { return x.Action } return nil } func (x *CreateActionRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Request passed into UpdateAction type UpdateActionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Contains the name and the fields of the action to be updated. The // name format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIG_ID}/actions/${ACTION_ID} Action *Action `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` // Indicates which fields to update. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // If true then the Update operation will become a Create operation if the // Action is NOT_FOUND. CreateIfNotFound bool `protobuf:"varint,6,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` } func (x *UpdateActionRequest) Reset() { *x = UpdateActionRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateActionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateActionRequest) ProtoMessage() {} func (x *UpdateActionRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[19] 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 UpdateActionRequest.ProtoReflect.Descriptor instead. func (*UpdateActionRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{19} } func (x *UpdateActionRequest) GetAction() *Action { if x != nil { return x.Action } return nil } func (x *UpdateActionRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *UpdateActionRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *UpdateActionRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } // Request passed into MergeAction type MergeActionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Contains the name and the fields of the action to be merged. The // name format must be: // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIG_ID}/actions/${ACTION_ID} Action *Action `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` // Indicates which fields to merge. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // If true then the Merge operation will become a Create operation if the // Action is NOT_FOUND. CreateIfNotFound bool `protobuf:"varint,6,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` } func (x *MergeActionRequest) Reset() { *x = MergeActionRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MergeActionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*MergeActionRequest) ProtoMessage() {} func (x *MergeActionRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[20] 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 MergeActionRequest.ProtoReflect.Descriptor instead. func (*MergeActionRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{20} } func (x *MergeActionRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *MergeActionRequest) GetAction() *Action { if x != nil { return x.Action } return nil } func (x *MergeActionRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *MergeActionRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *MergeActionRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } // Request passed into CreateConfiguration type CreateConfigurationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Required. The name of the parent invocation in which the configuration is created. // Its format must be invocations/${INVOCATION_ID} Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"` // The configuration identifier. It can be any string up to 256 Unicode // characters long. The configuration ID of "default" should be preferred for // the default configuration in a single-config invocation. Cannot be the // reserved id '-'. ConfigId string `protobuf:"bytes,3,opt,name=config_id,json=configId,proto3" json:"config_id,omitempty"` // Required. The configuration to create. Its name field will be ignored, since the name // will be derived from the id field above and assigned by the server. Configuration *Configuration `protobuf:"bytes,4,opt,name=configuration,proto3" json:"configuration,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *CreateConfigurationRequest) Reset() { *x = CreateConfigurationRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateConfigurationRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateConfigurationRequest) ProtoMessage() {} func (x *CreateConfigurationRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[21] 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 CreateConfigurationRequest.ProtoReflect.Descriptor instead. func (*CreateConfigurationRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{21} } func (x *CreateConfigurationRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *CreateConfigurationRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateConfigurationRequest) GetConfigId() string { if x != nil { return x.ConfigId } return "" } func (x *CreateConfigurationRequest) GetConfiguration() *Configuration { if x != nil { return x.Configuration } return nil } func (x *CreateConfigurationRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Request passed into UpdateConfiguration type UpdateConfigurationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Contains the name and fields of the configuration to be updated. The name // format must be: // invocations/${INVOCATION_ID}/configs/${CONFIG_ID} Configuration *Configuration `protobuf:"bytes,3,opt,name=configuration,proto3" json:"configuration,omitempty"` // Indicates which fields to update. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // If true then the Update operation will become a Create operation if the // Configuration is NOT_FOUND. CreateIfNotFound bool `protobuf:"varint,6,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` } func (x *UpdateConfigurationRequest) Reset() { *x = UpdateConfigurationRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateConfigurationRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateConfigurationRequest) ProtoMessage() {} func (x *UpdateConfigurationRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[22] 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 UpdateConfigurationRequest.ProtoReflect.Descriptor instead. func (*UpdateConfigurationRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{22} } func (x *UpdateConfigurationRequest) GetConfiguration() *Configuration { if x != nil { return x.Configuration } return nil } func (x *UpdateConfigurationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *UpdateConfigurationRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *UpdateConfigurationRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } // Request passed into CreateFileSet type CreateFileSetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Required. The name of the parent invocation in which the file set is created. // Its format must be invocations/${INVOCATION_ID} Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"` // The file set identifier. It can be any string up to 256 Unicode characters // long. FileSetId string `protobuf:"bytes,3,opt,name=file_set_id,json=fileSetId,proto3" json:"file_set_id,omitempty"` // Required. The file set to create. Its name field will be ignored, since the name will // be derived from the id field above and assigned by the server. FileSet *FileSet `protobuf:"bytes,4,opt,name=file_set,json=fileSet,proto3" json:"file_set,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,5,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *CreateFileSetRequest) Reset() { *x = CreateFileSetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateFileSetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateFileSetRequest) ProtoMessage() {} func (x *CreateFileSetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[23] 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 CreateFileSetRequest.ProtoReflect.Descriptor instead. func (*CreateFileSetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{23} } func (x *CreateFileSetRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *CreateFileSetRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateFileSetRequest) GetFileSetId() string { if x != nil { return x.FileSetId } return "" } func (x *CreateFileSetRequest) GetFileSet() *FileSet { if x != nil { return x.FileSet } return nil } func (x *CreateFileSetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // Request passed into UpdateFileSet type UpdateFileSetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Contains the name and fields of the file set to be updated. The name format // must be: invocations/${INVOCATION_ID}/fileSets/${FILE_SET_ID} FileSet *FileSet `protobuf:"bytes,1,opt,name=file_set,json=fileSet,proto3" json:"file_set,omitempty"` // Indicates which fields to update. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,3,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // If true then the Update operation will become a Create operation if the // FileSet is NOT_FOUND. CreateIfNotFound bool `protobuf:"varint,4,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` } func (x *UpdateFileSetRequest) Reset() { *x = UpdateFileSetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateFileSetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateFileSetRequest) ProtoMessage() {} func (x *UpdateFileSetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[24] 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 UpdateFileSetRequest.ProtoReflect.Descriptor instead. func (*UpdateFileSetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{24} } func (x *UpdateFileSetRequest) GetFileSet() *FileSet { if x != nil { return x.FileSet } return nil } func (x *UpdateFileSetRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *UpdateFileSetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *UpdateFileSetRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } // Request passed into MergeFileSet type MergeFileSetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A unique identifier for this request. Must be set to a different value for // each request that affects a given resource (eg. a random UUID). Required // for the operation to be idempotent. This is achieved by ignoring this // request if the last successful operation on the resource had the same // request ID. Restricted to 36 Unicode characters. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Contains the name and fields of the file set to be merged. The name // format must be: // invocations/${INVOCATION_ID}/fileSets/${FILE_SET_ID} FileSet *FileSet `protobuf:"bytes,2,opt,name=file_set,json=fileSet,proto3" json:"file_set,omitempty"` // Indicates which fields to merge. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // This is a token to authorize access to this invocation. It must be set to // the same value that was provided in the CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,4,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // If true then the Merge operation will become a Create operation if the // FileSet is NOT_FOUND. CreateIfNotFound bool `protobuf:"varint,5,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` } func (x *MergeFileSetRequest) Reset() { *x = MergeFileSetRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MergeFileSetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*MergeFileSetRequest) ProtoMessage() {} func (x *MergeFileSetRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[25] 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 MergeFileSetRequest.ProtoReflect.Descriptor instead. func (*MergeFileSetRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{25} } func (x *MergeFileSetRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *MergeFileSetRequest) GetFileSet() *FileSet { if x != nil { return x.FileSet } return nil } func (x *MergeFileSetRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *MergeFileSetRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *MergeFileSetRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } // Request passed into UploadBatch type UploadBatchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the invocation being modified. // The name format must be: invocations/${INVOCATION_ID} Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. A UUID that must match the value provided in CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,2,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` // Required. The token of this batch, that will be committed in this UploadBatchRequest. // If this matches the previously uploaded resume_token, then this request // will silently do nothing. // See CreateInvocationRequest.initial_resume_token for more information. // Must be web safe Base64 encoded bytes. NextResumeToken string `protobuf:"bytes,3,opt,name=next_resume_token,json=nextResumeToken,proto3" json:"next_resume_token,omitempty"` // Required. The token of the previous batch that was committed in a UploadBatchRequest. // This will be checked after next_resume_token match is checked. If this does // not match the previously uploaded resume_token, a 409 Conflict (HTTPS) or // ABORTED (gRPC ) error code indicating a concurrency // failure will be returned, and that the user should call // GetInvocationUploadMetadata to fetch the current resume_token to // reconstruct the state of the upload to resume it. // See CreateInvocationRequest.initial_resume_token for more information. // Must be web safe Base64 encoded bytes. ResumeToken string `protobuf:"bytes,4,opt,name=resume_token,json=resumeToken,proto3" json:"resume_token,omitempty"` // Client-specific data used to resume batch upload if an error occurs and // retry is needed. This serves a role closely related to resume_token, as // both fields may be used to provide state required to restore a Batch // Upload, but they differ in two important aspects: // - it is not compared to previous values, and as such does not provide // concurrency control; // - it allows for a larger payload, since the contents are never // inspected/compared; // The size of the message must be within 1 MiB. Too large requests will be // rejected. UploaderState []byte `protobuf:"bytes,6,opt,name=uploader_state,json=uploaderState,proto3" json:"uploader_state,omitempty"` // The individual upload requests for this batch. // This field may be empty, allowing this RPC to be used like TouchInvocation. UploadRequests []*UploadRequest `protobuf:"bytes,5,rep,name=upload_requests,json=uploadRequests,proto3" json:"upload_requests,omitempty"` } func (x *UploadBatchRequest) Reset() { *x = UploadBatchRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadBatchRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadBatchRequest) ProtoMessage() {} func (x *UploadBatchRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[26] 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 UploadBatchRequest.ProtoReflect.Descriptor instead. func (*UploadBatchRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{26} } func (x *UploadBatchRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *UploadBatchRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } func (x *UploadBatchRequest) GetNextResumeToken() string { if x != nil { return x.NextResumeToken } return "" } func (x *UploadBatchRequest) GetResumeToken() string { if x != nil { return x.ResumeToken } return "" } func (x *UploadBatchRequest) GetUploaderState() []byte { if x != nil { return x.UploaderState } return nil } func (x *UploadBatchRequest) GetUploadRequests() []*UploadRequest { if x != nil { return x.UploadRequests } return nil } // Response for UploadBatch type UploadBatchResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *UploadBatchResponse) Reset() { *x = UploadBatchResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadBatchResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadBatchResponse) ProtoMessage() {} func (x *UploadBatchResponse) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[27] 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 UploadBatchResponse.ProtoReflect.Descriptor instead. func (*UploadBatchResponse) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{27} } // The individual upload requests for this batch. type UploadRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource ID components that identify the resource being uploaded. Id *UploadRequest_Id `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The operation for the request (e.g. Create(), Update(), etc.) UploadOperation UploadRequest_UploadOperation `protobuf:"varint,2,opt,name=upload_operation,json=uploadOperation,proto3,enum=google.devtools.resultstore.v2.UploadRequest_UploadOperation" json:"upload_operation,omitempty"` // Required for Update and Merge operations. // Ignored for Create and Finalize operations. // Masks the fields of the resource being uploaded. Provides support for a // more granular upload. FieldMasks are limited to certain fields and must // match one of the follow patterns, where * means any single field name. // // For Update Operations: // // Invocation: [*, status_attributes.*, timing.*, invocation_attributes.*, // workspace_info.*]. // Target: [*, status_attributes.*, timing.*]. // Configuration: [*, status_attributes.*]. // ConfiguredTarget: [*, status_attributes.*]. // Action: [*, status_attributes.*, timing.*, test_action.test_suite, // test_action.infrastructure_failure_info]. // FileSet: [*]. // // For Merge Operations: // // Invocation: [invocation_attributes.labels, workspace_info.command_lines, // properties, files, file_processing_errors]. // Target: [files]. // ConfiguredTarget: [files]. // Action: [files, file_processing_errors]. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // If true then the Update, Merge operation will become a Create operation if // the resource is NOT_FOUND. Not supported for Invocation resource. CreateIfNotFound bool `protobuf:"varint,10,opt,name=create_if_not_found,json=createIfNotFound,proto3" json:"create_if_not_found,omitempty"` // The proto of the resource being uploaded. // // Types that are assignable to Resource: // *UploadRequest_Invocation // *UploadRequest_Target // *UploadRequest_Configuration // *UploadRequest_ConfiguredTarget // *UploadRequest_Action // *UploadRequest_FileSet Resource isUploadRequest_Resource `protobuf_oneof:"resource"` } func (x *UploadRequest) Reset() { *x = UploadRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadRequest) ProtoMessage() {} func (x *UploadRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[28] 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 UploadRequest.ProtoReflect.Descriptor instead. func (*UploadRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{28} } func (x *UploadRequest) GetId() *UploadRequest_Id { if x != nil { return x.Id } return nil } func (x *UploadRequest) GetUploadOperation() UploadRequest_UploadOperation { if x != nil { return x.UploadOperation } return UploadRequest_UPLOAD_OPERATION_UNSPECIFIED } func (x *UploadRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *UploadRequest) GetCreateIfNotFound() bool { if x != nil { return x.CreateIfNotFound } return false } func (m *UploadRequest) GetResource() isUploadRequest_Resource { if m != nil { return m.Resource } return nil } func (x *UploadRequest) GetInvocation() *Invocation { if x, ok := x.GetResource().(*UploadRequest_Invocation); ok { return x.Invocation } return nil } func (x *UploadRequest) GetTarget() *Target { if x, ok := x.GetResource().(*UploadRequest_Target); ok { return x.Target } return nil } func (x *UploadRequest) GetConfiguration() *Configuration { if x, ok := x.GetResource().(*UploadRequest_Configuration); ok { return x.Configuration } return nil } func (x *UploadRequest) GetConfiguredTarget() *ConfiguredTarget { if x, ok := x.GetResource().(*UploadRequest_ConfiguredTarget); ok { return x.ConfiguredTarget } return nil } func (x *UploadRequest) GetAction() *Action { if x, ok := x.GetResource().(*UploadRequest_Action); ok { return x.Action } return nil } func (x *UploadRequest) GetFileSet() *FileSet { if x, ok := x.GetResource().(*UploadRequest_FileSet); ok { return x.FileSet } return nil } type isUploadRequest_Resource interface { isUploadRequest_Resource() } type UploadRequest_Invocation struct { // The Invocation Resource Invocation *Invocation `protobuf:"bytes,4,opt,name=invocation,proto3,oneof"` } type UploadRequest_Target struct { // The Target Resource Target *Target `protobuf:"bytes,5,opt,name=target,proto3,oneof"` } type UploadRequest_Configuration struct { // The Configuration Resource Configuration *Configuration `protobuf:"bytes,6,opt,name=configuration,proto3,oneof"` } type UploadRequest_ConfiguredTarget struct { // The ConfiguredTarget Resource ConfiguredTarget *ConfiguredTarget `protobuf:"bytes,7,opt,name=configured_target,json=configuredTarget,proto3,oneof"` } type UploadRequest_Action struct { // The Action Resource Action *Action `protobuf:"bytes,8,opt,name=action,proto3,oneof"` } type UploadRequest_FileSet struct { // The FileSet Resource FileSet *FileSet `protobuf:"bytes,9,opt,name=file_set,json=fileSet,proto3,oneof"` } func (*UploadRequest_Invocation) isUploadRequest_Resource() {} func (*UploadRequest_Target) isUploadRequest_Resource() {} func (*UploadRequest_Configuration) isUploadRequest_Resource() {} func (*UploadRequest_ConfiguredTarget) isUploadRequest_Resource() {} func (*UploadRequest_Action) isUploadRequest_Resource() {} func (*UploadRequest_FileSet) isUploadRequest_Resource() {} // Request passed into GetInvocationUploadMetadata type GetInvocationUploadMetadataRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the UploadMetadata being requested. // The name format must be: invocations/${INVOCATION_ID}/uploadMetadata Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Required. A UUID that must match the value provided in CreateInvocationRequest. AuthorizationToken string `protobuf:"bytes,2,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` } func (x *GetInvocationUploadMetadataRequest) Reset() { *x = GetInvocationUploadMetadataRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetInvocationUploadMetadataRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetInvocationUploadMetadataRequest) ProtoMessage() {} func (x *GetInvocationUploadMetadataRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[29] 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 GetInvocationUploadMetadataRequest.ProtoReflect.Descriptor instead. func (*GetInvocationUploadMetadataRequest) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{29} } func (x *GetInvocationUploadMetadataRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *GetInvocationUploadMetadataRequest) GetAuthorizationToken() string { if x != nil { return x.AuthorizationToken } return "" } // The resource ID components that identify the resource being uploaded. type UploadRequest_Id struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required for Target, ConfiguredTarget, or Action. // The Target ID. TargetId string `protobuf:"bytes,1,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` // Required for Configuration, ConfiguredTarget, or Action. // The Configuration ID. ConfigurationId string `protobuf:"bytes,2,opt,name=configuration_id,json=configurationId,proto3" json:"configuration_id,omitempty"` // Required for Action. // The Action ID. ActionId string `protobuf:"bytes,3,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"` // Required for FileSet. // The FileSet ID. FileSetId string `protobuf:"bytes,4,opt,name=file_set_id,json=fileSetId,proto3" json:"file_set_id,omitempty"` } func (x *UploadRequest_Id) Reset() { *x = UploadRequest_Id{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadRequest_Id) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadRequest_Id) ProtoMessage() {} func (x *UploadRequest_Id) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[30] 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 UploadRequest_Id.ProtoReflect.Descriptor instead. func (*UploadRequest_Id) Descriptor() ([]byte, []int) { return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP(), []int{28, 0} } func (x *UploadRequest_Id) GetTargetId() string { if x != nil { return x.TargetId } return "" } func (x *UploadRequest_Id) GetConfigurationId() string { if x != nil { return x.ConfigurationId } return "" } func (x *UploadRequest_Id) GetActionId() string { if x != nil { return x.ActionId } return "" } func (x *UploadRequest_Id) GetFileSetId() string { if x != nil { return x.FileSetId } return "" } var File_google_devtools_resultstore_v2_resultstore_upload_proto protoreflect.FileDescriptor var file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDesc = []byte{ 0x0a, 0x37, 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, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 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, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 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, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 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, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 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, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 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, 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, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 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, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x82, 0x03, 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, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x48, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xd3, 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, 0x4a, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 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, 0x04, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf1, 0x01, 0x0a, 0x16, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 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, 0x04, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x16, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 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, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x6c, 0x0a, 0x17, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x22, 0x5c, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 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, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8f, 0x01, 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, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 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, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x6f, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x22, 0x8e, 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 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, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf2, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x90, 0x02, 0x0a, 0x12, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x87, 0x01, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 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, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x67, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x22, 0xb3, 0x02, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 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, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x62, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9b, 0x02, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xb9, 0x02, 0x0a, 0x1c, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x5d, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7b, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 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, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x22, 0x94, 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf2, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 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, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x90, 0x02, 0x0a, 0x12, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 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, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xaa, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 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, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x58, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8e, 0x02, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x96, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 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, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 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, 0x53, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf7, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 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, 0x53, 0x65, 0x74, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x95, 0x02, 0x0a, 0x13, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 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, 0x53, 0x65, 0x74, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 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, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xbf, 0x02, 0x0a, 0x12, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 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, 0x34, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 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, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf5, 0x07, 0x0a, 0x0d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x02, 0x69, 0x64, 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, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x68, 0x0a, 0x10, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 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, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 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, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 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, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 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, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x1a, 0x89, 0x01, 0x0a, 0x02, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x64, 0x0a, 0x0f, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x10, 0x04, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 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, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x8f, 0x29, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0xd6, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 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, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x0f, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x37, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xdd, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 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, 0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x32, 0x23, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x2a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xab, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 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, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 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, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x22, 0x29, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xad, 0x01, 0x0a, 0x0f, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 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, 0x6f, 0x75, 0x63, 0x68, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0xb9, 0x01, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 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, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 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, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x22, 0x21, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd8, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x33, 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, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x22, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x3a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0xda, 0x41, 0x36, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xcf, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x33, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x32, 0x29, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0xda, 0x41, 0x26, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xa5, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x32, 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, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x22, 0x2f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xb7, 0x01, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x35, 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, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 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, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x22, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xa1, 0x02, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3d, 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, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x95, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x22, 0x36, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x3a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0xda, 0x41, 0x41, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xa3, 0x02, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3d, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x97, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5d, 0x32, 0x48, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0xda, 0x41, 0x31, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xe2, 0x01, 0x0a, 0x15, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3c, 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, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x59, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x22, 0x4e, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xe9, 0x01, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3f, 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, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 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, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x22, 0x3f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xf7, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 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, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x22, 0x40, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x36, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xee, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x32, 0x47, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x26, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xc3, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 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, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x4d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xfb, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 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, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x22, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x3a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x3d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xf9, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x32, 0x30, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xe2, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 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, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 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, 0x53, 0x65, 0x74, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x23, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x73, 0x3a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0xda, 0x41, 0x3a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x2c, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xd9, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 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, 0x53, 0x65, 0x74, 0x22, 0x69, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x32, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0xda, 0x41, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xab, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x33, 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, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 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, 0x53, 0x65, 0x74, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x22, 0x32, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xaa, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x32, 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, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 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, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x3a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0xdd, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x42, 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, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 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, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x7d, 0xda, 0x41, 0x18, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x4e, 0xca, 0x41, 0x1a, 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, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x89, 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, 0x16, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 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_resultstore_upload_proto_rawDescOnce sync.Once file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescData = file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDesc ) func file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescGZIP() []byte { file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescOnce.Do(func() { file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescData) }) return file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDescData } var file_google_devtools_resultstore_v2_resultstore_upload_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes = make([]protoimpl.MessageInfo, 31) var file_google_devtools_resultstore_v2_resultstore_upload_proto_goTypes = []interface{}{ (UploadRequest_UploadOperation)(0), // 0: google.devtools.resultstore.v2.UploadRequest.UploadOperation (*CreateInvocationRequest)(nil), // 1: google.devtools.resultstore.v2.CreateInvocationRequest (*UpdateInvocationRequest)(nil), // 2: google.devtools.resultstore.v2.UpdateInvocationRequest (*MergeInvocationRequest)(nil), // 3: google.devtools.resultstore.v2.MergeInvocationRequest (*TouchInvocationRequest)(nil), // 4: google.devtools.resultstore.v2.TouchInvocationRequest (*TouchInvocationResponse)(nil), // 5: google.devtools.resultstore.v2.TouchInvocationResponse (*DeleteInvocationRequest)(nil), // 6: google.devtools.resultstore.v2.DeleteInvocationRequest (*FinalizeInvocationRequest)(nil), // 7: google.devtools.resultstore.v2.FinalizeInvocationRequest (*FinalizeInvocationResponse)(nil), // 8: google.devtools.resultstore.v2.FinalizeInvocationResponse (*CreateTargetRequest)(nil), // 9: google.devtools.resultstore.v2.CreateTargetRequest (*UpdateTargetRequest)(nil), // 10: google.devtools.resultstore.v2.UpdateTargetRequest (*MergeTargetRequest)(nil), // 11: google.devtools.resultstore.v2.MergeTargetRequest (*FinalizeTargetRequest)(nil), // 12: google.devtools.resultstore.v2.FinalizeTargetRequest (*FinalizeTargetResponse)(nil), // 13: google.devtools.resultstore.v2.FinalizeTargetResponse (*CreateConfiguredTargetRequest)(nil), // 14: google.devtools.resultstore.v2.CreateConfiguredTargetRequest (*UpdateConfiguredTargetRequest)(nil), // 15: google.devtools.resultstore.v2.UpdateConfiguredTargetRequest (*MergeConfiguredTargetRequest)(nil), // 16: google.devtools.resultstore.v2.MergeConfiguredTargetRequest (*FinalizeConfiguredTargetRequest)(nil), // 17: google.devtools.resultstore.v2.FinalizeConfiguredTargetRequest (*FinalizeConfiguredTargetResponse)(nil), // 18: google.devtools.resultstore.v2.FinalizeConfiguredTargetResponse (*CreateActionRequest)(nil), // 19: google.devtools.resultstore.v2.CreateActionRequest (*UpdateActionRequest)(nil), // 20: google.devtools.resultstore.v2.UpdateActionRequest (*MergeActionRequest)(nil), // 21: google.devtools.resultstore.v2.MergeActionRequest (*CreateConfigurationRequest)(nil), // 22: google.devtools.resultstore.v2.CreateConfigurationRequest (*UpdateConfigurationRequest)(nil), // 23: google.devtools.resultstore.v2.UpdateConfigurationRequest (*CreateFileSetRequest)(nil), // 24: google.devtools.resultstore.v2.CreateFileSetRequest (*UpdateFileSetRequest)(nil), // 25: google.devtools.resultstore.v2.UpdateFileSetRequest (*MergeFileSetRequest)(nil), // 26: google.devtools.resultstore.v2.MergeFileSetRequest (*UploadBatchRequest)(nil), // 27: google.devtools.resultstore.v2.UploadBatchRequest (*UploadBatchResponse)(nil), // 28: google.devtools.resultstore.v2.UploadBatchResponse (*UploadRequest)(nil), // 29: google.devtools.resultstore.v2.UploadRequest (*GetInvocationUploadMetadataRequest)(nil), // 30: google.devtools.resultstore.v2.GetInvocationUploadMetadataRequest (*UploadRequest_Id)(nil), // 31: google.devtools.resultstore.v2.UploadRequest.Id (*Invocation)(nil), // 32: google.devtools.resultstore.v2.Invocation (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp (*fieldmaskpb.FieldMask)(nil), // 34: google.protobuf.FieldMask (*Invocation_Id)(nil), // 35: google.devtools.resultstore.v2.Invocation.Id (*Target)(nil), // 36: google.devtools.resultstore.v2.Target (*Target_Id)(nil), // 37: google.devtools.resultstore.v2.Target.Id (*ConfiguredTarget)(nil), // 38: google.devtools.resultstore.v2.ConfiguredTarget (*ConfiguredTarget_Id)(nil), // 39: google.devtools.resultstore.v2.ConfiguredTarget.Id (*Action)(nil), // 40: google.devtools.resultstore.v2.Action (*Configuration)(nil), // 41: google.devtools.resultstore.v2.Configuration (*FileSet)(nil), // 42: google.devtools.resultstore.v2.FileSet (*emptypb.Empty)(nil), // 43: google.protobuf.Empty (*UploadMetadata)(nil), // 44: google.devtools.resultstore.v2.UploadMetadata } var file_google_devtools_resultstore_v2_resultstore_upload_proto_depIdxs = []int32{ 32, // 0: google.devtools.resultstore.v2.CreateInvocationRequest.invocation:type_name -> google.devtools.resultstore.v2.Invocation 33, // 1: google.devtools.resultstore.v2.CreateInvocationRequest.auto_finalize_time:type_name -> google.protobuf.Timestamp 32, // 2: google.devtools.resultstore.v2.UpdateInvocationRequest.invocation:type_name -> google.devtools.resultstore.v2.Invocation 34, // 3: google.devtools.resultstore.v2.UpdateInvocationRequest.update_mask:type_name -> google.protobuf.FieldMask 32, // 4: google.devtools.resultstore.v2.MergeInvocationRequest.invocation:type_name -> google.devtools.resultstore.v2.Invocation 34, // 5: google.devtools.resultstore.v2.MergeInvocationRequest.update_mask:type_name -> google.protobuf.FieldMask 35, // 6: google.devtools.resultstore.v2.TouchInvocationResponse.id:type_name -> google.devtools.resultstore.v2.Invocation.Id 35, // 7: google.devtools.resultstore.v2.FinalizeInvocationResponse.id:type_name -> google.devtools.resultstore.v2.Invocation.Id 36, // 8: google.devtools.resultstore.v2.CreateTargetRequest.target:type_name -> google.devtools.resultstore.v2.Target 36, // 9: google.devtools.resultstore.v2.UpdateTargetRequest.target:type_name -> google.devtools.resultstore.v2.Target 34, // 10: google.devtools.resultstore.v2.UpdateTargetRequest.update_mask:type_name -> google.protobuf.FieldMask 36, // 11: google.devtools.resultstore.v2.MergeTargetRequest.target:type_name -> google.devtools.resultstore.v2.Target 34, // 12: google.devtools.resultstore.v2.MergeTargetRequest.update_mask:type_name -> google.protobuf.FieldMask 37, // 13: google.devtools.resultstore.v2.FinalizeTargetResponse.id:type_name -> google.devtools.resultstore.v2.Target.Id 38, // 14: google.devtools.resultstore.v2.CreateConfiguredTargetRequest.configured_target:type_name -> google.devtools.resultstore.v2.ConfiguredTarget 38, // 15: google.devtools.resultstore.v2.UpdateConfiguredTargetRequest.configured_target:type_name -> google.devtools.resultstore.v2.ConfiguredTarget 34, // 16: google.devtools.resultstore.v2.UpdateConfiguredTargetRequest.update_mask:type_name -> google.protobuf.FieldMask 38, // 17: google.devtools.resultstore.v2.MergeConfiguredTargetRequest.configured_target:type_name -> google.devtools.resultstore.v2.ConfiguredTarget 34, // 18: google.devtools.resultstore.v2.MergeConfiguredTargetRequest.update_mask:type_name -> google.protobuf.FieldMask 39, // 19: google.devtools.resultstore.v2.FinalizeConfiguredTargetResponse.id:type_name -> google.devtools.resultstore.v2.ConfiguredTarget.Id 40, // 20: google.devtools.resultstore.v2.CreateActionRequest.action:type_name -> google.devtools.resultstore.v2.Action 40, // 21: google.devtools.resultstore.v2.UpdateActionRequest.action:type_name -> google.devtools.resultstore.v2.Action 34, // 22: google.devtools.resultstore.v2.UpdateActionRequest.update_mask:type_name -> google.protobuf.FieldMask 40, // 23: google.devtools.resultstore.v2.MergeActionRequest.action:type_name -> google.devtools.resultstore.v2.Action 34, // 24: google.devtools.resultstore.v2.MergeActionRequest.update_mask:type_name -> google.protobuf.FieldMask 41, // 25: google.devtools.resultstore.v2.CreateConfigurationRequest.configuration:type_name -> google.devtools.resultstore.v2.Configuration 41, // 26: google.devtools.resultstore.v2.UpdateConfigurationRequest.configuration:type_name -> google.devtools.resultstore.v2.Configuration 34, // 27: google.devtools.resultstore.v2.UpdateConfigurationRequest.update_mask:type_name -> google.protobuf.FieldMask 42, // 28: google.devtools.resultstore.v2.CreateFileSetRequest.file_set:type_name -> google.devtools.resultstore.v2.FileSet 42, // 29: google.devtools.resultstore.v2.UpdateFileSetRequest.file_set:type_name -> google.devtools.resultstore.v2.FileSet 34, // 30: google.devtools.resultstore.v2.UpdateFileSetRequest.update_mask:type_name -> google.protobuf.FieldMask 42, // 31: google.devtools.resultstore.v2.MergeFileSetRequest.file_set:type_name -> google.devtools.resultstore.v2.FileSet 34, // 32: google.devtools.resultstore.v2.MergeFileSetRequest.update_mask:type_name -> google.protobuf.FieldMask 29, // 33: google.devtools.resultstore.v2.UploadBatchRequest.upload_requests:type_name -> google.devtools.resultstore.v2.UploadRequest 31, // 34: google.devtools.resultstore.v2.UploadRequest.id:type_name -> google.devtools.resultstore.v2.UploadRequest.Id 0, // 35: google.devtools.resultstore.v2.UploadRequest.upload_operation:type_name -> google.devtools.resultstore.v2.UploadRequest.UploadOperation 34, // 36: google.devtools.resultstore.v2.UploadRequest.update_mask:type_name -> google.protobuf.FieldMask 32, // 37: google.devtools.resultstore.v2.UploadRequest.invocation:type_name -> google.devtools.resultstore.v2.Invocation 36, // 38: google.devtools.resultstore.v2.UploadRequest.target:type_name -> google.devtools.resultstore.v2.Target 41, // 39: google.devtools.resultstore.v2.UploadRequest.configuration:type_name -> google.devtools.resultstore.v2.Configuration 38, // 40: google.devtools.resultstore.v2.UploadRequest.configured_target:type_name -> google.devtools.resultstore.v2.ConfiguredTarget 40, // 41: google.devtools.resultstore.v2.UploadRequest.action:type_name -> google.devtools.resultstore.v2.Action 42, // 42: google.devtools.resultstore.v2.UploadRequest.file_set:type_name -> google.devtools.resultstore.v2.FileSet 1, // 43: google.devtools.resultstore.v2.ResultStoreUpload.CreateInvocation:input_type -> google.devtools.resultstore.v2.CreateInvocationRequest 2, // 44: google.devtools.resultstore.v2.ResultStoreUpload.UpdateInvocation:input_type -> google.devtools.resultstore.v2.UpdateInvocationRequest 3, // 45: google.devtools.resultstore.v2.ResultStoreUpload.MergeInvocation:input_type -> google.devtools.resultstore.v2.MergeInvocationRequest 4, // 46: google.devtools.resultstore.v2.ResultStoreUpload.TouchInvocation:input_type -> google.devtools.resultstore.v2.TouchInvocationRequest 7, // 47: google.devtools.resultstore.v2.ResultStoreUpload.FinalizeInvocation:input_type -> google.devtools.resultstore.v2.FinalizeInvocationRequest 6, // 48: google.devtools.resultstore.v2.ResultStoreUpload.DeleteInvocation:input_type -> google.devtools.resultstore.v2.DeleteInvocationRequest 9, // 49: google.devtools.resultstore.v2.ResultStoreUpload.CreateTarget:input_type -> google.devtools.resultstore.v2.CreateTargetRequest 10, // 50: google.devtools.resultstore.v2.ResultStoreUpload.UpdateTarget:input_type -> google.devtools.resultstore.v2.UpdateTargetRequest 11, // 51: google.devtools.resultstore.v2.ResultStoreUpload.MergeTarget:input_type -> google.devtools.resultstore.v2.MergeTargetRequest 12, // 52: google.devtools.resultstore.v2.ResultStoreUpload.FinalizeTarget:input_type -> google.devtools.resultstore.v2.FinalizeTargetRequest 14, // 53: google.devtools.resultstore.v2.ResultStoreUpload.CreateConfiguredTarget:input_type -> google.devtools.resultstore.v2.CreateConfiguredTargetRequest 15, // 54: google.devtools.resultstore.v2.ResultStoreUpload.UpdateConfiguredTarget:input_type -> google.devtools.resultstore.v2.UpdateConfiguredTargetRequest 16, // 55: google.devtools.resultstore.v2.ResultStoreUpload.MergeConfiguredTarget:input_type -> google.devtools.resultstore.v2.MergeConfiguredTargetRequest 17, // 56: google.devtools.resultstore.v2.ResultStoreUpload.FinalizeConfiguredTarget:input_type -> google.devtools.resultstore.v2.FinalizeConfiguredTargetRequest 19, // 57: google.devtools.resultstore.v2.ResultStoreUpload.CreateAction:input_type -> google.devtools.resultstore.v2.CreateActionRequest 20, // 58: google.devtools.resultstore.v2.ResultStoreUpload.UpdateAction:input_type -> google.devtools.resultstore.v2.UpdateActionRequest 21, // 59: google.devtools.resultstore.v2.ResultStoreUpload.MergeAction:input_type -> google.devtools.resultstore.v2.MergeActionRequest 22, // 60: google.devtools.resultstore.v2.ResultStoreUpload.CreateConfiguration:input_type -> google.devtools.resultstore.v2.CreateConfigurationRequest 23, // 61: google.devtools.resultstore.v2.ResultStoreUpload.UpdateConfiguration:input_type -> google.devtools.resultstore.v2.UpdateConfigurationRequest 24, // 62: google.devtools.resultstore.v2.ResultStoreUpload.CreateFileSet:input_type -> google.devtools.resultstore.v2.CreateFileSetRequest 25, // 63: google.devtools.resultstore.v2.ResultStoreUpload.UpdateFileSet:input_type -> google.devtools.resultstore.v2.UpdateFileSetRequest 26, // 64: google.devtools.resultstore.v2.ResultStoreUpload.MergeFileSet:input_type -> google.devtools.resultstore.v2.MergeFileSetRequest 27, // 65: google.devtools.resultstore.v2.ResultStoreUpload.UploadBatch:input_type -> google.devtools.resultstore.v2.UploadBatchRequest 30, // 66: google.devtools.resultstore.v2.ResultStoreUpload.GetInvocationUploadMetadata:input_type -> google.devtools.resultstore.v2.GetInvocationUploadMetadataRequest 32, // 67: google.devtools.resultstore.v2.ResultStoreUpload.CreateInvocation:output_type -> google.devtools.resultstore.v2.Invocation 32, // 68: google.devtools.resultstore.v2.ResultStoreUpload.UpdateInvocation:output_type -> google.devtools.resultstore.v2.Invocation 32, // 69: google.devtools.resultstore.v2.ResultStoreUpload.MergeInvocation:output_type -> google.devtools.resultstore.v2.Invocation 5, // 70: google.devtools.resultstore.v2.ResultStoreUpload.TouchInvocation:output_type -> google.devtools.resultstore.v2.TouchInvocationResponse 8, // 71: google.devtools.resultstore.v2.ResultStoreUpload.FinalizeInvocation:output_type -> google.devtools.resultstore.v2.FinalizeInvocationResponse 43, // 72: google.devtools.resultstore.v2.ResultStoreUpload.DeleteInvocation:output_type -> google.protobuf.Empty 36, // 73: google.devtools.resultstore.v2.ResultStoreUpload.CreateTarget:output_type -> google.devtools.resultstore.v2.Target 36, // 74: google.devtools.resultstore.v2.ResultStoreUpload.UpdateTarget:output_type -> google.devtools.resultstore.v2.Target 36, // 75: google.devtools.resultstore.v2.ResultStoreUpload.MergeTarget:output_type -> google.devtools.resultstore.v2.Target 13, // 76: google.devtools.resultstore.v2.ResultStoreUpload.FinalizeTarget:output_type -> google.devtools.resultstore.v2.FinalizeTargetResponse 38, // 77: google.devtools.resultstore.v2.ResultStoreUpload.CreateConfiguredTarget:output_type -> google.devtools.resultstore.v2.ConfiguredTarget 38, // 78: google.devtools.resultstore.v2.ResultStoreUpload.UpdateConfiguredTarget:output_type -> google.devtools.resultstore.v2.ConfiguredTarget 38, // 79: google.devtools.resultstore.v2.ResultStoreUpload.MergeConfiguredTarget:output_type -> google.devtools.resultstore.v2.ConfiguredTarget 18, // 80: google.devtools.resultstore.v2.ResultStoreUpload.FinalizeConfiguredTarget:output_type -> google.devtools.resultstore.v2.FinalizeConfiguredTargetResponse 40, // 81: google.devtools.resultstore.v2.ResultStoreUpload.CreateAction:output_type -> google.devtools.resultstore.v2.Action 40, // 82: google.devtools.resultstore.v2.ResultStoreUpload.UpdateAction:output_type -> google.devtools.resultstore.v2.Action 40, // 83: google.devtools.resultstore.v2.ResultStoreUpload.MergeAction:output_type -> google.devtools.resultstore.v2.Action 41, // 84: google.devtools.resultstore.v2.ResultStoreUpload.CreateConfiguration:output_type -> google.devtools.resultstore.v2.Configuration 41, // 85: google.devtools.resultstore.v2.ResultStoreUpload.UpdateConfiguration:output_type -> google.devtools.resultstore.v2.Configuration 42, // 86: google.devtools.resultstore.v2.ResultStoreUpload.CreateFileSet:output_type -> google.devtools.resultstore.v2.FileSet 42, // 87: google.devtools.resultstore.v2.ResultStoreUpload.UpdateFileSet:output_type -> google.devtools.resultstore.v2.FileSet 42, // 88: google.devtools.resultstore.v2.ResultStoreUpload.MergeFileSet:output_type -> google.devtools.resultstore.v2.FileSet 28, // 89: google.devtools.resultstore.v2.ResultStoreUpload.UploadBatch:output_type -> google.devtools.resultstore.v2.UploadBatchResponse 44, // 90: google.devtools.resultstore.v2.ResultStoreUpload.GetInvocationUploadMetadata:output_type -> google.devtools.resultstore.v2.UploadMetadata 67, // [67:91] is the sub-list for method output_type 43, // [43:67] is the sub-list for method input_type 43, // [43:43] is the sub-list for extension type_name 43, // [43:43] is the sub-list for extension extendee 0, // [0:43] is the sub-list for field type_name } func init() { file_google_devtools_resultstore_v2_resultstore_upload_proto_init() } func file_google_devtools_resultstore_v2_resultstore_upload_proto_init() { if File_google_devtools_resultstore_v2_resultstore_upload_proto != nil { return } file_google_devtools_resultstore_v2_action_proto_init() file_google_devtools_resultstore_v2_configuration_proto_init() file_google_devtools_resultstore_v2_configured_target_proto_init() file_google_devtools_resultstore_v2_file_set_proto_init() file_google_devtools_resultstore_v2_invocation_proto_init() file_google_devtools_resultstore_v2_target_proto_init() file_google_devtools_resultstore_v2_upload_metadata_proto_init() if !protoimpl.UnsafeEnabled { file_google_devtools_resultstore_v2_resultstore_upload_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_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[1].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_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MergeInvocationRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TouchInvocationRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TouchInvocationResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteInvocationRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[6].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_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizeInvocationResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateTargetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateTargetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MergeTargetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizeTargetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizeTargetResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateConfiguredTargetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfiguredTargetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MergeConfiguredTargetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizeConfiguredTargetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizeConfiguredTargetResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateActionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateActionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MergeActionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateConfigurationRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfigurationRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateFileSetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateFileSetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MergeFileSetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadBatchRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadBatchResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetInvocationUploadMetadataRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadRequest_Id); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes[28].OneofWrappers = []interface{}{ (*UploadRequest_Invocation)(nil), (*UploadRequest_Target)(nil), (*UploadRequest_Configuration)(nil), (*UploadRequest_ConfiguredTarget)(nil), (*UploadRequest_Action)(nil), (*UploadRequest_FileSet)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDesc, NumEnums: 1, NumMessages: 31, NumExtensions: 0, NumServices: 1, }, GoTypes: file_google_devtools_resultstore_v2_resultstore_upload_proto_goTypes, DependencyIndexes: file_google_devtools_resultstore_v2_resultstore_upload_proto_depIdxs, EnumInfos: file_google_devtools_resultstore_v2_resultstore_upload_proto_enumTypes, MessageInfos: file_google_devtools_resultstore_v2_resultstore_upload_proto_msgTypes, }.Build() File_google_devtools_resultstore_v2_resultstore_upload_proto = out.File file_google_devtools_resultstore_v2_resultstore_upload_proto_rawDesc = nil file_google_devtools_resultstore_v2_resultstore_upload_proto_goTypes = nil file_google_devtools_resultstore_v2_resultstore_upload_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 // ResultStoreUploadClient is the client API for ResultStoreUpload service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type ResultStoreUploadClient interface { // Creates the given invocation. // // This is not an implicitly idempotent API, so a request id is required to // make it idempotent. // // Returns an empty Invocation proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If an invocation with the same ID already exists. CreateInvocation(ctx context.Context, in *CreateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) // Applies a standard update to the invocation identified by the given proto's // name. For all types of fields (primitive, message, or repeated), replaces // them with the given proto fields if they are under the given field mask // paths. Fields that match the mask but aren't populated in the given // invocation are cleared. This is an implicitly idempotent API. // // Returns an empty Invocation proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If the invocation does not exist. // - If the invocation is finalized. // - If no field mask was given. UpdateInvocation(ctx context.Context, in *UpdateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) // Applies a merge update to the invocation identified by the given proto's // name. For primitive and message fields, replaces them with the ones in // the given proto if they are covered under the field mask paths. For // repeated fields, merges to them with the given ones if they are covered // under the field mask paths. This is not an implicitly idempotent API, so a // request id is required to make it idempotent. // // Returns an empty Invocation proto with only the name and ID fields // populated. // // // An error will be reported in the following cases: // - If the invocation does not exist. // - If the invocation is finalized. // - If no field mask was given. MergeInvocation(ctx context.Context, in *MergeInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) // Touches the invocation identified by the given proto's name. // // This is useful when you need to notify ResultStore that you haven't // abandoned the upload, since abandoned uploads will be automatically // finalized after a set period. // // An error will be reported in the following cases: // - If the invocation does not exist. // - If the invocation is finalized. TouchInvocation(ctx context.Context, in *TouchInvocationRequest, opts ...grpc.CallOption) (*TouchInvocationResponse, error) // Declares the invocation with the given name as finalized and immutable by // the user. It may still be mutated by post-processing. This is an implicitly // idempotent API. // // If an Invocation is not updated for 24 hours, some time after that // this will be called automatically. // // An error will be reported in the following cases: // - If the invocation does not exist. FinalizeInvocation(ctx context.Context, in *FinalizeInvocationRequest, opts ...grpc.CallOption) (*FinalizeInvocationResponse, error) // Deletes an immutable invocation (permanently) // Note: this does not delete indirect data, e.g. files stored in other // services. // // An error will be reported in the following cases: // - If the invocation does not exist. // - If the invocation is not finalized. This can be retried until it is. DeleteInvocation(ctx context.Context, in *DeleteInvocationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) // Creates the given target under the given parent invocation. The given // target ID is URL encoded, converted to the full resource name, and assigned // to the target's name field. This is not an implicitly idempotent API, so a // request id is required to make it idempotent. // // Returns an empty Target proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If no target ID is provided. // - If the parent invocation does not exist. // - If the parent invocation is finalized. // - If a target with the same name already exists. CreateTarget(ctx context.Context, in *CreateTargetRequest, opts ...grpc.CallOption) (*Target, error) // Applies a standard update to the target identified by the given proto's // name. For all types of fields (primitive, message, or repeated), replaces // them with the given proto fields if they are under the given field mask // paths. Fields that match the mask but aren't populated in the given // target are cleared. This is an implicitly idempotent API. // // Returns an empty Target proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If the target does not exist. // - If the target or parent invocation is finalized. // - If no field mask was given. UpdateTarget(ctx context.Context, in *UpdateTargetRequest, opts ...grpc.CallOption) (*Target, error) // Applies a merge update to the target identified by the given proto's // name. For primitive and message fields, replaces them with the ones in the // given proto if they are covered under the field mask paths. For repeated // fields, merges to them with the given ones if they are covered under the // field mask paths. This is not an implicitly idempotent API, so a request // id is required to make it idempotent. // // Returns an empty Target proto with only the name and ID fields populated. // // // An error will be reported in the following cases: // - If the target does not exist. // - If the target or parent invocation is finalized. // - If no field mask was given. MergeTarget(ctx context.Context, in *MergeTargetRequest, opts ...grpc.CallOption) (*Target, error) // Declares the target with the given name as finalized and immutable by the // user. It may still be mutated by post-processing. This is an implicitly // idempotent API. // // An error will be reported in the following cases: // - If the target does not exist. FinalizeTarget(ctx context.Context, in *FinalizeTargetRequest, opts ...grpc.CallOption) (*FinalizeTargetResponse, error) // Creates the given configured target under the given parent target. // The given configured target ID is URL encoded, converted to the full // resource name, and assigned to the configured target's name field. // This is not an implicitly idempotent API, so a request id is required // to make it idempotent. // // Returns an empty ConfiguredTarget proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If no config ID is provided. // - If a configured target with the same ID already exists. // - If the parent target does not exist. // - If the parent target or invocation is finalized. CreateConfiguredTarget(ctx context.Context, in *CreateConfiguredTargetRequest, opts ...grpc.CallOption) (*ConfiguredTarget, error) // Applies a standard update to the configured target identified by the given // proto's name. For all types of fields (primitive, message, or repeated), // replaces them with the given proto fields if they are under the given // field mask paths. Fields that match the mask but aren't populated in the // given configured target are cleared. This is an implicitly idempotent API. // // Returns an empty ConfiguredTarget proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If the configured target does not exist. // - If the parent target or invocation is finalized. // - If no field mask was given. UpdateConfiguredTarget(ctx context.Context, in *UpdateConfiguredTargetRequest, opts ...grpc.CallOption) (*ConfiguredTarget, error) // Applies a merge update to the configured target identified by the given // proto's name. For primitive and message fields, replaces them with the // ones in the given proto if they are covered under the field mask paths. // For repeated fields, merges to them with the given ones if they are // covered under the field mask paths. This is not an implicitly idempotent // API, so a request id is required to make it idempotent. // // Returns an empty ConfiguredTarget proto with only the name and ID fields // populated. // // // An error will be reported in the following cases: // - If the configured target does not exist. // - If the parent target or invocation is finalized. // - If no field mask was given. MergeConfiguredTarget(ctx context.Context, in *MergeConfiguredTargetRequest, opts ...grpc.CallOption) (*ConfiguredTarget, error) // Declares the configured target with the given name as finalized and // immutable by the user. It may still be mutated by post-processing. This is // an implicitly idempotent API. // // An error will be reported in the following cases: // - If the configured target does not exist. FinalizeConfiguredTarget(ctx context.Context, in *FinalizeConfiguredTargetRequest, opts ...grpc.CallOption) (*FinalizeConfiguredTargetResponse, error) // Creates the given action under the given configured target. The given // action ID is URL encoded, converted to the full resource name, and // assigned to the action's name field. This is not an implicitly // idempotent API, so a request id is required to make it idempotent. // // Returns an empty Action proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If no action ID provided. // - If the parent configured target does not exist. // - If the parent target or invocation is finalized. // - If an action with the same name already exists. CreateAction(ctx context.Context, in *CreateActionRequest, opts ...grpc.CallOption) (*Action, error) // Applies a standard update to the action identified by the given // proto's name. For all types of fields (primitive, message, or repeated), // replaces them with the given proto fields if they are under the given // field mask paths. Fields that match the mask but aren't populated in the // given action are cleared. This is an implicitly idempotent API. // // Returns an empty Action proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If the action does not exist. // - If the parent target or invocation is finalized. // - If no field mask was given. UpdateAction(ctx context.Context, in *UpdateActionRequest, opts ...grpc.CallOption) (*Action, error) // Applies a merge update to the action identified by the given // proto's name. For primitive and message fields, replaces them with the // ones in the given proto if they are covered under the field mask paths. // For repeated fields, merges to them with the given ones if they are // covered under the field mask paths. This is not an implicitly idempotent // API, so a request id is required to make it idempotent. // // Returns an empty Action proto with only the name and ID fields populated. // // // An error will be reported in the following cases: // - If the action does not exist. // - If the parent target or invocation is finalized. // - If no field mask was given. MergeAction(ctx context.Context, in *MergeActionRequest, opts ...grpc.CallOption) (*Action, error) // Creates the given configuration under the given parent invocation. The // given configuration ID is URL encoded, converted to the full resource name, // and assigned to the configuration's name field. The configuration ID of // "default" should be preferred for the default configuration in a // single-config invocation. This is not an implicitly idempotent API, so a // request id is required to make it idempotent. // // Returns an empty Configuration proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If no configuration ID is provided. // - If the parent invocation does not exist. // - If the parent invocation is finalized. // - If a configuration with the same name already exists. CreateConfiguration(ctx context.Context, in *CreateConfigurationRequest, opts ...grpc.CallOption) (*Configuration, error) // Applies a standard update to the configuration identified by the given // proto's name. For all types of fields (primitive, message, or repeated), // replaces them with the given proto fields if they are under the given field // mask paths. Fields that match the mask but aren't populated in the given // configuration are cleared. This is an implicitly idempotent API. // // Returns an empty Configuration proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If the configuration does not exist. // - If the parent invocation is finalized. // - If no field mask was given. // - If a given field mask path is not valid. UpdateConfiguration(ctx context.Context, in *UpdateConfigurationRequest, opts ...grpc.CallOption) (*Configuration, error) // Creates the given file set under the given parent invocation. The given // file set ID is URL encoded, converted to the full resource name, and // assigned to the file set's name field. This is not an implicitly idempotent // API, so a request id is required to make it idempotent. // // Returns an empty FileSet proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If no file set ID is provided. // - If a file set with the same name already exists. // - If the parent invocation does not exist. // - If the parent invocation is finalized. CreateFileSet(ctx context.Context, in *CreateFileSetRequest, opts ...grpc.CallOption) (*FileSet, error) // Applies a standard update to the file set identified by the given proto's // name. For all types of fields (primitive, message, or repeated), replaces // them with the given proto fields if they are under the given field mask // paths. Fields that match the mask but aren't populated in the given // configuration are cleared. This is an implicitly idempotent API. // // Returns an empty FileSet proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If the file set does not exist. // - If the parent invocation is finalized. // - If no field mask was given. // - If a given field mask path is not valid. UpdateFileSet(ctx context.Context, in *UpdateFileSetRequest, opts ...grpc.CallOption) (*FileSet, error) // Applies a merge update to the file set identified by the given proto's // name. For primitive and message fields, updates them with the ones in the // given proto if they are covered under the field mask paths. For repeated // fields, merges to them with the given ones if they are covered under the // field mask paths. This is not an implicitly idempotent API, so a request // id is required to make it idempotent. // // Returns an empty FileSet proto with only the name and ID fields populated. // // // An error will be reported in the following cases: // - If the file set does not exist. // - If the parent invocation is finalized. // - If a given field mask path is not valid. // - If no field mask was given. MergeFileSet(ctx context.Context, in *MergeFileSetRequest, opts ...grpc.CallOption) (*FileSet, error) // This is the RPC used for batch upload. It supports uploading multiple // resources for an invocation in a transaction safe manner. // // To use this RPC, the CreateInvocationRequest must have been provided a // resume_token. // // Combining batch upload with normal upload on a single Invocation is not // supported. If an Invocation is created with a resume_token, all further // calls must be through UploadBatch. If an Invocation is created without // resume_token normal upload, all further upload calls must be through normal // upload RPCs. // // The recommend total size of UploadBatchRequest is 10 MiB. If // it is too large, it may be rejected. UploadBatch(ctx context.Context, in *UploadBatchRequest, opts ...grpc.CallOption) (*UploadBatchResponse, error) // Provides a way to read the metadata for an invocation. // The UploadMetadata could still be retrieved by this RPC even the Invocation // has been finalized. // This API requires setting a response FieldMask via 'fields' URL query // parameter or X-Goog-FieldMask HTTP/gRPC header. // // An error will be reported in the following case: // - If the invocation does not exist. // - If no field mask was given. GetInvocationUploadMetadata(ctx context.Context, in *GetInvocationUploadMetadataRequest, opts ...grpc.CallOption) (*UploadMetadata, error) } type resultStoreUploadClient struct { cc grpc.ClientConnInterface } func NewResultStoreUploadClient(cc grpc.ClientConnInterface) ResultStoreUploadClient { return &resultStoreUploadClient{cc} } func (c *resultStoreUploadClient) CreateInvocation(ctx context.Context, in *CreateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) { out := new(Invocation) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/CreateInvocation", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) UpdateInvocation(ctx context.Context, in *UpdateInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) { out := new(Invocation) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateInvocation", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) MergeInvocation(ctx context.Context, in *MergeInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) { out := new(Invocation) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/MergeInvocation", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) TouchInvocation(ctx context.Context, in *TouchInvocationRequest, opts ...grpc.CallOption) (*TouchInvocationResponse, error) { out := new(TouchInvocationResponse) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/TouchInvocation", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) FinalizeInvocation(ctx context.Context, in *FinalizeInvocationRequest, opts ...grpc.CallOption) (*FinalizeInvocationResponse, error) { out := new(FinalizeInvocationResponse) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/FinalizeInvocation", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) DeleteInvocation(ctx context.Context, in *DeleteInvocationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/DeleteInvocation", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) CreateTarget(ctx context.Context, in *CreateTargetRequest, opts ...grpc.CallOption) (*Target, error) { out := new(Target) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/CreateTarget", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) UpdateTarget(ctx context.Context, in *UpdateTargetRequest, opts ...grpc.CallOption) (*Target, error) { out := new(Target) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateTarget", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) MergeTarget(ctx context.Context, in *MergeTargetRequest, opts ...grpc.CallOption) (*Target, error) { out := new(Target) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/MergeTarget", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) FinalizeTarget(ctx context.Context, in *FinalizeTargetRequest, opts ...grpc.CallOption) (*FinalizeTargetResponse, error) { out := new(FinalizeTargetResponse) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/FinalizeTarget", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) CreateConfiguredTarget(ctx context.Context, in *CreateConfiguredTargetRequest, opts ...grpc.CallOption) (*ConfiguredTarget, error) { out := new(ConfiguredTarget) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/CreateConfiguredTarget", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) UpdateConfiguredTarget(ctx context.Context, in *UpdateConfiguredTargetRequest, opts ...grpc.CallOption) (*ConfiguredTarget, error) { out := new(ConfiguredTarget) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateConfiguredTarget", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) MergeConfiguredTarget(ctx context.Context, in *MergeConfiguredTargetRequest, opts ...grpc.CallOption) (*ConfiguredTarget, error) { out := new(ConfiguredTarget) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/MergeConfiguredTarget", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) FinalizeConfiguredTarget(ctx context.Context, in *FinalizeConfiguredTargetRequest, opts ...grpc.CallOption) (*FinalizeConfiguredTargetResponse, error) { out := new(FinalizeConfiguredTargetResponse) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/FinalizeConfiguredTarget", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) CreateAction(ctx context.Context, in *CreateActionRequest, opts ...grpc.CallOption) (*Action, error) { out := new(Action) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/CreateAction", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) UpdateAction(ctx context.Context, in *UpdateActionRequest, opts ...grpc.CallOption) (*Action, error) { out := new(Action) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateAction", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) MergeAction(ctx context.Context, in *MergeActionRequest, opts ...grpc.CallOption) (*Action, error) { out := new(Action) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/MergeAction", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) CreateConfiguration(ctx context.Context, in *CreateConfigurationRequest, opts ...grpc.CallOption) (*Configuration, error) { out := new(Configuration) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/CreateConfiguration", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) UpdateConfiguration(ctx context.Context, in *UpdateConfigurationRequest, opts ...grpc.CallOption) (*Configuration, error) { out := new(Configuration) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateConfiguration", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) CreateFileSet(ctx context.Context, in *CreateFileSetRequest, opts ...grpc.CallOption) (*FileSet, error) { out := new(FileSet) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/CreateFileSet", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) UpdateFileSet(ctx context.Context, in *UpdateFileSetRequest, opts ...grpc.CallOption) (*FileSet, error) { out := new(FileSet) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateFileSet", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) MergeFileSet(ctx context.Context, in *MergeFileSetRequest, opts ...grpc.CallOption) (*FileSet, error) { out := new(FileSet) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/MergeFileSet", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) UploadBatch(ctx context.Context, in *UploadBatchRequest, opts ...grpc.CallOption) (*UploadBatchResponse, error) { out := new(UploadBatchResponse) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/UploadBatch", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *resultStoreUploadClient) GetInvocationUploadMetadata(ctx context.Context, in *GetInvocationUploadMetadataRequest, opts ...grpc.CallOption) (*UploadMetadata, error) { out := new(UploadMetadata) err := c.cc.Invoke(ctx, "/google.devtools.resultstore.v2.ResultStoreUpload/GetInvocationUploadMetadata", in, out, opts...) if err != nil { return nil, err } return out, nil } // ResultStoreUploadServer is the server API for ResultStoreUpload service. type ResultStoreUploadServer interface { // Creates the given invocation. // // This is not an implicitly idempotent API, so a request id is required to // make it idempotent. // // Returns an empty Invocation proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If an invocation with the same ID already exists. CreateInvocation(context.Context, *CreateInvocationRequest) (*Invocation, error) // Applies a standard update to the invocation identified by the given proto's // name. For all types of fields (primitive, message, or repeated), replaces // them with the given proto fields if they are under the given field mask // paths. Fields that match the mask but aren't populated in the given // invocation are cleared. This is an implicitly idempotent API. // // Returns an empty Invocation proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If the invocation does not exist. // - If the invocation is finalized. // - If no field mask was given. UpdateInvocation(context.Context, *UpdateInvocationRequest) (*Invocation, error) // Applies a merge update to the invocation identified by the given proto's // name. For primitive and message fields, replaces them with the ones in // the given proto if they are covered under the field mask paths. For // repeated fields, merges to them with the given ones if they are covered // under the field mask paths. This is not an implicitly idempotent API, so a // request id is required to make it idempotent. // // Returns an empty Invocation proto with only the name and ID fields // populated. // // // An error will be reported in the following cases: // - If the invocation does not exist. // - If the invocation is finalized. // - If no field mask was given. MergeInvocation(context.Context, *MergeInvocationRequest) (*Invocation, error) // Touches the invocation identified by the given proto's name. // // This is useful when you need to notify ResultStore that you haven't // abandoned the upload, since abandoned uploads will be automatically // finalized after a set period. // // An error will be reported in the following cases: // - If the invocation does not exist. // - If the invocation is finalized. TouchInvocation(context.Context, *TouchInvocationRequest) (*TouchInvocationResponse, error) // Declares the invocation with the given name as finalized and immutable by // the user. It may still be mutated by post-processing. This is an implicitly // idempotent API. // // If an Invocation is not updated for 24 hours, some time after that // this will be called automatically. // // An error will be reported in the following cases: // - If the invocation does not exist. FinalizeInvocation(context.Context, *FinalizeInvocationRequest) (*FinalizeInvocationResponse, error) // Deletes an immutable invocation (permanently) // Note: this does not delete indirect data, e.g. files stored in other // services. // // An error will be reported in the following cases: // - If the invocation does not exist. // - If the invocation is not finalized. This can be retried until it is. DeleteInvocation(context.Context, *DeleteInvocationRequest) (*emptypb.Empty, error) // Creates the given target under the given parent invocation. The given // target ID is URL encoded, converted to the full resource name, and assigned // to the target's name field. This is not an implicitly idempotent API, so a // request id is required to make it idempotent. // // Returns an empty Target proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If no target ID is provided. // - If the parent invocation does not exist. // - If the parent invocation is finalized. // - If a target with the same name already exists. CreateTarget(context.Context, *CreateTargetRequest) (*Target, error) // Applies a standard update to the target identified by the given proto's // name. For all types of fields (primitive, message, or repeated), replaces // them with the given proto fields if they are under the given field mask // paths. Fields that match the mask but aren't populated in the given // target are cleared. This is an implicitly idempotent API. // // Returns an empty Target proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If the target does not exist. // - If the target or parent invocation is finalized. // - If no field mask was given. UpdateTarget(context.Context, *UpdateTargetRequest) (*Target, error) // Applies a merge update to the target identified by the given proto's // name. For primitive and message fields, replaces them with the ones in the // given proto if they are covered under the field mask paths. For repeated // fields, merges to them with the given ones if they are covered under the // field mask paths. This is not an implicitly idempotent API, so a request // id is required to make it idempotent. // // Returns an empty Target proto with only the name and ID fields populated. // // // An error will be reported in the following cases: // - If the target does not exist. // - If the target or parent invocation is finalized. // - If no field mask was given. MergeTarget(context.Context, *MergeTargetRequest) (*Target, error) // Declares the target with the given name as finalized and immutable by the // user. It may still be mutated by post-processing. This is an implicitly // idempotent API. // // An error will be reported in the following cases: // - If the target does not exist. FinalizeTarget(context.Context, *FinalizeTargetRequest) (*FinalizeTargetResponse, error) // Creates the given configured target under the given parent target. // The given configured target ID is URL encoded, converted to the full // resource name, and assigned to the configured target's name field. // This is not an implicitly idempotent API, so a request id is required // to make it idempotent. // // Returns an empty ConfiguredTarget proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If no config ID is provided. // - If a configured target with the same ID already exists. // - If the parent target does not exist. // - If the parent target or invocation is finalized. CreateConfiguredTarget(context.Context, *CreateConfiguredTargetRequest) (*ConfiguredTarget, error) // Applies a standard update to the configured target identified by the given // proto's name. For all types of fields (primitive, message, or repeated), // replaces them with the given proto fields if they are under the given // field mask paths. Fields that match the mask but aren't populated in the // given configured target are cleared. This is an implicitly idempotent API. // // Returns an empty ConfiguredTarget proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If the configured target does not exist. // - If the parent target or invocation is finalized. // - If no field mask was given. UpdateConfiguredTarget(context.Context, *UpdateConfiguredTargetRequest) (*ConfiguredTarget, error) // Applies a merge update to the configured target identified by the given // proto's name. For primitive and message fields, replaces them with the // ones in the given proto if they are covered under the field mask paths. // For repeated fields, merges to them with the given ones if they are // covered under the field mask paths. This is not an implicitly idempotent // API, so a request id is required to make it idempotent. // // Returns an empty ConfiguredTarget proto with only the name and ID fields // populated. // // // An error will be reported in the following cases: // - If the configured target does not exist. // - If the parent target or invocation is finalized. // - If no field mask was given. MergeConfiguredTarget(context.Context, *MergeConfiguredTargetRequest) (*ConfiguredTarget, error) // Declares the configured target with the given name as finalized and // immutable by the user. It may still be mutated by post-processing. This is // an implicitly idempotent API. // // An error will be reported in the following cases: // - If the configured target does not exist. FinalizeConfiguredTarget(context.Context, *FinalizeConfiguredTargetRequest) (*FinalizeConfiguredTargetResponse, error) // Creates the given action under the given configured target. The given // action ID is URL encoded, converted to the full resource name, and // assigned to the action's name field. This is not an implicitly // idempotent API, so a request id is required to make it idempotent. // // Returns an empty Action proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If no action ID provided. // - If the parent configured target does not exist. // - If the parent target or invocation is finalized. // - If an action with the same name already exists. CreateAction(context.Context, *CreateActionRequest) (*Action, error) // Applies a standard update to the action identified by the given // proto's name. For all types of fields (primitive, message, or repeated), // replaces them with the given proto fields if they are under the given // field mask paths. Fields that match the mask but aren't populated in the // given action are cleared. This is an implicitly idempotent API. // // Returns an empty Action proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If the action does not exist. // - If the parent target or invocation is finalized. // - If no field mask was given. UpdateAction(context.Context, *UpdateActionRequest) (*Action, error) // Applies a merge update to the action identified by the given // proto's name. For primitive and message fields, replaces them with the // ones in the given proto if they are covered under the field mask paths. // For repeated fields, merges to them with the given ones if they are // covered under the field mask paths. This is not an implicitly idempotent // API, so a request id is required to make it idempotent. // // Returns an empty Action proto with only the name and ID fields populated. // // // An error will be reported in the following cases: // - If the action does not exist. // - If the parent target or invocation is finalized. // - If no field mask was given. MergeAction(context.Context, *MergeActionRequest) (*Action, error) // Creates the given configuration under the given parent invocation. The // given configuration ID is URL encoded, converted to the full resource name, // and assigned to the configuration's name field. The configuration ID of // "default" should be preferred for the default configuration in a // single-config invocation. This is not an implicitly idempotent API, so a // request id is required to make it idempotent. // // Returns an empty Configuration proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If no configuration ID is provided. // - If the parent invocation does not exist. // - If the parent invocation is finalized. // - If a configuration with the same name already exists. CreateConfiguration(context.Context, *CreateConfigurationRequest) (*Configuration, error) // Applies a standard update to the configuration identified by the given // proto's name. For all types of fields (primitive, message, or repeated), // replaces them with the given proto fields if they are under the given field // mask paths. Fields that match the mask but aren't populated in the given // configuration are cleared. This is an implicitly idempotent API. // // Returns an empty Configuration proto with only the name and ID fields // populated. // // An error will be reported in the following cases: // - If the configuration does not exist. // - If the parent invocation is finalized. // - If no field mask was given. // - If a given field mask path is not valid. UpdateConfiguration(context.Context, *UpdateConfigurationRequest) (*Configuration, error) // Creates the given file set under the given parent invocation. The given // file set ID is URL encoded, converted to the full resource name, and // assigned to the file set's name field. This is not an implicitly idempotent // API, so a request id is required to make it idempotent. // // Returns an empty FileSet proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If no file set ID is provided. // - If a file set with the same name already exists. // - If the parent invocation does not exist. // - If the parent invocation is finalized. CreateFileSet(context.Context, *CreateFileSetRequest) (*FileSet, error) // Applies a standard update to the file set identified by the given proto's // name. For all types of fields (primitive, message, or repeated), replaces // them with the given proto fields if they are under the given field mask // paths. Fields that match the mask but aren't populated in the given // configuration are cleared. This is an implicitly idempotent API. // // Returns an empty FileSet proto with only the name and ID fields populated. // // An error will be reported in the following cases: // - If the file set does not exist. // - If the parent invocation is finalized. // - If no field mask was given. // - If a given field mask path is not valid. UpdateFileSet(context.Context, *UpdateFileSetRequest) (*FileSet, error) // Applies a merge update to the file set identified by the given proto's // name. For primitive and message fields, updates them with the ones in the // given proto if they are covered under the field mask paths. For repeated // fields, merges to them with the given ones if they are covered under the // field mask paths. This is not an implicitly idempotent API, so a request // id is required to make it idempotent. // // Returns an empty FileSet proto with only the name and ID fields populated. // // // An error will be reported in the following cases: // - If the file set does not exist. // - If the parent invocation is finalized. // - If a given field mask path is not valid. // - If no field mask was given. MergeFileSet(context.Context, *MergeFileSetRequest) (*FileSet, error) // This is the RPC used for batch upload. It supports uploading multiple // resources for an invocation in a transaction safe manner. // // To use this RPC, the CreateInvocationRequest must have been provided a // resume_token. // // Combining batch upload with normal upload on a single Invocation is not // supported. If an Invocation is created with a resume_token, all further // calls must be through UploadBatch. If an Invocation is created without // resume_token normal upload, all further upload calls must be through normal // upload RPCs. // // The recommend total size of UploadBatchRequest is 10 MiB. If // it is too large, it may be rejected. UploadBatch(context.Context, *UploadBatchRequest) (*UploadBatchResponse, error) // Provides a way to read the metadata for an invocation. // The UploadMetadata could still be retrieved by this RPC even the Invocation // has been finalized. // This API requires setting a response FieldMask via 'fields' URL query // parameter or X-Goog-FieldMask HTTP/gRPC header. // // An error will be reported in the following case: // - If the invocation does not exist. // - If no field mask was given. GetInvocationUploadMetadata(context.Context, *GetInvocationUploadMetadataRequest) (*UploadMetadata, error) } // UnimplementedResultStoreUploadServer can be embedded to have forward compatible implementations. type UnimplementedResultStoreUploadServer struct { } func (*UnimplementedResultStoreUploadServer) CreateInvocation(context.Context, *CreateInvocationRequest) (*Invocation, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateInvocation not implemented") } func (*UnimplementedResultStoreUploadServer) UpdateInvocation(context.Context, *UpdateInvocationRequest) (*Invocation, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateInvocation not implemented") } func (*UnimplementedResultStoreUploadServer) MergeInvocation(context.Context, *MergeInvocationRequest) (*Invocation, error) { return nil, status.Errorf(codes.Unimplemented, "method MergeInvocation not implemented") } func (*UnimplementedResultStoreUploadServer) TouchInvocation(context.Context, *TouchInvocationRequest) (*TouchInvocationResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method TouchInvocation not implemented") } func (*UnimplementedResultStoreUploadServer) FinalizeInvocation(context.Context, *FinalizeInvocationRequest) (*FinalizeInvocationResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FinalizeInvocation not implemented") } func (*UnimplementedResultStoreUploadServer) DeleteInvocation(context.Context, *DeleteInvocationRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteInvocation not implemented") } func (*UnimplementedResultStoreUploadServer) CreateTarget(context.Context, *CreateTargetRequest) (*Target, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateTarget not implemented") } func (*UnimplementedResultStoreUploadServer) UpdateTarget(context.Context, *UpdateTargetRequest) (*Target, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateTarget not implemented") } func (*UnimplementedResultStoreUploadServer) MergeTarget(context.Context, *MergeTargetRequest) (*Target, error) { return nil, status.Errorf(codes.Unimplemented, "method MergeTarget not implemented") } func (*UnimplementedResultStoreUploadServer) FinalizeTarget(context.Context, *FinalizeTargetRequest) (*FinalizeTargetResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FinalizeTarget not implemented") } func (*UnimplementedResultStoreUploadServer) CreateConfiguredTarget(context.Context, *CreateConfiguredTargetRequest) (*ConfiguredTarget, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateConfiguredTarget not implemented") } func (*UnimplementedResultStoreUploadServer) UpdateConfiguredTarget(context.Context, *UpdateConfiguredTargetRequest) (*ConfiguredTarget, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateConfiguredTarget not implemented") } func (*UnimplementedResultStoreUploadServer) MergeConfiguredTarget(context.Context, *MergeConfiguredTargetRequest) (*ConfiguredTarget, error) { return nil, status.Errorf(codes.Unimplemented, "method MergeConfiguredTarget not implemented") } func (*UnimplementedResultStoreUploadServer) FinalizeConfiguredTarget(context.Context, *FinalizeConfiguredTargetRequest) (*FinalizeConfiguredTargetResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FinalizeConfiguredTarget not implemented") } func (*UnimplementedResultStoreUploadServer) CreateAction(context.Context, *CreateActionRequest) (*Action, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateAction not implemented") } func (*UnimplementedResultStoreUploadServer) UpdateAction(context.Context, *UpdateActionRequest) (*Action, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateAction not implemented") } func (*UnimplementedResultStoreUploadServer) MergeAction(context.Context, *MergeActionRequest) (*Action, error) { return nil, status.Errorf(codes.Unimplemented, "method MergeAction not implemented") } func (*UnimplementedResultStoreUploadServer) CreateConfiguration(context.Context, *CreateConfigurationRequest) (*Configuration, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateConfiguration not implemented") } func (*UnimplementedResultStoreUploadServer) UpdateConfiguration(context.Context, *UpdateConfigurationRequest) (*Configuration, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateConfiguration not implemented") } func (*UnimplementedResultStoreUploadServer) CreateFileSet(context.Context, *CreateFileSetRequest) (*FileSet, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateFileSet not implemented") } func (*UnimplementedResultStoreUploadServer) UpdateFileSet(context.Context, *UpdateFileSetRequest) (*FileSet, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateFileSet not implemented") } func (*UnimplementedResultStoreUploadServer) MergeFileSet(context.Context, *MergeFileSetRequest) (*FileSet, error) { return nil, status.Errorf(codes.Unimplemented, "method MergeFileSet not implemented") } func (*UnimplementedResultStoreUploadServer) UploadBatch(context.Context, *UploadBatchRequest) (*UploadBatchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UploadBatch not implemented") } func (*UnimplementedResultStoreUploadServer) GetInvocationUploadMetadata(context.Context, *GetInvocationUploadMetadataRequest) (*UploadMetadata, error) { return nil, status.Errorf(codes.Unimplemented, "method GetInvocationUploadMetadata not implemented") } func RegisterResultStoreUploadServer(s *grpc.Server, srv ResultStoreUploadServer) { s.RegisterService(&_ResultStoreUpload_serviceDesc, srv) } func _ResultStoreUpload_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.(ResultStoreUploadServer).CreateInvocation(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/CreateInvocation", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).CreateInvocation(ctx, req.(*CreateInvocationRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_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.(ResultStoreUploadServer).UpdateInvocation(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateInvocation", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).UpdateInvocation(ctx, req.(*UpdateInvocationRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_MergeInvocation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MergeInvocationRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).MergeInvocation(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/MergeInvocation", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).MergeInvocation(ctx, req.(*MergeInvocationRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_TouchInvocation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(TouchInvocationRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).TouchInvocation(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/TouchInvocation", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).TouchInvocation(ctx, req.(*TouchInvocationRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_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.(ResultStoreUploadServer).FinalizeInvocation(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/FinalizeInvocation", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).FinalizeInvocation(ctx, req.(*FinalizeInvocationRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_DeleteInvocation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteInvocationRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).DeleteInvocation(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/DeleteInvocation", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).DeleteInvocation(ctx, req.(*DeleteInvocationRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_CreateTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateTargetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).CreateTarget(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/CreateTarget", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).CreateTarget(ctx, req.(*CreateTargetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_UpdateTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateTargetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).UpdateTarget(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateTarget", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).UpdateTarget(ctx, req.(*UpdateTargetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_MergeTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MergeTargetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).MergeTarget(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/MergeTarget", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).MergeTarget(ctx, req.(*MergeTargetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_FinalizeTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(FinalizeTargetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).FinalizeTarget(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/FinalizeTarget", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).FinalizeTarget(ctx, req.(*FinalizeTargetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_CreateConfiguredTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateConfiguredTargetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).CreateConfiguredTarget(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/CreateConfiguredTarget", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).CreateConfiguredTarget(ctx, req.(*CreateConfiguredTargetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_UpdateConfiguredTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateConfiguredTargetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).UpdateConfiguredTarget(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateConfiguredTarget", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).UpdateConfiguredTarget(ctx, req.(*UpdateConfiguredTargetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_MergeConfiguredTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MergeConfiguredTargetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).MergeConfiguredTarget(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/MergeConfiguredTarget", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).MergeConfiguredTarget(ctx, req.(*MergeConfiguredTargetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_FinalizeConfiguredTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(FinalizeConfiguredTargetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).FinalizeConfiguredTarget(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/FinalizeConfiguredTarget", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).FinalizeConfiguredTarget(ctx, req.(*FinalizeConfiguredTargetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_CreateAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateActionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).CreateAction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/CreateAction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).CreateAction(ctx, req.(*CreateActionRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_UpdateAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateActionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).UpdateAction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateAction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).UpdateAction(ctx, req.(*UpdateActionRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_MergeAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MergeActionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).MergeAction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/MergeAction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).MergeAction(ctx, req.(*MergeActionRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_CreateConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateConfigurationRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).CreateConfiguration(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/CreateConfiguration", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).CreateConfiguration(ctx, req.(*CreateConfigurationRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_UpdateConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateConfigurationRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).UpdateConfiguration(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateConfiguration", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).UpdateConfiguration(ctx, req.(*UpdateConfigurationRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_CreateFileSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateFileSetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).CreateFileSet(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/CreateFileSet", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).CreateFileSet(ctx, req.(*CreateFileSetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_UpdateFileSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateFileSetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).UpdateFileSet(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/UpdateFileSet", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).UpdateFileSet(ctx, req.(*UpdateFileSetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_MergeFileSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MergeFileSetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).MergeFileSet(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/MergeFileSet", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).MergeFileSet(ctx, req.(*MergeFileSetRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_UploadBatch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UploadBatchRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).UploadBatch(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/UploadBatch", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).UploadBatch(ctx, req.(*UploadBatchRequest)) } return interceptor(ctx, in, info, handler) } func _ResultStoreUpload_GetInvocationUploadMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetInvocationUploadMetadataRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(ResultStoreUploadServer).GetInvocationUploadMetadata(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.resultstore.v2.ResultStoreUpload/GetInvocationUploadMetadata", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ResultStoreUploadServer).GetInvocationUploadMetadata(ctx, req.(*GetInvocationUploadMetadataRequest)) } return interceptor(ctx, in, info, handler) } var _ResultStoreUpload_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.devtools.resultstore.v2.ResultStoreUpload", HandlerType: (*ResultStoreUploadServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "CreateInvocation", Handler: _ResultStoreUpload_CreateInvocation_Handler, }, { MethodName: "UpdateInvocation", Handler: _ResultStoreUpload_UpdateInvocation_Handler, }, { MethodName: "MergeInvocation", Handler: _ResultStoreUpload_MergeInvocation_Handler, }, { MethodName: "TouchInvocation", Handler: _ResultStoreUpload_TouchInvocation_Handler, }, { MethodName: "FinalizeInvocation", Handler: _ResultStoreUpload_FinalizeInvocation_Handler, }, { MethodName: "DeleteInvocation", Handler: _ResultStoreUpload_DeleteInvocation_Handler, }, { MethodName: "CreateTarget", Handler: _ResultStoreUpload_CreateTarget_Handler, }, { MethodName: "UpdateTarget", Handler: _ResultStoreUpload_UpdateTarget_Handler, }, { MethodName: "MergeTarget", Handler: _ResultStoreUpload_MergeTarget_Handler, }, { MethodName: "FinalizeTarget", Handler: _ResultStoreUpload_FinalizeTarget_Handler, }, { MethodName: "CreateConfiguredTarget", Handler: _ResultStoreUpload_CreateConfiguredTarget_Handler, }, { MethodName: "UpdateConfiguredTarget", Handler: _ResultStoreUpload_UpdateConfiguredTarget_Handler, }, { MethodName: "MergeConfiguredTarget", Handler: _ResultStoreUpload_MergeConfiguredTarget_Handler, }, { MethodName: "FinalizeConfiguredTarget", Handler: _ResultStoreUpload_FinalizeConfiguredTarget_Handler, }, { MethodName: "CreateAction", Handler: _ResultStoreUpload_CreateAction_Handler, }, { MethodName: "UpdateAction", Handler: _ResultStoreUpload_UpdateAction_Handler, }, { MethodName: "MergeAction", Handler: _ResultStoreUpload_MergeAction_Handler, }, { MethodName: "CreateConfiguration", Handler: _ResultStoreUpload_CreateConfiguration_Handler, }, { MethodName: "UpdateConfiguration", Handler: _ResultStoreUpload_UpdateConfiguration_Handler, }, { MethodName: "CreateFileSet", Handler: _ResultStoreUpload_CreateFileSet_Handler, }, { MethodName: "UpdateFileSet", Handler: _ResultStoreUpload_UpdateFileSet_Handler, }, { MethodName: "MergeFileSet", Handler: _ResultStoreUpload_MergeFileSet_Handler, }, { MethodName: "UploadBatch", Handler: _ResultStoreUpload_UploadBatch_Handler, }, { MethodName: "GetInvocationUploadMetadata", Handler: _ResultStoreUpload_GetInvocationUploadMetadata_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/devtools/resultstore/v2/resultstore_upload.proto", }