mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-23 00:58:03 +01:00
Add a gRPC service for working with devices
This commit is contained in:
committed by
Chris Eager
parent
619b05e56c
commit
754f71ce00
149
service/src/main/proto/org/signal/chat/device.proto
Normal file
149
service/src/main/proto/org/signal/chat/device.proto
Normal file
@@ -0,0 +1,149 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_multiple_files = true;
|
||||
|
||||
package org.signal.chat.device;
|
||||
|
||||
/**
|
||||
* Provides methods for working with devices attached to a Signal account.
|
||||
*/
|
||||
service Devices {
|
||||
/**
|
||||
* Returns a list of devices associated with the caller's account.
|
||||
*/
|
||||
rpc GetDevices(GetDevicesRequest) returns (GetDevicesResponse) {}
|
||||
|
||||
/**
|
||||
* Removes a linked device from the caller's account. This call will fail with
|
||||
* a status of `PERMISSION_DENIED` if not called from the primary device
|
||||
* associated with an account. It will also fail with a status of
|
||||
* `INVALID_ARGUMENT` if the targeted device is the primary device associated
|
||||
* with the account.
|
||||
*/
|
||||
rpc RemoveDevice(RemoveDeviceRequest) returns (RemoveDeviceResponse) {}
|
||||
|
||||
rpc SetDeviceName(SetDeviceNameRequest) returns (SetDeviceNameResponse) {}
|
||||
|
||||
/**
|
||||
* Sets the token(s) the server should use to send new message notifications
|
||||
* to the authenticated device.
|
||||
*/
|
||||
rpc SetPushToken(SetPushTokenRequest) returns (SetPushTokenResponse) {}
|
||||
|
||||
/**
|
||||
* Removes any push tokens associated with the authenticated device. After
|
||||
* calling this method, the server will assume that the authenticated device
|
||||
* will periodically poll for new messages.
|
||||
*/
|
||||
rpc ClearPushToken(ClearPushTokenRequest) returns (ClearPushTokenResponse) {}
|
||||
|
||||
/**
|
||||
* Declares that the authenticated device supports certain features.
|
||||
*/
|
||||
rpc SetCapabilities(SetCapabilitiesRequest) returns (SetCapabilitiesResponse) {}
|
||||
}
|
||||
|
||||
message GetDevicesRequest {}
|
||||
|
||||
message GetDevicesResponse {
|
||||
message LinkedDevice {
|
||||
/**
|
||||
* The identifier for the device within an account.
|
||||
*/
|
||||
uint64 id = 1;
|
||||
|
||||
/**
|
||||
* A sequence of bytes that encodes an encrypted human-readable name for
|
||||
* this device.
|
||||
*/
|
||||
bytes name = 2;
|
||||
|
||||
/**
|
||||
* The time, in milliseconds since the epoch, at which this device was
|
||||
* attached to its parent account.
|
||||
*/
|
||||
uint64 created = 3;
|
||||
|
||||
/**
|
||||
* The approximate time, in milliseconds since the epoch, at which this
|
||||
* device last connected to the server.
|
||||
*/
|
||||
uint64 last_seen = 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* A list of devices linked to the authenticated account.
|
||||
*/
|
||||
repeated LinkedDevice devices = 1;
|
||||
}
|
||||
|
||||
message RemoveDeviceRequest {
|
||||
/**
|
||||
* The identifier for the device to remove from the authenticated account.
|
||||
*/
|
||||
uint64 id = 1;
|
||||
}
|
||||
|
||||
message SetDeviceNameRequest {
|
||||
/**
|
||||
* A sequence of bytes that encodes an encrypted human-readable name for this
|
||||
* device.
|
||||
*/
|
||||
bytes name = 1;
|
||||
}
|
||||
|
||||
message SetDeviceNameResponse {}
|
||||
|
||||
message RemoveDeviceResponse {}
|
||||
|
||||
message SetPushTokenRequest {
|
||||
message ApnsTokenRequest {
|
||||
/**
|
||||
* A "standard" APNs device token.
|
||||
*/
|
||||
string apns_token = 1;
|
||||
|
||||
/**
|
||||
* A VoIP APNs device token. If present, the server will prefer to send
|
||||
* message notifications to the device using this token on a VOIP APNs
|
||||
* topic.
|
||||
*/
|
||||
string apns_voip_token = 2;
|
||||
}
|
||||
|
||||
message FcmTokenRequest {
|
||||
/**
|
||||
* An FCM push token.
|
||||
*/
|
||||
string fcm_token = 1;
|
||||
}
|
||||
|
||||
oneof token_request {
|
||||
/**
|
||||
* If present, specifies the APNs device token(s) the server will use to
|
||||
* send new message notifications to the authenticated device.
|
||||
*/
|
||||
ApnsTokenRequest apns_token_request = 1;
|
||||
|
||||
/**
|
||||
* If present, specifies the FCM push token the server will use to send new
|
||||
* message notifications to the authenticated device.
|
||||
*/
|
||||
FcmTokenRequest fcm_token_request = 2;
|
||||
}
|
||||
}
|
||||
|
||||
message SetPushTokenResponse {}
|
||||
|
||||
message ClearPushTokenRequest {}
|
||||
|
||||
message ClearPushTokenResponse {}
|
||||
|
||||
message SetCapabilitiesRequest {
|
||||
bool storage = 1;
|
||||
bool transfer = 2;
|
||||
bool pni = 3;
|
||||
bool paymentActivation = 4;
|
||||
}
|
||||
|
||||
message SetCapabilitiesResponse {}
|
||||
Reference in New Issue
Block a user