feat: add jetstream api router and error envelope

This commit is contained in:
Joseph Doherty
2026-02-23 05:58:34 -05:00
parent 7fe15d7ce1
commit 6d23e89fe8
6 changed files with 90 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
namespace NATS.Server.JetStream.Api;
public sealed class JetStreamApiResponse
{
public JetStreamApiError? Error { get; init; }
public JetStreamStreamInfo? StreamInfo { get; init; }
public JetStreamConsumerInfo? ConsumerInfo { get; init; }
public static JetStreamApiResponse NotFound(string subject) => new()
{
Error = new JetStreamApiError
{
Code = 404,
Description = $"unknown api subject '{subject}'",
},
};
public static JetStreamApiResponse Ok() => new();
}
public sealed class JetStreamStreamInfo
{
public required JetStreamStreamConfig Config { get; init; }
public required JetStreamStreamState State { get; init; }
}
public sealed class JetStreamConsumerInfo
{
public required JetStreamConsumerConfig Config { get; init; }
}
public sealed class JetStreamStreamConfig
{
public string Name { get; init; } = string.Empty;
}
public sealed class JetStreamStreamState
{
public ulong Messages { get; init; }
public ulong FirstSeq { get; init; }
}
public sealed class JetStreamConsumerConfig
{
public string DurableName { get; init; } = string.Empty;
}