// Copyright Epic Games, Inc. All Rights Reserved. using System; using System.Collections.Generic; using EpicGames.Horde.Agents; using EpicGames.Horde.Agents.Pools; using EpicGames.Horde.Commits; using EpicGames.Horde.Jobs; using EpicGames.Horde.Jobs.Templates; using EpicGames.Horde.Logs; using EpicGames.Horde.Streams; namespace HordeServer.Jobs { /// /// Searchable reference to a jobstep /// public interface IJobStepRef { /// /// Globally unique identifier for the jobstep being referenced /// public JobStepRefId Id { get; } /// /// Name of the job /// public string JobName { get; } /// /// Name of the name /// public string NodeName { get; } /// /// Unique id of the stream containing the job /// public StreamId StreamId { get; } /// /// Template for the job being executed /// public TemplateId TemplateId { get; } /// /// The change number being built /// public CommitIdWithOrder CommitId { get; } /// /// Log for this step /// public LogId? LogId { get; } /// /// The agent type /// public PoolId? PoolId { get; } /// /// The agent id /// public AgentId? AgentId { get; } /// /// Outcome of the step, once complete. /// public JobStepOutcome? Outcome { get; } /// /// Metadata for the step /// public IReadOnlyList? Metadata { get; } /// /// Issues ids affecting this job step /// public IReadOnlyList? IssueIds { get; } /// /// Whether this step should update issues /// public bool UpdateIssues { get; } /// /// The last change that succeeded. Note that this is only set when the ref is updated; it is not necessarily consistent with steps run later. /// public CommitIdWithOrder? LastSuccess { get; } /// /// The last change that succeeded, or completed a warning. See . /// public CommitIdWithOrder? LastWarning { get; } /// /// Time taken for the batch containing this batch to start after it became ready /// public float BatchWaitTime { get; } /// /// Time taken for this batch to initialize /// public float BatchInitTime { get; } /// /// Time at which the step started. /// public DateTime StartTimeUtc { get; } /// /// Time at which the step finished. /// public DateTime? FinishTimeUtc { get; } } }