// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option retain_unknown_fields = true;

package sync_pb;

message GetUpdatesCallerInfo {
  // This message was deprecated in M28.  The preferred represenation of this
  // information is now the GetUpdatesOrigin enum, which is defined in
  // sync_enums.proto.
  enum GetUpdatesSource {
    UNKNOWN = 0;  // The source was not set by the caller.
    FIRST_UPDATE = 1;  // First request after browser restart.  Not to
                       // be confused with "NEW_CLIENT".
    LOCAL = 2;  // The source of the update was a local change.
    NOTIFICATION = 3;  // The source of the update was a p2p notification.
    PERIODIC = 4;  // The source of the update was periodic polling.
    SYNC_CYCLE_CONTINUATION = 5;  // The source of the update was a
                                  // continuation of a previous sync cycle.
                                  // No longer sent as of M24.

    // This value is deprecated and was never used in production.
    // CLEAR_PRIVATE_DATA = 6;

    NEWLY_SUPPORTED_DATATYPE = 7;   // The client is in configuration mode
                                    // because it's syncing all datatypes, and
                                    // support for a new datatype was recently
                                    // released via a software auto-update.
    MIGRATION = 8;         // The client is in configuration mode because a
                           // MIGRATION_DONE error previously returned by the
                           // server necessitated resynchronization.
    NEW_CLIENT = 9;        // The client is in configuration mode because the
                           // user enabled sync for the first time.  Not to be
                           // confused with FIRST_UPDATE.
    RECONFIGURATION = 10;  // The client is in configuration mode because the
                           // user opted to sync a different set of datatypes.
    DATATYPE_REFRESH = 11;    // A datatype has requested a refresh. This is
                              // typically used when datatype's have custom
                              // sync UI, e.g. sessions.
    RETRY = 13;  // A follow-up GU to pick up updates missed by previous GU.
    PROGRAMMATIC = 14;     // The client is programmatically enabling/disabling
                           // a type, typically for error handling purposes.
  }

  required GetUpdatesSource source = 1;

  // True only if notifications were enabled for this GetUpdateMessage.
  optional bool notifications_enabled = 2;
};