// Copyright Epic Games, Inc. All Rights Reserved.
using System;
using System.Collections.Generic;
using EpicGames.Horde.Agents.Pools;
using EpicGames.Horde.Streams;
#pragma warning disable CA2227 // Collection properties should be read only
namespace EpicGames.Horde.Agents.Telemetry
{
///
/// Response data for a utilization request
///
public class GetUtilizationDataResponse
{
///
/// Start hour
///
public DateTimeOffset StartTime { get; set; }
///
/// End hour
///
public DateTimeOffset FinishTime { get; set; }
///
/// List of pools
///
public List Pools { get; set; } = new List();
///
/// Total admin time
///
public double AdminTime { get; set; }
///
/// Total hibernating time
///
public double HibernatingTime { get; set; }
///
/// Total agents
///
public int NumAgents { get; set; }
}
///
/// Representation of an hour of time
///
public class GetUtilizationPoolDataResponse
{
///
/// Pool id
///
public PoolId PoolId { get; set; }
///
/// Number of agents in this pool
///
public int NumAgents { get; set; }
///
/// Total time spent doing admin work
///
public double AdminTime { get; set; }
///
/// Time spent hibernating
///
public double HibernatingTime { get; set; }
///
/// Total time agents in this pool were doing work for other pools
///
public double OtherTime { get; set; }
///
/// List of streams
///
public List Streams { get; set; } = new List();
}
///
/// Represents one stream in one pool in one hour of telemetry
///
public class GetUtilizationStreamDataResponse
{
///
/// Stream Id
///
public StreamId StreamId { get; set; }
///
/// Total time
///
public double Time { get; set; }
}
}