Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
api-governance / spectral-lint (push) Has been cancelled
oas-ci / oas-validate (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Policy Simulation / policy-simulate (push) Has been cancelled
SDK Publish & Sign / sdk-publish (push) Has been cancelled
122 lines
3.3 KiB
C#
122 lines
3.3 KiB
C#
namespace StellaOps.Notifier.WebService.Contracts;
|
|
|
|
/// <summary>
|
|
/// Incident list query parameters.
|
|
/// </summary>
|
|
public sealed record IncidentListQuery
|
|
{
|
|
/// <summary>
|
|
/// Filter by status (open, acknowledged, resolved).
|
|
/// </summary>
|
|
public string? Status { get; init; }
|
|
|
|
/// <summary>
|
|
/// Filter by event kind prefix.
|
|
/// </summary>
|
|
public string? EventKindPrefix { get; init; }
|
|
|
|
/// <summary>
|
|
/// Filter incidents after this timestamp.
|
|
/// </summary>
|
|
public DateTimeOffset? Since { get; init; }
|
|
|
|
/// <summary>
|
|
/// Filter incidents before this timestamp.
|
|
/// </summary>
|
|
public DateTimeOffset? Until { get; init; }
|
|
|
|
/// <summary>
|
|
/// Maximum number of results.
|
|
/// </summary>
|
|
public int? Limit { get; init; }
|
|
|
|
/// <summary>
|
|
/// Cursor for pagination.
|
|
/// </summary>
|
|
public string? Cursor { get; init; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Incident response DTO.
|
|
/// </summary>
|
|
public sealed record IncidentResponse
|
|
{
|
|
public required string IncidentId { get; init; }
|
|
public required string TenantId { get; init; }
|
|
public required string EventKind { get; init; }
|
|
public required string Status { get; init; }
|
|
public required string Severity { get; init; }
|
|
public required string Title { get; init; }
|
|
public string? Description { get; init; }
|
|
public required int EventCount { get; init; }
|
|
public required DateTimeOffset FirstOccurrence { get; init; }
|
|
public required DateTimeOffset LastOccurrence { get; init; }
|
|
public string? AcknowledgedBy { get; init; }
|
|
public DateTimeOffset? AcknowledgedAt { get; init; }
|
|
public string? ResolvedBy { get; init; }
|
|
public DateTimeOffset? ResolvedAt { get; init; }
|
|
public List<string>? Labels { get; init; }
|
|
public Dictionary<string, string>? Metadata { get; init; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Incident list response with pagination.
|
|
/// </summary>
|
|
public sealed record IncidentListResponse
|
|
{
|
|
public required List<IncidentResponse> Incidents { get; init; }
|
|
public required int TotalCount { get; init; }
|
|
public string? NextCursor { get; init; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Request to acknowledge an incident.
|
|
/// </summary>
|
|
public sealed record IncidentAckRequest
|
|
{
|
|
/// <summary>
|
|
/// Actor performing the acknowledgement.
|
|
/// </summary>
|
|
public string? Actor { get; init; }
|
|
|
|
/// <summary>
|
|
/// Optional comment.
|
|
/// </summary>
|
|
public string? Comment { get; init; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Request to resolve an incident.
|
|
/// </summary>
|
|
public sealed record IncidentResolveRequest
|
|
{
|
|
/// <summary>
|
|
/// Actor resolving the incident.
|
|
/// </summary>
|
|
public string? Actor { get; init; }
|
|
|
|
/// <summary>
|
|
/// Resolution reason.
|
|
/// </summary>
|
|
public string? Reason { get; init; }
|
|
|
|
/// <summary>
|
|
/// Optional comment.
|
|
/// </summary>
|
|
public string? Comment { get; init; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Delivery history item for an incident.
|
|
/// </summary>
|
|
public sealed record DeliveryHistoryItem
|
|
{
|
|
public required string DeliveryId { get; init; }
|
|
public required string ChannelType { get; init; }
|
|
public required string ChannelName { get; init; }
|
|
public required string Status { get; init; }
|
|
public required DateTimeOffset Timestamp { get; init; }
|
|
public string? ErrorMessage { get; init; }
|
|
public int Attempts { get; init; }
|
|
}
|