chromium/components/sync/protocol/wifi_configuration_specifics.proto

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol datatype extension for Wi-Fi configuration items.

// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.

syntax = "proto2";

option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";

option optimize_for = LITE_RUNTIME;

package sync_pb;

message WifiConfigurationSpecifics {
  // SSID encoded to hex, letters should be upper case and 0x prefix should be
  // omitted. For example, ssid "network" would be provided as "6E6574776F726B".
  optional bytes hex_ssid = 1;
  enum SecurityType {
    SECURITY_TYPE_UNSPECIFIED = 0;
    SECURITY_TYPE_NONE = 1;
    SECURITY_TYPE_WEP = 2;
    SECURITY_TYPE_PSK = 3;  // WPA-PSK or RSN-PSK
  }
  optional SecurityType security_type = 2;
  // The passphrase can be ASCII, UTF-8, or a string of hex digits.
  optional bytes passphrase = 3;
  enum AutomaticallyConnectOption {
    AUTOMATICALLY_CONNECT_UNSPECIFIED = 0;
    AUTOMATICALLY_CONNECT_DISABLED = 1;
    AUTOMATICALLY_CONNECT_ENABLED = 2;
  }
  optional AutomaticallyConnectOption automatically_connect = 4;
  enum IsPreferredOption {
    IS_PREFERRED_UNSPECIFIED = 0;
    IS_PREFERRED_DISABLED = 1;
    IS_PREFERRED_ENABLED = 2;
  }
  optional IsPreferredOption is_preferred = 5;
  enum MeteredOption {
    METERED_OPTION_UNSPECIFIED = 0;
    METERED_OPTION_NO = 1;
    METERED_OPTION_YES = 2;
    // Allows the device to use heuristics to determine if network is metered.
    METERED_OPTION_AUTO = 3;
  }
  optional MeteredOption metered = 6;
  message ProxyConfiguration {
    enum ProxyOption {
      PROXY_OPTION_UNSPECIFIED = 0;
      PROXY_OPTION_DISABLED = 1;
      // Use a Proxy Auto-config(PAC) Url, set in proxy_url
      PROXY_OPTION_AUTOMATIC = 2;
      // Uses Web Proxy Auto-Discovery Protocol (WPAD) to discover the proxy
      // settings using DHCP/DNS.
      PROXY_OPTION_AUTODISCOVERY = 3;
      // User sets details in manual_proxy_configuration.
      PROXY_OPTION_MANUAL = 4;
    }
    optional ProxyOption proxy_option = 1;
    // Only set if PROXY_OPTION_AUTOMATIC.
    optional string autoconfiguration_url = 2;
    message ManualProxyConfiguration {
      optional string http_proxy_url = 1;
      optional int32 http_proxy_port = 2;
      optional string secure_http_proxy_url = 3;
      optional int32 secure_http_proxy_port = 4;
      optional string socks_host_url = 5;
      optional int32 socks_host_port = 6;
      repeated string excluded_domains = 7;
    }
    // Only set if PROXY_OPTION_MANUAL.
    optional ManualProxyConfiguration manual_proxy_configuration = 3;
  }
  optional ProxyConfiguration proxy_configuration = 7;
  enum DnsOption {
    DNS_OPTION_UNSPECIFIED = 0;
    DNS_OPTION_DEFAULT_DHCP = 1;
    DNS_OPTION_CUSTOM = 2;
  }
  optional DnsOption dns_option = 10;
  // List of DNS servers to be used when set to DNS_OPTION_CUSTOM.  Up to 4.
  repeated string custom_dns = 8;
  // The last time this configuration was connected to before being synced.  It
  // will only be updated when the configuration is changed. This is represented
  // with the UNIX timestamp, ms since epoch.
  optional int64 last_connected_timestamp = 9;
}