api/proto/datanode/DatanodeClientProtocol.pb.go (4,218 lines of code) (raw):

//* // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you 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. //* // These .proto interfaces are private and Unstable. // Please see http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/InterfaceClassification.html // for what changes are allowed for a *Unstable* .proto interface. // This file contains protocol buffers that are used to transfer data // to and from the datanode. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.24.0 // protoc v3.15.6 // source: DatanodeClientProtocol.proto package datanode import ( context "context" proto "github.com/golang/protobuf/proto" 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" 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) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 type Type int32 const ( Type_CreateContainer Type = 1 Type_ReadContainer Type = 2 Type_UpdateContainer Type = 3 Type_DeleteContainer Type = 4 Type_ListContainer Type = 5 Type_PutBlock Type = 6 Type_GetBlock Type = 7 Type_DeleteBlock Type = 8 Type_ListBlock Type = 9 Type_ReadChunk Type = 10 Type_DeleteChunk Type = 11 Type_WriteChunk Type = 12 Type_ListChunk Type = 13 Type_CompactChunk Type = 14 //* Combines Block and Chunk Operation into Single RPC. Type_PutSmallFile Type = 15 Type_GetSmallFile Type = 16 Type_CloseContainer Type = 17 Type_GetCommittedBlockLength Type = 18 ) // Enum value maps for Type. var ( Type_name = map[int32]string{ 1: "CreateContainer", 2: "ReadContainer", 3: "UpdateContainer", 4: "DeleteContainer", 5: "ListContainer", 6: "PutBlock", 7: "GetBlock", 8: "DeleteBlock", 9: "ListBlock", 10: "ReadChunk", 11: "DeleteChunk", 12: "WriteChunk", 13: "ListChunk", 14: "CompactChunk", 15: "PutSmallFile", 16: "GetSmallFile", 17: "CloseContainer", 18: "GetCommittedBlockLength", } Type_value = map[string]int32{ "CreateContainer": 1, "ReadContainer": 2, "UpdateContainer": 3, "DeleteContainer": 4, "ListContainer": 5, "PutBlock": 6, "GetBlock": 7, "DeleteBlock": 8, "ListBlock": 9, "ReadChunk": 10, "DeleteChunk": 11, "WriteChunk": 12, "ListChunk": 13, "CompactChunk": 14, "PutSmallFile": 15, "GetSmallFile": 16, "CloseContainer": 17, "GetCommittedBlockLength": 18, } ) func (x Type) Enum() *Type { p := new(Type) *p = x return p } func (x Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Type) Descriptor() protoreflect.EnumDescriptor { return file_DatanodeClientProtocol_proto_enumTypes[0].Descriptor() } func (Type) Type() protoreflect.EnumType { return &file_DatanodeClientProtocol_proto_enumTypes[0] } func (x Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Type) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Type(num) return nil } // Deprecated: Use Type.Descriptor instead. func (Type) EnumDescriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{0} } type Result int32 const ( Result_SUCCESS Result = 1 Result_UNSUPPORTED_REQUEST Result = 2 Result_MALFORMED_REQUEST Result = 3 Result_CONTAINER_INTERNAL_ERROR Result = 4 Result_INVALID_CONFIG Result = 5 Result_INVALID_FILE_HASH_FOUND Result = 6 Result_CONTAINER_EXISTS Result = 7 Result_NO_SUCH_ALGORITHM Result = 8 Result_CONTAINER_NOT_FOUND Result = 9 Result_IO_EXCEPTION Result = 10 Result_UNABLE_TO_READ_METADATA_DB Result = 11 Result_NO_SUCH_BLOCK Result = 12 Result_OVERWRITE_FLAG_REQUIRED Result = 13 Result_UNABLE_TO_FIND_DATA_DIR Result = 14 Result_INVALID_WRITE_SIZE Result = 15 Result_CHECKSUM_MISMATCH Result = 16 Result_UNABLE_TO_FIND_CHUNK Result = 17 Result_PROTOC_DECODING_ERROR Result = 18 Result_INVALID_ARGUMENT Result = 19 Result_PUT_SMALL_FILE_ERROR Result = 20 Result_GET_SMALL_FILE_ERROR Result = 21 Result_CLOSED_CONTAINER_IO Result = 22 Result_ERROR_IN_COMPACT_DB Result = 24 Result_UNCLOSED_CONTAINER_IO Result = 25 Result_DELETE_ON_OPEN_CONTAINER Result = 26 Result_CLOSED_CONTAINER_RETRY Result = 27 Result_INVALID_CONTAINER_STATE Result = 28 Result_DISK_OUT_OF_SPACE Result = 29 Result_CONTAINER_ALREADY_EXISTS Result = 30 Result_CONTAINER_METADATA_ERROR Result = 31 Result_CONTAINER_FILES_CREATE_ERROR Result = 32 Result_CONTAINER_CHECKSUM_ERROR Result = 33 Result_UNKNOWN_CONTAINER_TYPE Result = 34 Result_BLOCK_NOT_COMMITTED Result = 35 Result_CONTAINER_UNHEALTHY Result = 36 Result_UNKNOWN_BCSID Result = 37 Result_BCSID_MISMATCH Result = 38 Result_CONTAINER_NOT_OPEN Result = 39 Result_CONTAINER_MISSING Result = 40 Result_BLOCK_TOKEN_VERIFICATION_FAILED Result = 41 Result_ERROR_IN_DB_SYNC Result = 42 ) // Enum value maps for Result. var ( Result_name = map[int32]string{ 1: "SUCCESS", 2: "UNSUPPORTED_REQUEST", 3: "MALFORMED_REQUEST", 4: "CONTAINER_INTERNAL_ERROR", 5: "INVALID_CONFIG", 6: "INVALID_FILE_HASH_FOUND", 7: "CONTAINER_EXISTS", 8: "NO_SUCH_ALGORITHM", 9: "CONTAINER_NOT_FOUND", 10: "IO_EXCEPTION", 11: "UNABLE_TO_READ_METADATA_DB", 12: "NO_SUCH_BLOCK", 13: "OVERWRITE_FLAG_REQUIRED", 14: "UNABLE_TO_FIND_DATA_DIR", 15: "INVALID_WRITE_SIZE", 16: "CHECKSUM_MISMATCH", 17: "UNABLE_TO_FIND_CHUNK", 18: "PROTOC_DECODING_ERROR", 19: "INVALID_ARGUMENT", 20: "PUT_SMALL_FILE_ERROR", 21: "GET_SMALL_FILE_ERROR", 22: "CLOSED_CONTAINER_IO", 24: "ERROR_IN_COMPACT_DB", 25: "UNCLOSED_CONTAINER_IO", 26: "DELETE_ON_OPEN_CONTAINER", 27: "CLOSED_CONTAINER_RETRY", 28: "INVALID_CONTAINER_STATE", 29: "DISK_OUT_OF_SPACE", 30: "CONTAINER_ALREADY_EXISTS", 31: "CONTAINER_METADATA_ERROR", 32: "CONTAINER_FILES_CREATE_ERROR", 33: "CONTAINER_CHECKSUM_ERROR", 34: "UNKNOWN_CONTAINER_TYPE", 35: "BLOCK_NOT_COMMITTED", 36: "CONTAINER_UNHEALTHY", 37: "UNKNOWN_BCSID", 38: "BCSID_MISMATCH", 39: "CONTAINER_NOT_OPEN", 40: "CONTAINER_MISSING", 41: "BLOCK_TOKEN_VERIFICATION_FAILED", 42: "ERROR_IN_DB_SYNC", } Result_value = map[string]int32{ "SUCCESS": 1, "UNSUPPORTED_REQUEST": 2, "MALFORMED_REQUEST": 3, "CONTAINER_INTERNAL_ERROR": 4, "INVALID_CONFIG": 5, "INVALID_FILE_HASH_FOUND": 6, "CONTAINER_EXISTS": 7, "NO_SUCH_ALGORITHM": 8, "CONTAINER_NOT_FOUND": 9, "IO_EXCEPTION": 10, "UNABLE_TO_READ_METADATA_DB": 11, "NO_SUCH_BLOCK": 12, "OVERWRITE_FLAG_REQUIRED": 13, "UNABLE_TO_FIND_DATA_DIR": 14, "INVALID_WRITE_SIZE": 15, "CHECKSUM_MISMATCH": 16, "UNABLE_TO_FIND_CHUNK": 17, "PROTOC_DECODING_ERROR": 18, "INVALID_ARGUMENT": 19, "PUT_SMALL_FILE_ERROR": 20, "GET_SMALL_FILE_ERROR": 21, "CLOSED_CONTAINER_IO": 22, "ERROR_IN_COMPACT_DB": 24, "UNCLOSED_CONTAINER_IO": 25, "DELETE_ON_OPEN_CONTAINER": 26, "CLOSED_CONTAINER_RETRY": 27, "INVALID_CONTAINER_STATE": 28, "DISK_OUT_OF_SPACE": 29, "CONTAINER_ALREADY_EXISTS": 30, "CONTAINER_METADATA_ERROR": 31, "CONTAINER_FILES_CREATE_ERROR": 32, "CONTAINER_CHECKSUM_ERROR": 33, "UNKNOWN_CONTAINER_TYPE": 34, "BLOCK_NOT_COMMITTED": 35, "CONTAINER_UNHEALTHY": 36, "UNKNOWN_BCSID": 37, "BCSID_MISMATCH": 38, "CONTAINER_NOT_OPEN": 39, "CONTAINER_MISSING": 40, "BLOCK_TOKEN_VERIFICATION_FAILED": 41, "ERROR_IN_DB_SYNC": 42, } ) func (x Result) Enum() *Result { p := new(Result) *p = x return p } func (x Result) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Result) Descriptor() protoreflect.EnumDescriptor { return file_DatanodeClientProtocol_proto_enumTypes[1].Descriptor() } func (Result) Type() protoreflect.EnumType { return &file_DatanodeClientProtocol_proto_enumTypes[1] } func (x Result) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Result) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Result(num) return nil } // Deprecated: Use Result.Descriptor instead. func (Result) EnumDescriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{1} } type ContainerType int32 const ( ContainerType_KeyValueContainer ContainerType = 1 ) // Enum value maps for ContainerType. var ( ContainerType_name = map[int32]string{ 1: "KeyValueContainer", } ContainerType_value = map[string]int32{ "KeyValueContainer": 1, } ) func (x ContainerType) Enum() *ContainerType { p := new(ContainerType) *p = x return p } func (x ContainerType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ContainerType) Descriptor() protoreflect.EnumDescriptor { return file_DatanodeClientProtocol_proto_enumTypes[2].Descriptor() } func (ContainerType) Type() protoreflect.EnumType { return &file_DatanodeClientProtocol_proto_enumTypes[2] } func (x ContainerType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ContainerType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ContainerType(num) return nil } // Deprecated: Use ContainerType.Descriptor instead. func (ContainerType) EnumDescriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{2} } type ChecksumType int32 const ( ChecksumType_NONE ChecksumType = 1 ChecksumType_CRC32 ChecksumType = 2 ChecksumType_CRC32C ChecksumType = 3 ChecksumType_SHA256 ChecksumType = 4 ChecksumType_MD5 ChecksumType = 5 ) // Enum value maps for ChecksumType. var ( ChecksumType_name = map[int32]string{ 1: "NONE", 2: "CRC32", 3: "CRC32C", 4: "SHA256", 5: "MD5", } ChecksumType_value = map[string]int32{ "NONE": 1, "CRC32": 2, "CRC32C": 3, "SHA256": 4, "MD5": 5, } ) func (x ChecksumType) Enum() *ChecksumType { p := new(ChecksumType) *p = x return p } func (x ChecksumType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ChecksumType) Descriptor() protoreflect.EnumDescriptor { return file_DatanodeClientProtocol_proto_enumTypes[3].Descriptor() } func (ChecksumType) Type() protoreflect.EnumType { return &file_DatanodeClientProtocol_proto_enumTypes[3] } func (x ChecksumType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ChecksumType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ChecksumType(num) return nil } // Deprecated: Use ChecksumType.Descriptor instead. func (ChecksumType) EnumDescriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{3} } type ContainerDataProto_State int32 const ( ContainerDataProto_OPEN ContainerDataProto_State = 1 ContainerDataProto_CLOSING ContainerDataProto_State = 2 ContainerDataProto_QUASI_CLOSED ContainerDataProto_State = 3 ContainerDataProto_CLOSED ContainerDataProto_State = 4 ContainerDataProto_UNHEALTHY ContainerDataProto_State = 5 ContainerDataProto_INVALID ContainerDataProto_State = 6 ContainerDataProto_DELETED ContainerDataProto_State = 7 ) // Enum value maps for ContainerDataProto_State. var ( ContainerDataProto_State_name = map[int32]string{ 1: "OPEN", 2: "CLOSING", 3: "QUASI_CLOSED", 4: "CLOSED", 5: "UNHEALTHY", 6: "INVALID", 7: "DELETED", } ContainerDataProto_State_value = map[string]int32{ "OPEN": 1, "CLOSING": 2, "QUASI_CLOSED": 3, "CLOSED": 4, "UNHEALTHY": 5, "INVALID": 6, "DELETED": 7, } ) func (x ContainerDataProto_State) Enum() *ContainerDataProto_State { p := new(ContainerDataProto_State) *p = x return p } func (x ContainerDataProto_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ContainerDataProto_State) Descriptor() protoreflect.EnumDescriptor { return file_DatanodeClientProtocol_proto_enumTypes[4].Descriptor() } func (ContainerDataProto_State) Type() protoreflect.EnumType { return &file_DatanodeClientProtocol_proto_enumTypes[4] } func (x ContainerDataProto_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *ContainerDataProto_State) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = ContainerDataProto_State(num) return nil } // Deprecated: Use ContainerDataProto_State.Descriptor instead. func (ContainerDataProto_State) EnumDescriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{4, 0} } //* // Block ID that uniquely identify a block in Datanode. type DatanodeBlockID struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ContainerID *int64 `protobuf:"varint,1,req,name=containerID" json:"containerID,omitempty"` LocalID *int64 `protobuf:"varint,2,req,name=localID" json:"localID,omitempty"` BlockCommitSequenceId *uint64 `protobuf:"varint,3,opt,name=blockCommitSequenceId,def=0" json:"blockCommitSequenceId,omitempty"` } // Default values for DatanodeBlockID fields. const ( Default_DatanodeBlockID_BlockCommitSequenceId = uint64(0) ) func (x *DatanodeBlockID) Reset() { *x = DatanodeBlockID{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DatanodeBlockID) String() string { return protoimpl.X.MessageStringOf(x) } func (*DatanodeBlockID) ProtoMessage() {} func (x *DatanodeBlockID) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 DatanodeBlockID.ProtoReflect.Descriptor instead. func (*DatanodeBlockID) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{0} } func (x *DatanodeBlockID) GetContainerID() int64 { if x != nil && x.ContainerID != nil { return *x.ContainerID } return 0 } func (x *DatanodeBlockID) GetLocalID() int64 { if x != nil && x.LocalID != nil { return *x.LocalID } return 0 } func (x *DatanodeBlockID) GetBlockCommitSequenceId() uint64 { if x != nil && x.BlockCommitSequenceId != nil { return *x.BlockCommitSequenceId } return Default_DatanodeBlockID_BlockCommitSequenceId } type KeyValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` } func (x *KeyValue) Reset() { *x = KeyValue{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KeyValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*KeyValue) ProtoMessage() {} func (x *KeyValue) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 KeyValue.ProtoReflect.Descriptor instead. func (*KeyValue) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{1} } func (x *KeyValue) GetKey() string { if x != nil && x.Key != nil { return *x.Key } return "" } func (x *KeyValue) GetValue() string { if x != nil && x.Value != nil { return *x.Value } return "" } type ContainerCommandRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CmdType *Type `protobuf:"varint,1,req,name=cmdType,enum=hadoop.hdds.datanode.Type" json:"cmdType,omitempty"` // Type of the command // A string that identifies this command, we generate Trace ID in Ozone // frontend and this allows us to trace that command all over ozone. TraceID *string `protobuf:"bytes,2,opt,name=traceID" json:"traceID,omitempty"` ContainerID *int64 `protobuf:"varint,3,req,name=containerID" json:"containerID,omitempty"` DatanodeUuid *string `protobuf:"bytes,4,req,name=datanodeUuid" json:"datanodeUuid,omitempty"` PipelineID *string `protobuf:"bytes,5,opt,name=pipelineID" json:"pipelineID,omitempty"` // One of the following command is available when the corresponding // cmdType is set. At the protocol level we allow only // one command in each packet. // TODO : Upgrade to Protobuf 2.6 or later. CreateContainer *CreateContainerRequestProto `protobuf:"bytes,6,opt,name=createContainer" json:"createContainer,omitempty"` ReadContainer *ReadContainerRequestProto `protobuf:"bytes,7,opt,name=readContainer" json:"readContainer,omitempty"` UpdateContainer *UpdateContainerRequestProto `protobuf:"bytes,8,opt,name=updateContainer" json:"updateContainer,omitempty"` DeleteContainer *DeleteContainerRequestProto `protobuf:"bytes,9,opt,name=deleteContainer" json:"deleteContainer,omitempty"` ListContainer *ListContainerRequestProto `protobuf:"bytes,10,opt,name=listContainer" json:"listContainer,omitempty"` CloseContainer *CloseContainerRequestProto `protobuf:"bytes,11,opt,name=closeContainer" json:"closeContainer,omitempty"` PutBlock *PutBlockRequestProto `protobuf:"bytes,12,opt,name=putBlock" json:"putBlock,omitempty"` GetBlock *GetBlockRequestProto `protobuf:"bytes,13,opt,name=getBlock" json:"getBlock,omitempty"` DeleteBlock *DeleteBlockRequestProto `protobuf:"bytes,14,opt,name=deleteBlock" json:"deleteBlock,omitempty"` ListBlock *ListBlockRequestProto `protobuf:"bytes,15,opt,name=listBlock" json:"listBlock,omitempty"` ReadChunk *ReadChunkRequestProto `protobuf:"bytes,16,opt,name=readChunk" json:"readChunk,omitempty"` WriteChunk *WriteChunkRequestProto `protobuf:"bytes,17,opt,name=writeChunk" json:"writeChunk,omitempty"` DeleteChunk *DeleteChunkRequestProto `protobuf:"bytes,18,opt,name=deleteChunk" json:"deleteChunk,omitempty"` ListChunk *ListChunkRequestProto `protobuf:"bytes,19,opt,name=listChunk" json:"listChunk,omitempty"` PutSmallFile *PutSmallFileRequestProto `protobuf:"bytes,20,opt,name=putSmallFile" json:"putSmallFile,omitempty"` GetSmallFile *GetSmallFileRequestProto `protobuf:"bytes,21,opt,name=getSmallFile" json:"getSmallFile,omitempty"` GetCommittedBlockLength *GetCommittedBlockLengthRequestProto `protobuf:"bytes,22,opt,name=getCommittedBlockLength" json:"getCommittedBlockLength,omitempty"` EncodedToken *string `protobuf:"bytes,23,opt,name=encodedToken" json:"encodedToken,omitempty"` } func (x *ContainerCommandRequestProto) Reset() { *x = ContainerCommandRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ContainerCommandRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ContainerCommandRequestProto) ProtoMessage() {} func (x *ContainerCommandRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ContainerCommandRequestProto.ProtoReflect.Descriptor instead. func (*ContainerCommandRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{2} } func (x *ContainerCommandRequestProto) GetCmdType() Type { if x != nil && x.CmdType != nil { return *x.CmdType } return Type_CreateContainer } func (x *ContainerCommandRequestProto) GetTraceID() string { if x != nil && x.TraceID != nil { return *x.TraceID } return "" } func (x *ContainerCommandRequestProto) GetContainerID() int64 { if x != nil && x.ContainerID != nil { return *x.ContainerID } return 0 } func (x *ContainerCommandRequestProto) GetDatanodeUuid() string { if x != nil && x.DatanodeUuid != nil { return *x.DatanodeUuid } return "" } func (x *ContainerCommandRequestProto) GetPipelineID() string { if x != nil && x.PipelineID != nil { return *x.PipelineID } return "" } func (x *ContainerCommandRequestProto) GetCreateContainer() *CreateContainerRequestProto { if x != nil { return x.CreateContainer } return nil } func (x *ContainerCommandRequestProto) GetReadContainer() *ReadContainerRequestProto { if x != nil { return x.ReadContainer } return nil } func (x *ContainerCommandRequestProto) GetUpdateContainer() *UpdateContainerRequestProto { if x != nil { return x.UpdateContainer } return nil } func (x *ContainerCommandRequestProto) GetDeleteContainer() *DeleteContainerRequestProto { if x != nil { return x.DeleteContainer } return nil } func (x *ContainerCommandRequestProto) GetListContainer() *ListContainerRequestProto { if x != nil { return x.ListContainer } return nil } func (x *ContainerCommandRequestProto) GetCloseContainer() *CloseContainerRequestProto { if x != nil { return x.CloseContainer } return nil } func (x *ContainerCommandRequestProto) GetPutBlock() *PutBlockRequestProto { if x != nil { return x.PutBlock } return nil } func (x *ContainerCommandRequestProto) GetGetBlock() *GetBlockRequestProto { if x != nil { return x.GetBlock } return nil } func (x *ContainerCommandRequestProto) GetDeleteBlock() *DeleteBlockRequestProto { if x != nil { return x.DeleteBlock } return nil } func (x *ContainerCommandRequestProto) GetListBlock() *ListBlockRequestProto { if x != nil { return x.ListBlock } return nil } func (x *ContainerCommandRequestProto) GetReadChunk() *ReadChunkRequestProto { if x != nil { return x.ReadChunk } return nil } func (x *ContainerCommandRequestProto) GetWriteChunk() *WriteChunkRequestProto { if x != nil { return x.WriteChunk } return nil } func (x *ContainerCommandRequestProto) GetDeleteChunk() *DeleteChunkRequestProto { if x != nil { return x.DeleteChunk } return nil } func (x *ContainerCommandRequestProto) GetListChunk() *ListChunkRequestProto { if x != nil { return x.ListChunk } return nil } func (x *ContainerCommandRequestProto) GetPutSmallFile() *PutSmallFileRequestProto { if x != nil { return x.PutSmallFile } return nil } func (x *ContainerCommandRequestProto) GetGetSmallFile() *GetSmallFileRequestProto { if x != nil { return x.GetSmallFile } return nil } func (x *ContainerCommandRequestProto) GetGetCommittedBlockLength() *GetCommittedBlockLengthRequestProto { if x != nil { return x.GetCommittedBlockLength } return nil } func (x *ContainerCommandRequestProto) GetEncodedToken() string { if x != nil && x.EncodedToken != nil { return *x.EncodedToken } return "" } type ContainerCommandResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CmdType *Type `protobuf:"varint,1,req,name=cmdType,enum=hadoop.hdds.datanode.Type" json:"cmdType,omitempty"` TraceID *string `protobuf:"bytes,2,opt,name=traceID" json:"traceID,omitempty"` Result *Result `protobuf:"varint,3,req,name=result,enum=hadoop.hdds.datanode.Result" json:"result,omitempty"` Message *string `protobuf:"bytes,4,opt,name=message" json:"message,omitempty"` CreateContainer *CreateContainerResponseProto `protobuf:"bytes,5,opt,name=createContainer" json:"createContainer,omitempty"` ReadContainer *ReadContainerResponseProto `protobuf:"bytes,6,opt,name=readContainer" json:"readContainer,omitempty"` UpdateContainer *UpdateContainerResponseProto `protobuf:"bytes,7,opt,name=updateContainer" json:"updateContainer,omitempty"` DeleteContainer *DeleteContainerResponseProto `protobuf:"bytes,8,opt,name=deleteContainer" json:"deleteContainer,omitempty"` ListContainer *ListContainerResponseProto `protobuf:"bytes,9,opt,name=listContainer" json:"listContainer,omitempty"` CloseContainer *CloseContainerResponseProto `protobuf:"bytes,10,opt,name=closeContainer" json:"closeContainer,omitempty"` PutBlock *PutBlockResponseProto `protobuf:"bytes,11,opt,name=putBlock" json:"putBlock,omitempty"` GetBlock *GetBlockResponseProto `protobuf:"bytes,12,opt,name=getBlock" json:"getBlock,omitempty"` DeleteBlock *DeleteBlockResponseProto `protobuf:"bytes,13,opt,name=deleteBlock" json:"deleteBlock,omitempty"` ListBlock *ListBlockResponseProto `protobuf:"bytes,14,opt,name=listBlock" json:"listBlock,omitempty"` WriteChunk *WriteChunkResponseProto `protobuf:"bytes,15,opt,name=writeChunk" json:"writeChunk,omitempty"` ReadChunk *ReadChunkResponseProto `protobuf:"bytes,16,opt,name=readChunk" json:"readChunk,omitempty"` DeleteChunk *DeleteChunkResponseProto `protobuf:"bytes,17,opt,name=deleteChunk" json:"deleteChunk,omitempty"` ListChunk *ListChunkResponseProto `protobuf:"bytes,18,opt,name=listChunk" json:"listChunk,omitempty"` PutSmallFile *PutSmallFileResponseProto `protobuf:"bytes,19,opt,name=putSmallFile" json:"putSmallFile,omitempty"` GetSmallFile *GetSmallFileResponseProto `protobuf:"bytes,20,opt,name=getSmallFile" json:"getSmallFile,omitempty"` GetCommittedBlockLength *GetCommittedBlockLengthResponseProto `protobuf:"bytes,21,opt,name=getCommittedBlockLength" json:"getCommittedBlockLength,omitempty"` } func (x *ContainerCommandResponseProto) Reset() { *x = ContainerCommandResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ContainerCommandResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ContainerCommandResponseProto) ProtoMessage() {} func (x *ContainerCommandResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ContainerCommandResponseProto.ProtoReflect.Descriptor instead. func (*ContainerCommandResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{3} } func (x *ContainerCommandResponseProto) GetCmdType() Type { if x != nil && x.CmdType != nil { return *x.CmdType } return Type_CreateContainer } func (x *ContainerCommandResponseProto) GetTraceID() string { if x != nil && x.TraceID != nil { return *x.TraceID } return "" } func (x *ContainerCommandResponseProto) GetResult() Result { if x != nil && x.Result != nil { return *x.Result } return Result_SUCCESS } func (x *ContainerCommandResponseProto) GetMessage() string { if x != nil && x.Message != nil { return *x.Message } return "" } func (x *ContainerCommandResponseProto) GetCreateContainer() *CreateContainerResponseProto { if x != nil { return x.CreateContainer } return nil } func (x *ContainerCommandResponseProto) GetReadContainer() *ReadContainerResponseProto { if x != nil { return x.ReadContainer } return nil } func (x *ContainerCommandResponseProto) GetUpdateContainer() *UpdateContainerResponseProto { if x != nil { return x.UpdateContainer } return nil } func (x *ContainerCommandResponseProto) GetDeleteContainer() *DeleteContainerResponseProto { if x != nil { return x.DeleteContainer } return nil } func (x *ContainerCommandResponseProto) GetListContainer() *ListContainerResponseProto { if x != nil { return x.ListContainer } return nil } func (x *ContainerCommandResponseProto) GetCloseContainer() *CloseContainerResponseProto { if x != nil { return x.CloseContainer } return nil } func (x *ContainerCommandResponseProto) GetPutBlock() *PutBlockResponseProto { if x != nil { return x.PutBlock } return nil } func (x *ContainerCommandResponseProto) GetGetBlock() *GetBlockResponseProto { if x != nil { return x.GetBlock } return nil } func (x *ContainerCommandResponseProto) GetDeleteBlock() *DeleteBlockResponseProto { if x != nil { return x.DeleteBlock } return nil } func (x *ContainerCommandResponseProto) GetListBlock() *ListBlockResponseProto { if x != nil { return x.ListBlock } return nil } func (x *ContainerCommandResponseProto) GetWriteChunk() *WriteChunkResponseProto { if x != nil { return x.WriteChunk } return nil } func (x *ContainerCommandResponseProto) GetReadChunk() *ReadChunkResponseProto { if x != nil { return x.ReadChunk } return nil } func (x *ContainerCommandResponseProto) GetDeleteChunk() *DeleteChunkResponseProto { if x != nil { return x.DeleteChunk } return nil } func (x *ContainerCommandResponseProto) GetListChunk() *ListChunkResponseProto { if x != nil { return x.ListChunk } return nil } func (x *ContainerCommandResponseProto) GetPutSmallFile() *PutSmallFileResponseProto { if x != nil { return x.PutSmallFile } return nil } func (x *ContainerCommandResponseProto) GetGetSmallFile() *GetSmallFileResponseProto { if x != nil { return x.GetSmallFile } return nil } func (x *ContainerCommandResponseProto) GetGetCommittedBlockLength() *GetCommittedBlockLengthResponseProto { if x != nil { return x.GetCommittedBlockLength } return nil } type ContainerDataProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ContainerID *int64 `protobuf:"varint,1,req,name=containerID" json:"containerID,omitempty"` Metadata []*KeyValue `protobuf:"bytes,2,rep,name=metadata" json:"metadata,omitempty"` ContainerPath *string `protobuf:"bytes,4,opt,name=containerPath" json:"containerPath,omitempty"` BytesUsed *int64 `protobuf:"varint,6,opt,name=bytesUsed" json:"bytesUsed,omitempty"` Size *int64 `protobuf:"varint,7,opt,name=size" json:"size,omitempty"` BlockCount *int64 `protobuf:"varint,8,opt,name=blockCount" json:"blockCount,omitempty"` State *ContainerDataProto_State `protobuf:"varint,9,opt,name=state,enum=hadoop.hdds.datanode.ContainerDataProto_State,def=1" json:"state,omitempty"` ContainerType *ContainerType `protobuf:"varint,10,opt,name=containerType,enum=hadoop.hdds.datanode.ContainerType,def=1" json:"containerType,omitempty"` } // Default values for ContainerDataProto fields. const ( Default_ContainerDataProto_State = ContainerDataProto_OPEN Default_ContainerDataProto_ContainerType = ContainerType_KeyValueContainer ) func (x *ContainerDataProto) Reset() { *x = ContainerDataProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ContainerDataProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ContainerDataProto) ProtoMessage() {} func (x *ContainerDataProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ContainerDataProto.ProtoReflect.Descriptor instead. func (*ContainerDataProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{4} } func (x *ContainerDataProto) GetContainerID() int64 { if x != nil && x.ContainerID != nil { return *x.ContainerID } return 0 } func (x *ContainerDataProto) GetMetadata() []*KeyValue { if x != nil { return x.Metadata } return nil } func (x *ContainerDataProto) GetContainerPath() string { if x != nil && x.ContainerPath != nil { return *x.ContainerPath } return "" } func (x *ContainerDataProto) GetBytesUsed() int64 { if x != nil && x.BytesUsed != nil { return *x.BytesUsed } return 0 } func (x *ContainerDataProto) GetSize() int64 { if x != nil && x.Size != nil { return *x.Size } return 0 } func (x *ContainerDataProto) GetBlockCount() int64 { if x != nil && x.BlockCount != nil { return *x.BlockCount } return 0 } func (x *ContainerDataProto) GetState() ContainerDataProto_State { if x != nil && x.State != nil { return *x.State } return Default_ContainerDataProto_State } func (x *ContainerDataProto) GetContainerType() ContainerType { if x != nil && x.ContainerType != nil { return *x.ContainerType } return Default_ContainerDataProto_ContainerType } type Container2BCSIDMapProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // repeated Container2BCSIDMapEntryProto container2BCSID = 1; Container2BCSID map[int64]int64 `protobuf:"bytes,1,rep,name=container2BCSID" json:"container2BCSID,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` } func (x *Container2BCSIDMapProto) Reset() { *x = Container2BCSIDMapProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Container2BCSIDMapProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*Container2BCSIDMapProto) ProtoMessage() {} func (x *Container2BCSIDMapProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 Container2BCSIDMapProto.ProtoReflect.Descriptor instead. func (*Container2BCSIDMapProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{5} } func (x *Container2BCSIDMapProto) GetContainer2BCSID() map[int64]int64 { if x != nil { return x.Container2BCSID } return nil } // Container Messages. type CreateContainerRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Metadata []*KeyValue `protobuf:"bytes,2,rep,name=metadata" json:"metadata,omitempty"` ContainerType *ContainerType `protobuf:"varint,3,opt,name=containerType,enum=hadoop.hdds.datanode.ContainerType,def=1" json:"containerType,omitempty"` } // Default values for CreateContainerRequestProto fields. const ( Default_CreateContainerRequestProto_ContainerType = ContainerType_KeyValueContainer ) func (x *CreateContainerRequestProto) Reset() { *x = CreateContainerRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateContainerRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateContainerRequestProto) ProtoMessage() {} func (x *CreateContainerRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 CreateContainerRequestProto.ProtoReflect.Descriptor instead. func (*CreateContainerRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{6} } func (x *CreateContainerRequestProto) GetMetadata() []*KeyValue { if x != nil { return x.Metadata } return nil } func (x *CreateContainerRequestProto) GetContainerType() ContainerType { if x != nil && x.ContainerType != nil { return *x.ContainerType } return Default_CreateContainerRequestProto_ContainerType } type CreateContainerResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CreateContainerResponseProto) Reset() { *x = CreateContainerResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateContainerResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateContainerResponseProto) ProtoMessage() {} func (x *CreateContainerResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 CreateContainerResponseProto.ProtoReflect.Descriptor instead. func (*CreateContainerResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{7} } type ReadContainerRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReadContainerRequestProto) Reset() { *x = ReadContainerRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReadContainerRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReadContainerRequestProto) ProtoMessage() {} func (x *ReadContainerRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ReadContainerRequestProto.ProtoReflect.Descriptor instead. func (*ReadContainerRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{8} } type ReadContainerResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ContainerData *ContainerDataProto `protobuf:"bytes,1,opt,name=containerData" json:"containerData,omitempty"` } func (x *ReadContainerResponseProto) Reset() { *x = ReadContainerResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReadContainerResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReadContainerResponseProto) ProtoMessage() {} func (x *ReadContainerResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ReadContainerResponseProto.ProtoReflect.Descriptor instead. func (*ReadContainerResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{9} } func (x *ReadContainerResponseProto) GetContainerData() *ContainerDataProto { if x != nil { return x.ContainerData } return nil } type UpdateContainerRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Metadata []*KeyValue `protobuf:"bytes,2,rep,name=metadata" json:"metadata,omitempty"` ForceUpdate *bool `protobuf:"varint,3,opt,name=forceUpdate,def=0" json:"forceUpdate,omitempty"` } // Default values for UpdateContainerRequestProto fields. const ( Default_UpdateContainerRequestProto_ForceUpdate = bool(false) ) func (x *UpdateContainerRequestProto) Reset() { *x = UpdateContainerRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateContainerRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateContainerRequestProto) ProtoMessage() {} func (x *UpdateContainerRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 UpdateContainerRequestProto.ProtoReflect.Descriptor instead. func (*UpdateContainerRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{10} } func (x *UpdateContainerRequestProto) GetMetadata() []*KeyValue { if x != nil { return x.Metadata } return nil } func (x *UpdateContainerRequestProto) GetForceUpdate() bool { if x != nil && x.ForceUpdate != nil { return *x.ForceUpdate } return Default_UpdateContainerRequestProto_ForceUpdate } type UpdateContainerResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *UpdateContainerResponseProto) Reset() { *x = UpdateContainerResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateContainerResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateContainerResponseProto) ProtoMessage() {} func (x *UpdateContainerResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 UpdateContainerResponseProto.ProtoReflect.Descriptor instead. func (*UpdateContainerResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{11} } type DeleteContainerRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ForceDelete *bool `protobuf:"varint,2,opt,name=forceDelete,def=0" json:"forceDelete,omitempty"` } // Default values for DeleteContainerRequestProto fields. const ( Default_DeleteContainerRequestProto_ForceDelete = bool(false) ) func (x *DeleteContainerRequestProto) Reset() { *x = DeleteContainerRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteContainerRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteContainerRequestProto) ProtoMessage() {} func (x *DeleteContainerRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 DeleteContainerRequestProto.ProtoReflect.Descriptor instead. func (*DeleteContainerRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{12} } func (x *DeleteContainerRequestProto) GetForceDelete() bool { if x != nil && x.ForceDelete != nil { return *x.ForceDelete } return Default_DeleteContainerRequestProto_ForceDelete } type DeleteContainerResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *DeleteContainerResponseProto) Reset() { *x = DeleteContainerResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteContainerResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteContainerResponseProto) ProtoMessage() {} func (x *DeleteContainerResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 DeleteContainerResponseProto.ProtoReflect.Descriptor instead. func (*DeleteContainerResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{13} } type ListContainerRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count *uint32 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"` // Max Results to return } func (x *ListContainerRequestProto) Reset() { *x = ListContainerRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListContainerRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListContainerRequestProto) ProtoMessage() {} func (x *ListContainerRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ListContainerRequestProto.ProtoReflect.Descriptor instead. func (*ListContainerRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{14} } func (x *ListContainerRequestProto) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } type ListContainerResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ContainerData []*ContainerDataProto `protobuf:"bytes,1,rep,name=containerData" json:"containerData,omitempty"` } func (x *ListContainerResponseProto) Reset() { *x = ListContainerResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListContainerResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListContainerResponseProto) ProtoMessage() {} func (x *ListContainerResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ListContainerResponseProto.ProtoReflect.Descriptor instead. func (*ListContainerResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{15} } func (x *ListContainerResponseProto) GetContainerData() []*ContainerDataProto { if x != nil { return x.ContainerData } return nil } type CloseContainerRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CloseContainerRequestProto) Reset() { *x = CloseContainerRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CloseContainerRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*CloseContainerRequestProto) ProtoMessage() {} func (x *CloseContainerRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 CloseContainerRequestProto.ProtoReflect.Descriptor instead. func (*CloseContainerRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{16} } type CloseContainerResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Hash *string `protobuf:"bytes,1,opt,name=hash" json:"hash,omitempty"` ContainerID *int64 `protobuf:"varint,2,opt,name=containerID" json:"containerID,omitempty"` } func (x *CloseContainerResponseProto) Reset() { *x = CloseContainerResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CloseContainerResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*CloseContainerResponseProto) ProtoMessage() {} func (x *CloseContainerResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 CloseContainerResponseProto.ProtoReflect.Descriptor instead. func (*CloseContainerResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{17} } func (x *CloseContainerResponseProto) GetHash() string { if x != nil && x.Hash != nil { return *x.Hash } return "" } func (x *CloseContainerResponseProto) GetContainerID() int64 { if x != nil && x.ContainerID != nil { return *x.ContainerID } return 0 } type BlockData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` Flags *int64 `protobuf:"varint,2,opt,name=flags" json:"flags,omitempty"` // for future use. Metadata []*KeyValue `protobuf:"bytes,3,rep,name=metadata" json:"metadata,omitempty"` Chunks []*ChunkInfo `protobuf:"bytes,4,rep,name=chunks" json:"chunks,omitempty"` Size *int64 `protobuf:"varint,5,opt,name=size" json:"size,omitempty"` } func (x *BlockData) Reset() { *x = BlockData{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockData) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockData) ProtoMessage() {} func (x *BlockData) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 BlockData.ProtoReflect.Descriptor instead. func (*BlockData) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{18} } func (x *BlockData) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } func (x *BlockData) GetFlags() int64 { if x != nil && x.Flags != nil { return *x.Flags } return 0 } func (x *BlockData) GetMetadata() []*KeyValue { if x != nil { return x.Metadata } return nil } func (x *BlockData) GetChunks() []*ChunkInfo { if x != nil { return x.Chunks } return nil } func (x *BlockData) GetSize() int64 { if x != nil && x.Size != nil { return *x.Size } return 0 } // Block Messages. type PutBlockRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockData *BlockData `protobuf:"bytes,1,req,name=blockData" json:"blockData,omitempty"` Eof *bool `protobuf:"varint,2,opt,name=eof" json:"eof,omitempty"` } func (x *PutBlockRequestProto) Reset() { *x = PutBlockRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PutBlockRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*PutBlockRequestProto) ProtoMessage() {} func (x *PutBlockRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 PutBlockRequestProto.ProtoReflect.Descriptor instead. func (*PutBlockRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{19} } func (x *PutBlockRequestProto) GetBlockData() *BlockData { if x != nil { return x.BlockData } return nil } func (x *PutBlockRequestProto) GetEof() bool { if x != nil && x.Eof != nil { return *x.Eof } return false } type PutBlockResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommittedBlockLength *GetCommittedBlockLengthResponseProto `protobuf:"bytes,1,req,name=committedBlockLength" json:"committedBlockLength,omitempty"` } func (x *PutBlockResponseProto) Reset() { *x = PutBlockResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PutBlockResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*PutBlockResponseProto) ProtoMessage() {} func (x *PutBlockResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 PutBlockResponseProto.ProtoReflect.Descriptor instead. func (*PutBlockResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{20} } func (x *PutBlockResponseProto) GetCommittedBlockLength() *GetCommittedBlockLengthResponseProto { if x != nil { return x.CommittedBlockLength } return nil } type GetBlockRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` } func (x *GetBlockRequestProto) Reset() { *x = GetBlockRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetBlockRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetBlockRequestProto) ProtoMessage() {} func (x *GetBlockRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 GetBlockRequestProto.ProtoReflect.Descriptor instead. func (*GetBlockRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{21} } func (x *GetBlockRequestProto) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } type GetBlockResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockData *BlockData `protobuf:"bytes,1,req,name=blockData" json:"blockData,omitempty"` } func (x *GetBlockResponseProto) Reset() { *x = GetBlockResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetBlockResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetBlockResponseProto) ProtoMessage() {} func (x *GetBlockResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 GetBlockResponseProto.ProtoReflect.Descriptor instead. func (*GetBlockResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{22} } func (x *GetBlockResponseProto) GetBlockData() *BlockData { if x != nil { return x.BlockData } return nil } type DeleteBlockRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` } func (x *DeleteBlockRequestProto) Reset() { *x = DeleteBlockRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteBlockRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteBlockRequestProto) ProtoMessage() {} func (x *DeleteBlockRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 DeleteBlockRequestProto.ProtoReflect.Descriptor instead. func (*DeleteBlockRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{23} } func (x *DeleteBlockRequestProto) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } type GetCommittedBlockLengthRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` } func (x *GetCommittedBlockLengthRequestProto) Reset() { *x = GetCommittedBlockLengthRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCommittedBlockLengthRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCommittedBlockLengthRequestProto) ProtoMessage() {} func (x *GetCommittedBlockLengthRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 GetCommittedBlockLengthRequestProto.ProtoReflect.Descriptor instead. func (*GetCommittedBlockLengthRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{24} } func (x *GetCommittedBlockLengthRequestProto) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } type GetCommittedBlockLengthResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` BlockLength *int64 `protobuf:"varint,2,req,name=blockLength" json:"blockLength,omitempty"` } func (x *GetCommittedBlockLengthResponseProto) Reset() { *x = GetCommittedBlockLengthResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCommittedBlockLengthResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCommittedBlockLengthResponseProto) ProtoMessage() {} func (x *GetCommittedBlockLengthResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 GetCommittedBlockLengthResponseProto.ProtoReflect.Descriptor instead. func (*GetCommittedBlockLengthResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{25} } func (x *GetCommittedBlockLengthResponseProto) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } func (x *GetCommittedBlockLengthResponseProto) GetBlockLength() int64 { if x != nil && x.BlockLength != nil { return *x.BlockLength } return 0 } type DeleteBlockResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *DeleteBlockResponseProto) Reset() { *x = DeleteBlockResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteBlockResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteBlockResponseProto) ProtoMessage() {} func (x *DeleteBlockResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 DeleteBlockResponseProto.ProtoReflect.Descriptor instead. func (*DeleteBlockResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{26} } type ListBlockRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartLocalID *int64 `protobuf:"varint,2,opt,name=startLocalID" json:"startLocalID,omitempty"` Count *uint32 `protobuf:"varint,3,req,name=count" json:"count,omitempty"` } func (x *ListBlockRequestProto) Reset() { *x = ListBlockRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListBlockRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListBlockRequestProto) ProtoMessage() {} func (x *ListBlockRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ListBlockRequestProto.ProtoReflect.Descriptor instead. func (*ListBlockRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{27} } func (x *ListBlockRequestProto) GetStartLocalID() int64 { if x != nil && x.StartLocalID != nil { return *x.StartLocalID } return 0 } func (x *ListBlockRequestProto) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } type ListBlockResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockData []*BlockData `protobuf:"bytes,1,rep,name=blockData" json:"blockData,omitempty"` } func (x *ListBlockResponseProto) Reset() { *x = ListBlockResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListBlockResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListBlockResponseProto) ProtoMessage() {} func (x *ListBlockResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ListBlockResponseProto.ProtoReflect.Descriptor instead. func (*ListBlockResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{28} } func (x *ListBlockResponseProto) GetBlockData() []*BlockData { if x != nil { return x.BlockData } return nil } type ChunkInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChunkName *string `protobuf:"bytes,1,req,name=chunkName" json:"chunkName,omitempty"` Offset *uint64 `protobuf:"varint,2,req,name=offset" json:"offset,omitempty"` Len *uint64 `protobuf:"varint,3,req,name=len" json:"len,omitempty"` Metadata []*KeyValue `protobuf:"bytes,4,rep,name=metadata" json:"metadata,omitempty"` ChecksumData *ChecksumData `protobuf:"bytes,5,req,name=checksumData" json:"checksumData,omitempty"` } func (x *ChunkInfo) Reset() { *x = ChunkInfo{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChunkInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChunkInfo) ProtoMessage() {} func (x *ChunkInfo) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ChunkInfo.ProtoReflect.Descriptor instead. func (*ChunkInfo) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{29} } func (x *ChunkInfo) GetChunkName() string { if x != nil && x.ChunkName != nil { return *x.ChunkName } return "" } func (x *ChunkInfo) GetOffset() uint64 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } func (x *ChunkInfo) GetLen() uint64 { if x != nil && x.Len != nil { return *x.Len } return 0 } func (x *ChunkInfo) GetMetadata() []*KeyValue { if x != nil { return x.Metadata } return nil } func (x *ChunkInfo) GetChecksumData() *ChecksumData { if x != nil { return x.ChecksumData } return nil } type ChecksumData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type *ChecksumType `protobuf:"varint,1,req,name=type,enum=hadoop.hdds.datanode.ChecksumType" json:"type,omitempty"` BytesPerChecksum *uint32 `protobuf:"varint,2,req,name=bytesPerChecksum" json:"bytesPerChecksum,omitempty"` Checksums [][]byte `protobuf:"bytes,3,rep,name=checksums" json:"checksums,omitempty"` } func (x *ChecksumData) Reset() { *x = ChecksumData{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChecksumData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChecksumData) ProtoMessage() {} func (x *ChecksumData) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_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 ChecksumData.ProtoReflect.Descriptor instead. func (*ChecksumData) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{30} } func (x *ChecksumData) GetType() ChecksumType { if x != nil && x.Type != nil { return *x.Type } return ChecksumType_NONE } func (x *ChecksumData) GetBytesPerChecksum() uint32 { if x != nil && x.BytesPerChecksum != nil { return *x.BytesPerChecksum } return 0 } func (x *ChecksumData) GetChecksums() [][]byte { if x != nil { return x.Checksums } return nil } type WriteChunkRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` ChunkData *ChunkInfo `protobuf:"bytes,2,req,name=chunkData" json:"chunkData,omitempty"` Data []byte `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"` } func (x *WriteChunkRequestProto) Reset() { *x = WriteChunkRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WriteChunkRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*WriteChunkRequestProto) ProtoMessage() {} func (x *WriteChunkRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[31] 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 WriteChunkRequestProto.ProtoReflect.Descriptor instead. func (*WriteChunkRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{31} } func (x *WriteChunkRequestProto) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } func (x *WriteChunkRequestProto) GetChunkData() *ChunkInfo { if x != nil { return x.ChunkData } return nil } func (x *WriteChunkRequestProto) GetData() []byte { if x != nil { return x.Data } return nil } type WriteChunkResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *WriteChunkResponseProto) Reset() { *x = WriteChunkResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WriteChunkResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*WriteChunkResponseProto) ProtoMessage() {} func (x *WriteChunkResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[32] 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 WriteChunkResponseProto.ProtoReflect.Descriptor instead. func (*WriteChunkResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{32} } type ReadChunkRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` ChunkData *ChunkInfo `protobuf:"bytes,2,req,name=chunkData" json:"chunkData,omitempty"` } func (x *ReadChunkRequestProto) Reset() { *x = ReadChunkRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReadChunkRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReadChunkRequestProto) ProtoMessage() {} func (x *ReadChunkRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[33] 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 ReadChunkRequestProto.ProtoReflect.Descriptor instead. func (*ReadChunkRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{33} } func (x *ReadChunkRequestProto) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } func (x *ReadChunkRequestProto) GetChunkData() *ChunkInfo { if x != nil { return x.ChunkData } return nil } type ReadChunkResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` ChunkData *ChunkInfo `protobuf:"bytes,2,req,name=chunkData" json:"chunkData,omitempty"` Data []byte `protobuf:"bytes,3,req,name=data" json:"data,omitempty"` } func (x *ReadChunkResponseProto) Reset() { *x = ReadChunkResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReadChunkResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReadChunkResponseProto) ProtoMessage() {} func (x *ReadChunkResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[34] 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 ReadChunkResponseProto.ProtoReflect.Descriptor instead. func (*ReadChunkResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{34} } func (x *ReadChunkResponseProto) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } func (x *ReadChunkResponseProto) GetChunkData() *ChunkInfo { if x != nil { return x.ChunkData } return nil } func (x *ReadChunkResponseProto) GetData() []byte { if x != nil { return x.Data } return nil } type DeleteChunkRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` ChunkData *ChunkInfo `protobuf:"bytes,2,req,name=chunkData" json:"chunkData,omitempty"` } func (x *DeleteChunkRequestProto) Reset() { *x = DeleteChunkRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteChunkRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteChunkRequestProto) ProtoMessage() {} func (x *DeleteChunkRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[35] 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 DeleteChunkRequestProto.ProtoReflect.Descriptor instead. func (*DeleteChunkRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{35} } func (x *DeleteChunkRequestProto) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } func (x *DeleteChunkRequestProto) GetChunkData() *ChunkInfo { if x != nil { return x.ChunkData } return nil } type DeleteChunkResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *DeleteChunkResponseProto) Reset() { *x = DeleteChunkResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteChunkResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteChunkResponseProto) ProtoMessage() {} func (x *DeleteChunkResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[36] 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 DeleteChunkResponseProto.ProtoReflect.Descriptor instead. func (*DeleteChunkResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{36} } type ListChunkRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockID *DatanodeBlockID `protobuf:"bytes,1,req,name=blockID" json:"blockID,omitempty"` PrevChunkName *string `protobuf:"bytes,2,req,name=prevChunkName" json:"prevChunkName,omitempty"` Count *uint32 `protobuf:"varint,3,req,name=count" json:"count,omitempty"` } func (x *ListChunkRequestProto) Reset() { *x = ListChunkRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListChunkRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListChunkRequestProto) ProtoMessage() {} func (x *ListChunkRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[37] 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 ListChunkRequestProto.ProtoReflect.Descriptor instead. func (*ListChunkRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{37} } func (x *ListChunkRequestProto) GetBlockID() *DatanodeBlockID { if x != nil { return x.BlockID } return nil } func (x *ListChunkRequestProto) GetPrevChunkName() string { if x != nil && x.PrevChunkName != nil { return *x.PrevChunkName } return "" } func (x *ListChunkRequestProto) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } type ListChunkResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChunkData []*ChunkInfo `protobuf:"bytes,1,rep,name=chunkData" json:"chunkData,omitempty"` } func (x *ListChunkResponseProto) Reset() { *x = ListChunkResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListChunkResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListChunkResponseProto) ProtoMessage() {} func (x *ListChunkResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[38] 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 ListChunkResponseProto.ProtoReflect.Descriptor instead. func (*ListChunkResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{38} } func (x *ListChunkResponseProto) GetChunkData() []*ChunkInfo { if x != nil { return x.ChunkData } return nil } type PutSmallFileRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Block *PutBlockRequestProto `protobuf:"bytes,1,req,name=block" json:"block,omitempty"` ChunkInfo *ChunkInfo `protobuf:"bytes,2,req,name=chunkInfo" json:"chunkInfo,omitempty"` Data []byte `protobuf:"bytes,3,req,name=data" json:"data,omitempty"` } func (x *PutSmallFileRequestProto) Reset() { *x = PutSmallFileRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PutSmallFileRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*PutSmallFileRequestProto) ProtoMessage() {} func (x *PutSmallFileRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[39] 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 PutSmallFileRequestProto.ProtoReflect.Descriptor instead. func (*PutSmallFileRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{39} } func (x *PutSmallFileRequestProto) GetBlock() *PutBlockRequestProto { if x != nil { return x.Block } return nil } func (x *PutSmallFileRequestProto) GetChunkInfo() *ChunkInfo { if x != nil { return x.ChunkInfo } return nil } func (x *PutSmallFileRequestProto) GetData() []byte { if x != nil { return x.Data } return nil } type PutSmallFileResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommittedBlockLength *GetCommittedBlockLengthResponseProto `protobuf:"bytes,1,req,name=committedBlockLength" json:"committedBlockLength,omitempty"` } func (x *PutSmallFileResponseProto) Reset() { *x = PutSmallFileResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PutSmallFileResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*PutSmallFileResponseProto) ProtoMessage() {} func (x *PutSmallFileResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[40] 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 PutSmallFileResponseProto.ProtoReflect.Descriptor instead. func (*PutSmallFileResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{40} } func (x *PutSmallFileResponseProto) GetCommittedBlockLength() *GetCommittedBlockLengthResponseProto { if x != nil { return x.CommittedBlockLength } return nil } type GetSmallFileRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Block *GetBlockRequestProto `protobuf:"bytes,1,req,name=block" json:"block,omitempty"` } func (x *GetSmallFileRequestProto) Reset() { *x = GetSmallFileRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetSmallFileRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSmallFileRequestProto) ProtoMessage() {} func (x *GetSmallFileRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[41] 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 GetSmallFileRequestProto.ProtoReflect.Descriptor instead. func (*GetSmallFileRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{41} } func (x *GetSmallFileRequestProto) GetBlock() *GetBlockRequestProto { if x != nil { return x.Block } return nil } type GetSmallFileResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data *ReadChunkResponseProto `protobuf:"bytes,1,req,name=data" json:"data,omitempty"` } func (x *GetSmallFileResponseProto) Reset() { *x = GetSmallFileResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetSmallFileResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSmallFileResponseProto) ProtoMessage() {} func (x *GetSmallFileResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[42] 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 GetSmallFileResponseProto.ProtoReflect.Descriptor instead. func (*GetSmallFileResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{42} } func (x *GetSmallFileResponseProto) GetData() *ReadChunkResponseProto { if x != nil { return x.Data } return nil } type CopyContainerRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ContainerID *int64 `protobuf:"varint,1,req,name=containerID" json:"containerID,omitempty"` ReadOffset *uint64 `protobuf:"varint,2,req,name=readOffset" json:"readOffset,omitempty"` Len *uint64 `protobuf:"varint,3,opt,name=len" json:"len,omitempty"` } func (x *CopyContainerRequestProto) Reset() { *x = CopyContainerRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CopyContainerRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*CopyContainerRequestProto) ProtoMessage() {} func (x *CopyContainerRequestProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[43] 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 CopyContainerRequestProto.ProtoReflect.Descriptor instead. func (*CopyContainerRequestProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{43} } func (x *CopyContainerRequestProto) GetContainerID() int64 { if x != nil && x.ContainerID != nil { return *x.ContainerID } return 0 } func (x *CopyContainerRequestProto) GetReadOffset() uint64 { if x != nil && x.ReadOffset != nil { return *x.ReadOffset } return 0 } func (x *CopyContainerRequestProto) GetLen() uint64 { if x != nil && x.Len != nil { return *x.Len } return 0 } type CopyContainerResponseProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ContainerID *int64 `protobuf:"varint,1,req,name=containerID" json:"containerID,omitempty"` ReadOffset *uint64 `protobuf:"varint,2,req,name=readOffset" json:"readOffset,omitempty"` Len *uint64 `protobuf:"varint,3,req,name=len" json:"len,omitempty"` Eof *bool `protobuf:"varint,4,req,name=eof" json:"eof,omitempty"` Data []byte `protobuf:"bytes,5,req,name=data" json:"data,omitempty"` Checksum *int64 `protobuf:"varint,6,opt,name=checksum" json:"checksum,omitempty"` } func (x *CopyContainerResponseProto) Reset() { *x = CopyContainerResponseProto{} if protoimpl.UnsafeEnabled { mi := &file_DatanodeClientProtocol_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CopyContainerResponseProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*CopyContainerResponseProto) ProtoMessage() {} func (x *CopyContainerResponseProto) ProtoReflect() protoreflect.Message { mi := &file_DatanodeClientProtocol_proto_msgTypes[44] 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 CopyContainerResponseProto.ProtoReflect.Descriptor instead. func (*CopyContainerResponseProto) Descriptor() ([]byte, []int) { return file_DatanodeClientProtocol_proto_rawDescGZIP(), []int{44} } func (x *CopyContainerResponseProto) GetContainerID() int64 { if x != nil && x.ContainerID != nil { return *x.ContainerID } return 0 } func (x *CopyContainerResponseProto) GetReadOffset() uint64 { if x != nil && x.ReadOffset != nil { return *x.ReadOffset } return 0 } func (x *CopyContainerResponseProto) GetLen() uint64 { if x != nil && x.Len != nil { return *x.Len } return 0 } func (x *CopyContainerResponseProto) GetEof() bool { if x != nil && x.Eof != nil { return *x.Eof } return false } func (x *CopyContainerResponseProto) GetData() []byte { if x != nil { return x.Data } return nil } func (x *CopyContainerResponseProto) GetChecksum() int64 { if x != nil && x.Checksum != nil { return *x.Checksum } return 0 } var File_DatanodeClientProtocol_proto protoreflect.FileDescriptor var file_DatanodeClientProtocol_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x02, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x37, 0x0a, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x01, 0x30, 0x52, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0x32, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x02, 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, 0x22, 0x95, 0x0d, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x6d, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x63, 0x6d, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x5b, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x70, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x46, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x49, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x72, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x4c, 0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x4f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x49, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x52, 0x0a, 0x0c, 0x70, 0x75, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0c, 0x70, 0x75, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x52, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x73, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x17, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xed, 0x0c, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x6d, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x63, 0x6d, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5c, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x70, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x70, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x47, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4d, 0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x4a, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x72, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x4a, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x53, 0x0a, 0x0c, 0x70, 0x75, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0c, 0x70, 0x75, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x74, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x17, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x04, 0x4f, 0x50, 0x45, 0x4e, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x11, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x65, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x4f, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x51, 0x55, 0x41, 0x53, 0x49, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x07, 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x32, 0x42, 0x43, 0x53, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x6c, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x32, 0x42, 0x43, 0x53, 0x49, 0x44, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x32, 0x42, 0x43, 0x53, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x32, 0x42, 0x43, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x32, 0x42, 0x43, 0x53, 0x49, 0x44, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x32, 0x42, 0x43, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb7, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x11, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6c, 0x0a, 0x1a, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x4e, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x82, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x46, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x27, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x31, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x4e, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x1c, 0x0a, 0x1a, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x53, 0x0a, 0x1b, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x22, 0xeb, 0x01, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x67, 0x0a, 0x14, 0x50, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3d, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x65, 0x6f, 0x66, 0x22, 0x87, 0x01, 0x0a, 0x15, 0x50, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x6e, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x57, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x22, 0x56, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3d, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5a, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x22, 0x66, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x22, 0x89, 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x51, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x57, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3d, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd7, 0x01, 0x0a, 0x09, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x10, 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x19, 0x0a, 0x17, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x99, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x57, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3d, 0x0a, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x22, 0xaf, 0x01, 0x0a, 0x18, 0x50, 0x75, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x40, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8b, 0x01, 0x0a, 0x19, 0x50, 0x75, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x6e, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x5c, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x40, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x5d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x40, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6f, 0x0a, 0x19, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x22, 0xb2, 0x01, 0x0a, 0x1a, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6f, 0x66, 0x18, 0x04, 0x20, 0x02, 0x28, 0x08, 0x52, 0x03, 0x65, 0x6f, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2a, 0xcd, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x75, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x10, 0x0d, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x75, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x10, 0x0f, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x10, 0x11, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x10, 0x12, 0x2a, 0x9d, 0x08, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x5f, 0x53, 0x55, 0x43, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4f, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x44, 0x42, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x5f, 0x53, 0x55, 0x43, 0x48, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x56, 0x45, 0x52, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x44, 0x49, 0x52, 0x10, 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x0f, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x10, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x48, 0x55, 0x4e, 0x4b, 0x10, 0x11, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x12, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x14, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x15, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x49, 0x4f, 0x10, 0x16, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x44, 0x42, 0x10, 0x18, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x49, 0x4f, 0x10, 0x19, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x1a, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, 0x1b, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x1c, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x1d, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x1e, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x1f, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x20, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x21, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x22, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x23, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x24, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x42, 0x43, 0x53, 0x49, 0x44, 0x10, 0x25, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x43, 0x53, 0x49, 0x44, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x26, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x27, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x28, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x29, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x42, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x2a, 0x2a, 0x26, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x10, 0x01, 0x2a, 0x44, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x52, 0x43, 0x33, 0x32, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x43, 0x33, 0x32, 0x43, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x44, 0x35, 0x10, 0x05, 0x32, 0x95, 0x01, 0x0a, 0x1c, 0x58, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x75, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x32, 0x8f, 0x01, 0x0a, 0x1c, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6f, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2f, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x30, 0x01, 0x42, 0x73, 0x0a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x2e, 0x68, 0x64, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2f, 0x6f, 0x7a, 0x6f, 0x6e, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0xa0, 0x01, 0x01, } var ( file_DatanodeClientProtocol_proto_rawDescOnce sync.Once file_DatanodeClientProtocol_proto_rawDescData = file_DatanodeClientProtocol_proto_rawDesc ) func file_DatanodeClientProtocol_proto_rawDescGZIP() []byte { file_DatanodeClientProtocol_proto_rawDescOnce.Do(func() { file_DatanodeClientProtocol_proto_rawDescData = protoimpl.X.CompressGZIP(file_DatanodeClientProtocol_proto_rawDescData) }) return file_DatanodeClientProtocol_proto_rawDescData } var file_DatanodeClientProtocol_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_DatanodeClientProtocol_proto_msgTypes = make([]protoimpl.MessageInfo, 46) var file_DatanodeClientProtocol_proto_goTypes = []interface{}{ (Type)(0), // 0: hadoop.hdds.datanode.Type (Result)(0), // 1: hadoop.hdds.datanode.Result (ContainerType)(0), // 2: hadoop.hdds.datanode.ContainerType (ChecksumType)(0), // 3: hadoop.hdds.datanode.ChecksumType (ContainerDataProto_State)(0), // 4: hadoop.hdds.datanode.ContainerDataProto.State (*DatanodeBlockID)(nil), // 5: hadoop.hdds.datanode.DatanodeBlockID (*KeyValue)(nil), // 6: hadoop.hdds.datanode.KeyValue (*ContainerCommandRequestProto)(nil), // 7: hadoop.hdds.datanode.ContainerCommandRequestProto (*ContainerCommandResponseProto)(nil), // 8: hadoop.hdds.datanode.ContainerCommandResponseProto (*ContainerDataProto)(nil), // 9: hadoop.hdds.datanode.ContainerDataProto (*Container2BCSIDMapProto)(nil), // 10: hadoop.hdds.datanode.Container2BCSIDMapProto (*CreateContainerRequestProto)(nil), // 11: hadoop.hdds.datanode.CreateContainerRequestProto (*CreateContainerResponseProto)(nil), // 12: hadoop.hdds.datanode.CreateContainerResponseProto (*ReadContainerRequestProto)(nil), // 13: hadoop.hdds.datanode.ReadContainerRequestProto (*ReadContainerResponseProto)(nil), // 14: hadoop.hdds.datanode.ReadContainerResponseProto (*UpdateContainerRequestProto)(nil), // 15: hadoop.hdds.datanode.UpdateContainerRequestProto (*UpdateContainerResponseProto)(nil), // 16: hadoop.hdds.datanode.UpdateContainerResponseProto (*DeleteContainerRequestProto)(nil), // 17: hadoop.hdds.datanode.DeleteContainerRequestProto (*DeleteContainerResponseProto)(nil), // 18: hadoop.hdds.datanode.DeleteContainerResponseProto (*ListContainerRequestProto)(nil), // 19: hadoop.hdds.datanode.ListContainerRequestProto (*ListContainerResponseProto)(nil), // 20: hadoop.hdds.datanode.ListContainerResponseProto (*CloseContainerRequestProto)(nil), // 21: hadoop.hdds.datanode.CloseContainerRequestProto (*CloseContainerResponseProto)(nil), // 22: hadoop.hdds.datanode.CloseContainerResponseProto (*BlockData)(nil), // 23: hadoop.hdds.datanode.BlockData (*PutBlockRequestProto)(nil), // 24: hadoop.hdds.datanode.PutBlockRequestProto (*PutBlockResponseProto)(nil), // 25: hadoop.hdds.datanode.PutBlockResponseProto (*GetBlockRequestProto)(nil), // 26: hadoop.hdds.datanode.GetBlockRequestProto (*GetBlockResponseProto)(nil), // 27: hadoop.hdds.datanode.GetBlockResponseProto (*DeleteBlockRequestProto)(nil), // 28: hadoop.hdds.datanode.DeleteBlockRequestProto (*GetCommittedBlockLengthRequestProto)(nil), // 29: hadoop.hdds.datanode.GetCommittedBlockLengthRequestProto (*GetCommittedBlockLengthResponseProto)(nil), // 30: hadoop.hdds.datanode.GetCommittedBlockLengthResponseProto (*DeleteBlockResponseProto)(nil), // 31: hadoop.hdds.datanode.DeleteBlockResponseProto (*ListBlockRequestProto)(nil), // 32: hadoop.hdds.datanode.ListBlockRequestProto (*ListBlockResponseProto)(nil), // 33: hadoop.hdds.datanode.ListBlockResponseProto (*ChunkInfo)(nil), // 34: hadoop.hdds.datanode.ChunkInfo (*ChecksumData)(nil), // 35: hadoop.hdds.datanode.ChecksumData (*WriteChunkRequestProto)(nil), // 36: hadoop.hdds.datanode.WriteChunkRequestProto (*WriteChunkResponseProto)(nil), // 37: hadoop.hdds.datanode.WriteChunkResponseProto (*ReadChunkRequestProto)(nil), // 38: hadoop.hdds.datanode.ReadChunkRequestProto (*ReadChunkResponseProto)(nil), // 39: hadoop.hdds.datanode.ReadChunkResponseProto (*DeleteChunkRequestProto)(nil), // 40: hadoop.hdds.datanode.DeleteChunkRequestProto (*DeleteChunkResponseProto)(nil), // 41: hadoop.hdds.datanode.DeleteChunkResponseProto (*ListChunkRequestProto)(nil), // 42: hadoop.hdds.datanode.ListChunkRequestProto (*ListChunkResponseProto)(nil), // 43: hadoop.hdds.datanode.ListChunkResponseProto (*PutSmallFileRequestProto)(nil), // 44: hadoop.hdds.datanode.PutSmallFileRequestProto (*PutSmallFileResponseProto)(nil), // 45: hadoop.hdds.datanode.PutSmallFileResponseProto (*GetSmallFileRequestProto)(nil), // 46: hadoop.hdds.datanode.GetSmallFileRequestProto (*GetSmallFileResponseProto)(nil), // 47: hadoop.hdds.datanode.GetSmallFileResponseProto (*CopyContainerRequestProto)(nil), // 48: hadoop.hdds.datanode.CopyContainerRequestProto (*CopyContainerResponseProto)(nil), // 49: hadoop.hdds.datanode.CopyContainerResponseProto nil, // 50: hadoop.hdds.datanode.Container2BCSIDMapProto.Container2BCSIDEntry } var file_DatanodeClientProtocol_proto_depIdxs = []int32{ 0, // 0: hadoop.hdds.datanode.ContainerCommandRequestProto.cmdType:type_name -> hadoop.hdds.datanode.Type 11, // 1: hadoop.hdds.datanode.ContainerCommandRequestProto.createContainer:type_name -> hadoop.hdds.datanode.CreateContainerRequestProto 13, // 2: hadoop.hdds.datanode.ContainerCommandRequestProto.readContainer:type_name -> hadoop.hdds.datanode.ReadContainerRequestProto 15, // 3: hadoop.hdds.datanode.ContainerCommandRequestProto.updateContainer:type_name -> hadoop.hdds.datanode.UpdateContainerRequestProto 17, // 4: hadoop.hdds.datanode.ContainerCommandRequestProto.deleteContainer:type_name -> hadoop.hdds.datanode.DeleteContainerRequestProto 19, // 5: hadoop.hdds.datanode.ContainerCommandRequestProto.listContainer:type_name -> hadoop.hdds.datanode.ListContainerRequestProto 21, // 6: hadoop.hdds.datanode.ContainerCommandRequestProto.closeContainer:type_name -> hadoop.hdds.datanode.CloseContainerRequestProto 24, // 7: hadoop.hdds.datanode.ContainerCommandRequestProto.putBlock:type_name -> hadoop.hdds.datanode.PutBlockRequestProto 26, // 8: hadoop.hdds.datanode.ContainerCommandRequestProto.getBlock:type_name -> hadoop.hdds.datanode.GetBlockRequestProto 28, // 9: hadoop.hdds.datanode.ContainerCommandRequestProto.deleteBlock:type_name -> hadoop.hdds.datanode.DeleteBlockRequestProto 32, // 10: hadoop.hdds.datanode.ContainerCommandRequestProto.listBlock:type_name -> hadoop.hdds.datanode.ListBlockRequestProto 38, // 11: hadoop.hdds.datanode.ContainerCommandRequestProto.readChunk:type_name -> hadoop.hdds.datanode.ReadChunkRequestProto 36, // 12: hadoop.hdds.datanode.ContainerCommandRequestProto.writeChunk:type_name -> hadoop.hdds.datanode.WriteChunkRequestProto 40, // 13: hadoop.hdds.datanode.ContainerCommandRequestProto.deleteChunk:type_name -> hadoop.hdds.datanode.DeleteChunkRequestProto 42, // 14: hadoop.hdds.datanode.ContainerCommandRequestProto.listChunk:type_name -> hadoop.hdds.datanode.ListChunkRequestProto 44, // 15: hadoop.hdds.datanode.ContainerCommandRequestProto.putSmallFile:type_name -> hadoop.hdds.datanode.PutSmallFileRequestProto 46, // 16: hadoop.hdds.datanode.ContainerCommandRequestProto.getSmallFile:type_name -> hadoop.hdds.datanode.GetSmallFileRequestProto 29, // 17: hadoop.hdds.datanode.ContainerCommandRequestProto.getCommittedBlockLength:type_name -> hadoop.hdds.datanode.GetCommittedBlockLengthRequestProto 0, // 18: hadoop.hdds.datanode.ContainerCommandResponseProto.cmdType:type_name -> hadoop.hdds.datanode.Type 1, // 19: hadoop.hdds.datanode.ContainerCommandResponseProto.result:type_name -> hadoop.hdds.datanode.Result 12, // 20: hadoop.hdds.datanode.ContainerCommandResponseProto.createContainer:type_name -> hadoop.hdds.datanode.CreateContainerResponseProto 14, // 21: hadoop.hdds.datanode.ContainerCommandResponseProto.readContainer:type_name -> hadoop.hdds.datanode.ReadContainerResponseProto 16, // 22: hadoop.hdds.datanode.ContainerCommandResponseProto.updateContainer:type_name -> hadoop.hdds.datanode.UpdateContainerResponseProto 18, // 23: hadoop.hdds.datanode.ContainerCommandResponseProto.deleteContainer:type_name -> hadoop.hdds.datanode.DeleteContainerResponseProto 20, // 24: hadoop.hdds.datanode.ContainerCommandResponseProto.listContainer:type_name -> hadoop.hdds.datanode.ListContainerResponseProto 22, // 25: hadoop.hdds.datanode.ContainerCommandResponseProto.closeContainer:type_name -> hadoop.hdds.datanode.CloseContainerResponseProto 25, // 26: hadoop.hdds.datanode.ContainerCommandResponseProto.putBlock:type_name -> hadoop.hdds.datanode.PutBlockResponseProto 27, // 27: hadoop.hdds.datanode.ContainerCommandResponseProto.getBlock:type_name -> hadoop.hdds.datanode.GetBlockResponseProto 31, // 28: hadoop.hdds.datanode.ContainerCommandResponseProto.deleteBlock:type_name -> hadoop.hdds.datanode.DeleteBlockResponseProto 33, // 29: hadoop.hdds.datanode.ContainerCommandResponseProto.listBlock:type_name -> hadoop.hdds.datanode.ListBlockResponseProto 37, // 30: hadoop.hdds.datanode.ContainerCommandResponseProto.writeChunk:type_name -> hadoop.hdds.datanode.WriteChunkResponseProto 39, // 31: hadoop.hdds.datanode.ContainerCommandResponseProto.readChunk:type_name -> hadoop.hdds.datanode.ReadChunkResponseProto 41, // 32: hadoop.hdds.datanode.ContainerCommandResponseProto.deleteChunk:type_name -> hadoop.hdds.datanode.DeleteChunkResponseProto 43, // 33: hadoop.hdds.datanode.ContainerCommandResponseProto.listChunk:type_name -> hadoop.hdds.datanode.ListChunkResponseProto 45, // 34: hadoop.hdds.datanode.ContainerCommandResponseProto.putSmallFile:type_name -> hadoop.hdds.datanode.PutSmallFileResponseProto 47, // 35: hadoop.hdds.datanode.ContainerCommandResponseProto.getSmallFile:type_name -> hadoop.hdds.datanode.GetSmallFileResponseProto 30, // 36: hadoop.hdds.datanode.ContainerCommandResponseProto.getCommittedBlockLength:type_name -> hadoop.hdds.datanode.GetCommittedBlockLengthResponseProto 6, // 37: hadoop.hdds.datanode.ContainerDataProto.metadata:type_name -> hadoop.hdds.datanode.KeyValue 4, // 38: hadoop.hdds.datanode.ContainerDataProto.state:type_name -> hadoop.hdds.datanode.ContainerDataProto.State 2, // 39: hadoop.hdds.datanode.ContainerDataProto.containerType:type_name -> hadoop.hdds.datanode.ContainerType 50, // 40: hadoop.hdds.datanode.Container2BCSIDMapProto.container2BCSID:type_name -> hadoop.hdds.datanode.Container2BCSIDMapProto.Container2BCSIDEntry 6, // 41: hadoop.hdds.datanode.CreateContainerRequestProto.metadata:type_name -> hadoop.hdds.datanode.KeyValue 2, // 42: hadoop.hdds.datanode.CreateContainerRequestProto.containerType:type_name -> hadoop.hdds.datanode.ContainerType 9, // 43: hadoop.hdds.datanode.ReadContainerResponseProto.containerData:type_name -> hadoop.hdds.datanode.ContainerDataProto 6, // 44: hadoop.hdds.datanode.UpdateContainerRequestProto.metadata:type_name -> hadoop.hdds.datanode.KeyValue 9, // 45: hadoop.hdds.datanode.ListContainerResponseProto.containerData:type_name -> hadoop.hdds.datanode.ContainerDataProto 5, // 46: hadoop.hdds.datanode.BlockData.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 6, // 47: hadoop.hdds.datanode.BlockData.metadata:type_name -> hadoop.hdds.datanode.KeyValue 34, // 48: hadoop.hdds.datanode.BlockData.chunks:type_name -> hadoop.hdds.datanode.ChunkInfo 23, // 49: hadoop.hdds.datanode.PutBlockRequestProto.blockData:type_name -> hadoop.hdds.datanode.BlockData 30, // 50: hadoop.hdds.datanode.PutBlockResponseProto.committedBlockLength:type_name -> hadoop.hdds.datanode.GetCommittedBlockLengthResponseProto 5, // 51: hadoop.hdds.datanode.GetBlockRequestProto.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 23, // 52: hadoop.hdds.datanode.GetBlockResponseProto.blockData:type_name -> hadoop.hdds.datanode.BlockData 5, // 53: hadoop.hdds.datanode.DeleteBlockRequestProto.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 5, // 54: hadoop.hdds.datanode.GetCommittedBlockLengthRequestProto.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 5, // 55: hadoop.hdds.datanode.GetCommittedBlockLengthResponseProto.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 23, // 56: hadoop.hdds.datanode.ListBlockResponseProto.blockData:type_name -> hadoop.hdds.datanode.BlockData 6, // 57: hadoop.hdds.datanode.ChunkInfo.metadata:type_name -> hadoop.hdds.datanode.KeyValue 35, // 58: hadoop.hdds.datanode.ChunkInfo.checksumData:type_name -> hadoop.hdds.datanode.ChecksumData 3, // 59: hadoop.hdds.datanode.ChecksumData.type:type_name -> hadoop.hdds.datanode.ChecksumType 5, // 60: hadoop.hdds.datanode.WriteChunkRequestProto.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 34, // 61: hadoop.hdds.datanode.WriteChunkRequestProto.chunkData:type_name -> hadoop.hdds.datanode.ChunkInfo 5, // 62: hadoop.hdds.datanode.ReadChunkRequestProto.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 34, // 63: hadoop.hdds.datanode.ReadChunkRequestProto.chunkData:type_name -> hadoop.hdds.datanode.ChunkInfo 5, // 64: hadoop.hdds.datanode.ReadChunkResponseProto.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 34, // 65: hadoop.hdds.datanode.ReadChunkResponseProto.chunkData:type_name -> hadoop.hdds.datanode.ChunkInfo 5, // 66: hadoop.hdds.datanode.DeleteChunkRequestProto.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 34, // 67: hadoop.hdds.datanode.DeleteChunkRequestProto.chunkData:type_name -> hadoop.hdds.datanode.ChunkInfo 5, // 68: hadoop.hdds.datanode.ListChunkRequestProto.blockID:type_name -> hadoop.hdds.datanode.DatanodeBlockID 34, // 69: hadoop.hdds.datanode.ListChunkResponseProto.chunkData:type_name -> hadoop.hdds.datanode.ChunkInfo 24, // 70: hadoop.hdds.datanode.PutSmallFileRequestProto.block:type_name -> hadoop.hdds.datanode.PutBlockRequestProto 34, // 71: hadoop.hdds.datanode.PutSmallFileRequestProto.chunkInfo:type_name -> hadoop.hdds.datanode.ChunkInfo 30, // 72: hadoop.hdds.datanode.PutSmallFileResponseProto.committedBlockLength:type_name -> hadoop.hdds.datanode.GetCommittedBlockLengthResponseProto 26, // 73: hadoop.hdds.datanode.GetSmallFileRequestProto.block:type_name -> hadoop.hdds.datanode.GetBlockRequestProto 39, // 74: hadoop.hdds.datanode.GetSmallFileResponseProto.data:type_name -> hadoop.hdds.datanode.ReadChunkResponseProto 7, // 75: hadoop.hdds.datanode.XceiverClientProtocolService.send:input_type -> hadoop.hdds.datanode.ContainerCommandRequestProto 48, // 76: hadoop.hdds.datanode.IntraDatanodeProtocolService.download:input_type -> hadoop.hdds.datanode.CopyContainerRequestProto 8, // 77: hadoop.hdds.datanode.XceiverClientProtocolService.send:output_type -> hadoop.hdds.datanode.ContainerCommandResponseProto 49, // 78: hadoop.hdds.datanode.IntraDatanodeProtocolService.download:output_type -> hadoop.hdds.datanode.CopyContainerResponseProto 77, // [77:79] is the sub-list for method output_type 75, // [75:77] is the sub-list for method input_type 75, // [75:75] is the sub-list for extension type_name 75, // [75:75] is the sub-list for extension extendee 0, // [0:75] is the sub-list for field type_name } func init() { file_DatanodeClientProtocol_proto_init() } func file_DatanodeClientProtocol_proto_init() { if File_DatanodeClientProtocol_proto != nil { return } if !protoimpl.UnsafeEnabled { file_DatanodeClientProtocol_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DatanodeBlockID); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KeyValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContainerCommandRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContainerCommandResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContainerDataProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Container2BCSIDMapProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateContainerRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateContainerResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadContainerRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadContainerResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateContainerRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateContainerResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteContainerRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteContainerResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListContainerRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListContainerResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloseContainerRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloseContainerResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PutBlockRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PutBlockResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBlockRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBlockResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteBlockRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCommittedBlockLengthRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCommittedBlockLengthResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteBlockResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListBlockRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListBlockResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChunkInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChecksumData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WriteChunkRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WriteChunkResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadChunkRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadChunkResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteChunkRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteChunkResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListChunkRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListChunkResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PutSmallFileRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PutSmallFileResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSmallFileRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSmallFileResponseProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CopyContainerRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_DatanodeClientProtocol_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CopyContainerResponseProto); 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_DatanodeClientProtocol_proto_rawDesc, NumEnums: 5, NumMessages: 46, NumExtensions: 0, NumServices: 2, }, GoTypes: file_DatanodeClientProtocol_proto_goTypes, DependencyIndexes: file_DatanodeClientProtocol_proto_depIdxs, EnumInfos: file_DatanodeClientProtocol_proto_enumTypes, MessageInfos: file_DatanodeClientProtocol_proto_msgTypes, }.Build() File_DatanodeClientProtocol_proto = out.File file_DatanodeClientProtocol_proto_rawDesc = nil file_DatanodeClientProtocol_proto_goTypes = nil file_DatanodeClientProtocol_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 // XceiverClientProtocolServiceClient is the client API for XceiverClientProtocolService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type XceiverClientProtocolServiceClient interface { // A client-to-datanode RPC to send container commands Send(ctx context.Context, opts ...grpc.CallOption) (XceiverClientProtocolService_SendClient, error) } type xceiverClientProtocolServiceClient struct { cc grpc.ClientConnInterface } func NewXceiverClientProtocolServiceClient(cc grpc.ClientConnInterface) XceiverClientProtocolServiceClient { return &xceiverClientProtocolServiceClient{cc} } func (c *xceiverClientProtocolServiceClient) Send(ctx context.Context, opts ...grpc.CallOption) (XceiverClientProtocolService_SendClient, error) { stream, err := c.cc.NewStream(ctx, &_XceiverClientProtocolService_serviceDesc.Streams[0], "/hadoop.hdds.datanode.XceiverClientProtocolService/send", opts...) if err != nil { return nil, err } x := &xceiverClientProtocolServiceSendClient{stream} return x, nil } type XceiverClientProtocolService_SendClient interface { Send(*ContainerCommandRequestProto) error Recv() (*ContainerCommandResponseProto, error) grpc.ClientStream } type xceiverClientProtocolServiceSendClient struct { grpc.ClientStream } func (x *xceiverClientProtocolServiceSendClient) Send(m *ContainerCommandRequestProto) error { return x.ClientStream.SendMsg(m) } func (x *xceiverClientProtocolServiceSendClient) Recv() (*ContainerCommandResponseProto, error) { m := new(ContainerCommandResponseProto) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } // XceiverClientProtocolServiceServer is the server API for XceiverClientProtocolService service. type XceiverClientProtocolServiceServer interface { // A client-to-datanode RPC to send container commands Send(XceiverClientProtocolService_SendServer) error } // UnimplementedXceiverClientProtocolServiceServer can be embedded to have forward compatible implementations. type UnimplementedXceiverClientProtocolServiceServer struct { } func (*UnimplementedXceiverClientProtocolServiceServer) Send(XceiverClientProtocolService_SendServer) error { return status.Errorf(codes.Unimplemented, "method Send not implemented") } func RegisterXceiverClientProtocolServiceServer(s *grpc.Server, srv XceiverClientProtocolServiceServer) { s.RegisterService(&_XceiverClientProtocolService_serviceDesc, srv) } func _XceiverClientProtocolService_Send_Handler(srv interface{}, stream grpc.ServerStream) error { return srv.(XceiverClientProtocolServiceServer).Send(&xceiverClientProtocolServiceSendServer{stream}) } type XceiverClientProtocolService_SendServer interface { Send(*ContainerCommandResponseProto) error Recv() (*ContainerCommandRequestProto, error) grpc.ServerStream } type xceiverClientProtocolServiceSendServer struct { grpc.ServerStream } func (x *xceiverClientProtocolServiceSendServer) Send(m *ContainerCommandResponseProto) error { return x.ServerStream.SendMsg(m) } func (x *xceiverClientProtocolServiceSendServer) Recv() (*ContainerCommandRequestProto, error) { m := new(ContainerCommandRequestProto) if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } return m, nil } var _XceiverClientProtocolService_serviceDesc = grpc.ServiceDesc{ ServiceName: "hadoop.hdds.datanode.XceiverClientProtocolService", HandlerType: (*XceiverClientProtocolServiceServer)(nil), Methods: []grpc.MethodDesc{}, Streams: []grpc.StreamDesc{ { StreamName: "send", Handler: _XceiverClientProtocolService_Send_Handler, ServerStreams: true, ClientStreams: true, }, }, Metadata: "DatanodeClientProtocol.proto", } // IntraDatanodeProtocolServiceClient is the client API for IntraDatanodeProtocolService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type IntraDatanodeProtocolServiceClient interface { // An intradatanode service to copy the raw container data between nodes Download(ctx context.Context, in *CopyContainerRequestProto, opts ...grpc.CallOption) (IntraDatanodeProtocolService_DownloadClient, error) } type intraDatanodeProtocolServiceClient struct { cc grpc.ClientConnInterface } func NewIntraDatanodeProtocolServiceClient(cc grpc.ClientConnInterface) IntraDatanodeProtocolServiceClient { return &intraDatanodeProtocolServiceClient{cc} } func (c *intraDatanodeProtocolServiceClient) Download(ctx context.Context, in *CopyContainerRequestProto, opts ...grpc.CallOption) (IntraDatanodeProtocolService_DownloadClient, error) { stream, err := c.cc.NewStream(ctx, &_IntraDatanodeProtocolService_serviceDesc.Streams[0], "/hadoop.hdds.datanode.IntraDatanodeProtocolService/download", opts...) if err != nil { return nil, err } x := &intraDatanodeProtocolServiceDownloadClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } if err := x.ClientStream.CloseSend(); err != nil { return nil, err } return x, nil } type IntraDatanodeProtocolService_DownloadClient interface { Recv() (*CopyContainerResponseProto, error) grpc.ClientStream } type intraDatanodeProtocolServiceDownloadClient struct { grpc.ClientStream } func (x *intraDatanodeProtocolServiceDownloadClient) Recv() (*CopyContainerResponseProto, error) { m := new(CopyContainerResponseProto) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } // IntraDatanodeProtocolServiceServer is the server API for IntraDatanodeProtocolService service. type IntraDatanodeProtocolServiceServer interface { // An intradatanode service to copy the raw container data between nodes Download(*CopyContainerRequestProto, IntraDatanodeProtocolService_DownloadServer) error } // UnimplementedIntraDatanodeProtocolServiceServer can be embedded to have forward compatible implementations. type UnimplementedIntraDatanodeProtocolServiceServer struct { } func (*UnimplementedIntraDatanodeProtocolServiceServer) Download(*CopyContainerRequestProto, IntraDatanodeProtocolService_DownloadServer) error { return status.Errorf(codes.Unimplemented, "method Download not implemented") } func RegisterIntraDatanodeProtocolServiceServer(s *grpc.Server, srv IntraDatanodeProtocolServiceServer) { s.RegisterService(&_IntraDatanodeProtocolService_serviceDesc, srv) } func _IntraDatanodeProtocolService_Download_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(CopyContainerRequestProto) if err := stream.RecvMsg(m); err != nil { return err } return srv.(IntraDatanodeProtocolServiceServer).Download(m, &intraDatanodeProtocolServiceDownloadServer{stream}) } type IntraDatanodeProtocolService_DownloadServer interface { Send(*CopyContainerResponseProto) error grpc.ServerStream } type intraDatanodeProtocolServiceDownloadServer struct { grpc.ServerStream } func (x *intraDatanodeProtocolServiceDownloadServer) Send(m *CopyContainerResponseProto) error { return x.ServerStream.SendMsg(m) } var _IntraDatanodeProtocolService_serviceDesc = grpc.ServiceDesc{ ServiceName: "hadoop.hdds.datanode.IntraDatanodeProtocolService", HandlerType: (*IntraDatanodeProtocolServiceServer)(nil), Methods: []grpc.MethodDesc{}, Streams: []grpc.StreamDesc{ { StreamName: "download", Handler: _IntraDatanodeProtocolService_Download_Handler, ServerStreams: true, }, }, Metadata: "DatanodeClientProtocol.proto", }