// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc (unknown) // source: btrpc.proto package btrpc import ( _ "google.golang.org/genproto/googleapis/api/annotations" 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) ) // struct definitions type StrategySettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` UseSimultaneousSignalProcessing bool `protobuf:"varint,2,opt,name=use_simultaneous_signal_processing,json=useSimultaneousSignalProcessing,proto3" json:"use_simultaneous_signal_processing,omitempty"` DisableUsdTracking bool `protobuf:"varint,3,opt,name=disable_usd_tracking,json=disableUsdTracking,proto3" json:"disable_usd_tracking,omitempty"` CustomSettings []*CustomSettings `protobuf:"bytes,4,rep,name=custom_settings,json=customSettings,proto3" json:"custom_settings,omitempty"` } func (x *StrategySettings) Reset() { *x = StrategySettings{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StrategySettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*StrategySettings) ProtoMessage() {} func (x *StrategySettings) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 StrategySettings.ProtoReflect.Descriptor instead. func (*StrategySettings) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{0} } func (x *StrategySettings) GetName() string { if x != nil { return x.Name } return "" } func (x *StrategySettings) GetUseSimultaneousSignalProcessing() bool { if x != nil { return x.UseSimultaneousSignalProcessing } return false } func (x *StrategySettings) GetDisableUsdTracking() bool { if x != nil { return x.DisableUsdTracking } return false } func (x *StrategySettings) GetCustomSettings() []*CustomSettings { if x != nil { return x.CustomSettings } return nil } type CustomSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields KeyField string `protobuf:"bytes,1,opt,name=key_field,json=keyField,proto3" json:"key_field,omitempty"` KeyValue string `protobuf:"bytes,2,opt,name=key_value,json=keyValue,proto3" json:"key_value,omitempty"` } func (x *CustomSettings) Reset() { *x = CustomSettings{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CustomSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*CustomSettings) ProtoMessage() {} func (x *CustomSettings) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 CustomSettings.ProtoReflect.Descriptor instead. func (*CustomSettings) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{1} } func (x *CustomSettings) GetKeyField() string { if x != nil { return x.KeyField } return "" } func (x *CustomSettings) GetKeyValue() string { if x != nil { return x.KeyValue } return "" } type ExchangeLevelFunding struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ExchangeName string `protobuf:"bytes,1,opt,name=exchange_name,json=exchangeName,proto3" json:"exchange_name,omitempty"` Asset string `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"` Currency string `protobuf:"bytes,3,opt,name=currency,proto3" json:"currency,omitempty"` InitialFunds string `protobuf:"bytes,4,opt,name=initial_funds,json=initialFunds,proto3" json:"initial_funds,omitempty"` TransferFee string `protobuf:"bytes,5,opt,name=transfer_fee,json=transferFee,proto3" json:"transfer_fee,omitempty"` } func (x *ExchangeLevelFunding) Reset() { *x = ExchangeLevelFunding{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExchangeLevelFunding) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExchangeLevelFunding) ProtoMessage() {} func (x *ExchangeLevelFunding) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 ExchangeLevelFunding.ProtoReflect.Descriptor instead. func (*ExchangeLevelFunding) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{2} } func (x *ExchangeLevelFunding) GetExchangeName() string { if x != nil { return x.ExchangeName } return "" } func (x *ExchangeLevelFunding) GetAsset() string { if x != nil { return x.Asset } return "" } func (x *ExchangeLevelFunding) GetCurrency() string { if x != nil { return x.Currency } return "" } func (x *ExchangeLevelFunding) GetInitialFunds() string { if x != nil { return x.InitialFunds } return "" } func (x *ExchangeLevelFunding) GetTransferFee() string { if x != nil { return x.TransferFee } return "" } type FundingSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UseExchangeLevelFunding bool `protobuf:"varint,1,opt,name=use_exchange_level_funding,json=useExchangeLevelFunding,proto3" json:"use_exchange_level_funding,omitempty"` ExchangeLevelFunding []*ExchangeLevelFunding `protobuf:"bytes,2,rep,name=exchange_level_funding,json=exchangeLevelFunding,proto3" json:"exchange_level_funding,omitempty"` } func (x *FundingSettings) Reset() { *x = FundingSettings{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FundingSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*FundingSettings) ProtoMessage() {} func (x *FundingSettings) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 FundingSettings.ProtoReflect.Descriptor instead. func (*FundingSettings) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{3} } func (x *FundingSettings) GetUseExchangeLevelFunding() bool { if x != nil { return x.UseExchangeLevelFunding } return false } func (x *FundingSettings) GetExchangeLevelFunding() []*ExchangeLevelFunding { if x != nil { return x.ExchangeLevelFunding } return nil } type PurchaseSide struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MinimumSize string `protobuf:"bytes,1,opt,name=minimum_size,json=minimumSize,proto3" json:"minimum_size,omitempty"` MaximumSize string `protobuf:"bytes,2,opt,name=maximum_size,json=maximumSize,proto3" json:"maximum_size,omitempty"` MaximumTotal string `protobuf:"bytes,3,opt,name=maximum_total,json=maximumTotal,proto3" json:"maximum_total,omitempty"` } func (x *PurchaseSide) Reset() { *x = PurchaseSide{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PurchaseSide) String() string { return protoimpl.X.MessageStringOf(x) } func (*PurchaseSide) ProtoMessage() {} func (x *PurchaseSide) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 PurchaseSide.ProtoReflect.Descriptor instead. func (*PurchaseSide) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{4} } func (x *PurchaseSide) GetMinimumSize() string { if x != nil { return x.MinimumSize } return "" } func (x *PurchaseSide) GetMaximumSize() string { if x != nil { return x.MaximumSize } return "" } func (x *PurchaseSide) GetMaximumTotal() string { if x != nil { return x.MaximumTotal } return "" } type SpotDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields InitialBaseFunds string `protobuf:"bytes,1,opt,name=initial_base_funds,json=initialBaseFunds,proto3" json:"initial_base_funds,omitempty"` InitialQuoteFunds string `protobuf:"bytes,2,opt,name=initial_quote_funds,json=initialQuoteFunds,proto3" json:"initial_quote_funds,omitempty"` } func (x *SpotDetails) Reset() { *x = SpotDetails{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SpotDetails) String() string { return protoimpl.X.MessageStringOf(x) } func (*SpotDetails) ProtoMessage() {} func (x *SpotDetails) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 SpotDetails.ProtoReflect.Descriptor instead. func (*SpotDetails) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{5} } func (x *SpotDetails) GetInitialBaseFunds() string { if x != nil { return x.InitialBaseFunds } return "" } func (x *SpotDetails) GetInitialQuoteFunds() string { if x != nil { return x.InitialQuoteFunds } return "" } type FuturesDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Leverage *Leverage `protobuf:"bytes,1,opt,name=leverage,proto3" json:"leverage,omitempty"` } func (x *FuturesDetails) Reset() { *x = FuturesDetails{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FuturesDetails) String() string { return protoimpl.X.MessageStringOf(x) } func (*FuturesDetails) ProtoMessage() {} func (x *FuturesDetails) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 FuturesDetails.ProtoReflect.Descriptor instead. func (*FuturesDetails) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{6} } func (x *FuturesDetails) GetLeverage() *Leverage { if x != nil { return x.Leverage } return nil } type CurrencySettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ExchangeName string `protobuf:"bytes,1,opt,name=exchange_name,json=exchangeName,proto3" json:"exchange_name,omitempty"` Asset string `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"` Base string `protobuf:"bytes,3,opt,name=base,proto3" json:"base,omitempty"` Quote string `protobuf:"bytes,4,opt,name=quote,proto3" json:"quote,omitempty"` BuySide *PurchaseSide `protobuf:"bytes,5,opt,name=buy_side,json=buySide,proto3" json:"buy_side,omitempty"` SellSide *PurchaseSide `protobuf:"bytes,6,opt,name=sell_side,json=sellSide,proto3" json:"sell_side,omitempty"` MinSlippagePercent string `protobuf:"bytes,7,opt,name=min_slippage_percent,json=minSlippagePercent,proto3" json:"min_slippage_percent,omitempty"` MaxSlippagePercent string `protobuf:"bytes,8,opt,name=max_slippage_percent,json=maxSlippagePercent,proto3" json:"max_slippage_percent,omitempty"` MakerFeeOverride string `protobuf:"bytes,9,opt,name=maker_fee_override,json=makerFeeOverride,proto3" json:"maker_fee_override,omitempty"` TakerFeeOverride string `protobuf:"bytes,10,opt,name=taker_fee_override,json=takerFeeOverride,proto3" json:"taker_fee_override,omitempty"` MaximumHoldingsRatio string `protobuf:"bytes,11,opt,name=maximum_holdings_ratio,json=maximumHoldingsRatio,proto3" json:"maximum_holdings_ratio,omitempty"` SkipCandleVolumeFitting bool `protobuf:"varint,12,opt,name=skip_candle_volume_fitting,json=skipCandleVolumeFitting,proto3" json:"skip_candle_volume_fitting,omitempty"` UseExchangeOrderLimits bool `protobuf:"varint,13,opt,name=use_exchange_order_limits,json=useExchangeOrderLimits,proto3" json:"use_exchange_order_limits,omitempty"` UseExchangePnlCalculation bool `protobuf:"varint,14,opt,name=use_exchange_pnl_calculation,json=useExchangePnlCalculation,proto3" json:"use_exchange_pnl_calculation,omitempty"` SpotDetails *SpotDetails `protobuf:"bytes,15,opt,name=spot_details,json=spotDetails,proto3" json:"spot_details,omitempty"` FuturesDetails *FuturesDetails `protobuf:"bytes,16,opt,name=futures_details,json=futuresDetails,proto3" json:"futures_details,omitempty"` } func (x *CurrencySettings) Reset() { *x = CurrencySettings{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CurrencySettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*CurrencySettings) ProtoMessage() {} func (x *CurrencySettings) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 CurrencySettings.ProtoReflect.Descriptor instead. func (*CurrencySettings) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{7} } func (x *CurrencySettings) GetExchangeName() string { if x != nil { return x.ExchangeName } return "" } func (x *CurrencySettings) GetAsset() string { if x != nil { return x.Asset } return "" } func (x *CurrencySettings) GetBase() string { if x != nil { return x.Base } return "" } func (x *CurrencySettings) GetQuote() string { if x != nil { return x.Quote } return "" } func (x *CurrencySettings) GetBuySide() *PurchaseSide { if x != nil { return x.BuySide } return nil } func (x *CurrencySettings) GetSellSide() *PurchaseSide { if x != nil { return x.SellSide } return nil } func (x *CurrencySettings) GetMinSlippagePercent() string { if x != nil { return x.MinSlippagePercent } return "" } func (x *CurrencySettings) GetMaxSlippagePercent() string { if x != nil { return x.MaxSlippagePercent } return "" } func (x *CurrencySettings) GetMakerFeeOverride() string { if x != nil { return x.MakerFeeOverride } return "" } func (x *CurrencySettings) GetTakerFeeOverride() string { if x != nil { return x.TakerFeeOverride } return "" } func (x *CurrencySettings) GetMaximumHoldingsRatio() string { if x != nil { return x.MaximumHoldingsRatio } return "" } func (x *CurrencySettings) GetSkipCandleVolumeFitting() bool { if x != nil { return x.SkipCandleVolumeFitting } return false } func (x *CurrencySettings) GetUseExchangeOrderLimits() bool { if x != nil { return x.UseExchangeOrderLimits } return false } func (x *CurrencySettings) GetUseExchangePnlCalculation() bool { if x != nil { return x.UseExchangePnlCalculation } return false } func (x *CurrencySettings) GetSpotDetails() *SpotDetails { if x != nil { return x.SpotDetails } return nil } func (x *CurrencySettings) GetFuturesDetails() *FuturesDetails { if x != nil { return x.FuturesDetails } return nil } type ApiData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartDate *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` EndDate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` InclusiveEndDate bool `protobuf:"varint,3,opt,name=inclusive_end_date,json=inclusiveEndDate,proto3" json:"inclusive_end_date,omitempty"` } func (x *ApiData) Reset() { *x = ApiData{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApiData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApiData) ProtoMessage() {} func (x *ApiData) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 ApiData.ProtoReflect.Descriptor instead. func (*ApiData) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{8} } func (x *ApiData) GetStartDate() *timestamppb.Timestamp { if x != nil { return x.StartDate } return nil } func (x *ApiData) GetEndDate() *timestamppb.Timestamp { if x != nil { return x.EndDate } return nil } func (x *ApiData) GetInclusiveEndDate() bool { if x != nil { return x.InclusiveEndDate } return false } type DbConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` Driver string `protobuf:"bytes,3,opt,name=driver,proto3" json:"driver,omitempty"` Host string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"` Port uint32 `protobuf:"varint,5,opt,name=port,proto3" json:"port,omitempty"` Username string `protobuf:"bytes,6,opt,name=username,proto3" json:"username,omitempty"` Password string `protobuf:"bytes,7,opt,name=password,proto3" json:"password,omitempty"` Database string `protobuf:"bytes,8,opt,name=database,proto3" json:"database,omitempty"` SslMode string `protobuf:"bytes,9,opt,name=ssl_mode,json=sslMode,proto3" json:"ssl_mode,omitempty"` } func (x *DbConfig) Reset() { *x = DbConfig{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DbConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*DbConfig) ProtoMessage() {} func (x *DbConfig) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 DbConfig.ProtoReflect.Descriptor instead. func (*DbConfig) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{9} } func (x *DbConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *DbConfig) GetVerbose() bool { if x != nil { return x.Verbose } return false } func (x *DbConfig) GetDriver() string { if x != nil { return x.Driver } return "" } func (x *DbConfig) GetHost() string { if x != nil { return x.Host } return "" } func (x *DbConfig) GetPort() uint32 { if x != nil { return x.Port } return 0 } func (x *DbConfig) GetUsername() string { if x != nil { return x.Username } return "" } func (x *DbConfig) GetPassword() string { if x != nil { return x.Password } return "" } func (x *DbConfig) GetDatabase() string { if x != nil { return x.Database } return "" } func (x *DbConfig) GetSslMode() string { if x != nil { return x.SslMode } return "" } type DbData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartDate *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` EndDate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` Config *DbConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"` Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` InclusiveEndDate bool `protobuf:"varint,5,opt,name=inclusive_end_date,json=inclusiveEndDate,proto3" json:"inclusive_end_date,omitempty"` } func (x *DbData) Reset() { *x = DbData{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DbData) String() string { return protoimpl.X.MessageStringOf(x) } func (*DbData) ProtoMessage() {} func (x *DbData) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 DbData.ProtoReflect.Descriptor instead. func (*DbData) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{10} } func (x *DbData) GetStartDate() *timestamppb.Timestamp { if x != nil { return x.StartDate } return nil } func (x *DbData) GetEndDate() *timestamppb.Timestamp { if x != nil { return x.EndDate } return nil } func (x *DbData) GetConfig() *DbConfig { if x != nil { return x.Config } return nil } func (x *DbData) GetPath() string { if x != nil { return x.Path } return "" } func (x *DbData) GetInclusiveEndDate() bool { if x != nil { return x.InclusiveEndDate } return false } type CsvData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` } func (x *CsvData) Reset() { *x = CsvData{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CsvData) String() string { return protoimpl.X.MessageStringOf(x) } func (*CsvData) ProtoMessage() {} func (x *CsvData) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 CsvData.ProtoReflect.Descriptor instead. func (*CsvData) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{11} } func (x *CsvData) GetPath() string { if x != nil { return x.Path } return "" } type DatabaseConnectionDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` UserName string `protobuf:"bytes,3,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` Database string `protobuf:"bytes,5,opt,name=database,proto3" json:"database,omitempty"` SslMode string `protobuf:"bytes,6,opt,name=ssl_mode,json=sslMode,proto3" json:"ssl_mode,omitempty"` } func (x *DatabaseConnectionDetails) Reset() { *x = DatabaseConnectionDetails{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DatabaseConnectionDetails) String() string { return protoimpl.X.MessageStringOf(x) } func (*DatabaseConnectionDetails) ProtoMessage() {} func (x *DatabaseConnectionDetails) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 DatabaseConnectionDetails.ProtoReflect.Descriptor instead. func (*DatabaseConnectionDetails) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{12} } func (x *DatabaseConnectionDetails) GetHost() string { if x != nil { return x.Host } return "" } func (x *DatabaseConnectionDetails) GetPort() uint32 { if x != nil { return x.Port } return 0 } func (x *DatabaseConnectionDetails) GetUserName() string { if x != nil { return x.UserName } return "" } func (x *DatabaseConnectionDetails) GetPassword() string { if x != nil { return x.Password } return "" } func (x *DatabaseConnectionDetails) GetDatabase() string { if x != nil { return x.Database } return "" } func (x *DatabaseConnectionDetails) GetSslMode() string { if x != nil { return x.SslMode } return "" } type DatabaseConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` Driver string `protobuf:"bytes,3,opt,name=driver,proto3" json:"driver,omitempty"` Config *DatabaseConnectionDetails `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"` } func (x *DatabaseConfig) Reset() { *x = DatabaseConfig{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DatabaseConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*DatabaseConfig) ProtoMessage() {} func (x *DatabaseConfig) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 DatabaseConfig.ProtoReflect.Descriptor instead. func (*DatabaseConfig) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{13} } func (x *DatabaseConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *DatabaseConfig) GetVerbose() bool { if x != nil { return x.Verbose } return false } func (x *DatabaseConfig) GetDriver() string { if x != nil { return x.Driver } return "" } func (x *DatabaseConfig) GetConfig() *DatabaseConnectionDetails { if x != nil { return x.Config } return nil } type DatabaseData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartDate *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` EndDate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` Config *DatabaseConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"` Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` InclusiveEndDate bool `protobuf:"varint,5,opt,name=inclusive_end_date,json=inclusiveEndDate,proto3" json:"inclusive_end_date,omitempty"` } func (x *DatabaseData) Reset() { *x = DatabaseData{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DatabaseData) String() string { return protoimpl.X.MessageStringOf(x) } func (*DatabaseData) ProtoMessage() {} func (x *DatabaseData) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 DatabaseData.ProtoReflect.Descriptor instead. func (*DatabaseData) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{14} } func (x *DatabaseData) GetStartDate() *timestamppb.Timestamp { if x != nil { return x.StartDate } return nil } func (x *DatabaseData) GetEndDate() *timestamppb.Timestamp { if x != nil { return x.EndDate } return nil } func (x *DatabaseData) GetConfig() *DatabaseConfig { if x != nil { return x.Config } return nil } func (x *DatabaseData) GetPath() string { if x != nil { return x.Path } return "" } func (x *DatabaseData) GetInclusiveEndDate() bool { if x != nil { return x.InclusiveEndDate } return false } type CSVData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` } func (x *CSVData) Reset() { *x = CSVData{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSVData) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSVData) ProtoMessage() {} func (x *CSVData) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 CSVData.ProtoReflect.Descriptor instead. func (*CSVData) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{15} } func (x *CSVData) GetPath() string { if x != nil { return x.Path } return "" } type LiveData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NewEventTimeout int64 `protobuf:"varint,1,opt,name=new_event_timeout,json=newEventTimeout,proto3" json:"new_event_timeout,omitempty"` DataCheckTimer int64 `protobuf:"varint,2,opt,name=data_check_timer,json=dataCheckTimer,proto3" json:"data_check_timer,omitempty"` RealOrders bool `protobuf:"varint,3,opt,name=real_orders,json=realOrders,proto3" json:"real_orders,omitempty"` ClosePositionsOnStop bool `protobuf:"varint,4,opt,name=close_positions_on_stop,json=closePositionsOnStop,proto3" json:"close_positions_on_stop,omitempty"` DataRequestRetryTolerance int64 `protobuf:"varint,5,opt,name=data_request_retry_tolerance,json=dataRequestRetryTolerance,proto3" json:"data_request_retry_tolerance,omitempty"` DataRequestRetryWaitTime int64 `protobuf:"varint,6,opt,name=data_request_retry_wait_time,json=dataRequestRetryWaitTime,proto3" json:"data_request_retry_wait_time,omitempty"` UseRealOrders bool `protobuf:"varint,7,opt,name=use_real_orders,json=useRealOrders,proto3" json:"use_real_orders,omitempty"` Credentials []*Credentials `protobuf:"bytes,8,rep,name=credentials,proto3" json:"credentials,omitempty"` } func (x *LiveData) Reset() { *x = LiveData{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LiveData) String() string { return protoimpl.X.MessageStringOf(x) } func (*LiveData) ProtoMessage() {} func (x *LiveData) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 LiveData.ProtoReflect.Descriptor instead. func (*LiveData) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{16} } func (x *LiveData) GetNewEventTimeout() int64 { if x != nil { return x.NewEventTimeout } return 0 } func (x *LiveData) GetDataCheckTimer() int64 { if x != nil { return x.DataCheckTimer } return 0 } func (x *LiveData) GetRealOrders() bool { if x != nil { return x.RealOrders } return false } func (x *LiveData) GetClosePositionsOnStop() bool { if x != nil { return x.ClosePositionsOnStop } return false } func (x *LiveData) GetDataRequestRetryTolerance() int64 { if x != nil { return x.DataRequestRetryTolerance } return 0 } func (x *LiveData) GetDataRequestRetryWaitTime() int64 { if x != nil { return x.DataRequestRetryWaitTime } return 0 } func (x *LiveData) GetUseRealOrders() bool { if x != nil { return x.UseRealOrders } return false } func (x *LiveData) GetCredentials() []*Credentials { if x != nil { return x.Credentials } return nil } type Credentials struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Keys *ExchangeCredentials `protobuf:"bytes,2,opt,name=keys,proto3" json:"keys,omitempty"` } func (x *Credentials) Reset() { *x = Credentials{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[17] 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_btrpc_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 Credentials.ProtoReflect.Descriptor instead. func (*Credentials) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{17} } func (x *Credentials) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *Credentials) GetKeys() *ExchangeCredentials { if x != nil { return x.Keys } return nil } type ExchangeCredentials struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"` ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` PemKey string `protobuf:"bytes,4,opt,name=pem_key,json=pemKey,proto3" json:"pem_key,omitempty"` SubAccount string `protobuf:"bytes,5,opt,name=sub_account,json=subAccount,proto3" json:"sub_account,omitempty"` OneTimePassword string `protobuf:"bytes,6,opt,name=one_time_password,json=oneTimePassword,proto3" json:"one_time_password,omitempty"` } func (x *ExchangeCredentials) Reset() { *x = ExchangeCredentials{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExchangeCredentials) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExchangeCredentials) ProtoMessage() {} func (x *ExchangeCredentials) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 ExchangeCredentials.ProtoReflect.Descriptor instead. func (*ExchangeCredentials) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{18} } func (x *ExchangeCredentials) GetKey() string { if x != nil { return x.Key } return "" } func (x *ExchangeCredentials) GetSecret() string { if x != nil { return x.Secret } return "" } func (x *ExchangeCredentials) GetClientId() string { if x != nil { return x.ClientId } return "" } func (x *ExchangeCredentials) GetPemKey() string { if x != nil { return x.PemKey } return "" } func (x *ExchangeCredentials) GetSubAccount() string { if x != nil { return x.SubAccount } return "" } func (x *ExchangeCredentials) GetOneTimePassword() string { if x != nil { return x.OneTimePassword } return "" } type DataSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Interval uint64 `protobuf:"varint,1,opt,name=interval,proto3" json:"interval,omitempty"` Datatype string `protobuf:"bytes,2,opt,name=datatype,proto3" json:"datatype,omitempty"` ApiData *ApiData `protobuf:"bytes,3,opt,name=api_data,json=apiData,proto3" json:"api_data,omitempty"` DatabaseData *DatabaseData `protobuf:"bytes,4,opt,name=database_data,json=databaseData,proto3" json:"database_data,omitempty"` CsvData *CSVData `protobuf:"bytes,5,opt,name=csv_data,json=csvData,proto3" json:"csv_data,omitempty"` LiveData *LiveData `protobuf:"bytes,6,opt,name=live_data,json=liveData,proto3" json:"live_data,omitempty"` } func (x *DataSettings) Reset() { *x = DataSettings{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DataSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*DataSettings) ProtoMessage() {} func (x *DataSettings) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 DataSettings.ProtoReflect.Descriptor instead. func (*DataSettings) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{19} } func (x *DataSettings) GetInterval() uint64 { if x != nil { return x.Interval } return 0 } func (x *DataSettings) GetDatatype() string { if x != nil { return x.Datatype } return "" } func (x *DataSettings) GetApiData() *ApiData { if x != nil { return x.ApiData } return nil } func (x *DataSettings) GetDatabaseData() *DatabaseData { if x != nil { return x.DatabaseData } return nil } func (x *DataSettings) GetCsvData() *CSVData { if x != nil { return x.CsvData } return nil } func (x *DataSettings) GetLiveData() *LiveData { if x != nil { return x.LiveData } return nil } type Leverage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CanUseLeverage bool `protobuf:"varint,1,opt,name=can_use_leverage,json=canUseLeverage,proto3" json:"can_use_leverage,omitempty"` MaximumOrdersWithLeverageRatio string `protobuf:"bytes,2,opt,name=maximum_orders_with_leverage_ratio,json=maximumOrdersWithLeverageRatio,proto3" json:"maximum_orders_with_leverage_ratio,omitempty"` MaximumLeverageRate string `protobuf:"bytes,3,opt,name=maximum_leverage_rate,json=maximumLeverageRate,proto3" json:"maximum_leverage_rate,omitempty"` MaximumCollateralLeverageRate string `protobuf:"bytes,4,opt,name=maximum_collateral_leverage_rate,json=maximumCollateralLeverageRate,proto3" json:"maximum_collateral_leverage_rate,omitempty"` } func (x *Leverage) Reset() { *x = Leverage{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Leverage) String() string { return protoimpl.X.MessageStringOf(x) } func (*Leverage) ProtoMessage() {} func (x *Leverage) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 Leverage.ProtoReflect.Descriptor instead. func (*Leverage) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{20} } func (x *Leverage) GetCanUseLeverage() bool { if x != nil { return x.CanUseLeverage } return false } func (x *Leverage) GetMaximumOrdersWithLeverageRatio() string { if x != nil { return x.MaximumOrdersWithLeverageRatio } return "" } func (x *Leverage) GetMaximumLeverageRate() string { if x != nil { return x.MaximumLeverageRate } return "" } func (x *Leverage) GetMaximumCollateralLeverageRate() string { if x != nil { return x.MaximumCollateralLeverageRate } return "" } type PortfolioSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Leverage *Leverage `protobuf:"bytes,1,opt,name=leverage,proto3" json:"leverage,omitempty"` BuySide *PurchaseSide `protobuf:"bytes,2,opt,name=buy_side,json=buySide,proto3" json:"buy_side,omitempty"` SellSide *PurchaseSide `protobuf:"bytes,3,opt,name=sell_side,json=sellSide,proto3" json:"sell_side,omitempty"` } func (x *PortfolioSettings) Reset() { *x = PortfolioSettings{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PortfolioSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*PortfolioSettings) ProtoMessage() {} func (x *PortfolioSettings) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 PortfolioSettings.ProtoReflect.Descriptor instead. func (*PortfolioSettings) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{21} } func (x *PortfolioSettings) GetLeverage() *Leverage { if x != nil { return x.Leverage } return nil } func (x *PortfolioSettings) GetBuySide() *PurchaseSide { if x != nil { return x.BuySide } return nil } func (x *PortfolioSettings) GetSellSide() *PurchaseSide { if x != nil { return x.SellSide } return nil } type StatisticSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RiskFreeRate string `protobuf:"bytes,1,opt,name=risk_free_rate,json=riskFreeRate,proto3" json:"risk_free_rate,omitempty"` } func (x *StatisticSettings) Reset() { *x = StatisticSettings{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatisticSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatisticSettings) ProtoMessage() {} func (x *StatisticSettings) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 StatisticSettings.ProtoReflect.Descriptor instead. func (*StatisticSettings) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{22} } func (x *StatisticSettings) GetRiskFreeRate() string { if x != nil { return x.RiskFreeRate } return "" } type Config struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nickname string `protobuf:"bytes,1,opt,name=nickname,proto3" json:"nickname,omitempty"` Goal string `protobuf:"bytes,2,opt,name=goal,proto3" json:"goal,omitempty"` StrategySettings *StrategySettings `protobuf:"bytes,3,opt,name=strategy_settings,json=strategySettings,proto3" json:"strategy_settings,omitempty"` FundingSettings *FundingSettings `protobuf:"bytes,4,opt,name=funding_settings,json=fundingSettings,proto3" json:"funding_settings,omitempty"` CurrencySettings []*CurrencySettings `protobuf:"bytes,5,rep,name=currency_settings,json=currencySettings,proto3" json:"currency_settings,omitempty"` DataSettings *DataSettings `protobuf:"bytes,6,opt,name=data_settings,json=dataSettings,proto3" json:"data_settings,omitempty"` PortfolioSettings *PortfolioSettings `protobuf:"bytes,7,opt,name=portfolio_settings,json=portfolioSettings,proto3" json:"portfolio_settings,omitempty"` StatisticSettings *StatisticSettings `protobuf:"bytes,8,opt,name=statistic_settings,json=statisticSettings,proto3" json:"statistic_settings,omitempty"` } func (x *Config) Reset() { *x = Config{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Config) String() string { return protoimpl.X.MessageStringOf(x) } func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 Config.ProtoReflect.Descriptor instead. func (*Config) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{23} } func (x *Config) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *Config) GetGoal() string { if x != nil { return x.Goal } return "" } func (x *Config) GetStrategySettings() *StrategySettings { if x != nil { return x.StrategySettings } return nil } func (x *Config) GetFundingSettings() *FundingSettings { if x != nil { return x.FundingSettings } return nil } func (x *Config) GetCurrencySettings() []*CurrencySettings { if x != nil { return x.CurrencySettings } return nil } func (x *Config) GetDataSettings() *DataSettings { if x != nil { return x.DataSettings } return nil } func (x *Config) GetPortfolioSettings() *PortfolioSettings { if x != nil { return x.PortfolioSettings } return nil } func (x *Config) GetStatisticSettings() *StatisticSettings { if x != nil { return x.StatisticSettings } return nil } type TaskSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` StrategyName string `protobuf:"bytes,2,opt,name=strategy_name,json=strategyName,proto3" json:"strategy_name,omitempty"` DateLoaded string `protobuf:"bytes,3,opt,name=date_loaded,json=dateLoaded,proto3" json:"date_loaded,omitempty"` DateStarted string `protobuf:"bytes,4,opt,name=date_started,json=dateStarted,proto3" json:"date_started,omitempty"` DateEnded string `protobuf:"bytes,5,opt,name=date_ended,json=dateEnded,proto3" json:"date_ended,omitempty"` Closed bool `protobuf:"varint,6,opt,name=closed,proto3" json:"closed,omitempty"` LiveTesting bool `protobuf:"varint,7,opt,name=live_testing,json=liveTesting,proto3" json:"live_testing,omitempty"` RealOrders bool `protobuf:"varint,8,opt,name=real_orders,json=realOrders,proto3" json:"real_orders,omitempty"` } func (x *TaskSummary) Reset() { *x = TaskSummary{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TaskSummary) String() string { return protoimpl.X.MessageStringOf(x) } func (*TaskSummary) ProtoMessage() {} func (x *TaskSummary) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 TaskSummary.ProtoReflect.Descriptor instead. func (*TaskSummary) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{24} } func (x *TaskSummary) GetId() string { if x != nil { return x.Id } return "" } func (x *TaskSummary) GetStrategyName() string { if x != nil { return x.StrategyName } return "" } func (x *TaskSummary) GetDateLoaded() string { if x != nil { return x.DateLoaded } return "" } func (x *TaskSummary) GetDateStarted() string { if x != nil { return x.DateStarted } return "" } func (x *TaskSummary) GetDateEnded() string { if x != nil { return x.DateEnded } return "" } func (x *TaskSummary) GetClosed() bool { if x != nil { return x.Closed } return false } func (x *TaskSummary) GetLiveTesting() bool { if x != nil { return x.LiveTesting } return false } func (x *TaskSummary) GetRealOrders() bool { if x != nil { return x.RealOrders } return false } // Requests and responses type ExecuteStrategyFromFileRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StrategyFilePath string `protobuf:"bytes,1,opt,name=strategy_file_path,json=strategyFilePath,proto3" json:"strategy_file_path,omitempty"` DoNotRunImmediately bool `protobuf:"varint,2,opt,name=do_not_run_immediately,json=doNotRunImmediately,proto3" json:"do_not_run_immediately,omitempty"` DoNotStore bool `protobuf:"varint,3,opt,name=do_not_store,json=doNotStore,proto3" json:"do_not_store,omitempty"` StartTimeOverride *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_time_override,json=startTimeOverride,proto3" json:"start_time_override,omitempty"` EndTimeOverride *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=end_time_override,json=endTimeOverride,proto3" json:"end_time_override,omitempty"` IntervalOverride uint64 `protobuf:"varint,6,opt,name=interval_override,json=intervalOverride,proto3" json:"interval_override,omitempty"` } func (x *ExecuteStrategyFromFileRequest) Reset() { *x = ExecuteStrategyFromFileRequest{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExecuteStrategyFromFileRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExecuteStrategyFromFileRequest) ProtoMessage() {} func (x *ExecuteStrategyFromFileRequest) ProtoReflect() protoreflect.Message { mi := &file_btrpc_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 ExecuteStrategyFromFileRequest.ProtoReflect.Descriptor instead. func (*ExecuteStrategyFromFileRequest) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{25} } func (x *ExecuteStrategyFromFileRequest) GetStrategyFilePath() string { if x != nil { return x.StrategyFilePath } return "" } func (x *ExecuteStrategyFromFileRequest) GetDoNotRunImmediately() bool { if x != nil { return x.DoNotRunImmediately } return false } func (x *ExecuteStrategyFromFileRequest) GetDoNotStore() bool { if x != nil { return x.DoNotStore } return false } func (x *ExecuteStrategyFromFileRequest) GetStartTimeOverride() *timestamppb.Timestamp { if x != nil { return x.StartTimeOverride } return nil } func (x *ExecuteStrategyFromFileRequest) GetEndTimeOverride() *timestamppb.Timestamp { if x != nil { return x.EndTimeOverride } return nil } func (x *ExecuteStrategyFromFileRequest) GetIntervalOverride() uint64 { if x != nil { return x.IntervalOverride } return 0 } type ExecuteStrategyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Task *TaskSummary `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` } func (x *ExecuteStrategyResponse) Reset() { *x = ExecuteStrategyResponse{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExecuteStrategyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExecuteStrategyResponse) ProtoMessage() {} func (x *ExecuteStrategyResponse) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExecuteStrategyResponse.ProtoReflect.Descriptor instead. func (*ExecuteStrategyResponse) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{26} } func (x *ExecuteStrategyResponse) GetTask() *TaskSummary { if x != nil { return x.Task } return nil } type ExecuteStrategyFromConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DoNotRunImmediately bool `protobuf:"varint,1,opt,name=do_not_run_immediately,json=doNotRunImmediately,proto3" json:"do_not_run_immediately,omitempty"` DoNotStore bool `protobuf:"varint,2,opt,name=do_not_store,json=doNotStore,proto3" json:"do_not_store,omitempty"` Config *Config `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"` } func (x *ExecuteStrategyFromConfigRequest) Reset() { *x = ExecuteStrategyFromConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExecuteStrategyFromConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExecuteStrategyFromConfigRequest) ProtoMessage() {} func (x *ExecuteStrategyFromConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExecuteStrategyFromConfigRequest.ProtoReflect.Descriptor instead. func (*ExecuteStrategyFromConfigRequest) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{27} } func (x *ExecuteStrategyFromConfigRequest) GetDoNotRunImmediately() bool { if x != nil { return x.DoNotRunImmediately } return false } func (x *ExecuteStrategyFromConfigRequest) GetDoNotStore() bool { if x != nil { return x.DoNotStore } return false } func (x *ExecuteStrategyFromConfigRequest) GetConfig() *Config { if x != nil { return x.Config } return nil } type ListAllTasksRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ListAllTasksRequest) Reset() { *x = ListAllTasksRequest{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListAllTasksRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListAllTasksRequest) ProtoMessage() {} func (x *ListAllTasksRequest) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListAllTasksRequest.ProtoReflect.Descriptor instead. func (*ListAllTasksRequest) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{28} } type ListAllTasksResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tasks []*TaskSummary `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"` } func (x *ListAllTasksResponse) Reset() { *x = ListAllTasksResponse{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListAllTasksResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListAllTasksResponse) ProtoMessage() {} func (x *ListAllTasksResponse) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListAllTasksResponse.ProtoReflect.Descriptor instead. func (*ListAllTasksResponse) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{29} } func (x *ListAllTasksResponse) GetTasks() []*TaskSummary { if x != nil { return x.Tasks } return nil } type StopTaskRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *StopTaskRequest) Reset() { *x = StopTaskRequest{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopTaskRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopTaskRequest) ProtoMessage() {} func (x *StopTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopTaskRequest.ProtoReflect.Descriptor instead. func (*StopTaskRequest) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{30} } func (x *StopTaskRequest) GetId() string { if x != nil { return x.Id } return "" } type StopTaskResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StoppedTask *TaskSummary `protobuf:"bytes,1,opt,name=stopped_task,json=stoppedTask,proto3" json:"stopped_task,omitempty"` } func (x *StopTaskResponse) Reset() { *x = StopTaskResponse{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopTaskResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopTaskResponse) ProtoMessage() {} func (x *StopTaskResponse) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopTaskResponse.ProtoReflect.Descriptor instead. func (*StopTaskResponse) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{31} } func (x *StopTaskResponse) GetStoppedTask() *TaskSummary { if x != nil { return x.StoppedTask } return nil } type StartTaskRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *StartTaskRequest) Reset() { *x = StartTaskRequest{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartTaskRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartTaskRequest) ProtoMessage() {} func (x *StartTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StartTaskRequest.ProtoReflect.Descriptor instead. func (*StartTaskRequest) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{32} } func (x *StartTaskRequest) GetId() string { if x != nil { return x.Id } return "" } type StartTaskResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Started bool `protobuf:"varint,1,opt,name=started,proto3" json:"started,omitempty"` } func (x *StartTaskResponse) Reset() { *x = StartTaskResponse{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartTaskResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartTaskResponse) ProtoMessage() {} func (x *StartTaskResponse) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StartTaskResponse.ProtoReflect.Descriptor instead. func (*StartTaskResponse) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{33} } func (x *StartTaskResponse) GetStarted() bool { if x != nil { return x.Started } return false } type StartAllTasksRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *StartAllTasksRequest) Reset() { *x = StartAllTasksRequest{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartAllTasksRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartAllTasksRequest) ProtoMessage() {} func (x *StartAllTasksRequest) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StartAllTasksRequest.ProtoReflect.Descriptor instead. func (*StartAllTasksRequest) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{34} } type StartAllTasksResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TasksStarted []string `protobuf:"bytes,1,rep,name=tasks_started,json=tasksStarted,proto3" json:"tasks_started,omitempty"` } func (x *StartAllTasksResponse) Reset() { *x = StartAllTasksResponse{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartAllTasksResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartAllTasksResponse) ProtoMessage() {} func (x *StartAllTasksResponse) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StartAllTasksResponse.ProtoReflect.Descriptor instead. func (*StartAllTasksResponse) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{35} } func (x *StartAllTasksResponse) GetTasksStarted() []string { if x != nil { return x.TasksStarted } return nil } type StopAllTasksRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *StopAllTasksRequest) Reset() { *x = StopAllTasksRequest{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopAllTasksRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopAllTasksRequest) ProtoMessage() {} func (x *StopAllTasksRequest) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopAllTasksRequest.ProtoReflect.Descriptor instead. func (*StopAllTasksRequest) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{36} } type StopAllTasksResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TasksStopped []*TaskSummary `protobuf:"bytes,1,rep,name=tasks_stopped,json=tasksStopped,proto3" json:"tasks_stopped,omitempty"` } func (x *StopAllTasksResponse) Reset() { *x = StopAllTasksResponse{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopAllTasksResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopAllTasksResponse) ProtoMessage() {} func (x *StopAllTasksResponse) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopAllTasksResponse.ProtoReflect.Descriptor instead. func (*StopAllTasksResponse) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{37} } func (x *StopAllTasksResponse) GetTasksStopped() []*TaskSummary { if x != nil { return x.TasksStopped } return nil } type ClearTaskRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *ClearTaskRequest) Reset() { *x = ClearTaskRequest{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClearTaskRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClearTaskRequest) ProtoMessage() {} func (x *ClearTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ClearTaskRequest.ProtoReflect.Descriptor instead. func (*ClearTaskRequest) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{38} } func (x *ClearTaskRequest) GetId() string { if x != nil { return x.Id } return "" } type ClearTaskResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ClearedTask *TaskSummary `protobuf:"bytes,1,opt,name=cleared_task,json=clearedTask,proto3" json:"cleared_task,omitempty"` } func (x *ClearTaskResponse) Reset() { *x = ClearTaskResponse{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClearTaskResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClearTaskResponse) ProtoMessage() {} func (x *ClearTaskResponse) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ClearTaskResponse.ProtoReflect.Descriptor instead. func (*ClearTaskResponse) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{39} } func (x *ClearTaskResponse) GetClearedTask() *TaskSummary { if x != nil { return x.ClearedTask } return nil } type ClearAllTasksRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ClearAllTasksRequest) Reset() { *x = ClearAllTasksRequest{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClearAllTasksRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClearAllTasksRequest) ProtoMessage() {} func (x *ClearAllTasksRequest) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ClearAllTasksRequest.ProtoReflect.Descriptor instead. func (*ClearAllTasksRequest) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{40} } type ClearAllTasksResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ClearedTasks []*TaskSummary `protobuf:"bytes,1,rep,name=cleared_tasks,json=clearedTasks,proto3" json:"cleared_tasks,omitempty"` RemainingTasks []*TaskSummary `protobuf:"bytes,2,rep,name=remaining_tasks,json=remainingTasks,proto3" json:"remaining_tasks,omitempty"` } func (x *ClearAllTasksResponse) Reset() { *x = ClearAllTasksResponse{} if protoimpl.UnsafeEnabled { mi := &file_btrpc_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClearAllTasksResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClearAllTasksResponse) ProtoMessage() {} func (x *ClearAllTasksResponse) ProtoReflect() protoreflect.Message { mi := &file_btrpc_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ClearAllTasksResponse.ProtoReflect.Descriptor instead. func (*ClearAllTasksResponse) Descriptor() ([]byte, []int) { return file_btrpc_proto_rawDescGZIP(), []int{41} } func (x *ClearAllTasksResponse) GetClearedTasks() []*TaskSummary { if x != nil { return x.ClearedTasks } return nil } func (x *ClearAllTasksResponse) GetRemainingTasks() []*TaskSummary { if x != nil { return x.RemainingTasks } return nil } var File_btrpc_proto protoreflect.FileDescriptor var file_btrpc_proto_rawDesc = []byte{ 0x0a, 0x0b, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x62, 0x74, 0x72, 0x70, 0x63, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0xe5, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x74, 0x61, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x75, 0x73, 0x65, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x74, 0x61, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x73, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x4a, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x14, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x46, 0x65, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x75, 0x73, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x51, 0x0a, 0x16, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x14, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x79, 0x0a, 0x0c, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x69, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x6b, 0x0a, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x22, 0x3d, 0x0a, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x22, 0xff, 0x05, 0x0a, 0x10, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x69, 0x64, 0x65, 0x52, 0x07, 0x62, 0x75, 0x79, 0x53, 0x69, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x69, 0x64, 0x65, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x53, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x46, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x39, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x75, 0x73, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x6e, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x75, 0x73, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6e, 0x6c, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0c, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0b, 0x73, 0x70, 0x6f, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3e, 0x0a, 0x0f, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0e, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 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, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x08, 0x44, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x73, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x73, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x06, 0x44, 0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 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, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x1d, 0x0a, 0x07, 0x43, 0x73, 0x76, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0xb3, 0x01, 0x0a, 0x19, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x73, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x73, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xf1, 0x01, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 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, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x1d, 0x0a, 0x07, 0x43, 0x53, 0x56, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x97, 0x03, 0x0a, 0x08, 0x4c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x65, 0x77, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x65, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x3f, 0x0a, 0x1c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x74, 0x72, 0x79, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x74, 0x72, 0x79, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x59, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x6d, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x6d, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x84, 0x02, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x70, 0x69, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x61, 0x70, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x08, 0x63, 0x73, 0x76, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x53, 0x56, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x63, 0x73, 0x76, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x09, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0xfd, 0x01, 0x0a, 0x08, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x4a, 0x0a, 0x22, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x69, 0x64, 0x65, 0x52, 0x07, 0x62, 0x75, 0x79, 0x53, 0x69, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x69, 0x64, 0x65, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x22, 0x39, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x69, 0x73, 0x6b, 0x46, 0x72, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0xd3, 0x03, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x44, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x10, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x10, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x38, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x12, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x11, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x11, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x81, 0x02, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x69, 0x76, 0x65, 0x54, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x22, 0xe6, 0x02, 0x0a, 0x1e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x16, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x52, 0x75, 0x6e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x04, 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, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x05, 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, 0x0f, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x41, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0xa0, 0x01, 0x0a, 0x20, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x52, 0x75, 0x6e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x21, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x22, 0x22, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3c, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x22, 0x22, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x11, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x15, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x3b, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x32, 0xbe, 0x07, 0x0a, 0x11, 0x42, 0x61, 0x63, 0x6b, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x66, 0x72, 0x6f, 0x6d, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x19, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x66, 0x72, 0x6f, 0x6d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x61, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1a, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x55, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x17, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x65, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x61, 0x6c, 0x6c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x51, 0x0a, 0x08, 0x53, 0x74, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x22, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x61, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1a, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x6c, 0x6c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x55, 0x0a, 0x09, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x17, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x2a, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x65, 0x0a, 0x0d, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x72, 0x61, 0x73, 0x68, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x67, 0x6f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x62, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_btrpc_proto_rawDescOnce sync.Once file_btrpc_proto_rawDescData = file_btrpc_proto_rawDesc ) func file_btrpc_proto_rawDescGZIP() []byte { file_btrpc_proto_rawDescOnce.Do(func() { file_btrpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_btrpc_proto_rawDescData) }) return file_btrpc_proto_rawDescData } var file_btrpc_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_btrpc_proto_goTypes = []interface{}{ (*StrategySettings)(nil), // 0: btrpc.StrategySettings (*CustomSettings)(nil), // 1: btrpc.CustomSettings (*ExchangeLevelFunding)(nil), // 2: btrpc.ExchangeLevelFunding (*FundingSettings)(nil), // 3: btrpc.FundingSettings (*PurchaseSide)(nil), // 4: btrpc.PurchaseSide (*SpotDetails)(nil), // 5: btrpc.SpotDetails (*FuturesDetails)(nil), // 6: btrpc.FuturesDetails (*CurrencySettings)(nil), // 7: btrpc.CurrencySettings (*ApiData)(nil), // 8: btrpc.ApiData (*DbConfig)(nil), // 9: btrpc.DbConfig (*DbData)(nil), // 10: btrpc.DbData (*CsvData)(nil), // 11: btrpc.CsvData (*DatabaseConnectionDetails)(nil), // 12: btrpc.DatabaseConnectionDetails (*DatabaseConfig)(nil), // 13: btrpc.DatabaseConfig (*DatabaseData)(nil), // 14: btrpc.DatabaseData (*CSVData)(nil), // 15: btrpc.CSVData (*LiveData)(nil), // 16: btrpc.LiveData (*Credentials)(nil), // 17: btrpc.Credentials (*ExchangeCredentials)(nil), // 18: btrpc.ExchangeCredentials (*DataSettings)(nil), // 19: btrpc.DataSettings (*Leverage)(nil), // 20: btrpc.Leverage (*PortfolioSettings)(nil), // 21: btrpc.PortfolioSettings (*StatisticSettings)(nil), // 22: btrpc.StatisticSettings (*Config)(nil), // 23: btrpc.Config (*TaskSummary)(nil), // 24: btrpc.TaskSummary (*ExecuteStrategyFromFileRequest)(nil), // 25: btrpc.ExecuteStrategyFromFileRequest (*ExecuteStrategyResponse)(nil), // 26: btrpc.ExecuteStrategyResponse (*ExecuteStrategyFromConfigRequest)(nil), // 27: btrpc.ExecuteStrategyFromConfigRequest (*ListAllTasksRequest)(nil), // 28: btrpc.ListAllTasksRequest (*ListAllTasksResponse)(nil), // 29: btrpc.ListAllTasksResponse (*StopTaskRequest)(nil), // 30: btrpc.StopTaskRequest (*StopTaskResponse)(nil), // 31: btrpc.StopTaskResponse (*StartTaskRequest)(nil), // 32: btrpc.StartTaskRequest (*StartTaskResponse)(nil), // 33: btrpc.StartTaskResponse (*StartAllTasksRequest)(nil), // 34: btrpc.StartAllTasksRequest (*StartAllTasksResponse)(nil), // 35: btrpc.StartAllTasksResponse (*StopAllTasksRequest)(nil), // 36: btrpc.StopAllTasksRequest (*StopAllTasksResponse)(nil), // 37: btrpc.StopAllTasksResponse (*ClearTaskRequest)(nil), // 38: btrpc.ClearTaskRequest (*ClearTaskResponse)(nil), // 39: btrpc.ClearTaskResponse (*ClearAllTasksRequest)(nil), // 40: btrpc.ClearAllTasksRequest (*ClearAllTasksResponse)(nil), // 41: btrpc.ClearAllTasksResponse (*timestamppb.Timestamp)(nil), // 42: google.protobuf.Timestamp } var file_btrpc_proto_depIdxs = []int32{ 1, // 0: btrpc.StrategySettings.custom_settings:type_name -> btrpc.CustomSettings 2, // 1: btrpc.FundingSettings.exchange_level_funding:type_name -> btrpc.ExchangeLevelFunding 20, // 2: btrpc.FuturesDetails.leverage:type_name -> btrpc.Leverage 4, // 3: btrpc.CurrencySettings.buy_side:type_name -> btrpc.PurchaseSide 4, // 4: btrpc.CurrencySettings.sell_side:type_name -> btrpc.PurchaseSide 5, // 5: btrpc.CurrencySettings.spot_details:type_name -> btrpc.SpotDetails 6, // 6: btrpc.CurrencySettings.futures_details:type_name -> btrpc.FuturesDetails 42, // 7: btrpc.ApiData.start_date:type_name -> google.protobuf.Timestamp 42, // 8: btrpc.ApiData.end_date:type_name -> google.protobuf.Timestamp 42, // 9: btrpc.DbData.start_date:type_name -> google.protobuf.Timestamp 42, // 10: btrpc.DbData.end_date:type_name -> google.protobuf.Timestamp 9, // 11: btrpc.DbData.config:type_name -> btrpc.DbConfig 12, // 12: btrpc.DatabaseConfig.config:type_name -> btrpc.DatabaseConnectionDetails 42, // 13: btrpc.DatabaseData.start_date:type_name -> google.protobuf.Timestamp 42, // 14: btrpc.DatabaseData.end_date:type_name -> google.protobuf.Timestamp 13, // 15: btrpc.DatabaseData.config:type_name -> btrpc.DatabaseConfig 17, // 16: btrpc.LiveData.credentials:type_name -> btrpc.Credentials 18, // 17: btrpc.Credentials.keys:type_name -> btrpc.ExchangeCredentials 8, // 18: btrpc.DataSettings.api_data:type_name -> btrpc.ApiData 14, // 19: btrpc.DataSettings.database_data:type_name -> btrpc.DatabaseData 15, // 20: btrpc.DataSettings.csv_data:type_name -> btrpc.CSVData 16, // 21: btrpc.DataSettings.live_data:type_name -> btrpc.LiveData 20, // 22: btrpc.PortfolioSettings.leverage:type_name -> btrpc.Leverage 4, // 23: btrpc.PortfolioSettings.buy_side:type_name -> btrpc.PurchaseSide 4, // 24: btrpc.PortfolioSettings.sell_side:type_name -> btrpc.PurchaseSide 0, // 25: btrpc.Config.strategy_settings:type_name -> btrpc.StrategySettings 3, // 26: btrpc.Config.funding_settings:type_name -> btrpc.FundingSettings 7, // 27: btrpc.Config.currency_settings:type_name -> btrpc.CurrencySettings 19, // 28: btrpc.Config.data_settings:type_name -> btrpc.DataSettings 21, // 29: btrpc.Config.portfolio_settings:type_name -> btrpc.PortfolioSettings 22, // 30: btrpc.Config.statistic_settings:type_name -> btrpc.StatisticSettings 42, // 31: btrpc.ExecuteStrategyFromFileRequest.start_time_override:type_name -> google.protobuf.Timestamp 42, // 32: btrpc.ExecuteStrategyFromFileRequest.end_time_override:type_name -> google.protobuf.Timestamp 24, // 33: btrpc.ExecuteStrategyResponse.task:type_name -> btrpc.TaskSummary 23, // 34: btrpc.ExecuteStrategyFromConfigRequest.config:type_name -> btrpc.Config 24, // 35: btrpc.ListAllTasksResponse.tasks:type_name -> btrpc.TaskSummary 24, // 36: btrpc.StopTaskResponse.stopped_task:type_name -> btrpc.TaskSummary 24, // 37: btrpc.StopAllTasksResponse.tasks_stopped:type_name -> btrpc.TaskSummary 24, // 38: btrpc.ClearTaskResponse.cleared_task:type_name -> btrpc.TaskSummary 24, // 39: btrpc.ClearAllTasksResponse.cleared_tasks:type_name -> btrpc.TaskSummary 24, // 40: btrpc.ClearAllTasksResponse.remaining_tasks:type_name -> btrpc.TaskSummary 25, // 41: btrpc.BacktesterService.ExecuteStrategyFromFile:input_type -> btrpc.ExecuteStrategyFromFileRequest 27, // 42: btrpc.BacktesterService.ExecuteStrategyFromConfig:input_type -> btrpc.ExecuteStrategyFromConfigRequest 28, // 43: btrpc.BacktesterService.ListAllTasks:input_type -> btrpc.ListAllTasksRequest 32, // 44: btrpc.BacktesterService.StartTask:input_type -> btrpc.StartTaskRequest 34, // 45: btrpc.BacktesterService.StartAllTasks:input_type -> btrpc.StartAllTasksRequest 30, // 46: btrpc.BacktesterService.StopTask:input_type -> btrpc.StopTaskRequest 36, // 47: btrpc.BacktesterService.StopAllTasks:input_type -> btrpc.StopAllTasksRequest 38, // 48: btrpc.BacktesterService.ClearTask:input_type -> btrpc.ClearTaskRequest 40, // 49: btrpc.BacktesterService.ClearAllTasks:input_type -> btrpc.ClearAllTasksRequest 26, // 50: btrpc.BacktesterService.ExecuteStrategyFromFile:output_type -> btrpc.ExecuteStrategyResponse 26, // 51: btrpc.BacktesterService.ExecuteStrategyFromConfig:output_type -> btrpc.ExecuteStrategyResponse 29, // 52: btrpc.BacktesterService.ListAllTasks:output_type -> btrpc.ListAllTasksResponse 33, // 53: btrpc.BacktesterService.StartTask:output_type -> btrpc.StartTaskResponse 35, // 54: btrpc.BacktesterService.StartAllTasks:output_type -> btrpc.StartAllTasksResponse 31, // 55: btrpc.BacktesterService.StopTask:output_type -> btrpc.StopTaskResponse 37, // 56: btrpc.BacktesterService.StopAllTasks:output_type -> btrpc.StopAllTasksResponse 39, // 57: btrpc.BacktesterService.ClearTask:output_type -> btrpc.ClearTaskResponse 41, // 58: btrpc.BacktesterService.ClearAllTasks:output_type -> btrpc.ClearAllTasksResponse 50, // [50:59] is the sub-list for method output_type 41, // [41:50] is the sub-list for method input_type 41, // [41:41] is the sub-list for extension type_name 41, // [41:41] is the sub-list for extension extendee 0, // [0:41] is the sub-list for field type_name } func init() { file_btrpc_proto_init() } func file_btrpc_proto_init() { if File_btrpc_proto != nil { return } if !protoimpl.UnsafeEnabled { file_btrpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StrategySettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExchangeLevelFunding); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PurchaseSide); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpotDetails); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FuturesDetails); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CurrencySettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApiData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DbConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DbData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CsvData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DatabaseConnectionDetails); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DatabaseConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DatabaseData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSVData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LiveData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[17].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_btrpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExchangeCredentials); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Leverage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortfolioSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatisticSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Config); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TaskSummary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecuteStrategyFromFileRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecuteStrategyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecuteStrategyFromConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAllTasksRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAllTasksResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopTaskRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopTaskResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartTaskRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartTaskResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartAllTasksRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartAllTasksResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopAllTasksRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopAllTasksResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClearTaskRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClearTaskResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClearAllTasksRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_btrpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClearAllTasksResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_btrpc_proto_rawDesc, NumEnums: 0, NumMessages: 42, NumExtensions: 0, NumServices: 1, }, GoTypes: file_btrpc_proto_goTypes, DependencyIndexes: file_btrpc_proto_depIdxs, MessageInfos: file_btrpc_proto_msgTypes, }.Build() File_btrpc_proto = out.File file_btrpc_proto_rawDesc = nil file_btrpc_proto_goTypes = nil file_btrpc_proto_depIdxs = nil }