| // Copyright 2019 The Fuchsia Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | library fuchsia.castsysteminfo; | 
 |  | 
 | /// Error codes for the GetSystemInfo operation. | 
 | enum ErrorCode { | 
 |  /// Error when there is no system info available. | 
 |  ERR_NO_SYSTEM_INFO = 1; | 
 |  /// Generic error. | 
 |  ERR_INTERNAL = 2; | 
 | }; | 
 |  | 
 | /// Cast-related device settings | 
 | /// | 
 | /// This table may be extended to include additional cast-specific information. | 
 | /// The values requested here are generated on first boot of the device and | 
 | /// don't change unless there is a factory reset. | 
 | table SystemInfo { | 
 |   /// Local (CastV2) device ID. Identifies the device on a local network. | 
 |   /// Used by the Home app as the device identifier and for MDNS record matching. | 
 |   1: string local_device_id; | 
 |   /// The device will use this identifier to send/receive CloudCast commands. | 
 |   /// Sending a CloudCast command to the receiver with this ID will ensure that | 
 |   /// the command is accepted and consumed by the device. | 
 |   2: string cloud_device_id; | 
 | }; | 
 |  | 
 | /// Exposes Cast system info, as modeled in the SystemInfo table. | 
 | [Discoverable] | 
 | protocol Provider { | 
 |   /// Retrieves the SystemInfo fields that are generated at first boot and are | 
 |   /// available at startup. | 
 |   GetSystemInfo() -> (SystemInfo systemInfo) error ErrorCode; | 
 | }; |