blob: 2ff9257a7e909833b2a84ebfb24e73ded4860087 [file] [log] [blame]
/*
*
* Copyright (c) 2013-2017 Nest Labs, Inc.
* All rights reserved.
*
* 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.
*/
/**
* @file
* This file defines constant enumerations for all public (or
* common) and Nest Labs vendor-unique Nest Weave profiles.
*
*/
#ifndef WEAVEPROFILES_H_
#define WEAVEPROFILES_H_
#include <Weave/Core/WeaveVendorIdentifiers.hpp>
/**
* @namespace nl::Weave::Profiles
*
* @brief
* This namespace includes all interfaces within Weave for Weave
* profiles, both Common and Nest Labs vendor-specific.
*/
namespace nl {
namespace Weave {
namespace Profiles {
//
// Weave Profile Ids (32-bits max)
//
enum WeaveProfileId
{
// Common Profiles
//
// NOTE: Do not attempt to allocate these values yourself. These
// values are under administration by Nest Labs.
kWeaveProfile_Common = (kWeaveVendor_Common << 16) | 0x0000, // Common Profile
kWeaveProfile_Core_Deprecated = (kWeaveVendor_Common << 16) | 0x0000, // Core (deprecated, renamed Common) Profile
kWeaveProfile_Echo = (kWeaveVendor_Common << 16) | 0x0001, // Echo Profile
kWeaveProfile_StatusReport_Deprecated = (kWeaveVendor_Common << 16) | 0x0002, // Status Report Profile
kWeaveProfile_NetworkProvisioning = (kWeaveVendor_Common << 16) | 0x0003, // Network Provisioning Profile
kWeaveProfile_Security = (kWeaveVendor_Common << 16) | 0x0004, // Network Security Profile
kWeaveProfile_FabricProvisioning = (kWeaveVendor_Common << 16) | 0x0005, // Fabric Provisioning Profile
kWeaveProfile_DeviceControl = (kWeaveVendor_Common << 16) | 0x0006, // Device Control Profile
kWeaveProfile_Time = (kWeaveVendor_Common << 16) | 0x0007, // Time Services Profile
kWeaveProfile_WDM = (kWeaveVendor_Common << 16) | 0x000B, // Data Management Profile
kWeaveProfile_SWU = (kWeaveVendor_Common << 16) | 0x000C, // Software Update Profile
kWeaveProfile_BDX = (kWeaveVendor_Common << 16) | 0x000D, // Bulk Data Transfer Profile
kWeaveProfile_DeviceDescription = (kWeaveVendor_Common << 16) | 0x000E, // Weave Device Description Profile
kWeaveProfile_ServiceProvisioning = (kWeaveVendor_Common << 16) | 0x000F, // Service Provisioning Profile
kWeaveProfile_ServiceDirectory = (kWeaveVendor_Common << 16) | 0x0010, // Service Directory Profile
kWeaveProfile_Locale = (kWeaveVendor_Common << 16) | 0x0011, // Locale Profile
kWeaveProfile_Tunneling = (kWeaveVendor_Common << 16) | 0x0012, // Service Routing by Tunneling
kWeaveProfile_Heartbeat = (kWeaveVendor_Common << 16) | 0x0013, // Heartbeat
kWeaveProfile_ApplicationKeys = (kWeaveVendor_Common << 16) | 0x001D, // Application Keys
kWeaveProfile_TokenPairing = (kWeaveVendor_Common << 16) | 0x0020, // Token Pairing Profile
kWeaveProfile_DictionaryKey = (kWeaveVendor_Common << 16) | 0x0021, // Dictionary Key in Data Management Profile
// Nest Labs Profiles
//
// NOTE: Do not attempt to allocate these values yourself. These
// values are under administration by Nest Labs. Please make a
// formal request using the "Nest Weave: Nest Labs Profile
// Identifier Registry" <https://docs.google.com/a/nestlabs.com/document/d/1Gw1uM3Z5mTxWL1RAEl3DKiLDkqC5A9tnD03qgzTfOU4>.
kWeaveProfile_Occupancy = (kWeaveVendor_NestLabs << 16) | 0x0001, // Nest Occupancy profile
kWeaveProfile_Structure = (kWeaveVendor_NestLabs << 16) | 0x0002, // Nest Structure profile
kWeaveProfile_NestProtect = (kWeaveVendor_NestLabs << 16) | 0x0003, // Nest Protect product profile
kWeaveProfile_TimeVariantData = (kWeaveVendor_NestLabs << 16) | 0x0004, // Weave TVD profile
kWeaveProfile_Alarm = (kWeaveVendor_NestLabs << 16) | 0x0006, // Weave Alarm profile
kWeaveProfile_HeatLink = (kWeaveVendor_NestLabs << 16) | 0x0007, // Nest Heat-Link product profile
kWeaveProfile_Safety = (kWeaveVendor_NestLabs << 16) | 0x0008, // Nest Safety profile
kWeaveProfile_SafetySummary = (kWeaveVendor_NestLabs << 16) | 0x0009, // Nest Safety Summary profile
kWeaveProfile_NestThermostat = (kWeaveVendor_NestLabs << 16) | 0x000A, // Nest Thermostat product profile
kWeaveProfile_NestBoiler = (kWeaveVendor_NestLabs << 16) | 0x000B, // Nest Boiler profile
kWeaveProfile_NestHvacEquipmentControl = (kWeaveVendor_NestLabs << 16) | 0x000C, // Nest HVAC Equipment Control profile
kWeaveProfile_NestDomesticHotWater = (kWeaveVendor_NestLabs << 16) | 0x000D, // Nest Domestic Hot Water profile
kWeaveProfile_TopazHistory = (kWeaveVendor_NestLabs << 16) | 0x000F, // Nest Topaz History profile
kWeaveProfile_DropcamLegacyPairing = (kWeaveVendor_NestLabs << 16) | 0x0010, // Nest Dropcam Legacy Pairing profile
kWeaveProfile_NestNetworkManager = (kWeaveVendor_NestLabs << 16) | 0xE000, // Nest Network Manager (nonvolatile storage-only) profile
// Profiles reserved for internal protocol use
//
// NOTE: Do not attempt to allocate these values yourself. These
// values are under administration by Nest Labs.
kWeaveProfile_NotSpecified = (kWeaveVendor_NotSpecified << 16) | 0xFFFF, // The profile ID is either not specified or a wildcard
};
} // namespace Profiles
} // namespace Weave
} // namespace nl
#endif /* WEAVEPROFILES_H_ */