%PDF- %PDF-
| Direktori : /lib/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.21/ref/net8.0/ |
| Current File : //lib/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.21/ref/net8.0/System.Threading.RateLimiting.xml |
<?xml version="1.0"?>
<doc>
<assembly>
<name>System.Threading.RateLimiting</name>
</assembly>
<members>
<member name="T:System.Threading.RateLimiting.ChainedPartitionedRateLimiter`1">
<summary>
Acquires leases from rate limiters in the order given. If a lease fails to be acquired (throwing or IsAcquired == false)
then the already acquired leases are disposed in reverse order and the failing lease is returned or the exception is thrown to user code.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.ConcurrencyLimiter">
<summary>
<see cref="T:System.Threading.RateLimiting.RateLimiter"/> implementation that helps manage concurrent access to a resource.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.ConcurrencyLimiter.IdleDuration">
<inheritdoc />
</member>
<member name="M:System.Threading.RateLimiting.ConcurrencyLimiter.#ctor(System.Threading.RateLimiting.ConcurrencyLimiterOptions)">
<summary>
Initializes the <see cref="T:System.Threading.RateLimiting.ConcurrencyLimiter"/>.
</summary>
<param name="options">Options to specify the behavior of the <see cref="T:System.Threading.RateLimiting.ConcurrencyLimiter"/>.</param>
</member>
<member name="M:System.Threading.RateLimiting.ConcurrencyLimiter.GetStatistics">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.ConcurrencyLimiter.AttemptAcquireCore(System.Int32)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.ConcurrencyLimiter.AcquireAsyncCore(System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.ConcurrencyLimiter.Dispose(System.Boolean)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.ConcurrencyLimiter.DisposeAsyncCore">
<inheritdoc/>
</member>
<member name="T:System.Threading.RateLimiting.ConcurrencyLimiter.RequestRegistration.Disposer">
<summary>
Collects registrations to dispose outside the limiter lock to avoid deadlock.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.ConcurrencyLimiterOptions">
<summary>
Options to specify the behavior of a <see cref="T:System.Threading.RateLimiting.ConcurrencyLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.ConcurrencyLimiterOptions.PermitLimit">
<summary>
Maximum number of permits that can be leased concurrently.
Must be set to a value > 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.ConcurrencyLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.ConcurrencyLimiterOptions.QueueProcessingOrder">
<summary>
Determines the behaviour of <see cref="M:System.Threading.RateLimiting.RateLimiter.AcquireAsync(System.Int32,System.Threading.CancellationToken)"/> when not enough resources can be leased.
</summary>
<value>
<see cref="F:System.Threading.RateLimiting.QueueProcessingOrder.OldestFirst"/> by default.
</value>
</member>
<member name="P:System.Threading.RateLimiting.ConcurrencyLimiterOptions.QueueLimit">
<summary>
Maximum number of permits that can be queued concurrently.
Must be set to a value >= 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.ConcurrencyLimiter"/>.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.FixedWindowRateLimiter">
<summary>
<see cref="T:System.Threading.RateLimiting.RateLimiter"/> implementation that refreshes allowed permits in a window periodically.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.FixedWindowRateLimiter.IdleDuration">
<inheritdoc />
</member>
<member name="P:System.Threading.RateLimiting.FixedWindowRateLimiter.IsAutoReplenishing">
<inheritdoc />
</member>
<member name="P:System.Threading.RateLimiting.FixedWindowRateLimiter.ReplenishmentPeriod">
<inheritdoc />
</member>
<member name="M:System.Threading.RateLimiting.FixedWindowRateLimiter.#ctor(System.Threading.RateLimiting.FixedWindowRateLimiterOptions)">
<summary>
Initializes the <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiter"/>.
</summary>
<param name="options">Options to specify the behavior of the <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiter"/>.</param>
</member>
<member name="M:System.Threading.RateLimiting.FixedWindowRateLimiter.GetStatistics">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.FixedWindowRateLimiter.AttemptAcquireCore(System.Int32)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.FixedWindowRateLimiter.AcquireAsyncCore(System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.FixedWindowRateLimiter.TryReplenish">
<summary>
Attempts to replenish request counters in the window.
</summary>
<returns>
False if <see cref="P:System.Threading.RateLimiting.FixedWindowRateLimiterOptions.AutoReplenishment"/> is enabled, otherwise true.
Does not reflect if counters were replenished.
</returns>
</member>
<member name="M:System.Threading.RateLimiting.FixedWindowRateLimiter.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="M:System.Threading.RateLimiting.FixedWindowRateLimiter.DisposeAsyncCore">
<inheritdoc />
</member>
<member name="T:System.Threading.RateLimiting.FixedWindowRateLimiter.RequestRegistration.Disposer">
<summary>
Collects registrations to dispose outside the limiter lock to avoid deadlock.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.FixedWindowRateLimiterOptions">
<summary>
Options to specify the behavior of a <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.FixedWindowRateLimiterOptions.Window">
<summary>
Specifies the time window that takes in the requests.
Must be set to a value greater than <see cref="F:System.TimeSpan.Zero" /> by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.FixedWindowRateLimiterOptions.AutoReplenishment">
<summary>
Specified whether the <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiter"/> is automatically refresh counters or if someone else
will be calling <see cref="M:System.Threading.RateLimiting.FixedWindowRateLimiter.TryReplenish"/> to refresh counters.
</summary>
<value>
<see langword="true" /> by default.
</value>
</member>
<member name="P:System.Threading.RateLimiting.FixedWindowRateLimiterOptions.PermitLimit">
<summary>
Maximum number of permit counters that can be allowed in a window.
Must be set to a value > 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.FixedWindowRateLimiterOptions.QueueProcessingOrder">
<summary>
Determines the behaviour of <see cref="M:System.Threading.RateLimiting.RateLimiter.AcquireAsync(System.Int32,System.Threading.CancellationToken)"/> when not enough resources can be leased.
</summary>
<value>
<see cref="F:System.Threading.RateLimiting.QueueProcessingOrder.OldestFirst"/> by default.
</value>
</member>
<member name="P:System.Threading.RateLimiting.FixedWindowRateLimiterOptions.QueueLimit">
<summary>
Maximum cumulative permit count of queued acquisition requests.
Must be set to a value >= 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiter"/>.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.MetadataName">
<summary>
Contains some common metadata name-type pairs and helper method to create a metadata name.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.MetadataName.RetryAfter">
<summary>
Metadata put on a failed lease acquisition to specify when to retry acquiring a lease.
For example, used in <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/> which periodically replenishes leases.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.MetadataName.ReasonPhrase">
<summary>
Metadata put on a failed lease acquisition to specify the reason the lease failed.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.MetadataName.Create``1(System.String)">
<summary>
Create a strongly-typed metadata name.
</summary>
<typeparam name="T">Type that the metadata will contain.</typeparam>
<param name="name">Name of the metadata.</param>
<returns></returns>
</member>
<member name="T:System.Threading.RateLimiting.MetadataName`1">
<summary>
A strongly-typed name of metadata that can be stored in a <see cref="T:System.Threading.RateLimiting.RateLimitLease"/>.
</summary>
<typeparam name="T">The type the metadata will be.</typeparam>
</member>
<member name="M:System.Threading.RateLimiting.MetadataName`1.#ctor(System.String)">
<summary>
Constructs a <see cref="T:System.Threading.RateLimiting.MetadataName`1"/> object with the given name.
</summary>
<param name="name">The name of the <see cref="T:System.Threading.RateLimiting.MetadataName"/> object.</param>
</member>
<member name="P:System.Threading.RateLimiting.MetadataName`1.Name">
<summary>
Gets the name of the metadata.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.MetadataName`1.ToString">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.MetadataName`1.GetHashCode">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.MetadataName`1.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.MetadataName`1.Equals(System.Threading.RateLimiting.MetadataName{`0})">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.MetadataName`1.op_Equality(System.Threading.RateLimiting.MetadataName{`0},System.Threading.RateLimiting.MetadataName{`0})">
<summary>
Determines whether two <see cref="T:System.Threading.RateLimiting.MetadataName`1"/> are equal to each other.
</summary>
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.Threading.RateLimiting.MetadataName`1.op_Inequality(System.Threading.RateLimiting.MetadataName{`0},System.Threading.RateLimiting.MetadataName{`0})">
<summary>
Determines whether two <see cref="T:System.Threading.RateLimiting.MetadataName`1"/> are not equal to each other.
</summary>
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="T:System.Threading.RateLimiting.PartitionedRateLimiter">
<summary>
Contains methods to assist with creating a <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/>.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter.Create``2(System.Func{``0,System.Threading.RateLimiting.RateLimitPartition{``1}},System.Collections.Generic.IEqualityComparer{``1})">
<summary>
Method used to create a default implementation of <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/>.
</summary>
<typeparam name="TResource">The resource type that is being rate limited.</typeparam>
<typeparam name="TPartitionKey">The type to distinguish partitions with.</typeparam>
<param name="partitioner">Method called every time an Acquire or WaitAsync call is made to figure out what rate limiter to apply to the request.
If the <see cref="P:System.Threading.RateLimiting.RateLimitPartition`1.PartitionKey"/> matches a cached entry then the rate limiter previously used for that key is used. Otherwise, the factory is called to get a new rate limiter.</param>
<param name="equalityComparer">Optional <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> to customize the comparison logic for <typeparamref name="TPartitionKey"/>.</param>
<returns></returns>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter.CreateChained``1(System.Threading.RateLimiting.PartitionedRateLimiter{``0}[])">
<summary>
Creates a single <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/> that wraps the passed in <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/>s.
</summary>
<remarks>
<para>
Methods on the returned <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/> will iterate over the passed in <paramref name="limiters"/> in the order given.
</para>
<para>
<see cref="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.GetStatistics(`0)"/> will return the lowest value for <see cref="P:System.Threading.RateLimiting.RateLimiterStatistics.CurrentAvailablePermits"/>,
the inner-most limiter's <see cref="P:System.Threading.RateLimiting.RateLimiterStatistics.TotalSuccessfulLeases"/>,
and the aggregate values for the rest of the properties from the <paramref name="limiters"/>.
</para>
<para>
<see cref="T:System.Threading.RateLimiting.RateLimitLease"/>s returned will aggregate metadata and for duplicates use the value of the first lease with the same metadata name.
</para>
</remarks>
<typeparam name="TResource">The resource type that is being rate limited.</typeparam>
<param name="limiters">The <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/>s that will be called in order when acquiring resources.</param>
<returns></returns>
<exception cref="T:System.ArgumentNullException"><paramref name="limiters"/> is a null parameter.</exception>
<exception cref="T:System.ArgumentException"><paramref name="limiters"/> is an empty array.</exception>
</member>
<member name="T:System.Threading.RateLimiting.PartitionedRateLimiter`1">
<summary>
Represents a limiter type that users interact with to determine if an operation can proceed given a specific <typeparamref name="TResource"/>.
</summary>
<typeparam name="TResource">The resource type that is being limited.</typeparam>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.GetStatistics(`0)">
<summary>
Gets a snapshot of the statistics for the <paramref name="resource"/> if available.
</summary>
<returns>An instance of <see cref="T:System.Threading.RateLimiting.RateLimiterStatistics"/> containing a snapshot of the statistics for a <paramref name="resource"/>.</returns>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.AttemptAcquire(`0,System.Int32)">
<summary>
Fast synchronous attempt to acquire permits.
</summary>
<remarks>
Set <paramref name="permitCount"/> to 0 to get whether permits are exhausted.
</remarks>
<param name="resource">The resource to limit.</param>
<param name="permitCount">Number of permits to try and acquire.</param>
<returns>A successful or failed lease.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"></exception>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.AttemptAcquireCore(`0,System.Int32)">
<summary>
Method that <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/> implementations implement for <see cref="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.AttemptAcquire(`0,System.Int32)"/>.
</summary>
<param name="resource">The resource to limit.</param>
<param name="permitCount">Number of permits to try and acquire.</param>
<returns></returns>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.AcquireAsync(`0,System.Int32,System.Threading.CancellationToken)">
<summary>
Wait until the requested permits are available or permits can no longer be acquired.
</summary>
<remarks>
Set <paramref name="permitCount"/> to 0 to wait until permits are replenished.
</remarks>
<param name="resource">The resource to limit.</param>
<param name="permitCount">Number of permits to try and acquire.</param>
<param name="cancellationToken">Optional token to allow canceling a queued request for permits.</param>
<returns>A task that completes when the requested permits are acquired or when the requested permits are denied.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"></exception>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.AcquireAsyncCore(`0,System.Int32,System.Threading.CancellationToken)">
<summary>
Method that <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/> implementations implement for <see cref="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.AcquireAsync(`0,System.Int32,System.Threading.CancellationToken)"/>.
</summary>
<param name="resource">The resource to limit.</param>
<param name="permitCount">Number of permits to try and acquire.</param>
<param name="cancellationToken">Optional token to allow canceling a queued request for permits.</param>
<returns>A task that completes when the requested permits are acquired or when the requested permits are denied.</returns>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.Dispose(System.Boolean)">
<summary>
Dispose method for implementations to write.
</summary>
<param name="disposing"></param>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.Dispose">
<summary>
Disposes the RateLimiter. This completes any queued acquires with a failed lease.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.DisposeAsyncCore">
<summary>
DisposeAsync method for implementations to write.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.DisposeAsync">
<summary>
Disposes the RateLimiter asynchronously.
</summary>
<returns>ValueTask representing the completion of the disposal.</returns>
</member>
<member name="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.WithTranslatedKey``1(System.Func{``0,`0},System.Boolean)">
<summary>
Translates PartitionedRateLimiter<TOuter> into the current <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/>
using the <paramref name="keyAdapter"/> to translate <typeparamref name="TOuter"/> to <typeparamref name="TResource"/>.
</summary>
<typeparam name="TOuter">The type to translate into <typeparamref name="TResource"/>.</typeparam>
<param name="keyAdapter">The function to be called every time a <typeparamref name="TOuter"/> is passed to
PartitionedRateLimiter<TOuter>.Acquire(TOuter, int) or PartitionedRateLimiter<TOuter>.WaitAsync(TOuter, int, CancellationToken).
<para />
<remarks><paramref name="keyAdapter"/> should be implemented in a thread-safe way.</remarks></param>
<param name="leaveOpen">Specifies whether the returned <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/> will dispose the wrapped <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/>.</param>
<returns>A new PartitionedRateLimiter<TOuter> that translates <typeparamref name="TOuter"/>
to <typeparamref name="TResource"/> and calls the inner <see cref="T:System.Threading.RateLimiting.PartitionedRateLimiter`1"/>.</returns>
</member>
<member name="T:System.Threading.RateLimiting.QueueProcessingOrder">
<summary>
Controls the behavior of <see cref="M:System.Threading.RateLimiting.RateLimiter.AcquireAsync(System.Int32,System.Threading.CancellationToken)"/> when not enough resources can be leased.
</summary>
</member>
<member name="F:System.Threading.RateLimiting.QueueProcessingOrder.OldestFirst">
<summary>
Lease the oldest queued <see cref="M:System.Threading.RateLimiting.RateLimiter.AcquireAsync(System.Int32,System.Threading.CancellationToken)"/> call.
</summary>
</member>
<member name="F:System.Threading.RateLimiting.QueueProcessingOrder.NewestFirst">
<summary>
Lease the newest queued <see cref="M:System.Threading.RateLimiting.RateLimiter.AcquireAsync(System.Int32,System.Threading.CancellationToken)"/> call.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.RateLimiter">
<summary>
Represents a limiter type that users interact with to determine if an operation can proceed.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiter.GetStatistics">
<summary>
Gets a snapshot of the <see cref="T:System.Threading.RateLimiting.RateLimiter"/> statistics if available.
</summary>
<returns>An instance of <see cref="T:System.Threading.RateLimiting.RateLimiterStatistics"/> containing a snapshot of the <see cref="T:System.Threading.RateLimiting.RateLimiter"/> statistics.</returns>
</member>
<member name="P:System.Threading.RateLimiting.RateLimiter.IdleDuration">
<summary>
Specifies how long the <see cref="T:System.Threading.RateLimiting.RateLimiter"/> has had all permits available. Used by RateLimiter managers that may want to
clean up unused RateLimiters.
</summary>
<remarks>
Returns <see langword="null"/> when the <see cref="T:System.Threading.RateLimiting.RateLimiter"/> is in use or is not ready to be idle.
</remarks>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiter.AttemptAcquire(System.Int32)">
<summary>
Fast synchronous attempt to acquire permits.
</summary>
<remarks>
Set <paramref name="permitCount"/> to 0 to get whether permits are exhausted.
</remarks>
<param name="permitCount">Number of permits to try and acquire.</param>
<returns>A successful or failed lease.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"></exception>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiter.AttemptAcquireCore(System.Int32)">
<summary>
Method that <see cref="T:System.Threading.RateLimiting.RateLimiter"/> implementations implement for <see cref="M:System.Threading.RateLimiting.RateLimiter.AttemptAcquire(System.Int32)"/>.
</summary>
<param name="permitCount">Number of permits to try and acquire.</param>
<returns></returns>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiter.AcquireAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
Wait until the requested permits are available or permits can no longer be acquired.
</summary>
<remarks>
Set <paramref name="permitCount"/> to 0 to wait until permits are replenished.
</remarks>
<param name="permitCount">Number of permits to try and acquire.</param>
<param name="cancellationToken">Optional token to allow canceling a queued request for permits.</param>
<returns>A task that completes when the requested permits are acquired or when the requested permits are denied.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"></exception>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiter.AcquireAsyncCore(System.Int32,System.Threading.CancellationToken)">
<summary>
Method that <see cref="T:System.Threading.RateLimiting.RateLimiter"/> implementations implement for <see cref="M:System.Threading.RateLimiting.RateLimiter.AcquireAsync(System.Int32,System.Threading.CancellationToken)"/>.
</summary>
<param name="permitCount">Number of permits to try and acquire.</param>
<param name="cancellationToken">Optional token to allow canceling a queued request for permits.</param>
<returns>A task that completes when the requested permits are acquired or when the requested permits are denied.</returns>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiter.Dispose(System.Boolean)">
<summary>
Dispose method for implementations to write.
</summary>
<param name="disposing"></param>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiter.Dispose">
<summary>
Disposes the RateLimiter. This completes any queued acquires with a failed lease.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiter.DisposeAsyncCore">
<summary>
DisposeAsync method for implementations to write.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiter.DisposeAsync">
<summary>
Disposes the RateLimiter asynchronously.
</summary>
<returns>ValueTask representing the completion of the disposal.</returns>
</member>
<member name="T:System.Threading.RateLimiting.RateLimiterStatistics">
<summary>
Snapshot of statistics for a <see cref="T:System.Threading.RateLimiting.RateLimiter"/>.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.RateLimiterStatistics.#ctor">
<summary>
Initializes an instance of <see cref="T:System.Threading.RateLimiting.RateLimiterStatistics"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.RateLimiterStatistics.CurrentAvailablePermits">
<summary>
Gets the number of permits currently available for the <see cref="T:System.Threading.RateLimiting.RateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.RateLimiterStatistics.CurrentQueuedCount">
<summary>
Gets the number of queued permits for the <see cref="T:System.Threading.RateLimiting.RateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.RateLimiterStatistics.TotalFailedLeases">
<summary>
Gets the total number of failed <see cref="T:System.Threading.RateLimiting.RateLimitLease"/>s returned.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.RateLimiterStatistics.TotalSuccessfulLeases">
<summary>
Gets the total number of successful <see cref="T:System.Threading.RateLimiting.RateLimitLease"/>s returned.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.RateLimitLease">
<summary>
Abstraction for leases returned by <see cref="T:System.Threading.RateLimiting.RateLimiter"/> implementations.
A lease represents the success or failure to acquire a resource and contains potential metadata that is relevant to the acquisition operation.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.RateLimitLease.IsAcquired">
<summary>
Represents whether lease acquisition was successful.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitLease.TryGetMetadata(System.String,System.Object@)">
<summary>
Attempt to extract metadata for the lease.
</summary>
<param name="metadataName">The name of the metadata. Some common ones can be found in <see cref="T:System.Threading.RateLimiting.MetadataName"/>.</param>
<param name="metadata">The metadata object if it exists.</param>
<returns>True if the metadata exists, otherwise false.</returns>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitLease.TryGetMetadata``1(System.Threading.RateLimiting.MetadataName{``0},``0@)">
<summary>
Attempt to extract a strongly-typed metadata for the lease.
</summary>
<typeparam name="T">Type of the expected metadata.</typeparam>
<param name="metadataName">The name of the strongly-typed metadata. Some common ones can be found in <see cref="T:System.Threading.RateLimiting.MetadataName"/>.</param>
<param name="metadata">The strongly-typed metadata object if it exists.</param>
<returns>True if the metadata exists, otherwise false.</returns>
</member>
<member name="P:System.Threading.RateLimiting.RateLimitLease.MetadataNames">
<summary>
Gets a list of the metadata names that are available on the lease.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitLease.GetAllMetadata">
<summary>
Gets a list of all the metadata that is available on the lease.
</summary>
<returns>List of key-value pairs of metadata name and metadata object.</returns>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitLease.Dispose">
<summary>
Dispose the lease. This may free up space on the limiter implementation the lease came from.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitLease.Dispose(System.Boolean)">
<summary>
Dispose method for implementations to write.
</summary>
<param name="disposing"></param>
</member>
<member name="T:System.Threading.RateLimiting.RateLimitPartition">
<summary>
Contains methods used in <see cref="M:System.Threading.RateLimiting.PartitionedRateLimiter.Create``2(System.Func{``0,System.Threading.RateLimiting.RateLimitPartition{``1}},System.Collections.Generic.IEqualityComparer{``1})"/> to assist in the creation of partitions for your rate limiter.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitPartition.Get``1(``0,System.Func{``0,System.Threading.RateLimiting.RateLimiter})">
<summary>
Defines a partition with the given rate limiter factory.
</summary>
<typeparam name="TKey">The type to distinguish partitions with.</typeparam>
<remarks>
The <paramref name="factory"/> should return a new instance of a rate limiter every time it is called.
</remarks>
<param name="partitionKey">The specific key for this partition. This will be used to check for an existing cached limiter before calling the <paramref name="factory"/>.</param>
<param name="factory">The function called when a rate limiter for the given <paramref name="partitionKey"/> is needed. This should be a new instance of a rate limiter every time it is called.</param>
<returns></returns>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitPartition.GetConcurrencyLimiter``1(``0,System.Func{``0,System.Threading.RateLimiting.ConcurrencyLimiterOptions})">
<summary>
Defines a partition with a <see cref="T:System.Threading.RateLimiting.ConcurrencyLimiter"/> with the given <see cref="T:System.Threading.RateLimiting.ConcurrencyLimiterOptions"/>.
</summary>
<typeparam name="TKey">The type to distinguish partitions with.</typeparam>
<param name="partitionKey">The specific key for this partition. This will be used to check for an existing cached limiter before calling the <paramref name="factory"/>.</param>
<param name="factory">The function called when a rate limiter for the given <paramref name="partitionKey"/> is needed. This can return the same instance of <see cref="T:System.Threading.RateLimiting.ConcurrencyLimiterOptions"/> across different calls.</param>
<returns></returns>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitPartition.GetNoLimiter``1(``0)">
<summary>
Defines a partition that will not have a rate limiter.
This means any calls to <see cref="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.AttemptAcquire(`0,System.Int32)"/> or <see cref="M:System.Threading.RateLimiting.PartitionedRateLimiter`1.AcquireAsync(`0,System.Int32,System.Threading.CancellationToken)"/> will always succeed for the given <paramref name="partitionKey"/>.
</summary>
<typeparam name="TKey">The type to distinguish partitions with.</typeparam>
<param name="partitionKey">The specific key for this partition.</param>
<returns></returns>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitPartition.GetTokenBucketLimiter``1(``0,System.Func{``0,System.Threading.RateLimiting.TokenBucketRateLimiterOptions})">
<summary>
Defines a partition with a <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/> with the given <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiterOptions"/>.
</summary>
<remarks>
Set <see cref="P:System.Threading.RateLimiting.TokenBucketRateLimiterOptions.AutoReplenishment"/> to <see langword="false"/> to save an allocation. This method will create a new options type and set <see cref="P:System.Threading.RateLimiting.TokenBucketRateLimiterOptions.AutoReplenishment"/> to <see langword="false"/> otherwise.
</remarks>
<typeparam name="TKey">The type to distinguish partitions with.</typeparam>
<param name="partitionKey">The specific key for this partition.</param>
<param name="factory">The function called when a rate limiter for the given <paramref name="partitionKey"/> is needed. This can return the same instance of <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiterOptions"/> across different calls.</param>
<returns></returns>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitPartition.GetSlidingWindowLimiter``1(``0,System.Func{``0,System.Threading.RateLimiting.SlidingWindowRateLimiterOptions})">
<summary>
Defines a partition with a <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiter"/> with the given <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions"/>.
</summary>
<remarks>
Set <see cref="P:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions.AutoReplenishment"/> to <see langword="false"/> to save an allocation. This method will create a new options type and set <see cref="P:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions.AutoReplenishment"/> to <see langword="false"/> otherwise.
</remarks>
<typeparam name="TKey">The type to distinguish partitions with.</typeparam>
<param name="partitionKey">The specific key for this partition.</param>
<param name="factory">The function called when a rate limiter for the given <paramref name="partitionKey"/> is needed. This can return the same instance of <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions"/> across different calls.</param>
<returns></returns>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitPartition.GetFixedWindowLimiter``1(``0,System.Func{``0,System.Threading.RateLimiting.FixedWindowRateLimiterOptions})">
<summary>
Defines a partition with a <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiter"/> with the given <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiterOptions"/>.
</summary>
<remarks>
Set <see cref="P:System.Threading.RateLimiting.FixedWindowRateLimiterOptions.AutoReplenishment"/> to <see langword="false"/> to save an allocation. This method will create a new options type and set <see cref="P:System.Threading.RateLimiting.FixedWindowRateLimiterOptions.AutoReplenishment"/> to <see langword="false"/> otherwise.
</remarks>
<typeparam name="TKey">The type to distinguish partitions with.</typeparam>
<param name="partitionKey">The specific key for this partition.</param>
<param name="factory">The function called when a rate limiter for the given <paramref name="partitionKey"/> is needed. This can return the same instance of <see cref="T:System.Threading.RateLimiting.FixedWindowRateLimiterOptions"/> across different calls.</param>
<returns></returns>
</member>
<member name="T:System.Threading.RateLimiting.RateLimitPartition`1">
<summary>
Type returned by <see cref="M:System.Threading.RateLimiting.RateLimitPartition.Get``1(``0,System.Func{``0,System.Threading.RateLimiting.RateLimiter})"/> methods to be used by <see cref="M:System.Threading.RateLimiting.PartitionedRateLimiter.Create``2(System.Func{``0,System.Threading.RateLimiting.RateLimitPartition{``1}},System.Collections.Generic.IEqualityComparer{``1})"/> to know what partitions are configured.
</summary>
<typeparam name="TKey">The type to distinguish partitions with.</typeparam>
</member>
<member name="M:System.Threading.RateLimiting.RateLimitPartition`1.#ctor(`0,System.Func{`0,System.Threading.RateLimiting.RateLimiter})">
<summary>
Constructs the <see cref="T:System.Threading.RateLimiting.RateLimitPartition`1"/> for use in <see cref="M:System.Threading.RateLimiting.PartitionedRateLimiter.Create``2(System.Func{``0,System.Threading.RateLimiting.RateLimitPartition{``1}},System.Collections.Generic.IEqualityComparer{``1})"/>.
</summary>
<param name="partitionKey">The specific key for this partition.</param>
<param name="factory">The function called when a rate limiter for the given <paramref name="partitionKey"/> is needed.</param>
</member>
<member name="P:System.Threading.RateLimiting.RateLimitPartition`1.PartitionKey">
<summary>
The specific key for this partition.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.RateLimitPartition`1.Factory">
<summary>
The function called when a rate limiter for the given partitionKey is needed.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.ReplenishingRateLimiter">
<summary>
Abstraction that specifies that the <see cref="T:System.Threading.RateLimiting.RateLimiter"/> implementation is capable of replenishing tokens.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.ReplenishingRateLimiter.ReplenishmentPeriod">
<summary>
Specifies how often the <see cref="T:System.Threading.RateLimiting.ReplenishingRateLimiter"/> will replenish tokens.
If <see cref="P:System.Threading.RateLimiting.ReplenishingRateLimiter.IsAutoReplenishing"/> is <see langword="false"/> then this is how often <see cref="M:System.Threading.RateLimiting.ReplenishingRateLimiter.TryReplenish"/> should be called.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.ReplenishingRateLimiter.IsAutoReplenishing">
<summary>
Specifies if the <see cref="T:System.Threading.RateLimiting.ReplenishingRateLimiter"/> is automatically replenishing
its tokens or if it expects an external source to regularly call <see cref="M:System.Threading.RateLimiting.ReplenishingRateLimiter.TryReplenish"/>.
</summary>
</member>
<member name="M:System.Threading.RateLimiting.ReplenishingRateLimiter.TryReplenish">
<summary>
Attempts to replenish tokens.
</summary>
<returns>
Generally returns <see langword="false"/> if <see cref="P:System.Threading.RateLimiting.ReplenishingRateLimiter.IsAutoReplenishing"/> is enabled
or if no tokens were replenished. Otherwise <see langword="true"/>.
</returns>
</member>
<member name="T:System.Threading.RateLimiting.SlidingWindowRateLimiter">
<summary>
<see cref="T:System.Threading.RateLimiting.RateLimiter"/> implementation that replenishes permit counters periodically instead of via a release mechanism.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.SlidingWindowRateLimiter.IdleDuration">
<inheritdoc />
</member>
<member name="P:System.Threading.RateLimiting.SlidingWindowRateLimiter.IsAutoReplenishing">
<inheritdoc />
</member>
<member name="P:System.Threading.RateLimiting.SlidingWindowRateLimiter.ReplenishmentPeriod">
<inheritdoc />
</member>
<member name="M:System.Threading.RateLimiting.SlidingWindowRateLimiter.#ctor(System.Threading.RateLimiting.SlidingWindowRateLimiterOptions)">
<summary>
Initializes the <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiter"/>.
</summary>
<param name="options">Options to specify the behavior of the <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiter"/>.</param>
</member>
<member name="M:System.Threading.RateLimiting.SlidingWindowRateLimiter.GetStatistics">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.SlidingWindowRateLimiter.AttemptAcquireCore(System.Int32)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.SlidingWindowRateLimiter.AcquireAsyncCore(System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.SlidingWindowRateLimiter.TryReplenish">
<summary>
Attempts to replenish request counters in a window.
</summary>
<returns>
False if <see cref="P:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions.AutoReplenishment"/> is enabled, otherwise true.
Does not reflect if permits were replenished.
</returns>
</member>
<member name="M:System.Threading.RateLimiting.SlidingWindowRateLimiter.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="M:System.Threading.RateLimiting.SlidingWindowRateLimiter.DisposeAsyncCore">
<inheritdoc />
</member>
<member name="T:System.Threading.RateLimiting.SlidingWindowRateLimiter.RequestRegistration.Disposer">
<summary>
Collects registrations to dispose outside the limiter lock to avoid deadlock.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions">
<summary>
Options to specify the behavior of a <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions.Window">
<summary>
Specifies the minimum period between replenishments.
Must be set to a value greater than <see cref="F:System.TimeSpan.Zero" /> by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions.SegmentsPerWindow">
<summary>
Specifies the maximum number of segments a window is divided into.
Must be set to a value > 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions.AutoReplenishment">
<summary>
Specified whether the <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiter"/> is automatically replenishing request counters or if someone else
will be calling <see cref="M:System.Threading.RateLimiting.SlidingWindowRateLimiter.TryReplenish"/> to replenish tokens.
</summary>
<value>
<see langword="true" /> by default.
</value>
</member>
<member name="P:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions.PermitLimit">
<summary>
Maximum number of requests that can be served in a window.
Must be set to a value > 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions.QueueProcessingOrder">
<summary>
Determines the behaviour of <see cref="M:System.Threading.RateLimiting.RateLimiter.AcquireAsync(System.Int32,System.Threading.CancellationToken)"/> when not enough resources can be leased.
</summary>
<value>
<see cref="F:System.Threading.RateLimiting.QueueProcessingOrder.OldestFirst"/> by default.
</value>
</member>
<member name="P:System.Threading.RateLimiting.SlidingWindowRateLimiterOptions.QueueLimit">
<summary>
Maximum cumulative permit count of queued acquisition requests.
Must be set to a value >= 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.SlidingWindowRateLimiter"/>.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.TokenBucketRateLimiter">
<summary>
<see cref="T:System.Threading.RateLimiting.RateLimiter"/> implementation that replenishes tokens periodically instead of via a release mechanism.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.TokenBucketRateLimiter.IdleDuration">
<inheritdoc />
</member>
<member name="P:System.Threading.RateLimiting.TokenBucketRateLimiter.IsAutoReplenishing">
<inheritdoc />
</member>
<member name="P:System.Threading.RateLimiting.TokenBucketRateLimiter.ReplenishmentPeriod">
<inheritdoc />
</member>
<member name="M:System.Threading.RateLimiting.TokenBucketRateLimiter.#ctor(System.Threading.RateLimiting.TokenBucketRateLimiterOptions)">
<summary>
Initializes the <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/>.
</summary>
<param name="options">Options to specify the behavior of the <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/>.</param>
</member>
<member name="M:System.Threading.RateLimiting.TokenBucketRateLimiter.GetStatistics">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.TokenBucketRateLimiter.AttemptAcquireCore(System.Int32)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.TokenBucketRateLimiter.AcquireAsyncCore(System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:System.Threading.RateLimiting.TokenBucketRateLimiter.TryReplenish">
<summary>
Attempts to replenish the bucket.
</summary>
<returns>
<see langword="false"/> if <see cref="P:System.Threading.RateLimiting.TokenBucketRateLimiterOptions.AutoReplenishment"/> is enabled, otherwise <see langword="true"/>.
Does not reflect if tokens were replenished.
</returns>
</member>
<member name="M:System.Threading.RateLimiting.TokenBucketRateLimiter.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="M:System.Threading.RateLimiting.TokenBucketRateLimiter.DisposeAsyncCore">
<inheritdoc />
</member>
<member name="T:System.Threading.RateLimiting.TokenBucketRateLimiter.RequestRegistration.Disposer">
<summary>
Collects registrations to dispose outside the limiter lock to avoid deadlock.
</summary>
</member>
<member name="T:System.Threading.RateLimiting.TokenBucketRateLimiterOptions">
<summary>
Options to control the behavior of a <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.TokenBucketRateLimiterOptions.ReplenishmentPeriod">
<summary>
Specifies the minimum period between replenishments.
Must be set to a value greater than <see cref="F:System.TimeSpan.Zero" /> by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.TokenBucketRateLimiterOptions.TokensPerPeriod">
<summary>
Specifies the maximum number of tokens to restore each replenishment.
Must be set to a value > 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.TokenBucketRateLimiterOptions.AutoReplenishment">
<summary>
Specified whether the <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/> is automatically replenishing tokens or if someone else
will be calling <see cref="M:System.Threading.RateLimiting.TokenBucketRateLimiter.TryReplenish"/> to replenish tokens.
</summary>
<value>
<see langword="true" /> by default.
</value>
</member>
<member name="P:System.Threading.RateLimiting.TokenBucketRateLimiterOptions.TokenLimit">
<summary>
Maximum number of tokens that can be in the bucket at any time.
Must be set to a value > 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/>.
</summary>
</member>
<member name="P:System.Threading.RateLimiting.TokenBucketRateLimiterOptions.QueueProcessingOrder">
<summary>
Determines the behaviour of <see cref="M:System.Threading.RateLimiting.RateLimiter.AcquireAsync(System.Int32,System.Threading.CancellationToken)"/> when not enough resources can be leased.
</summary>
<value>
<see cref="F:System.Threading.RateLimiting.QueueProcessingOrder.OldestFirst"/> by default.
</value>
</member>
<member name="P:System.Threading.RateLimiting.TokenBucketRateLimiterOptions.QueueLimit">
<summary>
Maximum cumulative token count of queued acquisition requests.
Must be set to a value >= 0 by the time these options are passed to the constructor of <see cref="T:System.Threading.RateLimiting.TokenBucketRateLimiter"/>.
</summary>
</member>
<member name="T:System.Collections.Generic.Deque`1">
<summary>Provides a double-ended queue data structure.</summary>
<typeparam name="T">Type of the data stored in the dequeue.</typeparam>
</member>
<member name="P:System.SR.TokenLimitExceeded">
<summary>{0} token(s) exceeds the token limit of {1}.</summary>
</member>
<member name="P:System.SR.PermitLimitExceeded">
<summary>{0} permit(s) exceeds the permit limit of {1}.</summary>
</member>
<member name="P:System.SR.ReplenishmentLimitTooHigh">
<summary>Over 49 days is not supported.</summary>
</member>
<member name="P:System.SR.ShouldBeGreaterThan0">
<summary>{0} must be set to a value greater than 0.</summary>
</member>
<member name="P:System.SR.ShouldBeGreaterThanOrEqual0">
<summary>{0} must be set to a value greater than or equal to 0.</summary>
</member>
<member name="P:System.SR.ShouldBeGreaterThanTimeSpan0">
<summary>{0} must be set to a value greater than TimeSpan.Zero.</summary>
</member>
</members>
</doc>