// 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.feedback;

/// Provides the device's feedback ID.
///
/// The feedback ID is a persisted UUID used to group feedback reports. The ID
/// is not intended to be used for any reporting purposes other than feedback,
/// e.g., not intended to be used for telemetry.
@discoverable
protocol DeviceIdProvider {
    /// Returns the device's feedback ID.
    ///
    /// This method follows the hanging-get pattern and won't return a value until the ID since the
    /// last call has changed.
    GetId() -> (struct {
        feedback_id string:64;
    });
};
