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);