package textsecure; message ProvisioningUuid { optional string uuid = 1; } message ProvisionEnvelope { optional bytes publicKey = 1; optional bytes body = 2; // Encrypted ProvisionMessage } message ProvisionMessage { optional bytes identityKeyPrivate = 2; optional string number = 3; optional string provisioningCode = 4; } message DeviceControl { enum Type { UNKNOWN = 0; NEW_DEVICE_REGISTERED = 1; // Requries only newDeviceId SENT_MESSAGE = 2; // Requires only message } message MessageSent { required string otherNumber = 1; // The destination account (ie phone #), not device required uint64 timestamp = 2; required bytes message = 3; // PushMessageContent } required Type type = 1; optional uint32 newDeviceId = 2; optional MessageSent message = 3; }