diff --git a/eaas/buf.gen.yaml b/eaas/buf.gen.yaml new file mode 100644 index 0000000..fba5aef --- /dev/null +++ b/eaas/buf.gen.yaml @@ -0,0 +1,13 @@ +version: v1 +plugins: +- plugin: buf.build/protocolbuffers/go:v1.31.0 + out: . + opt: paths=source_relative +- plugin: buf.build/grpc/go + out: . + opt: paths=source_relative +# - name: grpc-gateway +# out: . +# opt: +# - paths=source_relative +# - generate_unbound_methods=true diff --git a/eaas/buf.lock b/eaas/buf.lock new file mode 100644 index 0000000..05bb071 --- /dev/null +++ b/eaas/buf.lock @@ -0,0 +1,8 @@ +# Generated by buf. DO NOT EDIT. +version: v1 +deps: + - remote: buf.build + owner: googleapis + repository: googleapis + commit: ee48893a270147348e3edc6c1a03de0e + digest: shake256:a35b0576a2b55dad72747e786af05c03539c2b96be236c9de39fe10d551931ac252eb68445c0cef6bbd27fa20e8c26eee5b8a9fe9c2fde6f63a03e18f8cf980d diff --git a/eaas/buf.yaml b/eaas/buf.yaml new file mode 100644 index 0000000..87f59f8 --- /dev/null +++ b/eaas/buf.yaml @@ -0,0 +1,3 @@ +version: v1 +deps: + - buf.build/googleapis/googleapis diff --git a/eaas/gen_proto.go b/eaas/gen_proto.go new file mode 100644 index 0000000..3826dad --- /dev/null +++ b/eaas/gen_proto.go @@ -0,0 +1,3 @@ +package server + +//go:generate go run -mod=mod github.com/bufbuild/buf/cmd/buf generate diff --git a/eaas/proto/enginelibrary/events.pb.go b/eaas/proto/enginelibrary/events.pb.go new file mode 100644 index 0000000..c360417 --- /dev/null +++ b/eaas/proto/enginelibrary/events.pb.go @@ -0,0 +1,602 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/enginelibrary/events.proto + +package enginelibrary + +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 Event struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Data: + // + // *Event_PlaylistHierarchyChanged + // *Event_PlaylistsContentChanged + // *Event_TrackMetadataChanged + // *Event_TrackPerformanceDataChanged + Data isEvent_Data `protobuf_oneof:"data"` + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` + DeviceId *string `protobuf:"bytes,2,opt,name=device_id,json=deviceId,proto3,oneof" json:"device_id,omitempty"` +} + +func (x *Event) Reset() { + *x = Event{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_events_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Event) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Event) ProtoMessage() {} + +func (x *Event) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_events_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 Event.ProtoReflect.Descriptor instead. +func (*Event) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_events_proto_rawDescGZIP(), []int{0} +} + +func (m *Event) GetData() isEvent_Data { + if m != nil { + return m.Data + } + return nil +} + +func (x *Event) GetPlaylistHierarchyChanged() *EventPlaylistHierarchyChanged { + if x, ok := x.GetData().(*Event_PlaylistHierarchyChanged); ok { + return x.PlaylistHierarchyChanged + } + return nil +} + +func (x *Event) GetPlaylistsContentChanged() *EventPlaylistsContentChanged { + if x, ok := x.GetData().(*Event_PlaylistsContentChanged); ok { + return x.PlaylistsContentChanged + } + return nil +} + +func (x *Event) GetTrackMetadataChanged() *EventTrackMetadataChanged { + if x, ok := x.GetData().(*Event_TrackMetadataChanged); ok { + return x.TrackMetadataChanged + } + return nil +} + +func (x *Event) GetTrackPerformanceDataChanged() *EventTrackPerformanceDataChanged { + if x, ok := x.GetData().(*Event_TrackPerformanceDataChanged); ok { + return x.TrackPerformanceDataChanged + } + return nil +} + +func (x *Event) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +func (x *Event) GetDeviceId() string { + if x != nil && x.DeviceId != nil { + return *x.DeviceId + } + return "" +} + +type isEvent_Data interface { + isEvent_Data() +} + +type Event_PlaylistHierarchyChanged struct { + PlaylistHierarchyChanged *EventPlaylistHierarchyChanged `protobuf:"bytes,3,opt,name=playlist_hierarchy_changed,json=playlistHierarchyChanged,proto3,oneof"` +} + +type Event_PlaylistsContentChanged struct { + PlaylistsContentChanged *EventPlaylistsContentChanged `protobuf:"bytes,4,opt,name=playlists_content_changed,json=playlistsContentChanged,proto3,oneof"` +} + +type Event_TrackMetadataChanged struct { + TrackMetadataChanged *EventTrackMetadataChanged `protobuf:"bytes,5,opt,name=track_metadata_changed,json=trackMetadataChanged,proto3,oneof"` +} + +type Event_TrackPerformanceDataChanged struct { + TrackPerformanceDataChanged *EventTrackPerformanceDataChanged `protobuf:"bytes,6,opt,name=track_performance_data_changed,json=trackPerformanceDataChanged,proto3,oneof"` +} + +func (*Event_PlaylistHierarchyChanged) isEvent_Data() {} + +func (*Event_PlaylistsContentChanged) isEvent_Data() {} + +func (*Event_TrackMetadataChanged) isEvent_Data() {} + +func (*Event_TrackPerformanceDataChanged) isEvent_Data() {} + +type EventAck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventId *uint64 `protobuf:"varint,1,opt,name=event_id,json=eventId,proto3,oneof" json:"event_id,omitempty"` + DeviceId *string `protobuf:"bytes,2,opt,name=device_id,json=deviceId,proto3,oneof" json:"device_id,omitempty"` +} + +func (x *EventAck) Reset() { + *x = EventAck{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_events_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventAck) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventAck) ProtoMessage() {} + +func (x *EventAck) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_events_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 EventAck.ProtoReflect.Descriptor instead. +func (*EventAck) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_events_proto_rawDescGZIP(), []int{1} +} + +func (x *EventAck) GetEventId() uint64 { + if x != nil && x.EventId != nil { + return *x.EventId + } + return 0 +} + +func (x *EventAck) GetDeviceId() string { + if x != nil && x.DeviceId != nil { + return *x.DeviceId + } + return "" +} + +type EventPlaylistHierarchyChanged struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EventPlaylistHierarchyChanged) Reset() { + *x = EventPlaylistHierarchyChanged{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_events_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventPlaylistHierarchyChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventPlaylistHierarchyChanged) ProtoMessage() {} + +func (x *EventPlaylistHierarchyChanged) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_events_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 EventPlaylistHierarchyChanged.ProtoReflect.Descriptor instead. +func (*EventPlaylistHierarchyChanged) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_events_proto_rawDescGZIP(), []int{2} +} + +type EventPlaylistsContentChanged struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlaylistId []string `protobuf:"bytes,1,rep,name=playlist_id,json=playlistId,proto3" json:"playlist_id,omitempty"` +} + +func (x *EventPlaylistsContentChanged) Reset() { + *x = EventPlaylistsContentChanged{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_events_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventPlaylistsContentChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventPlaylistsContentChanged) ProtoMessage() {} + +func (x *EventPlaylistsContentChanged) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_events_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 EventPlaylistsContentChanged.ProtoReflect.Descriptor instead. +func (*EventPlaylistsContentChanged) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_events_proto_rawDescGZIP(), []int{3} +} + +func (x *EventPlaylistsContentChanged) GetPlaylistId() []string { + if x != nil { + return x.PlaylistId + } + return nil +} + +type EventTrackMetadataChanged struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TrackMetadata []*TrackMetadata `protobuf:"bytes,1,rep,name=track_metadata,json=trackMetadata,proto3" json:"track_metadata,omitempty"` +} + +func (x *EventTrackMetadataChanged) Reset() { + *x = EventTrackMetadataChanged{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_events_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventTrackMetadataChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventTrackMetadataChanged) ProtoMessage() {} + +func (x *EventTrackMetadataChanged) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_events_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 EventTrackMetadataChanged.ProtoReflect.Descriptor instead. +func (*EventTrackMetadataChanged) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_events_proto_rawDescGZIP(), []int{4} +} + +func (x *EventTrackMetadataChanged) GetTrackMetadata() []*TrackMetadata { + if x != nil { + return x.TrackMetadata + } + return nil +} + +type EventTrackPerformanceDataChanged struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TrackPerformanceData []*TrackPerformanceData `protobuf:"bytes,1,rep,name=track_performance_data,json=trackPerformanceData,proto3" json:"track_performance_data,omitempty"` +} + +func (x *EventTrackPerformanceDataChanged) Reset() { + *x = EventTrackPerformanceDataChanged{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_events_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventTrackPerformanceDataChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventTrackPerformanceDataChanged) ProtoMessage() {} + +func (x *EventTrackPerformanceDataChanged) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_events_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 EventTrackPerformanceDataChanged.ProtoReflect.Descriptor instead. +func (*EventTrackPerformanceDataChanged) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_events_proto_rawDescGZIP(), []int{5} +} + +func (x *EventTrackPerformanceDataChanged) GetTrackPerformanceData() []*TrackPerformanceData { + if x != nil { + return x.TrackPerformanceData + } + return nil +} + +var File_proto_enginelibrary_events_proto protoreflect.FileDescriptor + +var file_proto_enginelibrary_events_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x10, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x1a, 0x21, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x04, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x6f, 0x0a, 0x1a, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x68, 0x69, + 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6c, + 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x48, 0x00, 0x52, 0x18, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, + 0x73, 0x74, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x12, 0x6c, 0x0a, 0x19, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6c, + 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x48, 0x00, 0x52, 0x17, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, + 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x12, 0x63, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x48, 0x00, 0x52, + 0x14, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x79, 0x0a, 0x1e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x70, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x1b, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x67, 0x0a, 0x08, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, + 0x79, 0x6c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x3f, 0x0a, 0x1c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6c, + 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x19, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x80, 0x01, 0x0a, 0x20, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x12, 0x5c, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x50, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x3b, + 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x63, 0x65, + 0x64, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x67, 0x6f, 0x2d, 0x73, 0x74, 0x61, 0x67, 0x65, 0x6c, 0x69, + 0x6e, 0x71, 0x2f, 0x65, 0x61, 0x61, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_proto_enginelibrary_events_proto_rawDescOnce sync.Once + file_proto_enginelibrary_events_proto_rawDescData = file_proto_enginelibrary_events_proto_rawDesc +) + +func file_proto_enginelibrary_events_proto_rawDescGZIP() []byte { + file_proto_enginelibrary_events_proto_rawDescOnce.Do(func() { + file_proto_enginelibrary_events_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_enginelibrary_events_proto_rawDescData) + }) + return file_proto_enginelibrary_events_proto_rawDescData +} + +var file_proto_enginelibrary_events_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_proto_enginelibrary_events_proto_goTypes = []interface{}{ + (*Event)(nil), // 0: enginelibrary.v1.Event + (*EventAck)(nil), // 1: enginelibrary.v1.EventAck + (*EventPlaylistHierarchyChanged)(nil), // 2: enginelibrary.v1.EventPlaylistHierarchyChanged + (*EventPlaylistsContentChanged)(nil), // 3: enginelibrary.v1.EventPlaylistsContentChanged + (*EventTrackMetadataChanged)(nil), // 4: enginelibrary.v1.EventTrackMetadataChanged + (*EventTrackPerformanceDataChanged)(nil), // 5: enginelibrary.v1.EventTrackPerformanceDataChanged + (*TrackMetadata)(nil), // 6: enginelibrary.v1.TrackMetadata + (*TrackPerformanceData)(nil), // 7: enginelibrary.v1.TrackPerformanceData +} +var file_proto_enginelibrary_events_proto_depIdxs = []int32{ + 2, // 0: enginelibrary.v1.Event.playlist_hierarchy_changed:type_name -> enginelibrary.v1.EventPlaylistHierarchyChanged + 3, // 1: enginelibrary.v1.Event.playlists_content_changed:type_name -> enginelibrary.v1.EventPlaylistsContentChanged + 4, // 2: enginelibrary.v1.Event.track_metadata_changed:type_name -> enginelibrary.v1.EventTrackMetadataChanged + 5, // 3: enginelibrary.v1.Event.track_performance_data_changed:type_name -> enginelibrary.v1.EventTrackPerformanceDataChanged + 6, // 4: enginelibrary.v1.EventTrackMetadataChanged.track_metadata:type_name -> enginelibrary.v1.TrackMetadata + 7, // 5: enginelibrary.v1.EventTrackPerformanceDataChanged.track_performance_data:type_name -> enginelibrary.v1.TrackPerformanceData + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_proto_enginelibrary_events_proto_init() } +func file_proto_enginelibrary_events_proto_init() { + if File_proto_enginelibrary_events_proto != nil { + return + } + file_proto_enginelibrary_library_proto_init() + if !protoimpl.UnsafeEnabled { + file_proto_enginelibrary_events_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Event); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_events_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventAck); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_events_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventPlaylistHierarchyChanged); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_events_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventPlaylistsContentChanged); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_events_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventTrackMetadataChanged); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_events_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventTrackPerformanceDataChanged); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_proto_enginelibrary_events_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Event_PlaylistHierarchyChanged)(nil), + (*Event_PlaylistsContentChanged)(nil), + (*Event_TrackMetadataChanged)(nil), + (*Event_TrackPerformanceDataChanged)(nil), + } + file_proto_enginelibrary_events_proto_msgTypes[1].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_enginelibrary_events_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_enginelibrary_events_proto_goTypes, + DependencyIndexes: file_proto_enginelibrary_events_proto_depIdxs, + MessageInfos: file_proto_enginelibrary_events_proto_msgTypes, + }.Build() + File_proto_enginelibrary_events_proto = out.File + file_proto_enginelibrary_events_proto_rawDesc = nil + file_proto_enginelibrary_events_proto_goTypes = nil + file_proto_enginelibrary_events_proto_depIdxs = nil +} diff --git a/eaas/proto/enginelibrary/events.proto b/eaas/proto/enginelibrary/events.proto new file mode 100644 index 0000000..2416a47 --- /dev/null +++ b/eaas/proto/enginelibrary/events.proto @@ -0,0 +1,33 @@ +syntax = "proto3"; + +package enginelibrary.v1; + +option go_package = "github.com/icedream/go-stagelinq/eaas/proto/enginelibrary"; + +import "proto/enginelibrary/library.proto"; + +message Event { + oneof data { + EventPlaylistHierarchyChanged playlist_hierarchy_changed = 3; + EventPlaylistsContentChanged playlists_content_changed = 4; + EventTrackMetadataChanged track_metadata_changed = 5; + EventTrackPerformanceDataChanged track_performance_data_changed = 6; + } + optional string library_id = 1; + optional string device_id = 2; +} + +message EventAck { + optional uint64 event_id = 1; + optional string device_id = 2; +} + +message EventPlaylistHierarchyChanged {} + +message EventPlaylistsContentChanged { repeated string playlist_id = 1; } + +message EventTrackMetadataChanged { repeated TrackMetadata track_metadata = 1; } + +message EventTrackPerformanceDataChanged { + repeated TrackPerformanceData track_performance_data = 1; +} diff --git a/eaas/proto/enginelibrary/library.pb.go b/eaas/proto/enginelibrary/library.pb.go new file mode 100644 index 0000000..9e6692d --- /dev/null +++ b/eaas/proto/enginelibrary/library.pb.go @@ -0,0 +1,2597 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/enginelibrary/library.proto + +package enginelibrary + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + 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 BlobProviderType int32 + +const ( + BlobProviderType_BLOB_PROVIDER_TYPE_UNSPECIFIED BlobProviderType = 0 + BlobProviderType_BLOB_PROVIDER_TYPE_ENGINE_DIRECT BlobProviderType = 1 + BlobProviderType_BLOB_PROVIDER_TYPE_ENGINE_CONNECT BlobProviderType = 2 + BlobProviderType_BLOB_PROVIDER_TYPE_DROPBOX BlobProviderType = 3 + BlobProviderType_BLOB_PROVIDER_TYPE_GOOGLE_DRIVE BlobProviderType = 4 + BlobProviderType_BLOB_PROVIDER_TYPE_ONEDRIVE BlobProviderType = 5 +) + +// Enum value maps for BlobProviderType. +var ( + BlobProviderType_name = map[int32]string{ + 0: "BLOB_PROVIDER_TYPE_UNSPECIFIED", + 1: "BLOB_PROVIDER_TYPE_ENGINE_DIRECT", + 2: "BLOB_PROVIDER_TYPE_ENGINE_CONNECT", + 3: "BLOB_PROVIDER_TYPE_DROPBOX", + 4: "BLOB_PROVIDER_TYPE_GOOGLE_DRIVE", + 5: "BLOB_PROVIDER_TYPE_ONEDRIVE", + } + BlobProviderType_value = map[string]int32{ + "BLOB_PROVIDER_TYPE_UNSPECIFIED": 0, + "BLOB_PROVIDER_TYPE_ENGINE_DIRECT": 1, + "BLOB_PROVIDER_TYPE_ENGINE_CONNECT": 2, + "BLOB_PROVIDER_TYPE_DROPBOX": 3, + "BLOB_PROVIDER_TYPE_GOOGLE_DRIVE": 4, + "BLOB_PROVIDER_TYPE_ONEDRIVE": 5, + } +) + +func (x BlobProviderType) Enum() *BlobProviderType { + p := new(BlobProviderType) + *p = x + return p +} + +func (x BlobProviderType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BlobProviderType) Descriptor() protoreflect.EnumDescriptor { + return file_proto_enginelibrary_library_proto_enumTypes[0].Descriptor() +} + +func (BlobProviderType) Type() protoreflect.EnumType { + return &file_proto_enginelibrary_library_proto_enumTypes[0] +} + +func (x BlobProviderType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BlobProviderType.Descriptor instead. +func (BlobProviderType) EnumDescriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{0} +} + +type BlobType int32 + +const ( + BlobType_BLOB_TYPE_UNSPECIFIED BlobType = 0 + BlobType_BLOB_TYPE_TRACK_AUDIO BlobType = 1 +) + +// Enum value maps for BlobType. +var ( + BlobType_name = map[int32]string{ + 0: "BLOB_TYPE_UNSPECIFIED", + 1: "BLOB_TYPE_TRACK_AUDIO", + } + BlobType_value = map[string]int32{ + "BLOB_TYPE_UNSPECIFIED": 0, + "BLOB_TYPE_TRACK_AUDIO": 1, + } +) + +func (x BlobType) Enum() *BlobType { + p := new(BlobType) + *p = x + return p +} + +func (x BlobType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BlobType) Descriptor() protoreflect.EnumDescriptor { + return file_proto_enginelibrary_library_proto_enumTypes[1].Descriptor() +} + +func (BlobType) Type() protoreflect.EnumType { + return &file_proto_enginelibrary_library_proto_enumTypes[1] +} + +func (x BlobType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BlobType.Descriptor instead. +func (BlobType) EnumDescriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{1} +} + +type InitialImportSource int32 + +const ( + InitialImportSource_INITIAL_IMPORT_SOURCE_UNSPECIFIED InitialImportSource = 0 + InitialImportSource_INITIAL_IMPORT_SOURCE_SERATO InitialImportSource = 1 + InitialImportSource_INITIAL_IMPORT_SOURCE_REKORDBOX InitialImportSource = 2 + InitialImportSource_INITIAL_IMPORT_SOURCE_TRAKTOR InitialImportSource = 3 +) + +// Enum value maps for InitialImportSource. +var ( + InitialImportSource_name = map[int32]string{ + 0: "INITIAL_IMPORT_SOURCE_UNSPECIFIED", + 1: "INITIAL_IMPORT_SOURCE_SERATO", + 2: "INITIAL_IMPORT_SOURCE_REKORDBOX", + 3: "INITIAL_IMPORT_SOURCE_TRAKTOR", + } + InitialImportSource_value = map[string]int32{ + "INITIAL_IMPORT_SOURCE_UNSPECIFIED": 0, + "INITIAL_IMPORT_SOURCE_SERATO": 1, + "INITIAL_IMPORT_SOURCE_REKORDBOX": 2, + "INITIAL_IMPORT_SOURCE_TRAKTOR": 3, + } +) + +func (x InitialImportSource) Enum() *InitialImportSource { + p := new(InitialImportSource) + *p = x + return p +} + +func (x InitialImportSource) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (InitialImportSource) Descriptor() protoreflect.EnumDescriptor { + return file_proto_enginelibrary_library_proto_enumTypes[2].Descriptor() +} + +func (InitialImportSource) Type() protoreflect.EnumType { + return &file_proto_enginelibrary_library_proto_enumTypes[2] +} + +func (x InitialImportSource) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use InitialImportSource.Descriptor instead. +func (InitialImportSource) EnumDescriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{2} +} + +type LibraryLogo int32 + +const ( + LibraryLogo_LIBRARY_LOGO_UNSPECIFIED LibraryLogo = 0 + LibraryLogo_LIBRARY_LOGO_ENGINE LibraryLogo = 1 + LibraryLogo_LIBRARY_LOGO_APPLE_MUSIC_APP LibraryLogo = 2 + LibraryLogo_LIBRARY_LOGO_REKORDBOX LibraryLogo = 3 + LibraryLogo_LIBRARY_LOGO_SERATO LibraryLogo = 4 + LibraryLogo_LIBRARY_LOGO_TRAKTOR LibraryLogo = 5 +) + +// Enum value maps for LibraryLogo. +var ( + LibraryLogo_name = map[int32]string{ + 0: "LIBRARY_LOGO_UNSPECIFIED", + 1: "LIBRARY_LOGO_ENGINE", + 2: "LIBRARY_LOGO_APPLE_MUSIC_APP", + 3: "LIBRARY_LOGO_REKORDBOX", + 4: "LIBRARY_LOGO_SERATO", + 5: "LIBRARY_LOGO_TRAKTOR", + } + LibraryLogo_value = map[string]int32{ + "LIBRARY_LOGO_UNSPECIFIED": 0, + "LIBRARY_LOGO_ENGINE": 1, + "LIBRARY_LOGO_APPLE_MUSIC_APP": 2, + "LIBRARY_LOGO_REKORDBOX": 3, + "LIBRARY_LOGO_SERATO": 4, + "LIBRARY_LOGO_TRAKTOR": 5, + } +) + +func (x LibraryLogo) Enum() *LibraryLogo { + p := new(LibraryLogo) + *p = x + return p +} + +func (x LibraryLogo) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LibraryLogo) Descriptor() protoreflect.EnumDescriptor { + return file_proto_enginelibrary_library_proto_enumTypes[3].Descriptor() +} + +func (LibraryLogo) Type() protoreflect.EnumType { + return &file_proto_enginelibrary_library_proto_enumTypes[3] +} + +func (x LibraryLogo) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LibraryLogo.Descriptor instead. +func (LibraryLogo) EnumDescriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{3} +} + +type ListType int32 + +const ( + ListType_LIST_TYPE_UNSPECIFIED ListType = 0 + ListType_LIST_TYPE_PLAY ListType = 1 + ListType_LIST_TYPE_SMART ListType = 2 +) + +// Enum value maps for ListType. +var ( + ListType_name = map[int32]string{ + 0: "LIST_TYPE_UNSPECIFIED", + 1: "LIST_TYPE_PLAY", + 2: "LIST_TYPE_SMART", + } + ListType_value = map[string]int32{ + "LIST_TYPE_UNSPECIFIED": 0, + "LIST_TYPE_PLAY": 1, + "LIST_TYPE_SMART": 2, + } +) + +func (x ListType) Enum() *ListType { + p := new(ListType) + *p = x + return p +} + +func (x ListType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListType) Descriptor() protoreflect.EnumDescriptor { + return file_proto_enginelibrary_library_proto_enumTypes[4].Descriptor() +} + +func (ListType) Type() protoreflect.EnumType { + return &file_proto_enginelibrary_library_proto_enumTypes[4] +} + +func (x ListType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListType.Descriptor instead. +func (ListType) EnumDescriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{4} +} + +type BlobProvider struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *BlobProviderType `protobuf:"varint,1,opt,name=type,proto3,enum=enginelibrary.v1.BlobProviderType,oneof" json:"type,omitempty"` + Id *string `protobuf:"bytes,2,opt,name=id,proto3,oneof" json:"id,omitempty"` +} + +func (x *BlobProvider) Reset() { + *x = BlobProvider{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlobProvider) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlobProvider) ProtoMessage() {} + +func (x *BlobProvider) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 BlobProvider.ProtoReflect.Descriptor instead. +func (*BlobProvider) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{0} +} + +func (x *BlobProvider) GetType() BlobProviderType { + if x != nil && x.Type != nil { + return *x.Type + } + return BlobProviderType_BLOB_PROVIDER_TYPE_UNSPECIFIED +} + +func (x *BlobProvider) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +type Color struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + R *uint32 `protobuf:"varint,1,opt,name=r,proto3,oneof" json:"r,omitempty"` + G *uint32 `protobuf:"varint,2,opt,name=g,proto3,oneof" json:"g,omitempty"` + B *uint32 `protobuf:"varint,3,opt,name=b,proto3,oneof" json:"b,omitempty"` + A *uint32 `protobuf:"varint,4,opt,name=a,proto3,oneof" json:"a,omitempty"` +} + +func (x *Color) Reset() { + *x = Color{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Color) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Color) ProtoMessage() {} + +func (x *Color) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 Color.ProtoReflect.Descriptor instead. +func (*Color) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{1} +} + +func (x *Color) GetR() uint32 { + if x != nil && x.R != nil { + return *x.R + } + return 0 +} + +func (x *Color) GetG() uint32 { + if x != nil && x.G != nil { + return *x.G + } + return 0 +} + +func (x *Color) GetB() uint32 { + if x != nil && x.B != nil { + return *x.B + } + return 0 +} + +func (x *Color) GetA() uint32 { + if x != nil && x.A != nil { + return *x.A + } + return 0 +} + +type Credentials struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccessToken *string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3,oneof" json:"access_token,omitempty"` +} + +func (x *Credentials) Reset() { + *x = Credentials{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Credentials) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Credentials) ProtoMessage() {} + +func (x *Credentials) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 Credentials.ProtoReflect.Descriptor instead. +func (*Credentials) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{2} +} + +func (x *Credentials) GetAccessToken() string { + if x != nil && x.AccessToken != nil { + return *x.AccessToken + } + return "" +} + +type HistorySession struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` + Title *string `protobuf:"bytes,2,opt,name=title,proto3,oneof" json:"title,omitempty"` + TitleEventId *uint64 `protobuf:"varint,5,opt,name=title_event_id,json=titleEventId,proto3,oneof" json:"title_event_id,omitempty"` + StartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3,oneof" json:"start_time,omitempty"` + Timezone *string `protobuf:"bytes,4,opt,name=timezone,proto3,oneof" json:"timezone,omitempty"` + DeletedByEventId *uint64 `protobuf:"varint,6,opt,name=deleted_by_event_id,json=deletedByEventId,proto3,oneof" json:"deleted_by_event_id,omitempty"` + EstimatedDurationSeconds *uint32 `protobuf:"varint,7,opt,name=estimated_duration_seconds,json=estimatedDurationSeconds,proto3,oneof" json:"estimated_duration_seconds,omitempty"` + PlayedTrackCount *uint32 `protobuf:"varint,8,opt,name=played_track_count,json=playedTrackCount,proto3,oneof" json:"played_track_count,omitempty"` +} + +func (x *HistorySession) Reset() { + *x = HistorySession{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistorySession) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistorySession) ProtoMessage() {} + +func (x *HistorySession) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 HistorySession.ProtoReflect.Descriptor instead. +func (*HistorySession) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{3} +} + +func (x *HistorySession) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *HistorySession) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *HistorySession) GetTitleEventId() uint64 { + if x != nil && x.TitleEventId != nil { + return *x.TitleEventId + } + return 0 +} + +func (x *HistorySession) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *HistorySession) GetTimezone() string { + if x != nil && x.Timezone != nil { + return *x.Timezone + } + return "" +} + +func (x *HistorySession) GetDeletedByEventId() uint64 { + if x != nil && x.DeletedByEventId != nil { + return *x.DeletedByEventId + } + return 0 +} + +func (x *HistorySession) GetEstimatedDurationSeconds() uint32 { + if x != nil && x.EstimatedDurationSeconds != nil { + return *x.EstimatedDurationSeconds + } + return 0 +} + +func (x *HistorySession) GetPlayedTrackCount() uint32 { + if x != nil && x.PlayedTrackCount != nil { + return *x.PlayedTrackCount + } + return 0 +} + +type HistoryPlayedTrack struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedByEventId *uint64 `protobuf:"varint,1,opt,name=created_by_event_id,json=createdByEventId,proto3,oneof" json:"created_by_event_id,omitempty"` + PlayedTrack *PlayedTrack `protobuf:"bytes,2,opt,name=played_track,json=playedTrack,proto3,oneof" json:"played_track,omitempty"` + DeletedByEventId *uint64 `protobuf:"varint,3,opt,name=deleted_by_event_id,json=deletedByEventId,proto3,oneof" json:"deleted_by_event_id,omitempty"` +} + +func (x *HistoryPlayedTrack) Reset() { + *x = HistoryPlayedTrack{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoryPlayedTrack) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryPlayedTrack) ProtoMessage() {} + +func (x *HistoryPlayedTrack) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 HistoryPlayedTrack.ProtoReflect.Descriptor instead. +func (*HistoryPlayedTrack) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{4} +} + +func (x *HistoryPlayedTrack) GetCreatedByEventId() uint64 { + if x != nil && x.CreatedByEventId != nil { + return *x.CreatedByEventId + } + return 0 +} + +func (x *HistoryPlayedTrack) GetPlayedTrack() *PlayedTrack { + if x != nil { + return x.PlayedTrack + } + return nil +} + +func (x *HistoryPlayedTrack) GetDeletedByEventId() uint64 { + if x != nil && x.DeletedByEventId != nil { + return *x.DeletedByEventId + } + return 0 +} + +type Library struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` + Title *string `protobuf:"bytes,2,opt,name=title,proto3,oneof" json:"title,omitempty"` + Logo *LibraryLogo `protobuf:"varint,3,opt,name=logo,proto3,enum=enginelibrary.v1.LibraryLogo,oneof" json:"logo,omitempty"` +} + +func (x *Library) Reset() { + *x = Library{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Library) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Library) ProtoMessage() {} + +func (x *Library) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 Library.ProtoReflect.Descriptor instead. +func (*Library) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{5} +} + +func (x *Library) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *Library) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *Library) GetLogo() LibraryLogo { + if x != nil && x.Logo != nil { + return *x.Logo + } + return LibraryLogo_LIBRARY_LOGO_UNSPECIFIED +} + +type ListTrack struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *TrackMetadata `protobuf:"bytes,1,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` + PreviewArtwork []byte `protobuf:"bytes,4,opt,name=preview_artwork,json=previewArtwork,proto3,oneof" json:"preview_artwork,omitempty"` +} + +func (x *ListTrack) Reset() { + *x = ListTrack{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListTrack) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTrack) ProtoMessage() {} + +func (x *ListTrack) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 ListTrack.ProtoReflect.Descriptor instead. +func (*ListTrack) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{6} +} + +func (x *ListTrack) GetMetadata() *TrackMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *ListTrack) GetPreviewArtwork() []byte { + if x != nil { + return x.PreviewArtwork + } + return nil +} + +type Loop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // TODO - oneof _loop_in { + LoopIn float64 `protobuf:"fixed64,2,opt,name=loop_in,json=loopIn,proto3" json:"loop_in,omitempty"` + // } + // TODO - oneof _loop_out { + LoopOut float64 `protobuf:"fixed64,3,opt,name=loop_out,json=loopOut,proto3" json:"loop_out,omitempty"` + // } + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Color *Color `protobuf:"bytes,4,opt,name=color,proto3,oneof" json:"color,omitempty"` + ActiveOnLoad *bool `protobuf:"varint,5,opt,name=active_on_load,json=activeOnLoad,proto3,oneof" json:"active_on_load,omitempty"` +} + +func (x *Loop) Reset() { + *x = Loop{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Loop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Loop) ProtoMessage() {} + +func (x *Loop) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 Loop.ProtoReflect.Descriptor instead. +func (*Loop) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{7} +} + +func (x *Loop) GetLoopIn() float64 { + if x != nil { + return x.LoopIn + } + return 0 +} + +func (x *Loop) GetLoopOut() float64 { + if x != nil { + return x.LoopOut + } + return 0 +} + +func (x *Loop) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Loop) GetColor() *Color { + if x != nil { + return x.Color + } + return nil +} + +func (x *Loop) GetActiveOnLoad() bool { + if x != nil && x.ActiveOnLoad != nil { + return *x.ActiveOnLoad + } + return false +} + +type MainCue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Position *float64 `protobuf:"fixed64,1,opt,name=position,proto3,oneof" json:"position,omitempty"` + IsSetManually *bool `protobuf:"varint,2,opt,name=is_set_manually,json=isSetManually,proto3,oneof" json:"is_set_manually,omitempty"` + InitialPosition *float64 `protobuf:"fixed64,3,opt,name=initial_position,json=initialPosition,proto3,oneof" json:"initial_position,omitempty"` +} + +func (x *MainCue) Reset() { + *x = MainCue{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MainCue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MainCue) ProtoMessage() {} + +func (x *MainCue) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 MainCue.ProtoReflect.Descriptor instead. +func (*MainCue) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{8} +} + +func (x *MainCue) GetPosition() float64 { + if x != nil && x.Position != nil { + return *x.Position + } + return 0 +} + +func (x *MainCue) GetIsSetManually() bool { + if x != nil && x.IsSetManually != nil { + return *x.IsSetManually + } + return false +} + +func (x *MainCue) GetInitialPosition() float64 { + if x != nil && x.InitialPosition != nil { + return *x.InitialPosition + } + return 0 +} + +type PlayedTrack struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayedTrackId *string `protobuf:"bytes,1,opt,name=played_track_id,json=playedTrackId,proto3,oneof" json:"played_track_id,omitempty"` + Metadata *TrackMetadata `protobuf:"bytes,2,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` + StartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3,oneof" json:"start_time,omitempty"` +} + +func (x *PlayedTrack) Reset() { + *x = PlayedTrack{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayedTrack) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayedTrack) ProtoMessage() {} + +func (x *PlayedTrack) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 PlayedTrack.ProtoReflect.Descriptor instead. +func (*PlayedTrack) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{9} +} + +func (x *PlayedTrack) GetPlayedTrackId() string { + if x != nil && x.PlayedTrackId != nil { + return *x.PlayedTrackId + } + return "" +} + +func (x *PlayedTrack) GetMetadata() *TrackMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *PlayedTrack) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +type PlaylistMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` + Title *string `protobuf:"bytes,2,opt,name=title,proto3,oneof" json:"title,omitempty"` + TrackCount *uint32 `protobuf:"varint,3,opt,name=track_count,json=trackCount,proto3,oneof" json:"track_count,omitempty"` + Playlists []*PlaylistMetadata `protobuf:"bytes,4,rep,name=playlists,proto3" json:"playlists,omitempty"` + ListType *ListType `protobuf:"varint,5,opt,name=list_type,json=listType,proto3,enum=enginelibrary.v1.ListType,oneof" json:"list_type,omitempty"` +} + +func (x *PlaylistMetadata) Reset() { + *x = PlaylistMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlaylistMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlaylistMetadata) ProtoMessage() {} + +func (x *PlaylistMetadata) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 PlaylistMetadata.ProtoReflect.Descriptor instead. +func (*PlaylistMetadata) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{10} +} + +func (x *PlaylistMetadata) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *PlaylistMetadata) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *PlaylistMetadata) GetTrackCount() uint32 { + if x != nil && x.TrackCount != nil { + return *x.TrackCount + } + return 0 +} + +func (x *PlaylistMetadata) GetPlaylists() []*PlaylistMetadata { + if x != nil { + return x.Playlists + } + return nil +} + +func (x *PlaylistMetadata) GetListType() ListType { + if x != nil && x.ListType != nil { + return *x.ListType + } + return ListType_LIST_TYPE_UNSPECIFIED +} + +type QuickCue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Position *float64 `protobuf:"fixed64,2,opt,name=position,proto3,oneof" json:"position,omitempty"` + Color *Color `protobuf:"bytes,3,opt,name=color,proto3,oneof" json:"color,omitempty"` +} + +func (x *QuickCue) Reset() { + *x = QuickCue{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuickCue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuickCue) ProtoMessage() {} + +func (x *QuickCue) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 QuickCue.ProtoReflect.Descriptor instead. +func (*QuickCue) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{11} +} + +func (x *QuickCue) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *QuickCue) GetPosition() float64 { + if x != nil && x.Position != nil { + return *x.Position + } + return 0 +} + +func (x *QuickCue) GetColor() *Color { + if x != nil { + return x.Color + } + return nil +} + +type SearchFilterValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` +} + +func (x *SearchFilterValue) Reset() { + *x = SearchFilterValue{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchFilterValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchFilterValue) ProtoMessage() {} + +func (x *SearchFilterValue) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 SearchFilterValue.ProtoReflect.Descriptor instead. +func (*SearchFilterValue) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{12} +} + +func (x *SearchFilterValue) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type SearchFilterOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Genres []*SearchFilterValue `protobuf:"bytes,1,rep,name=genres,proto3" json:"genres,omitempty"` + Artists []*SearchFilterValue `protobuf:"bytes,2,rep,name=artists,proto3" json:"artists,omitempty"` + Albums []*SearchFilterValue `protobuf:"bytes,3,rep,name=albums,proto3" json:"albums,omitempty"` + Bpms []*SearchFilterValue `protobuf:"bytes,4,rep,name=bpms,proto3" json:"bpms,omitempty"` + Keys []*SearchFilterValue `protobuf:"bytes,5,rep,name=keys,proto3" json:"keys,omitempty"` +} + +func (x *SearchFilterOptions) Reset() { + *x = SearchFilterOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchFilterOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchFilterOptions) ProtoMessage() {} + +func (x *SearchFilterOptions) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 SearchFilterOptions.ProtoReflect.Descriptor instead. +func (*SearchFilterOptions) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{13} +} + +func (x *SearchFilterOptions) GetGenres() []*SearchFilterValue { + if x != nil { + return x.Genres + } + return nil +} + +func (x *SearchFilterOptions) GetArtists() []*SearchFilterValue { + if x != nil { + return x.Artists + } + return nil +} + +func (x *SearchFilterOptions) GetAlbums() []*SearchFilterValue { + if x != nil { + return x.Albums + } + return nil +} + +func (x *SearchFilterOptions) GetBpms() []*SearchFilterValue { + if x != nil { + return x.Bpms + } + return nil +} + +func (x *SearchFilterOptions) GetKeys() []*SearchFilterValue { + if x != nil { + return x.Keys + } + return nil +} + +type Track struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *TrackMetadata `protobuf:"bytes,1,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` + PerformanceData *TrackPerformanceData `protobuf:"bytes,2,opt,name=performance_data,json=performanceData,proto3,oneof" json:"performance_data,omitempty"` + Location *TrackLocation `protobuf:"bytes,3,opt,name=location,proto3,oneof" json:"location,omitempty"` +} + +func (x *Track) Reset() { + *x = Track{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Track) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Track) ProtoMessage() {} + +func (x *Track) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 Track.ProtoReflect.Descriptor instead. +func (*Track) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{14} +} + +func (x *Track) GetMetadata() *TrackMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Track) GetPerformanceData() *TrackPerformanceData { + if x != nil { + return x.PerformanceData + } + return nil +} + +func (x *Track) GetLocation() *TrackLocation { + if x != nil { + return x.Location + } + return nil +} + +type TrackBlob struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Type: + // + // *TrackBlob_Url + Type isTrackBlob_Type `protobuf_oneof:"type"` +} + +func (x *TrackBlob) Reset() { + *x = TrackBlob{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrackBlob) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrackBlob) ProtoMessage() {} + +func (x *TrackBlob) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 TrackBlob.ProtoReflect.Descriptor instead. +func (*TrackBlob) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{15} +} + +func (m *TrackBlob) GetType() isTrackBlob_Type { + if m != nil { + return m.Type + } + return nil +} + +func (x *TrackBlob) GetUrl() *TrackBlobUrl { + if x, ok := x.GetType().(*TrackBlob_Url); ok { + return x.Url + } + return nil +} + +type isTrackBlob_Type interface { + isTrackBlob_Type() +} + +type TrackBlob_Url struct { + Url *TrackBlobUrl `protobuf:"bytes,1,opt,name=url,proto3,oneof"` +} + +func (*TrackBlob_Url) isTrackBlob_Type() {} + +type TrackBlobUrl struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url *string `protobuf:"bytes,1,opt,name=url,proto3,oneof" json:"url,omitempty"` + FileSize *uint32 `protobuf:"varint,2,opt,name=file_size,json=fileSize,proto3,oneof" json:"file_size,omitempty"` +} + +func (x *TrackBlobUrl) Reset() { + *x = TrackBlobUrl{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrackBlobUrl) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrackBlobUrl) ProtoMessage() {} + +func (x *TrackBlobUrl) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 TrackBlobUrl.ProtoReflect.Descriptor instead. +func (*TrackBlobUrl) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{16} +} + +func (x *TrackBlobUrl) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *TrackBlobUrl) GetFileSize() uint32 { + if x != nil && x.FileSize != nil { + return *x.FileSize + } + return 0 +} + +type TrackPerformanceData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // TODO - oneof _initial_import_source { + InitialImportSource *InitialImportSource `protobuf:"varint,8,opt,name=initial_import_source,json=initialImportSource,proto3,enum=enginelibrary.v1.InitialImportSource,oneof" json:"initial_import_source,omitempty"` + // } + // TODO - oneof _bpm { + Bpm *float64 `protobuf:"fixed64,9,opt,name=bpm,proto3,oneof" json:"bpm,omitempty"` + // } + Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` + BeatGrid []byte `protobuf:"bytes,3,opt,name=beat_grid,json=beatGrid,proto3,oneof" json:"beat_grid,omitempty"` + QuickCues []*TrackPerformanceData_QuickCuesEntry `protobuf:"bytes,4,rep,name=quick_cues,json=quickCues,proto3" json:"quick_cues,omitempty"` + Loops []*TrackPerformanceData_LoopsEntry `protobuf:"bytes,5,rep,name=loops,proto3" json:"loops,omitempty"` + MainCue *MainCue `protobuf:"bytes,6,opt,name=main_cue,json=mainCue,proto3,oneof" json:"main_cue,omitempty"` + OverviewWaveform []byte `protobuf:"bytes,7,opt,name=overview_waveform,json=overviewWaveform,proto3,oneof" json:"overview_waveform,omitempty"` +} + +func (x *TrackPerformanceData) Reset() { + *x = TrackPerformanceData{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrackPerformanceData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrackPerformanceData) ProtoMessage() {} + +func (x *TrackPerformanceData) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 TrackPerformanceData.ProtoReflect.Descriptor instead. +func (*TrackPerformanceData) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{17} +} + +func (x *TrackPerformanceData) GetInitialImportSource() InitialImportSource { + if x != nil && x.InitialImportSource != nil { + return *x.InitialImportSource + } + return InitialImportSource_INITIAL_IMPORT_SOURCE_UNSPECIFIED +} + +func (x *TrackPerformanceData) GetBpm() float64 { + if x != nil && x.Bpm != nil { + return *x.Bpm + } + return 0 +} + +func (x *TrackPerformanceData) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *TrackPerformanceData) GetBeatGrid() []byte { + if x != nil { + return x.BeatGrid + } + return nil +} + +func (x *TrackPerformanceData) GetQuickCues() []*TrackPerformanceData_QuickCuesEntry { + if x != nil { + return x.QuickCues + } + return nil +} + +func (x *TrackPerformanceData) GetLoops() []*TrackPerformanceData_LoopsEntry { + if x != nil { + return x.Loops + } + return nil +} + +func (x *TrackPerformanceData) GetMainCue() *MainCue { + if x != nil { + return x.MainCue + } + return nil +} + +func (x *TrackPerformanceData) GetOverviewWaveform() []byte { + if x != nil { + return x.OverviewWaveform + } + return nil +} + +type TrackMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // TODO - oneof _bpm { + Bpm *float64 `protobuf:"fixed64,6,opt,name=bpm,proto3,oneof" json:"bpm,omitempty"` + // } + // TODO - oneof _date_added { + DateAdded *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=date_added,json=dateAdded,proto3,oneof" json:"date_added,omitempty"` + // } + Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` + Title *string `protobuf:"bytes,3,opt,name=title,proto3,oneof" json:"title,omitempty"` + Artist *string `protobuf:"bytes,4,opt,name=artist,proto3,oneof" json:"artist,omitempty"` + Album *string `protobuf:"bytes,5,opt,name=album,proto3,oneof" json:"album,omitempty"` + Key *string `protobuf:"bytes,7,opt,name=key,proto3,oneof" json:"key,omitempty"` + Rating *uint32 `protobuf:"varint,8,opt,name=rating,proto3,oneof" json:"rating,omitempty"` + Year *uint32 `protobuf:"varint,9,opt,name=year,proto3,oneof" json:"year,omitempty"` + Genre *string `protobuf:"bytes,10,opt,name=genre,proto3,oneof" json:"genre,omitempty"` + Comment *string `protobuf:"bytes,11,opt,name=comment,proto3,oneof" json:"comment,omitempty"` + Label *string `protobuf:"bytes,12,opt,name=label,proto3,oneof" json:"label,omitempty"` + LengthSeconds *uint32 `protobuf:"varint,13,opt,name=length_seconds,json=lengthSeconds,proto3,oneof" json:"length_seconds,omitempty"` + Composer *string `protobuf:"bytes,14,opt,name=composer,proto3,oneof" json:"composer,omitempty"` + Remixer *string `protobuf:"bytes,15,opt,name=remixer,proto3,oneof" json:"remixer,omitempty"` +} + +func (x *TrackMetadata) Reset() { + *x = TrackMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrackMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrackMetadata) ProtoMessage() {} + +func (x *TrackMetadata) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 TrackMetadata.ProtoReflect.Descriptor instead. +func (*TrackMetadata) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{18} +} + +func (x *TrackMetadata) GetBpm() float64 { + if x != nil && x.Bpm != nil { + return *x.Bpm + } + return 0 +} + +func (x *TrackMetadata) GetDateAdded() *timestamppb.Timestamp { + if x != nil { + return x.DateAdded + } + return nil +} + +func (x *TrackMetadata) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *TrackMetadata) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *TrackMetadata) GetArtist() string { + if x != nil && x.Artist != nil { + return *x.Artist + } + return "" +} + +func (x *TrackMetadata) GetAlbum() string { + if x != nil && x.Album != nil { + return *x.Album + } + return "" +} + +func (x *TrackMetadata) GetKey() string { + if x != nil && x.Key != nil { + return *x.Key + } + return "" +} + +func (x *TrackMetadata) GetRating() uint32 { + if x != nil && x.Rating != nil { + return *x.Rating + } + return 0 +} + +func (x *TrackMetadata) GetYear() uint32 { + if x != nil && x.Year != nil { + return *x.Year + } + return 0 +} + +func (x *TrackMetadata) GetGenre() string { + if x != nil && x.Genre != nil { + return *x.Genre + } + return "" +} + +func (x *TrackMetadata) GetComment() string { + if x != nil && x.Comment != nil { + return *x.Comment + } + return "" +} + +func (x *TrackMetadata) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *TrackMetadata) GetLengthSeconds() uint32 { + if x != nil && x.LengthSeconds != nil { + return *x.LengthSeconds + } + return 0 +} + +func (x *TrackMetadata) GetComposer() string { + if x != nil && x.Composer != nil { + return *x.Composer + } + return "" +} + +func (x *TrackMetadata) GetRemixer() string { + if x != nil && x.Remixer != nil { + return *x.Remixer + } + return "" +} + +type TrackLocation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Provider *BlobProvider `protobuf:"bytes,1,opt,name=provider,proto3,oneof" json:"provider,omitempty"` + Key *string `protobuf:"bytes,2,opt,name=key,proto3,oneof" json:"key,omitempty"` +} + +func (x *TrackLocation) Reset() { + *x = TrackLocation{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrackLocation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrackLocation) ProtoMessage() {} + +func (x *TrackLocation) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 TrackLocation.ProtoReflect.Descriptor instead. +func (*TrackLocation) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{19} +} + +func (x *TrackLocation) GetProvider() *BlobProvider { + if x != nil { + return x.Provider + } + return nil +} + +func (x *TrackLocation) GetKey() string { + if x != nil && x.Key != nil { + return *x.Key + } + return "" +} + +type TrackPerformanceData_QuickCuesEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key *uint32 `protobuf:"varint,1,opt,name=key,proto3,oneof" json:"key,omitempty"` + Value *QuickCue `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` +} + +func (x *TrackPerformanceData_QuickCuesEntry) Reset() { + *x = TrackPerformanceData_QuickCuesEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrackPerformanceData_QuickCuesEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrackPerformanceData_QuickCuesEntry) ProtoMessage() {} + +func (x *TrackPerformanceData_QuickCuesEntry) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_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 TrackPerformanceData_QuickCuesEntry.ProtoReflect.Descriptor instead. +func (*TrackPerformanceData_QuickCuesEntry) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{17, 0} +} + +func (x *TrackPerformanceData_QuickCuesEntry) GetKey() uint32 { + if x != nil && x.Key != nil { + return *x.Key + } + return 0 +} + +func (x *TrackPerformanceData_QuickCuesEntry) GetValue() *QuickCue { + if x != nil { + return x.Value + } + return nil +} + +type TrackPerformanceData_LoopsEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key *uint32 `protobuf:"varint,1,opt,name=key,proto3,oneof" json:"key,omitempty"` + Value *Loop `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` +} + +func (x *TrackPerformanceData_LoopsEntry) Reset() { + *x = TrackPerformanceData_LoopsEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_library_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrackPerformanceData_LoopsEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrackPerformanceData_LoopsEntry) ProtoMessage() {} + +func (x *TrackPerformanceData_LoopsEntry) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_library_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrackPerformanceData_LoopsEntry.ProtoReflect.Descriptor instead. +func (*TrackPerformanceData_LoopsEntry) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_library_proto_rawDescGZIP(), []int{17, 1} +} + +func (x *TrackPerformanceData_LoopsEntry) GetKey() uint32 { + if x != nil && x.Key != nil { + return *x.Key + } + return 0 +} + +func (x *TrackPerformanceData_LoopsEntry) GetValue() *Loop { + if x != nil { + return x.Value + } + return nil +} + +var File_proto_enginelibrary_library_proto protoreflect.FileDescriptor + +var file_proto_enginelibrary_library_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x62, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0x6b, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x12, 0x11, 0x0a, 0x01, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x01, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x11, 0x0a, 0x01, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x01, 0x67, 0x88, 0x01, 0x01, 0x12, 0x11, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x01, 0x62, 0x88, 0x01, 0x01, 0x12, 0x11, 0x0a, 0x01, 0x61, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x01, 0x61, 0x88, 0x01, 0x01, 0x42, 0x04, 0x0a, + 0x02, 0x5f, 0x72, 0x42, 0x04, 0x0a, 0x02, 0x5f, 0x67, 0x42, 0x04, 0x0a, 0x02, 0x5f, 0x62, 0x42, + 0x04, 0x0a, 0x02, 0x5f, 0x61, 0x22, 0x46, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x84, 0x04, + 0x0a, 0x0e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0c, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x74, + 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, + 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x10, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x42, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x41, 0x0a, 0x1a, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x18, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, + 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x07, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x02, 0x0a, 0x12, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x32, 0x0a, 0x13, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x45, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x48, 0x01, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, + 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, + 0x62, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x07, + 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x4c, 0x6f, 0x67, 0x6f, 0x48, 0x02, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x88, 0x01, 0x01, 0x42, + 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x22, 0x9c, 0x01, 0x0a, 0x09, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x5f, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x01, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, + 0x5f, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0xd8, 0x01, 0x0a, 0x04, 0x4c, 0x6f, 0x6f, + 0x70, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x70, 0x49, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, + 0x6f, 0x70, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6c, 0x6f, + 0x6f, 0x70, 0x4f, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0c, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x4f, 0x6e, 0x4c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x6c, + 0x6f, 0x61, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4d, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x65, 0x12, + 0x1f, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x01, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x75, 0x61, + 0x6c, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x73, 0x53, + 0x65, 0x74, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, + 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xec, 0x01, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, + 0x61, 0x63, 0x6b, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x48, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x6b, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, + 0x74, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, + 0x09, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x12, + 0x3c, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, + 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, + 0x03, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x98, 0x01, 0x0a, + 0x08, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x43, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x38, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xc0, 0x02, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x67, 0x65, 0x6e, + 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, + 0x67, 0x65, 0x6e, 0x72, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x61, 0x6c, 0x62, 0x75, + 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x70, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x62, 0x70, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, + 0x6b, 0x65, 0x79, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x40, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x56, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, + 0x61, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x01, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, + 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x65, 0x72, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x09, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x32, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x42, 0x6c, 0x6f, 0x62, + 0x55, 0x72, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x5d, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x42, 0x6c, 0x6f, 0x62, 0x55, + 0x72, 0x6c, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x75, 0x72, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x22, 0x86, 0x06, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5e, 0x0a, 0x15, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x48, 0x00, 0x52, 0x13, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x62, 0x70, + 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x03, 0x62, 0x70, 0x6d, 0x88, 0x01, + 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x67, + 0x72, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x03, 0x52, 0x08, 0x62, 0x65, 0x61, + 0x74, 0x47, 0x72, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0a, 0x71, 0x75, 0x69, 0x63, + 0x6b, 0x5f, 0x63, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x43, 0x75, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x09, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x43, 0x75, 0x65, 0x73, 0x12, 0x47, + 0x0a, 0x05, 0x6c, 0x6f, 0x6f, 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x6f, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x05, 0x6c, 0x6f, 0x6f, 0x70, 0x73, 0x12, 0x39, 0x0a, 0x08, 0x6d, 0x61, 0x69, 0x6e, 0x5f, + 0x63, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x69, + 0x6e, 0x43, 0x75, 0x65, 0x48, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x77, + 0x61, 0x76, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x05, 0x52, + 0x10, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x57, 0x61, 0x76, 0x65, 0x66, 0x6f, 0x72, + 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x70, 0x0a, 0x0e, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x43, 0x75, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x75, 0x69, 0x63, 0x6b, 0x43, 0x75, 0x65, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x68, 0x0a, 0x0a, 0x4c, 0x6f, 0x6f, 0x70, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x6f, 0x70, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, + 0x70, 0x6d, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x65, + 0x61, 0x74, 0x5f, 0x67, 0x72, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x61, 0x69, 0x6e, + 0x5f, 0x63, 0x75, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x77, 0x61, 0x76, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x81, 0x05, 0x0a, 0x0d, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x15, 0x0a, 0x03, + 0x62, 0x70, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x03, 0x62, 0x70, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x05, 0x52, 0x05, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x07, 0x52, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, + 0x04, 0x79, 0x65, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x67, 0x65, 0x6e, 0x72, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x05, 0x67, 0x65, 0x6e, 0x72, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x0a, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x0b, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, 0x52, 0x0d, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x08, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, + 0x6d, 0x69, 0x78, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0e, 0x52, 0x07, 0x72, + 0x65, 0x6d, 0x69, 0x78, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x70, + 0x6d, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x79, 0x65, + 0x61, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x65, 0x6e, 0x72, 0x65, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x6d, 0x69, 0x78, 0x65, 0x72, 0x22, 0x7c, + 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x2a, 0xe9, 0x01, 0x0a, + 0x10, 0x42, 0x6c, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, + 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x50, 0x52, + 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x47, 0x49, + 0x4e, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x42, + 0x4c, 0x4f, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, + 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x42, 0x4f, 0x58, + 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, + 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, + 0x44, 0x52, 0x49, 0x56, 0x45, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x4c, 0x4f, 0x42, 0x5f, + 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, + 0x45, 0x44, 0x52, 0x49, 0x56, 0x45, 0x10, 0x05, 0x2a, 0x40, 0x0a, 0x08, 0x42, 0x6c, 0x6f, 0x62, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x19, 0x0a, 0x15, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x4b, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x01, 0x2a, 0xa6, 0x01, 0x0a, 0x13, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x49, 0x4d, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x49, + 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x49, + 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4b, 0x4f, 0x52, 0x44, 0x42, 0x4f, 0x58, 0x10, 0x02, + 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x49, 0x4d, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4b, 0x54, 0x4f, + 0x52, 0x10, 0x03, 0x2a, 0xb5, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4c, + 0x6f, 0x67, 0x6f, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4c, + 0x4f, 0x47, 0x4f, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x47, + 0x4f, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, + 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x45, + 0x5f, 0x4d, 0x55, 0x53, 0x49, 0x43, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, + 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, 0x5f, 0x52, 0x45, 0x4b, + 0x4f, 0x52, 0x44, 0x42, 0x4f, 0x58, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x49, 0x42, 0x52, + 0x41, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, 0x5f, 0x53, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x10, + 0x04, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x47, + 0x4f, 0x5f, 0x54, 0x52, 0x41, 0x4b, 0x54, 0x4f, 0x52, 0x10, 0x05, 0x2a, 0x4e, 0x0a, 0x08, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x53, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x50, 0x4c, 0x41, 0x59, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4d, 0x41, 0x52, 0x54, 0x10, 0x02, 0x42, 0x3b, 0x5a, 0x39, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x63, 0x65, 0x64, 0x72, 0x65, + 0x61, 0x6d, 0x2f, 0x67, 0x6f, 0x2d, 0x73, 0x74, 0x61, 0x67, 0x65, 0x6c, 0x69, 0x6e, 0x71, 0x2f, + 0x65, 0x61, 0x61, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_enginelibrary_library_proto_rawDescOnce sync.Once + file_proto_enginelibrary_library_proto_rawDescData = file_proto_enginelibrary_library_proto_rawDesc +) + +func file_proto_enginelibrary_library_proto_rawDescGZIP() []byte { + file_proto_enginelibrary_library_proto_rawDescOnce.Do(func() { + file_proto_enginelibrary_library_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_enginelibrary_library_proto_rawDescData) + }) + return file_proto_enginelibrary_library_proto_rawDescData +} + +var file_proto_enginelibrary_library_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_proto_enginelibrary_library_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_proto_enginelibrary_library_proto_goTypes = []interface{}{ + (BlobProviderType)(0), // 0: enginelibrary.v1.BlobProviderType + (BlobType)(0), // 1: enginelibrary.v1.BlobType + (InitialImportSource)(0), // 2: enginelibrary.v1.InitialImportSource + (LibraryLogo)(0), // 3: enginelibrary.v1.LibraryLogo + (ListType)(0), // 4: enginelibrary.v1.ListType + (*BlobProvider)(nil), // 5: enginelibrary.v1.BlobProvider + (*Color)(nil), // 6: enginelibrary.v1.Color + (*Credentials)(nil), // 7: enginelibrary.v1.Credentials + (*HistorySession)(nil), // 8: enginelibrary.v1.HistorySession + (*HistoryPlayedTrack)(nil), // 9: enginelibrary.v1.HistoryPlayedTrack + (*Library)(nil), // 10: enginelibrary.v1.Library + (*ListTrack)(nil), // 11: enginelibrary.v1.ListTrack + (*Loop)(nil), // 12: enginelibrary.v1.Loop + (*MainCue)(nil), // 13: enginelibrary.v1.MainCue + (*PlayedTrack)(nil), // 14: enginelibrary.v1.PlayedTrack + (*PlaylistMetadata)(nil), // 15: enginelibrary.v1.PlaylistMetadata + (*QuickCue)(nil), // 16: enginelibrary.v1.QuickCue + (*SearchFilterValue)(nil), // 17: enginelibrary.v1.SearchFilterValue + (*SearchFilterOptions)(nil), // 18: enginelibrary.v1.SearchFilterOptions + (*Track)(nil), // 19: enginelibrary.v1.Track + (*TrackBlob)(nil), // 20: enginelibrary.v1.TrackBlob + (*TrackBlobUrl)(nil), // 21: enginelibrary.v1.TrackBlobUrl + (*TrackPerformanceData)(nil), // 22: enginelibrary.v1.TrackPerformanceData + (*TrackMetadata)(nil), // 23: enginelibrary.v1.TrackMetadata + (*TrackLocation)(nil), // 24: enginelibrary.v1.TrackLocation + (*TrackPerformanceData_QuickCuesEntry)(nil), // 25: enginelibrary.v1.TrackPerformanceData.QuickCuesEntry + (*TrackPerformanceData_LoopsEntry)(nil), // 26: enginelibrary.v1.TrackPerformanceData.LoopsEntry + (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp +} +var file_proto_enginelibrary_library_proto_depIdxs = []int32{ + 0, // 0: enginelibrary.v1.BlobProvider.type:type_name -> enginelibrary.v1.BlobProviderType + 27, // 1: enginelibrary.v1.HistorySession.start_time:type_name -> google.protobuf.Timestamp + 14, // 2: enginelibrary.v1.HistoryPlayedTrack.played_track:type_name -> enginelibrary.v1.PlayedTrack + 3, // 3: enginelibrary.v1.Library.logo:type_name -> enginelibrary.v1.LibraryLogo + 23, // 4: enginelibrary.v1.ListTrack.metadata:type_name -> enginelibrary.v1.TrackMetadata + 6, // 5: enginelibrary.v1.Loop.color:type_name -> enginelibrary.v1.Color + 23, // 6: enginelibrary.v1.PlayedTrack.metadata:type_name -> enginelibrary.v1.TrackMetadata + 27, // 7: enginelibrary.v1.PlayedTrack.start_time:type_name -> google.protobuf.Timestamp + 15, // 8: enginelibrary.v1.PlaylistMetadata.playlists:type_name -> enginelibrary.v1.PlaylistMetadata + 4, // 9: enginelibrary.v1.PlaylistMetadata.list_type:type_name -> enginelibrary.v1.ListType + 6, // 10: enginelibrary.v1.QuickCue.color:type_name -> enginelibrary.v1.Color + 17, // 11: enginelibrary.v1.SearchFilterOptions.genres:type_name -> enginelibrary.v1.SearchFilterValue + 17, // 12: enginelibrary.v1.SearchFilterOptions.artists:type_name -> enginelibrary.v1.SearchFilterValue + 17, // 13: enginelibrary.v1.SearchFilterOptions.albums:type_name -> enginelibrary.v1.SearchFilterValue + 17, // 14: enginelibrary.v1.SearchFilterOptions.bpms:type_name -> enginelibrary.v1.SearchFilterValue + 17, // 15: enginelibrary.v1.SearchFilterOptions.keys:type_name -> enginelibrary.v1.SearchFilterValue + 23, // 16: enginelibrary.v1.Track.metadata:type_name -> enginelibrary.v1.TrackMetadata + 22, // 17: enginelibrary.v1.Track.performance_data:type_name -> enginelibrary.v1.TrackPerformanceData + 24, // 18: enginelibrary.v1.Track.location:type_name -> enginelibrary.v1.TrackLocation + 21, // 19: enginelibrary.v1.TrackBlob.url:type_name -> enginelibrary.v1.TrackBlobUrl + 2, // 20: enginelibrary.v1.TrackPerformanceData.initial_import_source:type_name -> enginelibrary.v1.InitialImportSource + 25, // 21: enginelibrary.v1.TrackPerformanceData.quick_cues:type_name -> enginelibrary.v1.TrackPerformanceData.QuickCuesEntry + 26, // 22: enginelibrary.v1.TrackPerformanceData.loops:type_name -> enginelibrary.v1.TrackPerformanceData.LoopsEntry + 13, // 23: enginelibrary.v1.TrackPerformanceData.main_cue:type_name -> enginelibrary.v1.MainCue + 27, // 24: enginelibrary.v1.TrackMetadata.date_added:type_name -> google.protobuf.Timestamp + 5, // 25: enginelibrary.v1.TrackLocation.provider:type_name -> enginelibrary.v1.BlobProvider + 16, // 26: enginelibrary.v1.TrackPerformanceData.QuickCuesEntry.value:type_name -> enginelibrary.v1.QuickCue + 12, // 27: enginelibrary.v1.TrackPerformanceData.LoopsEntry.value:type_name -> enginelibrary.v1.Loop + 28, // [28:28] is the sub-list for method output_type + 28, // [28:28] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name +} + +func init() { file_proto_enginelibrary_library_proto_init() } +func file_proto_enginelibrary_library_proto_init() { + if File_proto_enginelibrary_library_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_enginelibrary_library_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlobProvider); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Color); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Credentials); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistorySession); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoryPlayedTrack); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Library); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListTrack); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Loop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MainCue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayedTrack); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlaylistMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuickCue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchFilterValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchFilterOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Track); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrackBlob); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrackBlobUrl); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrackPerformanceData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrackMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrackLocation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrackPerformanceData_QuickCuesEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_library_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrackPerformanceData_LoopsEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_proto_enginelibrary_library_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[2].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[15].OneofWrappers = []interface{}{ + (*TrackBlob_Url)(nil), + } + file_proto_enginelibrary_library_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[17].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_proto_enginelibrary_library_proto_msgTypes[21].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_enginelibrary_library_proto_rawDesc, + NumEnums: 5, + NumMessages: 22, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_enginelibrary_library_proto_goTypes, + DependencyIndexes: file_proto_enginelibrary_library_proto_depIdxs, + EnumInfos: file_proto_enginelibrary_library_proto_enumTypes, + MessageInfos: file_proto_enginelibrary_library_proto_msgTypes, + }.Build() + File_proto_enginelibrary_library_proto = out.File + file_proto_enginelibrary_library_proto_rawDesc = nil + file_proto_enginelibrary_library_proto_goTypes = nil + file_proto_enginelibrary_library_proto_depIdxs = nil +} diff --git a/eaas/proto/enginelibrary/library.proto b/eaas/proto/enginelibrary/library.proto new file mode 100644 index 0000000..cc5814f --- /dev/null +++ b/eaas/proto/enginelibrary/library.proto @@ -0,0 +1,200 @@ +syntax = "proto3"; + +package enginelibrary.v1; + +option go_package = "github.com/icedream/go-stagelinq/eaas/proto/enginelibrary"; + +import "google/protobuf/timestamp.proto"; + +enum BlobProviderType { + BLOB_PROVIDER_TYPE_UNSPECIFIED = 0; + BLOB_PROVIDER_TYPE_ENGINE_DIRECT = 1; + BLOB_PROVIDER_TYPE_ENGINE_CONNECT = 2; + BLOB_PROVIDER_TYPE_DROPBOX = 3; + BLOB_PROVIDER_TYPE_GOOGLE_DRIVE = 4; + BLOB_PROVIDER_TYPE_ONEDRIVE = 5; +} + +enum BlobType { + BLOB_TYPE_UNSPECIFIED = 0; + BLOB_TYPE_TRACK_AUDIO = 1; +} + +enum InitialImportSource { + INITIAL_IMPORT_SOURCE_UNSPECIFIED = 0; + INITIAL_IMPORT_SOURCE_SERATO = 1; + INITIAL_IMPORT_SOURCE_REKORDBOX = 2; + INITIAL_IMPORT_SOURCE_TRAKTOR = 3; +} + +enum LibraryLogo { + LIBRARY_LOGO_UNSPECIFIED = 0; + LIBRARY_LOGO_ENGINE = 1; + LIBRARY_LOGO_APPLE_MUSIC_APP = 2; + LIBRARY_LOGO_REKORDBOX = 3; + LIBRARY_LOGO_SERATO = 4; + LIBRARY_LOGO_TRAKTOR = 5; +} + +enum ListType { + LIST_TYPE_UNSPECIFIED = 0; + LIST_TYPE_PLAY = 1; + LIST_TYPE_SMART = 2; +} + +message BlobProvider { + optional BlobProviderType type = 1; + optional string id = 2; +} + +message Color { + optional uint32 r = 1; + optional uint32 g = 2; + optional uint32 b = 3; + optional uint32 a = 4; +} + +message Credentials { optional string access_token = 1; } + +message HistorySession { + optional string id = 1; + optional string title = 2; + optional uint64 title_event_id = 5; + optional google.protobuf.Timestamp start_time = 3; + optional string timezone = 4; + optional uint64 deleted_by_event_id = 6; + optional uint32 estimated_duration_seconds = 7; + optional uint32 played_track_count = 8; +} + +message HistoryPlayedTrack { + optional uint64 created_by_event_id = 1; + optional PlayedTrack played_track = 2; + optional uint64 deleted_by_event_id = 3; +} + +message Library { + optional string id = 1; + optional string title = 2; + optional LibraryLogo logo = 3; +} + +message ListTrack { + optional TrackMetadata metadata = 1; + optional bytes preview_artwork = 4; +} + +message Loop { + // TODO - oneof _loop_in { + double loop_in = 2; + // } + // TODO - oneof _loop_out { + double loop_out = 3; + // } + optional string name = 1; + optional Color color = 4; + optional bool active_on_load = 5; +} + +message MainCue { + optional double position = 1; + optional bool is_set_manually = 2; + optional double initial_position = 3; +} + +message PlayedTrack { + optional string played_track_id = 1; + optional TrackMetadata metadata = 2; + optional google.protobuf.Timestamp start_time = 3; +} + +message PlaylistMetadata { + optional string id = 1; + optional string title = 2; + optional uint32 track_count = 3; + repeated PlaylistMetadata playlists = 4; + optional ListType list_type = 5; +} + +message QuickCue { + optional string name = 1; + optional double position = 2; + optional Color color = 3; +} + +message SearchFilterValue { optional string value = 1; } + +message SearchFilterOptions { + repeated SearchFilterValue genres = 1; + repeated SearchFilterValue artists = 2; + repeated SearchFilterValue albums = 3; + repeated SearchFilterValue bpms = 4; + repeated SearchFilterValue keys = 5; +} + +message Track { + optional TrackMetadata metadata = 1; + optional TrackPerformanceData performance_data = 2; + optional TrackLocation location = 3; +} + +message TrackBlob { + oneof type { TrackBlobUrl url = 1; } +} + +message TrackBlobUrl { + optional string url = 1; + optional uint32 file_size = 2; +} + +message TrackPerformanceData { + message QuickCuesEntry { + optional uint32 key = 1; + optional QuickCue value = 2; + } + + message LoopsEntry { + optional uint32 key = 1; + optional Loop value = 2; + } + + // TODO - oneof _initial_import_source { + optional InitialImportSource initial_import_source = 8; + // } + // TODO - oneof _bpm { + optional double bpm = 9; + //} + optional string id = 1; + optional bytes beat_grid = 3; + repeated QuickCuesEntry quick_cues = 4; + repeated LoopsEntry loops = 5; + optional MainCue main_cue = 6; + optional bytes overview_waveform = 7; +} + +message TrackMetadata { + // TODO - oneof _bpm { + optional double bpm = 6; + //} + // TODO - oneof _date_added { + optional google.protobuf.Timestamp date_added = 16; + //} + optional string id = 1; + optional string title = 3; + optional string artist = 4; + optional string album = 5; + optional string key = 7; + optional uint32 rating = 8; + optional uint32 year = 9; + optional string genre = 10; + optional string comment = 11; + optional string label = 12; + optional uint32 length_seconds = 13; + optional string composer = 14; + optional string remixer = 15; +} + +message TrackLocation { + optional BlobProvider provider = 1; + optional string key = 2; +} diff --git a/eaas/proto/enginelibrary/service.pb.go b/eaas/proto/enginelibrary/service.pb.go new file mode 100644 index 0000000..78dc0e0 --- /dev/null +++ b/eaas/proto/enginelibrary/service.pb.go @@ -0,0 +1,2390 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/enginelibrary/service.proto + +package enginelibrary + +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 SearchFilterField int32 + +const ( + SearchFilterField_SEARCH_FILTER_FIELD_UNSPECIFIED SearchFilterField = 0 + SearchFilterField_SEARCH_FILTER_FIELD_GENRE SearchFilterField = 1 + SearchFilterField_SEARCH_FILTER_FIELD_ARTIST SearchFilterField = 2 + SearchFilterField_SEARCH_FILTER_FIELD_ALBUM SearchFilterField = 3 + SearchFilterField_SEARCH_FILTER_FIELD_BPM SearchFilterField = 4 + SearchFilterField_SEARCH_FILTER_FIELD_KEY SearchFilterField = 5 +) + +// Enum value maps for SearchFilterField. +var ( + SearchFilterField_name = map[int32]string{ + 0: "SEARCH_FILTER_FIELD_UNSPECIFIED", + 1: "SEARCH_FILTER_FIELD_GENRE", + 2: "SEARCH_FILTER_FIELD_ARTIST", + 3: "SEARCH_FILTER_FIELD_ALBUM", + 4: "SEARCH_FILTER_FIELD_BPM", + 5: "SEARCH_FILTER_FIELD_KEY", + } + SearchFilterField_value = map[string]int32{ + "SEARCH_FILTER_FIELD_UNSPECIFIED": 0, + "SEARCH_FILTER_FIELD_GENRE": 1, + "SEARCH_FILTER_FIELD_ARTIST": 2, + "SEARCH_FILTER_FIELD_ALBUM": 3, + "SEARCH_FILTER_FIELD_BPM": 4, + "SEARCH_FILTER_FIELD_KEY": 5, + } +) + +func (x SearchFilterField) Enum() *SearchFilterField { + p := new(SearchFilterField) + *p = x + return p +} + +func (x SearchFilterField) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SearchFilterField) Descriptor() protoreflect.EnumDescriptor { + return file_proto_enginelibrary_service_proto_enumTypes[0].Descriptor() +} + +func (SearchFilterField) Type() protoreflect.EnumType { + return &file_proto_enginelibrary_service_proto_enumTypes[0] +} + +func (x SearchFilterField) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SearchFilterField.Descriptor instead. +func (SearchFilterField) EnumDescriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{0} +} + +type SearchQueryField int32 + +const ( + SearchQueryField_SEARCH_QUERY_FIELD_UNSPECIFIED SearchQueryField = 0 + SearchQueryField_SEARCH_QUERY_FIELD_TITLE SearchQueryField = 1 + SearchQueryField_SEARCH_QUERY_FIELD_ARTIST SearchQueryField = 2 + SearchQueryField_SEARCH_QUERY_FIELD_ALBUM SearchQueryField = 3 + SearchQueryField_SEARCH_QUERY_FIELD_LENGTH SearchQueryField = 4 + SearchQueryField_SEARCH_QUERY_FIELD_KEY SearchQueryField = 5 + SearchQueryField_SEARCH_QUERY_FIELD_COMMENT SearchQueryField = 6 + SearchQueryField_SEARCH_QUERY_FIELD_BPM SearchQueryField = 7 + SearchQueryField_SEARCH_QUERY_FIELD_GENRE SearchQueryField = 8 + SearchQueryField_SEARCH_QUERY_FIELD_LABEL SearchQueryField = 9 + SearchQueryField_SEARCH_QUERY_FIELD_YEAR SearchQueryField = 10 + SearchQueryField_SEARCH_QUERY_FIELD_DATE_ADDED SearchQueryField = 11 + SearchQueryField_SEARCH_QUERY_FIELD_FILENAME SearchQueryField = 12 +) + +// Enum value maps for SearchQueryField. +var ( + SearchQueryField_name = map[int32]string{ + 0: "SEARCH_QUERY_FIELD_UNSPECIFIED", + 1: "SEARCH_QUERY_FIELD_TITLE", + 2: "SEARCH_QUERY_FIELD_ARTIST", + 3: "SEARCH_QUERY_FIELD_ALBUM", + 4: "SEARCH_QUERY_FIELD_LENGTH", + 5: "SEARCH_QUERY_FIELD_KEY", + 6: "SEARCH_QUERY_FIELD_COMMENT", + 7: "SEARCH_QUERY_FIELD_BPM", + 8: "SEARCH_QUERY_FIELD_GENRE", + 9: "SEARCH_QUERY_FIELD_LABEL", + 10: "SEARCH_QUERY_FIELD_YEAR", + 11: "SEARCH_QUERY_FIELD_DATE_ADDED", + 12: "SEARCH_QUERY_FIELD_FILENAME", + } + SearchQueryField_value = map[string]int32{ + "SEARCH_QUERY_FIELD_UNSPECIFIED": 0, + "SEARCH_QUERY_FIELD_TITLE": 1, + "SEARCH_QUERY_FIELD_ARTIST": 2, + "SEARCH_QUERY_FIELD_ALBUM": 3, + "SEARCH_QUERY_FIELD_LENGTH": 4, + "SEARCH_QUERY_FIELD_KEY": 5, + "SEARCH_QUERY_FIELD_COMMENT": 6, + "SEARCH_QUERY_FIELD_BPM": 7, + "SEARCH_QUERY_FIELD_GENRE": 8, + "SEARCH_QUERY_FIELD_LABEL": 9, + "SEARCH_QUERY_FIELD_YEAR": 10, + "SEARCH_QUERY_FIELD_DATE_ADDED": 11, + "SEARCH_QUERY_FIELD_FILENAME": 12, + } +) + +func (x SearchQueryField) Enum() *SearchQueryField { + p := new(SearchQueryField) + *p = x + return p +} + +func (x SearchQueryField) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SearchQueryField) Descriptor() protoreflect.EnumDescriptor { + return file_proto_enginelibrary_service_proto_enumTypes[1].Descriptor() +} + +func (SearchQueryField) Type() protoreflect.EnumType { + return &file_proto_enginelibrary_service_proto_enumTypes[1] +} + +func (x SearchQueryField) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SearchQueryField.Descriptor instead. +func (SearchQueryField) EnumDescriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{1} +} + +type SortField int32 + +const ( + SortField_SORT_FIELD_UNSPECIFIED SortField = 0 + SortField_SORT_FIELD_TITLE SortField = 1 + SortField_SORT_FIELD_ARTIST SortField = 2 + SortField_SORT_FIELD_ALBUM SortField = 3 + SortField_SORT_FIELD_BPM SortField = 4 + SortField_SORT_FIELD_GENRE SortField = 5 + SortField_SORT_FIELD_COMMENT SortField = 6 + SortField_SORT_FIELD_LABEL SortField = 7 + SortField_SORT_FIELD_LENGTH SortField = 8 + SortField_SORT_FIELD_KEY SortField = 9 + SortField_SORT_FIELD_RATING SortField = 10 + SortField_SORT_FIELD_YEAR SortField = 11 + SortField_SORT_FIELD_ORDER_PLAYLIST SortField = 12 + SortField_SORT_FIELD_DATE_ADDED SortField = 13 +) + +// Enum value maps for SortField. +var ( + SortField_name = map[int32]string{ + 0: "SORT_FIELD_UNSPECIFIED", + 1: "SORT_FIELD_TITLE", + 2: "SORT_FIELD_ARTIST", + 3: "SORT_FIELD_ALBUM", + 4: "SORT_FIELD_BPM", + 5: "SORT_FIELD_GENRE", + 6: "SORT_FIELD_COMMENT", + 7: "SORT_FIELD_LABEL", + 8: "SORT_FIELD_LENGTH", + 9: "SORT_FIELD_KEY", + 10: "SORT_FIELD_RATING", + 11: "SORT_FIELD_YEAR", + 12: "SORT_FIELD_ORDER_PLAYLIST", + 13: "SORT_FIELD_DATE_ADDED", + } + SortField_value = map[string]int32{ + "SORT_FIELD_UNSPECIFIED": 0, + "SORT_FIELD_TITLE": 1, + "SORT_FIELD_ARTIST": 2, + "SORT_FIELD_ALBUM": 3, + "SORT_FIELD_BPM": 4, + "SORT_FIELD_GENRE": 5, + "SORT_FIELD_COMMENT": 6, + "SORT_FIELD_LABEL": 7, + "SORT_FIELD_LENGTH": 8, + "SORT_FIELD_KEY": 9, + "SORT_FIELD_RATING": 10, + "SORT_FIELD_YEAR": 11, + "SORT_FIELD_ORDER_PLAYLIST": 12, + "SORT_FIELD_DATE_ADDED": 13, + } +) + +func (x SortField) Enum() *SortField { + p := new(SortField) + *p = x + return p +} + +func (x SortField) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SortField) Descriptor() protoreflect.EnumDescriptor { + return file_proto_enginelibrary_service_proto_enumTypes[2].Descriptor() +} + +func (SortField) Type() protoreflect.EnumType { + return &file_proto_enginelibrary_service_proto_enumTypes[2] +} + +func (x SortField) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SortField.Descriptor instead. +func (SortField) EnumDescriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{2} +} + +type SortDirection int32 + +const ( + SortDirection_SORT_DIRECTION_UNSPECIFIED SortDirection = 0 + SortDirection_SORT_DIRECTION_ASC SortDirection = 1 + SortDirection_SORT_DIRECTION_DESC SortDirection = 2 +) + +// Enum value maps for SortDirection. +var ( + SortDirection_name = map[int32]string{ + 0: "SORT_DIRECTION_UNSPECIFIED", + 1: "SORT_DIRECTION_ASC", + 2: "SORT_DIRECTION_DESC", + } + SortDirection_value = map[string]int32{ + "SORT_DIRECTION_UNSPECIFIED": 0, + "SORT_DIRECTION_ASC": 1, + "SORT_DIRECTION_DESC": 2, + } +) + +func (x SortDirection) Enum() *SortDirection { + p := new(SortDirection) + *p = x + return p +} + +func (x SortDirection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SortDirection) Descriptor() protoreflect.EnumDescriptor { + return file_proto_enginelibrary_service_proto_enumTypes[3].Descriptor() +} + +func (SortDirection) Type() protoreflect.EnumType { + return &file_proto_enginelibrary_service_proto_enumTypes[3] +} + +func (x SortDirection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SortDirection.Descriptor instead. +func (SortDirection) EnumDescriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{3} +} + +type EventStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LibraryId *string `protobuf:"bytes,2,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` + DeviceId *string `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3,oneof" json:"device_id,omitempty"` +} + +func (x *EventStreamRequest) Reset() { + *x = EventStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventStreamRequest) ProtoMessage() {} + +func (x *EventStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 EventStreamRequest.ProtoReflect.Descriptor instead. +func (*EventStreamRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{0} +} + +func (x *EventStreamRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +func (x *EventStreamRequest) GetDeviceId() string { + if x != nil && x.DeviceId != nil { + return *x.DeviceId + } + return "" +} + +type EventStreamResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Event []*Event `protobuf:"bytes,1,rep,name=event,proto3" json:"event,omitempty"` +} + +func (x *EventStreamResponse) Reset() { + *x = EventStreamResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventStreamResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventStreamResponse) ProtoMessage() {} + +func (x *EventStreamResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 EventStreamResponse.ProtoReflect.Descriptor instead. +func (*EventStreamResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{1} +} + +func (x *EventStreamResponse) GetEvent() []*Event { + if x != nil { + return x.Event + } + return nil +} + +type GetCredentialsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` + ProviderType *BlobProviderType `protobuf:"varint,2,opt,name=provider_type,json=providerType,proto3,enum=enginelibrary.v1.BlobProviderType,oneof" json:"provider_type,omitempty"` +} + +func (x *GetCredentialsRequest) Reset() { + *x = GetCredentialsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCredentialsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCredentialsRequest) ProtoMessage() {} + +func (x *GetCredentialsRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetCredentialsRequest.ProtoReflect.Descriptor instead. +func (*GetCredentialsRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{2} +} + +func (x *GetCredentialsRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +func (x *GetCredentialsRequest) GetProviderType() BlobProviderType { + if x != nil && x.ProviderType != nil { + return *x.ProviderType + } + return BlobProviderType_BLOB_PROVIDER_TYPE_UNSPECIFIED +} + +type GetCredentialsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Credentials *Credentials `protobuf:"bytes,1,opt,name=credentials,proto3,oneof" json:"credentials,omitempty"` + Provider *BlobProvider `protobuf:"bytes,2,opt,name=provider,proto3,oneof" json:"provider,omitempty"` +} + +func (x *GetCredentialsResponse) Reset() { + *x = GetCredentialsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCredentialsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCredentialsResponse) ProtoMessage() {} + +func (x *GetCredentialsResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetCredentialsResponse.ProtoReflect.Descriptor instead. +func (*GetCredentialsResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{3} +} + +func (x *GetCredentialsResponse) GetCredentials() *Credentials { + if x != nil { + return x.Credentials + } + return nil +} + +func (x *GetCredentialsResponse) GetProvider() *BlobProvider { + if x != nil { + return x.Provider + } + return nil +} + +type GetHistoryPlayedTracksRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` + SessionId *string `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3,oneof" json:"session_id,omitempty"` +} + +func (x *GetHistoryPlayedTracksRequest) Reset() { + *x = GetHistoryPlayedTracksRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistoryPlayedTracksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistoryPlayedTracksRequest) ProtoMessage() {} + +func (x *GetHistoryPlayedTracksRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetHistoryPlayedTracksRequest.ProtoReflect.Descriptor instead. +func (*GetHistoryPlayedTracksRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{4} +} + +func (x *GetHistoryPlayedTracksRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +func (x *GetHistoryPlayedTracksRequest) GetSessionId() string { + if x != nil && x.SessionId != nil { + return *x.SessionId + } + return "" +} + +type GetHistoryPlayedTracksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tracks []*HistoryPlayedTrack `protobuf:"bytes,1,rep,name=tracks,proto3" json:"tracks,omitempty"` +} + +func (x *GetHistoryPlayedTracksResponse) Reset() { + *x = GetHistoryPlayedTracksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistoryPlayedTracksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistoryPlayedTracksResponse) ProtoMessage() {} + +func (x *GetHistoryPlayedTracksResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetHistoryPlayedTracksResponse.ProtoReflect.Descriptor instead. +func (*GetHistoryPlayedTracksResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{5} +} + +func (x *GetHistoryPlayedTracksResponse) GetTracks() []*HistoryPlayedTrack { + if x != nil { + return x.Tracks + } + return nil +} + +type GetHistorySessionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` +} + +func (x *GetHistorySessionsRequest) Reset() { + *x = GetHistorySessionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistorySessionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistorySessionsRequest) ProtoMessage() {} + +func (x *GetHistorySessionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetHistorySessionsRequest.ProtoReflect.Descriptor instead. +func (*GetHistorySessionsRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{6} +} + +func (x *GetHistorySessionsRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +type GetHistorySessionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sessions []*HistorySession `protobuf:"bytes,1,rep,name=sessions,proto3" json:"sessions,omitempty"` +} + +func (x *GetHistorySessionsResponse) Reset() { + *x = GetHistorySessionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistorySessionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistorySessionsResponse) ProtoMessage() {} + +func (x *GetHistorySessionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetHistorySessionsResponse.ProtoReflect.Descriptor instead. +func (*GetHistorySessionsResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{7} +} + +func (x *GetHistorySessionsResponse) GetSessions() []*HistorySession { + if x != nil { + return x.Sessions + } + return nil +} + +type GetLibrariesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetLibrariesRequest) Reset() { + *x = GetLibrariesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLibrariesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLibrariesRequest) ProtoMessage() {} + +func (x *GetLibrariesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetLibrariesRequest.ProtoReflect.Descriptor instead. +func (*GetLibrariesRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{8} +} + +type GetLibrariesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Libraries []*Library `protobuf:"bytes,1,rep,name=libraries,proto3" json:"libraries,omitempty"` +} + +func (x *GetLibrariesResponse) Reset() { + *x = GetLibrariesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLibrariesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLibrariesResponse) ProtoMessage() {} + +func (x *GetLibrariesResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetLibrariesResponse.ProtoReflect.Descriptor instead. +func (*GetLibrariesResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{9} +} + +func (x *GetLibrariesResponse) GetLibraries() []*Library { + if x != nil { + return x.Libraries + } + return nil +} + +type GetLibraryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` +} + +func (x *GetLibraryRequest) Reset() { + *x = GetLibraryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLibraryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLibraryRequest) ProtoMessage() {} + +func (x *GetLibraryRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetLibraryRequest.ProtoReflect.Descriptor instead. +func (*GetLibraryRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{10} +} + +func (x *GetLibraryRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +type GetLibraryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Playlists []*PlaylistMetadata `protobuf:"bytes,1,rep,name=playlists,proto3" json:"playlists,omitempty"` +} + +func (x *GetLibraryResponse) Reset() { + *x = GetLibraryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLibraryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLibraryResponse) ProtoMessage() {} + +func (x *GetLibraryResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetLibraryResponse.ProtoReflect.Descriptor instead. +func (*GetLibraryResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{11} +} + +func (x *GetLibraryResponse) GetPlaylists() []*PlaylistMetadata { + if x != nil { + return x.Playlists + } + return nil +} + +type GetTracksRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` + PlaylistId *string `protobuf:"bytes,2,opt,name=playlist_id,json=playlistId,proto3,oneof" json:"playlist_id,omitempty"` + PageSize *uint32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3,oneof" json:"page_size,omitempty"` + Sort []*Sort `protobuf:"bytes,4,rep,name=sort,proto3" json:"sort,omitempty"` + ListType *ListType `protobuf:"varint,5,opt,name=list_type,json=listType,proto3,enum=enginelibrary.v1.ListType,oneof" json:"list_type,omitempty"` + Filters []*SearchFilter `protobuf:"bytes,6,rep,name=filters,proto3" json:"filters,omitempty"` +} + +func (x *GetTracksRequest) Reset() { + *x = GetTracksRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTracksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTracksRequest) ProtoMessage() {} + +func (x *GetTracksRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetTracksRequest.ProtoReflect.Descriptor instead. +func (*GetTracksRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{12} +} + +func (x *GetTracksRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +func (x *GetTracksRequest) GetPlaylistId() string { + if x != nil && x.PlaylistId != nil { + return *x.PlaylistId + } + return "" +} + +func (x *GetTracksRequest) GetPageSize() uint32 { + if x != nil && x.PageSize != nil { + return *x.PageSize + } + return 0 +} + +func (x *GetTracksRequest) GetSort() []*Sort { + if x != nil { + return x.Sort + } + return nil +} + +func (x *GetTracksRequest) GetListType() ListType { + if x != nil && x.ListType != nil { + return *x.ListType + } + return ListType_LIST_TYPE_UNSPECIFIED +} + +func (x *GetTracksRequest) GetFilters() []*SearchFilter { + if x != nil { + return x.Filters + } + return nil +} + +type GetTracksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tracks []*ListTrack `protobuf:"bytes,1,rep,name=tracks,proto3" json:"tracks,omitempty"` +} + +func (x *GetTracksResponse) Reset() { + *x = GetTracksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTracksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTracksResponse) ProtoMessage() {} + +func (x *GetTracksResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetTracksResponse.ProtoReflect.Descriptor instead. +func (*GetTracksResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{13} +} + +func (x *GetTracksResponse) GetTracks() []*ListTrack { + if x != nil { + return x.Tracks + } + return nil +} + +type GetSearchFiltersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // TODO - oneof _query was generated here, idk why yet + Query *string `protobuf:"bytes,2,opt,name=query,proto3,oneof" json:"query,omitempty"` + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` + QueryFields []SearchQueryField `protobuf:"varint,3,rep,packed,name=query_fields,json=queryFields,proto3,enum=enginelibrary.v1.SearchQueryField" json:"query_fields,omitempty"` +} + +func (x *GetSearchFiltersRequest) Reset() { + *x = GetSearchFiltersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSearchFiltersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSearchFiltersRequest) ProtoMessage() {} + +func (x *GetSearchFiltersRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetSearchFiltersRequest.ProtoReflect.Descriptor instead. +func (*GetSearchFiltersRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{14} +} + +func (x *GetSearchFiltersRequest) GetQuery() string { + if x != nil && x.Query != nil { + return *x.Query + } + return "" +} + +func (x *GetSearchFiltersRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +func (x *GetSearchFiltersRequest) GetQueryFields() []SearchQueryField { + if x != nil { + return x.QueryFields + } + return nil +} + +type GetSearchFiltersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SearchFilters *SearchFilterOptions `protobuf:"bytes,1,opt,name=search_filters,json=searchFilters,proto3,oneof" json:"search_filters,omitempty"` +} + +func (x *GetSearchFiltersResponse) Reset() { + *x = GetSearchFiltersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSearchFiltersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSearchFiltersResponse) ProtoMessage() {} + +func (x *GetSearchFiltersResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetSearchFiltersResponse.ProtoReflect.Descriptor instead. +func (*GetSearchFiltersResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{15} +} + +func (x *GetSearchFiltersResponse) GetSearchFilters() *SearchFilterOptions { + if x != nil { + return x.SearchFilters + } + return nil +} + +type GetTrackRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` + TrackId *string `protobuf:"bytes,2,opt,name=track_id,json=trackId,proto3,oneof" json:"track_id,omitempty"` +} + +func (x *GetTrackRequest) Reset() { + *x = GetTrackRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTrackRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTrackRequest) ProtoMessage() {} + +func (x *GetTrackRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetTrackRequest.ProtoReflect.Descriptor instead. +func (*GetTrackRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{16} +} + +func (x *GetTrackRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +func (x *GetTrackRequest) GetTrackId() string { + if x != nil && x.TrackId != nil { + return *x.TrackId + } + return "" +} + +type GetTrackResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Blob *TrackBlob `protobuf:"bytes,1,opt,name=blob,proto3,oneof" json:"blob,omitempty"` + PerformanceData *TrackPerformanceData `protobuf:"bytes,2,opt,name=performance_data,json=performanceData,proto3,oneof" json:"performance_data,omitempty"` + Metadata *TrackMetadata `protobuf:"bytes,3,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` +} + +func (x *GetTrackResponse) Reset() { + *x = GetTrackResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTrackResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTrackResponse) ProtoMessage() {} + +func (x *GetTrackResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 GetTrackResponse.ProtoReflect.Descriptor instead. +func (*GetTrackResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{17} +} + +func (x *GetTrackResponse) GetBlob() *TrackBlob { + if x != nil { + return x.Blob + } + return nil +} + +func (x *GetTrackResponse) GetPerformanceData() *TrackPerformanceData { + if x != nil { + return x.PerformanceData + } + return nil +} + +func (x *GetTrackResponse) GetMetadata() *TrackMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +type PutEventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` + Events []*Event `protobuf:"bytes,2,rep,name=events,proto3" json:"events,omitempty"` +} + +func (x *PutEventsRequest) Reset() { + *x = PutEventsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutEventsRequest) ProtoMessage() {} + +func (x *PutEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 PutEventsRequest.ProtoReflect.Descriptor instead. +func (*PutEventsRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{18} +} + +func (x *PutEventsRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +func (x *PutEventsRequest) GetEvents() []*Event { + if x != nil { + return x.Events + } + return nil +} + +type PutEventsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LatestEventProcessed *uint64 `protobuf:"varint,1,opt,name=latest_event_processed,json=latestEventProcessed,proto3,oneof" json:"latest_event_processed,omitempty"` +} + +func (x *PutEventsResponse) Reset() { + *x = PutEventsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutEventsResponse) ProtoMessage() {} + +func (x *PutEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 PutEventsResponse.ProtoReflect.Descriptor instead. +func (*PutEventsResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{19} +} + +func (x *PutEventsResponse) GetLatestEventProcessed() uint64 { + if x != nil && x.LatestEventProcessed != nil { + return *x.LatestEventProcessed + } + return 0 +} + +type SearchFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Field *SearchFilterField `protobuf:"varint,1,opt,name=field,proto3,enum=enginelibrary.v1.SearchFilterField,oneof" json:"field,omitempty"` + Value []string `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"` +} + +func (x *SearchFilter) Reset() { + *x = SearchFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchFilter) ProtoMessage() {} + +func (x *SearchFilter) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_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 SearchFilter.ProtoReflect.Descriptor instead. +func (*SearchFilter) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{20} +} + +func (x *SearchFilter) GetField() SearchFilterField { + if x != nil && x.Field != nil { + return *x.Field + } + return SearchFilterField_SEARCH_FILTER_FIELD_UNSPECIFIED +} + +func (x *SearchFilter) GetValue() []string { + if x != nil { + return x.Value + } + return nil +} + +type SearchTracksRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LibraryId *string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3,oneof" json:"library_id,omitempty"` + // TODO - oneof _query was generated here, idk why yet + Query *string `protobuf:"bytes,2,opt,name=query,proto3,oneof" json:"query,omitempty"` + QueryFields []SearchQueryField `protobuf:"varint,3,rep,packed,name=query_fields,json=queryFields,proto3,enum=enginelibrary.v1.SearchQueryField" json:"query_fields,omitempty"` + Filters []*SearchFilter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"` + PageSize *uint32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3,oneof" json:"page_size,omitempty"` + Sort []*Sort `protobuf:"bytes,6,rep,name=sort,proto3" json:"sort,omitempty"` +} + +func (x *SearchTracksRequest) Reset() { + *x = SearchTracksRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchTracksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchTracksRequest) ProtoMessage() {} + +func (x *SearchTracksRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchTracksRequest.ProtoReflect.Descriptor instead. +func (*SearchTracksRequest) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{21} +} + +func (x *SearchTracksRequest) GetLibraryId() string { + if x != nil && x.LibraryId != nil { + return *x.LibraryId + } + return "" +} + +func (x *SearchTracksRequest) GetQuery() string { + if x != nil && x.Query != nil { + return *x.Query + } + return "" +} + +func (x *SearchTracksRequest) GetQueryFields() []SearchQueryField { + if x != nil { + return x.QueryFields + } + return nil +} + +func (x *SearchTracksRequest) GetFilters() []*SearchFilter { + if x != nil { + return x.Filters + } + return nil +} + +func (x *SearchTracksRequest) GetPageSize() uint32 { + if x != nil && x.PageSize != nil { + return *x.PageSize + } + return 0 +} + +func (x *SearchTracksRequest) GetSort() []*Sort { + if x != nil { + return x.Sort + } + return nil +} + +type SearchTracksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tracks []*ListTrack `protobuf:"bytes,1,rep,name=tracks,proto3" json:"tracks,omitempty"` +} + +func (x *SearchTracksResponse) Reset() { + *x = SearchTracksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchTracksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchTracksResponse) ProtoMessage() {} + +func (x *SearchTracksResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchTracksResponse.ProtoReflect.Descriptor instead. +func (*SearchTracksResponse) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{22} +} + +func (x *SearchTracksResponse) GetTracks() []*ListTrack { + if x != nil { + return x.Tracks + } + return nil +} + +type Sort struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Field *SortField `protobuf:"varint,1,opt,name=field,proto3,enum=enginelibrary.v1.SortField,oneof" json:"field,omitempty"` + Direction *SortDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=enginelibrary.v1.SortDirection,oneof" json:"direction,omitempty"` +} + +func (x *Sort) Reset() { + *x = Sort{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_enginelibrary_service_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Sort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Sort) ProtoMessage() {} + +func (x *Sort) ProtoReflect() protoreflect.Message { + mi := &file_proto_enginelibrary_service_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Sort.ProtoReflect.Descriptor instead. +func (*Sort) Descriptor() ([]byte, []int) { + return file_proto_enginelibrary_service_proto_rawDescGZIP(), []int{23} +} + +func (x *Sort) GetField() SortField { + if x != nil && x.Field != nil { + return *x.Field + } + return SortField_SORT_FIELD_UNSPECIFIED +} + +func (x *Sort) GetDirection() SortDirection { + if x != nil && x.Direction != nil { + return *x.Direction + } + return SortDirection_SORT_DIRECTION_UNSPECIFIED +} + +var File_proto_enginelibrary_service_proto protoreflect.FileDescriptor + +var file_proto_enginelibrary_service_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x77, 0x0a, 0x12, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x22, 0x44, 0x0a, 0x13, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xaa, 0x01, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x44, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, + 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x85, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x5e, 0x0a, + 0x1e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3c, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x4e, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x22, 0x5a, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x4f, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, + 0x73, 0x22, 0x46, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x40, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, + 0x73, 0x22, 0xdd, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x6c, + 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x3c, + 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1a, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, + 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x48, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, + 0x61, 0x63, 0x6b, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x17, + 0x47, 0x65, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x71, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, + 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x22, 0x8d, 0x02, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x34, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x42, 0x6c, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, + 0x62, 0x6c, 0x6f, 0x62, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x01, 0x52, 0x0f, 0x70, 0x65, 0x72, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, + 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x48, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x76, 0x0a, 0x10, + 0x50, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x5f, 0x69, 0x64, 0x22, 0x69, 0x0a, 0x11, 0x50, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x16, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x22, + 0x6e, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x3e, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, + 0xca, 0x02, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x38, 0x0a, + 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, 0x73, 0x6f, 0x72, + 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x52, + 0x04, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x4b, 0x0a, 0x14, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, + 0x6b, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x04, 0x53, 0x6f, + 0x72, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1b, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, + 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, + 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0xd0, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x23, 0x0a, 0x1f, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x4c, 0x54, + 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x45, 0x4e, 0x52, 0x45, 0x10, 0x01, + 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x53, 0x54, 0x10, 0x02, + 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x4c, 0x42, 0x55, 0x4d, 0x10, 0x03, 0x12, + 0x1b, 0x0a, 0x17, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x42, 0x50, 0x4d, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x05, 0x2a, 0xa5, 0x03, 0x0a, 0x10, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x22, + 0x0a, 0x1e, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, + 0x52, 0x59, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x01, + 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, + 0x1c, 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, + 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x4c, 0x42, 0x55, 0x4d, 0x10, 0x03, 0x12, 0x1d, 0x0a, + 0x19, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x45, 0x41, 0x52, + 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x43, + 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, + 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x42, + 0x50, 0x4d, 0x10, 0x07, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, + 0x55, 0x45, 0x52, 0x59, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x45, 0x4e, 0x52, 0x45, + 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, + 0x52, 0x59, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x09, + 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x59, 0x45, 0x41, 0x52, 0x10, 0x0a, 0x12, 0x21, 0x0a, + 0x1d, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x0b, + 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x10, + 0x0c, 0x2a, 0xd3, 0x02, 0x0a, 0x09, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, + 0x1a, 0x0a, 0x16, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53, + 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, + 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, + 0x41, 0x52, 0x54, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x4f, 0x52, 0x54, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x4c, 0x42, 0x55, 0x4d, 0x10, 0x03, 0x12, 0x12, + 0x0a, 0x0e, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x42, 0x50, 0x4d, + 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, + 0x5f, 0x47, 0x45, 0x4e, 0x52, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x52, 0x54, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x06, + 0x12, 0x14, 0x0a, 0x10, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, 0x08, 0x12, 0x12, 0x0a, + 0x0e, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4b, 0x45, 0x59, 0x10, + 0x09, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, + 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x4f, 0x52, 0x54, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x59, 0x45, 0x41, 0x52, 0x10, 0x0b, 0x12, 0x1d, 0x0a, + 0x19, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x52, 0x44, 0x45, + 0x52, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, + 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x45, 0x5f, + 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x0d, 0x2a, 0x60, 0x0a, 0x0d, 0x53, 0x6f, 0x72, 0x74, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x4f, 0x52, 0x54, + 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x52, 0x54, + 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, + 0x12, 0x17, 0x0a, 0x13, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, 0x32, 0xc6, 0x08, 0x0a, 0x14, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x12, 0x24, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, + 0x12, 0x27, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x12, 0x23, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x22, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x69, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x29, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2a, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x08, + 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x21, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x7b, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x2f, 0x2e, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, + 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, + 0x09, 0x50, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x22, 0x2e, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x73, 0x12, 0x25, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x69, 0x63, 0x65, 0x64, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x67, 0x6f, 0x2d, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x6c, 0x69, 0x6e, 0x71, 0x2f, 0x65, 0x61, 0x61, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_enginelibrary_service_proto_rawDescOnce sync.Once + file_proto_enginelibrary_service_proto_rawDescData = file_proto_enginelibrary_service_proto_rawDesc +) + +func file_proto_enginelibrary_service_proto_rawDescGZIP() []byte { + file_proto_enginelibrary_service_proto_rawDescOnce.Do(func() { + file_proto_enginelibrary_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_enginelibrary_service_proto_rawDescData) + }) + return file_proto_enginelibrary_service_proto_rawDescData +} + +var file_proto_enginelibrary_service_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_proto_enginelibrary_service_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_proto_enginelibrary_service_proto_goTypes = []interface{}{ + (SearchFilterField)(0), // 0: enginelibrary.v1.SearchFilterField + (SearchQueryField)(0), // 1: enginelibrary.v1.SearchQueryField + (SortField)(0), // 2: enginelibrary.v1.SortField + (SortDirection)(0), // 3: enginelibrary.v1.SortDirection + (*EventStreamRequest)(nil), // 4: enginelibrary.v1.EventStreamRequest + (*EventStreamResponse)(nil), // 5: enginelibrary.v1.EventStreamResponse + (*GetCredentialsRequest)(nil), // 6: enginelibrary.v1.GetCredentialsRequest + (*GetCredentialsResponse)(nil), // 7: enginelibrary.v1.GetCredentialsResponse + (*GetHistoryPlayedTracksRequest)(nil), // 8: enginelibrary.v1.GetHistoryPlayedTracksRequest + (*GetHistoryPlayedTracksResponse)(nil), // 9: enginelibrary.v1.GetHistoryPlayedTracksResponse + (*GetHistorySessionsRequest)(nil), // 10: enginelibrary.v1.GetHistorySessionsRequest + (*GetHistorySessionsResponse)(nil), // 11: enginelibrary.v1.GetHistorySessionsResponse + (*GetLibrariesRequest)(nil), // 12: enginelibrary.v1.GetLibrariesRequest + (*GetLibrariesResponse)(nil), // 13: enginelibrary.v1.GetLibrariesResponse + (*GetLibraryRequest)(nil), // 14: enginelibrary.v1.GetLibraryRequest + (*GetLibraryResponse)(nil), // 15: enginelibrary.v1.GetLibraryResponse + (*GetTracksRequest)(nil), // 16: enginelibrary.v1.GetTracksRequest + (*GetTracksResponse)(nil), // 17: enginelibrary.v1.GetTracksResponse + (*GetSearchFiltersRequest)(nil), // 18: enginelibrary.v1.GetSearchFiltersRequest + (*GetSearchFiltersResponse)(nil), // 19: enginelibrary.v1.GetSearchFiltersResponse + (*GetTrackRequest)(nil), // 20: enginelibrary.v1.GetTrackRequest + (*GetTrackResponse)(nil), // 21: enginelibrary.v1.GetTrackResponse + (*PutEventsRequest)(nil), // 22: enginelibrary.v1.PutEventsRequest + (*PutEventsResponse)(nil), // 23: enginelibrary.v1.PutEventsResponse + (*SearchFilter)(nil), // 24: enginelibrary.v1.SearchFilter + (*SearchTracksRequest)(nil), // 25: enginelibrary.v1.SearchTracksRequest + (*SearchTracksResponse)(nil), // 26: enginelibrary.v1.SearchTracksResponse + (*Sort)(nil), // 27: enginelibrary.v1.Sort + (*Event)(nil), // 28: enginelibrary.v1.Event + (BlobProviderType)(0), // 29: enginelibrary.v1.BlobProviderType + (*Credentials)(nil), // 30: enginelibrary.v1.Credentials + (*BlobProvider)(nil), // 31: enginelibrary.v1.BlobProvider + (*HistoryPlayedTrack)(nil), // 32: enginelibrary.v1.HistoryPlayedTrack + (*HistorySession)(nil), // 33: enginelibrary.v1.HistorySession + (*Library)(nil), // 34: enginelibrary.v1.Library + (*PlaylistMetadata)(nil), // 35: enginelibrary.v1.PlaylistMetadata + (ListType)(0), // 36: enginelibrary.v1.ListType + (*ListTrack)(nil), // 37: enginelibrary.v1.ListTrack + (*SearchFilterOptions)(nil), // 38: enginelibrary.v1.SearchFilterOptions + (*TrackBlob)(nil), // 39: enginelibrary.v1.TrackBlob + (*TrackPerformanceData)(nil), // 40: enginelibrary.v1.TrackPerformanceData + (*TrackMetadata)(nil), // 41: enginelibrary.v1.TrackMetadata +} +var file_proto_enginelibrary_service_proto_depIdxs = []int32{ + 28, // 0: enginelibrary.v1.EventStreamResponse.event:type_name -> enginelibrary.v1.Event + 29, // 1: enginelibrary.v1.GetCredentialsRequest.provider_type:type_name -> enginelibrary.v1.BlobProviderType + 30, // 2: enginelibrary.v1.GetCredentialsResponse.credentials:type_name -> enginelibrary.v1.Credentials + 31, // 3: enginelibrary.v1.GetCredentialsResponse.provider:type_name -> enginelibrary.v1.BlobProvider + 32, // 4: enginelibrary.v1.GetHistoryPlayedTracksResponse.tracks:type_name -> enginelibrary.v1.HistoryPlayedTrack + 33, // 5: enginelibrary.v1.GetHistorySessionsResponse.sessions:type_name -> enginelibrary.v1.HistorySession + 34, // 6: enginelibrary.v1.GetLibrariesResponse.libraries:type_name -> enginelibrary.v1.Library + 35, // 7: enginelibrary.v1.GetLibraryResponse.playlists:type_name -> enginelibrary.v1.PlaylistMetadata + 27, // 8: enginelibrary.v1.GetTracksRequest.sort:type_name -> enginelibrary.v1.Sort + 36, // 9: enginelibrary.v1.GetTracksRequest.list_type:type_name -> enginelibrary.v1.ListType + 24, // 10: enginelibrary.v1.GetTracksRequest.filters:type_name -> enginelibrary.v1.SearchFilter + 37, // 11: enginelibrary.v1.GetTracksResponse.tracks:type_name -> enginelibrary.v1.ListTrack + 1, // 12: enginelibrary.v1.GetSearchFiltersRequest.query_fields:type_name -> enginelibrary.v1.SearchQueryField + 38, // 13: enginelibrary.v1.GetSearchFiltersResponse.search_filters:type_name -> enginelibrary.v1.SearchFilterOptions + 39, // 14: enginelibrary.v1.GetTrackResponse.blob:type_name -> enginelibrary.v1.TrackBlob + 40, // 15: enginelibrary.v1.GetTrackResponse.performance_data:type_name -> enginelibrary.v1.TrackPerformanceData + 41, // 16: enginelibrary.v1.GetTrackResponse.metadata:type_name -> enginelibrary.v1.TrackMetadata + 28, // 17: enginelibrary.v1.PutEventsRequest.events:type_name -> enginelibrary.v1.Event + 0, // 18: enginelibrary.v1.SearchFilter.field:type_name -> enginelibrary.v1.SearchFilterField + 1, // 19: enginelibrary.v1.SearchTracksRequest.query_fields:type_name -> enginelibrary.v1.SearchQueryField + 24, // 20: enginelibrary.v1.SearchTracksRequest.filters:type_name -> enginelibrary.v1.SearchFilter + 27, // 21: enginelibrary.v1.SearchTracksRequest.sort:type_name -> enginelibrary.v1.Sort + 37, // 22: enginelibrary.v1.SearchTracksResponse.tracks:type_name -> enginelibrary.v1.ListTrack + 2, // 23: enginelibrary.v1.Sort.field:type_name -> enginelibrary.v1.SortField + 3, // 24: enginelibrary.v1.Sort.direction:type_name -> enginelibrary.v1.SortDirection + 4, // 25: enginelibrary.v1.EngineLibraryService.EventStream:input_type -> enginelibrary.v1.EventStreamRequest + 6, // 26: enginelibrary.v1.EngineLibraryService.GetCredentials:input_type -> enginelibrary.v1.GetCredentialsRequest + 12, // 27: enginelibrary.v1.EngineLibraryService.GetLibraries:input_type -> enginelibrary.v1.GetLibrariesRequest + 14, // 28: enginelibrary.v1.EngineLibraryService.GetLibrary:input_type -> enginelibrary.v1.GetLibraryRequest + 16, // 29: enginelibrary.v1.EngineLibraryService.GetTracks:input_type -> enginelibrary.v1.GetTracksRequest + 18, // 30: enginelibrary.v1.EngineLibraryService.GetSearchFilters:input_type -> enginelibrary.v1.GetSearchFiltersRequest + 20, // 31: enginelibrary.v1.EngineLibraryService.GetTrack:input_type -> enginelibrary.v1.GetTrackRequest + 8, // 32: enginelibrary.v1.EngineLibraryService.GetHistoryPlayedTracks:input_type -> enginelibrary.v1.GetHistoryPlayedTracksRequest + 10, // 33: enginelibrary.v1.EngineLibraryService.GetHistorySessions:input_type -> enginelibrary.v1.GetHistorySessionsRequest + 22, // 34: enginelibrary.v1.EngineLibraryService.PutEvents:input_type -> enginelibrary.v1.PutEventsRequest + 25, // 35: enginelibrary.v1.EngineLibraryService.SearchTracks:input_type -> enginelibrary.v1.SearchTracksRequest + 5, // 36: enginelibrary.v1.EngineLibraryService.EventStream:output_type -> enginelibrary.v1.EventStreamResponse + 7, // 37: enginelibrary.v1.EngineLibraryService.GetCredentials:output_type -> enginelibrary.v1.GetCredentialsResponse + 13, // 38: enginelibrary.v1.EngineLibraryService.GetLibraries:output_type -> enginelibrary.v1.GetLibrariesResponse + 15, // 39: enginelibrary.v1.EngineLibraryService.GetLibrary:output_type -> enginelibrary.v1.GetLibraryResponse + 17, // 40: enginelibrary.v1.EngineLibraryService.GetTracks:output_type -> enginelibrary.v1.GetTracksResponse + 19, // 41: enginelibrary.v1.EngineLibraryService.GetSearchFilters:output_type -> enginelibrary.v1.GetSearchFiltersResponse + 21, // 42: enginelibrary.v1.EngineLibraryService.GetTrack:output_type -> enginelibrary.v1.GetTrackResponse + 9, // 43: enginelibrary.v1.EngineLibraryService.GetHistoryPlayedTracks:output_type -> enginelibrary.v1.GetHistoryPlayedTracksResponse + 11, // 44: enginelibrary.v1.EngineLibraryService.GetHistorySessions:output_type -> enginelibrary.v1.GetHistorySessionsResponse + 23, // 45: enginelibrary.v1.EngineLibraryService.PutEvents:output_type -> enginelibrary.v1.PutEventsResponse + 26, // 46: enginelibrary.v1.EngineLibraryService.SearchTracks:output_type -> enginelibrary.v1.SearchTracksResponse + 36, // [36:47] is the sub-list for method output_type + 25, // [25:36] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name +} + +func init() { file_proto_enginelibrary_service_proto_init() } +func file_proto_enginelibrary_service_proto_init() { + if File_proto_enginelibrary_service_proto != nil { + return + } + file_proto_enginelibrary_events_proto_init() + file_proto_enginelibrary_library_proto_init() + if !protoimpl.UnsafeEnabled { + file_proto_enginelibrary_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventStreamResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCredentialsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCredentialsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistoryPlayedTracksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistoryPlayedTracksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistorySessionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistorySessionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLibrariesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLibrariesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLibraryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLibraryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTracksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTracksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSearchFiltersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSearchFiltersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTrackRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTrackResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PutEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PutEventsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchTracksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchTracksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_enginelibrary_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Sort); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_proto_enginelibrary_service_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[2].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[17].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_proto_enginelibrary_service_proto_msgTypes[23].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_enginelibrary_service_proto_rawDesc, + NumEnums: 4, + NumMessages: 24, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_proto_enginelibrary_service_proto_goTypes, + DependencyIndexes: file_proto_enginelibrary_service_proto_depIdxs, + EnumInfos: file_proto_enginelibrary_service_proto_enumTypes, + MessageInfos: file_proto_enginelibrary_service_proto_msgTypes, + }.Build() + File_proto_enginelibrary_service_proto = out.File + file_proto_enginelibrary_service_proto_rawDesc = nil + file_proto_enginelibrary_service_proto_goTypes = nil + file_proto_enginelibrary_service_proto_depIdxs = nil +} diff --git a/eaas/proto/enginelibrary/service.proto b/eaas/proto/enginelibrary/service.proto new file mode 100644 index 0000000..6bb468a --- /dev/null +++ b/eaas/proto/enginelibrary/service.proto @@ -0,0 +1,173 @@ +syntax = "proto3"; + +package enginelibrary.v1; + +option go_package = "github.com/icedream/go-stagelinq/eaas/proto/enginelibrary"; + +import "proto/enginelibrary/events.proto"; +import "proto/enginelibrary/library.proto"; + +enum SearchFilterField { + SEARCH_FILTER_FIELD_UNSPECIFIED = 0; + SEARCH_FILTER_FIELD_GENRE = 1; + SEARCH_FILTER_FIELD_ARTIST = 2; + SEARCH_FILTER_FIELD_ALBUM = 3; + SEARCH_FILTER_FIELD_BPM = 4; + SEARCH_FILTER_FIELD_KEY = 5; +} + +enum SearchQueryField { + SEARCH_QUERY_FIELD_UNSPECIFIED = 0; + SEARCH_QUERY_FIELD_TITLE = 1; + SEARCH_QUERY_FIELD_ARTIST = 2; + SEARCH_QUERY_FIELD_ALBUM = 3; + SEARCH_QUERY_FIELD_LENGTH = 4; + SEARCH_QUERY_FIELD_KEY = 5; + SEARCH_QUERY_FIELD_COMMENT = 6; + SEARCH_QUERY_FIELD_BPM = 7; + SEARCH_QUERY_FIELD_GENRE = 8; + SEARCH_QUERY_FIELD_LABEL = 9; + SEARCH_QUERY_FIELD_YEAR = 10; + SEARCH_QUERY_FIELD_DATE_ADDED = 11; + SEARCH_QUERY_FIELD_FILENAME = 12; +} + +enum SortField { + SORT_FIELD_UNSPECIFIED = 0; + SORT_FIELD_TITLE = 1; + SORT_FIELD_ARTIST = 2; + SORT_FIELD_ALBUM = 3; + SORT_FIELD_BPM = 4; + SORT_FIELD_GENRE = 5; + SORT_FIELD_COMMENT = 6; + SORT_FIELD_LABEL = 7; + SORT_FIELD_LENGTH = 8; + SORT_FIELD_KEY = 9; + SORT_FIELD_RATING = 10; + SORT_FIELD_YEAR = 11; + SORT_FIELD_ORDER_PLAYLIST = 12; + SORT_FIELD_DATE_ADDED = 13; +} + +enum SortDirection { + SORT_DIRECTION_UNSPECIFIED = 0; + SORT_DIRECTION_ASC = 1; + SORT_DIRECTION_DESC = 2; +} + +message EventStreamRequest { + optional string library_id = 2; + optional string device_id = 3; +} + +message EventStreamResponse { repeated Event event = 1; } + +message GetCredentialsRequest { + optional string library_id = 1; + optional BlobProviderType provider_type = 2; +} + +message GetCredentialsResponse { + optional Credentials credentials = 1; + optional BlobProvider provider = 2; +} + +message GetHistoryPlayedTracksRequest { + optional string library_id = 1; + optional string session_id = 2; +} + +message GetHistoryPlayedTracksResponse { + repeated HistoryPlayedTrack tracks = 1; +} + +message GetHistorySessionsRequest { optional string library_id = 1; } + +message GetHistorySessionsResponse { repeated HistorySession sessions = 1; } + +message GetLibrariesRequest {} + +message GetLibrariesResponse { repeated Library libraries = 1; } + +message GetLibraryRequest { optional string library_id = 1; } + +message GetLibraryResponse { repeated PlaylistMetadata playlists = 1; } + +message GetTracksRequest { + optional string library_id = 1; + optional string playlist_id = 2; + optional uint32 page_size = 3; + repeated Sort sort = 4; + optional ListType list_type = 5; + repeated SearchFilter filters = 6; +} + +message GetTracksResponse { repeated ListTrack tracks = 1; } + +message GetSearchFiltersRequest { + // TODO - oneof _query was generated here, idk why yet + optional string query = 2; + optional string library_id = 1; + repeated SearchQueryField query_fields = 3; +} + +message GetSearchFiltersResponse { + optional SearchFilterOptions search_filters = 1; +} + +message GetTrackRequest { + optional string library_id = 1; + optional string track_id = 2; +} + +message GetTrackResponse { + optional TrackBlob blob = 1; + optional TrackPerformanceData performance_data = 2; + optional TrackMetadata metadata = 3; +} + +message PutEventsRequest { + optional string library_id = 1; + repeated Event events = 2; +} + +message PutEventsResponse { optional uint64 latest_event_processed = 1; } + +message SearchFilter { + optional SearchFilterField field = 1; + repeated string value = 2; +} + +message SearchTracksRequest { + optional string library_id = 1; + // TODO - oneof _query was generated here, idk why yet + optional string query = 2; + repeated SearchQueryField query_fields = 3; + repeated SearchFilter filters = 4; + optional uint32 page_size = 5; + repeated Sort sort = 6; +} + +message SearchTracksResponse { repeated ListTrack tracks = 1; } + +message Sort { + optional SortField field = 1; + optional SortDirection direction = 2; +} + +service EngineLibraryService { + rpc EventStream(EventStreamRequest) returns (EventStreamResponse); + rpc GetCredentials(GetCredentialsRequest) returns (GetCredentialsResponse); + rpc GetLibraries(GetLibrariesRequest) returns (GetLibrariesResponse); + rpc GetLibrary(GetLibraryRequest) returns (GetLibraryResponse); + rpc GetTracks(GetTracksRequest) returns (GetTracksResponse); + rpc GetSearchFilters(GetSearchFiltersRequest) + returns (GetSearchFiltersResponse); + rpc GetTrack(GetTrackRequest) returns (GetTrackResponse); + rpc GetHistoryPlayedTracks(GetHistoryPlayedTracksRequest) + returns (GetHistoryPlayedTracksResponse); + rpc GetHistorySessions(GetHistorySessionsRequest) + returns (GetHistorySessionsResponse); + rpc PutEvents(PutEventsRequest) returns (PutEventsResponse); + rpc SearchTracks(SearchTracksRequest) returns (SearchTracksResponse); +} diff --git a/eaas/proto/enginelibrary/service_grpc.pb.go b/eaas/proto/enginelibrary/service_grpc.pb.go new file mode 100644 index 0000000..731258b --- /dev/null +++ b/eaas/proto/enginelibrary/service_grpc.pb.go @@ -0,0 +1,479 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) +// source: proto/enginelibrary/service.proto + +package enginelibrary + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + EngineLibraryService_EventStream_FullMethodName = "/enginelibrary.v1.EngineLibraryService/EventStream" + EngineLibraryService_GetCredentials_FullMethodName = "/enginelibrary.v1.EngineLibraryService/GetCredentials" + EngineLibraryService_GetLibraries_FullMethodName = "/enginelibrary.v1.EngineLibraryService/GetLibraries" + EngineLibraryService_GetLibrary_FullMethodName = "/enginelibrary.v1.EngineLibraryService/GetLibrary" + EngineLibraryService_GetTracks_FullMethodName = "/enginelibrary.v1.EngineLibraryService/GetTracks" + EngineLibraryService_GetSearchFilters_FullMethodName = "/enginelibrary.v1.EngineLibraryService/GetSearchFilters" + EngineLibraryService_GetTrack_FullMethodName = "/enginelibrary.v1.EngineLibraryService/GetTrack" + EngineLibraryService_GetHistoryPlayedTracks_FullMethodName = "/enginelibrary.v1.EngineLibraryService/GetHistoryPlayedTracks" + EngineLibraryService_GetHistorySessions_FullMethodName = "/enginelibrary.v1.EngineLibraryService/GetHistorySessions" + EngineLibraryService_PutEvents_FullMethodName = "/enginelibrary.v1.EngineLibraryService/PutEvents" + EngineLibraryService_SearchTracks_FullMethodName = "/enginelibrary.v1.EngineLibraryService/SearchTracks" +) + +// EngineLibraryServiceClient is the client API for EngineLibraryService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type EngineLibraryServiceClient interface { + EventStream(ctx context.Context, in *EventStreamRequest, opts ...grpc.CallOption) (*EventStreamResponse, error) + GetCredentials(ctx context.Context, in *GetCredentialsRequest, opts ...grpc.CallOption) (*GetCredentialsResponse, error) + GetLibraries(ctx context.Context, in *GetLibrariesRequest, opts ...grpc.CallOption) (*GetLibrariesResponse, error) + GetLibrary(ctx context.Context, in *GetLibraryRequest, opts ...grpc.CallOption) (*GetLibraryResponse, error) + GetTracks(ctx context.Context, in *GetTracksRequest, opts ...grpc.CallOption) (*GetTracksResponse, error) + GetSearchFilters(ctx context.Context, in *GetSearchFiltersRequest, opts ...grpc.CallOption) (*GetSearchFiltersResponse, error) + GetTrack(ctx context.Context, in *GetTrackRequest, opts ...grpc.CallOption) (*GetTrackResponse, error) + GetHistoryPlayedTracks(ctx context.Context, in *GetHistoryPlayedTracksRequest, opts ...grpc.CallOption) (*GetHistoryPlayedTracksResponse, error) + GetHistorySessions(ctx context.Context, in *GetHistorySessionsRequest, opts ...grpc.CallOption) (*GetHistorySessionsResponse, error) + PutEvents(ctx context.Context, in *PutEventsRequest, opts ...grpc.CallOption) (*PutEventsResponse, error) + SearchTracks(ctx context.Context, in *SearchTracksRequest, opts ...grpc.CallOption) (*SearchTracksResponse, error) +} + +type engineLibraryServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewEngineLibraryServiceClient(cc grpc.ClientConnInterface) EngineLibraryServiceClient { + return &engineLibraryServiceClient{cc} +} + +func (c *engineLibraryServiceClient) EventStream(ctx context.Context, in *EventStreamRequest, opts ...grpc.CallOption) (*EventStreamResponse, error) { + out := new(EventStreamResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_EventStream_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) GetCredentials(ctx context.Context, in *GetCredentialsRequest, opts ...grpc.CallOption) (*GetCredentialsResponse, error) { + out := new(GetCredentialsResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_GetCredentials_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) GetLibraries(ctx context.Context, in *GetLibrariesRequest, opts ...grpc.CallOption) (*GetLibrariesResponse, error) { + out := new(GetLibrariesResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_GetLibraries_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) GetLibrary(ctx context.Context, in *GetLibraryRequest, opts ...grpc.CallOption) (*GetLibraryResponse, error) { + out := new(GetLibraryResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_GetLibrary_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) GetTracks(ctx context.Context, in *GetTracksRequest, opts ...grpc.CallOption) (*GetTracksResponse, error) { + out := new(GetTracksResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_GetTracks_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) GetSearchFilters(ctx context.Context, in *GetSearchFiltersRequest, opts ...grpc.CallOption) (*GetSearchFiltersResponse, error) { + out := new(GetSearchFiltersResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_GetSearchFilters_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) GetTrack(ctx context.Context, in *GetTrackRequest, opts ...grpc.CallOption) (*GetTrackResponse, error) { + out := new(GetTrackResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_GetTrack_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) GetHistoryPlayedTracks(ctx context.Context, in *GetHistoryPlayedTracksRequest, opts ...grpc.CallOption) (*GetHistoryPlayedTracksResponse, error) { + out := new(GetHistoryPlayedTracksResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_GetHistoryPlayedTracks_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) GetHistorySessions(ctx context.Context, in *GetHistorySessionsRequest, opts ...grpc.CallOption) (*GetHistorySessionsResponse, error) { + out := new(GetHistorySessionsResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_GetHistorySessions_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) PutEvents(ctx context.Context, in *PutEventsRequest, opts ...grpc.CallOption) (*PutEventsResponse, error) { + out := new(PutEventsResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_PutEvents_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineLibraryServiceClient) SearchTracks(ctx context.Context, in *SearchTracksRequest, opts ...grpc.CallOption) (*SearchTracksResponse, error) { + out := new(SearchTracksResponse) + err := c.cc.Invoke(ctx, EngineLibraryService_SearchTracks_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// EngineLibraryServiceServer is the server API for EngineLibraryService service. +// All implementations must embed UnimplementedEngineLibraryServiceServer +// for forward compatibility +type EngineLibraryServiceServer interface { + EventStream(context.Context, *EventStreamRequest) (*EventStreamResponse, error) + GetCredentials(context.Context, *GetCredentialsRequest) (*GetCredentialsResponse, error) + GetLibraries(context.Context, *GetLibrariesRequest) (*GetLibrariesResponse, error) + GetLibrary(context.Context, *GetLibraryRequest) (*GetLibraryResponse, error) + GetTracks(context.Context, *GetTracksRequest) (*GetTracksResponse, error) + GetSearchFilters(context.Context, *GetSearchFiltersRequest) (*GetSearchFiltersResponse, error) + GetTrack(context.Context, *GetTrackRequest) (*GetTrackResponse, error) + GetHistoryPlayedTracks(context.Context, *GetHistoryPlayedTracksRequest) (*GetHistoryPlayedTracksResponse, error) + GetHistorySessions(context.Context, *GetHistorySessionsRequest) (*GetHistorySessionsResponse, error) + PutEvents(context.Context, *PutEventsRequest) (*PutEventsResponse, error) + SearchTracks(context.Context, *SearchTracksRequest) (*SearchTracksResponse, error) + mustEmbedUnimplementedEngineLibraryServiceServer() +} + +// UnimplementedEngineLibraryServiceServer must be embedded to have forward compatible implementations. +type UnimplementedEngineLibraryServiceServer struct { +} + +func (UnimplementedEngineLibraryServiceServer) EventStream(context.Context, *EventStreamRequest) (*EventStreamResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EventStream not implemented") +} +func (UnimplementedEngineLibraryServiceServer) GetCredentials(context.Context, *GetCredentialsRequest) (*GetCredentialsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCredentials not implemented") +} +func (UnimplementedEngineLibraryServiceServer) GetLibraries(context.Context, *GetLibrariesRequest) (*GetLibrariesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLibraries not implemented") +} +func (UnimplementedEngineLibraryServiceServer) GetLibrary(context.Context, *GetLibraryRequest) (*GetLibraryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLibrary not implemented") +} +func (UnimplementedEngineLibraryServiceServer) GetTracks(context.Context, *GetTracksRequest) (*GetTracksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTracks not implemented") +} +func (UnimplementedEngineLibraryServiceServer) GetSearchFilters(context.Context, *GetSearchFiltersRequest) (*GetSearchFiltersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSearchFilters not implemented") +} +func (UnimplementedEngineLibraryServiceServer) GetTrack(context.Context, *GetTrackRequest) (*GetTrackResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTrack not implemented") +} +func (UnimplementedEngineLibraryServiceServer) GetHistoryPlayedTracks(context.Context, *GetHistoryPlayedTracksRequest) (*GetHistoryPlayedTracksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHistoryPlayedTracks not implemented") +} +func (UnimplementedEngineLibraryServiceServer) GetHistorySessions(context.Context, *GetHistorySessionsRequest) (*GetHistorySessionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHistorySessions not implemented") +} +func (UnimplementedEngineLibraryServiceServer) PutEvents(context.Context, *PutEventsRequest) (*PutEventsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PutEvents not implemented") +} +func (UnimplementedEngineLibraryServiceServer) SearchTracks(context.Context, *SearchTracksRequest) (*SearchTracksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchTracks not implemented") +} +func (UnimplementedEngineLibraryServiceServer) mustEmbedUnimplementedEngineLibraryServiceServer() {} + +// UnsafeEngineLibraryServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to EngineLibraryServiceServer will +// result in compilation errors. +type UnsafeEngineLibraryServiceServer interface { + mustEmbedUnimplementedEngineLibraryServiceServer() +} + +func RegisterEngineLibraryServiceServer(s grpc.ServiceRegistrar, srv EngineLibraryServiceServer) { + s.RegisterService(&EngineLibraryService_ServiceDesc, srv) +} + +func _EngineLibraryService_EventStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EventStreamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).EventStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_EventStream_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).EventStream(ctx, req.(*EventStreamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_GetCredentials_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCredentialsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).GetCredentials(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_GetCredentials_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).GetCredentials(ctx, req.(*GetCredentialsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_GetLibraries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLibrariesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).GetLibraries(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_GetLibraries_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).GetLibraries(ctx, req.(*GetLibrariesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_GetLibrary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLibraryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).GetLibrary(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_GetLibrary_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).GetLibrary(ctx, req.(*GetLibraryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_GetTracks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTracksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).GetTracks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_GetTracks_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).GetTracks(ctx, req.(*GetTracksRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_GetSearchFilters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSearchFiltersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).GetSearchFilters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_GetSearchFilters_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).GetSearchFilters(ctx, req.(*GetSearchFiltersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_GetTrack_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTrackRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).GetTrack(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_GetTrack_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).GetTrack(ctx, req.(*GetTrackRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_GetHistoryPlayedTracks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetHistoryPlayedTracksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).GetHistoryPlayedTracks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_GetHistoryPlayedTracks_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).GetHistoryPlayedTracks(ctx, req.(*GetHistoryPlayedTracksRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_GetHistorySessions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetHistorySessionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).GetHistorySessions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_GetHistorySessions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).GetHistorySessions(ctx, req.(*GetHistorySessionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_PutEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PutEventsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).PutEvents(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_PutEvents_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).PutEvents(ctx, req.(*PutEventsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineLibraryService_SearchTracks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchTracksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineLibraryServiceServer).SearchTracks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EngineLibraryService_SearchTracks_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineLibraryServiceServer).SearchTracks(ctx, req.(*SearchTracksRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// EngineLibraryService_ServiceDesc is the grpc.ServiceDesc for EngineLibraryService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var EngineLibraryService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "enginelibrary.v1.EngineLibraryService", + HandlerType: (*EngineLibraryServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "EventStream", + Handler: _EngineLibraryService_EventStream_Handler, + }, + { + MethodName: "GetCredentials", + Handler: _EngineLibraryService_GetCredentials_Handler, + }, + { + MethodName: "GetLibraries", + Handler: _EngineLibraryService_GetLibraries_Handler, + }, + { + MethodName: "GetLibrary", + Handler: _EngineLibraryService_GetLibrary_Handler, + }, + { + MethodName: "GetTracks", + Handler: _EngineLibraryService_GetTracks_Handler, + }, + { + MethodName: "GetSearchFilters", + Handler: _EngineLibraryService_GetSearchFilters_Handler, + }, + { + MethodName: "GetTrack", + Handler: _EngineLibraryService_GetTrack_Handler, + }, + { + MethodName: "GetHistoryPlayedTracks", + Handler: _EngineLibraryService_GetHistoryPlayedTracks_Handler, + }, + { + MethodName: "GetHistorySessions", + Handler: _EngineLibraryService_GetHistorySessions_Handler, + }, + { + MethodName: "PutEvents", + Handler: _EngineLibraryService_PutEvents_Handler, + }, + { + MethodName: "SearchTracks", + Handler: _EngineLibraryService_SearchTracks_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "proto/enginelibrary/service.proto", +} diff --git a/eaas/proto/networktrust/service.pb.go b/eaas/proto/networktrust/service.pb.go new file mode 100644 index 0000000..f4a075e --- /dev/null +++ b/eaas/proto/networktrust/service.pb.go @@ -0,0 +1,547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/networktrust/service.proto + +package networktrust + +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 CreateTrustBusyReason int32 + +const ( + CreateTrustBusyReason_CREATE_TRUST_BUSY_REASON_UNSPECIFIED CreateTrustBusyReason = 0 + CreateTrustBusyReason_CREATE_TRUST_BUSY_REASON_TOO_MANY_ATTEMPTS CreateTrustBusyReason = 1 + CreateTrustBusyReason_CREATE_TRUST_BUSY_REASON_HANDLING_ANOTHER_REQUEST CreateTrustBusyReason = 2 +) + +// Enum value maps for CreateTrustBusyReason. +var ( + CreateTrustBusyReason_name = map[int32]string{ + 0: "CREATE_TRUST_BUSY_REASON_UNSPECIFIED", + 1: "CREATE_TRUST_BUSY_REASON_TOO_MANY_ATTEMPTS", + 2: "CREATE_TRUST_BUSY_REASON_HANDLING_ANOTHER_REQUEST", + } + CreateTrustBusyReason_value = map[string]int32{ + "CREATE_TRUST_BUSY_REASON_UNSPECIFIED": 0, + "CREATE_TRUST_BUSY_REASON_TOO_MANY_ATTEMPTS": 1, + "CREATE_TRUST_BUSY_REASON_HANDLING_ANOTHER_REQUEST": 2, + } +) + +func (x CreateTrustBusyReason) Enum() *CreateTrustBusyReason { + p := new(CreateTrustBusyReason) + *p = x + return p +} + +func (x CreateTrustBusyReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CreateTrustBusyReason) Descriptor() protoreflect.EnumDescriptor { + return file_proto_networktrust_service_proto_enumTypes[0].Descriptor() +} + +func (CreateTrustBusyReason) Type() protoreflect.EnumType { + return &file_proto_networktrust_service_proto_enumTypes[0] +} + +func (x CreateTrustBusyReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CreateTrustBusyReason.Descriptor instead. +func (CreateTrustBusyReason) EnumDescriptor() ([]byte, []int) { + return file_proto_networktrust_service_proto_rawDescGZIP(), []int{0} +} + +type CreateTrustRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ed25519Pk *string `protobuf:"bytes,1,opt,name=ed25519_pk,json=ed25519Pk,proto3,oneof" json:"ed25519_pk,omitempty"` + WireguardPort *uint32 `protobuf:"varint,2,opt,name=wireguard_port,json=wireguardPort,proto3,oneof" json:"wireguard_port,omitempty"` + DeviceName *string `protobuf:"bytes,3,opt,name=device_name,json=deviceName,proto3,oneof" json:"device_name,omitempty"` +} + +func (x *CreateTrustRequest) Reset() { + *x = CreateTrustRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_networktrust_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTrustRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTrustRequest) ProtoMessage() {} + +func (x *CreateTrustRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_networktrust_service_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 CreateTrustRequest.ProtoReflect.Descriptor instead. +func (*CreateTrustRequest) Descriptor() ([]byte, []int) { + return file_proto_networktrust_service_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateTrustRequest) GetEd25519Pk() string { + if x != nil && x.Ed25519Pk != nil { + return *x.Ed25519Pk + } + return "" +} + +func (x *CreateTrustRequest) GetWireguardPort() uint32 { + if x != nil && x.WireguardPort != nil { + return *x.WireguardPort + } + return 0 +} + +func (x *CreateTrustRequest) GetDeviceName() string { + if x != nil && x.DeviceName != nil { + return *x.DeviceName + } + return "" +} + +type CreateTrustResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Response: + // + // *CreateTrustResponse_Granted + // *CreateTrustResponse_Denied + // *CreateTrustResponse_Busy + Response isCreateTrustResponse_Response `protobuf_oneof:"response"` +} + +func (x *CreateTrustResponse) Reset() { + *x = CreateTrustResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_networktrust_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTrustResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTrustResponse) ProtoMessage() {} + +func (x *CreateTrustResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_networktrust_service_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 CreateTrustResponse.ProtoReflect.Descriptor instead. +func (*CreateTrustResponse) Descriptor() ([]byte, []int) { + return file_proto_networktrust_service_proto_rawDescGZIP(), []int{1} +} + +func (m *CreateTrustResponse) GetResponse() isCreateTrustResponse_Response { + if m != nil { + return m.Response + } + return nil +} + +func (x *CreateTrustResponse) GetGranted() *CreateTrustGranted { + if x, ok := x.GetResponse().(*CreateTrustResponse_Granted); ok { + return x.Granted + } + return nil +} + +func (x *CreateTrustResponse) GetDenied() *CreateTrustDenied { + if x, ok := x.GetResponse().(*CreateTrustResponse_Denied); ok { + return x.Denied + } + return nil +} + +func (x *CreateTrustResponse) GetBusy() *CreateTrustBusy { + if x, ok := x.GetResponse().(*CreateTrustResponse_Busy); ok { + return x.Busy + } + return nil +} + +type isCreateTrustResponse_Response interface { + isCreateTrustResponse_Response() +} + +type CreateTrustResponse_Granted struct { + Granted *CreateTrustGranted `protobuf:"bytes,1,opt,name=granted,proto3,oneof"` +} + +type CreateTrustResponse_Denied struct { + Denied *CreateTrustDenied `protobuf:"bytes,2,opt,name=denied,proto3,oneof"` +} + +type CreateTrustResponse_Busy struct { + Busy *CreateTrustBusy `protobuf:"bytes,3,opt,name=busy,proto3,oneof"` +} + +func (*CreateTrustResponse_Granted) isCreateTrustResponse_Response() {} + +func (*CreateTrustResponse_Denied) isCreateTrustResponse_Response() {} + +func (*CreateTrustResponse_Busy) isCreateTrustResponse_Response() {} + +type CreateTrustBusy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reason *CreateTrustBusyReason `protobuf:"varint,1,opt,name=reason,proto3,enum=networktrust.v1.CreateTrustBusyReason,oneof" json:"reason,omitempty"` +} + +func (x *CreateTrustBusy) Reset() { + *x = CreateTrustBusy{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_networktrust_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTrustBusy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTrustBusy) ProtoMessage() {} + +func (x *CreateTrustBusy) ProtoReflect() protoreflect.Message { + mi := &file_proto_networktrust_service_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 CreateTrustBusy.ProtoReflect.Descriptor instead. +func (*CreateTrustBusy) Descriptor() ([]byte, []int) { + return file_proto_networktrust_service_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateTrustBusy) GetReason() CreateTrustBusyReason { + if x != nil && x.Reason != nil { + return *x.Reason + } + return CreateTrustBusyReason_CREATE_TRUST_BUSY_REASON_UNSPECIFIED +} + +type CreateTrustDenied struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateTrustDenied) Reset() { + *x = CreateTrustDenied{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_networktrust_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTrustDenied) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTrustDenied) ProtoMessage() {} + +func (x *CreateTrustDenied) ProtoReflect() protoreflect.Message { + mi := &file_proto_networktrust_service_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 CreateTrustDenied.ProtoReflect.Descriptor instead. +func (*CreateTrustDenied) Descriptor() ([]byte, []int) { + return file_proto_networktrust_service_proto_rawDescGZIP(), []int{3} +} + +type CreateTrustGranted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateTrustGranted) Reset() { + *x = CreateTrustGranted{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_networktrust_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTrustGranted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTrustGranted) ProtoMessage() {} + +func (x *CreateTrustGranted) ProtoReflect() protoreflect.Message { + mi := &file_proto_networktrust_service_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 CreateTrustGranted.ProtoReflect.Descriptor instead. +func (*CreateTrustGranted) Descriptor() ([]byte, []int) { + return file_proto_networktrust_service_proto_rawDescGZIP(), []int{4} +} + +var File_proto_networktrust_service_proto protoreflect.FileDescriptor + +var file_proto_networktrust_service_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x74, + 0x72, 0x75, 0x73, 0x74, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x74, 0x72, 0x75, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x22, 0xbc, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, + 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x64, + 0x32, 0x35, 0x35, 0x31, 0x39, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x09, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x50, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0e, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, + 0x61, 0x72, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x5f, 0x70, 0x6b, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, + 0x48, 0x00, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x64, + 0x65, 0x6e, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x48, + 0x00, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x75, 0x73, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x73, 0x79, 0x48, 0x00, 0x52, 0x04, 0x62, 0x75, 0x73, + 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, + 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x73, 0x79, + 0x12, 0x43, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, + 0x73, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x22, 0x13, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x44, + 0x65, 0x6e, 0x69, 0x65, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x72, 0x75, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x2a, 0xa8, 0x01, 0x0a, 0x15, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x73, 0x79, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, + 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x42, 0x55, 0x53, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x2e, 0x0a, 0x2a, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, + 0x42, 0x55, 0x53, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, + 0x4d, 0x41, 0x4e, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x4d, 0x50, 0x54, 0x53, 0x10, 0x01, 0x12, + 0x35, 0x0a, 0x31, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, + 0x42, 0x55, 0x53, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x48, 0x41, 0x4e, 0x44, + 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x51, + 0x55, 0x45, 0x53, 0x54, 0x10, 0x02, 0x32, 0x6f, 0x0a, 0x13, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x54, 0x72, 0x75, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x58, 0x0a, + 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x74, 0x72, 0x75, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x63, 0x65, 0x64, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x67, + 0x6f, 0x2d, 0x73, 0x74, 0x61, 0x67, 0x65, 0x6c, 0x69, 0x6e, 0x71, 0x2f, 0x65, 0x61, 0x61, 0x73, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x74, 0x72, + 0x75, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_networktrust_service_proto_rawDescOnce sync.Once + file_proto_networktrust_service_proto_rawDescData = file_proto_networktrust_service_proto_rawDesc +) + +func file_proto_networktrust_service_proto_rawDescGZIP() []byte { + file_proto_networktrust_service_proto_rawDescOnce.Do(func() { + file_proto_networktrust_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_networktrust_service_proto_rawDescData) + }) + return file_proto_networktrust_service_proto_rawDescData +} + +var file_proto_networktrust_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_proto_networktrust_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_proto_networktrust_service_proto_goTypes = []interface{}{ + (CreateTrustBusyReason)(0), // 0: networktrust.v1.CreateTrustBusyReason + (*CreateTrustRequest)(nil), // 1: networktrust.v1.CreateTrustRequest + (*CreateTrustResponse)(nil), // 2: networktrust.v1.CreateTrustResponse + (*CreateTrustBusy)(nil), // 3: networktrust.v1.CreateTrustBusy + (*CreateTrustDenied)(nil), // 4: networktrust.v1.CreateTrustDenied + (*CreateTrustGranted)(nil), // 5: networktrust.v1.CreateTrustGranted +} +var file_proto_networktrust_service_proto_depIdxs = []int32{ + 5, // 0: networktrust.v1.CreateTrustResponse.granted:type_name -> networktrust.v1.CreateTrustGranted + 4, // 1: networktrust.v1.CreateTrustResponse.denied:type_name -> networktrust.v1.CreateTrustDenied + 3, // 2: networktrust.v1.CreateTrustResponse.busy:type_name -> networktrust.v1.CreateTrustBusy + 0, // 3: networktrust.v1.CreateTrustBusy.reason:type_name -> networktrust.v1.CreateTrustBusyReason + 1, // 4: networktrust.v1.NetworkTrustService.CreateTrust:input_type -> networktrust.v1.CreateTrustRequest + 2, // 5: networktrust.v1.NetworkTrustService.CreateTrust:output_type -> networktrust.v1.CreateTrustResponse + 5, // [5:6] is the sub-list for method output_type + 4, // [4:5] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_proto_networktrust_service_proto_init() } +func file_proto_networktrust_service_proto_init() { + if File_proto_networktrust_service_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_networktrust_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTrustRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_networktrust_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTrustResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_networktrust_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTrustBusy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_networktrust_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTrustDenied); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_networktrust_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTrustGranted); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_proto_networktrust_service_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_proto_networktrust_service_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*CreateTrustResponse_Granted)(nil), + (*CreateTrustResponse_Denied)(nil), + (*CreateTrustResponse_Busy)(nil), + } + file_proto_networktrust_service_proto_msgTypes[2].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_networktrust_service_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_proto_networktrust_service_proto_goTypes, + DependencyIndexes: file_proto_networktrust_service_proto_depIdxs, + EnumInfos: file_proto_networktrust_service_proto_enumTypes, + MessageInfos: file_proto_networktrust_service_proto_msgTypes, + }.Build() + File_proto_networktrust_service_proto = out.File + file_proto_networktrust_service_proto_rawDesc = nil + file_proto_networktrust_service_proto_goTypes = nil + file_proto_networktrust_service_proto_depIdxs = nil +} diff --git a/eaas/proto/networktrust/service.proto b/eaas/proto/networktrust/service.proto new file mode 100644 index 0000000..f6db0bc --- /dev/null +++ b/eaas/proto/networktrust/service.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; + +package networktrust.v1; + +option go_package = "github.com/icedream/go-stagelinq/eaas/proto/networktrust"; + +enum CreateTrustBusyReason { + CREATE_TRUST_BUSY_REASON_UNSPECIFIED = 0; + CREATE_TRUST_BUSY_REASON_TOO_MANY_ATTEMPTS = 1; + CREATE_TRUST_BUSY_REASON_HANDLING_ANOTHER_REQUEST = 2; +} + +message CreateTrustRequest { + optional string ed25519_pk = 1; + optional uint32 wireguard_port = 2; + optional string device_name = 3; +} + +message CreateTrustResponse { + oneof response { + CreateTrustGranted granted = 1; + CreateTrustDenied denied = 2; + CreateTrustBusy busy = 3; + } +} + +message CreateTrustBusy { optional CreateTrustBusyReason reason = 1; } + +message CreateTrustDenied {} + +message CreateTrustGranted {} + +service NetworkTrustService { + rpc CreateTrust(CreateTrustRequest) returns (CreateTrustResponse); +} diff --git a/eaas/proto/networktrust/service_grpc.pb.go b/eaas/proto/networktrust/service_grpc.pb.go new file mode 100644 index 0000000..60912d1 --- /dev/null +++ b/eaas/proto/networktrust/service_grpc.pb.go @@ -0,0 +1,109 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) +// source: proto/networktrust/service.proto + +package networktrust + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + NetworkTrustService_CreateTrust_FullMethodName = "/networktrust.v1.NetworkTrustService/CreateTrust" +) + +// NetworkTrustServiceClient is the client API for NetworkTrustService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type NetworkTrustServiceClient interface { + CreateTrust(ctx context.Context, in *CreateTrustRequest, opts ...grpc.CallOption) (*CreateTrustResponse, error) +} + +type networkTrustServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewNetworkTrustServiceClient(cc grpc.ClientConnInterface) NetworkTrustServiceClient { + return &networkTrustServiceClient{cc} +} + +func (c *networkTrustServiceClient) CreateTrust(ctx context.Context, in *CreateTrustRequest, opts ...grpc.CallOption) (*CreateTrustResponse, error) { + out := new(CreateTrustResponse) + err := c.cc.Invoke(ctx, NetworkTrustService_CreateTrust_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NetworkTrustServiceServer is the server API for NetworkTrustService service. +// All implementations must embed UnimplementedNetworkTrustServiceServer +// for forward compatibility +type NetworkTrustServiceServer interface { + CreateTrust(context.Context, *CreateTrustRequest) (*CreateTrustResponse, error) + mustEmbedUnimplementedNetworkTrustServiceServer() +} + +// UnimplementedNetworkTrustServiceServer must be embedded to have forward compatible implementations. +type UnimplementedNetworkTrustServiceServer struct { +} + +func (UnimplementedNetworkTrustServiceServer) CreateTrust(context.Context, *CreateTrustRequest) (*CreateTrustResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateTrust not implemented") +} +func (UnimplementedNetworkTrustServiceServer) mustEmbedUnimplementedNetworkTrustServiceServer() {} + +// UnsafeNetworkTrustServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NetworkTrustServiceServer will +// result in compilation errors. +type UnsafeNetworkTrustServiceServer interface { + mustEmbedUnimplementedNetworkTrustServiceServer() +} + +func RegisterNetworkTrustServiceServer(s grpc.ServiceRegistrar, srv NetworkTrustServiceServer) { + s.RegisterService(&NetworkTrustService_ServiceDesc, srv) +} + +func _NetworkTrustService_CreateTrust_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateTrustRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkTrustServiceServer).CreateTrust(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: NetworkTrustService_CreateTrust_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkTrustServiceServer).CreateTrust(ctx, req.(*CreateTrustRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// NetworkTrustService_ServiceDesc is the grpc.ServiceDesc for NetworkTrustService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var NetworkTrustService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "networktrust.v1.NetworkTrustService", + HandlerType: (*NetworkTrustServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateTrust", + Handler: _NetworkTrustService_CreateTrust_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "proto/networktrust/service.proto", +} diff --git a/go.mod b/go.mod index f6830ba..82f8a17 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,85 @@ require ( ) require ( + github.com/bufbuild/buf v1.30.0 + google.golang.org/grpc v1.62.1 + google.golang.org/protobuf v1.33.0 +) + +require ( + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240221180331-f05a6f4403ce.1 // indirect + connectrpc.com/connect v1.15.0 // indirect + connectrpc.com/otelconnect v0.7.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/antlr4-go/antlr/v4 v4.13.0 // indirect + github.com/bufbuild/protocompile v0.9.0 // indirect + github.com/bufbuild/protovalidate-go v0.6.0 // indirect + github.com/bufbuild/protoyaml-go v0.1.8 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/containerd/stargz-snapshotter/estargz v0.15.1 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/cli v25.0.4+incompatible // indirect + github.com/docker/distribution v2.8.3+incompatible // indirect + github.com/docker/docker v25.0.4+incompatible // indirect + github.com/docker/docker-credential-helpers v0.8.1 // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/fgprof v0.9.4 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/go-chi/chi/v5 v5.0.12 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/gofrs/uuid/v5 v5.0.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/cel-go v0.20.1 // indirect + github.com/google/go-containerregistry v0.19.0 // indirect + github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jdx/go-netrc v1.0.0 // indirect + github.com/klauspost/compress v1.17.7 // indirect + github.com/klauspost/pgzip v1.2.6 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pkg/profile v1.7.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/rogpeppe/go-internal v1.10.0 // indirect + github.com/rs/cors v1.10.1 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/stoewer/go-strcase v1.3.0 // indirect + github.com/vbatts/tar-split v0.11.5 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/sdk v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.opentelemetry.io/proto/otlp v1.1.0 // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.27.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/mod v0.16.0 // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.19.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240304212257-790db918fca8 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 33b60a9..34b10f7 100644 --- a/go.sum +++ b/go.sum @@ -1,51 +1,246 @@ +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240221180331-f05a6f4403ce.1 h1:0nWhrRcnkgw1kwJ7xibIO8bqfOA7pBzBjGCDBxIHch8= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240221180331-f05a6f4403ce.1/go.mod h1:Tgn5bgL220vkFOI0KPStlcClPeOJzAv4uT+V8JXGUnw= +connectrpc.com/connect v1.15.0 h1:lFdeCbZrVVDydAqwr4xGV2y+ULn+0Z73s5JBj2LikWo= +connectrpc.com/connect v1.15.0/go.mod h1:bQmjpDY8xItMnttnurVgOkHUBMRT9cpsNi2O4AjKhmA= +connectrpc.com/otelconnect v0.7.0 h1:ZH55ZZtcJOTKWWLy3qmL4Pam4RzRWBJFOqTPyAqCXkY= +connectrpc.com/otelconnect v0.7.0/go.mod h1:Bt2ivBymHZHqxvo4HkJ0EwHuUzQN6k2l0oH+mp/8nwc= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= +github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= +github.com/bufbuild/buf v1.30.0 h1:V/Gir+aVKukqI/w2Eqoiv4tqUs01KBWP9t3Hz/9/25I= +github.com/bufbuild/buf v1.30.0/go.mod h1:vfr2bN0OlblcfLHKJNMixj7WohlMlFX4yB4L3VZq7A8= +github.com/bufbuild/protocompile v0.9.0 h1:DI8qLG5PEO0Mu1Oj51YFPqtx6I3qYXUAhJVJ/IzAVl0= +github.com/bufbuild/protocompile v0.9.0/go.mod h1:s89m1O8CqSYpyE/YaSGtg1r1YFMF5nLTwh4vlj6O444= +github.com/bufbuild/protovalidate-go v0.6.0 h1:Jgs1kFuZ2LHvvdj8SpCLA1W/+pXS8QSM3F/E2l3InPY= +github.com/bufbuild/protovalidate-go v0.6.0/go.mod h1:1LamgoYHZ2NdIQH0XGczGTc6Z8YrTHjcJVmiBaar4t4= +github.com/bufbuild/protoyaml-go v0.1.8 h1:X9QDLfl9uEllh4gsXUGqPanZYCOKzd92uniRtW2OnAQ= +github.com/bufbuild/protoyaml-go v0.1.8/go.mod h1:R8vE2+l49bSiIExP4VJpxOXleHE+FDzZ6HVxr3cYunw= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= +github.com/chromedp/chromedp v0.9.2/go.mod h1:LkSXJKONWTCHAfQasKFUZI+mxqS4tZqhmtGzzhLsnLs= +github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/stargz-snapshotter/estargz v0.15.1 h1:eXJjw9RbkLFgioVaTG+G/ZW/0kEe2oEKCdS/ZxIyoCU= +github.com/containerd/stargz-snapshotter/estargz v0.15.1/go.mod h1:gr2RNwukQ/S9Nv33Lt6UC7xEx58C+LHRdoqbEKjz1Kk= +github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/cli v25.0.4+incompatible h1:DatRkJ+nrFoYL2HZUzjM5Z5sAmcA5XGp+AW0oEw2+cA= +github.com/docker/cli v25.0.4+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= +github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v25.0.4+incompatible h1:XITZTrq+52tZyZxUOtFIahUf3aH367FLxJzt9vZeAF8= +github.com/docker/docker v25.0.4+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.8.1 h1:j/eKUktUltBtMzKqmfLB0PAgqYyMHOp5vfsD1807oKo= +github.com/docker/docker-credential-helpers v0.8.1/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw= +github.com/felixge/fgprof v0.9.4 h1:ocDNwMFlnA0NU0zSB3I52xkO4sFXk80VK9lXjLClu88= +github.com/felixge/fgprof v0.9.4/go.mod h1:yKl+ERSa++RYOs32d8K6WEXCB4uXdLls4ZaZPpayhMM= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-chi/chi/v5 v5.0.12 h1:9euLV5sTrTNTRUU9POmDUvfxyj6LAABLUcEWO+JJb4s= +github.com/go-chi/chi/v5 v5.0.12/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= +github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= +github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= +github.com/gofrs/uuid/v5 v5.0.0 h1:p544++a97kEL+svbcFbCQVM9KFu0Yo25UoISXGNNH9M= +github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84= +github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-containerregistry v0.19.0 h1:uIsMRBV7m/HDkDxE/nXMnv1q+lOOSPlQ/ywc5JbB8Ic= +github.com/google/go-containerregistry v0.19.0/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= +github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= +github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7 h1:y3N7Bm7Y9/CtpiVkw/ZWj6lSlDF3F74SfKwfTCer72Q= +github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 h1:Wqo399gCIufwto+VfwCSvsnfGpF/w5E9CNxSwbpD6No= +github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= +github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jdx/go-netrc v1.0.0 h1:QbLMLyCZGj0NA8glAhxUpf1zDg6cxnWgMBbjq40W0gQ= +github.com/jdx/go-netrc v1.0.0/go.mod h1:Gh9eFQJnoTNIRHXl2j5bJXA1u84hQWJWgGh569zF3v8= +github.com/jhump/protoreflect v1.15.6 h1:WMYJbw2Wo+KOWwZFvgY0jMoVHM6i4XIvRs2RcBj5VmI= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= +github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA= +github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= +github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= +github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts= +github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 h1:t6wl9SPayj+c7lEIFgm4ooDBZVb01IhLB4InpomhRw8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0/go.mod h1:iSDOcsnSA5INXzZtwaBPrKp/lWu/V14Dd+llD0oI2EA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 h1:Xw8U6u2f8DK2XAkGRFV7BBLENgnTGX9i4rQRxJf+/vs= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= +go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= +go.opentelemetry.io/otel/sdk/metric v1.19.0 h1:EJoTO5qysMsYCa+w4UghwFV/ptQgqSL/8Ni+hx+8i1k= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/proto/otlp v1.1.0 h1:2Di21piLrCqJ3U3eXGCTPHE9R8Nh+0uglSnOyxikMeI= +go.opentelemetry.io/proto/otlp v1.1.0/go.mod h1:GpBHCBWiqvVLDqmHZsoMM3C5ySeKTC7ej/RNTae6MdY= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= +golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto/googleapis/api v0.0.0-20240304212257-790db918fca8 h1:8eadJkXbwDEMNwcB5O0s5Y5eCfyuCLdvaiOIaGTrWmQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240304212257-790db918fca8/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 h1:IR+hp6ypxjH24bkMfEJ0yHR21+gwPWdV+/IBrPQyn3k= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= diff --git a/tools.go b/tools.go new file mode 100644 index 0000000..14fdc1f --- /dev/null +++ b/tools.go @@ -0,0 +1,8 @@ +//go:build tools +// +build tools + +package stagelinq + +import ( + _ "github.com/bufbuild/buf/cmd/buf" +)