// Copyright 2020 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.

// These are shared enums used by cros_network_config.

// NOTE: This mojom should kept in sync with the copy in Chromium's repo in
// src/chromeos/services/network_config/public/mojom/network_config.mojom.

module chromeos.network_config.mojom;

// Connection state of visible networks.
enum ConnectionStateType {
  kOnline,
  kConnected,
  kPortal,
  kConnecting,
  kNotConnected,
};

// Device / Technology state for devices.
enum DeviceStateType {
  kUninitialized,
  kDisabled,
  kDisabling,
  kEnabling,
  kEnabled,
  kProhibited,
  // Not used in DeviceStateProperties, but useful when querying by type.
  kUnavailable,
};

// The network technology type. NOTE: 'All' and 'Wireless' are only used by
// FilterType for requesting groups of networks.
enum NetworkType {
  kAll,
  kCellular,
  kEthernet,
  // Mobile includes Cellular, and Tether.
  kMobile,
  kTether,
  kVPN,
  // Wireles includes Cellular, Tether, and WiFi.
  kWireless,
  kWiFi,
};

// The ONC source for the network configuration, i.e. whether it is stored in
// the User or Device profile and whether it was configured by policy.
enum OncSource {
  // The network is not remembered, or the property is not configurable.
  kNone,
  // The configuration is saved in the user profile.
  kUser,
  // The configuration is saved in the device profile.
  kDevice,
  // The configuration came from a user policy and is saved in the user profile.
  kUserPolicy,
  // The configuration came from a device policy and is saved in the device
  // profile.
  kDevicePolicy,
};

// The policy source for property values managed by policy.
enum PolicySource {
  // The property is not controlled by policy.
  kNone,
  // The property value came from a user policy and is enforced.
  kUserPolicyEnforced,
  // The property value came from a device policy and is enforced.
  kDevicePolicyEnforced,
  // The property value came from a user policy and is recommended.
  kUserPolicyRecommended,
  // The property value came from a device policy and is recommended.
  kDevicePolicyRecommended,
  // The property value came from an extension.
  kActiveExtension,
};
