// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 // protoc v4.25.3 // source: kafka_grpc/attendant_data.proto package kafka_grpc import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type EmumStatus int32 const ( EmumStatus_DELIVERED EmumStatus = 0 EmumStatus_TIMEOUT EmumStatus = 1 EmumStatus_FAILED EmumStatus = 2 ) // Enum value maps for EmumStatus. var ( EmumStatus_name = map[int32]string{ 0: "DELIVERED", 1: "TIMEOUT", 2: "FAILED", } EmumStatus_value = map[string]int32{ "DELIVERED": 0, "TIMEOUT": 1, "FAILED": 2, } ) func (x EmumStatus) Enum() *EmumStatus { p := new(EmumStatus) *p = x return p } func (x EmumStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EmumStatus) Descriptor() protoreflect.EnumDescriptor { return file_kafka_grpc_attendant_data_proto_enumTypes[0].Descriptor() } func (EmumStatus) Type() protoreflect.EnumType { return &file_kafka_grpc_attendant_data_proto_enumTypes[0] } func (x EmumStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use EmumStatus.Descriptor instead. func (EmumStatus) EnumDescriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{0} } type ManifestFileType int32 const ( ManifestFileType_bootloader ManifestFileType = 0 ManifestFileType_software ManifestFileType = 1 ManifestFileType_calibration ManifestFileType = 2 ManifestFileType_other ManifestFileType = 3 ) // Enum value maps for ManifestFileType. var ( ManifestFileType_name = map[int32]string{ 0: "bootloader", 1: "software", 2: "calibration", 3: "other", } ManifestFileType_value = map[string]int32{ "bootloader": 0, "software": 1, "calibration": 2, "other": 3, } ) func (x ManifestFileType) Enum() *ManifestFileType { p := new(ManifestFileType) *p = x return p } func (x ManifestFileType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ManifestFileType) Descriptor() protoreflect.EnumDescriptor { return file_kafka_grpc_attendant_data_proto_enumTypes[1].Descriptor() } func (ManifestFileType) Type() protoreflect.EnumType { return &file_kafka_grpc_attendant_data_proto_enumTypes[1] } func (x ManifestFileType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ManifestFileType.Descriptor instead. func (ManifestFileType) EnumDescriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{1} } type CompatibleTrim int32 const ( CompatibleTrim_EXTREME CompatibleTrim = 0 CompatibleTrim_ULTRA CompatibleTrim = 1 CompatibleTrim_SPORT CompatibleTrim = 2 ) // Enum value maps for CompatibleTrim. var ( CompatibleTrim_name = map[int32]string{ 0: "EXTREME", 1: "ULTRA", 2: "SPORT", } CompatibleTrim_value = map[string]int32{ "EXTREME": 0, "ULTRA": 1, "SPORT": 2, } ) func (x CompatibleTrim) Enum() *CompatibleTrim { p := new(CompatibleTrim) *p = x return p } func (x CompatibleTrim) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CompatibleTrim) Descriptor() protoreflect.EnumDescriptor { return file_kafka_grpc_attendant_data_proto_enumTypes[2].Descriptor() } func (CompatibleTrim) Type() protoreflect.EnumType { return &file_kafka_grpc_attendant_data_proto_enumTypes[2] } func (x CompatibleTrim) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CompatibleTrim.Descriptor instead. func (CompatibleTrim) EnumDescriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{2} } type CompatibleDriveSide int32 const ( CompatibleDriveSide_LEFT_HAND_DRIVE CompatibleDriveSide = 0 CompatibleDriveSide_RIGHT_HAND_DRIVE CompatibleDriveSide = 1 ) // Enum value maps for CompatibleDriveSide. var ( CompatibleDriveSide_name = map[int32]string{ 0: "LEFT_HAND_DRIVE", 1: "RIGHT_HAND_DRIVE", } CompatibleDriveSide_value = map[string]int32{ "LEFT_HAND_DRIVE": 0, "RIGHT_HAND_DRIVE": 1, } ) func (x CompatibleDriveSide) Enum() *CompatibleDriveSide { p := new(CompatibleDriveSide) *p = x return p } func (x CompatibleDriveSide) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CompatibleDriveSide) Descriptor() protoreflect.EnumDescriptor { return file_kafka_grpc_attendant_data_proto_enumTypes[3].Descriptor() } func (CompatibleDriveSide) Type() protoreflect.EnumType { return &file_kafka_grpc_attendant_data_proto_enumTypes[3] } func (x CompatibleDriveSide) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CompatibleDriveSide.Descriptor instead. func (CompatibleDriveSide) EnumDescriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{3} } type GRPC_AttendantPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Handler string `protobuf:"bytes,1,opt,name=handler,proto3" json:"handler,omitempty"` // Types that are assignable to Data: // // *GRPC_AttendantPayload_CarUpdateStatus // *GRPC_AttendantPayload_CarUpdateProgress // *GRPC_AttendantPayload_FileKeyReq // *GRPC_AttendantPayload_Keys // *GRPC_AttendantPayload_UpdateApprove // *GRPC_AttendantPayload_UpdateGet // *GRPC_AttendantPayload_UpdateManifest // *GRPC_AttendantPayload_Order // *GRPC_AttendantPayload_MessageStatus // *GRPC_AttendantPayload_DtcEntry // *GRPC_AttendantPayload_CarUpdateRequest Data isGRPC_AttendantPayload_Data `protobuf_oneof:"Data"` } func (x *GRPC_AttendantPayload) Reset() { *x = GRPC_AttendantPayload{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GRPC_AttendantPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*GRPC_AttendantPayload) ProtoMessage() {} func (x *GRPC_AttendantPayload) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 GRPC_AttendantPayload.ProtoReflect.Descriptor instead. func (*GRPC_AttendantPayload) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{0} } func (x *GRPC_AttendantPayload) GetHandler() string { if x != nil { return x.Handler } return "" } func (m *GRPC_AttendantPayload) GetData() isGRPC_AttendantPayload_Data { if m != nil { return m.Data } return nil } func (x *GRPC_AttendantPayload) GetCarUpdateStatus() *CarUpdateStatus { if x, ok := x.GetData().(*GRPC_AttendantPayload_CarUpdateStatus); ok { return x.CarUpdateStatus } return nil } func (x *GRPC_AttendantPayload) GetCarUpdateProgress() *CarUpdateProgress { if x, ok := x.GetData().(*GRPC_AttendantPayload_CarUpdateProgress); ok { return x.CarUpdateProgress } return nil } func (x *GRPC_AttendantPayload) GetFileKeyReq() *FileKeysRequest { if x, ok := x.GetData().(*GRPC_AttendantPayload_FileKeyReq); ok { return x.FileKeyReq } return nil } func (x *GRPC_AttendantPayload) GetKeys() *ECCKeys { if x, ok := x.GetData().(*GRPC_AttendantPayload_Keys); ok { return x.Keys } return nil } func (x *GRPC_AttendantPayload) GetUpdateApprove() *UpdateData { if x, ok := x.GetData().(*GRPC_AttendantPayload_UpdateApprove); ok { return x.UpdateApprove } return nil } func (x *GRPC_AttendantPayload) GetUpdateGet() *VehicleData { if x, ok := x.GetData().(*GRPC_AttendantPayload_UpdateGet); ok { return x.UpdateGet } return nil } func (x *GRPC_AttendantPayload) GetUpdateManifest() *UpdateManifest { if x, ok := x.GetData().(*GRPC_AttendantPayload_UpdateManifest); ok { return x.UpdateManifest } return nil } func (x *GRPC_AttendantPayload) GetOrder() *Order { if x, ok := x.GetData().(*GRPC_AttendantPayload_Order); ok { return x.Order } return nil } func (x *GRPC_AttendantPayload) GetMessageStatus() *MessageStatus { if x, ok := x.GetData().(*GRPC_AttendantPayload_MessageStatus); ok { return x.MessageStatus } return nil } func (x *GRPC_AttendantPayload) GetDtcEntry() *DTCEntry { if x, ok := x.GetData().(*GRPC_AttendantPayload_DtcEntry); ok { return x.DtcEntry } return nil } func (x *GRPC_AttendantPayload) GetCarUpdateRequest() *CarUpdateRequest { if x, ok := x.GetData().(*GRPC_AttendantPayload_CarUpdateRequest); ok { return x.CarUpdateRequest } return nil } type isGRPC_AttendantPayload_Data interface { isGRPC_AttendantPayload_Data() } type GRPC_AttendantPayload_CarUpdateStatus struct { CarUpdateStatus *CarUpdateStatus `protobuf:"bytes,2,opt,name=carUpdateStatus,proto3,oneof"` } type GRPC_AttendantPayload_CarUpdateProgress struct { CarUpdateProgress *CarUpdateProgress `protobuf:"bytes,3,opt,name=carUpdateProgress,proto3,oneof"` } type GRPC_AttendantPayload_FileKeyReq struct { FileKeyReq *FileKeysRequest `protobuf:"bytes,4,opt,name=fileKeyReq,proto3,oneof"` } type GRPC_AttendantPayload_Keys struct { Keys *ECCKeys `protobuf:"bytes,5,opt,name=keys,proto3,oneof"` } type GRPC_AttendantPayload_UpdateApprove struct { UpdateApprove *UpdateData `protobuf:"bytes,6,opt,name=updateApprove,proto3,oneof"` } type GRPC_AttendantPayload_UpdateGet struct { UpdateGet *VehicleData `protobuf:"bytes,7,opt,name=updateGet,proto3,oneof"` } type GRPC_AttendantPayload_UpdateManifest struct { UpdateManifest *UpdateManifest `protobuf:"bytes,8,opt,name=updateManifest,proto3,oneof"` } type GRPC_AttendantPayload_Order struct { Order *Order `protobuf:"bytes,9,opt,name=order,proto3,oneof"` } type GRPC_AttendantPayload_MessageStatus struct { MessageStatus *MessageStatus `protobuf:"bytes,10,opt,name=messageStatus,proto3,oneof"` } type GRPC_AttendantPayload_DtcEntry struct { DtcEntry *DTCEntry `protobuf:"bytes,11,opt,name=dtcEntry,proto3,oneof"` } type GRPC_AttendantPayload_CarUpdateRequest struct { CarUpdateRequest *CarUpdateRequest `protobuf:"bytes,12,opt,name=carUpdateRequest,proto3,oneof"` } func (*GRPC_AttendantPayload_CarUpdateStatus) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_CarUpdateProgress) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_FileKeyReq) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_Keys) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_UpdateApprove) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_UpdateGet) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_UpdateManifest) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_Order) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_MessageStatus) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_DtcEntry) isGRPC_AttendantPayload_Data() {} func (*GRPC_AttendantPayload_CarUpdateRequest) isGRPC_AttendantPayload_Data() {} type CarUpdateStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ecus map[string]*CarECU `protobuf:"bytes,1,rep,name=ecus,proto3" json:"ecus,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *CarUpdateStatus) Reset() { *x = CarUpdateStatus{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CarUpdateStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*CarUpdateStatus) ProtoMessage() {} func (x *CarUpdateStatus) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 CarUpdateStatus.ProtoReflect.Descriptor instead. func (*CarUpdateStatus) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{1} } func (x *CarUpdateStatus) GetEcus() map[string]*CarECU { if x != nil { return x.Ecus } return nil } type CarECU struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Vin string `protobuf:"bytes,1,opt,name=vin,proto3" json:"vin,omitempty"` Ecu string `protobuf:"bytes,2,opt,name=ecu,proto3" json:"ecu,omitempty"` SwVersion string `protobuf:"bytes,3,opt,name=sw_version,json=swVersion,proto3" json:"sw_version,omitempty"` SerialNumber string `protobuf:"bytes,4,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"` HwVersion string `protobuf:"bytes,5,opt,name=hw_version,json=hwVersion,proto3" json:"hw_version,omitempty"` BootLoaderVersion string `protobuf:"bytes,6,opt,name=boot_loader_version,json=bootLoaderVersion,proto3" json:"boot_loader_version,omitempty"` Fingerprint string `protobuf:"bytes,7,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"` CodeDataString string `protobuf:"bytes,8,opt,name=code_data_string,json=codeDataString,proto3" json:"code_data_string,omitempty"` Vendor string `protobuf:"bytes,9,opt,name=vendor,proto3" json:"vendor,omitempty"` SupplierSwVersion string `protobuf:"bytes,10,opt,name=supplier_sw_version,json=supplierSwVersion,proto3" json:"supplier_sw_version,omitempty"` EpochUsec int64 `protobuf:"varint,11,opt,name=epoch_usec,json=epochUsec,proto3" json:"epoch_usec,omitempty"` AssyNumber string `protobuf:"bytes,12,opt,name=assy_number,json=assyNumber,proto3" json:"assy_number,omitempty"` CreatedAt *int64 `protobuf:"varint,13,opt,name=createdAt,proto3,oneof" json:"createdAt,omitempty"` UpdatedAt *int64 `protobuf:"varint,14,opt,name=updatedAt,proto3,oneof" json:"updatedAt,omitempty"` } func (x *CarECU) Reset() { *x = CarECU{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CarECU) String() string { return protoimpl.X.MessageStringOf(x) } func (*CarECU) ProtoMessage() {} func (x *CarECU) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 CarECU.ProtoReflect.Descriptor instead. func (*CarECU) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{2} } func (x *CarECU) GetVin() string { if x != nil { return x.Vin } return "" } func (x *CarECU) GetEcu() string { if x != nil { return x.Ecu } return "" } func (x *CarECU) GetSwVersion() string { if x != nil { return x.SwVersion } return "" } func (x *CarECU) GetSerialNumber() string { if x != nil { return x.SerialNumber } return "" } func (x *CarECU) GetHwVersion() string { if x != nil { return x.HwVersion } return "" } func (x *CarECU) GetBootLoaderVersion() string { if x != nil { return x.BootLoaderVersion } return "" } func (x *CarECU) GetFingerprint() string { if x != nil { return x.Fingerprint } return "" } func (x *CarECU) GetCodeDataString() string { if x != nil { return x.CodeDataString } return "" } func (x *CarECU) GetVendor() string { if x != nil { return x.Vendor } return "" } func (x *CarECU) GetSupplierSwVersion() string { if x != nil { return x.SupplierSwVersion } return "" } func (x *CarECU) GetEpochUsec() int64 { if x != nil { return x.EpochUsec } return 0 } func (x *CarECU) GetAssyNumber() string { if x != nil { return x.AssyNumber } return "" } func (x *CarECU) GetCreatedAt() int64 { if x != nil && x.CreatedAt != nil { return *x.CreatedAt } return 0 } func (x *CarECU) GetUpdatedAt() int64 { if x != nil && x.UpdatedAt != nil { return *x.UpdatedAt } return 0 } type CarUpdateProgress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileCurrent uint64 `protobuf:"varint,1,opt,name=fileCurrent,proto3" json:"fileCurrent,omitempty"` FileTotal uint64 `protobuf:"varint,2,opt,name=fileTotal,proto3" json:"fileTotal,omitempty"` PkgCurrent uint64 `protobuf:"varint,3,opt,name=pkgCurrent,proto3" json:"pkgCurrent,omitempty"` PkgTotal uint64 `protobuf:"varint,4,opt,name=pkgTotal,proto3" json:"pkgTotal,omitempty"` InstalledFiles int64 `protobuf:"varint,5,opt,name=installedFiles,proto3" json:"installedFiles,omitempty"` TotalFiles int64 `protobuf:"varint,6,opt,name=totalFiles,proto3" json:"totalFiles,omitempty"` CarUpdateID int64 `protobuf:"varint,7,opt,name=carUpdateID,proto3" json:"carUpdateID,omitempty"` Ecu string `protobuf:"bytes,8,opt,name=ecu,proto3" json:"ecu,omitempty"` Info string `protobuf:"bytes,9,opt,name=info,proto3" json:"info,omitempty"` Status string `protobuf:"bytes,10,opt,name=status,proto3" json:"status,omitempty"` ErrCode int64 `protobuf:"varint,11,opt,name=errCode,proto3" json:"errCode,omitempty"` } func (x *CarUpdateProgress) Reset() { *x = CarUpdateProgress{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CarUpdateProgress) String() string { return protoimpl.X.MessageStringOf(x) } func (*CarUpdateProgress) ProtoMessage() {} func (x *CarUpdateProgress) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 CarUpdateProgress.ProtoReflect.Descriptor instead. func (*CarUpdateProgress) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{3} } func (x *CarUpdateProgress) GetFileCurrent() uint64 { if x != nil { return x.FileCurrent } return 0 } func (x *CarUpdateProgress) GetFileTotal() uint64 { if x != nil { return x.FileTotal } return 0 } func (x *CarUpdateProgress) GetPkgCurrent() uint64 { if x != nil { return x.PkgCurrent } return 0 } func (x *CarUpdateProgress) GetPkgTotal() uint64 { if x != nil { return x.PkgTotal } return 0 } func (x *CarUpdateProgress) GetInstalledFiles() int64 { if x != nil { return x.InstalledFiles } return 0 } func (x *CarUpdateProgress) GetTotalFiles() int64 { if x != nil { return x.TotalFiles } return 0 } func (x *CarUpdateProgress) GetCarUpdateID() int64 { if x != nil { return x.CarUpdateID } return 0 } func (x *CarUpdateProgress) GetEcu() string { if x != nil { return x.Ecu } return "" } func (x *CarUpdateProgress) GetInfo() string { if x != nil { return x.Info } return "" } func (x *CarUpdateProgress) GetStatus() string { if x != nil { return x.Status } return "" } func (x *CarUpdateProgress) GetErrCode() int64 { if x != nil { return x.ErrCode } return 0 } type FileKeysRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileIDs []string `protobuf:"bytes,1,rep,name=fileIDs,proto3" json:"fileIDs,omitempty"` } func (x *FileKeysRequest) Reset() { *x = FileKeysRequest{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileKeysRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileKeysRequest) ProtoMessage() {} func (x *FileKeysRequest) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 FileKeysRequest.ProtoReflect.Descriptor instead. func (*FileKeysRequest) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{4} } func (x *FileKeysRequest) GetFileIDs() []string { if x != nil { return x.FileIDs } return nil } type DTCEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CreatedAt int64 `protobuf:"varint,1,opt,name=createdAt,proto3" json:"createdAt,omitempty"` Vin string `protobuf:"bytes,2,opt,name=vin,proto3" json:"vin,omitempty"` Ecu string `protobuf:"bytes,3,opt,name=ecu,proto3" json:"ecu,omitempty"` Dtc uint64 `protobuf:"varint,4,opt,name=dtc,proto3" json:"dtc,omitempty"` Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Speed uint32 `protobuf:"varint,6,opt,name=speed,proto3" json:"speed,omitempty"` Mileage uint32 `protobuf:"varint,7,opt,name=mileage,proto3" json:"mileage,omitempty"` Volt uint32 `protobuf:"varint,8,opt,name=volt,proto3" json:"volt,omitempty"` SnapshotBase64 string `protobuf:"bytes,9,opt,name=snapshotBase64,proto3" json:"snapshotBase64,omitempty"` Status uint32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` } func (x *DTCEntry) Reset() { *x = DTCEntry{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DTCEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*DTCEntry) ProtoMessage() {} func (x *DTCEntry) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 DTCEntry.ProtoReflect.Descriptor instead. func (*DTCEntry) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{5} } func (x *DTCEntry) GetCreatedAt() int64 { if x != nil { return x.CreatedAt } return 0 } func (x *DTCEntry) GetVin() string { if x != nil { return x.Vin } return "" } func (x *DTCEntry) GetEcu() string { if x != nil { return x.Ecu } return "" } func (x *DTCEntry) GetDtc() uint64 { if x != nil { return x.Dtc } return 0 } func (x *DTCEntry) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } func (x *DTCEntry) GetSpeed() uint32 { if x != nil { return x.Speed } return 0 } func (x *DTCEntry) GetMileage() uint32 { if x != nil { return x.Mileage } return 0 } func (x *DTCEntry) GetVolt() uint32 { if x != nil { return x.Volt } return 0 } func (x *DTCEntry) GetSnapshotBase64() string { if x != nil { return x.SnapshotBase64 } return "" } func (x *DTCEntry) GetStatus() uint32 { if x != nil { return x.Status } return 0 } type ECCKeys struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EccKeys []*ECCKey `protobuf:"bytes,1,rep,name=eccKeys,proto3" json:"eccKeys,omitempty"` } func (x *ECCKeys) Reset() { *x = ECCKeys{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ECCKeys) String() string { return protoimpl.X.MessageStringOf(x) } func (*ECCKeys) ProtoMessage() {} func (x *ECCKeys) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 ECCKeys.ProtoReflect.Descriptor instead. func (*ECCKeys) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{6} } func (x *ECCKeys) GetEccKeys() []*ECCKey { if x != nil { return x.EccKeys } return nil } type ECCKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ecu string `protobuf:"bytes,1,opt,name=ecu,proto3" json:"ecu,omitempty"` Env string `protobuf:"bytes,2,opt,name=env,proto3" json:"env,omitempty"` PubKeyLevel_1 *BineryHex `protobuf:"bytes,3,opt,name=pub_key_level_1,json=pubKeyLevel1,proto3,oneof" json:"pub_key_level_1,omitempty"` PubKeyLevel_2 *BineryHex `protobuf:"bytes,4,opt,name=pub_key_level_2,json=pubKeyLevel2,proto3,oneof" json:"pub_key_level_2,omitempty"` PubKeyLevel_3 *BineryHex `protobuf:"bytes,5,opt,name=pub_key_level_3,json=pubKeyLevel3,proto3,oneof" json:"pub_key_level_3,omitempty"` Level_1 *BineryHex `protobuf:"bytes,6,opt,name=level_1,json=level1,proto3,oneof" json:"level_1,omitempty"` Level_2 *BineryHex `protobuf:"bytes,7,opt,name=level_2,json=level2,proto3,oneof" json:"level_2,omitempty"` Level_3 *BineryHex `protobuf:"bytes,8,opt,name=level_3,json=level3,proto3,oneof" json:"level_3,omitempty"` Created *int64 `protobuf:"varint,9,opt,name=created,proto3,oneof" json:"created,omitempty"` Updated *int64 `protobuf:"varint,10,opt,name=updated,proto3,oneof" json:"updated,omitempty"` } func (x *ECCKey) Reset() { *x = ECCKey{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ECCKey) String() string { return protoimpl.X.MessageStringOf(x) } func (*ECCKey) ProtoMessage() {} func (x *ECCKey) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 ECCKey.ProtoReflect.Descriptor instead. func (*ECCKey) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{7} } func (x *ECCKey) GetEcu() string { if x != nil { return x.Ecu } return "" } func (x *ECCKey) GetEnv() string { if x != nil { return x.Env } return "" } func (x *ECCKey) GetPubKeyLevel_1() *BineryHex { if x != nil { return x.PubKeyLevel_1 } return nil } func (x *ECCKey) GetPubKeyLevel_2() *BineryHex { if x != nil { return x.PubKeyLevel_2 } return nil } func (x *ECCKey) GetPubKeyLevel_3() *BineryHex { if x != nil { return x.PubKeyLevel_3 } return nil } func (x *ECCKey) GetLevel_1() *BineryHex { if x != nil { return x.Level_1 } return nil } func (x *ECCKey) GetLevel_2() *BineryHex { if x != nil { return x.Level_2 } return nil } func (x *ECCKey) GetLevel_3() *BineryHex { if x != nil { return x.Level_3 } return nil } func (x *ECCKey) GetCreated() int64 { if x != nil && x.Created != nil { return *x.Created } return 0 } func (x *ECCKey) GetUpdated() int64 { if x != nil && x.Updated != nil { return *x.Updated } return 0 } type BineryHex struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *BineryHex) Reset() { *x = BineryHex{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BineryHex) String() string { return protoimpl.X.MessageStringOf(x) } func (*BineryHex) ProtoMessage() {} func (x *BineryHex) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 BineryHex.ProtoReflect.Descriptor instead. func (*BineryHex) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{8} } func (x *BineryHex) GetData() []byte { if x != nil { return x.Data } return nil } type UpdateData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *UpdateData) Reset() { *x = UpdateData{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateData) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateData) ProtoMessage() {} func (x *UpdateData) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 UpdateData.ProtoReflect.Descriptor instead. func (*UpdateData) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{9} } func (x *UpdateData) GetId() int64 { if x != nil { return x.Id } return 0 } type VehicleData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Vin string `protobuf:"bytes,1,opt,name=vin,proto3" json:"vin,omitempty"` } func (x *VehicleData) Reset() { *x = VehicleData{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VehicleData) String() string { return protoimpl.X.MessageStringOf(x) } func (*VehicleData) ProtoMessage() {} func (x *VehicleData) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 VehicleData.ProtoReflect.Descriptor instead. func (*VehicleData) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{10} } func (x *VehicleData) GetVin() string { if x != nil { return x.Vin } return "" } type MessageStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageId string `protobuf:"bytes,1,opt,name=messageId,proto3" json:"messageId,omitempty"` Status EmumStatus `protobuf:"varint,2,opt,name=status,proto3,enum=EmumStatus" json:"status,omitempty"` } func (x *MessageStatus) Reset() { *x = MessageStatus{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageStatus) ProtoMessage() {} func (x *MessageStatus) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 MessageStatus.ProtoReflect.Descriptor instead. func (*MessageStatus) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{11} } func (x *MessageStatus) GetMessageId() string { if x != nil { return x.MessageId } return "" } func (x *MessageStatus) GetStatus() EmumStatus { if x != nil { return x.Status } return EmumStatus_DELIVERED } type UpdateManifest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` ReleaseNotes string `protobuf:"bytes,5,opt,name=release_notes,json=releaseNotes,proto3" json:"release_notes,omitempty"` EcuList string `protobuf:"bytes,6,opt,name=ecu_list,json=ecuList,proto3" json:"ecu_list,omitempty"` EcuUpdates []*UpdateManifestECU `protobuf:"bytes,7,rep,name=ecu_updates,json=ecuUpdates,proto3" json:"ecu_updates,omitempty"` Fingerprint string `protobuf:"bytes,8,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"` CarUpdateId int64 `protobuf:"varint,9,opt,name=car_update_id,json=carUpdateId,proto3" json:"car_update_id,omitempty"` Rollback bool `protobuf:"varint,10,opt,name=rollback,proto3" json:"rollback,omitempty"` Type string `protobuf:"bytes,11,opt,name=type,proto3" json:"type,omitempty"` Vod string `protobuf:"bytes,12,opt,name=vod,proto3" json:"vod,omitempty"` ManifestType int32 `protobuf:"varint,13,opt,name=manifest_type,json=manifestType,proto3" json:"manifest_type,omitempty"` Active *bool `protobuf:"varint,14,opt,name=active,proto3,oneof" json:"active,omitempty"` Country string `protobuf:"bytes,15,opt,name=country,proto3" json:"country,omitempty"` Powertrain string `protobuf:"bytes,16,opt,name=powertrain,proto3" json:"powertrain,omitempty"` Restraint string `protobuf:"bytes,17,opt,name=restraint,proto3" json:"restraint,omitempty"` Model string `protobuf:"bytes,18,opt,name=model,proto3" json:"model,omitempty"` Trim string `protobuf:"bytes,19,opt,name=trim,proto3" json:"trim,omitempty"` Year int32 `protobuf:"varint,20,opt,name=year,proto3" json:"year,omitempty"` BodyType string `protobuf:"bytes,21,opt,name=body_type,json=bodyType,proto3" json:"body_type,omitempty"` Sums string `protobuf:"bytes,22,opt,name=sums,proto3" json:"sums,omitempty"` Env string `protobuf:"bytes,23,opt,name=env,proto3" json:"env,omitempty"` UpdateDuration int32 `protobuf:"varint,24,opt,name=update_duration,json=updateDuration,proto3" json:"update_duration,omitempty"` MaxAttempts int32 `protobuf:"varint,25,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"` Created *int64 `protobuf:"varint,26,opt,name=created,proto3,oneof" json:"created,omitempty"` Updated *int64 `protobuf:"varint,27,opt,name=updated,proto3,oneof" json:"updated,omitempty"` } func (x *UpdateManifest) Reset() { *x = UpdateManifest{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateManifest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateManifest) ProtoMessage() {} func (x *UpdateManifest) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 UpdateManifest.ProtoReflect.Descriptor instead. func (*UpdateManifest) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{12} } func (x *UpdateManifest) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *UpdateManifest) GetName() string { if x != nil { return x.Name } return "" } func (x *UpdateManifest) GetVersion() string { if x != nil { return x.Version } return "" } func (x *UpdateManifest) GetDescription() string { if x != nil { return x.Description } return "" } func (x *UpdateManifest) GetReleaseNotes() string { if x != nil { return x.ReleaseNotes } return "" } func (x *UpdateManifest) GetEcuList() string { if x != nil { return x.EcuList } return "" } func (x *UpdateManifest) GetEcuUpdates() []*UpdateManifestECU { if x != nil { return x.EcuUpdates } return nil } func (x *UpdateManifest) GetFingerprint() string { if x != nil { return x.Fingerprint } return "" } func (x *UpdateManifest) GetCarUpdateId() int64 { if x != nil { return x.CarUpdateId } return 0 } func (x *UpdateManifest) GetRollback() bool { if x != nil { return x.Rollback } return false } func (x *UpdateManifest) GetType() string { if x != nil { return x.Type } return "" } func (x *UpdateManifest) GetVod() string { if x != nil { return x.Vod } return "" } func (x *UpdateManifest) GetManifestType() int32 { if x != nil { return x.ManifestType } return 0 } func (x *UpdateManifest) GetActive() bool { if x != nil && x.Active != nil { return *x.Active } return false } func (x *UpdateManifest) GetCountry() string { if x != nil { return x.Country } return "" } func (x *UpdateManifest) GetPowertrain() string { if x != nil { return x.Powertrain } return "" } func (x *UpdateManifest) GetRestraint() string { if x != nil { return x.Restraint } return "" } func (x *UpdateManifest) GetModel() string { if x != nil { return x.Model } return "" } func (x *UpdateManifest) GetTrim() string { if x != nil { return x.Trim } return "" } func (x *UpdateManifest) GetYear() int32 { if x != nil { return x.Year } return 0 } func (x *UpdateManifest) GetBodyType() string { if x != nil { return x.BodyType } return "" } func (x *UpdateManifest) GetSums() string { if x != nil { return x.Sums } return "" } func (x *UpdateManifest) GetEnv() string { if x != nil { return x.Env } return "" } func (x *UpdateManifest) GetUpdateDuration() int32 { if x != nil { return x.UpdateDuration } return 0 } func (x *UpdateManifest) GetMaxAttempts() int32 { if x != nil { return x.MaxAttempts } return 0 } func (x *UpdateManifest) GetCreated() int64 { if x != nil && x.Created != nil { return *x.Created } return 0 } func (x *UpdateManifest) GetUpdated() int64 { if x != nil && x.Updated != nil { return *x.Updated } return 0 } type UpdateManifestECU struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` ManifestId int64 `protobuf:"varint,2,opt,name=manifest_id,json=manifestId,proto3" json:"manifest_id,omitempty"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` CurrentVersion string `protobuf:"bytes,5,opt,name=current_version,json=currentVersion,proto3" json:"current_version,omitempty"` HwVersion string `protobuf:"bytes,6,opt,name=hw_version,json=hwVersion,proto3" json:"hw_version,omitempty"` HwVersions []string `protobuf:"bytes,7,rep,name=hw_versions,json=hwVersions,proto3" json:"hw_versions,omitempty"` ConfigurationMask string `protobuf:"bytes,8,opt,name=configuration_mask,json=configurationMask,proto3" json:"configuration_mask,omitempty"` Configuration string `protobuf:"bytes,9,opt,name=configuration,proto3" json:"configuration,omitempty"` SelfDownload bool `protobuf:"varint,10,opt,name=self_download,json=selfDownload,proto3" json:"self_download,omitempty"` Mode string `protobuf:"bytes,11,opt,name=mode,proto3" json:"mode,omitempty"` Files []*UpdateManifestFile `protobuf:"bytes,12,rep,name=files,proto3" json:"files,omitempty"` Rollback []*UpdateManifestECU `protobuf:"bytes,13,rep,name=rollback,proto3" json:"rollback,omitempty"` EccKeys *ECCKey `protobuf:"bytes,14,opt,name=ecc_keys,json=eccKeys,proto3" json:"ecc_keys,omitempty"` InstallPriority int32 `protobuf:"varint,15,opt,name=install_priority,json=installPriority,proto3" json:"install_priority,omitempty"` Created *int64 `protobuf:"varint,16,opt,name=created,proto3,oneof" json:"created,omitempty"` Updated *int64 `protobuf:"varint,17,opt,name=updated,proto3,oneof" json:"updated,omitempty"` } func (x *UpdateManifestECU) Reset() { *x = UpdateManifestECU{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateManifestECU) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateManifestECU) ProtoMessage() {} func (x *UpdateManifestECU) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 UpdateManifestECU.ProtoReflect.Descriptor instead. func (*UpdateManifestECU) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{13} } func (x *UpdateManifestECU) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *UpdateManifestECU) GetManifestId() int64 { if x != nil { return x.ManifestId } return 0 } func (x *UpdateManifestECU) GetName() string { if x != nil { return x.Name } return "" } func (x *UpdateManifestECU) GetVersion() string { if x != nil { return x.Version } return "" } func (x *UpdateManifestECU) GetCurrentVersion() string { if x != nil { return x.CurrentVersion } return "" } func (x *UpdateManifestECU) GetHwVersion() string { if x != nil { return x.HwVersion } return "" } func (x *UpdateManifestECU) GetHwVersions() []string { if x != nil { return x.HwVersions } return nil } func (x *UpdateManifestECU) GetConfigurationMask() string { if x != nil { return x.ConfigurationMask } return "" } func (x *UpdateManifestECU) GetConfiguration() string { if x != nil { return x.Configuration } return "" } func (x *UpdateManifestECU) GetSelfDownload() bool { if x != nil { return x.SelfDownload } return false } func (x *UpdateManifestECU) GetMode() string { if x != nil { return x.Mode } return "" } func (x *UpdateManifestECU) GetFiles() []*UpdateManifestFile { if x != nil { return x.Files } return nil } func (x *UpdateManifestECU) GetRollback() []*UpdateManifestECU { if x != nil { return x.Rollback } return nil } func (x *UpdateManifestECU) GetEccKeys() *ECCKey { if x != nil { return x.EccKeys } return nil } func (x *UpdateManifestECU) GetInstallPriority() int32 { if x != nil { return x.InstallPriority } return 0 } func (x *UpdateManifestECU) GetCreated() int64 { if x != nil && x.Created != nil { return *x.Created } return 0 } func (x *UpdateManifestECU) GetUpdated() int64 { if x != nil && x.Updated != nil { return *x.Updated } return 0 } type UpdateManifestFile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId,proto3" json:"file_id,omitempty"` ManifestEcuId int64 `protobuf:"varint,2,opt,name=manifest_ecu_id,json=manifestEcuId,proto3" json:"manifest_ecu_id,omitempty"` Filename string `protobuf:"bytes,3,opt,name=filename,proto3" json:"filename,omitempty"` Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` FileSize uint64 `protobuf:"varint,5,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` Checksum string `protobuf:"bytes,6,opt,name=checksum,proto3" json:"checksum,omitempty"` Type string `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"` Order int32 `protobuf:"varint,8,opt,name=order,proto3" json:"order,omitempty"` WriteRegion *MemoryRegion `protobuf:"bytes,9,opt,name=write_region,json=writeRegion,proto3" json:"write_region,omitempty"` EraseRegion *MemoryRegion `protobuf:"bytes,10,opt,name=erase_region,json=eraseRegion,proto3" json:"erase_region,omitempty"` FileKey *FileKeyResponse `protobuf:"bytes,11,opt,name=file_key,json=fileKey,proto3" json:"file_key,omitempty"` ParsedFile *bool `protobuf:"varint,12,opt,name=parsed_file,json=parsedFile,proto3,oneof" json:"parsed_file,omitempty"` Signature string `protobuf:"bytes,13,opt,name=signature,proto3" json:"signature,omitempty"` CompatibleTrims []string `protobuf:"bytes,14,rep,name=compatible_trims,json=compatibleTrims,proto3" json:"compatible_trims,omitempty"` CompatibleDriveSides []string `protobuf:"bytes,15,rep,name=compatible_drive_sides,json=compatibleDriveSides,proto3" json:"compatible_drive_sides,omitempty"` Created *string `protobuf:"bytes,16,opt,name=created,proto3,oneof" json:"created,omitempty"` Updated *string `protobuf:"bytes,17,opt,name=updated,proto3,oneof" json:"updated,omitempty"` } func (x *UpdateManifestFile) Reset() { *x = UpdateManifestFile{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateManifestFile) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateManifestFile) ProtoMessage() {} func (x *UpdateManifestFile) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 UpdateManifestFile.ProtoReflect.Descriptor instead. func (*UpdateManifestFile) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{14} } func (x *UpdateManifestFile) GetFileId() string { if x != nil { return x.FileId } return "" } func (x *UpdateManifestFile) GetManifestEcuId() int64 { if x != nil { return x.ManifestEcuId } return 0 } func (x *UpdateManifestFile) GetFilename() string { if x != nil { return x.Filename } return "" } func (x *UpdateManifestFile) GetUrl() string { if x != nil { return x.Url } return "" } func (x *UpdateManifestFile) GetFileSize() uint64 { if x != nil { return x.FileSize } return 0 } func (x *UpdateManifestFile) GetChecksum() string { if x != nil { return x.Checksum } return "" } func (x *UpdateManifestFile) GetType() string { if x != nil { return x.Type } return "" } func (x *UpdateManifestFile) GetOrder() int32 { if x != nil { return x.Order } return 0 } func (x *UpdateManifestFile) GetWriteRegion() *MemoryRegion { if x != nil { return x.WriteRegion } return nil } func (x *UpdateManifestFile) GetEraseRegion() *MemoryRegion { if x != nil { return x.EraseRegion } return nil } func (x *UpdateManifestFile) GetFileKey() *FileKeyResponse { if x != nil { return x.FileKey } return nil } func (x *UpdateManifestFile) GetParsedFile() bool { if x != nil && x.ParsedFile != nil { return *x.ParsedFile } return false } func (x *UpdateManifestFile) GetSignature() string { if x != nil { return x.Signature } return "" } func (x *UpdateManifestFile) GetCompatibleTrims() []string { if x != nil { return x.CompatibleTrims } return nil } func (x *UpdateManifestFile) GetCompatibleDriveSides() []string { if x != nil { return x.CompatibleDriveSides } return nil } func (x *UpdateManifestFile) GetCreated() string { if x != nil && x.Created != nil { return *x.Created } return "" } func (x *UpdateManifestFile) GetUpdated() string { if x != nil && x.Updated != nil { return *x.Updated } return "" } type MemoryRegion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` Length uint64 `protobuf:"varint,2,opt,name=length,proto3" json:"length,omitempty"` } func (x *MemoryRegion) Reset() { *x = MemoryRegion{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MemoryRegion) String() string { return protoimpl.X.MessageStringOf(x) } func (*MemoryRegion) ProtoMessage() {} func (x *MemoryRegion) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 MemoryRegion.ProtoReflect.Descriptor instead. func (*MemoryRegion) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{15} } func (x *MemoryRegion) GetOffset() uint64 { if x != nil { return x.Offset } return 0 } func (x *MemoryRegion) GetLength() uint64 { if x != nil { return x.Length } return 0 } type FileKeyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId,proto3" json:"file_id,omitempty"` Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` Auth string `protobuf:"bytes,3,opt,name=auth,proto3" json:"auth,omitempty"` Nonce string `protobuf:"bytes,4,opt,name=nonce,proto3" json:"nonce,omitempty"` Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` } func (x *FileKeyResponse) Reset() { *x = FileKeyResponse{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileKeyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileKeyResponse) ProtoMessage() {} func (x *FileKeyResponse) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 FileKeyResponse.ProtoReflect.Descriptor instead. func (*FileKeyResponse) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{16} } func (x *FileKeyResponse) GetFileId() string { if x != nil { return x.FileId } return "" } func (x *FileKeyResponse) GetKey() string { if x != nil { return x.Key } return "" } func (x *FileKeyResponse) GetAuth() string { if x != nil { return x.Auth } return "" } func (x *FileKeyResponse) GetNonce() string { if x != nil { return x.Nonce } return "" } func (x *FileKeyResponse) GetError() string { if x != nil { return x.Error } return "" } type FeatureCodes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FamilyCode string `protobuf:"bytes,1,opt,name=familyCode,proto3" json:"familyCode,omitempty"` FeatureCode string `protobuf:"bytes,2,opt,name=featureCode,proto3" json:"featureCode,omitempty"` } func (x *FeatureCodes) Reset() { *x = FeatureCodes{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FeatureCodes) String() string { return protoimpl.X.MessageStringOf(x) } func (*FeatureCodes) ProtoMessage() {} func (x *FeatureCodes) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 FeatureCodes.ProtoReflect.Descriptor instead. func (*FeatureCodes) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{17} } func (x *FeatureCodes) GetFamilyCode() string { if x != nil { return x.FamilyCode } return "" } func (x *FeatureCodes) GetFeatureCode() string { if x != nil { return x.FeatureCode } return "" } type VehicleSpecification struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderId string `protobuf:"bytes,1,opt,name=orderId,proto3" json:"orderId,omitempty"` // OrderIndicator ProductId string `protobuf:"bytes,2,opt,name=productId,proto3" json:"productId,omitempty"` // ProductionPhaseIndicator VehicleId string `protobuf:"bytes,3,opt,name=vehicleId,proto3" json:"vehicleId,omitempty"` // VehicleIndicator MfPlant string `protobuf:"bytes,4,opt,name=mfPlant,proto3" json:"mfPlant,omitempty"` // ManufacturingPlant ModelType string `protobuf:"bytes,5,opt,name=modelType,proto3" json:"modelType,omitempty"` // ModelType ModelId int64 `protobuf:"varint,6,opt,name=modelId,proto3" json:"modelId,omitempty"` // ModelYearIndicator ModelYear int64 `protobuf:"varint,7,opt,name=modelYear,proto3" json:"modelYear,omitempty"` Sn string `protobuf:"bytes,8,opt,name=sn,proto3" json:"sn,omitempty"` // SequenceNumber Version int64 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"` // VersionDuringModelYear Model string `protobuf:"bytes,10,opt,name=model,proto3" json:"model,omitempty"` // VehicleModel VinPre string `protobuf:"bytes,11,opt,name=vinPre,proto3" json:"vinPre,omitempty"` // VinPrefix DestCon string `protobuf:"bytes,12,opt,name=destCon,proto3" json:"destCon,omitempty"` // DestinationCountry Feature []*FeatureCodes `protobuf:"bytes,13,rep,name=feature,proto3" json:"feature,omitempty"` // VehicleFeatures Date int64 `protobuf:"varint,14,opt,name=date,proto3" json:"date,omitempty"` // ExpectedReferenceDate FOrderId string `protobuf:"bytes,15,opt,name=fOrderId,proto3" json:"fOrderId,omitempty"` // FleetOrderIndicator } func (x *VehicleSpecification) Reset() { *x = VehicleSpecification{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VehicleSpecification) String() string { return protoimpl.X.MessageStringOf(x) } func (*VehicleSpecification) ProtoMessage() {} func (x *VehicleSpecification) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 VehicleSpecification.ProtoReflect.Descriptor instead. func (*VehicleSpecification) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{18} } func (x *VehicleSpecification) GetOrderId() string { if x != nil { return x.OrderId } return "" } func (x *VehicleSpecification) GetProductId() string { if x != nil { return x.ProductId } return "" } func (x *VehicleSpecification) GetVehicleId() string { if x != nil { return x.VehicleId } return "" } func (x *VehicleSpecification) GetMfPlant() string { if x != nil { return x.MfPlant } return "" } func (x *VehicleSpecification) GetModelType() string { if x != nil { return x.ModelType } return "" } func (x *VehicleSpecification) GetModelId() int64 { if x != nil { return x.ModelId } return 0 } func (x *VehicleSpecification) GetModelYear() int64 { if x != nil { return x.ModelYear } return 0 } func (x *VehicleSpecification) GetSn() string { if x != nil { return x.Sn } return "" } func (x *VehicleSpecification) GetVersion() int64 { if x != nil { return x.Version } return 0 } func (x *VehicleSpecification) GetModel() string { if x != nil { return x.Model } return "" } func (x *VehicleSpecification) GetVinPre() string { if x != nil { return x.VinPre } return "" } func (x *VehicleSpecification) GetDestCon() string { if x != nil { return x.DestCon } return "" } func (x *VehicleSpecification) GetFeature() []*FeatureCodes { if x != nil { return x.Feature } return nil } func (x *VehicleSpecification) GetDate() int64 { if x != nil { return x.Date } return 0 } func (x *VehicleSpecification) GetFOrderId() string { if x != nil { return x.FOrderId } return "" } type Order struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SpecId int64 `protobuf:"varint,1,opt,name=specId,proto3" json:"specId,omitempty"` OrderNo int64 `protobuf:"varint,2,opt,name=orderNo,proto3" json:"orderNo,omitempty"` MsgIdentifier string `protobuf:"bytes,3,opt,name=msgIdentifier,proto3" json:"msgIdentifier,omitempty"` VehicleSpecification *VehicleSpecification `protobuf:"bytes,4,opt,name=VehicleSpecification,proto3" json:"VehicleSpecification,omitempty"` } func (x *Order) Reset() { *x = Order{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Order) String() string { return protoimpl.X.MessageStringOf(x) } func (*Order) ProtoMessage() {} func (x *Order) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 Order.ProtoReflect.Descriptor instead. func (*Order) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{19} } func (x *Order) GetSpecId() int64 { if x != nil { return x.SpecId } return 0 } func (x *Order) GetOrderNo() int64 { if x != nil { return x.OrderNo } return 0 } func (x *Order) GetMsgIdentifier() string { if x != nil { return x.MsgIdentifier } return "" } func (x *Order) GetVehicleSpecification() *VehicleSpecification { if x != nil { return x.VehicleSpecification } return nil } type CarUpdateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CarUpdateId int64 `protobuf:"varint,1,opt,name=car_update_id,json=carUpdateId,proto3" json:"car_update_id,omitempty"` } func (x *CarUpdateRequest) Reset() { *x = CarUpdateRequest{} if protoimpl.UnsafeEnabled { mi := &file_kafka_grpc_attendant_data_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CarUpdateRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CarUpdateRequest) ProtoMessage() {} func (x *CarUpdateRequest) ProtoReflect() protoreflect.Message { mi := &file_kafka_grpc_attendant_data_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 CarUpdateRequest.ProtoReflect.Descriptor instead. func (*CarUpdateRequest) Descriptor() ([]byte, []int) { return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{20} } func (x *CarUpdateRequest) GetCarUpdateId() int64 { if x != nil { return x.CarUpdateId } return 0 } var File_kafka_grpc_attendant_data_proto protoreflect.FileDescriptor var file_kafka_grpc_attendant_data_proto_rawDesc = []byte{ 0x0a, 0x1f, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xef, 0x04, 0x0a, 0x15, 0x47, 0x52, 0x50, 0x43, 0x5f, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0f, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x11, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x45, 0x43, 0x43, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x33, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x2c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, 0x08, 0x64, 0x74, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x54, 0x43, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x08, 0x64, 0x74, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3f, 0x0a, 0x10, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x65, 0x63, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x63, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x65, 0x63, 0x75, 0x73, 0x1a, 0x40, 0x0a, 0x09, 0x45, 0x63, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x43, 0x61, 0x72, 0x45, 0x43, 0x55, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf5, 0x03, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x45, 0x43, 0x55, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x63, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x63, 0x75, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x6f, 0x6f, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x73, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x53, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x55, 0x73, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x79, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x79, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xd1, 0x02, 0x0a, 0x11, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6b, 0x67, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6b, 0x67, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x63, 0x75, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x63, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x2b, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x73, 0x22, 0x80, 0x02, 0x0a, 0x08, 0x44, 0x54, 0x43, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x63, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x63, 0x75, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x74, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x64, 0x74, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x6f, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x76, 0x6f, 0x6c, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x61, 0x73, 0x65, 0x36, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x61, 0x73, 0x65, 0x36, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2c, 0x0a, 0x07, 0x45, 0x43, 0x43, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x21, 0x0a, 0x07, 0x65, 0x63, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x45, 0x43, 0x43, 0x4b, 0x65, 0x79, 0x52, 0x07, 0x65, 0x63, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x88, 0x04, 0x0a, 0x06, 0x45, 0x43, 0x43, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x63, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x63, 0x75, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x36, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x33, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x33, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x48, 0x07, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x33, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x33, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x1f, 0x0a, 0x09, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1c, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x0b, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x22, 0x52, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x45, 0x6d, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb5, 0x06, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x63, 0x75, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x63, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x65, 0x63, 0x75, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x43, 0x55, 0x52, 0x0a, 0x65, 0x63, 0x75, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x61, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x6f, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x72, 0x69, 0x6d, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x72, 0x69, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x79, 0x65, 0x61, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x75, 0x6d, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x75, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0xe9, 0x04, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x43, 0x55, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x43, 0x55, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x08, 0x65, 0x63, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x45, 0x43, 0x43, 0x4b, 0x65, 0x79, 0x52, 0x07, 0x65, 0x63, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x82, 0x05, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x63, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x63, 0x75, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x0c, 0x65, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x69, 0x6d, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x53, 0x69, 0x64, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x7c, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x50, 0x0a, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xa7, 0x03, 0x0a, 0x14, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x66, 0x50, 0x6c, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x66, 0x50, 0x6c, 0x61, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x73, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x70, 0x65, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x70, 0x65, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x14, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x36, 0x0a, 0x10, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x61, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x2a, 0x34, 0x0a, 0x0a, 0x45, 0x6d, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x4c, 0x0a, 0x10, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x74, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x03, 0x2a, 0x33, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x69, 0x6d, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x54, 0x52, 0x45, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4c, 0x54, 0x52, 0x41, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x2a, 0x40, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x53, 0x69, 0x64, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x10, 0x01, 0x42, 0x11, 0x5a, 0x0f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_kafka_grpc_attendant_data_proto_rawDescOnce sync.Once file_kafka_grpc_attendant_data_proto_rawDescData = file_kafka_grpc_attendant_data_proto_rawDesc ) func file_kafka_grpc_attendant_data_proto_rawDescGZIP() []byte { file_kafka_grpc_attendant_data_proto_rawDescOnce.Do(func() { file_kafka_grpc_attendant_data_proto_rawDescData = protoimpl.X.CompressGZIP(file_kafka_grpc_attendant_data_proto_rawDescData) }) return file_kafka_grpc_attendant_data_proto_rawDescData } var file_kafka_grpc_attendant_data_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_kafka_grpc_attendant_data_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_kafka_grpc_attendant_data_proto_goTypes = []interface{}{ (EmumStatus)(0), // 0: EmumStatus (ManifestFileType)(0), // 1: ManifestFileType (CompatibleTrim)(0), // 2: CompatibleTrim (CompatibleDriveSide)(0), // 3: CompatibleDriveSide (*GRPC_AttendantPayload)(nil), // 4: GRPC_AttendantPayload (*CarUpdateStatus)(nil), // 5: CarUpdateStatus (*CarECU)(nil), // 6: CarECU (*CarUpdateProgress)(nil), // 7: CarUpdateProgress (*FileKeysRequest)(nil), // 8: FileKeysRequest (*DTCEntry)(nil), // 9: DTCEntry (*ECCKeys)(nil), // 10: ECCKeys (*ECCKey)(nil), // 11: ECCKey (*BineryHex)(nil), // 12: BineryHex (*UpdateData)(nil), // 13: UpdateData (*VehicleData)(nil), // 14: VehicleData (*MessageStatus)(nil), // 15: MessageStatus (*UpdateManifest)(nil), // 16: UpdateManifest (*UpdateManifestECU)(nil), // 17: UpdateManifestECU (*UpdateManifestFile)(nil), // 18: UpdateManifestFile (*MemoryRegion)(nil), // 19: MemoryRegion (*FileKeyResponse)(nil), // 20: FileKeyResponse (*FeatureCodes)(nil), // 21: FeatureCodes (*VehicleSpecification)(nil), // 22: VehicleSpecification (*Order)(nil), // 23: Order (*CarUpdateRequest)(nil), // 24: CarUpdateRequest nil, // 25: CarUpdateStatus.EcusEntry } var file_kafka_grpc_attendant_data_proto_depIdxs = []int32{ 5, // 0: GRPC_AttendantPayload.carUpdateStatus:type_name -> CarUpdateStatus 7, // 1: GRPC_AttendantPayload.carUpdateProgress:type_name -> CarUpdateProgress 8, // 2: GRPC_AttendantPayload.fileKeyReq:type_name -> FileKeysRequest 10, // 3: GRPC_AttendantPayload.keys:type_name -> ECCKeys 13, // 4: GRPC_AttendantPayload.updateApprove:type_name -> UpdateData 14, // 5: GRPC_AttendantPayload.updateGet:type_name -> VehicleData 16, // 6: GRPC_AttendantPayload.updateManifest:type_name -> UpdateManifest 23, // 7: GRPC_AttendantPayload.order:type_name -> Order 15, // 8: GRPC_AttendantPayload.messageStatus:type_name -> MessageStatus 9, // 9: GRPC_AttendantPayload.dtcEntry:type_name -> DTCEntry 24, // 10: GRPC_AttendantPayload.carUpdateRequest:type_name -> CarUpdateRequest 25, // 11: CarUpdateStatus.ecus:type_name -> CarUpdateStatus.EcusEntry 11, // 12: ECCKeys.eccKeys:type_name -> ECCKey 12, // 13: ECCKey.pub_key_level_1:type_name -> BineryHex 12, // 14: ECCKey.pub_key_level_2:type_name -> BineryHex 12, // 15: ECCKey.pub_key_level_3:type_name -> BineryHex 12, // 16: ECCKey.level_1:type_name -> BineryHex 12, // 17: ECCKey.level_2:type_name -> BineryHex 12, // 18: ECCKey.level_3:type_name -> BineryHex 0, // 19: MessageStatus.status:type_name -> EmumStatus 17, // 20: UpdateManifest.ecu_updates:type_name -> UpdateManifestECU 18, // 21: UpdateManifestECU.files:type_name -> UpdateManifestFile 17, // 22: UpdateManifestECU.rollback:type_name -> UpdateManifestECU 11, // 23: UpdateManifestECU.ecc_keys:type_name -> ECCKey 19, // 24: UpdateManifestFile.write_region:type_name -> MemoryRegion 19, // 25: UpdateManifestFile.erase_region:type_name -> MemoryRegion 20, // 26: UpdateManifestFile.file_key:type_name -> FileKeyResponse 21, // 27: VehicleSpecification.feature:type_name -> FeatureCodes 22, // 28: Order.VehicleSpecification:type_name -> VehicleSpecification 6, // 29: CarUpdateStatus.EcusEntry.value:type_name -> CarECU 30, // [30:30] is the sub-list for method output_type 30, // [30:30] is the sub-list for method input_type 30, // [30:30] is the sub-list for extension type_name 30, // [30:30] is the sub-list for extension extendee 0, // [0:30] is the sub-list for field type_name } func init() { file_kafka_grpc_attendant_data_proto_init() } func file_kafka_grpc_attendant_data_proto_init() { if File_kafka_grpc_attendant_data_proto != nil { return } if !protoimpl.UnsafeEnabled { file_kafka_grpc_attendant_data_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GRPC_AttendantPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CarUpdateStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CarECU); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CarUpdateProgress); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileKeysRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DTCEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ECCKeys); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ECCKey); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BineryHex); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VehicleData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateManifest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateManifestECU); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateManifestFile); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoryRegion); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileKeyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FeatureCodes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VehicleSpecification); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Order); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_kafka_grpc_attendant_data_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CarUpdateRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_kafka_grpc_attendant_data_proto_msgTypes[0].OneofWrappers = []interface{}{ (*GRPC_AttendantPayload_CarUpdateStatus)(nil), (*GRPC_AttendantPayload_CarUpdateProgress)(nil), (*GRPC_AttendantPayload_FileKeyReq)(nil), (*GRPC_AttendantPayload_Keys)(nil), (*GRPC_AttendantPayload_UpdateApprove)(nil), (*GRPC_AttendantPayload_UpdateGet)(nil), (*GRPC_AttendantPayload_UpdateManifest)(nil), (*GRPC_AttendantPayload_Order)(nil), (*GRPC_AttendantPayload_MessageStatus)(nil), (*GRPC_AttendantPayload_DtcEntry)(nil), (*GRPC_AttendantPayload_CarUpdateRequest)(nil), } file_kafka_grpc_attendant_data_proto_msgTypes[2].OneofWrappers = []interface{}{} file_kafka_grpc_attendant_data_proto_msgTypes[7].OneofWrappers = []interface{}{} file_kafka_grpc_attendant_data_proto_msgTypes[12].OneofWrappers = []interface{}{} file_kafka_grpc_attendant_data_proto_msgTypes[13].OneofWrappers = []interface{}{} file_kafka_grpc_attendant_data_proto_msgTypes[14].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_kafka_grpc_attendant_data_proto_rawDesc, NumEnums: 4, NumMessages: 22, NumExtensions: 0, NumServices: 0, }, GoTypes: file_kafka_grpc_attendant_data_proto_goTypes, DependencyIndexes: file_kafka_grpc_attendant_data_proto_depIdxs, EnumInfos: file_kafka_grpc_attendant_data_proto_enumTypes, MessageInfos: file_kafka_grpc_attendant_data_proto_msgTypes, }.Build() File_kafka_grpc_attendant_data_proto = out.File file_kafka_grpc_attendant_data_proto_rawDesc = nil file_kafka_grpc_attendant_data_proto_goTypes = nil file_kafka_grpc_attendant_data_proto_depIdxs = nil }