All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rasa.signal-service-java.2.15.3_unofficial_106.source-code.SignalService.proto Maven / Gradle / Ivy

There is a newer version: 2.15.3_unofficial_107
Show newest version
// Proto schema formatted by Wire, do not edit.
// Source: SignalService.proto

syntax = "proto2";

package signalservice;

option java_package = "org.whispersystems.signalservice.internal.push";
option java_outer_classname = "SignalServiceProtos";

message Envelope {
  reserved 2;
  reserved 3;
  reserved 6;
  // internal server use
  reserved 18;

  optional Type type = 1;

  optional string sourceServiceId = 11;

  optional uint32 sourceDevice = 7;

  optional string destinationServiceId = 13;

  optional uint64 timestamp = 5;

  // Contains an encrypted Content
  optional bytes content = 8;

  optional string serverGuid = 9;

  optional uint64 serverTimestamp = 10;

  optional bool urgent = 14 [default = true];

  optional string updatedPni = 15;

  optional bool story = 16;

  optional bytes reportingToken = 17;

  enum Type {
    // SENDERKEY_MESSAGE
    reserved 7;
    UNKNOWN = 0;
    CIPHERTEXT = 1;
    KEY_EXCHANGE = 2;
    PREKEY_BUNDLE = 3;
    RECEIPT = 5;
    UNIDENTIFIED_SENDER = 6;
    PLAINTEXT_CONTENT = 8;
  }
}

message Content {
  optional DataMessage dataMessage = 1;

  optional SyncMessage syncMessage = 2;

  optional CallMessage callMessage = 3;

  optional NullMessage nullMessage = 4;

  optional ReceiptMessage receiptMessage = 5;

  optional TypingMessage typingMessage = 6;

  optional bytes senderKeyDistributionMessage = 7;

  optional bytes decryptionErrorMessage = 8;

  optional StoryMessage storyMessage = 9;

  optional PniSignatureMessage pniSignatureMessage = 10;

  optional EditMessage editMessage = 11;
}

message CallMessage {
  reserved 4;
  reserved 6;
  reserved 8;

  optional Offer offer = 1;

  optional Answer answer = 2;

  repeated IceUpdate iceUpdate = 3;

  optional Busy busy = 5;

  optional Hangup hangup = 7;

  optional uint32 destinationDeviceId = 9;

  optional Opaque opaque = 10;

  message Offer {
    reserved 2;
  
    optional uint64 id = 1;
  
    optional Type type = 3;
  
    optional bytes opaque = 4;
  
    enum Type {
      // removed
      reserved 2;
      OFFER_AUDIO_CALL = 0;
      OFFER_VIDEO_CALL = 1;
    }
  }

  message Answer {
    reserved 2;
  
    optional uint64 id = 1;
  
    optional bytes opaque = 3;
  }

  message IceUpdate {
    reserved 2;
    reserved 3;
    reserved 4;
  
    optional uint64 id = 1;
  
    optional bytes opaque = 5;
  }

  message Busy {
    optional uint64 id = 1;
  }

  message Hangup {
    optional uint64 id = 1;
  
    optional Type type = 2;
  
    optional uint32 deviceId = 3;
  
    enum Type {
      HANGUP_NORMAL = 0;
      HANGUP_ACCEPTED = 1;
      HANGUP_DECLINED = 2;
      HANGUP_BUSY = 3;
      HANGUP_NEED_PERMISSION = 4;
    }
  }

  message Opaque {
    optional bytes data = 1;
  
    optional Urgency urgency = 2;
  
    enum Urgency {
      DROPPABLE = 0;
      HANDLE_IMMEDIATELY = 1;
    }
  }
}

message BodyRange {
  optional uint32 start = 1;

  optional uint32 length = 2;

  oneof associatedValue {
    string mentionAci = 3;
    Style style = 4;
  }

  enum Style {
    NONE = 0;
    BOLD = 1;
    ITALIC = 2;
    SPOILER = 3;
    STRIKETHROUGH = 4;
    MONOSPACE = 5;
  }
}

message DataMessage {
  optional string body = 1;

  repeated AttachmentPointer attachments = 2;

  optional GroupContext group = 3;

  optional GroupContextV2 groupV2 = 15;

  optional uint32 flags = 4;

  optional uint32 expireTimer = 5;

  optional bytes profileKey = 6;

  optional uint64 timestamp = 7;

  optional Quote quote = 8;

  repeated Contact contact = 9;

  repeated Preview preview = 10;

  optional Sticker sticker = 11;

  optional uint32 requiredProtocolVersion = 12;

  optional bool isViewOnce = 14;

  optional Reaction reaction = 16;

  optional Delete delete = 17;

  repeated BodyRange bodyRanges = 18;

  optional GroupCallUpdate groupCallUpdate = 19;

  optional Payment payment = 20;

  optional StoryContext storyContext = 21;

  optional GiftBadge giftBadge = 22;

  enum Flags {
    END_SESSION = 1;
    EXPIRATION_TIMER_UPDATE = 2;
    PROFILE_KEY_UPDATE = 4;
  }

  message Quote {
    reserved 2;
  
    optional uint64 id = 1;
  
    optional string authorAci = 5;
  
    optional string text = 3;
  
    repeated QuotedAttachment attachments = 4;
  
    repeated BodyRange bodyRanges = 6;
  
    optional Type type = 7;
  
    enum Type {
      NORMAL = 0;
      GIFT_BADGE = 1;
    }
  
    message QuotedAttachment {
      optional string contentType = 1;
    
      optional string fileName = 2;
    
      optional AttachmentPointer thumbnail = 3;
    }
  }

  message Contact {
    optional Name name = 1;
  
    repeated Phone number = 3;
  
    repeated Email email = 4;
  
    repeated PostalAddress address = 5;
  
    optional Avatar avatar = 6;
  
    optional string organization = 7;
  
    message Name {
      optional string givenName = 1;
    
      optional string familyName = 2;
    
      optional string prefix = 3;
    
      optional string suffix = 4;
    
      optional string middleName = 5;
    
      optional string displayName = 6;
    }
  
    message Phone {
      optional string value = 1;
    
      optional Type type = 2;
    
      optional string label = 3;
    
      enum Type {
        HOME = 1;
        MOBILE = 2;
        WORK = 3;
        CUSTOM = 4;
      }
    }
  
    message Email {
      optional string value = 1;
    
      optional Type type = 2;
    
      optional string label = 3;
    
      enum Type {
        HOME = 1;
        MOBILE = 2;
        WORK = 3;
        CUSTOM = 4;
      }
    }
  
    message PostalAddress {
      optional Type type = 1;
    
      optional string label = 2;
    
      optional string street = 3;
    
      optional string pobox = 4;
    
      optional string neighborhood = 5;
    
      optional string city = 6;
    
      optional string region = 7;
    
      optional string postcode = 8;
    
      optional string country = 9;
    
      enum Type {
        HOME = 1;
        WORK = 2;
        CUSTOM = 3;
      }
    }
  
    message Avatar {
      optional AttachmentPointer avatar = 1;
    
      optional bool isProfile = 2;
    }
  }

  message Sticker {
    optional bytes packId = 1;
  
    optional bytes packKey = 2;
  
    optional uint32 stickerId = 3;
  
    optional AttachmentPointer data = 4;
  
    optional string emoji = 5;
  }

  message Reaction {
    reserved 3;
  
    optional string emoji = 1;
  
    optional bool remove = 2;
  
    optional string targetAuthorAci = 4;
  
    optional uint64 targetSentTimestamp = 5;
  }

  message Delete {
    optional uint64 targetSentTimestamp = 1;
  }

  message GroupCallUpdate {
    optional string eraId = 1;
  }

  message StoryContext {
    optional string authorAci = 1;
  
    optional uint64 sentTimestamp = 2;
  }

  message Payment {
    reserved 1002;
    reserved 1003;
  
    oneof Item {
      Notification notification = 1;
      Activation activation = 2;
    }
  
    message Amount {
      oneof Amount {
        MobileCoin mobileCoin = 1;
      }
    
      message MobileCoin {
        optional uint64 picoMob = 1;
      }
    }
  
    message Notification {
      reserved 1003;
    
      oneof Transaction {
        MobileCoin mobileCoin = 1;
      }
    
      optional string note = 2;
    
      message MobileCoin {
        optional bytes receipt = 1;
      }
    }
  
    message Activation {
      optional Type type = 1;
    
      enum Type {
        REQUEST = 0;
        ACTIVATED = 1;
      }
    }
  }

  message GiftBadge {
    optional bytes receiptCredentialPresentation = 1;
  }

  enum ProtocolVersion {
    option allow_alias = true;
    INITIAL = 0;
    MESSAGE_TIMERS = 1;
    VIEW_ONCE = 2;
    VIEW_ONCE_VIDEO = 3;
    REACTIONS = 4;
    CDN_SELECTOR_ATTACHMENTS = 5;
    MENTIONS = 6;
    PAYMENTS = 7;
    CURRENT = 7;
  }
}

message NullMessage {
  optional bytes padding = 1;
}

message ReceiptMessage {
  optional Type type = 1;

  repeated uint64 timestamp = 2;

  enum Type {
    DELIVERY = 0;
    READ = 1;
    VIEWED = 2;
  }
}

message TypingMessage {
  optional uint64 timestamp = 1;

  optional Action action = 2;

  optional bytes groupId = 3;

  enum Action {
    STARTED = 0;
    STOPPED = 1;
  }
}

message StoryMessage {
  optional bytes profileKey = 1;

  optional GroupContextV2 group = 2;

  oneof attachment {
    AttachmentPointer fileAttachment = 3;
    TextAttachment textAttachment = 4;
  }

  optional bool allowsReplies = 5;

  repeated BodyRange bodyRanges = 6;
}

message Preview {
  optional string url = 1;

  optional string title = 2;

  optional AttachmentPointer image = 3;

  optional string description = 4;

  optional uint64 date = 5;
}

message TextAttachment {
  optional string text = 1;

  optional Style textStyle = 2;

  // integer representation of hex color
  optional uint32 textForegroundColor = 3;

  optional uint32 textBackgroundColor = 4;

  optional Preview preview = 5;

  oneof background {
    Gradient gradient = 6;
    uint32 color = 7;
  }

  enum Style {
    DEFAULT = 0;
    REGULAR = 1;
    BOLD = 2;
    SERIF = 3;
    SCRIPT = 4;
    CONDENSED = 5;
  }

  message Gradient {
    // deprecated: this field will be removed in a future release.
    optional uint32 startColor = 1;
  
    // deprecated: this field will be removed in a future release.
    optional uint32 endColor = 2;
  
    // degrees
    optional uint32 angle = 3;
  
    repeated uint32 colors = 4;
  
    // percent from 0 to 1
    repeated float positions = 5;
  }
}

message Verified {
  reserved 1;

  optional string destinationAci = 5;

  optional bytes identityKey = 2;

  optional State state = 3;

  optional bytes nullMessage = 4;

  enum State {
    DEFAULT = 0;
    VERIFIED = 1;
    UNVERIFIED = 2;
  }
}

message SyncMessage {
  reserved 17;

  optional Sent sent = 1;

  optional Contacts contacts = 2;

  optional Groups groups = 3;

  optional Request request = 4;

  repeated Read read = 5;

  optional Blocked blocked = 6;

  optional Verified verified = 7;

  optional Configuration configuration = 9;

  optional bytes padding = 8;

  repeated StickerPackOperation stickerPackOperation = 10;

  optional ViewOnceOpen viewOnceOpen = 11;

  optional FetchLatest fetchLatest = 12;

  optional Keys keys = 13;

  optional MessageRequestResponse messageRequestResponse = 14;

  optional OutgoingPayment outgoingPayment = 15;

  repeated Viewed viewed = 16;

  optional PniChangeNumber pniChangeNumber = 18;

  optional CallEvent callEvent = 19;

  optional CallLinkUpdate callLinkUpdate = 20;

  optional CallLogEvent callLogEvent = 21;

  optional DeleteForMe deleteForMe = 22;

  message Sent {
    reserved 11;
  
    optional string destinationE164 = 1;
  
    optional string destinationServiceId = 7;
  
    optional uint64 timestamp = 2;
  
    optional DataMessage message = 3;
  
    optional uint64 expirationStartTimestamp = 4;
  
    repeated UnidentifiedDeliveryStatus unidentifiedStatus = 5;
  
    optional bool isRecipientUpdate = 6 [default = false];
  
    optional StoryMessage storyMessage = 8;
  
    repeated StoryMessageRecipient storyMessageRecipients = 9;
  
    optional EditMessage editMessage = 10;
  
    message UnidentifiedDeliveryStatus {
      reserved 1;
      reserved 4;
    
      optional string destinationServiceId = 3;
    
      optional bool unidentified = 2;
    
      optional bytes destinationIdentityKey = 5;
    }
  
    message StoryMessageRecipient {
      optional string destinationServiceId = 1;
    
      repeated string distributionListIds = 2;
    
      optional bool isAllowedToReply = 3;
    }
  }

  message Contacts {
    optional AttachmentPointer blob = 1;
  
    optional bool complete = 2 [default = false];
  }

  message Groups {
    optional AttachmentPointer blob = 1;
  }

  message Blocked {
    repeated string numbers = 1;
  
    repeated string acis = 3;
  
    repeated bytes groupIds = 2;
  }

  message Request {
    optional Type type = 1;
  
    enum Type {
      UNKNOWN = 0;
      CONTACTS = 1;
      GROUPS = 2;
      BLOCKED = 3;
      CONFIGURATION = 4;
      KEYS = 5;
      PNI_IDENTITY = 6;
    }
  }

  message Read {
    reserved 1;
  
    optional string senderAci = 3;
  
    optional uint64 timestamp = 2;
  }

  message Viewed {
    reserved 1;
  
    optional string senderAci = 3;
  
    optional uint64 timestamp = 2;
  }

  message Configuration {
    reserved 4;
  
    optional bool readReceipts = 1;
  
    optional bool unidentifiedDeliveryIndicators = 2;
  
    optional bool typingIndicators = 3;
  
    optional uint32 provisioningVersion = 5;
  
    optional bool linkPreviews = 6;
  }

  message StickerPackOperation {
    optional bytes packId = 1;
  
    optional bytes packKey = 2;
  
    optional Type type = 3;
  
    enum Type {
      INSTALL = 0;
      REMOVE = 1;
    }
  }

  message ViewOnceOpen {
    reserved 1;
  
    optional string senderAci = 3;
  
    optional uint64 timestamp = 2;
  }

  message FetchLatest {
    optional Type type = 1;
  
    enum Type {
      UNKNOWN = 0;
      LOCAL_PROFILE = 1;
      STORAGE_MANIFEST = 2;
      SUBSCRIPTION_STATUS = 3;
    }
  }

  message Keys {
    // @deprecated
    optional bytes storageService = 1;
  
    optional bytes master = 2;
  }

  message MessageRequestResponse {
    reserved 1;
  
    optional string threadAci = 2;
  
    optional bytes groupId = 3;
  
    optional Type type = 4;
  
    enum Type {
      UNKNOWN = 0;
      ACCEPT = 1;
      DELETE = 2;
      BLOCK = 3;
      BLOCK_AND_DELETE = 4;
      SPAM = 5;
      BLOCK_AND_SPAM = 6;
    }
  }

  message OutgoingPayment {
    optional string recipientServiceId = 1;
  
    optional string note = 2;
  
    oneof paymentDetail {
      MobileCoin mobileCoin = 3;
    }
  
    message MobileCoin {
      optional bytes recipientAddress = 1;
    
      // @required
      optional uint64 amountPicoMob = 2;
    
      // @required
      optional uint64 feePicoMob = 3;
    
      optional bytes receipt = 4;
    
      optional uint64 ledgerBlockTimestamp = 5;
    
      // @required
      optional uint64 ledgerBlockIndex = 6;
    
      repeated bytes spentKeyImages = 7;
    
      repeated bytes outputPublicKeys = 8;
    }
  }

  message PniChangeNumber {
    // Serialized libsignal-client IdentityKeyPair
    optional bytes identityKeyPair = 1;
  
    // Serialized libsignal-client SignedPreKeyRecord
    optional bytes signedPreKey = 2;
  
    // Serialized libsignal-client KyberPreKeyRecord
    optional bytes lastResortKyberPreKey = 5;
  
    optional uint32 registrationId = 3;
  
    // The e164 we have changed our number to
    optional string newE164 = 4;
  }

  message CallEvent {
    optional bytes conversationId = 1;
  
    optional uint64 id = 2;
  
    optional uint64 timestamp = 3;
  
    optional Type type = 4;
  
    optional Direction direction = 5;
  
    optional Event event = 6;
  
    enum Type {
      UNKNOWN_TYPE = 0;
      AUDIO_CALL = 1;
      VIDEO_CALL = 2;
      GROUP_CALL = 3;
      AD_HOC_CALL = 4;
    }
  
    enum Direction {
      UNKNOWN_DIRECTION = 0;
      INCOMING = 1;
      OUTGOING = 2;
    }
  
    enum Event {
      UNKNOWN_ACTION = 0;
      ACCEPTED = 1;
      NOT_ACCEPTED = 2;
      DELETE = 3;
      OBSERVED = 4;
    }
  }

  message CallLinkUpdate {
    optional bytes rootKey = 1;
  
    optional bytes adminPassKey = 2;
  
    optional Type type = 3;
  
    enum Type {
      UPDATE = 0;
      DELETE = 1;
    }
  }

  message CallLogEvent {
    optional Type type = 1;
  
    optional uint64 timestamp = 2;
  
    // Data identifying a conversation. The service ID for 1:1, the group ID for
    // group, or the room ID for an ad-hoc call. See also
    // `CallEvent/conversationId`.
    optional bytes conversationId = 3;
  
    // An identifier for a call. Generated directly for 1:1, or derived from
    // the era ID for group and ad-hoc calls. See also `CallEvent/callId`.
    optional uint64 callId = 4;
  
    enum Type {
      CLEAR = 0;
      MARKED_AS_READ = 1;
      MARKED_AS_READ_IN_CONVERSATION = 2;
    }
  }

  message DeleteForMe {
    repeated MessageDeletes messageDeletes = 1;
  
    repeated ConversationDelete conversationDeletes = 2;
  
    repeated LocalOnlyConversationDelete localOnlyConversationDeletes = 3;
  
    repeated AttachmentDelete attachmentDeletes = 4;
  
    message ConversationIdentifier {
      oneof identifier {
        string threadServiceId = 1;
        bytes threadGroupId = 2;
        string threadE164 = 3;
      }
    }
  
    message AddressableMessage {
      oneof author {
        string authorServiceId = 1;
        string authorE164 = 2;
      }
    
      optional uint64 sentTimestamp = 3;
    }
  
    message MessageDeletes {
      optional ConversationIdentifier conversation = 1;
    
      repeated AddressableMessage messages = 2;
    }
  
    message AttachmentDelete {
      optional ConversationIdentifier conversation = 1;
    
      optional AddressableMessage targetMessage = 2;
    
      // The `uuid` from the `Attachment`.
      optional bytes uuid = 3;
    
      optional bytes fallbackDigest = 4;
    
      optional bytes fallbackPlaintextHash = 5;
    }
  
    message ConversationDelete {
      optional ConversationIdentifier conversation = 1;
    
      repeated AddressableMessage mostRecentMessages = 2;
    
      repeated AddressableMessage mostRecentNonExpiringMessages = 4;
    
      optional bool isFullDelete = 3;
    }
  
    message LocalOnlyConversationDelete {
      optional ConversationIdentifier conversation = 1;
    }
  }
}

message AttachmentPointer {
  reserved 16;
  reserved 18;

  oneof attachment_identifier {
    fixed64 cdnId = 1;
    string cdnKey = 15;
  }

  optional string contentType = 2;

  optional bytes key = 3;

  optional uint32 size = 4;

  optional bytes thumbnail = 5;

  optional bytes digest = 6;

  optional bytes incrementalMac = 19;

  optional uint32 incrementalMacChunkSize = 17;

  optional string fileName = 7;

  optional uint32 flags = 8;

  optional uint32 width = 9;

  optional uint32 height = 10;

  optional string caption = 11;

  optional string blurHash = 12;

  optional uint64 uploadTimestamp = 13;

  optional uint32 cdnNumber = 14;

  optional bytes uuid = 20;

  enum Flags {
    reserved 3;
    VOICE_MESSAGE = 1;
    BORDERLESS = 2;
    GIF = 4;
  }
}

message GroupContext {
  optional bytes id = 1;

  optional Type type = 2;

  optional string name = 3;

  repeated string membersE164 = 4;

  repeated Member members = 6;

  optional AttachmentPointer avatar = 5;

  enum Type {
    UNKNOWN = 0;
    UPDATE = 1;
    DELIVER = 2;
    QUIT = 3;
    REQUEST_INFO = 4;
  }

  message Member {
    // removed
    reserved 1;
  
    optional string e164 = 2;
  }
}

message GroupContextV2 {
  optional bytes masterKey = 1;

  optional uint32 revision = 2;

  optional bytes groupChange = 3;
}

message ContactDetails {
  reserved 7;

  optional string number = 1;

  optional string aci = 9;

  optional string name = 2;

  optional Avatar avatar = 3;

  optional string color = 4;

  optional Verified verified = 5;

  optional bytes profileKey = 6;

  optional uint32 expireTimer = 8;

  optional uint32 inboxPosition = 10;

  optional bool archived = 11;

  message Avatar {
    optional string contentType = 1;
  
    optional uint32 length = 2;
  }
}

message GroupDetails {
  optional bytes id = 1;

  optional string name = 2;

  repeated string membersE164 = 3;

  repeated Member members = 9;

  optional Avatar avatar = 4;

  optional bool active = 5 [default = true];

  optional uint32 expireTimer = 6;

  optional string color = 7;

  optional bool blocked = 8;

  optional uint32 inboxPosition = 10;

  optional bool archived = 11;

  message Avatar {
    optional string contentType = 1;
  
    optional uint32 length = 2;
  }

  message Member {
    // removed
    reserved 1;
  
    optional string e164 = 2;
  }
}

message PaymentAddress {
  oneof Address {
    MobileCoinAddress mobileCoinAddress = 1;
  }

  message MobileCoinAddress {
    optional bytes address = 1;
  
    optional bytes signature = 2;
  }
}

message DecryptionErrorMessage {
  optional bytes ratchetKey = 1;

  optional uint64 timestamp = 2;

  optional uint32 deviceId = 3;
}

message PniSignatureMessage {
  optional bytes pni = 1;

  optional bytes signature = 2;
}

message EditMessage {
  optional uint64 targetSentTimestamp = 1;

  optional DataMessage dataMessage = 2;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy