// 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.developer.bridge;

enum StreamMode : uint32 {
    SNAPSHOT_ALL = 1;
    SNAPSHOT_RECENT_THEN_SUBSCRIBE = 2;
    SNAPSHOT_ALL_THEN_SUBSCRIBE = 3;
    SUBSCRIBE = 4;
};

enum DiagnosticsStreamError : uint32 {
    // Indicates an error that doesn't fall into any of the below types.
    GENERIC_ERROR = 1;
    // Indicates a required parameter is missing
    MISSING_PARAMETER = 2;
    // Indicates the provided target specifier does not match any targets
    // or matches more than target.
    TARGET_MATCH_FAILED = 3;
    // Indicates the provided target specifier does not match any targets.
    // This is a more specific version of TARGET_MATCH_FAILED that is
    // used when possible.
    NO_MATCHING_TARGETS = 4;
    // Indicates that we have not successfully setup a logging stream
    // for the specified target.
    NO_STREAM_FOR_TARGET = 5;
};

table DaemonDiagnosticsStreamParameters {
    1: StreamMode stream_mode;
    // Sets the earliest time (in monotonic nanoseconds) of logs that will be returned.
    2: uint64 min_target_timestamp_nanos;
};
