// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Brought at CL 316140872
syntax = "proto3";
package chrome_browser_nearby_sharing_instantmessaging;
// Required in Chrome.
option optimize_for = LITE_RUNTIME;
message InboxMessage {
string message_id = 1;
enum MessageType {
UNKNOWN = 0;
BASIC = 4;
}
MessageType message_type = 2;
bytes message = 12;
enum MessageClass {
USER = 0;
EPHEMERAL = 2;
}
MessageClass message_class = 5;
}
message IdType {
enum Type {
UNSET = 0;
NEARBY_ID = 27;
}
}
// TODO(crbug.com/40154496): Replace with LocationStandard message from
// //third_party/nearby/src/proto/connections/offline_wire_formats.proto if
// possible.
message LocationStandard {
enum Format {
UNKNOWN = 0;
// E164 country codes:
// https://en.wikipedia.org/wiki/List_of_country_calling_codes
// e.g. +1 for USA
E164_CALLING = 1;
// ISO 3166-1 alpha-2 country codes:
// https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
ISO_3166_1_ALPHA_2 = 2;
}
}
// LocationHint is used to specify a location as well as format.
// TODO(crbug.com/40154496): Replace with LocationHint message from
// //third_party/nearby/src/proto/connections/offline_wire_formats.proto if
// possible.
message LocationHint {
// Location is the location, provided in the format specified by format.
string location = 1;
// the format of location.
LocationStandard.Format format = 2;
}
message Id {
IdType.Type type = 1;
string id = 2;
string app = 3;
string country_code = 4 [deprecated = true];
LocationHint location_hint = 5;
}
message ApiVersion {
enum Value {
UNKNOWN = 0;
V4 = 4;
}
}
message Platform {
enum Type {
UNKNOWN = 0;
DESKTOP = 6;
}
}
message ClientInfo {
int32 version_major = 3;
int32 version_minor = 4;
int32 version_point = 5;
ApiVersion.Value api_version = 7;
Platform.Type platform_type = 9;
}
message RequestHeader {
string request_id = 1;
string app = 3;
ClientInfo client_info = 7;
Id requester_id = 10;
}
message SendMessageExpressRequest {
RequestHeader header = 1;
Id dest_id = 3;
InboxMessage message = 4;
}
message ReceiveMessagesExpressRequest {
RequestHeader header = 1;
}
message ReceiveMessagesResponse {
message Header {}
Header header = 1;
message FastPathReady {}
oneof body {
InboxMessage inbox_message = 2;
FastPathReady fast_path_ready = 7;
}
}
// Matches StreamBody definition from the server:
// google3/google/rpc/stream_body.proto
message StreamBody {
repeated bytes messages = 1;
repeated bytes noop = 15;
}