blob: bce4378f77455235c012b60486977b2da9d9ea7c [file] [log] [blame]
// RPCs for the Nearby Console service.
syntax = "proto3";
package service.proto;
// Response containing an observed device.
message GetObservedDeviceResponse {
// The device from the request.
Device device = 1;
// The image icon that shows in the notification
bytes image = 3;
// Strings to be displayed on notifications during the pairing process.
ObservedDeviceStrings strings = 4;
reserved 2;
}
message Device {
// Output only. The server-generated ID of the device.
int64 id = 1;
// The pantheon project number the device is created under. Only Nearby admins
// can change this.
int64 project_number = 2;
// How the notification will be displayed to the user
NotificationType notification_type = 3;
// The image to show on the notification.
string image_url = 4;
// The name of the device.
string name = 5;
// The intent that will be launched via the notification.
string intent_uri = 6;
// The transmit power of the device's BLE chip.
int32 ble_tx_power = 7;
// The distance that the device must be within to show a notification.
// If no distance is set, we default to 0.6 meters. Only Nearby admins can
// change this.
float trigger_distance = 8;
// Output only. Fast Pair only - The anti-spoofing key pair for the device.
AntiSpoofingKeyPair anti_spoofing_key_pair = 9;
// Output only. The current status of the device.
Status status = 10;
// DEPRECATED - check for published_version instead.
// Output only.
// Whether the device has a different, already published version.
bool has_published_version = 12;
// Fast Pair only - The type of device being registered.
DeviceType device_type = 13;
// Fast Pair only - Additional images for true wireless headsets.
TrueWirelessHeadsetImages true_wireless_images = 15;
// Fast Pair only - When true, this device can support assistant function.
bool assistant_supported = 16;
// Output only.
// The published version of a device that has been approved to be displayed
// as a notification - only populated if the device has a different published
// version. (A device that only has a published version would not have this
// populated).
Device published_version = 17;
// Fast Pair only - When true, Fast Pair will only create a bond with the
// device and not attempt to connect any profiles (for example, A2DP or HFP).
bool data_only_connection = 18;
// Name of the company/brand that will be selling the product.
string company_name = 19;
repeated FastPairFeature features = 20;
// Name of the device that is displayed on the console.
string display_name = 21;
// How the device will be interacted with by the user when the scan record
// is detected.
InteractionType interaction_type = 22;
// Companion app information.
CompanionAppDetails companion_detail = 23;
reserved 11, 14;
}
// Represents the format of the final device notification (which is directly
// correlated to the action taken by the notification).
enum NotificationType {
// Unspecified notification type.
NOTIFICATION_TYPE_UNSPECIFIED = 0;
// Notification launches the fast pair intent.
// Example Notification Title: "Bose SoundLink II"
// Notification Description: "Tap to pair with this device"
FAST_PAIR = 1;
// Notification launches an app.
// Notification Title: "[X]" where X is type/name of the device.
// Notification Description: "Tap to setup this device"
APP_LAUNCH = 2;
// Notification launches for Nearby Setup. The notification title and
// description is the same as APP_LAUNCH.
NEARBY_SETUP = 3;
// Notification launches the fast pair intent, but doesn't include an anti-
// spoofing key. The notification title and description is the same as
// FAST_PAIR.
FAST_PAIR_ONE = 4;
// Notification launches Smart Setup on devices.
// These notifications are identical to APP_LAUNCH except that they always
// launch Smart Setup intents within GMSCore.
SMART_SETUP = 5;
}
// How the device will be interacted with when it is seen.
enum InteractionType {
INTERACTION_TYPE_UNKNOWN = 0;
AUTO_LAUNCH = 1;
NOTIFICATION = 2;
}
// Features that can be enabled for a Fast Pair device.
enum FastPairFeature {
FAST_PAIR_FEATURE_UNKNOWN = 0;
SILENCE_MODE = 1;
WIRELESS_CHARGING = 2;
DYNAMIC_BUFFER_SIZE = 3;
NO_PERSONALIZED_NAME = 4;
EDDYSTONE_TRACKING = 5;
}
message CompanionAppDetails {
// Companion app slice provider's authority.
string authority = 1;
// Companion app certificate value.
string certificate_hash = 2;
// Deprecated fields.
reserved 3;
}
// Additional images for True Wireless Fast Pair devices.
message TrueWirelessHeadsetImages {
// Image URL for the left bud.
string left_bud_url = 1;
// Image URL for the right bud.
string right_bud_url = 2;
// Image URL for the case.
string case_url = 3;
}
// Represents the type of device that is being registered.
enum DeviceType {
DEVICE_TYPE_UNSPECIFIED = 0;
HEADPHONES = 1;
SPEAKER = 2;
WEARABLE = 3;
INPUT_DEVICE = 4;
AUTOMOTIVE = 5;
OTHER = 6;
TRUE_WIRELESS_HEADPHONES = 7;
WEAR_OS = 8;
ANDROID_AUTO = 9;
}
// An anti-spoofing key pair for a device that allows us to verify the device is
// broadcasting legitimately.
message AntiSpoofingKeyPair {
// The private key (restricted to only be viewable by trusted clients).
bytes private_key = 1;
// The public key.
bytes public_key = 2;
}
// Various states that a customer-configured device notification can be in.
// PUBLISHED is the only state that shows notifications to the public.
message Status {
// Status types available for each device.
enum StatusType {
// Unknown status.
TYPE_UNSPECIFIED = 0;
// Drafted device.
DRAFT = 1;
// Submitted and waiting for approval.
SUBMITTED = 2;
// Fully approved and available for end users.
PUBLISHED = 3;
// Rejected and not available for end users.
REJECTED = 4;
}
// Details about a device that has been rejected.
message RejectionDetails {
// The reason for the rejection.
enum RejectionReason {
// Unspecified reason.
REASON_UNSPECIFIED = 0;
// Name is not valid.
NAME = 1;
// Image is not valid.
IMAGE = 2;
// Tests have failed.
TESTS = 3;
// Other reason.
OTHER = 4;
}
// A list of reasons the device was rejected.
repeated RejectionReason reasons = 1;
// Comment about an OTHER rejection reason.
string additional_comment = 2;
}
// The status of the device.
StatusType status_type = 1;
// Accompanies Status.REJECTED.
RejectionDetails rejection_details = 2;
}
// Strings to be displayed in notifications surfaced for a device.
message ObservedDeviceStrings {
// The notification description for when the device is initially discovered.
string initial_notification_description = 2;
// The notification description for when the device is initially discovered
// and no account is logged in.
string initial_notification_description_no_account = 3;
// The notification description for once we have finished pairing and the
// companion app has been opened. For google assistant devices, this string will point
// users to setting up the assistant.
string open_companion_app_description = 4;
// The notification description for once we have finished pairing and the
// companion app needs to be updated before use.
string update_companion_app_description = 5;
// The notification description for once we have finished pairing and the
// companion app needs to be installed.
string download_companion_app_description = 6;
// The notification title when a pairing fails.
string unable_to_connect_title = 7;
// The notification summary when a pairing fails.
string unable_to_connect_description = 8;
// The description that helps user initially paired with device.
string initial_pairing_description = 9;
// The description that let user open the companion app.
string connect_success_companion_app_installed = 10;
// The description that let user download the companion app.
string connect_success_companion_app_not_installed = 11;
// The description that reminds user there is a paired device nearby.
string subsequent_pairing_description = 12;
// The description that reminds users opt in their device.
string retroactive_pairing_description = 13;
// The description that indicates companion app is about to launch.
string wait_launch_companion_app_description = 14;
// The description that indicates go to bluetooth settings when connection
// fail.
string fail_connect_go_to_settings_description = 15;
reserved 1, 16, 17, 18, 19, 20, 21, 22, 23, 24;
}
// The buffer size range of a Fast Pair devices support dynamic buffer size.
message BufferSizeRange {
// The max buffer size in ms.
int32 max_size = 1;
// The min buffer size in ms.
int32 min_size = 2;
// The default buffer size in ms.
int32 default_size = 3;
// The codec of this buffer size range.
int32 codec = 4;
}