using System; using System.Collections.Generic; using System.Text.Json.Serialization; namespace StellaOps.Cli.Services.Models; internal sealed class AocIngestDryRunRequest { [JsonPropertyName("tenant")] public string Tenant { get; init; } = string.Empty; [JsonPropertyName("source")] public string Source { get; init; } = string.Empty; [JsonPropertyName("document")] public AocIngestDryRunDocument Document { get; init; } = new(); } internal sealed class AocIngestDryRunDocument { [JsonPropertyName("name")] public string? Name { get; init; } [JsonPropertyName("content")] public string Content { get; init; } = string.Empty; [JsonPropertyName("contentType")] public string ContentType { get; init; } = "application/json"; [JsonPropertyName("contentEncoding")] public string? ContentEncoding { get; init; } } internal sealed class AocIngestDryRunResponse { [JsonPropertyName("source")] public string? Source { get; init; } [JsonPropertyName("tenant")] public string? Tenant { get; init; } [JsonPropertyName("guardVersion")] public string? GuardVersion { get; init; } [JsonPropertyName("status")] public string? Status { get; init; } [JsonPropertyName("document")] public AocIngestDryRunDocumentResult Document { get; init; } = new(); [JsonPropertyName("violations")] public IReadOnlyList Violations { get; init; } = Array.Empty(); } internal sealed class AocIngestDryRunDocumentResult { [JsonPropertyName("contentHash")] public string? ContentHash { get; init; } [JsonPropertyName("supersedes")] public string? Supersedes { get; init; } [JsonPropertyName("provenance")] public AocIngestDryRunProvenance Provenance { get; init; } = new(); } internal sealed class AocIngestDryRunProvenance { [JsonPropertyName("signature")] public AocIngestDryRunSignature Signature { get; init; } = new(); } internal sealed class AocIngestDryRunSignature { [JsonPropertyName("format")] public string? Format { get; init; } [JsonPropertyName("present")] public bool Present { get; init; } } internal sealed class AocIngestDryRunViolation { [JsonPropertyName("code")] public string Code { get; init; } = string.Empty; [JsonPropertyName("message")] public string Message { get; init; } = string.Empty; [JsonPropertyName("path")] public string? Path { get; init; } }