| // Copyright 2015 The Weave Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef LIBWEAVE_INCLUDE_WEAVE_SETTINGS_H_ | |
| #define LIBWEAVE_INCLUDE_WEAVE_SETTINGS_H_ | |
| #include <set> | |
| #include <string> | |
| #include <base/time/time.h> | |
| namespace weave { | |
| // Scopes in order of increasing privileges. | |
| enum class AuthScope { | |
| kNone, | |
| kViewer, | |
| kUser, | |
| kManager, | |
| kOwner, | |
| }; | |
| // Type client-device pairing. | |
| enum class PairingType { | |
| kPinCode, | |
| kEmbeddedCode, | |
| }; | |
| struct Settings { | |
| // Model specific information. Must be set by ConfigStore::LoadDefaults. | |
| std::string firmware_version; | |
| std::string oem_name; | |
| std::string model_name; | |
| std::string model_id; | |
| // Basic device information. Must be set from ConfigStore::LoadDefaults. | |
| std::string name; | |
| std::string description; | |
| std::string location; | |
| // OAuth 2.0 related options. Must be set from ConfigStore::LoadDefaults. | |
| std::string api_key; | |
| std::string client_id; | |
| std::string client_secret; | |
| // Options mirrored into "base" state. | |
| // Maximum role for local anonymous user. | |
| AuthScope local_anonymous_access_role{AuthScope::kViewer}; | |
| // If true, allows local discovery using DNS-SD. | |
| bool local_discovery_enabled{true}; | |
| // If true, allows local pairing using Privet API. | |
| bool local_pairing_enabled{true}; | |
| // Set of pairing modes supported by device. | |
| std::set<PairingType> pairing_modes; | |
| // Embedded code. Will be used only if pairing_modes contains kEmbeddedCode. | |
| std::string embedded_code; | |
| // Optional cloud information. Can be used for testing or debugging. | |
| std::string oauth_url; | |
| std::string service_url; | |
| // Cloud ID of the registered device. Empty if device is not registered. | |
| std::string cloud_id; | |
| // Local device id. | |
| std::string device_id; | |
| // Internal options to tweak some library functionality. External code should | |
| // avoid using them. | |
| bool wifi_auto_setup_enabled{true}; | |
| bool disable_security{false}; | |
| std::string test_privet_ssid; | |
| }; | |
| } // namespace weave | |
| #endif // LIBWEAVE_INCLUDE_WEAVE_SETTINGS_H_ |