// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v3.21.9 // source: object.proto package object import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // Status enumeration type WriteObjectResponse_Status int32 const ( WriteObjectResponse_ERROR WriteObjectResponse_Status = 0 WriteObjectResponse_CREATED WriteObjectResponse_Status = 1 WriteObjectResponse_UPDATED WriteObjectResponse_Status = 2 WriteObjectResponse_UNCHANGED WriteObjectResponse_Status = 3 ) // Enum value maps for WriteObjectResponse_Status. var ( WriteObjectResponse_Status_name = map[int32]string{ 0: "ERROR", 1: "CREATED", 2: "UPDATED", 3: "UNCHANGED", } WriteObjectResponse_Status_value = map[string]int32{ "ERROR": 0, "CREATED": 1, "UPDATED": 2, "UNCHANGED": 3, } ) func (x WriteObjectResponse_Status) Enum() *WriteObjectResponse_Status { p := new(WriteObjectResponse_Status) *p = x return p } func (x WriteObjectResponse_Status) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (WriteObjectResponse_Status) Descriptor() protoreflect.EnumDescriptor { return file_object_proto_enumTypes[0].Descriptor() } func (WriteObjectResponse_Status) Type() protoreflect.EnumType { return &file_object_proto_enumTypes[0] } func (x WriteObjectResponse_Status) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use WriteObjectResponse_Status.Descriptor instead. func (WriteObjectResponse_Status) EnumDescriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{10, 0} } type GRN struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // the tenant/org id TenantId int64 `protobuf:"varint,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` // mabybe "namespace"? valid values include // * entity // * drive // * service/xyz Scope string `protobuf:"bytes,2,opt,name=scope,proto3" json:"scope,omitempty"` // Identify the object kind. This kind will be used to apply a schema to the body and // will trigger additional indexing behavior. Kind string `protobuf:"bytes,3,opt,name=kind,proto3" json:"kind,omitempty"` // Unique ID UID string `protobuf:"bytes,4,opt,name=UID,proto3" json:"UID,omitempty"` } func (x *GRN) Reset() { *x = GRN{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GRN) String() string { return protoimpl.X.MessageStringOf(x) } func (*GRN) ProtoMessage() {} func (x *GRN) ProtoReflect() protoreflect.Message { mi := &file_object_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 GRN.ProtoReflect.Descriptor instead. func (*GRN) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{0} } func (x *GRN) GetTenantId() int64 { if x != nil { return x.TenantId } return 0 } func (x *GRN) GetScope() string { if x != nil { return x.Scope } return "" } func (x *GRN) GetKind() string { if x != nil { return x.Kind } return "" } func (x *GRN) GetUID() string { if x != nil { return x.UID } return "" } // The canonical object/document data -- this represents the raw bytes and storage level metadata type RawObject struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Object identifier GRN *GRN `protobuf:"bytes,1,opt,name=GRN,proto3" json:"GRN,omitempty"` // Time in epoch milliseconds that the object was created Created int64 `protobuf:"varint,2,opt,name=created,proto3" json:"created,omitempty"` // Time in epoch milliseconds that the object was updated Updated int64 `protobuf:"varint,3,opt,name=updated,proto3" json:"updated,omitempty"` // Who created the object CreatedBy string `protobuf:"bytes,4,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"` // Who updated the object UpdatedBy string `protobuf:"bytes,5,opt,name=updated_by,json=updatedBy,proto3" json:"updated_by,omitempty"` // Content Length Size int64 `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"` // MD5 digest of the body ETag string `protobuf:"bytes,7,opt,name=ETag,proto3" json:"ETag,omitempty"` // Raw bytes of the storage object. The kind will determine what is a valid payload Body []byte `protobuf:"bytes,8,opt,name=body,proto3" json:"body,omitempty"` // The version will change when the object is saved. It is not necessarily sortable // // NOTE: currently managed by the dashboard+dashboard_version tables Version string `protobuf:"bytes,9,opt,name=version,proto3" json:"version,omitempty"` // External location info Sync *RawObjectSyncInfo `protobuf:"bytes,10,opt,name=sync,proto3" json:"sync,omitempty"` } func (x *RawObject) Reset() { *x = RawObject{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RawObject) String() string { return protoimpl.X.MessageStringOf(x) } func (*RawObject) ProtoMessage() {} func (x *RawObject) ProtoReflect() protoreflect.Message { mi := &file_object_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 RawObject.ProtoReflect.Descriptor instead. func (*RawObject) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{1} } func (x *RawObject) GetGRN() *GRN { if x != nil { return x.GRN } return nil } func (x *RawObject) GetCreated() int64 { if x != nil { return x.Created } return 0 } func (x *RawObject) GetUpdated() int64 { if x != nil { return x.Updated } return 0 } func (x *RawObject) GetCreatedBy() string { if x != nil { return x.CreatedBy } return "" } func (x *RawObject) GetUpdatedBy() string { if x != nil { return x.UpdatedBy } return "" } func (x *RawObject) GetSize() int64 { if x != nil { return x.Size } return 0 } func (x *RawObject) GetETag() string { if x != nil { return x.ETag } return "" } func (x *RawObject) GetBody() []byte { if x != nil { return x.Body } return nil } func (x *RawObject) GetVersion() string { if x != nil { return x.Version } return "" } func (x *RawObject) GetSync() *RawObjectSyncInfo { if x != nil { return x.Sync } return nil } type RawObjectSyncInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // NOTE: currently managed by the dashboard_provisioning table Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` // Time in epoch milliseconds that the object was last synced with an external system (provisioning/git) Time int64 `protobuf:"varint,2,opt,name=time,proto3" json:"time,omitempty"` } func (x *RawObjectSyncInfo) Reset() { *x = RawObjectSyncInfo{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RawObjectSyncInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RawObjectSyncInfo) ProtoMessage() {} func (x *RawObjectSyncInfo) ProtoReflect() protoreflect.Message { mi := &file_object_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 RawObjectSyncInfo.ProtoReflect.Descriptor instead. func (*RawObjectSyncInfo) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{2} } func (x *RawObjectSyncInfo) GetSource() string { if x != nil { return x.Source } return "" } func (x *RawObjectSyncInfo) GetTime() int64 { if x != nil { return x.Time } return 0 } // Report error while working with objects // NOTE: real systems at scale will contain errors. type ObjectErrorInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Match an error code registry? Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // Simple error display Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // Details encoded in JSON DetailsJson []byte `protobuf:"bytes,3,opt,name=details_json,json=detailsJson,proto3" json:"details_json,omitempty"` } func (x *ObjectErrorInfo) Reset() { *x = ObjectErrorInfo{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ObjectErrorInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ObjectErrorInfo) ProtoMessage() {} func (x *ObjectErrorInfo) ProtoReflect() protoreflect.Message { mi := &file_object_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 ObjectErrorInfo.ProtoReflect.Descriptor instead. func (*ObjectErrorInfo) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{3} } func (x *ObjectErrorInfo) GetCode() int64 { if x != nil { return x.Code } return 0 } func (x *ObjectErrorInfo) GetMessage() string { if x != nil { return x.Message } return "" } func (x *ObjectErrorInfo) GetDetailsJson() []byte { if x != nil { return x.DetailsJson } return nil } // This is a subset of RawObject that does not include body or sync info type ObjectVersionInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The version will change when the object is saved. It is not necessarily sortable Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Time in epoch milliseconds that the object was updated Updated int64 `protobuf:"varint,2,opt,name=updated,proto3" json:"updated,omitempty"` // Who updated the object UpdatedBy string `protobuf:"bytes,3,opt,name=updated_by,json=updatedBy,proto3" json:"updated_by,omitempty"` // Content Length Size int64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"` // MD5 digest of the body ETag string `protobuf:"bytes,5,opt,name=ETag,proto3" json:"ETag,omitempty"` // optional "save" or "commit" message // // NOTE: currently managed by the dashboard_version table, and will be returned from a "history" command Comment string `protobuf:"bytes,6,opt,name=comment,proto3" json:"comment,omitempty"` } func (x *ObjectVersionInfo) Reset() { *x = ObjectVersionInfo{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ObjectVersionInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ObjectVersionInfo) ProtoMessage() {} func (x *ObjectVersionInfo) ProtoReflect() protoreflect.Message { mi := &file_object_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 ObjectVersionInfo.ProtoReflect.Descriptor instead. func (*ObjectVersionInfo) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{4} } func (x *ObjectVersionInfo) GetVersion() string { if x != nil { return x.Version } return "" } func (x *ObjectVersionInfo) GetUpdated() int64 { if x != nil { return x.Updated } return 0 } func (x *ObjectVersionInfo) GetUpdatedBy() string { if x != nil { return x.UpdatedBy } return "" } func (x *ObjectVersionInfo) GetSize() int64 { if x != nil { return x.Size } return 0 } func (x *ObjectVersionInfo) GetETag() string { if x != nil { return x.ETag } return "" } func (x *ObjectVersionInfo) GetComment() string { if x != nil { return x.Comment } return "" } type ReadObjectRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Object identifier GRN *GRN `protobuf:"bytes,1,opt,name=GRN,proto3" json:"GRN,omitempty"` // Fetch an explicit version Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // Include the full body bytes WithBody bool `protobuf:"varint,3,opt,name=with_body,json=withBody,proto3" json:"with_body,omitempty"` // Include derived summary metadata WithSummary bool `protobuf:"varint,4,opt,name=with_summary,json=withSummary,proto3" json:"with_summary,omitempty"` } func (x *ReadObjectRequest) Reset() { *x = ReadObjectRequest{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReadObjectRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReadObjectRequest) ProtoMessage() {} func (x *ReadObjectRequest) ProtoReflect() protoreflect.Message { mi := &file_object_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 ReadObjectRequest.ProtoReflect.Descriptor instead. func (*ReadObjectRequest) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{5} } func (x *ReadObjectRequest) GetGRN() *GRN { if x != nil { return x.GRN } return nil } func (x *ReadObjectRequest) GetVersion() string { if x != nil { return x.Version } return "" } func (x *ReadObjectRequest) GetWithBody() bool { if x != nil { return x.WithBody } return false } func (x *ReadObjectRequest) GetWithSummary() bool { if x != nil { return x.WithSummary } return false } type ReadObjectResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Object details with the body removed Object *RawObject `protobuf:"bytes,1,opt,name=object,proto3" json:"object,omitempty"` // Object summary as JSON SummaryJson []byte `protobuf:"bytes,2,opt,name=summary_json,json=summaryJson,proto3" json:"summary_json,omitempty"` } func (x *ReadObjectResponse) Reset() { *x = ReadObjectResponse{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReadObjectResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReadObjectResponse) ProtoMessage() {} func (x *ReadObjectResponse) ProtoReflect() protoreflect.Message { mi := &file_object_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 ReadObjectResponse.ProtoReflect.Descriptor instead. func (*ReadObjectResponse) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{6} } func (x *ReadObjectResponse) GetObject() *RawObject { if x != nil { return x.Object } return nil } func (x *ReadObjectResponse) GetSummaryJson() []byte { if x != nil { return x.SummaryJson } return nil } type BatchReadObjectRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Batch []*ReadObjectRequest `protobuf:"bytes,1,rep,name=batch,proto3" json:"batch,omitempty"` } func (x *BatchReadObjectRequest) Reset() { *x = BatchReadObjectRequest{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BatchReadObjectRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*BatchReadObjectRequest) ProtoMessage() {} func (x *BatchReadObjectRequest) ProtoReflect() protoreflect.Message { mi := &file_object_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 BatchReadObjectRequest.ProtoReflect.Descriptor instead. func (*BatchReadObjectRequest) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{7} } func (x *BatchReadObjectRequest) GetBatch() []*ReadObjectRequest { if x != nil { return x.Batch } return nil } type BatchReadObjectResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Results []*ReadObjectResponse `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` } func (x *BatchReadObjectResponse) Reset() { *x = BatchReadObjectResponse{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BatchReadObjectResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*BatchReadObjectResponse) ProtoMessage() {} func (x *BatchReadObjectResponse) ProtoReflect() protoreflect.Message { mi := &file_object_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 BatchReadObjectResponse.ProtoReflect.Descriptor instead. func (*BatchReadObjectResponse) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{8} } func (x *BatchReadObjectResponse) GetResults() []*ReadObjectResponse { if x != nil { return x.Results } return nil } type WriteObjectRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Object identifier GRN *GRN `protobuf:"bytes,1,opt,name=GRN,proto3" json:"GRN,omitempty"` // The raw object body Body []byte `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` // Message that can be seen when exploring object history Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` // Used for optimistic locking. If missing, the previous version will be replaced regardless PreviousVersion string `protobuf:"bytes,4,opt,name=previous_version,json=previousVersion,proto3" json:"previous_version,omitempty"` } func (x *WriteObjectRequest) Reset() { *x = WriteObjectRequest{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WriteObjectRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WriteObjectRequest) ProtoMessage() {} func (x *WriteObjectRequest) ProtoReflect() protoreflect.Message { mi := &file_object_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 WriteObjectRequest.ProtoReflect.Descriptor instead. func (*WriteObjectRequest) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{9} } func (x *WriteObjectRequest) GetGRN() *GRN { if x != nil { return x.GRN } return nil } func (x *WriteObjectRequest) GetBody() []byte { if x != nil { return x.Body } return nil } func (x *WriteObjectRequest) GetComment() string { if x != nil { return x.Comment } return "" } func (x *WriteObjectRequest) GetPreviousVersion() string { if x != nil { return x.PreviousVersion } return "" } type WriteObjectResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Error info -- if exists, the save did not happen Error *ObjectErrorInfo `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` // Object identifier GRN *GRN `protobuf:"bytes,2,opt,name=GRN,proto3" json:"GRN,omitempty"` // Object details with the body removed Object *ObjectVersionInfo `protobuf:"bytes,3,opt,name=object,proto3" json:"object,omitempty"` // Object summary as JSON SummaryJson []byte `protobuf:"bytes,4,opt,name=summary_json,json=summaryJson,proto3" json:"summary_json,omitempty"` // Status code Status WriteObjectResponse_Status `protobuf:"varint,5,opt,name=status,proto3,enum=object.WriteObjectResponse_Status" json:"status,omitempty"` } func (x *WriteObjectResponse) Reset() { *x = WriteObjectResponse{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WriteObjectResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WriteObjectResponse) ProtoMessage() {} func (x *WriteObjectResponse) ProtoReflect() protoreflect.Message { mi := &file_object_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 WriteObjectResponse.ProtoReflect.Descriptor instead. func (*WriteObjectResponse) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{10} } func (x *WriteObjectResponse) GetError() *ObjectErrorInfo { if x != nil { return x.Error } return nil } func (x *WriteObjectResponse) GetGRN() *GRN { if x != nil { return x.GRN } return nil } func (x *WriteObjectResponse) GetObject() *ObjectVersionInfo { if x != nil { return x.Object } return nil } func (x *WriteObjectResponse) GetSummaryJson() []byte { if x != nil { return x.SummaryJson } return nil } func (x *WriteObjectResponse) GetStatus() WriteObjectResponse_Status { if x != nil { return x.Status } return WriteObjectResponse_ERROR } type DeleteObjectRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Object identifier GRN *GRN `protobuf:"bytes,1,opt,name=GRN,proto3" json:"GRN,omitempty"` // Used for optimistic locking. If missing, the previous version will be replaced regardless PreviousVersion string `protobuf:"bytes,3,opt,name=previous_version,json=previousVersion,proto3" json:"previous_version,omitempty"` } func (x *DeleteObjectRequest) Reset() { *x = DeleteObjectRequest{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteObjectRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteObjectRequest) ProtoMessage() {} func (x *DeleteObjectRequest) ProtoReflect() protoreflect.Message { mi := &file_object_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 DeleteObjectRequest.ProtoReflect.Descriptor instead. func (*DeleteObjectRequest) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{11} } func (x *DeleteObjectRequest) GetGRN() *GRN { if x != nil { return x.GRN } return nil } func (x *DeleteObjectRequest) GetPreviousVersion() string { if x != nil { return x.PreviousVersion } return "" } type DeleteObjectResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OK bool `protobuf:"varint,1,opt,name=OK,proto3" json:"OK,omitempty"` } func (x *DeleteObjectResponse) Reset() { *x = DeleteObjectResponse{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteObjectResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteObjectResponse) ProtoMessage() {} func (x *DeleteObjectResponse) ProtoReflect() protoreflect.Message { mi := &file_object_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 DeleteObjectResponse.ProtoReflect.Descriptor instead. func (*DeleteObjectResponse) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{12} } func (x *DeleteObjectResponse) GetOK() bool { if x != nil { return x.OK } return false } type ObjectHistoryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Object identifier GRN *GRN `protobuf:"bytes,1,opt,name=GRN,proto3" json:"GRN,omitempty"` // Maximum number of items to return Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` // Starting from the requested page NextPageToken string `protobuf:"bytes,5,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` } func (x *ObjectHistoryRequest) Reset() { *x = ObjectHistoryRequest{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ObjectHistoryRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ObjectHistoryRequest) ProtoMessage() {} func (x *ObjectHistoryRequest) ProtoReflect() protoreflect.Message { mi := &file_object_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 ObjectHistoryRequest.ProtoReflect.Descriptor instead. func (*ObjectHistoryRequest) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{13} } func (x *ObjectHistoryRequest) GetGRN() *GRN { if x != nil { return x.GRN } return nil } func (x *ObjectHistoryRequest) GetLimit() int64 { if x != nil { return x.Limit } return 0 } func (x *ObjectHistoryRequest) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } type ObjectHistoryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Object identifier GRN *GRN `protobuf:"bytes,1,opt,name=GRN,proto3" json:"GRN,omitempty"` // Object metadata without the raw bytes Versions []*ObjectVersionInfo `protobuf:"bytes,2,rep,name=versions,proto3" json:"versions,omitempty"` // More results exist... pass this in the next request NextPageToken string `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` } func (x *ObjectHistoryResponse) Reset() { *x = ObjectHistoryResponse{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ObjectHistoryResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ObjectHistoryResponse) ProtoMessage() {} func (x *ObjectHistoryResponse) ProtoReflect() protoreflect.Message { mi := &file_object_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 ObjectHistoryResponse.ProtoReflect.Descriptor instead. func (*ObjectHistoryResponse) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{14} } func (x *ObjectHistoryResponse) GetGRN() *GRN { if x != nil { return x.GRN } return nil } func (x *ObjectHistoryResponse) GetVersions() []*ObjectVersionInfo { if x != nil { return x.Versions } return nil } func (x *ObjectHistoryResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } type ObjectSearchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Starting from the requested page (other query parameters must match!) NextPageToken string `protobuf:"bytes,1,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` // Maximum number of items to return Limit int64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` // Free text query string -- mileage may vary :) Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"` // limit to a specific kind (empty is all) Kind []string `protobuf:"bytes,4,rep,name=kind,proto3" json:"kind,omitempty"` // Limit results to items in a specific folder Folder string `protobuf:"bytes,5,opt,name=folder,proto3" json:"folder,omitempty"` // Must match all labels Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Sorting instructions `field ASC/DESC` Sort []string `protobuf:"bytes,7,rep,name=sort,proto3" json:"sort,omitempty"` // Return the full body in each payload WithBody bool `protobuf:"varint,8,opt,name=with_body,json=withBody,proto3" json:"with_body,omitempty"` // Return the full body in each payload WithLabels bool `protobuf:"varint,9,opt,name=with_labels,json=withLabels,proto3" json:"with_labels,omitempty"` // Return the full body in each payload WithFields bool `protobuf:"varint,10,opt,name=with_fields,json=withFields,proto3" json:"with_fields,omitempty"` } func (x *ObjectSearchRequest) Reset() { *x = ObjectSearchRequest{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ObjectSearchRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ObjectSearchRequest) ProtoMessage() {} func (x *ObjectSearchRequest) ProtoReflect() protoreflect.Message { mi := &file_object_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 ObjectSearchRequest.ProtoReflect.Descriptor instead. func (*ObjectSearchRequest) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{15} } func (x *ObjectSearchRequest) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } func (x *ObjectSearchRequest) GetLimit() int64 { if x != nil { return x.Limit } return 0 } func (x *ObjectSearchRequest) GetQuery() string { if x != nil { return x.Query } return "" } func (x *ObjectSearchRequest) GetKind() []string { if x != nil { return x.Kind } return nil } func (x *ObjectSearchRequest) GetFolder() string { if x != nil { return x.Folder } return "" } func (x *ObjectSearchRequest) GetLabels() map[string]string { if x != nil { return x.Labels } return nil } func (x *ObjectSearchRequest) GetSort() []string { if x != nil { return x.Sort } return nil } func (x *ObjectSearchRequest) GetWithBody() bool { if x != nil { return x.WithBody } return false } func (x *ObjectSearchRequest) GetWithLabels() bool { if x != nil { return x.WithLabels } return false } func (x *ObjectSearchRequest) GetWithFields() bool { if x != nil { return x.WithFields } return false } // Search result metadata for each object type ObjectSearchResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Object identifier GRN *GRN `protobuf:"bytes,1,opt,name=GRN,proto3" json:"GRN,omitempty"` // The current veresion of this object Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` // Time in epoch milliseconds that the object was updated Updated int64 `protobuf:"varint,4,opt,name=updated,proto3" json:"updated,omitempty"` // Who updated the object UpdatedBy string `protobuf:"bytes,5,opt,name=updated_by,json=updatedBy,proto3" json:"updated_by,omitempty"` // Optionally include the full object body Body []byte `protobuf:"bytes,6,opt,name=body,proto3" json:"body,omitempty"` // Always included Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` // Always included Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"` // The structured labels Labels map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optionally include extracted JSON FieldsJson []byte `protobuf:"bytes,10,opt,name=fields_json,json=fieldsJson,proto3" json:"fields_json,omitempty"` // ObjectErrorInfo in json ErrorJson []byte `protobuf:"bytes,11,opt,name=error_json,json=errorJson,proto3" json:"error_json,omitempty"` } func (x *ObjectSearchResult) Reset() { *x = ObjectSearchResult{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ObjectSearchResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*ObjectSearchResult) ProtoMessage() {} func (x *ObjectSearchResult) ProtoReflect() protoreflect.Message { mi := &file_object_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 ObjectSearchResult.ProtoReflect.Descriptor instead. func (*ObjectSearchResult) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{16} } func (x *ObjectSearchResult) GetGRN() *GRN { if x != nil { return x.GRN } return nil } func (x *ObjectSearchResult) GetVersion() string { if x != nil { return x.Version } return "" } func (x *ObjectSearchResult) GetUpdated() int64 { if x != nil { return x.Updated } return 0 } func (x *ObjectSearchResult) GetUpdatedBy() string { if x != nil { return x.UpdatedBy } return "" } func (x *ObjectSearchResult) GetBody() []byte { if x != nil { return x.Body } return nil } func (x *ObjectSearchResult) GetName() string { if x != nil { return x.Name } return "" } func (x *ObjectSearchResult) GetDescription() string { if x != nil { return x.Description } return "" } func (x *ObjectSearchResult) GetLabels() map[string]string { if x != nil { return x.Labels } return nil } func (x *ObjectSearchResult) GetFieldsJson() []byte { if x != nil { return x.FieldsJson } return nil } func (x *ObjectSearchResult) GetErrorJson() []byte { if x != nil { return x.ErrorJson } return nil } type ObjectSearchResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Results []*ObjectSearchResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` // More results exist... pass this in the next request NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` } func (x *ObjectSearchResponse) Reset() { *x = ObjectSearchResponse{} if protoimpl.UnsafeEnabled { mi := &file_object_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ObjectSearchResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ObjectSearchResponse) ProtoMessage() {} func (x *ObjectSearchResponse) ProtoReflect() protoreflect.Message { mi := &file_object_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 ObjectSearchResponse.ProtoReflect.Descriptor instead. func (*ObjectSearchResponse) Descriptor() ([]byte, []int) { return file_object_proto_rawDescGZIP(), []int{17} } func (x *ObjectSearchResponse) GetResults() []*ObjectSearchResult { if x != nil { return x.Results } return nil } func (x *ObjectSearchResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } var File_object_proto protoreflect.FileDescriptor var file_object_proto_rawDesc = []byte{ 0x0a, 0x0c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x5e, 0x0a, 0x03, 0x47, 0x52, 0x4e, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x49, 0x44, 0x22, 0xa1, 0x02, 0x0a, 0x09, 0x52, 0x61, 0x77, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x03, 0x47, 0x52, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x52, 0x4e, 0x52, 0x03, 0x47, 0x52, 0x4e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x45, 0x54, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x45, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x61, 0x77, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x22, 0x3f, 0x0a, 0x11, 0x52, 0x61, 0x77, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x62, 0x0a, 0x0f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x11, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x45, 0x54, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x45, 0x54, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x03, 0x47, 0x52, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x52, 0x4e, 0x52, 0x03, 0x47, 0x52, 0x4e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x62, 0x0a, 0x12, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x61, 0x77, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x22, 0x4f, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x12, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x03, 0x47, 0x52, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x52, 0x4e, 0x52, 0x03, 0x47, 0x52, 0x4e, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb3, 0x02, 0x0a, 0x13, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x03, 0x47, 0x52, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x52, 0x4e, 0x52, 0x03, 0x47, 0x52, 0x4e, 0x12, 0x31, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x03, 0x22, 0x5f, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x03, 0x47, 0x52, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x52, 0x4e, 0x52, 0x03, 0x47, 0x52, 0x4e, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x26, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x4b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x4f, 0x4b, 0x22, 0x73, 0x0a, 0x14, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x03, 0x47, 0x52, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x52, 0x4e, 0x52, 0x03, 0x47, 0x52, 0x4e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x95, 0x01, 0x0a, 0x15, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x03, 0x47, 0x52, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x52, 0x4e, 0x52, 0x03, 0x47, 0x52, 0x4e, 0x12, 0x35, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x84, 0x03, 0x0a, 0x13, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8b, 0x03, 0x0a, 0x12, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x03, 0x47, 0x52, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x52, 0x4e, 0x52, 0x03, 0x47, 0x52, 0x4e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x74, 0x0a, 0x14, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xae, 0x03, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x19, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1e, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x3b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_object_proto_rawDescOnce sync.Once file_object_proto_rawDescData = file_object_proto_rawDesc ) func file_object_proto_rawDescGZIP() []byte { file_object_proto_rawDescOnce.Do(func() { file_object_proto_rawDescData = protoimpl.X.CompressGZIP(file_object_proto_rawDescData) }) return file_object_proto_rawDescData } var file_object_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_object_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_object_proto_goTypes = []interface{}{ (WriteObjectResponse_Status)(0), // 0: object.WriteObjectResponse.Status (*GRN)(nil), // 1: object.GRN (*RawObject)(nil), // 2: object.RawObject (*RawObjectSyncInfo)(nil), // 3: object.RawObjectSyncInfo (*ObjectErrorInfo)(nil), // 4: object.ObjectErrorInfo (*ObjectVersionInfo)(nil), // 5: object.ObjectVersionInfo (*ReadObjectRequest)(nil), // 6: object.ReadObjectRequest (*ReadObjectResponse)(nil), // 7: object.ReadObjectResponse (*BatchReadObjectRequest)(nil), // 8: object.BatchReadObjectRequest (*BatchReadObjectResponse)(nil), // 9: object.BatchReadObjectResponse (*WriteObjectRequest)(nil), // 10: object.WriteObjectRequest (*WriteObjectResponse)(nil), // 11: object.WriteObjectResponse (*DeleteObjectRequest)(nil), // 12: object.DeleteObjectRequest (*DeleteObjectResponse)(nil), // 13: object.DeleteObjectResponse (*ObjectHistoryRequest)(nil), // 14: object.ObjectHistoryRequest (*ObjectHistoryResponse)(nil), // 15: object.ObjectHistoryResponse (*ObjectSearchRequest)(nil), // 16: object.ObjectSearchRequest (*ObjectSearchResult)(nil), // 17: object.ObjectSearchResult (*ObjectSearchResponse)(nil), // 18: object.ObjectSearchResponse nil, // 19: object.ObjectSearchRequest.LabelsEntry nil, // 20: object.ObjectSearchResult.LabelsEntry } var file_object_proto_depIdxs = []int32{ 1, // 0: object.RawObject.GRN:type_name -> object.GRN 3, // 1: object.RawObject.sync:type_name -> object.RawObjectSyncInfo 1, // 2: object.ReadObjectRequest.GRN:type_name -> object.GRN 2, // 3: object.ReadObjectResponse.object:type_name -> object.RawObject 6, // 4: object.BatchReadObjectRequest.batch:type_name -> object.ReadObjectRequest 7, // 5: object.BatchReadObjectResponse.results:type_name -> object.ReadObjectResponse 1, // 6: object.WriteObjectRequest.GRN:type_name -> object.GRN 4, // 7: object.WriteObjectResponse.error:type_name -> object.ObjectErrorInfo 1, // 8: object.WriteObjectResponse.GRN:type_name -> object.GRN 5, // 9: object.WriteObjectResponse.object:type_name -> object.ObjectVersionInfo 0, // 10: object.WriteObjectResponse.status:type_name -> object.WriteObjectResponse.Status 1, // 11: object.DeleteObjectRequest.GRN:type_name -> object.GRN 1, // 12: object.ObjectHistoryRequest.GRN:type_name -> object.GRN 1, // 13: object.ObjectHistoryResponse.GRN:type_name -> object.GRN 5, // 14: object.ObjectHistoryResponse.versions:type_name -> object.ObjectVersionInfo 19, // 15: object.ObjectSearchRequest.labels:type_name -> object.ObjectSearchRequest.LabelsEntry 1, // 16: object.ObjectSearchResult.GRN:type_name -> object.GRN 20, // 17: object.ObjectSearchResult.labels:type_name -> object.ObjectSearchResult.LabelsEntry 17, // 18: object.ObjectSearchResponse.results:type_name -> object.ObjectSearchResult 6, // 19: object.ObjectStore.Read:input_type -> object.ReadObjectRequest 8, // 20: object.ObjectStore.BatchRead:input_type -> object.BatchReadObjectRequest 10, // 21: object.ObjectStore.Write:input_type -> object.WriteObjectRequest 12, // 22: object.ObjectStore.Delete:input_type -> object.DeleteObjectRequest 14, // 23: object.ObjectStore.History:input_type -> object.ObjectHistoryRequest 16, // 24: object.ObjectStore.Search:input_type -> object.ObjectSearchRequest 7, // 25: object.ObjectStore.Read:output_type -> object.ReadObjectResponse 9, // 26: object.ObjectStore.BatchRead:output_type -> object.BatchReadObjectResponse 11, // 27: object.ObjectStore.Write:output_type -> object.WriteObjectResponse 13, // 28: object.ObjectStore.Delete:output_type -> object.DeleteObjectResponse 15, // 29: object.ObjectStore.History:output_type -> object.ObjectHistoryResponse 18, // 30: object.ObjectStore.Search:output_type -> object.ObjectSearchResponse 25, // [25:31] is the sub-list for method output_type 19, // [19:25] is the sub-list for method input_type 19, // [19:19] is the sub-list for extension type_name 19, // [19:19] is the sub-list for extension extendee 0, // [0:19] is the sub-list for field type_name } func init() { file_object_proto_init() } func file_object_proto_init() { if File_object_proto != nil { return } if !protoimpl.UnsafeEnabled { file_object_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GRN); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RawObject); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RawObjectSyncInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ObjectErrorInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ObjectVersionInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadObjectRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadObjectResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BatchReadObjectRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BatchReadObjectResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WriteObjectRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WriteObjectResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteObjectRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteObjectResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ObjectHistoryRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ObjectHistoryResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ObjectSearchRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ObjectSearchResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_object_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ObjectSearchResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_object_proto_rawDesc, NumEnums: 1, NumMessages: 20, NumExtensions: 0, NumServices: 1, }, GoTypes: file_object_proto_goTypes, DependencyIndexes: file_object_proto_depIdxs, EnumInfos: file_object_proto_enumTypes, MessageInfos: file_object_proto_msgTypes, }.Build() File_object_proto = out.File file_object_proto_rawDesc = nil file_object_proto_goTypes = nil file_object_proto_depIdxs = nil }