blob: b7acb42eeab0b77873ef98ca36a7fa76aaa61f87 [file] [log] [blame]
syntax = "proto2";
package copresence;
option optimize_for = LITE_RUNTIME;
import "enums.proto";
import "identity.proto";
message ClientVersion {
optional string client = 1;
optional string version_name = 2;
optional int64 version_code = 3;
optional string certificate_fingerprint = 4;
}
message Status {
optional StatusCode code = 1;
optional string message = 2;
}
message PushServiceRegistration {
optional PushService service = 1;
optional GcmRegistration gcm_registration = 2;
}
message GcmRegistration {
optional string device_token = 1;
}
message DeviceIdentifiers {
optional int32 ulr_device_id = 1;
optional DeviceIdentity device_identity = 2;
optional Identity registrant = 3;
}
message Token {
message Debug {
repeated string email = 2;
}
optional string id = 1;
optional TokenStatus status = 3;
optional Debug debug = 4;
}
message DeviceFingerprint {
optional string manufacturer = 1;
optional string model = 2;
optional PlatformType type = 3;
optional string platform_version = 4;
}
message TokenTechnology {
optional TokenMedium medium = 1;
repeated TokenInstructionType instruction_type = 2;
}
message DeviceCapabilities {
repeated TokenTechnology token_technology = 2;
}
message TokenInstruction {
optional TokenInstructionType token_instruction_type = 1;
optional TokenMedium medium = 2;
optional string token_id = 4;
}
message Directive {
optional InstructionType instruction_type = 1;
optional TokenInstruction token_instruction = 2;
optional int64 delay_millis = 3;
optional int64 ttl_millis = 4;
optional string published_message_id = 5;
optional string subscription_id = 6;
}
message DeviceState {
optional DeviceCapabilities capabilities = 1;
repeated Directive active_directive = 2;
}
message DebugInfo {
optional string served_by_task = 1;
repeated string token_id = 3;
optional int64 request_time_millis = 4;
}
message TokenObservation {
optional string token_id = 1;
repeated TokenSignals signals = 2;
}
message TokenSignals {
optional TokenMedium medium = 1;
optional int32 rssi = 2;
optional int64 observed_time_millis = 3;
}
message AccessPolicy {
optional int64 ttl_millis = 1;
optional Acl acl = 2;
}
message Acl {
optional AclType acl_type = 1;
optional string named_acl_name = 2;
optional bytes referenced_acl_consistency_token = 5;
}
message PublishedMessage {
optional string id = 1;
optional AccessPolicy access_policy = 2;
optional Message message = 3;
optional TokenExchangeStrategy token_exchange_strategy = 5;
optional OptInStateFilter opt_in_state_filter = 6;
}
message TokenExchangeStrategy {
optional AudioConfiguration audio_configuration = 1;
optional BroadcastScanConfiguration broadcast_scan_configuration = 2;
}
message SubscribedMessage {
message Debug {
optional string published_message_id = 1;
optional string publisher_identity_id = 2;
optional string publisher_device_id = 3;
optional int64 creation_timestamp_millis = 4;
optional int64 ttl_millis = 5;
optional TokenExchangeStrategy token_exchange_strategy = 7;
}
repeated string subscription_id = 1;
optional Message published_message = 2;
optional Debug debug = 3;
}
message Message {
optional MessageType type = 2;
optional bytes payload = 3;
}
message MessageType {
optional string type = 2;
}
message Subscription {
optional string id = 1;
optional int64 ttl_millis = 3;
optional MessageType message_type = 4;
optional TokenExchangeStrategy token_exchange_strategy = 7;
optional OptInStateFilter opt_in_state_filter = 8;
}
message MessageResult {
optional string published_message_id = 1;
}
message SubscriptionResult {
optional string subscription_id = 1;
}
message OptInStateFilter {
repeated OptInState allowed_opt_in_state = 1;
}