Package org.inthewaves.kotlinsignald.clientprotocol.v1.structures

Types

Link copied to clipboard
data class AcceptInvitationRequest(account: String, groupID: String) : SignaldRequestBodyV1<JsonGroupV2Info>

Accept a v2 group invitation. Note that you must have a profile name set to join groups.

Link copied to clipboard
data class Account(address: JsonAddress?, pending: Boolean?, pni: String?, deviceId: Int?, accountId: String?) : SignaldResponseBodyV1

A local account in signald

Link copied to clipboard
data class AccountAlreadyVerifiedError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class AccountHasNoKeysError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class AccountList(accounts: List<Account>) : SignaldResponseBodyV1
Link copied to clipboard
data class AccountLockedError(more: String?, message: String?) : TypedExceptionV1
Link copied to clipboard
data class AddLinkedDeviceRequest(account: String, uri: String) : SignaldRequestBodyV1<EmptyResponse>

Link a new device to a local Signal account

Link copied to clipboard
data class AddServerRequest(server: Server) : SignaldRequestBodyV1<String>

add a new server to connect to. Returns the new server's UUID.

Link copied to clipboard
data class AllIdentityKeyList(identityKeys: List<IdentityKeyList>) : SignaldResponseBodyV1
Link copied to clipboard
data class AnswerMessage(id: Long?, sdp: String?, opaque: String?)
Link copied to clipboard
data class ApproveMembershipRequest(account: String, groupID: String, members: List<JsonAddress>) : SignaldRequestBodyV1<JsonGroupV2Info>

approve a request to join a group

Link copied to clipboard
data class AttachmentTooLargeError(filename: String?, message: String?) : TypedExceptionV1
Link copied to clipboard
data class AuthorizationFailedError(message: String?) : TypedExceptionV1

Indicates the server rejected our credentials or a failed group update. Typically means the linked device was removed by the primary device, or that the account was re-registered. For group updates, this can indicate that we lack permissions.

Link copied to clipboard
data class BannedGroupMember(uuid: String?, timestamp: Long?)
Link copied to clipboard
data class BanUserRequest(account: String, groupId: String, users: List<JsonAddress>) : SignaldRequestBodyV1<JsonGroupV2Info>

Bans users from a group. This works even if the users aren't in the group. If they are currently in the group, they will also be removed.

Link copied to clipboard
data class BooleanMessage(value: Boolean?) : SignaldResponseBodyV1

A message containing a single boolean, usually as a response

Link copied to clipboard
data class BusyMessage(id: Long?)
Link copied to clipboard
data class CallMessage(offerMessage: OfferMessage?, answerMessage: AnswerMessage?, busyMessage: BusyMessage?, hangupMessage: HangupMessage?, iceUpdateMessage: List<IceUpdateMessage>, destinationDeviceId: Int?, multiRing: Boolean?)
Link copied to clipboard
data class Capabilities(gv2: Boolean?, storage: Boolean?, stories: Boolean?, gv1Migration: Boolean?, senderKey: Boolean?, announcementGroup: Boolean?, changeNumber: Boolean?)
Link copied to clipboard
data class CaptchaRequiredError(more: String?, message: String?) : TypedExceptionV1
Link copied to clipboard
sealed class ClientMessageWrapper

Wraps all incoming messages sent to the client after a v1 subscribe request is issued

Link copied to clipboard
data class CreateGroupRequest(account: String, title: String, avatar: String?, members: List<JsonAddress>, timer: Int?, memberRole: String?) : SignaldRequestBodyV1<JsonGroupV2Info>
Link copied to clipboard
data class DecryptionErrorMessage(timestamp: Long?, deviceId: Int?, ratchetKey: String?)
Link copied to clipboard
data class DeleteAccountRequest(account: String, server: Boolean?) : SignaldRequestBodyV1<EmptyResponse>

delete all account data signald has on disk, and optionally delete the account from the server as well. Note that this is not "unlink" and will delete the entire account, even from a linked device.

Link copied to clipboard
data class DeviceInfo(id: Long?, name: String?, created: Long?, lastSeen: Long?)
Link copied to clipboard
data class DuplicateMessageError(timestamp: Long?, message: String?) : TypedExceptionV1
Link copied to clipboard
object EmptyResponse : SignaldResponseBodyV1

For requests that don't expect a response, representing {}.

Link copied to clipboard
data class ExceptionWrapper(version: String?, data: ExceptionWrapper.Data, error: Boolean?, account: String?) : ClientMessageWrapper

An incoming message representing an error that can be sent by signald after a v1 subscribe request. This is not documented in the client protocol; however, as the signald socket can send it anyway, we add this here for type safety purposes.

Link copied to clipboard
data class FingerprintVersionMismatchError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class FinishLinkRequest(overwrite: Boolean?, deviceName: String?, sessionId: String?) : SignaldRequestBodyV1<Account>

After a linking URI has been requested, finish_link must be called with the session_id provided with the URI. it will return information about the new account once the linking process is completed by the other device and the new account is setup. Note that the account setup process can sometimes take some time, if rapid userfeedback is required after scanning, use wait_for_scan first, then finish setup with finish_link.

Link copied to clipboard
data class GenerateLinkingURIRequest(server: String?) : SignaldRequestBodyV1<LinkingURI>

Generate a linking URI. Typically this is QR encoded and scanned by the primary device. Submit the returned session_id with a finish_link request.

Link copied to clipboard
data class GetAllIdentities(account: String) : SignaldRequestBodyV1<AllIdentityKeyList>

get all known identity keys

Link copied to clipboard
data class GetGroupRequest(account: String, groupID: String, revision: Int?) : SignaldRequestBodyV1<JsonGroupV2Info>

Query the server for the latest state of a known group. If the account is not a member of the group, an UnknownGroupError is returned.

Link copied to clipboard
data class GetGroupRevisionPagesRequest(account: String, groupId: String, fromRevision: Int, includeFirstRevision: Boolean?) : SignaldRequestBodyV1<GroupHistoryPage>

Query the server for group revision history. The history contains information about the changes between each revision and the user that made the change.

Link copied to clipboard
data class GetIdentitiesRequest(account: String, address: JsonAddress) : SignaldRequestBodyV1<IdentityKeyList>

Get information about a known keys for a particular address

Link copied to clipboard
data class GetLinkedDevicesRequest(account: String) : SignaldRequestBodyV1<LinkedDevices>

list all linked devices on a Signal account

Link copied to clipboard
data class GetProfileRequest(account: String, async: Boolean?, address: JsonAddress) : SignaldRequestBodyV1<Profile>

Get all information available about a user

Link copied to clipboard
class GetServersRequest : SignaldRequestBodyV1<ServerList>
Link copied to clipboard
data class Gradient(colors: List<String>, angle: Int?, positions: List<Float>, startColor: String?, endColor: String?)
Link copied to clipboard
data class GroupAccessControl(link: String?, attributes: String?, members: String?)

group access control settings. Options for each controlled action are: UNKNOWN, ANY, MEMBER, ADMINISTRATOR, UNSATISFIABLE and UNRECOGNIZED

Link copied to clipboard
data class GroupChange(editor: JsonAddress?, revision: Int?, newMembers: List<GroupMember>, deleteMembers: List<JsonAddress>, modifyMemberRoles: List<GroupMember>, modifiedProfileKeys: List<GroupMember>, newPendingMembers: List<GroupPendingMember>, deletePendingMembers: List<JsonAddress>, promotePendingMembers: List<GroupMember>, newBannedMembers: List<BannedGroupMember>, newUnbannedMembers: List<BannedGroupMember>, newTitle: String?, newAvatar: Boolean?, newTimer: Int?, newAccessControl: GroupAccessControl?, newRequestingMembers: List<GroupRequestingMember>, deleteRequestingMembers: List<JsonAddress>, promoteRequestingMembers: List<GroupMember>, newInviteLinkPassword: Boolean?, newDescription: String?, newIsAnnouncementGroup: String?)

Represents a group change made by a user. This can also represent request link invites. Only the fields relevant to the group change performed will be set. Note that in signald, group changes are currently only received from incoming messages from a message subscription.

Link copied to clipboard
data class GroupHistoryEntry(group: JsonGroupV2Info?, change: GroupChange?)
Link copied to clipboard
data class GroupHistoryPage(results: List<GroupHistoryEntry>, pagingData: PagingData?) : SignaldResponseBodyV1

The result of fetching a group's history along with paging data.

Link copied to clipboard
data class GroupInfo(v1: JsonGroupInfo?, v2: JsonGroupV2Info?) : SignaldResponseBodyV1

A generic type that is used when the group version is not known

Link copied to clipboard
data class GroupLinkInfoRequest(account: String, uri: String) : SignaldRequestBodyV1<JsonGroupJoinInfo>

Get information about a group from a signal.group link

Link copied to clipboard
data class GroupLinkNotActiveError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class GroupList(groups: List<JsonGroupV2Info>, legacyGroups: List<JsonGroupInfo>) : SignaldResponseBodyV1
Link copied to clipboard
data class GroupMember(uuid: String?, role: String?, joinedRevision: Int?)
Link copied to clipboard
data class GroupNotActiveError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class GroupPatchNotAcceptedError(message: String?) : TypedExceptionV1

Indicates the server rejected our group update. This can be due to errors such as trying to add a user that's already in the group.

Link copied to clipboard
data class GroupPendingMember(uuid: String?, role: String?, timestamp: Long?, addedByUuid: String?)
Link copied to clipboard
data class GroupRequestingMember(uuid: String?, timestamp: Long?)
Link copied to clipboard
data class GroupVerificationError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class HangupMessage(id: Long?, type: String?, legacy: Boolean?, deviceId: Int?)
Link copied to clipboard
data class IceUpdateMessage(id: Long?, opaque: String?, sdp: String?)
Link copied to clipboard
data class IdentityKey(added: Long?, safetyNumber: String?, qrCodeData: String?, trustLevel: String?)
Link copied to clipboard
data class IdentityKeyList(address: JsonAddress?, identities: List<IdentityKey>) : SignaldResponseBodyV1

a list of identity keys associated with a particular address

Link copied to clipboard
data class IncomingException(version: String?, data: IncomingException.Data, error: Boolean?, account: String?) : ClientMessageWrapper

An incoming message representing an exception that can be sent by signald corresponding to one of the documented error types in the protocol.

Link copied to clipboard
data class IncomingMessage(version: String?, data: IncomingMessage.Data, error: Boolean?, account: String?) : ClientMessageWrapper
Link copied to clipboard
data class InternalError(exceptions: List<String>, message: String?) : TypedExceptionV1

an internal error in signald has occurred. typically these are things that "should never happen" such as issues saving to the local disk, but it is also the default error type and may catch some things that should have their own error type. If you find tht your code is depending on the exception list for any particular behavior, please file an issue so we can pull those errors out to a separate error type: https://gitlab.com/signald/signald/-/issues/new

Link copied to clipboard
data class InvalidAttachmentError(filename: String?, message: String?) : TypedExceptionV1
Link copied to clipboard
data class InvalidBase64Error(message: String?) : TypedExceptionV1
Link copied to clipboard
data class InvalidFingerprintError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class InvalidGroupError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class InvalidGroupStateError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class InvalidInviteURIError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class InvalidProxyError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class InvalidRecipientError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class InvalidRequestError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class IsIdentifierRegisteredRequest(account: String, identifier: String) : SignaldRequestBodyV1<BooleanMessage>

Determine whether an account identifier is registered on the Signal service.

Link copied to clipboard
data class JoinGroupRequest(account: String, uri: String) : SignaldRequestBodyV1<JsonGroupJoinInfo>

Join a group using the a signal.group URL. Note that you must have a profile name set to join groups.

Link copied to clipboard
data class JsonAddress(number: String?, uuid: String?, relay: String?) : SignaldResponseBodyV1
Link copied to clipboard
data class JsonAttachment(contentType: String?, id: String?, size: Int?, storedFilename: String?, filename: String?, customFilename: String?, caption: String?, width: Int?, height: Int?, voiceNote: Boolean?, key: String?, digest: String?, blurhash: String?)

represents a file attached to a message. When sending, only filename is required.

Link copied to clipboard
data class JsonBlockedListMessage(addresses: List<JsonAddress>, groupIds: List<String>)
Link copied to clipboard
data class JsonDataMessage(timestamp: Long?, attachments: List<JsonAttachment>, body: String?, group: JsonGroupInfo?, groupV2: JsonGroupV2Info?, endSession: Boolean?, expiresInSeconds: Int?, profileKeyUpdate: Boolean?, quote: JsonQuote?, contacts: List<SharedContact>, previews: List<JsonPreview>, sticker: JsonSticker?, viewOnce: Boolean?, reaction: JsonReaction?, remoteDelete: RemoteDelete?, mentions: List<JsonMention>, payment: Payment?, isExpirationUpdate: Boolean?, groupCallUpdate: String?, storyContext: StoryContext?)
Link copied to clipboard
data class JsonGroupInfo(groupId: String?, members: List<JsonAddress>, name: String?, type: String?, avatarId: Long?)

information about a legacy group

Link copied to clipboard
data class JsonGroupJoinInfo(groupID: String?, title: String?, description: String?, memberCount: Int?, addFromInviteLink: Int?, revision: Int?, pendingAdminApproval: Boolean?) : SignaldResponseBodyV1
Link copied to clipboard
data class JsonGroupV2Info(id: String?, revision: Int?, title: String?, description: String?, avatar: String?, timer: Int?, members: List<JsonAddress>, pendingMembers: List<JsonAddress>, requestingMembers: List<JsonAddress>, inviteLink: String?, accessControl: GroupAccessControl?, memberDetail: List<GroupMember>, pendingMemberDetail: List<GroupMember>, announcements: String?, removed: Boolean?, bannedMembers: List<BannedGroupMember>, groupChange: GroupChange?) : SignaldResponseBodyV1

Information about a Signal group

Link copied to clipboard
data class JsonMention(uuid: String?, start: Int?, length: Int?)
Link copied to clipboard
data class JsonMessageRequestResponseMessage(person: JsonAddress?, groupId: String?, type: String?)

Responses to message requests from unknown users or groups

Link copied to clipboard
data class JsonPreview(url: String?, title: String?, description: String?, date: Long?, attachment: JsonAttachment?)

metadata about one of the links in a message

Link copied to clipboard
data class JsonQuote(id: Long?, author: JsonAddress?, text: String?, attachments: List<JsonQuotedAttachment>, mentions: List<JsonMention>)

A quote is a reply to a previous message. ID is the sent time of the message being replied to

Link copied to clipboard
data class JsonReaction(emoji: String?, remove: Boolean?, targetAuthor: JsonAddress?, targetSentTimestamp: Long?)
Link copied to clipboard
data class JsonReadMessage(sender: JsonAddress?, timestamp: Long?)
Link copied to clipboard
data class JsonSendMessageResult(address: JsonAddress?, success: SendSuccess?, networkFailure: Boolean?, unregisteredFailure: Boolean?, identityFailure: String?, proofRequiredFailure: ProofRequiredError?) : SignaldResponseBodyV1
Link copied to clipboard
data class JsonSentTranscriptMessage(destination: JsonAddress?, timestamp: Long?, expirationStartTimestamp: Long?, message: JsonDataMessage?, story: StoryMessage?, unidentifiedStatus: Map<String, Boolean>?, isRecipientUpdate: Boolean?)
Link copied to clipboard
data class JsonSyncMessage(sent: JsonSentTranscriptMessage?, contacts: JsonAttachment?, contactsComplete: Boolean?, groups: JsonAttachment?, blockedList: JsonBlockedListMessage?, request: String?, readMessages: List<JsonReadMessage>, viewOnceOpen: JsonViewOnceOpenMessage?, verified: JsonVerifiedMessage?, configuration: ConfigurationMessage?, stickerPackOperations: List<JsonStickerPackOperationMessage>, fetchType: String?, messageRequestResponse: JsonMessageRequestResponseMessage?)
Link copied to clipboard
data class JsonVerifiedMessage(destination: JsonAddress?, identityKey: String?, verified: String?, timestamp: Long?)
Link copied to clipboard
data class JsonVersionMessage(name: String?, version: String?, branch: String?, commit: String?) : SignaldResponseBodyV1
Link copied to clipboard
data class JsonViewOnceOpenMessage(sender: JsonAddress?, timestamp: Long?)
Link copied to clipboard
data class LeaveGroupRequest(account: String, groupID: String) : SignaldRequestBodyV1<GroupInfo>
Link copied to clipboard
data class LinkedDevices(devices: List<DeviceInfo>) : SignaldResponseBodyV1
Link copied to clipboard
data class LinkingURI(uri: String?, sessionId: String?) : SignaldResponseBodyV1
Link copied to clipboard
class ListAccountsRequest : SignaldRequestBodyV1<AccountList>

return all local accounts

Link copied to clipboard
data class ListContactsRequest(account: String, async: Boolean?) : SignaldRequestBodyV1<ProfileList>
Link copied to clipboard
data class ListenerState(version: String?, data: ListenerState.Data, error: Boolean?, account: String?) : ClientMessageWrapper

prior attempt to indicate signald connectivity state. WebSocketConnectionState messages will be delivered at the same time as well as in other parts of the websocket lifecycle.

Link copied to clipboard
data class ListGroupsRequest(account: String) : SignaldRequestBodyV1<GroupList>
Link copied to clipboard
data class MarkReadRequest(account: String, to: JsonAddress, timestamps: List<Long>, when: Long?) : SignaldRequestBodyV1<EmptyResponse>
Link copied to clipboard
data class NetworkError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class NoKnownUUIDError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class NoSendPermissionError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class NoSuchAccountError(account: String?, message: String?) : TypedExceptionV1
Link copied to clipboard
data class NoSuchSessionError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class OfferMessage(id: Long?, sdp: String?, type: String?, opaque: String?)
Link copied to clipboard
data class OwnProfileKeyDoesNotExistError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class PagingData(hasMorePages: Boolean?, nextPageRevision: Int?)
Link copied to clipboard
data class Payment(receipt: String?, note: String?)

details about a MobileCoin payment

Link copied to clipboard
data class Profile(name: String?, avatar: String?, address: JsonAddress?, capabilities: Capabilities?, color: String?, about: String?, emoji: String?, contactName: String?, profileName: String?, inboxPosition: Int?, expirationTime: Int?, mobilecoinAddress: String?, visibleBadgeIds: List<String>) : SignaldResponseBodyV1

Information about a Signal user

Link copied to clipboard
data class ProfileList(profiles: List<Profile>) : SignaldResponseBodyV1
Link copied to clipboard
data class ProfileUnavailableError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class ProofRequiredError(token: String?, options: List<String>, message: String?, retryAfter: Long?) : TypedExceptionV1
Link copied to clipboard
data class ProtocolInvalidKeyIdError(sender: String?, timestamp: Long?, message: String?, senderDevice: Int?, contentHint: Int?, groupId: String?) : TypedExceptionV1
Link copied to clipboard
data class ProtocolInvalidMessageError(sender: String?, timestamp: Long?, message: String?, senderDevice: Int?, contentHint: Int?, groupId: String?) : TypedExceptionV1
Link copied to clipboard
data class ProtocolNoSessionError(sender: String?, timestamp: Long?, message: String?, senderDevice: Int?, contentHint: Int?, groupId: String?) : TypedExceptionV1
Link copied to clipboard
data class RateLimitError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class ReactRequest(username: String, recipientAddress: JsonAddress?, recipientGroupId: String?, reaction: JsonReaction, timestamp: Long?, members: List<JsonAddress>?) : SignaldRequestBodyV1<SendResponse>

react to a previous message

Link copied to clipboard
data class ReceiptMessage(type: String?, timestamps: List<Long>, when: Long?)
Link copied to clipboard
data class RefuseMembershipRequest(account: String, members: List<JsonAddress>, groupId: String, alsoBan: Boolean?) : SignaldRequestBodyV1<JsonGroupV2Info>

deny a request to join a group

Link copied to clipboard
data class RegisterRequest(account: String, voice: Boolean?, captcha: String?, server: String?) : SignaldRequestBodyV1<Account>

begin the account registration process by requesting a phone number verification code. when the code is received, submit it with a verify request

Link copied to clipboard
data class RemoteConfig(name: String?, value: String?)

A remote config (feature flag) entry.

Link copied to clipboard
data class RemoteConfigList(config: List<RemoteConfig>) : SignaldResponseBodyV1
Link copied to clipboard
data class RemoteConfigRequest(account: String) : SignaldRequestBodyV1<RemoteConfigList>

Retrieves the remote config (feature flags) from the server.

Link copied to clipboard
data class RemoteDelete(targetSentTimestamp: Long?)
Link copied to clipboard
data class RemoteDeleteRequest(account: String, address: JsonAddress?, group: String?, timestamp: Long, members: List<JsonAddress>?) : SignaldRequestBodyV1<SendResponse>

delete a message previously sent

Link copied to clipboard
data class RemoveLinkedDeviceRequest(account: String, deviceId: Long) : SignaldRequestBodyV1<EmptyResponse>

Remove a linked device from the Signal account. Only allowed when the local device id is 1

Link copied to clipboard
data class RemoveServerRequest(uuid: String?) : SignaldRequestBodyV1<EmptyResponse>
Link copied to clipboard
data class RequestSyncRequest(groups: Boolean?, configuration: Boolean?, contacts: Boolean?, blocked: Boolean?, keys: Boolean?, account: String) : SignaldRequestBodyV1<EmptyResponse>

Request other devices on the account send us their group list, syncable config and contact list.

Link copied to clipboard
data class ResetSessionRequest(account: String, address: JsonAddress, timestamp: Long?) : SignaldRequestBodyV1<SendResponse>

reset a session with a particular user

Link copied to clipboard
data class ResolveAddressRequest(account: String, partial: JsonAddress) : SignaldRequestBodyV1<JsonAddress>

Resolve a partial JsonAddress with only a number or UUID to one with both. Anywhere that signald accepts a JsonAddress will except a partial, this is a convenience function for client authors, mostly because signald doesn't resolve all the partials it returns.

Link copied to clipboard
data class ScanTimeoutError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class SendPaymentRequest(account: String, address: JsonAddress, payment: Payment, when: Long?) : SignaldRequestBodyV1<SendResponse>

send a mobilecoin payment

Link copied to clipboard
data class SendRequest(username: String?, account: String?, recipientAddress: JsonAddress?, recipientGroupId: String?, messageBody: String?, attachments: List<JsonAttachment>?, quote: JsonQuote?, timestamp: Long?, mentions: List<JsonMention>?, previews: List<JsonPreview>?, members: List<JsonAddress>?, isForStory: Boolean?) : SignaldRequestBodyV1<SendResponse>
Link copied to clipboard
data class SendResponse(results: List<JsonSendMessageResult>, timestamp: Long?) : SignaldResponseBodyV1
Link copied to clipboard
data class SendSuccess(unidentified: Boolean?, needsSync: Boolean?, duration: Long?, devices: List<Int>)
Link copied to clipboard
data class SendSyncMessageRequest(account: String, viewOnceOpenMessage: JsonViewOnceOpenMessage?, messageRequestResponse: JsonMessageRequestResponseMessage?) : SignaldRequestBodyV1<JsonSendMessageResult>

Sends a sync message to the account's devices

Link copied to clipboard
data class Server(uuid: String?, proxy: String?, ca: String?, serviceUrl: String?, cdnUrls: List<ServerCDN>, contactDiscoveryUrl: String?, keyBackupUrl: String?, storageUrl: String?, zkParam: String?, unidentifiedSenderRoot: String?, keyBackupServiceName: String?, keyBackupServiceId: String?, keyBackupMrenclave: String?, cdsMrenclave: String?, iasCa: String?)

a Signal server

Link copied to clipboard
data class ServerCDN(number: Int?, url: String?)
Link copied to clipboard
data class ServerList(servers: List<Server>) : SignaldResponseBodyV1
Link copied to clipboard
data class ServerNotFoundError(uuid: String?, message: String?) : TypedExceptionV1
Link copied to clipboard
data class SetDeviceNameRequest(account: String, deviceName: String?) : SignaldRequestBodyV1<EmptyResponse>

set this device's name. This will show up on the mobile device on the same account under settings -> linked devices

Link copied to clipboard
data class SetExpirationRequest(account: String, address: JsonAddress?, group: String?, expiration: Int) : SignaldRequestBodyV1<SendResponse>

Set the message expiration timer for a thread. Expiration must be specified in seconds, set to 0 to disable timer

Link copied to clipboard
data class SetProfile(account: String, name: String?, avatarFile: String?, about: String?, emoji: String?, mobilecoinAddress: String?, visibleBadgeIds: List<String>?) : SignaldRequestBodyV1<EmptyResponse>
Link copied to clipboard
data class SharedContact(name: SharedContactName?, email: List<SharedContactEmail>, phone: List<SharedContactPhone>, address: List<SharedContactAddress>, avatar: SharedContactAvatar?, organization: String?)
Link copied to clipboard
data class SharedContactAddress(type: String?, label: String?, street: String?, pobox: String?, neighborhood: String?, city: String?, region: String?, postcode: String?, country: String?)
Link copied to clipboard
data class SharedContactAvatar(attachment: JsonAttachment?, isProfile: Boolean?)
Link copied to clipboard
data class SharedContactEmail(type: String?, value: String?, label: String?)
Link copied to clipboard
data class SharedContactName(display: String?, given: String?, middle: String?, family: String?, prefix: String?, suffix: String?)
Link copied to clipboard
data class SharedContactPhone(type: String?, value: String?, label: String?)
Link copied to clipboard
sealed class SignaldRequestBodyV1<ResponseData>

A base class for requests. This class is only used for serializing requests to the signald socket; the type of the responseWrapperSerializer property represents the response JSON structure.

Link copied to clipboard
sealed class SignaldResponseBodyV1
Link copied to clipboard
data class SignalServerError(message: String?) : TypedExceptionV1

indicates signald received an http 500 status code from the server

Link copied to clipboard
data class SQLError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class StorageChange(version: String?, data: StorageChange.Data, error: Boolean?, account: String?) : ClientMessageWrapper

Broadcast to subscribed clients when there is a state change from the storage service

Link copied to clipboard
data class StoryContext(author: String?, sentTimestamp: Long?)
Link copied to clipboard
data class StoryMessage(group: JsonGroupV2Info?, file: JsonAttachment?, text: TextAttachment?, allowReplies: Boolean?)
Link copied to clipboard
data class SubmitChallengeRequest(account: String, challenge: String, captchaToken: String?) : SignaldRequestBodyV1<EmptyResponse>
Link copied to clipboard
data class SubscribeRequest(account: String) : SignaldRequestBodyV1<SubscriptionResponse>

receive incoming messages. After making a subscribe request, incoming messages will be sent to the client encoded as ClientMessageWrapper. Send an unsubscribe request or disconnect from the socket to stop receiving messages.

Link copied to clipboard
data class SubscriptionResponse(messages: List<ClientMessageWrapper>) : SignaldResponseBodyV1

Responses from the subscribe / unsubscribe endpoint. The protocol describes these as empty responses, but race conditions can occur. This response can contain messages sent before the (un)subscribe acknowledgement message from signald.

Link copied to clipboard
data class TextAttachment(text: String?, style: String?, preview: JsonPreview?, textForegroundColor: String?, textBackgroundColor: String?, backgroundGradient: Gradient?, backgroundColor: String?)
Link copied to clipboard
data class TrustRequest(account: String, address: JsonAddress, safetyNumber: String?, qrCodeData: String?, trustLevel: String?) : SignaldRequestBodyV1<EmptyResponse>

Trust another user's safety number using either the QR code data or the safety number text

Link copied to clipboard
sealed class TypedExceptionV1 : SignaldException
Link copied to clipboard
data class TypingMessage(action: String?, timestamp: Long?, groupId: String?)
Link copied to clipboard
data class TypingRequest(account: String, address: JsonAddress?, group: String?, typing: Boolean, when: Long?) : SignaldRequestBodyV1<EmptyResponse>

send a typing started or stopped message

Link copied to clipboard
data class UnbanUserRequest(account: String, groupId: String, users: List<JsonAddress>) : SignaldRequestBodyV1<JsonGroupV2Info>

Unbans users from a group.

Link copied to clipboard
data class UnknownGroupError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class UnknownIdentityKeyError(message: String?) : TypedExceptionV1
Link copied to clipboard
data class UnregisteredUserError(message: String?, e164Number: String?) : TypedExceptionV1
Link copied to clipboard
data class UnsubscribeRequest(account: String) : SignaldRequestBodyV1<SubscriptionResponse>

See subscribe for more info

Link copied to clipboard
data class UnsupportedGroupError(message: String?) : TypedExceptionV1

returned in response to use v1 groups, which are no longer supported

Link copied to clipboard
data class UntrustedIdentityError(identifier: String?, message: String?, identityKey: IdentityKey?) : TypedExceptionV1
Link copied to clipboard
data class UpdateContactRequest(account: String, address: JsonAddress, name: String?, color: String?, inboxPosition: Int?) : SignaldRequestBodyV1<Profile>

update information about a local contact

Link copied to clipboard
data class UpdateGroupRequest(account: String, groupID: String, title: String?, description: String?, avatar: String?, updateTimer: Int?, addMembers: List<JsonAddress>?, removeMembers: List<JsonAddress>?, updateRole: GroupMember?, updateAccessControl: GroupAccessControl?, resetLink: Boolean?, announcements: String?) : SignaldRequestBodyV1<GroupInfo>

modify a group. Note that only one modification action may be performed at once

Link copied to clipboard
data class UserAlreadyExistsError(uuid: String?, message: String?) : TypedExceptionV1
Link copied to clipboard
data class VerifyRequest(account: String, code: String) : SignaldRequestBodyV1<Account>

verify an account's phone number with a code after registering, completing the account creation process

Link copied to clipboard
class VersionRequest : SignaldRequestBodyV1<JsonVersionMessage>
Link copied to clipboard
data class WaitForScanRequest(sessionId: String?) : SignaldRequestBodyV1<EmptyResponse>

An optional part of the linking process. Intended to be called after displaying the QR code, will return quickly after the user scans the QR code. finish_link must be called after wait_for_scan returns a non-error

Link copied to clipboard
data class WebSocketConnectionState(version: String?, data: WebSocketConnectionState.Data, error: Boolean?, account: String?) : ClientMessageWrapper

indicates when the websocket connection state to the signal server has changed