// signal.proto // Copyright (C) 2013 LEAP // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . package leap.common.events; option py_generic_services = true; // These are the events that can be signaled using the events mechanism. enum Event { CLIENT_SESSION_ID = 1; CLIENT_UID = 2; SOLEDAD_CREATING_KEYS = 3; SOLEDAD_DONE_CREATING_KEYS = 4; SOLEDAD_UPLOADING_KEYS = 5; SOLEDAD_DONE_UPLOADING_KEYS = 6; SOLEDAD_DOWNLOADING_KEYS = 7; SOLEDAD_DONE_DOWNLOADING_KEYS = 8; SOLEDAD_NEW_DATA_TO_SYNC = 9; SOLEDAD_DONE_DATA_SYNC = 10; UPDATER_NEW_UPDATES = 11; UPDATER_DONE_UPDATING = 12; RAISE_WINDOW = 13; SMTP_SERVICE_STARTED = 14; SMTP_SERVICE_FAILED_TO_START = 15; SMTP_RECIPIENT_ACCEPTED_ENCRYPTED = 16; SMTP_RECIPIENT_ACCEPTED_UNENCRYPTED = 17; SMTP_RECIPIENT_REJECTED = 18; SMTP_START_ENCRYPT_AND_SIGN = 19; SMTP_END_ENCRYPT_AND_SIGN = 20; SMTP_START_SIGN = 21; SMTP_END_SIGN = 22; SMTP_SEND_MESSAGE_START = 23; SMTP_SEND_MESSAGE_SUCCESS = 24; SMTP_SEND_MESSAGE_ERROR = 25; SMTP_CONNECTION_LOST = 26; IMAP_SERVICE_STARTED = 30; IMAP_SERVICE_FAILED_TO_START = 31; IMAP_CLIENT_LOGIN = 32; IMAP_FETCHED_INCOMING = 33; IMAP_MSG_PROCESSING = 34; IMAP_MSG_DECRYPTED = 35; IMAP_MSG_SAVED_LOCALLY = 36; IMAP_MSG_DELETED_INCOMING = 37; IMAP_UNHANDLED_ERROR = 38; IMAP_UNREAD_MAIL = 39; KEYMANAGER_LOOKING_FOR_KEY = 40; KEYMANAGER_KEY_FOUND = 41; KEYMANAGER_KEY_NOT_FOUND = 42; KEYMANAGER_STARTED_KEY_GENERATION = 43; KEYMANAGER_FINISHED_KEY_GENERATION = 44; KEYMANAGER_DONE_UPLOADING_KEYS = 45; SOLEDAD_INVALID_AUTH_TOKEN = 46; } // A SignalRequest is the type of the message sent from one component to request // that a signal be sent to every registered component. message SignalRequest { required Event event = 1; required string content = 2; required string mac_method = 3; required bytes mac = 4; optional string enc_method = 5; optional bool error_occurred = 6; } // A RegisterRequest message tells the server that a component wants to // be signaled whenever a specific event occurs. message RegisterRequest { required Event event = 1; required int32 port = 2; required string mac_method = 3; required bytes mac = 4; } // An UnregisterRequest message tells the server that a component does not // want to be signaled when a specific event occurs. message UnregisterRequest { required Event event = 1; required int32 port = 2; required string mac_method = 3; required bytes mac = 4; } // A PingRequest message is used to find out if a server or component is // alive. message PingRequest { } // The EventResponse is the message sent back by server and components after // they receive other kinds of requests. message EventResponse { enum Status { OK = 1; UNAUTH = 2; ERROR = 3; } required Status status = 1; optional string result = 2; } // The EventsServerService is the service provided by the server. service EventsServerService { rpc ping(PingRequest) returns (EventResponse); rpc register(RegisterRequest) returns (EventResponse); rpc unregister(UnregisterRequest) returns (EventResponse); rpc signal(SignalRequest) returns (EventResponse); } // EventsComponentService is the service provided by components (clients). service EventsClientService { rpc ping(PingRequest) returns (EventResponse); rpc signal(SignalRequest) returns (EventResponse); }