syntax = "proto2"; package copresence; option optimize_for = LITE_RUNTIME; import "codes.proto"; import "enums.proto"; import "data.proto"; message RequestHeader { optional ClientVersion client_version = 4; optional ClientVersion framework_version = 5; optional int64 current_time_millis = 6; optional string registered_device_id = 7; repeated string experiment_override = 8; optional DeviceFingerprint device_fingerprint = 10; optional string configuration_etag = 11; } message ResponseHeader { optional DebugInfo debug_info = 2; optional Status status = 3; } message RegisterDeviceRequest { optional RequestHeader header = 1; optional PushServiceRegistration push_service = 5; optional DeviceIdentifiers device_identifiers = 6; } message RegisterDeviceResponse { optional ResponseHeader header = 1; optional string registered_device_id = 2; } message ReportRequest { optional RequestHeader header = 1; optional ManageMessagesRequest manage_messages_request = 2; optional ManageSubscriptionsRequest manage_subscriptions_request = 3; optional UpdateSignalsRequest update_signals_request = 4; } message UpdateSignalsRequest { repeated TokenObservation token_observation = 1; optional DeviceState state = 3; } message ManageMessagesRequest { repeated PublishedMessage message_to_publish = 1; repeated string id_to_unpublish = 2; } message ManageSubscriptionsRequest { repeated Subscription subscription = 1; repeated string id_to_unsubscribe = 2; } message ReportResponse { optional ResponseHeader header = 1; optional ManageMessagesResponse manage_messages_response = 2; optional ManageSubscriptionsResponse manage_subscriptions_response = 3; optional UpdateSignalsResponse update_signals_response = 4; } message UpdateSignalsResponse { optional util.error.Code status = 1; repeated Token token = 2; repeated SubscribedMessage message = 3; repeated Directive directive = 4; } message ManageMessagesResponse { optional util.error.Code status = 1; repeated MessageResult published_message_result = 3; } message ManageSubscriptionsResponse { optional util.error.Code status = 1; repeated SubscriptionResult subscription_result = 3; }