|  |  |  | package textsecure;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | option java_package = "org.whispersystems.textsecure.push";
 | 
					
						
							|  |  |  | option java_outer_classname = "PushMessageProtos";
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | message IncomingPushMessageSignal {
 | 
					
						
							|  |  |  |   enum Type {
 | 
					
						
							|  |  |  |     UNKNOWN       = 0;
 | 
					
						
							|  |  |  |     CIPHERTEXT    = 1;
 | 
					
						
							|  |  |  |     KEY_EXCHANGE  = 2;
 | 
					
						
							|  |  |  |     PREKEY_BUNDLE = 3;
 | 
					
						
							|  |  |  |     PLAINTEXT     = 4;
 | 
					
						
							|  |  |  |     RECEIPT       = 5;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  |   optional Type   type         = 1;
 | 
					
						
							|  |  |  |   optional string source       = 2;
 | 
					
						
							|  |  |  |   optional uint32 sourceDevice = 7;
 | 
					
						
							|  |  |  |   optional string relay        = 3;
 | 
					
						
							|  |  |  |   optional uint64 timestamp    = 5;
 | 
					
						
							|  |  |  |   optional bytes  message      = 6; // Contains an encrypted PushMessageContent
 | 
					
						
							|  |  |  | //  repeated string destinations = 4; // No longer supported
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | message PushMessageContent {
 | 
					
						
							|  |  |  |   message AttachmentPointer {
 | 
					
						
							|  |  |  |     optional fixed64 id          = 1;
 | 
					
						
							|  |  |  |     optional string  contentType = 2;
 | 
					
						
							|  |  |  |     optional bytes   key         = 3;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   message GroupContext {
 | 
					
						
							|  |  |  |     enum Type {
 | 
					
						
							|  |  |  |       UNKNOWN = 0;
 | 
					
						
							|  |  |  |       UPDATE  = 1;
 | 
					
						
							|  |  |  |       DELIVER = 2;
 | 
					
						
							|  |  |  |       QUIT    = 3;
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  |     optional bytes             id      = 1;
 | 
					
						
							|  |  |  |     optional Type              type    = 2;
 | 
					
						
							|  |  |  |     optional string            name    = 3;
 | 
					
						
							|  |  |  |     repeated string            members = 4;
 | 
					
						
							|  |  |  |     optional AttachmentPointer avatar  = 5;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   message SyncMessageContext {
 | 
					
						
							|  |  |  |     optional string destination = 1;
 | 
					
						
							|  |  |  |     optional uint64 timestamp   = 2;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   enum Flags {
 | 
					
						
							|  |  |  |     END_SESSION = 1;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   optional string             body        = 1;
 | 
					
						
							|  |  |  |   repeated AttachmentPointer  attachments = 2;
 | 
					
						
							|  |  |  |   optional GroupContext       group       = 3;
 | 
					
						
							|  |  |  |   optional uint32             flags       = 4;
 | 
					
						
							|  |  |  |   optional SyncMessageContext sync        = 5;
 | 
					
						
							|  |  |  | }
 |