mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-15 15:16:12 -04:00
170 lines
5.3 KiB
Protocol Buffer
170 lines
5.3 KiB
Protocol Buffer
// Copyright 2021 Google LLC
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// https://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto3";
|
|
|
|
package google.internal.communications.instantmessaging.v1;
|
|
|
|
import "frameworks/testing/rpcreplay/processors/rpc_replay_field_option.proto";
|
|
import "internal/proto/tachyon_enums.proto";
|
|
|
|
option optimize_for = LITE_RUNTIME;
|
|
|
|
message Id {
|
|
// type defines what the id field contains, e.g. phone number, Fi-number, Gaia
|
|
// ID etc.
|
|
IdType.Type type = 1;
|
|
// id is a unique (for this type and app) identifier of a message source or
|
|
// recipient.
|
|
string id = 2;
|
|
|
|
// app is the tachyon client application that generated or is to receive a
|
|
// message.
|
|
string app = 3;
|
|
|
|
// location_hint is used as a hint for the user's region.
|
|
LocationHint location_hint = 5;
|
|
}
|
|
|
|
// LocationHint is used to specify a location as well as format.
|
|
message LocationHint {
|
|
// Location is the location, provided in the format specified by format.
|
|
string location = 1;
|
|
|
|
// the format of location.
|
|
LocationStandard.Format format = 2;
|
|
}
|
|
|
|
// RequestHeader must be included in all request messages with the field name
|
|
// `header`.
|
|
// This will make the generated Go types of requests have GetHeader and
|
|
// SetHeader funcs, which makes it simple to create a common interface to access
|
|
// the header values.
|
|
message RequestHeader {
|
|
// request_id identifies this request and its responses, must be unique, and
|
|
// is generated by the request creator.
|
|
// This does not need to be set if request_id_binary is set.
|
|
string request_id = 1;
|
|
|
|
// app identifies the application; this is used to isolate different
|
|
// applications in the backend.
|
|
string app = 3;
|
|
|
|
// client_info holds information about the calling client application.
|
|
ClientInfo client_info = 7;
|
|
|
|
// requester_id is the user ID of the requester.
|
|
Id requester_id = 10;
|
|
}
|
|
|
|
// ResponseHeader must be included in all response messages with the field name
|
|
// `header`.
|
|
// This will make the generated Go types of responses have GetHeader and
|
|
// SetHeader funcs, which makes it simple to create a common interface to access
|
|
// the header values.
|
|
message ResponseHeader {
|
|
reserved 3, 102;
|
|
|
|
// rpc_global_id holds the global dapper trace id of the request that produced
|
|
// this response.
|
|
uint64 rpc_global_id = 2 [
|
|
jstype = JS_STRING,
|
|
(rpcreplay.processing).rewrite_identifier = "TACHYON_RPC_GLOBAL_ID"
|
|
];
|
|
|
|
// txn_timestamp_usec indicates the timestamp that the response data was read
|
|
// at.
|
|
int64 txn_timestamp_usec = 4
|
|
[(rpcreplay.processing).rewrite_time = MICROSECONDS];
|
|
|
|
// api_version_warning is set by the server when the ClientInfo in the request
|
|
// indicate that the client was built against a API version that is soon to be
|
|
// deprecated. Clients should show a UI to the user asking them to update the
|
|
// application.
|
|
// @deprecated
|
|
ApiVersionWarning api_version_warning = 103;
|
|
}
|
|
|
|
message ApiVersionWarning {
|
|
// grumble_at is API version where the server starts to complain.
|
|
ApiVersion.Value grumble_at = 1;
|
|
|
|
// fail_at is the API version where the server no longer accepts requests.
|
|
ApiVersion.Value fail_at = 2;
|
|
}
|
|
|
|
message ClientInfo {
|
|
// major, minor, point and details carry version information from client.
|
|
int32 major = 3;
|
|
int32 minor = 4;
|
|
int32 point = 5;
|
|
|
|
// api_version identifies what api_version the client was built against.
|
|
// This is used by server to:
|
|
// - push warning messages to clients during bind
|
|
// - fail RPCs if client is using a too old version
|
|
// - add backwards compatible code
|
|
ApiVersion.Value api_version = 7;
|
|
|
|
// platform_type is the type of platform, used to construct user agent string
|
|
// and to determine client node type in logging.
|
|
Platform.Type platform_type = 9;
|
|
|
|
// The APK version name (e.g. "4.0.006_RC2").
|
|
// Fireball Android sends down the version code in the above major field and
|
|
// leaves minor and point empty. The code results in a version that is tough
|
|
// to decipher like "20011296.0.0". The version name here is formatted to make
|
|
// versioning easier and safer on the server. Currently, this field is only
|
|
// populated by Fireball Android. See go/fireball-gbot-version.
|
|
string app_version = 10;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
// Matches StreamBody definition from the server:
|
|
// google3/google/rpc/stream_body.proto
|
|
message StreamBody {
|
|
repeated bytes messages = 1;
|
|
repeated bytes noop = 15;
|
|
}
|
|
|
|
// Echo request and response for clients to test the network connectivity.
|
|
// (== suppress_warning documentation-presence ==)
|
|
message EchoRequest {
|
|
RequestHeader header = 1;
|
|
bytes payload = 2;
|
|
}
|
|
|
|
// (== suppress_warning documentation-presence ==)
|
|
message EchoResponse {
|
|
ResponseHeader header = 1;
|
|
bytes payload = 2;
|
|
}
|