syntax = "proto3"; package bot; service BotService { rpc CreateBot (CreateBotRequest) returns (BotCredentialsResponse); rpc RevokeBotToken (RevokeBotTokenRequest) returns (BotCredentialsResponse); rpc SetBotWebApp (SetBotWebAppRequest) returns (BotResponse); rpc ListMyBots (ListMyBotsRequest) returns (ListBotsResponse); rpc GetBot (GetBotRequest) returns (BotResponse); rpc UpdateBot (UpdateBotRequest) returns (BotResponse); rpc UpdateBotProfile (UpdateBotProfileRequest) returns (BotResponse); rpc DeleteBot (DeleteBotRequest) returns (MutationResponse); rpc ListAllBots (ListAllBotsRequest) returns (ListBotsResponse); rpc SetBotActive (SetBotActiveRequest) returns (BotResponse); rpc GetBotMetrics (GetBotMetricsRequest) returns (BotMetricsResponse); rpc ValidateBotToken (ValidateBotTokenRequest) returns (ValidatedBotResponse); rpc ExecuteBotMethod (ExecuteBotMethodRequest) returns (ExecuteBotMethodResponse); rpc ValidateWebAppInitData (ValidateWebAppInitDataRequest) returns (ValidateWebAppInitDataResponse); rpc SubmitBotInboundMessage (SubmitBotInboundMessageRequest) returns (SubmitBotInboundMessageResponse); rpc SubmitBotCallbackQuery (SubmitBotCallbackQueryRequest) returns (SubmitBotCallbackQueryResponse); rpc ListBotChatMessages (ListBotChatMessagesRequest) returns (ListBotChatMessagesResponse); } message CreateBotRequest { string ownerId = 1; string name = 2; string username = 3; } message RevokeBotTokenRequest { string requesterId = 1; string botId = 2; bool isSuperAdmin = 3; } message SetBotWebAppRequest { string requesterId = 1; string botId = 2; optional string webAppUrl = 3; bool isSuperAdmin = 4; } message ListMyBotsRequest { string ownerId = 1; } message GetBotRequest { string requesterId = 1; string botId = 2; bool isSuperAdmin = 3; } message UpdateBotRequest { string requesterId = 1; string botId = 2; optional string name = 3; optional string username = 4; bool isSuperAdmin = 5; } message UpdateBotProfileRequest { string requesterId = 1; string botId = 2; optional string description = 3; optional string aboutText = 4; optional string botPicUrl = 5; optional string menuButtonJson = 6; optional string menuButtonUrl = 7; optional string menuButtonText = 8; bool isSuperAdmin = 9; } message DeleteBotRequest { string requesterId = 1; string botId = 2; bool isSuperAdmin = 3; } message ListAllBotsRequest { string requesterId = 1; bool isSuperAdmin = 2; optional string search = 3; int32 page = 4; int32 limit = 5; } message SetBotActiveRequest { string requesterId = 1; string botId = 2; bool isActive = 3; bool isSuperAdmin = 4; } message GetBotMetricsRequest { string requesterId = 1; bool isSuperAdmin = 2; } message ValidateBotTokenRequest { string token = 1; } message ExecuteBotMethodRequest { string token = 1; string method = 2; string payloadJson = 3; } message ValidateWebAppInitDataRequest { string initData = 1; string botToken = 2; } message BotOwnerResponse { string id = 1; string displayName = 2; optional string username = 3; } message BotResponse { string id = 1; string name = 2; string username = 3; string tokenPrefix = 4; string ownerId = 5; optional string webAppUrl = 6; bool isActive = 7; bool isSystemBot = 8; string createdAt = 9; string updatedAt = 10; optional BotOwnerResponse owner = 11; int32 messageCount = 12; int32 chatCount = 13; optional string description = 14; optional string aboutText = 15; optional string botPicUrl = 16; optional string menuButtonJson = 17; } message BotCredentialsResponse { BotResponse bot = 1; string token = 2; } message ListBotsResponse { repeated BotResponse bots = 1; int32 total = 2; } message BotMetricsResponse { int32 totalBots = 1; int32 activeBots = 2; int32 blockedBots = 3; int32 totalMessages = 4; int32 totalChats = 5; } message ValidatedBotResponse { string id = 1; string name = 2; string username = 3; string ownerId = 4; optional string webAppUrl = 5; bool isActive = 6; bool isSystemBot = 7; } message ExecuteBotMethodResponse { string responseJson = 1; int32 httpStatus = 2; } message ValidateWebAppInitDataResponse { bool valid = 1; optional string userJson = 2; optional string authDate = 3; optional string error = 4; } message MutationResponse { int32 count = 1; } message SubmitBotInboundMessageRequest { string senderUserId = 1; string botRef = 2; string text = 3; optional string roomId = 4; } message SubmitBotInboundMessageResponse { int32 updateId = 1; int32 messageId = 2; string chatId = 3; } message SubmitBotCallbackQueryRequest { string senderUserId = 1; string botRef = 2; int32 messageId = 3; string callbackData = 4; } message SubmitBotCallbackQueryResponse { int32 updateId = 1; string callbackQueryId = 2; int32 messageId = 3; } message ListBotChatMessagesRequest { string userId = 1; string botRef = 2; optional string roomId = 3; } message BotChatMessageItem { string id = 1; string direction = 2; string text = 3; string messageType = 4; int32 messageId = 5; string createdAt = 6; optional string replyMarkupJson = 7; bool isPinned = 8; optional string pinnedAt = 9; } message ListBotChatMessagesResponse { repeated BotChatMessageItem messages = 1; string botUsername = 2; string botDisplayName = 3; optional string composerWebAppUrl = 4; optional string botId = 5; optional string botOwnerId = 6; optional string manageWebAppUrl = 7; optional string composerMenuButtonJson = 8; }