namespace StellaOps.Router.Common.Models;
///
/// Describes an endpoint's identity and metadata.
///
public sealed record EndpointDescriptor
{
///
/// Gets the name of the service that owns this endpoint.
///
public required string ServiceName { get; init; }
///
/// Gets the semantic version of the service.
///
public required string Version { get; init; }
///
/// Gets the HTTP method (GET, POST, PUT, PATCH, DELETE).
///
public required string Method { get; init; }
///
/// Gets the path template (e.g., "/billing/invoices/{id}").
///
public required string Path { get; init; }
///
/// Gets the default timeout for this endpoint.
///
public TimeSpan DefaultTimeout { get; init; } = TimeSpan.FromSeconds(30);
///
/// Gets the claim requirements for authorization.
///
public IReadOnlyList RequiringClaims { get; init; } = [];
///
/// Gets a value indicating whether this endpoint supports streaming.
///
public bool SupportsStreaming { get; init; }
}