blob: a222a10e6ece01d639041c8347c20603018219a9 [file] [log] [blame]
// 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.
@available(added=7)
library fuchsia.castsysteminfo;
/// Error codes for the GetSystemInfo operation.
type ErrorCode = strict enum {
/// 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.
type SystemInfo = table {
/// 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: local_device_id string;
/// 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: cloud_device_id string;
};
/// Exposes Cast system info, as modeled in the SystemInfo table.
@discoverable
closed protocol Provider {
/// Retrieves the SystemInfo fields that are generated at first boot and are
/// available at startup.
strict GetSystemInfo() -> (struct {
systemInfo SystemInfo;
}) error ErrorCode;
};