using System.Threading;
using System.Threading.Tasks;
using StellaOps.Cli.Services.Models;
namespace StellaOps.Cli.Services;
///
/// Client for observability API operations.
/// Per CLI-OBS-51-001/52-001.
///
internal interface IObservabilityClient
{
///
/// Gets platform health summary for obs top command.
///
Task GetHealthSummaryAsync(
ObsTopRequest request,
CancellationToken cancellationToken);
///
/// Gets a distributed trace by ID.
/// Per CLI-OBS-52-001.
///
Task GetTraceAsync(
ObsTraceRequest request,
CancellationToken cancellationToken);
///
/// Gets logs within a time window.
/// Per CLI-OBS-52-001.
///
Task GetLogsAsync(
ObsLogsRequest request,
CancellationToken cancellationToken);
///
/// Gets current incident mode status.
/// Per CLI-OBS-55-001.
///
Task GetIncidentModeStatusAsync(
string? tenant,
CancellationToken cancellationToken);
///
/// Enables incident mode.
/// Per CLI-OBS-55-001.
///
Task EnableIncidentModeAsync(
IncidentModeEnableRequest request,
CancellationToken cancellationToken);
///
/// Disables incident mode.
/// Per CLI-OBS-55-001.
///
Task DisableIncidentModeAsync(
IncidentModeDisableRequest request,
CancellationToken cancellationToken);
}