Files
git.stella-ops.org/src/StellaOps.Concelier.Connector.StellaOpsMirror/Internal/MirrorIndexDocument.cs
master 5fd4032c7c
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Add channel test providers for Email, Slack, Teams, and Webhook
- Implemented EmailChannelTestProvider to generate email preview payloads.
- Implemented SlackChannelTestProvider to create Slack message previews.
- Implemented TeamsChannelTestProvider for generating Teams Adaptive Card previews.
- Implemented WebhookChannelTestProvider to create webhook payloads.
- Added INotifyChannelTestProvider interface for channel-specific preview generation.
- Created ChannelTestPreviewContracts for request and response models.
- Developed NotifyChannelTestService to handle test send requests and generate previews.
- Added rate limit policies for test sends and delivery history.
- Implemented unit tests for service registration and binding.
- Updated project files to include necessary dependencies and configurations.
2025-10-19 23:29:34 +03:00

39 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace StellaOps.Concelier.Connector.StellaOpsMirror.Internal;
public sealed record MirrorIndexDocument(
[property: JsonPropertyName("schemaVersion")] int SchemaVersion,
[property: JsonPropertyName("generatedAt")] DateTimeOffset GeneratedAt,
[property: JsonPropertyName("targetRepository")] string? TargetRepository,
[property: JsonPropertyName("domains")] IReadOnlyList<MirrorIndexDomainEntry> Domains);
public sealed record MirrorIndexDomainEntry(
[property: JsonPropertyName("domainId")] string DomainId,
[property: JsonPropertyName("displayName")] string DisplayName,
[property: JsonPropertyName("advisoryCount")] int AdvisoryCount,
[property: JsonPropertyName("manifest")] MirrorFileDescriptor Manifest,
[property: JsonPropertyName("bundle")] MirrorFileDescriptor Bundle,
[property: JsonPropertyName("sources")] IReadOnlyList<MirrorSourceSummary> Sources);
public sealed record MirrorFileDescriptor(
[property: JsonPropertyName("path")] string Path,
[property: JsonPropertyName("sizeBytes")] long SizeBytes,
[property: JsonPropertyName("digest")] string Digest,
[property: JsonPropertyName("signature")] MirrorSignatureDescriptor? Signature);
public sealed record MirrorSignatureDescriptor(
[property: JsonPropertyName("path")] string Path,
[property: JsonPropertyName("algorithm")] string Algorithm,
[property: JsonPropertyName("keyId")] string KeyId,
[property: JsonPropertyName("provider")] string Provider,
[property: JsonPropertyName("signedAt")] DateTimeOffset SignedAt);
public sealed record MirrorSourceSummary(
[property: JsonPropertyName("source")] string Source,
[property: JsonPropertyName("firstRecordedAt")] DateTimeOffset? FirstRecordedAt,
[property: JsonPropertyName("lastRecordedAt")] DateTimeOffset? LastRecordedAt,
[property: JsonPropertyName("advisoryCount")] int AdvisoryCount);