data.proto revision 6e8cce623b6e4fe0c9e4af605d675dd9d0338c38
1syntax = "proto2";
2package copresence;
3option optimize_for = LITE_RUNTIME;
4import "enums.proto";
5import "identity.proto";
6message ClientVersion {
7  optional string client = 1;
8  optional string version_name = 2;
9  optional int64 version_code = 3;
10  optional string certificate_fingerprint = 4;
11}
12message Status {
13  optional StatusCode code = 1;
14  optional string message = 2;
15}
16message PushServiceRegistration {
17  optional PushService service = 1;
18}
19message DeviceIdentifiers {
20  optional int32 ulr_device_id = 1;
21  optional DeviceIdentity device_identity = 2;
22  optional Identity registrant = 3;
23}
24message Token {
25  message Debug {
26    repeated string email = 2;
27  }
28  optional string id = 1;
29  optional TokenStatus status = 3;
30  optional Debug debug = 4;
31}
32message DeviceFingerprint {
33  optional string manufacturer = 1;
34  optional string model = 2;
35  optional PlatformType type = 3;
36  optional string platform_version = 4;
37}
38message TokenTechnology {
39  optional TokenMedium medium = 1;
40  repeated TokenInstructionType instruction_type = 2;
41}
42message DeviceCapabilities {
43  repeated TokenTechnology token_technology = 2;
44}
45message TokenInstruction {
46  optional TokenInstructionType token_instruction_type = 1;
47  optional TokenMedium medium = 2;
48  optional string token_id = 4;
49}
50message Directive {
51  optional InstructionType instruction_type = 1;
52  optional TokenInstruction token_instruction = 2;
53  optional int64 delay_millis = 3;
54  optional int64 ttl_millis = 4;
55  optional string published_message_id = 5;
56  optional string subscription_id = 6;
57}
58message DeviceState {
59  optional DeviceCapabilities capabilities = 1;
60  repeated Directive active_directive = 2;
61}
62message DebugInfo {
63  optional string served_by_task = 1;
64  repeated string token_id = 3;
65  optional int64 request_time_millis = 4;
66}
67message TokenObservation {
68  optional string token_id = 1;
69  repeated TokenSignals signals = 2;
70}
71message TokenSignals {
72  optional TokenMedium medium = 1;
73  optional int32 rssi = 2;
74  optional int64 observed_time_millis = 3;
75}
76message AccessPolicy {
77  optional int64 ttl_millis = 1;
78  optional Acl acl = 2;
79}
80message Acl {
81  optional AclType acl_type = 1;
82  optional string named_acl_name = 2;
83  optional bytes referenced_acl_consistency_token = 5;
84}
85message PublishedMessage {
86  optional string id = 1;
87  optional AccessPolicy access_policy = 2;
88  optional Message message = 3;
89  optional TokenExchangeStrategy token_exchange_strategy = 5;
90  optional OptInStateFilter opt_in_state_filter = 6;
91}
92message TokenExchangeStrategy {
93  optional AudioConfiguration audio_configuration = 1;
94  optional BroadcastScanConfiguration broadcast_scan_configuration = 2;
95  // TODO(rkc): Horrible hack. Get rid of this once the server tells us whether
96  // or not to use audible for a given publish or subscribe.
97  // http://b/16849245/
98  optional bool use_audible = 99;
99}
100message SubscribedMessage {
101  message Debug {
102    optional string published_message_id = 1;
103    optional string publisher_identity_id = 2;
104    optional string publisher_device_id = 3;
105    optional int64 creation_timestamp_millis = 4;
106    optional int64 ttl_millis = 5;
107    optional TokenExchangeStrategy token_exchange_strategy = 7;
108  }
109  repeated string subscription_id = 1;
110  optional Message published_message = 2;
111  optional Debug debug = 3;
112}
113message Message {
114  optional MessageType type = 2;
115  optional bytes payload = 3;
116}
117message MessageType {
118  optional string type = 2;
119}
120message Subscription {
121  optional string id = 1;
122  optional int64 ttl_millis = 3;
123  optional MessageType message_type = 4;
124  optional TokenExchangeStrategy token_exchange_strategy = 7;
125  optional OptInStateFilter opt_in_state_filter = 8;
126}
127message MessageResult {
128  optional string published_message_id = 1;
129}
130message SubscriptionResult {
131  optional string subscription_id = 1;
132}
133message OptInStateFilter {
134  repeated OptInState allowed_opt_in_state = 1;
135}
136