namespace BlueLaminate.Scraper.Proxies; /// /// What kind of exit IP the caller wants. Provider-agnostic: each /// translates these knobs into its own gateway /// syntax. A sticky request asks the provider to pin one residential IP for the /// session's lifetime; a non-sticky request lets the IP rotate per connection. /// /// /// Optional ISO 3166-1 alpha-2 code, or a comma-separated list to let the /// provider pick one at random (e.g. "us" or "us,gb,de"). Null means no /// geo constraint. /// /// /// True to keep the same exit IP for the whole session; false to rotate. /// /// /// Optional caller-supplied session key for a sticky lease. When null and /// is true the provider generates one. /// /// /// How long a sticky IP should be held before the provider may recycle it. /// Ignored when is false. Null lets the provider /// apply its own default. /// public sealed record ProxyRequest( string? Country = null, bool Sticky = true, string? SessionId = null, TimeSpan? Lifetime = null);