// Copyright 2020 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.diagnostics;

/// Interest expresses the scope of clients' desired diagnostics data,
/// e.g. for filtering messages or controlling their generation.
type Interest = table {
    /// Minimum desired severity. Components should include records at or
    /// above this severity.
    ///
    /// If not present, interpreted as Severity.INFO.
    1: min_severity Severity;
};
