Compare commits

..

1 Commits

Author SHA1 Message Date
Esteban Gehring
5b97b9a804 Revert "Add create requestOpts method to {{classname}}Interface #21708 (#21709)"
This reverts commit 51d5310dae.
2026-01-26 14:55:07 +01:00
267 changed files with 1654 additions and 5085 deletions

View File

@@ -21,7 +21,7 @@ jobs:
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: '3.9'
- name: Install dependencies
working-directory: ${{ matrix.sample }}
run: |

View File

@@ -21,7 +21,7 @@ jobs:
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: '3.9'
- name: Test
working-directory: ${{ matrix.sample }}
run: make test-all

View File

@@ -488,7 +488,7 @@
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.27.7</version>
<version>3.23.1</version>
<scope>test</scope>
</dependency>
<dependency>

View File

@@ -98,7 +98,7 @@ namespace {{packageName}}.{{clientPackage}}
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
{{#apiInfo}}{{#apis}}builders.Add(_services.AddHttpClient<{{interfacePrefix}}{{classname}}, {{classname}}>("{{packageName}}.{{apiPackage}}.{{interfacePrefix}}{{classname}}", client));
{{#apiInfo}}{{#apis}}builders.Add(_services.AddHttpClient<{{interfacePrefix}}{{classname}}, {{classname}}>(client));
{{/apis}}{{/apiInfo}}
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -16,11 +16,7 @@ namespace {{packageName}}.{{clientPackage}}
/// <typeparam name="TTokenBase"></typeparam>
{{>visibility}} class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new{{^net70OrLater}} Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>{{/net70OrLater}}();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new{{^net70OrLater}} Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>{{/net70OrLater}}();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -89,7 +85,7 @@ namespace {{packageName}}.{{clientPackage}}
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}})
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}})
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>{{nrt?}} tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -19,16 +19,7 @@ namespace {{packageName}}.{{clientPackage}}
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler{{nrt?}} TokenBecameAvailable;
/// <summary>

View File

@@ -16,12 +16,6 @@ namespace {{packageName}}
/// </summary>
{{>visibility}} abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}});
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}});
}
}

View File

@@ -22,7 +22,7 @@ orjson==3.9.15
promise==2.3
pydantic>=2
python-dotenv==0.17.1
python-multipart==0.0.22
python-multipart==0.0.18
PyYAML>=5.4.1,<6.1.0
requests==2.32.4
Rx==1.6.1

View File

@@ -66,22 +66,22 @@ secrecy = "0.8.0"
{{/withAWSV4Signature}}
{{#reqwest}}
{{^supportAsync}}
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
{{#supportMiddleware}}
reqwest-middleware = { version = "^0.5", features = ["json", "multipart", "query", "form"] }
reqwest-middleware = { version = "^0.4", features = ["json", "blocking", "multipart"] }
{{/supportMiddleware}}
{{/supportAsync}}
{{#supportAsync}}
{{#useAsyncFileStream}}
tokio = { version = "^1.46.0", features = ["fs"] }
tokio-util = { version = "^0.7", features = ["codec"] }
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "stream", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart", "stream"] }
{{/useAsyncFileStream}}
{{^useAsyncFileStream}}
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] }
{{/useAsyncFileStream}}
{{#supportMiddleware}}
reqwest-middleware = { version = "^0.5", features = ["json", "multipart", "query", "form"] }
reqwest-middleware = { version = "^0.4", features = ["json", "multipart"] }
{{/supportMiddleware}}
{{#supportTokenSource}}
async-trait = "^0.1"
@@ -93,13 +93,13 @@ google-cloud-token = "^0.1"
[features]
default = [{{#reqwestDefaultFeatures}}"{{.}}"{{^-last}}, {{/-last}}{{/reqwestDefaultFeatures}}]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]
{{/reqwest}}
{{#reqwestTrait}}
async-trait = "^0.1"
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "stream", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart", "stream"] }
{{#supportMiddleware}}
reqwest-middleware = { version = "^0.5", features = ["json", "multipart", "query", "form"] }
reqwest-middleware = { version = "^0.4", features = ["json", "multipart"] }
{{/supportMiddleware}}
{{#supportTokenSource}}
# TODO: propose to Yoshidan to externalize this as non google related crate, so that it can easily be extended for other cloud providers.
@@ -114,7 +114,7 @@ bon = { version = "2.3", optional = true }
[features]
default = [{{#reqwestDefaultFeatures}}"{{.}}"{{^-last}}, {{/-last}}{{/reqwestDefaultFeatures}}]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]
{{#mockall}}
mockall = ["dep:mockall"]
{{/mockall}}

View File

@@ -42,19 +42,6 @@ export interface {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterIn
*/
export interface {{classname}}Interface {
{{#operation}}
/**
* Creates request options for {{nickname}} without sending the request
{{#allParams}}
* @param {{=<% %>=}}{<%&dataType%>}<%={{ }}=%> {{^required}}[{{/required}}{{paramName}}{{^required}}]{{/required}} {{description}}
{{/allParams}}
{{#isDeprecated}}
* @deprecated
{{/isDeprecated}}
* @throws {RequiredError}
* @memberof {{classname}}Interface
*/
{{nickname}}RequestOpts({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): Promise<runtime.RequestOpts>;
/**
* {{&notes}}
{{#summary}}
@@ -108,12 +95,17 @@ export class {{classname}} extends runtime.BaseAPI {
{{#operation}}
/**
* Creates request options for {{nickname}} without sending the request
{{#notes}}
* {{&notes}}
{{/notes}}
{{#summary}}
* {{&summary}}
{{/summary}}
{{#isDeprecated}}
* @deprecated
{{/isDeprecated}}
*/
async {{nickname}}RequestOpts({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): Promise<runtime.RequestOpts> {
async {{nickname}}Raw({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request, {{/allParams.0}}initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {
{{#allParams}}
{{#required}}
if (requestParameters['{{paramName}}'] == null) {
@@ -312,7 +304,7 @@ export class {{classname}} extends runtime.BaseAPI {
{{/isDateTimeType}}
{{/pathParams}}
return {
const response = await this.request({
path: urlPath,
method: '{{httpMethod}}',
headers: headerParameters,
@@ -345,23 +337,7 @@ export class {{classname}} extends runtime.BaseAPI {
{{#hasFormParams}}
body: formParams,
{{/hasFormParams}}
};
}
/**
{{#notes}}
* {{&notes}}
{{/notes}}
{{#summary}}
* {{&summary}}
{{/summary}}
{{#isDeprecated}}
* @deprecated
{{/isDeprecated}}
*/
async {{nickname}}Raw({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request, {{/allParams.0}}initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {
const requestOptions = await this.{{nickname}}RequestOpts({{#allParams.0}}requestParameters{{/allParams.0}});
const response = await this.request(requestOptions, initOverrides);
}, initOverrides);
{{#returnType}}
{{#isResponseFile}}

View File

@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
serde_json = "^1.0"
serde_repr = "^0.1"
url = "^2.5"
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
[features]
default = ["native-tls"]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]

View File

@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
serde_json = "^1.0"
serde_repr = "^0.1"
url = "^2.5"
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] }
[features]
default = ["native-tls"]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]

View File

@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
serde_json = "^1.0"
serde_repr = "^0.1"
url = "^2.5"
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
[features]
default = ["native-tls"]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]

View File

@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
serde_json = "^1.0"
serde_repr = "^0.1"
url = "^2.5"
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
[features]
default = ["native-tls"]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]

View File

@@ -12,7 +12,7 @@ serde = { version = "^1.0", features = ["derive"] }
serde_json = "^1.0"
serde_repr = "^0.1"
url = "^2.5"
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] }
[dev-dependencies]
wiremock = "0.6"
@@ -21,4 +21,4 @@ tokio = { version = "^1.46.0", features = ["macros", "rt-multi-thread"] }
[features]
default = ["native-tls"]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]

View File

@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
serde_json = "^1.0"
serde_repr = "^0.1"
url = "^2.5"
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
[features]
default = ["native-tls"]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]

View File

@@ -11,9 +11,9 @@ serde = { version = "^1.0", features = ["derive"] }
serde_json = "^1.0"
serde_repr = "^0.1"
url = "^2.5"
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
[features]
default = ["native-tls"]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]

View File

@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
serde_json = "^1.0"
serde_repr = "^0.1"
url = "^2.5"
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
[features]
default = ["native-tls"]
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls"]
rustls-tls = ["reqwest/rustls-tls"]

View File

@@ -30,7 +30,7 @@ export class TestApi extends runtime.BaseAPI {
/**
* Creates request options for test without sending the request
*/
async testRequestOpts(): Promise<runtime.RequestOpts> {
async testRequestOpts(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.RequestOpts> {
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
@@ -49,8 +49,8 @@ export class TestApi extends runtime.BaseAPI {
/**
*/
async testRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<TestBaseDto>>> {
const requestOptions = await this.testRequestOpts();
const response = await this.request(requestOptions, initOverrides);
const requestConfig = await this.testRequestConfig(initOverrides);
const response = await this.request(requestConfig, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TestBaseDtoFromJSON));
}

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -51,7 +47,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -51,7 +47,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -69,7 +69,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -51,7 +47,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -66,7 +66,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -51,7 +47,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -66,9 +66,9 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IAPIKEYSApi, APIKEYSApi>("Org.OpenAPITools.Api.IAPIKEYSApi", client));
builders.Add(_services.AddHttpClient<IAPIKeysApi, APIKeysApi>("Org.OpenAPITools.Api.IAPIKeysApi", client));
builders.Add(_services.AddHttpClient<IApiKeysApi, ApiKeysApi>("Org.OpenAPITools.Api.IApiKeysApi", client));
builders.Add(_services.AddHttpClient<IAPIKEYSApi, APIKEYSApi>(client));
builders.Add(_services.AddHttpClient<IAPIKeysApi, APIKeysApi>(client));
builders.Add(_services.AddHttpClient<IApiKeysApi, ApiKeysApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -22,11 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -78,7 +74,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -25,16 +25,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -22,12 +22,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -67,7 +67,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -51,7 +47,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -67,7 +67,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -51,7 +47,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -67,7 +67,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -51,7 +47,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -229,13 +229,13 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>("Org.OpenAPITools.Api.IAnotherFakeApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>("Org.OpenAPITools.Api.IFakeApi", client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>("Org.OpenAPITools.Api.IPetApi", client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>("Org.OpenAPITools.Api.IStoreApi", client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>("Org.OpenAPITools.Api.IUserApi", client));
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>(client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>(client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>(client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>(client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>(client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -19,11 +19,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -75,7 +71,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -22,16 +22,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler TokenBecameAvailable;
/// <summary>

View File

@@ -19,12 +19,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -181,13 +181,13 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>("Org.OpenAPITools.Api.IAnotherFakeApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>("Org.OpenAPITools.Api.IFakeApi", client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>("Org.OpenAPITools.Api.IPetApi", client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>("Org.OpenAPITools.Api.IStoreApi", client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>("Org.OpenAPITools.Api.IUserApi", client));
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>(client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>(client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>(client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>(client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>(client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -77,7 +73,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -68,7 +68,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -51,7 +47,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -179,13 +179,13 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>("Org.OpenAPITools.Api.IAnotherFakeApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>("Org.OpenAPITools.Api.IFakeApi", client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>("Org.OpenAPITools.Api.IPetApi", client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>("Org.OpenAPITools.Api.IStoreApi", client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>("Org.OpenAPITools.Api.IUserApi", client));
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>(client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>(client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>(client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>(client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>(client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -19,11 +19,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -75,7 +71,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -22,16 +22,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler TokenBecameAvailable;
/// <summary>

View File

@@ -19,12 +19,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -289,13 +289,13 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>("Org.OpenAPITools.Api.IAnotherFakeApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>("Org.OpenAPITools.Api.IFakeApi", client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>("Org.OpenAPITools.Api.IPetApi", client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>("Org.OpenAPITools.Api.IStoreApi", client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>("Org.OpenAPITools.Api.IUserApi", client));
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>(client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>(client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>(client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>(client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>(client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -77,7 +73,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -63,7 +63,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -21,11 +21,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -51,7 +47,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -24,16 +24,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler? TokenBecameAvailable;
/// <summary>

View File

@@ -21,12 +21,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -63,7 +63,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -19,11 +19,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -49,7 +45,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -22,16 +22,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler TokenBecameAvailable;
/// <summary>

View File

@@ -19,12 +19,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -63,7 +63,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -19,11 +19,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -49,7 +45,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -22,16 +22,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler TokenBecameAvailable;
/// <summary>

View File

@@ -19,12 +19,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -63,7 +63,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -19,11 +19,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -49,7 +45,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -22,16 +22,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler TokenBecameAvailable;
/// <summary>

View File

@@ -19,12 +19,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -227,13 +227,13 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>("Org.OpenAPITools.Api.IAnotherFakeApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>("Org.OpenAPITools.Api.IFakeApi", client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>("Org.OpenAPITools.Api.IPetApi", client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>("Org.OpenAPITools.Api.IStoreApi", client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>("Org.OpenAPITools.Api.IUserApi", client));
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>(client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>(client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>(client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>(client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>(client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -19,11 +19,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -75,7 +71,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -22,16 +22,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler TokenBecameAvailable;
/// <summary>

View File

@@ -19,12 +19,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -64,7 +64,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -19,11 +19,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -49,7 +45,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -22,16 +22,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler TokenBecameAvailable;
/// <summary>

View File

@@ -19,12 +19,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -177,13 +177,13 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>("Org.OpenAPITools.Api.IAnotherFakeApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>("Org.OpenAPITools.Api.IFakeApi", client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>("Org.OpenAPITools.Api.IPetApi", client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>("Org.OpenAPITools.Api.IStoreApi", client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>("Org.OpenAPITools.Api.IUserApi", client));
builders.Add(_services.AddHttpClient<IAnotherFakeApi, AnotherFakeApi>(client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
builders.Add(_services.AddHttpClient<IFakeApi, FakeApi>(client));
builders.Add(_services.AddHttpClient<IFakeClassnameTags123Api, FakeClassnameTags123Api>(client));
builders.Add(_services.AddHttpClient<IPetApi, PetApi>(client));
builders.Add(_services.AddHttpClient<IStoreApi, StoreApi>(client));
builders.Add(_services.AddHttpClient<IUserApi, UserApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -19,11 +19,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -75,7 +71,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -22,16 +22,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler TokenBecameAvailable;
/// <summary>

View File

@@ -19,12 +19,6 @@ namespace Org.OpenAPITools
/// </summary>
public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
}
}

View File

@@ -61,7 +61,7 @@ namespace Org.OpenAPITools.Client
List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>("Org.OpenAPITools.Api.IDefaultApi", client));
builders.Add(_services.AddHttpClient<IDefaultApi, DefaultApi>(client));
if (builder != null)
foreach (IHttpClientBuilder instance in builders)

View File

@@ -19,11 +19,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
@@ -49,7 +45,7 @@ namespace Org.OpenAPITools.Client
}
/// <inheritdoc/>
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");

View File

@@ -22,16 +22,7 @@ namespace Org.OpenAPITools.Client
private readonly System.Timers.Timer _timer = new System.Timers.Timer();
internal TimeSpan? Timeout { get; set; }
/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler TokenBecameAvailable;
/// <summary>

Some files were not shown because too many files have changed in this diff Show More