2.1 Configuration POCOs (Mqtt, Storage, UrlFetch, ApiKey)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
35
src/FrameProcessor/Configuration/MqttOptions.cs
Normal file
35
src/FrameProcessor/Configuration/MqttOptions.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace FrameProcessor.Configuration;
|
||||
|
||||
/// <summary>
|
||||
/// Bound from the <c>Mqtt</c> section of <c>appsettings.json</c>. See SPEC.md §6.1.
|
||||
/// </summary>
|
||||
public sealed class MqttOptions
|
||||
{
|
||||
public const string SectionName = "Mqtt";
|
||||
|
||||
[Required(AllowEmptyStrings = false)]
|
||||
public string Host { get; set; } = string.Empty;
|
||||
|
||||
[Range(1, 65535)]
|
||||
public int Port { get; set; } = 1883;
|
||||
|
||||
[Required(AllowEmptyStrings = false)]
|
||||
public string ClientId { get; set; } = string.Empty;
|
||||
|
||||
public string? Username { get; set; }
|
||||
|
||||
public string? Password { get; set; }
|
||||
|
||||
public bool UseTls { get; set; }
|
||||
|
||||
[Required(AllowEmptyStrings = false)]
|
||||
public string BaseTopic { get; set; } = "frames";
|
||||
|
||||
[Range(0, 2)]
|
||||
public int PublishQos { get; set; } = 1;
|
||||
|
||||
[MinLength(1)]
|
||||
public int[] RetryBackoffSeconds { get; set; } = Array.Empty<int>();
|
||||
}
|
||||
Reference in New Issue
Block a user