#
# Copyright 2015-2016 The Android Open Source Project
#
# 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
#
#      http://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.
#

# OAuth 2.0 client id.
# client_id=

# OAuth 2.0 client secret.
# client_secret=

# OAuth 2.0 API key.
# api_key=

# Human readable name of the device.
name=Intel Edison Starter Board

# Human readable description of the device.
# Defaults to empty string"
description=Intel Edison Brillo Starter Board

# Location of the device.
# location=

# Manufacturer of the device.
oem_name=Intel Corporation

# Model of the device.
# Defaults to Brillo.
model_name=Edison

# Five character code assigned by the cloud registry of device models.
# Defaults to "AAAAA" (Unregistered model).
model_id=ABPHb

# Maximum role for local anonymous user.
# local_anonymous_access_role=viewer

# If true, allows local discovery and local Privet API.
# local_access_enabled=true

# GCD service polling interval in milliseconds.
# polling_period_ms=7000

# GCD service backup polling interval in milliseconds.
# backup_polling_period_ms=1800000

# Automatic mode causes buffet to automatically bring up a SoftAP for
# bootstrapping when it looses network connectivity for long enough,
# and on first boot.
# wifi_auto_setup_enabled=true

# List of pairing modes supported by device.
# See Weave documentation for supported pairing modes
# Defaults to pinCode if embedded_code_path is empty, or embeddedCode otherwise.
pairing_modes=embeddedCode

# Absolute path to file specifying an embedded pairing code. The file at
# embedded_code_path should be a file in key value format, with a key
# embedded_code.
# Defaults to empty path.
embedded_code_path=/etc/weaved/weaved.conf

# Embedded code.
embedded_code=hello
