3 option optimize_for = LITE_RUNTIME;
5 import "identity.proto";
6 message ClientVersion {
7 optional string client = 1;
8 optional string version_name = 2;
9 optional int64 version_code = 3;
10 optional string certificate_fingerprint = 4;
13 optional StatusCode code = 1;
14 optional string message = 2;
16 message PushServiceRegistration {
17 optional PushService service = 1;
19 message DeviceIdentifiers {
20 optional int32 ulr_device_id = 1;
21 optional DeviceIdentity device_identity = 2;
22 optional Identity registrant = 3;
26 repeated string email = 2;
28 optional string id = 1;
29 optional TokenStatus status = 3;
30 optional Debug debug = 4;
32 message DeviceFingerprint {
33 optional string manufacturer = 1;
34 optional string model = 2;
35 optional PlatformType type = 3;
36 optional string platform_version = 4;
38 message TokenTechnology {
39 optional TokenMedium medium = 1;
40 repeated TokenInstructionType instruction_type = 2;
42 message DeviceCapabilities {
43 repeated TokenTechnology token_technology = 2;
45 message TokenInstruction {
46 optional TokenInstructionType token_instruction_type = 1;
47 optional TokenMedium medium = 2;
48 optional string token_id = 4;
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;
59 optional DeviceCapabilities capabilities = 1;
60 repeated Directive active_directive = 2;
63 optional string served_by_task = 1;
64 repeated string token_id = 3;
65 optional int64 request_time_millis = 4;
67 message TokenObservation {
68 optional string token_id = 1;
69 repeated TokenSignals signals = 2;
71 message TokenSignals {
72 optional TokenMedium medium = 1;
73 optional int32 rssi = 2;
74 optional int64 observed_time_millis = 3;
76 message AccessPolicy {
77 optional int64 ttl_millis = 1;
81 optional AclType acl_type = 1;
82 optional string named_acl_name = 2;
83 optional bytes referenced_acl_consistency_token = 5;
85 message 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;
92 message 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.
98 optional bool use_audible = 99;
100 message SubscribedMessage {
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;
109 repeated string subscription_id = 1;
110 optional Message published_message = 2;
111 optional Debug debug = 3;
114 optional MessageType type = 2;
115 optional bytes payload = 3;
117 message MessageType {
118 optional string type = 2;
120 message 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;
127 message MessageResult {
128 optional string published_message_id = 1;
130 message SubscriptionResult {
131 optional string subscription_id = 1;
133 message OptInStateFilter {
134 repeated OptInState allowed_opt_in_state = 1;