syntax = "proto3"; package protobuf; message PushNotificationRegistration { enum TokenType { UNKNOWN_TOKEN_TYPE = 0; APN_TOKEN = 1; FIREBASE_TOKEN = 2; } TokenType token_type = 1; string token = 2; string installation_id = 3; string access_token = 4; bool enabled = 5; uint64 version = 6; repeated bytes allowed_user_list = 7; repeated bytes blocked_chat_list = 8; bool unregister = 9; bytes grant = 10; } message PushNotificationRegistrationResponse { bool success = 1; ErrorType error = 2; bytes request_id = 3; enum ErrorType { UNKNOWN_ERROR_TYPE = 0; MALFORMED_MESSAGE = 1; VERSION_MISMATCH = 2; UNSUPPORTED_TOKEN_TYPE = 3; INTERNAL_ERROR = 4; } } message PushNotificationAdvertisementInfo { bytes public_key = 1; string access_token = 2; string installation_id = 3; } message ContactCodeAdvertisement { repeated PushNotificationAdvertisementInfo push_notification_info = 1; } message PushNotificationQuery { repeated bytes public_keys = 1; } message PushNotificationQueryInfo { string access_token = 1; string installation_id = 2; bytes public_key = 3; repeated bytes allowed_user_list = 4; bytes grant = 5; uint64 version = 6; } message PushNotificationQueryResponse { repeated PushNotificationQueryInfo info = 1; bytes message_id = 2; bool success = 3; } message PushNotification { string access_token = 1; string chat_id = 2; bytes public_key = 3; string installation_id = 4; bytes message = 5; } message PushNotificationRequest { repeated PushNotification requests = 1; bytes message_id = 2; } message PushNotificationReport { bool success = 1; ErrorType error = 2; enum ErrorType { UNKNOWN_ERROR_TYPE = 0; WRONG_TOKEN = 1; INTERNAL_ERROR = 2; NOT_REGISTERED = 3; } bytes public_key = 3; string installation_id = 4; } message PushNotificationResponse { bytes message_id = 1; repeated PushNotificationReport reports = 2; }