// Copyright 2014 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;

package sync_pb;

import "experiments_specifics.proto";

// This request allows an unauthenticated client to check the status of the
// experiments which do not require user authentication.  The status of an
// experiment for a specific client can be determined based on the user agent
// string and/or the client id sent in the HTTPS POST request.
message ExperimentStatusRequest {
  // Enumerates the experiments for which the status should be returned.  An
  // experiment name must be the same as one of the field names specified in
  // ExperimentsSpecifics.  See sync/protocol/experiments_specifics.proto.
  repeated string experiment_name = 1;
}

// Response to an experiment status request.
message ExperimentStatusResponse {
  // Minimal time to wait before issuing another request.
  optional int32 poll_interval_seconds = 1 [default = 3600];

  // The experiments that the client has asked for, with each experiment
  // containing exactly one experiment flag.  The client can inspect the
  // embedded flag to obtain the experiment status.  Note that the number of
  // experiments should be less than or equal to the number of experiment_name
  // sent in the request since it is possible that there is no experiment
  // matching an experiment_name.
  repeated ExperimentsSpecifics experiment = 2;
}
