using Myriad.Rest.Ratelimit; namespace Myriad.Rest.Exceptions; public class RatelimitException: Exception { public RatelimitException(string? message) : base(message) { } } public class RatelimitBucketExhaustedException: RatelimitException { public RatelimitBucketExhaustedException(Bucket bucket, TimeSpan retryAfter) : base( "Rate limit bucket exhausted, request blocked") { Bucket = bucket; RetryAfter = retryAfter; } public Bucket Bucket { get; } public TimeSpan RetryAfter { get; } } public class GloballyRatelimitedException: RatelimitException { public GloballyRatelimitedException() : base("Global rate limit hit") { } }