// Copyright 2020 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 = "proto2";

package location.nearby.proto.setup;

// COPYBARA_NEARBY_IMPORT_LOG_ANNOTATION

// COPYBARA_NEARBY_OPTION_FILE_NOT_USED_FOR_LOGGING_BEGIN
// COPYBARA_NEARBY_OPTION_FILE_NOT_USED_FOR_LOGGING_END
// COPYBARA_NEARBY_OPTION_JAVA_API_VERSION

option optimize_for = LITE_RUNTIME; // COPYBARA_NEARBY_OPTION_OPTIMIZE_FOR
option java_package = "com.google.location.nearby.proto";
option java_outer_classname = "SetupEnums";
option objc_class_prefix = "GNSP";
// COPYBARA_NEARBY_OPTION_GO_API_FLAG_BEGIN
// COPYBARA_NEARBY_OPTION_GO_API_FLAG_END

// The type of event being logged.
// Lightweight START_* and STOP_* events track instances of potential crashes
// that would result in a ClientSession not being logged.
enum EventType {
  UNKNOWN_EVENT_TYPE = 0;

  // A completed ClientSession, logged after a client disconnects.
  CLIENT_SESSION = 1;

  // Corresponds to googleApiClient.connect() and the beginning of a
  // ClientSession.
  START_CLIENT_SESSION = 2;

  // Corresponds to googleApiClient.disconnect() and the end of a ClientSession.
  STOP_CLIENT_SESSION = 3;
}
