31 lines
1.2 KiB
C#
31 lines
1.2 KiB
C#
namespace BlueLaminate.Scraper.Proxies;
|
|
|
|
/// <summary>
|
|
/// What kind of exit IP the caller wants. Provider-agnostic: each
|
|
/// <see cref="IProxyProvider"/> 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.
|
|
/// </summary>
|
|
/// <param name="Country">
|
|
/// 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.
|
|
/// </param>
|
|
/// <param name="Sticky">
|
|
/// True to keep the same exit IP for the whole session; false to rotate.
|
|
/// </param>
|
|
/// <param name="SessionId">
|
|
/// Optional caller-supplied session key for a sticky lease. When null and
|
|
/// <paramref name="Sticky"/> is true the provider generates one.
|
|
/// </param>
|
|
/// <param name="Lifetime">
|
|
/// How long a sticky IP should be held before the provider may recycle it.
|
|
/// Ignored when <paramref name="Sticky"/> is false. Null lets the provider
|
|
/// apply its own default.
|
|
/// </param>
|
|
public sealed record ProxyRequest(
|
|
string? Country = null,
|
|
bool Sticky = true,
|
|
string? SessionId = null,
|
|
TimeSpan? Lifetime = null);
|