// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v6.30.1 // source: api.proto package grpc 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 Destination_Status int32 const ( Destination_STATUS_OFF_AIR Destination_Status = 0 Destination_STATUS_STARTING Destination_Status = 1 Destination_STATUS_LIVE Destination_Status = 2 ) // Enum value maps for Destination_Status. var ( Destination_Status_name = map[int32]string{ 0: "STATUS_OFF_AIR", 1: "STATUS_STARTING", 2: "STATUS_LIVE", } Destination_Status_value = map[string]int32{ "STATUS_OFF_AIR": 0, "STATUS_STARTING": 1, "STATUS_LIVE": 2, } ) func (x Destination_Status) Enum() *Destination_Status { p := new(Destination_Status) *p = x return p } func (x Destination_Status) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Destination_Status) Descriptor() protoreflect.EnumDescriptor { return file_api_proto_enumTypes[0].Descriptor() } func (Destination_Status) Type() protoreflect.EnumType { return &file_api_proto_enumTypes[0] } func (x Destination_Status) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Destination_Status.Descriptor instead. func (Destination_Status) EnumDescriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{12, 0} } type Envelope struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Payload: // // *Envelope_Command // *Envelope_Event Payload isEnvelope_Payload `protobuf_oneof:"payload"` } func (x *Envelope) Reset() { *x = Envelope{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Envelope) String() string { return protoimpl.X.MessageStringOf(x) } func (*Envelope) ProtoMessage() {} func (x *Envelope) ProtoReflect() protoreflect.Message { mi := &file_api_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 Envelope.ProtoReflect.Descriptor instead. func (*Envelope) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{0} } func (m *Envelope) GetPayload() isEnvelope_Payload { if m != nil { return m.Payload } return nil } func (x *Envelope) GetCommand() *Command { if x, ok := x.GetPayload().(*Envelope_Command); ok { return x.Command } return nil } func (x *Envelope) GetEvent() *Event { if x, ok := x.GetPayload().(*Envelope_Event); ok { return x.Event } return nil } type isEnvelope_Payload interface { isEnvelope_Payload() } type Envelope_Command struct { Command *Command `protobuf:"bytes,1,opt,name=command,proto3,oneof"` } type Envelope_Event struct { Event *Event `protobuf:"bytes,2,opt,name=event,proto3,oneof"` } func (*Envelope_Command) isEnvelope_Payload() {} func (*Envelope_Event) isEnvelope_Payload() {} type Command struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to CommandType: // // *Command_AddDestination // *Command_RemoveDestination // *Command_StartDestination // *Command_StopDestination // *Command_CloseOtherInstances // *Command_Quit // *Command_StartHandshake CommandType isCommand_CommandType `protobuf_oneof:"command_type"` } func (x *Command) Reset() { *x = Command{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Command) String() string { return protoimpl.X.MessageStringOf(x) } func (*Command) ProtoMessage() {} func (x *Command) ProtoReflect() protoreflect.Message { mi := &file_api_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 Command.ProtoReflect.Descriptor instead. func (*Command) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{1} } func (m *Command) GetCommandType() isCommand_CommandType { if m != nil { return m.CommandType } return nil } func (x *Command) GetAddDestination() *AddDestinationCommand { if x, ok := x.GetCommandType().(*Command_AddDestination); ok { return x.AddDestination } return nil } func (x *Command) GetRemoveDestination() *RemoveDestinationCommand { if x, ok := x.GetCommandType().(*Command_RemoveDestination); ok { return x.RemoveDestination } return nil } func (x *Command) GetStartDestination() *StartDestinationCommand { if x, ok := x.GetCommandType().(*Command_StartDestination); ok { return x.StartDestination } return nil } func (x *Command) GetStopDestination() *StopDestinationCommand { if x, ok := x.GetCommandType().(*Command_StopDestination); ok { return x.StopDestination } return nil } func (x *Command) GetCloseOtherInstances() *CloseOtherInstancesCommand { if x, ok := x.GetCommandType().(*Command_CloseOtherInstances); ok { return x.CloseOtherInstances } return nil } func (x *Command) GetQuit() *QuitCommand { if x, ok := x.GetCommandType().(*Command_Quit); ok { return x.Quit } return nil } func (x *Command) GetStartHandshake() *StartHandshakeCommand { if x, ok := x.GetCommandType().(*Command_StartHandshake); ok { return x.StartHandshake } return nil } type isCommand_CommandType interface { isCommand_CommandType() } type Command_AddDestination struct { AddDestination *AddDestinationCommand `protobuf:"bytes,1,opt,name=add_destination,json=addDestination,proto3,oneof"` } type Command_RemoveDestination struct { RemoveDestination *RemoveDestinationCommand `protobuf:"bytes,2,opt,name=remove_destination,json=removeDestination,proto3,oneof"` } type Command_StartDestination struct { StartDestination *StartDestinationCommand `protobuf:"bytes,3,opt,name=start_destination,json=startDestination,proto3,oneof"` } type Command_StopDestination struct { StopDestination *StopDestinationCommand `protobuf:"bytes,4,opt,name=stop_destination,json=stopDestination,proto3,oneof"` } type Command_CloseOtherInstances struct { CloseOtherInstances *CloseOtherInstancesCommand `protobuf:"bytes,5,opt,name=close_other_instances,json=closeOtherInstances,proto3,oneof"` } type Command_Quit struct { Quit *QuitCommand `protobuf:"bytes,6,opt,name=quit,proto3,oneof"` } type Command_StartHandshake struct { StartHandshake *StartHandshakeCommand `protobuf:"bytes,7,opt,name=start_handshake,json=startHandshake,proto3,oneof"` } func (*Command_AddDestination) isCommand_CommandType() {} func (*Command_RemoveDestination) isCommand_CommandType() {} func (*Command_StartDestination) isCommand_CommandType() {} func (*Command_StopDestination) isCommand_CommandType() {} func (*Command_CloseOtherInstances) isCommand_CommandType() {} func (*Command_Quit) isCommand_CommandType() {} func (*Command_StartHandshake) isCommand_CommandType() {} type AddDestinationCommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` } func (x *AddDestinationCommand) Reset() { *x = AddDestinationCommand{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddDestinationCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddDestinationCommand) ProtoMessage() {} func (x *AddDestinationCommand) ProtoReflect() protoreflect.Message { mi := &file_api_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 AddDestinationCommand.ProtoReflect.Descriptor instead. func (*AddDestinationCommand) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{2} } func (x *AddDestinationCommand) GetName() string { if x != nil { return x.Name } return "" } func (x *AddDestinationCommand) GetUrl() string { if x != nil { return x.Url } return "" } type RemoveDestinationCommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } func (x *RemoveDestinationCommand) Reset() { *x = RemoveDestinationCommand{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemoveDestinationCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemoveDestinationCommand) ProtoMessage() {} func (x *RemoveDestinationCommand) ProtoReflect() protoreflect.Message { mi := &file_api_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 RemoveDestinationCommand.ProtoReflect.Descriptor instead. func (*RemoveDestinationCommand) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{3} } func (x *RemoveDestinationCommand) GetUrl() string { if x != nil { return x.Url } return "" } type StartDestinationCommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } func (x *StartDestinationCommand) Reset() { *x = StartDestinationCommand{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartDestinationCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartDestinationCommand) ProtoMessage() {} func (x *StartDestinationCommand) ProtoReflect() protoreflect.Message { mi := &file_api_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 StartDestinationCommand.ProtoReflect.Descriptor instead. func (*StartDestinationCommand) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{4} } func (x *StartDestinationCommand) GetUrl() string { if x != nil { return x.Url } return "" } type StopDestinationCommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } func (x *StopDestinationCommand) Reset() { *x = StopDestinationCommand{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopDestinationCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopDestinationCommand) ProtoMessage() {} func (x *StopDestinationCommand) ProtoReflect() protoreflect.Message { mi := &file_api_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 StopDestinationCommand.ProtoReflect.Descriptor instead. func (*StopDestinationCommand) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{5} } func (x *StopDestinationCommand) GetUrl() string { if x != nil { return x.Url } return "" } type CloseOtherInstancesCommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CloseOtherInstancesCommand) Reset() { *x = CloseOtherInstancesCommand{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CloseOtherInstancesCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*CloseOtherInstancesCommand) ProtoMessage() {} func (x *CloseOtherInstancesCommand) ProtoReflect() protoreflect.Message { mi := &file_api_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 CloseOtherInstancesCommand.ProtoReflect.Descriptor instead. func (*CloseOtherInstancesCommand) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{6} } type QuitCommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QuitCommand) Reset() { *x = QuitCommand{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QuitCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*QuitCommand) ProtoMessage() {} func (x *QuitCommand) ProtoReflect() protoreflect.Message { mi := &file_api_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 QuitCommand.ProtoReflect.Descriptor instead. func (*QuitCommand) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{7} } type StartHandshakeCommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *StartHandshakeCommand) Reset() { *x = StartHandshakeCommand{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartHandshakeCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartHandshakeCommand) ProtoMessage() {} func (x *StartHandshakeCommand) ProtoReflect() protoreflect.Message { mi := &file_api_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 StartHandshakeCommand.ProtoReflect.Descriptor instead. func (*StartHandshakeCommand) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{8} } type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to EventType: // // *Event_AppStateChanged // *Event_DestinationStreamExited // *Event_DestinationAdded // *Event_AddDestinationFailed // *Event_DestinationRemoved // *Event_RemoveDestinationFailed // *Event_StartDestinationFailed // *Event_MediaServerStarted // *Event_OtherInstanceDetected // *Event_FatalError // *Event_HandshakeCompleted EventType isEvent_EventType `protobuf_oneof:"event_type"` } func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[9] 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_api_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 Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{9} } func (m *Event) GetEventType() isEvent_EventType { if m != nil { return m.EventType } return nil } func (x *Event) GetAppStateChanged() *AppStateChangedEvent { if x, ok := x.GetEventType().(*Event_AppStateChanged); ok { return x.AppStateChanged } return nil } func (x *Event) GetDestinationStreamExited() *DestinationStreamExitedEvent { if x, ok := x.GetEventType().(*Event_DestinationStreamExited); ok { return x.DestinationStreamExited } return nil } func (x *Event) GetDestinationAdded() *DestinationAddedEvent { if x, ok := x.GetEventType().(*Event_DestinationAdded); ok { return x.DestinationAdded } return nil } func (x *Event) GetAddDestinationFailed() *AddDestinationFailedEvent { if x, ok := x.GetEventType().(*Event_AddDestinationFailed); ok { return x.AddDestinationFailed } return nil } func (x *Event) GetDestinationRemoved() *DestinationRemovedEvent { if x, ok := x.GetEventType().(*Event_DestinationRemoved); ok { return x.DestinationRemoved } return nil } func (x *Event) GetRemoveDestinationFailed() *RemoveDestinationFailedEvent { if x, ok := x.GetEventType().(*Event_RemoveDestinationFailed); ok { return x.RemoveDestinationFailed } return nil } func (x *Event) GetStartDestinationFailed() *StartDestinationFailedEvent { if x, ok := x.GetEventType().(*Event_StartDestinationFailed); ok { return x.StartDestinationFailed } return nil } func (x *Event) GetMediaServerStarted() *MediaServerStartedEvent { if x, ok := x.GetEventType().(*Event_MediaServerStarted); ok { return x.MediaServerStarted } return nil } func (x *Event) GetOtherInstanceDetected() *OtherInstanceDetectedEvent { if x, ok := x.GetEventType().(*Event_OtherInstanceDetected); ok { return x.OtherInstanceDetected } return nil } func (x *Event) GetFatalError() *FatalErrorEvent { if x, ok := x.GetEventType().(*Event_FatalError); ok { return x.FatalError } return nil } func (x *Event) GetHandshakeCompleted() *HandshakeCompletedEvent { if x, ok := x.GetEventType().(*Event_HandshakeCompleted); ok { return x.HandshakeCompleted } return nil } type isEvent_EventType interface { isEvent_EventType() } type Event_AppStateChanged struct { AppStateChanged *AppStateChangedEvent `protobuf:"bytes,1,opt,name=app_state_changed,json=appStateChanged,proto3,oneof"` } type Event_DestinationStreamExited struct { DestinationStreamExited *DestinationStreamExitedEvent `protobuf:"bytes,2,opt,name=destination_stream_exited,json=destinationStreamExited,proto3,oneof"` } type Event_DestinationAdded struct { DestinationAdded *DestinationAddedEvent `protobuf:"bytes,3,opt,name=destination_added,json=destinationAdded,proto3,oneof"` } type Event_AddDestinationFailed struct { AddDestinationFailed *AddDestinationFailedEvent `protobuf:"bytes,4,opt,name=add_destination_failed,json=addDestinationFailed,proto3,oneof"` } type Event_DestinationRemoved struct { DestinationRemoved *DestinationRemovedEvent `protobuf:"bytes,5,opt,name=destination_removed,json=destinationRemoved,proto3,oneof"` } type Event_RemoveDestinationFailed struct { RemoveDestinationFailed *RemoveDestinationFailedEvent `protobuf:"bytes,6,opt,name=remove_destination_failed,json=removeDestinationFailed,proto3,oneof"` } type Event_StartDestinationFailed struct { StartDestinationFailed *StartDestinationFailedEvent `protobuf:"bytes,7,opt,name=start_destination_failed,json=startDestinationFailed,proto3,oneof"` } type Event_MediaServerStarted struct { MediaServerStarted *MediaServerStartedEvent `protobuf:"bytes,8,opt,name=media_server_started,json=mediaServerStarted,proto3,oneof"` } type Event_OtherInstanceDetected struct { OtherInstanceDetected *OtherInstanceDetectedEvent `protobuf:"bytes,9,opt,name=other_instance_detected,json=otherInstanceDetected,proto3,oneof"` } type Event_FatalError struct { FatalError *FatalErrorEvent `protobuf:"bytes,10,opt,name=fatal_error,json=fatalError,proto3,oneof"` } type Event_HandshakeCompleted struct { HandshakeCompleted *HandshakeCompletedEvent `protobuf:"bytes,11,opt,name=handshake_completed,json=handshakeCompleted,proto3,oneof"` } func (*Event_AppStateChanged) isEvent_EventType() {} func (*Event_DestinationStreamExited) isEvent_EventType() {} func (*Event_DestinationAdded) isEvent_EventType() {} func (*Event_AddDestinationFailed) isEvent_EventType() {} func (*Event_DestinationRemoved) isEvent_EventType() {} func (*Event_RemoveDestinationFailed) isEvent_EventType() {} func (*Event_StartDestinationFailed) isEvent_EventType() {} func (*Event_MediaServerStarted) isEvent_EventType() {} func (*Event_OtherInstanceDetected) isEvent_EventType() {} func (*Event_FatalError) isEvent_EventType() {} func (*Event_HandshakeCompleted) isEvent_EventType() {} type Container struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` HealthState string `protobuf:"bytes,3,opt,name=health_state,json=healthState,proto3" json:"health_state,omitempty"` CpuPercent float64 `protobuf:"fixed64,4,opt,name=cpu_percent,json=cpuPercent,proto3" json:"cpu_percent,omitempty"` MemoryUsageBytes uint64 `protobuf:"varint,5,opt,name=memory_usage_bytes,json=memoryUsageBytes,proto3" json:"memory_usage_bytes,omitempty"` RxRate int32 `protobuf:"varint,6,opt,name=rx_rate,json=rxRate,proto3" json:"rx_rate,omitempty"` TxRate int32 `protobuf:"varint,7,opt,name=tx_rate,json=txRate,proto3" json:"tx_rate,omitempty"` RxSince *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=rx_since,json=rxSince,proto3" json:"rx_since,omitempty"` ImageName string `protobuf:"bytes,9,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"` PullStatus string `protobuf:"bytes,10,opt,name=pull_status,json=pullStatus,proto3" json:"pull_status,omitempty"` PullProgress string `protobuf:"bytes,11,opt,name=pull_progress,json=pullProgress,proto3" json:"pull_progress,omitempty"` PullPercent int32 `protobuf:"varint,12,opt,name=pull_percent,json=pullPercent,proto3" json:"pull_percent,omitempty"` RestartCount int32 `protobuf:"varint,13,opt,name=restart_count,json=restartCount,proto3" json:"restart_count,omitempty"` ExitCode *int32 `protobuf:"varint,14,opt,name=exit_code,json=exitCode,proto3,oneof" json:"exit_code,omitempty"` Err string `protobuf:"bytes,15,opt,name=err,proto3" json:"err,omitempty"` } func (x *Container) Reset() { *x = Container{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Container) String() string { return protoimpl.X.MessageStringOf(x) } func (*Container) ProtoMessage() {} func (x *Container) ProtoReflect() protoreflect.Message { mi := &file_api_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 Container.ProtoReflect.Descriptor instead. func (*Container) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{10} } func (x *Container) GetId() string { if x != nil { return x.Id } return "" } func (x *Container) GetStatus() string { if x != nil { return x.Status } return "" } func (x *Container) GetHealthState() string { if x != nil { return x.HealthState } return "" } func (x *Container) GetCpuPercent() float64 { if x != nil { return x.CpuPercent } return 0 } func (x *Container) GetMemoryUsageBytes() uint64 { if x != nil { return x.MemoryUsageBytes } return 0 } func (x *Container) GetRxRate() int32 { if x != nil { return x.RxRate } return 0 } func (x *Container) GetTxRate() int32 { if x != nil { return x.TxRate } return 0 } func (x *Container) GetRxSince() *timestamppb.Timestamp { if x != nil { return x.RxSince } return nil } func (x *Container) GetImageName() string { if x != nil { return x.ImageName } return "" } func (x *Container) GetPullStatus() string { if x != nil { return x.PullStatus } return "" } func (x *Container) GetPullProgress() string { if x != nil { return x.PullProgress } return "" } func (x *Container) GetPullPercent() int32 { if x != nil { return x.PullPercent } return 0 } func (x *Container) GetRestartCount() int32 { if x != nil { return x.RestartCount } return 0 } func (x *Container) GetExitCode() int32 { if x != nil && x.ExitCode != nil { return *x.ExitCode } return 0 } func (x *Container) GetErr() string { if x != nil { return x.Err } return "" } type Source struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Container *Container `protobuf:"bytes,1,opt,name=container,proto3" json:"container,omitempty"` Live bool `protobuf:"varint,2,opt,name=live,proto3" json:"live,omitempty"` LiveChangedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=live_changed_at,json=liveChangedAt,proto3" json:"live_changed_at,omitempty"` Tracks []string `protobuf:"bytes,4,rep,name=tracks,proto3" json:"tracks,omitempty"` ExitReason string `protobuf:"bytes,5,opt,name=exit_reason,json=exitReason,proto3" json:"exit_reason,omitempty"` } func (x *Source) Reset() { *x = Source{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Source) String() string { return protoimpl.X.MessageStringOf(x) } func (*Source) ProtoMessage() {} func (x *Source) ProtoReflect() protoreflect.Message { mi := &file_api_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 Source.ProtoReflect.Descriptor instead. func (*Source) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{11} } func (x *Source) GetContainer() *Container { if x != nil { return x.Container } return nil } func (x *Source) GetLive() bool { if x != nil { return x.Live } return false } func (x *Source) GetLiveChangedAt() *timestamppb.Timestamp { if x != nil { return x.LiveChangedAt } return nil } func (x *Source) GetTracks() []string { if x != nil { return x.Tracks } return nil } func (x *Source) GetExitReason() string { if x != nil { return x.ExitReason } return "" } type Destination struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Container *Container `protobuf:"bytes,1,opt,name=container,proto3" json:"container,omitempty"` Status Destination_Status `protobuf:"varint,2,opt,name=status,proto3,enum=api.Destination_Status" json:"status,omitempty"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` } func (x *Destination) Reset() { *x = Destination{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Destination) String() string { return protoimpl.X.MessageStringOf(x) } func (*Destination) ProtoMessage() {} func (x *Destination) ProtoReflect() protoreflect.Message { mi := &file_api_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 Destination.ProtoReflect.Descriptor instead. func (*Destination) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{12} } func (x *Destination) GetContainer() *Container { if x != nil { return x.Container } return nil } func (x *Destination) GetStatus() Destination_Status { if x != nil { return x.Status } return Destination_STATUS_OFF_AIR } func (x *Destination) GetName() string { if x != nil { return x.Name } return "" } func (x *Destination) GetUrl() string { if x != nil { return x.Url } return "" } type BuildInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GoVersion string `protobuf:"bytes,1,opt,name=go_version,json=goVersion,proto3" json:"go_version,omitempty"` Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` Commit string `protobuf:"bytes,3,opt,name=commit,proto3" json:"commit,omitempty"` Date string `protobuf:"bytes,4,opt,name=date,proto3" json:"date,omitempty"` } func (x *BuildInfo) Reset() { *x = BuildInfo{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuildInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuildInfo) ProtoMessage() {} func (x *BuildInfo) ProtoReflect() protoreflect.Message { mi := &file_api_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 BuildInfo.ProtoReflect.Descriptor instead. func (*BuildInfo) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{13} } func (x *BuildInfo) GetGoVersion() string { if x != nil { return x.GoVersion } return "" } func (x *BuildInfo) GetVersion() string { if x != nil { return x.Version } return "" } func (x *BuildInfo) GetCommit() string { if x != nil { return x.Commit } return "" } func (x *BuildInfo) GetDate() string { if x != nil { return x.Date } return "" } type AppState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Source *Source `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` Destinations []*Destination `protobuf:"bytes,2,rep,name=destinations,proto3" json:"destinations,omitempty"` BuildInfo *BuildInfo `protobuf:"bytes,3,opt,name=build_info,json=buildInfo,proto3" json:"build_info,omitempty"` } func (x *AppState) Reset() { *x = AppState{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AppState) String() string { return protoimpl.X.MessageStringOf(x) } func (*AppState) ProtoMessage() {} func (x *AppState) ProtoReflect() protoreflect.Message { mi := &file_api_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 AppState.ProtoReflect.Descriptor instead. func (*AppState) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{14} } func (x *AppState) GetSource() *Source { if x != nil { return x.Source } return nil } func (x *AppState) GetDestinations() []*Destination { if x != nil { return x.Destinations } return nil } func (x *AppState) GetBuildInfo() *BuildInfo { if x != nil { return x.BuildInfo } return nil } type AppStateChangedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AppState *AppState `protobuf:"bytes,1,opt,name=app_state,json=appState,proto3" json:"app_state,omitempty"` } func (x *AppStateChangedEvent) Reset() { *x = AppStateChangedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AppStateChangedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*AppStateChangedEvent) ProtoMessage() {} func (x *AppStateChangedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_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 AppStateChangedEvent.ProtoReflect.Descriptor instead. func (*AppStateChangedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{15} } func (x *AppStateChangedEvent) GetAppState() *AppState { if x != nil { return x.AppState } return nil } type DestinationStreamExitedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` } func (x *DestinationStreamExitedEvent) Reset() { *x = DestinationStreamExitedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DestinationStreamExitedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*DestinationStreamExitedEvent) ProtoMessage() {} func (x *DestinationStreamExitedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_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 DestinationStreamExitedEvent.ProtoReflect.Descriptor instead. func (*DestinationStreamExitedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{16} } func (x *DestinationStreamExitedEvent) GetName() string { if x != nil { return x.Name } return "" } func (x *DestinationStreamExitedEvent) GetError() string { if x != nil { return x.Error } return "" } type DestinationAddedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } func (x *DestinationAddedEvent) Reset() { *x = DestinationAddedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DestinationAddedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*DestinationAddedEvent) ProtoMessage() {} func (x *DestinationAddedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_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 DestinationAddedEvent.ProtoReflect.Descriptor instead. func (*DestinationAddedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{17} } func (x *DestinationAddedEvent) GetUrl() string { if x != nil { return x.Url } return "" } type AddDestinationFailedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` } func (x *AddDestinationFailedEvent) Reset() { *x = AddDestinationFailedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddDestinationFailedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddDestinationFailedEvent) ProtoMessage() {} func (x *AddDestinationFailedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_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 AddDestinationFailedEvent.ProtoReflect.Descriptor instead. func (*AddDestinationFailedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{18} } func (x *AddDestinationFailedEvent) GetUrl() string { if x != nil { return x.Url } return "" } func (x *AddDestinationFailedEvent) GetError() string { if x != nil { return x.Error } return "" } type DestinationRemovedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } func (x *DestinationRemovedEvent) Reset() { *x = DestinationRemovedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DestinationRemovedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*DestinationRemovedEvent) ProtoMessage() {} func (x *DestinationRemovedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_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 DestinationRemovedEvent.ProtoReflect.Descriptor instead. func (*DestinationRemovedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{19} } func (x *DestinationRemovedEvent) GetUrl() string { if x != nil { return x.Url } return "" } type RemoveDestinationFailedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` } func (x *RemoveDestinationFailedEvent) Reset() { *x = RemoveDestinationFailedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemoveDestinationFailedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemoveDestinationFailedEvent) ProtoMessage() {} func (x *RemoveDestinationFailedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_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 RemoveDestinationFailedEvent.ProtoReflect.Descriptor instead. func (*RemoveDestinationFailedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{20} } func (x *RemoveDestinationFailedEvent) GetUrl() string { if x != nil { return x.Url } return "" } func (x *RemoveDestinationFailedEvent) GetError() string { if x != nil { return x.Error } return "" } type StartDestinationFailedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` } func (x *StartDestinationFailedEvent) Reset() { *x = StartDestinationFailedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartDestinationFailedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartDestinationFailedEvent) ProtoMessage() {} func (x *StartDestinationFailedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_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 StartDestinationFailedEvent.ProtoReflect.Descriptor instead. func (*StartDestinationFailedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{21} } func (x *StartDestinationFailedEvent) GetUrl() string { if x != nil { return x.Url } return "" } func (x *StartDestinationFailedEvent) GetMessage() string { if x != nil { return x.Message } return "" } type MediaServerStartedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RtmpUrl string `protobuf:"bytes,1,opt,name=rtmp_url,json=rtmpUrl,proto3" json:"rtmp_url,omitempty"` RtmpsUrl string `protobuf:"bytes,2,opt,name=rtmps_url,json=rtmpsUrl,proto3" json:"rtmps_url,omitempty"` } func (x *MediaServerStartedEvent) Reset() { *x = MediaServerStartedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MediaServerStartedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*MediaServerStartedEvent) ProtoMessage() {} func (x *MediaServerStartedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_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 MediaServerStartedEvent.ProtoReflect.Descriptor instead. func (*MediaServerStartedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{22} } func (x *MediaServerStartedEvent) GetRtmpUrl() string { if x != nil { return x.RtmpUrl } return "" } func (x *MediaServerStartedEvent) GetRtmpsUrl() string { if x != nil { return x.RtmpsUrl } return "" } type OtherInstanceDetectedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *OtherInstanceDetectedEvent) Reset() { *x = OtherInstanceDetectedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OtherInstanceDetectedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*OtherInstanceDetectedEvent) ProtoMessage() {} func (x *OtherInstanceDetectedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_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 OtherInstanceDetectedEvent.ProtoReflect.Descriptor instead. func (*OtherInstanceDetectedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{23} } type FatalErrorEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` } func (x *FatalErrorEvent) Reset() { *x = FatalErrorEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FatalErrorEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*FatalErrorEvent) ProtoMessage() {} func (x *FatalErrorEvent) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FatalErrorEvent.ProtoReflect.Descriptor instead. func (*FatalErrorEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{24} } func (x *FatalErrorEvent) GetMessage() string { if x != nil { return x.Message } return "" } type HandshakeCompletedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *HandshakeCompletedEvent) Reset() { *x = HandshakeCompletedEvent{} if protoimpl.UnsafeEnabled { mi := &file_api_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HandshakeCompletedEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*HandshakeCompletedEvent) ProtoMessage() {} func (x *HandshakeCompletedEvent) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HandshakeCompletedEvent.ProtoReflect.Descriptor instead. func (*HandshakeCompletedEvent) Descriptor() ([]byte, []int) { return file_api_proto_rawDescGZIP(), []int{25} } var File_api_proto protoreflect.FileDescriptor var file_api_proto_rawDesc = []byte{ 0x0a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x61, 0x70, 0x69, 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, 0x63, 0x0a, 0x08, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x8d, 0x04, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x45, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x10, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x70, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x15, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x04, 0x71, 0x75, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x04, 0x71, 0x75, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3d, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x2c, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x2b, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x2a, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x1c, 0x0a, 0x1a, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x51, 0x75, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0xa9, 0x07, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x19, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x69, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x69, 0x74, 0x65, 0x64, 0x12, 0x49, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x16, 0x61, 0x64, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x61, 0x64, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x19, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x18, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x16, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x50, 0x0a, 0x14, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x12, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x59, 0x0a, 0x17, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x15, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x66, 0x61, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x61, 0x74, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x61, 0x74, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x13, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x12, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xfd, 0x03, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x70, 0x75, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x63, 0x70, 0x75, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x72, 0x78, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x75, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x75, 0x6c, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x72, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x52, 0x0d, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xd6, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x42, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x46, 0x46, 0x5f, 0x41, 0x49, 0x52, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x02, 0x22, 0x70, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x42, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x61, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x48, 0x0a, 0x1c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x69, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x29, 0x0a, 0x15, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x43, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2b, 0x0a, 0x17, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x46, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x49, 0x0a, 0x1b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x51, 0x0a, 0x17, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x74, 0x6d, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x74, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x74, 0x6d, 0x70, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x74, 0x6d, 0x70, 0x73, 0x55, 0x72, 0x6c, 0x22, 0x1c, 0x0a, 0x1a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x2b, 0x0a, 0x0f, 0x46, 0x61, 0x74, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x32, 0x3e, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x50, 0x49, 0x12, 0x2f, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x66, 0x6c, 0x75, 0x78, 0x2e, 0x69, 0x6f, 0x2f, 0x72, 0x6f, 0x62, 0x2f, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_api_proto_rawDescOnce sync.Once file_api_proto_rawDescData = file_api_proto_rawDesc ) func file_api_proto_rawDescGZIP() []byte { file_api_proto_rawDescOnce.Do(func() { file_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_proto_rawDescData) }) return file_api_proto_rawDescData } var file_api_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_api_proto_msgTypes = make([]protoimpl.MessageInfo, 26) var file_api_proto_goTypes = []interface{}{ (Destination_Status)(0), // 0: api.Destination.Status (*Envelope)(nil), // 1: api.Envelope (*Command)(nil), // 2: api.Command (*AddDestinationCommand)(nil), // 3: api.AddDestinationCommand (*RemoveDestinationCommand)(nil), // 4: api.RemoveDestinationCommand (*StartDestinationCommand)(nil), // 5: api.StartDestinationCommand (*StopDestinationCommand)(nil), // 6: api.StopDestinationCommand (*CloseOtherInstancesCommand)(nil), // 7: api.CloseOtherInstancesCommand (*QuitCommand)(nil), // 8: api.QuitCommand (*StartHandshakeCommand)(nil), // 9: api.StartHandshakeCommand (*Event)(nil), // 10: api.Event (*Container)(nil), // 11: api.Container (*Source)(nil), // 12: api.Source (*Destination)(nil), // 13: api.Destination (*BuildInfo)(nil), // 14: api.BuildInfo (*AppState)(nil), // 15: api.AppState (*AppStateChangedEvent)(nil), // 16: api.AppStateChangedEvent (*DestinationStreamExitedEvent)(nil), // 17: api.DestinationStreamExitedEvent (*DestinationAddedEvent)(nil), // 18: api.DestinationAddedEvent (*AddDestinationFailedEvent)(nil), // 19: api.AddDestinationFailedEvent (*DestinationRemovedEvent)(nil), // 20: api.DestinationRemovedEvent (*RemoveDestinationFailedEvent)(nil), // 21: api.RemoveDestinationFailedEvent (*StartDestinationFailedEvent)(nil), // 22: api.StartDestinationFailedEvent (*MediaServerStartedEvent)(nil), // 23: api.MediaServerStartedEvent (*OtherInstanceDetectedEvent)(nil), // 24: api.OtherInstanceDetectedEvent (*FatalErrorEvent)(nil), // 25: api.FatalErrorEvent (*HandshakeCompletedEvent)(nil), // 26: api.HandshakeCompletedEvent (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp } var file_api_proto_depIdxs = []int32{ 2, // 0: api.Envelope.command:type_name -> api.Command 10, // 1: api.Envelope.event:type_name -> api.Event 3, // 2: api.Command.add_destination:type_name -> api.AddDestinationCommand 4, // 3: api.Command.remove_destination:type_name -> api.RemoveDestinationCommand 5, // 4: api.Command.start_destination:type_name -> api.StartDestinationCommand 6, // 5: api.Command.stop_destination:type_name -> api.StopDestinationCommand 7, // 6: api.Command.close_other_instances:type_name -> api.CloseOtherInstancesCommand 8, // 7: api.Command.quit:type_name -> api.QuitCommand 9, // 8: api.Command.start_handshake:type_name -> api.StartHandshakeCommand 16, // 9: api.Event.app_state_changed:type_name -> api.AppStateChangedEvent 17, // 10: api.Event.destination_stream_exited:type_name -> api.DestinationStreamExitedEvent 18, // 11: api.Event.destination_added:type_name -> api.DestinationAddedEvent 19, // 12: api.Event.add_destination_failed:type_name -> api.AddDestinationFailedEvent 20, // 13: api.Event.destination_removed:type_name -> api.DestinationRemovedEvent 21, // 14: api.Event.remove_destination_failed:type_name -> api.RemoveDestinationFailedEvent 22, // 15: api.Event.start_destination_failed:type_name -> api.StartDestinationFailedEvent 23, // 16: api.Event.media_server_started:type_name -> api.MediaServerStartedEvent 24, // 17: api.Event.other_instance_detected:type_name -> api.OtherInstanceDetectedEvent 25, // 18: api.Event.fatal_error:type_name -> api.FatalErrorEvent 26, // 19: api.Event.handshake_completed:type_name -> api.HandshakeCompletedEvent 27, // 20: api.Container.rx_since:type_name -> google.protobuf.Timestamp 11, // 21: api.Source.container:type_name -> api.Container 27, // 22: api.Source.live_changed_at:type_name -> google.protobuf.Timestamp 11, // 23: api.Destination.container:type_name -> api.Container 0, // 24: api.Destination.status:type_name -> api.Destination.Status 12, // 25: api.AppState.source:type_name -> api.Source 13, // 26: api.AppState.destinations:type_name -> api.Destination 14, // 27: api.AppState.build_info:type_name -> api.BuildInfo 15, // 28: api.AppStateChangedEvent.app_state:type_name -> api.AppState 1, // 29: api.InternalAPI.Communicate:input_type -> api.Envelope 1, // 30: api.InternalAPI.Communicate:output_type -> api.Envelope 30, // [30:31] is the sub-list for method output_type 29, // [29:30] is the sub-list for method input_type 29, // [29:29] is the sub-list for extension type_name 29, // [29:29] is the sub-list for extension extendee 0, // [0:29] is the sub-list for field type_name } func init() { file_api_proto_init() } func file_api_proto_init() { if File_api_proto != nil { return } if !protoimpl.UnsafeEnabled { file_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Envelope); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Command); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddDestinationCommand); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveDestinationCommand); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartDestinationCommand); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopDestinationCommand); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloseOtherInstancesCommand); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QuitCommand); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartHandshakeCommand); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[9].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_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Container); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Source); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Destination); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuildInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AppState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AppStateChangedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DestinationStreamExitedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DestinationAddedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddDestinationFailedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DestinationRemovedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveDestinationFailedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartDestinationFailedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MediaServerStartedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtherInstanceDetectedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FatalErrorEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HandshakeCompletedEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_api_proto_msgTypes[0].OneofWrappers = []interface{}{ (*Envelope_Command)(nil), (*Envelope_Event)(nil), } file_api_proto_msgTypes[1].OneofWrappers = []interface{}{ (*Command_AddDestination)(nil), (*Command_RemoveDestination)(nil), (*Command_StartDestination)(nil), (*Command_StopDestination)(nil), (*Command_CloseOtherInstances)(nil), (*Command_Quit)(nil), (*Command_StartHandshake)(nil), } file_api_proto_msgTypes[9].OneofWrappers = []interface{}{ (*Event_AppStateChanged)(nil), (*Event_DestinationStreamExited)(nil), (*Event_DestinationAdded)(nil), (*Event_AddDestinationFailed)(nil), (*Event_DestinationRemoved)(nil), (*Event_RemoveDestinationFailed)(nil), (*Event_StartDestinationFailed)(nil), (*Event_MediaServerStarted)(nil), (*Event_OtherInstanceDetected)(nil), (*Event_FatalError)(nil), (*Event_HandshakeCompleted)(nil), } file_api_proto_msgTypes[10].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_proto_rawDesc, NumEnums: 1, NumMessages: 26, NumExtensions: 0, NumServices: 1, }, GoTypes: file_api_proto_goTypes, DependencyIndexes: file_api_proto_depIdxs, EnumInfos: file_api_proto_enumTypes, MessageInfos: file_api_proto_msgTypes, }.Build() File_api_proto = out.File file_api_proto_rawDesc = nil file_api_proto_goTypes = nil file_api_proto_depIdxs = nil }