/* * Copyright 2011 Google Inc. * * 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 * * http://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. */ // // The Android delivery service's network endpoint id descriptor. // This proto is internal to the Android channel. syntax = "proto2"; package com.google.protos.ipc.invalidation; option optimize_for = LITE_RUNTIME; option java_outer_classname = "AndroidChannel"; import "client_protocol.proto"; // Defines the valid major versions of the android channel protocol. The // channel version controls the expected envelope syntax and semantics of // http and c2dm messages sent between the client and server. enum MajorVersion { // The initial version of the android channel protocol. Inbound and // outbound channel packets contained a single binary protocol message only. INITIAL = 0; // Adds batching (multiple protocol messages in a single channel message) BATCH = 1; // The default channel version used by Android clients. Lower major numbers // will represent earlier versions and higher numbers will represent // experimental versions that are not yet released. DEFAULT = 0; // The minimum and maximum supported channel major versions. Used to validate // incoming requests, so update as new versions are added or old versions are // no longer supported. MIN_SUPPORTED = 0; MAX_SUPPORTED = 1; } // An id that specifies how to route a message to a Ticl on an Android device // via C2DM. message EndpointId { // Field 1 was once the ProtocolVersion of this message. // The "registration_id" returned when the client registers with c2dm. This // id is required by c2dm in order to send a message to the device. optional string c2dm_registration_id = 2; // A key identifying a specific client on a device. optional string client_key = 3; // The C2DM sender ID to use to deliver messages to the endpoint. optional string sender_id = 4 [deprecated = true]; // Defines the expected channel version generated by the network endpoint or // expected in messages sent from the server. optional Version channel_version = 5; // The package name of the Android application that will receive the messages. // Replaces sender_id. Must be set (unless sender_id is set; in which case it // must not be set). optional string package_name = 6; } // A message addressed to a particular Ticl on an Android device. message AddressedAndroidMessage { // Client on the device to which the message is destined. optional string client_key = 1; // Message contents (serialized ServerToClientMessage). optional bytes message = 2; } // A batch of messages addressed to potentially-different Ticls on the same // Android device. message AddressedAndroidMessageBatch { repeated AddressedAndroidMessage addressed_message = 1; }