diff --git a/.github/workflows/samples-python-fastapi-server.yaml b/.github/workflows/samples-python-fastapi-server.yaml index d871693684f8..859da39128c1 100644 --- a/.github/workflows/samples-python-fastapi-server.yaml +++ b/.github/workflows/samples-python-fastapi-server.yaml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@v5 - uses: actions/setup-python@v6 with: - python-version: '3.9' + python-version: '3.10' - name: Install dependencies working-directory: ${{ matrix.sample }} run: | diff --git a/bin/configs/html.yaml b/bin/configs/html.yaml new file mode 100644 index 000000000000..5aab705f8dbb --- /dev/null +++ b/bin/configs/html.yaml @@ -0,0 +1,6 @@ +generatorName: html +outputDir: samples/documentation/html +inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml +templateDir: modules/openapi-generator/src/main/resources/htmlDocs +additionalProperties: + hideGenerationTimestamp: "true" diff --git a/bin/configs/swift6-vapor.yaml b/bin/configs/swift6-vapor.yaml index 948e4c7429fd..ffba9e9cf466 100644 --- a/bin/configs/swift6-vapor.yaml +++ b/bin/configs/swift6-vapor.yaml @@ -7,6 +7,6 @@ generateAliasAsModel: true additionalProperties: projectName: PetstoreClient useSPMFileStructure: true - useClasses: true + useClasses: false useBacktickEscapes: true mapFileBinaryToData: true diff --git a/bitrise.yml b/bitrise.yml index 54ce23c6c534..b1ac197b4c76 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -27,15 +27,6 @@ workflows: set -e ./samples/client/petstore/swift6/swift6_test_all.sh - - script@1.2.0: - title: Run Swift5 tests - inputs: - - content: | - #!/usr/bin/env bash - - set -e - - ./samples/client/petstore/swift5/swift5_test_all.sh - script@1.2.0: title: Run swift-combine tests inputs: diff --git a/modules/openapi-generator/pom.xml b/modules/openapi-generator/pom.xml index 269ceeaf6a6a..491b71df0e1b 100644 --- a/modules/openapi-generator/pom.xml +++ b/modules/openapi-generator/pom.xml @@ -488,7 +488,7 @@ org.assertj assertj-core - 3.23.1 + 3.27.7 test diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 9a6d64f09c96..5d8afcd07e70 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -1326,8 +1326,8 @@ public String toDefaultValue(CodegenProperty cp, Schema schema) { // if default to empty container option is set, respect the default values provided in the spec return toArrayDefaultValue(cp, schema); } else if (schema.getDefault() == null) { - // nullable or containerDefaultToNull set to true - if (cp.isNullable || containerDefaultToNull) { + // nullable or containerDefaultToNull set to true or an optional array with minItems > 0 + if (cp.isNullable || containerDefaultToNull || (cp.minItems != null && cp.minItems > 0 && !cp.getHasRequired())) { return null; } return getDefaultCollectionType(schema); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpNextgenClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpNextgenClientCodegen.java index 259916c0ebae..447e2b346666 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpNextgenClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpNextgenClientCodegen.java @@ -214,7 +214,11 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List 1) { + phpReturnType = phpReturnType + "|null"; + } else { + phpReturnType = "?" + phpReturnType; + } docReturnType = docReturnType + "|null"; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java index b8044bd2219f..ba23e9df492d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java @@ -330,7 +330,7 @@ public void postProcess() { @Override public String generatorLanguageVersion() { - return "3.7"; + return "3.10"; } @Override diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java index 289d9febe856..47c98f557411 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java @@ -235,7 +235,7 @@ private static URL getDefaultUrl() { public static boolean isRelativeUrl(List servers) { if (servers != null && servers.size() > 0) { final Server firstServer = servers.get(0); - return Pattern.matches("^(\\/[\\w\\d]+)+", firstServer.getUrl()); + return Pattern.matches("^(\\/[\\w\\d.~@-]+)+", firstServer.getUrl()); } return false; } diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/resteasy/pom.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/resteasy/pom.mustache index cf0422c3d9f4..44991f42e34a 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/resteasy/pom.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/resteasy/pom.mustache @@ -311,7 +311,7 @@ {{/useJakartaEe}} 2.9.10 1.0.0 - 3.23.1 + 3.27.7 5.10.2 diff --git a/modules/openapi-generator/src/main/resources/csharp/AssemblyInfo.mustache b/modules/openapi-generator/src/main/resources/csharp/AssemblyInfo.mustache index d5d937dc19fa..4f66e0398ed6 100644 --- a/modules/openapi-generator/src/main/resources/csharp/AssemblyInfo.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/AssemblyInfo.mustache @@ -1,3 +1,4 @@ +{{>partial_header}} using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiFactory.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiFactory.mustache index a445d2169219..d8aa27040ff1 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiFactory.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiFactory.mustache @@ -1,3 +1,4 @@ +{{>partial_header}} using System; using Microsoft.Extensions.DependencyInjection; using {{packageName}}.{{apiPackage}}; diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiKeyToken.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiKeyToken.mustache index d3f1f5214886..ca9a9e36f136 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiKeyToken.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiKeyToken.mustache @@ -1,5 +1,6 @@ // -{{partial_header}} +{{>partial_header}} + {{#nrt}} #nullable enable @@ -53,4 +54,4 @@ namespace {{packageName}}.{{clientPackage}} parseQueryString[ClientUtils.ApiKeyHeaderToString(Header)] = Uri.EscapeDataString(_raw).ToString(){{nrt!}}; } } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs`1.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs`1.mustache index aea35fae13aa..e50a15c7c9f4 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs`1.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs`1.mustache @@ -1,3 +1,4 @@ +{{>partial_header}} using System; namespace {{packageName}}.{{clientPackage}} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/BasicToken.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/BasicToken.mustache index ed6f53e548ea..c35e95b44f9a 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/BasicToken.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/BasicToken.mustache @@ -1,5 +1,6 @@ // -{{partial_header}} +{{>partial_header}} + {{#nrt}} #nullable enable @@ -43,4 +44,4 @@ namespace {{packageName}}.{{clientPackage}} request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", {{packageName}}.Client.ClientUtils.Base64Encode(_username + ":" + _password)); } } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/BearerToken.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/BearerToken.mustache index 761f598d82be..de33b602ad34 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/BearerToken.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/BearerToken.mustache @@ -1,5 +1,6 @@ // -{{partial_header}} +{{>partial_header}} + {{#nrt}} #nullable enable @@ -38,4 +39,4 @@ namespace {{packageName}}.{{clientPackage}} request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/CookieContainer.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/CookieContainer.mustache index f96d4fb418fa..3b7c10b75427 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/CookieContainer.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/CookieContainer.mustache @@ -1,5 +1,6 @@ // -{{partial_header}} +{{>partial_header}} + {{#nrt}} #nullable enable @@ -19,4 +20,4 @@ namespace {{packageName}}.{{clientPackage}} /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ExceptionEventArgs.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ExceptionEventArgs.mustache index b74fcfa0a1de..aa0937189a21 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ExceptionEventArgs.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ExceptionEventArgs.mustache @@ -1,3 +1,4 @@ +{{>partial_header}} using System; namespace {{packageName}}.{{clientPackage}} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HostConfiguration.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HostConfiguration.mustache index 03dd95e59a51..3e481c4d005b 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HostConfiguration.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HostConfiguration.mustache @@ -98,7 +98,7 @@ namespace {{packageName}}.{{clientPackage}} List builders = new List(); - {{#apiInfo}}{{#apis}}builders.Add(_services.AddHttpClient<{{interfacePrefix}}{{classname}}, {{classname}}>(client)); + {{#apiInfo}}{{#apis}}builders.Add(_services.AddHttpClient<{{interfacePrefix}}{{classname}}, {{classname}}>("{{packageName}}.{{apiPackage}}.{{interfacePrefix}}{{classname}}", client)); {{/apis}}{{/apiInfo}} if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HttpSigningToken.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HttpSigningToken.mustache index 881682e89241..e07345d2d046 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HttpSigningToken.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HttpSigningToken.mustache @@ -1,5 +1,6 @@ // -{{partial_header}} +{{>partial_header}} + {{#nrt}} #nullable enable @@ -42,4 +43,4 @@ namespace {{packageName}}.{{clientPackage}} request.Headers.Add(signedHeader.Key, signedHeader.Value); } } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/IApi.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/IApi.mustache index af31cffe9293..a3524bac5bb6 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/IApi.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/IApi.mustache @@ -1,3 +1,4 @@ +{{>partial_header}} using System.Net.Http; namespace {{packageName}}.{{apiPackage}} @@ -12,4 +13,4 @@ namespace {{packageName}}.{{apiPackage}} /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/JsonSerializerOptionsProvider.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/JsonSerializerOptionsProvider.mustache index 93f8054031b8..2f74d33672e5 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/JsonSerializerOptionsProvider.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/JsonSerializerOptionsProvider.mustache @@ -1,5 +1,6 @@ // -{{partial_header}} +{{>partial_header}} + {{#nrt}} #nullable enable @@ -26,4 +27,4 @@ namespace {{packageName}}.{{clientPackage}} Options = options; } } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/OAuthToken.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/OAuthToken.mustache index 23b3cab91966..26ee25490c90 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/OAuthToken.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/OAuthToken.mustache @@ -1,5 +1,6 @@ // -{{partial_header}} +{{>partial_header}} + {{#nrt}} #nullable enable @@ -38,4 +39,4 @@ namespace {{packageName}}.{{clientPackage}} request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/RateLimitProvider`1.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/RateLimitProvider`1.mustache index a787cfd640db..2e74e493fce2 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/RateLimitProvider`1.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/RateLimitProvider`1.mustache @@ -16,7 +16,11 @@ namespace {{packageName}}.{{clientPackage}} /// {{>visibility}} class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new{{^net70OrLater}} Dictionary>{{/net70OrLater}}(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new{{^net70OrLater}} Dictionary>{{/net70OrLater}}(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -85,7 +89,7 @@ namespace {{packageName}}.{{clientPackage}} } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}}) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}}) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel{{nrt?}} tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenBase.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenBase.mustache index d4d520e67c1d..2597d12ef238 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenBase.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenBase.mustache @@ -1,5 +1,6 @@ // -{{partial_header}} +{{>partial_header}} + {{#nrt}} #nullable enable @@ -17,11 +18,18 @@ namespace {{packageName}}.{{clientPackage}} private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler{{nrt?}} TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler{{nrt?}} TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -35,7 +43,6 @@ namespace {{packageName}}.{{clientPackage}} StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -70,4 +77,4 @@ namespace {{packageName}}.{{clientPackage}} TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenContainer`1.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenContainer`1.mustache index 24c84a551f53..3c3546f68761 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenContainer`1.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenContainer`1.mustache @@ -1,5 +1,6 @@ // -{{partial_header}} +{{>partial_header}} + {{#nrt}} #nullable enable @@ -36,4 +37,4 @@ namespace {{packageName}}.{{clientPackage}} Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenProvider`1.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenProvider`1.mustache index 21dc823e64f5..55743224c4fa 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenProvider`1.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/TokenProvider`1.mustache @@ -16,6 +16,12 @@ namespace {{packageName}} /// {{>visibility}} abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}}); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}}); } } \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/htmlDocs/bodyParam.mustache b/modules/openapi-generator/src/main/resources/htmlDocs/bodyParam.mustache index 1c3e14a80905..bad72b4f4756 100644 --- a/modules/openapi-generator/src/main/resources/htmlDocs/bodyParam.mustache +++ b/modules/openapi-generator/src/main/resources/htmlDocs/bodyParam.mustache @@ -1,3 +1,3 @@ -{{#isBodyParam}}{{baseName}} {{#baseType}}{{baseType}}{{/baseType}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}} +{{#isBodyParam}}{{baseName}} {{#isContainer}}{{containerType}}[{{/isContainer}}{{#baseType}}{{baseType}}{{/baseType}}{{#isContainer}}]{{/isContainer}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}} Body Parameter — {{unescapedDescription}} {{#defaultValue}}default: {{{.}}}{{/defaultValue}}{{/isBodyParam}} diff --git a/modules/openapi-generator/src/main/resources/python-fastapi/requirements.mustache b/modules/openapi-generator/src/main/resources/python-fastapi/requirements.mustache index a71e60352a38..8e0fe46861eb 100644 --- a/modules/openapi-generator/src/main/resources/python-fastapi/requirements.mustache +++ b/modules/openapi-generator/src/main/resources/python-fastapi/requirements.mustache @@ -22,7 +22,7 @@ orjson==3.9.15 promise==2.3 pydantic>=2 python-dotenv==0.17.1 -python-multipart==0.0.18 +python-multipart==0.0.22 PyYAML>=5.4.1,<6.1.0 requests==2.32.4 Rx==1.6.1 diff --git a/modules/openapi-generator/src/main/resources/rust/Cargo.mustache b/modules/openapi-generator/src/main/resources/rust/Cargo.mustache index 05846b4f1def..16b981bedef9 100644 --- a/modules/openapi-generator/src/main/resources/rust/Cargo.mustache +++ b/modules/openapi-generator/src/main/resources/rust/Cargo.mustache @@ -66,22 +66,22 @@ secrecy = "0.8.0" {{/withAWSV4Signature}} {{#reqwest}} {{^supportAsync}} -reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] } {{#supportMiddleware}} -reqwest-middleware = { version = "^0.4", features = ["json", "blocking", "multipart"] } +reqwest-middleware = { version = "^0.5", features = ["json", "multipart", "query", "form"] } {{/supportMiddleware}} {{/supportAsync}} {{#supportAsync}} {{#useAsyncFileStream}} tokio = { version = "^1.46.0", features = ["fs"] } tokio-util = { version = "^0.7", features = ["codec"] } -reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart", "stream"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "stream", "query", "form"] } {{/useAsyncFileStream}} {{^useAsyncFileStream}} -reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "query", "form"] } {{/useAsyncFileStream}} {{#supportMiddleware}} -reqwest-middleware = { version = "^0.4", features = ["json", "multipart"] } +reqwest-middleware = { version = "^0.5", features = ["json", "multipart", "query", "form"] } {{/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-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] {{/reqwest}} {{#reqwestTrait}} async-trait = "^0.1" -reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart", "stream"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "stream", "query", "form"] } {{#supportMiddleware}} -reqwest-middleware = { version = "^0.4", features = ["json", "multipart"] } +reqwest-middleware = { version = "^0.5", features = ["json", "multipart", "query", "form"] } {{/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-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] {{#mockall}} mockall = ["dep:mockall"] {{/mockall}} diff --git a/modules/openapi-generator/src/main/resources/swift6/APIHelper.mustache b/modules/openapi-generator/src/main/resources/swift6/APIHelper.mustache index 04c8f841528b..f25c30b2ae6b 100644 --- a/modules/openapi-generator/src/main/resources/swift6/APIHelper.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/APIHelper.mustache @@ -7,7 +7,7 @@ import Foundation{{#useVapor}} import Vapor{{/useVapor}} -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} struct APIHelper { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} struct APIHelper: Sendable { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static func rejectNil(_ source: [String: (any Sendable)?]) -> [String: any Sendable]? { let destination = source.reduce(into: [String: any Sendable]()) { result, item in if let value = item.value { diff --git a/modules/openapi-generator/src/main/resources/swift6/APIs.mustache b/modules/openapi-generator/src/main/resources/swift6/APIs.mustache index c9d2a508d099..78b13a080998 100644 --- a/modules/openapi-generator/src/main/resources/swift6/APIs.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/APIs.mustache @@ -19,8 +19,8 @@ import Alamofire{{/useAlamofire}} {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var basePath: String{{#useVapor}} {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var customHeaders: HTTPHeaders {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var apiClient: Vapor.Client? - {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var apiWrapper: (inout Vapor.ClientRequest) throws -> () - {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var contentConfiguration{{/useVapor}}{{^useVapor}} + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var apiWrapper: @Sendable (inout Vapor.ClientRequest) throws -> () + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var contentConfiguration: ContentConfiguration{{/useVapor}}{{^useVapor}} {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var customHeaders: [String: String] {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var credential: URLCredential? {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var requestBuilderFactory: RequestBuilderFactory @@ -49,8 +49,8 @@ import Alamofire{{/useAlamofire}} basePath: String = "{{{basePath}}}",{{#useVapor}} customHeaders: HTTPHeaders = [:], apiClient: Vapor.Client? = nil, - apiWrapper: (inout Vapor.ClientRequest) throws -> () = { _ in }, - contentConfiguration = ContentConfiguration.default(){{/useVapor}}{{^useVapor}} + apiWrapper: @escaping @Sendable (inout Vapor.ClientRequest) throws -> () = { _ in }, + contentConfiguration: ContentConfiguration = ContentConfiguration.default(){{/useVapor}}{{^useVapor}} customHeaders: [String: String] = [:], credential: URLCredential? = nil, requestBuilderFactory: RequestBuilderFactory = {{#useAlamofire}}AlamofireRequestBuilderFactory(){{/useAlamofire}}{{#useURLSession}}URLSessionRequestBuilderFactory(){{/useURLSession}}, @@ -63,10 +63,10 @@ import Alamofire{{/useAlamofire}} stringResponseSerializer: AnyResponseSerializer = AnyResponseSerializer(StringResponseSerializer()){{/useAlamofire}}{{/useVapor}} ) { self.basePath = basePath{{#useVapor}} - customHeaders = customHeaders - apiClient = apiClient - apiWrapper = apiWrapper - contentConfiguration = contentConfiguration{{/useVapor}}{{^useVapor}} + self.customHeaders = customHeaders + self.apiClient = apiClient + self.apiWrapper = apiWrapper + self.contentConfiguration = contentConfiguration{{/useVapor}}{{^useVapor}} self.customHeaders = customHeaders self.credential = credential self.requestBuilderFactory = requestBuilderFactory @@ -82,7 +82,7 @@ import Alamofire{{/useAlamofire}} {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static let shared = {{projectName}}APIConfiguration() }{{^useVapor}} -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class RequestBuilder: @unchecked Sendable, Identifiable { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class RequestBuilder: @unchecked Sendable, Identifiable { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var credential: URLCredential? {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var headers: [String: String] {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} let parameters: [String: any Sendable]? @@ -119,9 +119,21 @@ import Alamofire{{/useAlamofire}} } {{#useAsyncAwait}} - @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) + #if compiler(>=6.2) + @concurrent + @discardableResult + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func execute() async throws(ErrorResponse) -> Response { + try await _execute() + } + #else @discardableResult {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func execute() async throws(ErrorResponse) -> Response { + try await _execute() + } + #endif + + @discardableResult + private func _execute() async throws(ErrorResponse) -> Response { do { let requestTask = self.requestTask return try await withTaskCancellationHandler { @@ -135,7 +147,6 @@ import Alamofire{{/useAlamofire}} self.execute { result in switch result { case let .success(response): - nonisolated(unsafe) let response = response continuation.resume(returning: response) case let .failure(error): continuation.resume(throwing: error) @@ -153,7 +164,7 @@ import Alamofire{{/useAlamofire}} } } } - + {{/useAsyncAwait}} {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} func addHeader(name: String, value: String) -> Self { if !value.isEmpty { @@ -167,7 +178,7 @@ import Alamofire{{/useAlamofire}} } } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} protocol RequestBuilderFactory { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} protocol RequestBuilderFactory: Sendable { func getNonDecodableBuilder() -> RequestBuilder.Type func getBuilder() -> RequestBuilder.Type }{{/useVapor}} diff --git a/modules/openapi-generator/src/main/resources/swift6/Extensions.mustache b/modules/openapi-generator/src/main/resources/swift6/Extensions.mustache index b009950d7123..0a3670cca2c2 100644 --- a/modules/openapi-generator/src/main/resources/swift6/Extensions.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/Extensions.mustache @@ -236,13 +236,11 @@ extension RequestBuilder { } }{{/usePromiseKit}}{{#useVapor}} -extension UUID: Content { } +extension UUID: @retroactive Content { } -extension URL: Content { } +extension URL: @retroactive Content { } -extension Bool: Content { } - -extension Set: ResponseEncodable where Element: Content { +extension Set: @retroactive ResponseEncodable where Element: Content { public func encodeResponse(for request: Vapor.Request) -> EventLoopFuture { let response = Vapor.Response() do { @@ -254,7 +252,15 @@ extension Set: ResponseEncodable where Element: Content { } } -extension Set: RequestDecodable where Element: Content { +extension Set: @retroactive AsyncResponseEncodable where Element: Content { + public func encodeResponse(for request: Vapor.Request) async throws -> Vapor.Response { + let response = Vapor.Response() + try response.content.encode(Array(self)) + return response + } +} + +extension Set: @retroactive RequestDecodable where Element: Content { public static func decodeRequest(_ request: Vapor.Request) -> EventLoopFuture { do { let content = try request.content.decode([Element].self) @@ -265,6 +271,13 @@ extension Set: RequestDecodable where Element: Content { } } -extension Set: Content where Element: Content { } +extension Set: @retroactive AsyncRequestDecodable where Element: Content { + public static func decodeRequest(_ request: Vapor.Request) async throws -> Self { + let content = try request.content.decode([Element].self) + return Set(content) + } +} + +extension Set: @retroactive Content where Element: Content { } extension JSONValue: Content {}{{/useVapor}} diff --git a/modules/openapi-generator/src/main/resources/swift6/Models.mustache b/modules/openapi-generator/src/main/resources/swift6/Models.mustache index c8a80a636fb7..0a1f951e7682 100644 --- a/modules/openapi-generator/src/main/resources/swift6/Models.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/Models.mustache @@ -70,11 +70,11 @@ extension NullEncodable: Codable where Wrapped: Codable { } } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum ErrorResponse: Error { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum ErrorResponse: Error, Sendable { case error(Int, Data?, URLResponse?, Error) } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum DownloadException: Error { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum DownloadException: Error, Sendable { case responseDataMissing case responseFailed case requestMissing @@ -82,7 +82,7 @@ extension NullEncodable: Codable where Wrapped: Codable { case requestMissingURL } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum DecodableRequestBuilderError: Error { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum DecodableRequestBuilderError: Error, Sendable { case emptyDataResponse case nilHTTPResponse case unsuccessfulHTTPStatusCode diff --git a/modules/openapi-generator/src/main/resources/swift6/Package.swift.mustache b/modules/openapi-generator/src/main/resources/swift6/Package.swift.mustache index 000f495b48f0..ff8219f3a85e 100644 --- a/modules/openapi-generator/src/main/resources/swift6/Package.swift.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/Package.swift.mustache @@ -9,10 +9,10 @@ let package = Package( .macOS(.v10_15), {{/useVapor}} {{^useVapor}} - .iOS(.v12), - .macOS(.v10_13), - .tvOS(.v12), - .watchOS(.v4), + .iOS(.v13), + .macOS(.v10_15), + .tvOS(.v13), + .watchOS(.v6), {{/useVapor}} ], products: [ @@ -34,7 +34,7 @@ let package = Package( .package(url: "https://github.com/ReactiveX/RxSwift", .upToNextMajor(from: "6.8.0")), {{/useRxSwift}} {{#useVapor}} - .package(url: "https://github.com/vapor/vapor", from: "4.0.0") + .package(url: "https://github.com/vapor/vapor", from: "4.99.0"), {{/useVapor}} ], targets: [ @@ -42,7 +42,7 @@ let package = Package( // Targets can depend on other targets in this package, and on products in packages which this package depends on. .target( name: "{{projectName}}", - dependencies: [{{#useVapor}}"Vapor", {{/useVapor}}{{#useAlamofire}}"Alamofire", {{/useAlamofire}}{{#usePromiseKit}}"PromiseKit", {{/usePromiseKit}}{{#useRxSwift}}"RxSwift"{{/useRxSwift}}], + dependencies: [{{#useVapor}}.product(name: "Vapor", package: "vapor"){{/useVapor}}{{#useAlamofire}}"Alamofire", {{/useAlamofire}}{{#usePromiseKit}}"PromiseKit", {{/usePromiseKit}}{{#useRxSwift}}"RxSwift"{{/useRxSwift}}], path: "{{swiftPackagePath}}{{^swiftPackagePath}}{{#useSPMFileStructure}}Sources/{{projectName}}{{/useSPMFileStructure}}{{^useSPMFileStructure}}{{projectName}}/Classes{{/useSPMFileStructure}}{{/swiftPackagePath}}" ), ], diff --git a/modules/openapi-generator/src/main/resources/swift6/Podspec.mustache b/modules/openapi-generator/src/main/resources/swift6/Podspec.mustache index fc7ff92f285e..70b97e74c950 100644 --- a/modules/openapi-generator/src/main/resources/swift6/Podspec.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/Podspec.mustache @@ -1,10 +1,10 @@ Pod::Spec.new do |s| s.name = '{{projectName}}'{{#projectDescription}} s.summary = '{{.}}'{{/projectDescription}} - s.ios.deployment_target = '12.0' - s.osx.deployment_target = '10.13' - s.tvos.deployment_target = '12.0' - s.watchos.deployment_target = '4.0' + s.ios.deployment_target = '13.0' + s.osx.deployment_target = '10.15' + s.tvos.deployment_target = '13.0' + s.watchos.deployment_target = '6.0' s.version = '{{podVersion}}{{^podVersion}}{{#apiInfo}}{{version}}{{/apiInfo}}{{^apiInfo}}}0.0.1{{/apiInfo}}{{/podVersion}}' s.source = {{#podSource}}{{& podSource}}{{/podSource}}{{^podSource}}{ :git => 'git@github.com:OpenAPITools/openapi-generator.git', :tag => 'v{{#apiInfo}}{{version}}{{/apiInfo}}{{^apiInfo}}}0.0.1{{/apiInfo}}' }{{/podSource}} {{#podAuthors}} diff --git a/modules/openapi-generator/src/main/resources/swift6/Validation.mustache b/modules/openapi-generator/src/main/resources/swift6/Validation.mustache index 9d60c6098f13..adfb876f001b 100644 --- a/modules/openapi-generator/src/main/resources/swift6/Validation.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/Validation.mustache @@ -27,23 +27,23 @@ extension NumericRule: Sendable where T: Sendable {} {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var uniqueItems: Bool } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum StringValidationErrorKind: Error { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum StringValidationErrorKind: Error, Sendable { case minLength, maxLength, pattern } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum NumericValidationErrorKind: Error { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum NumericValidationErrorKind: Error, Sendable { case minimum, maximum, multipleOf } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum ArrayValidationErrorKind: Error { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum ArrayValidationErrorKind: Error, Sendable { case minItems, maxItems, uniqueItems } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} struct ValidationError: Error { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} struct ValidationError: Error, Sendable { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} fileprivate(set) var kinds: Set } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} struct Validator { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} struct Validator: Sendable { /// Validate a string against a rule. /// - Parameter string: The String you wish to validate. /// - Parameter rule: The StringRule you wish to use for validation. diff --git a/modules/openapi-generator/src/main/resources/swift6/api.mustache b/modules/openapi-generator/src/main/resources/swift6/api.mustache index 8242210a5a15..2180f72bda6d 100644 --- a/modules/openapi-generator/src/main/resources/swift6/api.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/api.mustache @@ -8,9 +8,7 @@ import Foundation{{#usePromiseKit}} @preconcurrency import PromiseKit{{/usePromiseKit}}{{#useRxSwift}} @preconcurrency import RxSwift{{/useRxSwift}}{{#useCombine}} -#if canImport(Combine) -import Combine -#endif{{/useCombine}}{{#useVapor}} +import Combine{{/useCombine}}{{#useVapor}} import Vapor{{/useVapor}}{{#swiftUseApiNamespace}} extension {{projectName}}API { @@ -161,11 +159,9 @@ extension {{projectName}}API { - parameter apiConfiguration: The configuration for the http request.{{/apiStaticMethod}} - returns: AnyPublisher<{{{returnType}}}{{#returnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{^returnType}}Void{{/returnType}}, Error> */ - #if canImport(Combine) {{#isDeprecated}} @available(*, deprecated, message: "This operation is deprecated.") {{/isDeprecated}} - @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} {{#apiStaticMethod}}class {{/apiStaticMethod}}func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#apiStaticMethod}}{{#hasParams}}, {{/hasParams}}apiConfiguration: {{projectName}}APIConfiguration = {{projectName}}APIConfiguration.shared{{/apiStaticMethod}}) -> AnyPublisher<{{{returnType}}}{{#returnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{^returnType}}Void{{/returnType}}, Error> { let requestBuilder = {{operationId}}WithRequestBuilder({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#apiStaticMethod}}{{#hasParams}}, {{/hasParams}}apiConfiguration: apiConfiguration{{/apiStaticMethod}}) let requestTask = requestBuilder.requestTask @@ -195,7 +191,6 @@ extension {{projectName}}API { .eraseToAnyPublisher() {{/combineDeferred}} } - #endif {{/useCombine}} {{#useAsyncAwait}} @@ -210,7 +205,6 @@ extension {{projectName}}API { {{#isDeprecated}} @available(*, deprecated, message: "This operation is deprecated.") {{/isDeprecated}} - @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} {{#apiStaticMethod}}class {{/apiStaticMethod}}func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#apiStaticMethod}}{{#hasParams}}, {{/hasParams}}apiConfiguration: {{projectName}}APIConfiguration = {{projectName}}APIConfiguration.shared{{/apiStaticMethod}}) async throws(ErrorResponse){{#returnType}} -> {{{returnType}}}{{#returnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{/returnType}} { return try await {{operationId}}WithRequestBuilder({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#apiStaticMethod}}{{#hasParams}}, {{/hasParams}}apiConfiguration: apiConfiguration{{/apiStaticMethod}}).execute().body } @@ -357,19 +351,19 @@ extension {{projectName}}API { {{#isDeprecated}} @available(*, deprecated, message: "This operation is deprecated.") {{/isDeprecated}} - {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} {{#apiStaticMethod}}class {{/apiStaticMethod}}func {{operationId}}Raw({{#allParams}}{{paramName}}: {{#isEnum}}{{#isArray}}[{{enumName}}_{{operationId}}]{{/isArray}}{{^isArray}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers: HTTPHeaders = {{projectName}}APIConfiguration.shared.customHeaders, beforeSend: (inout ClientRequest) throws -> () = { _ in }) -> EventLoopFuture { + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} {{#apiStaticMethod}}class {{/apiStaticMethod}}func {{operationId}}Raw({{#allParams}}{{paramName}}: {{#isEnum}}{{#isArray}}[{{enumName}}_{{operationId}}]{{/isArray}}{{^isArray}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers: HTTPHeaders? = nil, apiConfiguration: {{projectName}}APIConfiguration = {{projectName}}APIConfiguration.shared, beforeSend: (inout ClientRequest) throws -> () = { _ in }) -> EventLoopFuture { {{^pathParams}}let{{/pathParams}}{{#pathParams}}{{#-first}}var{{/-first}}{{/pathParams}} localVariablePath = "{{{path}}}"{{#pathParams}} let {{paramName}}PreEscape = String(describing: {{#isEnum}}{{paramName}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}.rawValue{{/isContainer}}{{/isEnum}}{{^isEnum}}{{paramName}}{{/isEnum}}) let {{paramName}}PostEscape = {{paramName}}PreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" localVariablePath = localVariablePath.replacingOccurrences(of: "{{=<% %>=}}{<%baseName%>}<%={{ }}=%>", with: {{paramName}}PostEscape, options: .literal, range: nil){{/pathParams}} let localVariableURLString = apiConfiguration.basePath + localVariablePath - guard let localVariableApiClient = {{#swiftUseApiNamespace}}{{projectName}}API.{{/swiftUseApiNamespace}}apiConfiguration.apiClient else { + guard let localVariableApiClient = apiConfiguration.apiClient else { fatalError("apiConfiguration.apiClient is not set.") } - return localVariableApiClient.send(.{{httpMethod}}, headers: headers, to: URI(string: localVariableURLString)) { localVariableRequest in - try {{#swiftUseApiNamespace}}{{projectName}}API.{{/swiftUseApiNamespace}}Configuration.apiWrapper(&localVariableRequest) + return localVariableApiClient.send(.{{httpMethod}}, headers: headers ?? apiConfiguration.customHeaders, to: URI(string: localVariableURLString)) { localVariableRequest in + try apiConfiguration.apiWrapper(&localVariableRequest) {{#hasHeaderParams}}{{#headerParams}} localVariableRequest.headers.add(name: "{{baseName}}", value: {{#isArray}}{{paramName}}{{^required}}?{{/required}}.map { $0{{#isEnum}}.rawValue{{/isEnum}}.description }.description{{/isArray}}{{^isArray}}{{#isEnum}}{{paramName}}{{^required}}?{{/required}}.rawValue.description{{/isEnum}}{{^isEnum}}{{paramName}}{{^required}}?{{/required}}.description{{/isEnum}}{{/isArray}}{{^required}} ?? ""{{/required}}) {{/headerParams}}{{/hasHeaderParams}} @@ -437,8 +431,8 @@ extension {{projectName}}API { {{#isDeprecated}} @available(*, deprecated, message: "This operation is deprecated.") {{/isDeprecated}} - {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} {{#apiStaticMethod}}class {{/apiStaticMethod}}func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isArray}}[{{enumName}}_{{operationId}}]{{/isArray}}{{^isArray}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers: HTTPHeaders = {{projectName}}APIConfiguration.shared.customHeaders, beforeSend: (inout ClientRequest) throws -> () = { _ in }) -> EventLoopFuture<{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}> { - return {{operationId}}Raw({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers: headers, beforeSend: beforeSend).flatMapThrowing { response -> {{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}} in + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} {{#apiStaticMethod}}class {{/apiStaticMethod}}func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isArray}}[{{enumName}}_{{operationId}}]{{/isArray}}{{^isArray}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers: HTTPHeaders? = nil, apiConfiguration: {{projectName}}APIConfiguration = {{projectName}}APIConfiguration.shared, beforeSend: (inout ClientRequest) throws -> () = { _ in }) -> EventLoopFuture<{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}> { + return {{operationId}}Raw({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers: headers, apiConfiguration: apiConfiguration, beforeSend: beforeSend).flatMapThrowing { response -> {{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}} in switch response.status.code { {{#responses}} {{#isDefault}}default{{/isDefault}}{{^isDefault}}case {{code}}{{/isDefault}}: diff --git a/modules/openapi-generator/src/main/resources/swift6/libraries/alamofire/AlamofireImplementations.mustache b/modules/openapi-generator/src/main/resources/swift6/libraries/alamofire/AlamofireImplementations.mustache index f2db4445678a..a92eb8c13add 100644 --- a/modules/openapi-generator/src/main/resources/swift6/libraries/alamofire/AlamofireImplementations.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/libraries/alamofire/AlamofireImplementations.mustache @@ -7,7 +7,7 @@ import Foundation import Alamofire -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} class AlamofireRequestBuilderFactory: RequestBuilderFactory { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} final class AlamofireRequestBuilderFactory: RequestBuilderFactory, Sendable { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init() {} {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} func getNonDecodableBuilder() -> RequestBuilder.Type { @@ -27,7 +27,7 @@ fileprivate class AlamofireRequestBuilderConfiguration: @unchecked Sendable { var managerStore = SynchronizedDictionary() } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class AlamofireRequestBuilder: RequestBuilder, @unchecked Sendable { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class AlamofireRequestBuilder: RequestBuilder, @unchecked Sendable { required {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(method: String, URLString: String, parameters: [String: any Sendable]?, headers: [String: String] = [:], requiresAuthentication: Bool, apiConfiguration: {{projectName}}APIConfiguration = {{projectName}}APIConfiguration.shared) { super.init(method: method, URLString: URLString, parameters: parameters, headers: headers, requiresAuthentication: requiresAuthentication, apiConfiguration: apiConfiguration) } @@ -255,7 +255,7 @@ fileprivate class AlamofireRequestBuilderConfiguration: @unchecked Sendable { } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class AlamofireDecodableRequestBuilder: AlamofireRequestBuilder, @unchecked Sendable { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class AlamofireDecodableRequestBuilder: AlamofireRequestBuilder, @unchecked Sendable { override fileprivate func processRequest(request: DataRequest, managerId: String, completion: @Sendable @escaping (_ result: Swift.Result, ErrorResponse>) -> Void) { if let credential = self.credential { diff --git a/modules/openapi-generator/src/main/resources/swift6/libraries/urlsession/URLSessionImplementations.mustache b/modules/openapi-generator/src/main/resources/swift6/libraries/urlsession/URLSessionImplementations.mustache index 7f97dbdd755c..59b4aecbedd2 100644 --- a/modules/openapi-generator/src/main/resources/swift6/libraries/urlsession/URLSessionImplementations.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/libraries/urlsession/URLSessionImplementations.mustache @@ -40,7 +40,7 @@ extension URLSession: URLSessionProtocol { extension URLSessionDataTask: URLSessionDataTaskProtocol {} -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} class URLSessionRequestBuilderFactory: RequestBuilderFactory { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} final class URLSessionRequestBuilderFactory: RequestBuilderFactory, Sendable { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init() {} {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} func getNonDecodableBuilder() -> RequestBuilder.Type { @@ -69,7 +69,7 @@ fileprivate class URLSessionRequestBuilderConfiguration: @unchecked Sendable { var credentialStore = SynchronizedDictionary() } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class URLSessionRequestBuilder: RequestBuilder, @unchecked Sendable { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class URLSessionRequestBuilder: RequestBuilder, @unchecked Sendable { required {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(method: String, URLString: String, parameters: [String: any Sendable]?, headers: [String: String] = [:], requiresAuthentication: Bool, apiConfiguration: {{projectName}}APIConfiguration = {{projectName}}APIConfiguration.shared) { super.init(method: method, URLString: URLString, parameters: parameters, headers: headers, requiresAuthentication: requiresAuthentication, apiConfiguration: apiConfiguration) @@ -157,6 +157,8 @@ fileprivate class URLSessionRequestBuilderConfiguration: @unchecked Sendable { let dataTask = urlSession.dataTaskFromProtocol(with: modifiedRequest) { data, response, error in self.cleanupRequest() + self.apiConfiguration.interceptor.didReceiveResponse(urlRequest: modifiedRequest, urlSession: urlSession, requestBuilder: self, data: data, response: response, error: error) + if let error = error { self.retryRequest( urlRequest: modifiedRequest, @@ -196,7 +198,7 @@ fileprivate class URLSessionRequestBuilderConfiguration: @unchecked Sendable { return } - self.processRequestResponse(urlRequest: request, data: data, httpResponse: httpResponse, error: error, completion: completion) + self.processRequestResponse(urlRequest: modifiedRequest, urlSession: urlSession, data: data, httpResponse: httpResponse, error: error, completion: completion) } self.onProgressReady?(dataTask.progress) @@ -205,15 +207,25 @@ fileprivate class URLSessionRequestBuilderConfiguration: @unchecked Sendable { self.requestTask.set(task: dataTask) + self.apiConfiguration.interceptor.willSendRequest(urlRequest: modifiedRequest, urlSession: urlSession, requestBuilder: self) + dataTask.resume() case .failure(let error): + self.apiConfiguration.interceptor.didComplete(urlRequest: request, urlSession: urlSession, requestBuilder: self, data: nil, response: nil, result: .failure(error)) self.apiConfiguration.apiResponseQueue.async { completion(.failure(ErrorResponse.error(415, nil, nil, error))) } } } } catch { + // Request creation failed - create a minimal request for error reporting + let failedURL = URL(string: URLString) ?? URL(string: "about:blank")! + var failedRequest = URLRequest(url: failedURL) + failedRequest.httpMethod = method + + self.apiConfiguration.interceptor.didComplete(urlRequest: failedRequest, urlSession: urlSession, requestBuilder: self, data: nil, response: nil, result: .failure(error)) + self.apiConfiguration.apiResponseQueue.async { completion(.failure(ErrorResponse.error(415, nil, nil, error))) } @@ -235,6 +247,7 @@ fileprivate class URLSessionRequestBuilderConfiguration: @unchecked Sendable { self.execute(completion: completion) case .dontRetry: + self.apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: data, response: response, result: .failure(error)) self.apiConfiguration.apiResponseQueue.async { completion(.failure(ErrorResponse.error(statusCode, data, response, error))) } @@ -242,12 +255,13 @@ fileprivate class URLSessionRequestBuilderConfiguration: @unchecked Sendable { } } - fileprivate func processRequestResponse(urlRequest: URLRequest, data: Data?, httpResponse: HTTPURLResponse, error: Error?, completion: @Sendable @escaping (_ result: Swift.Result, ErrorResponse>) -> Void) { + fileprivate func processRequestResponse(urlRequest: URLRequest, urlSession: URLSessionProtocol, data: Data?, httpResponse: HTTPURLResponse, error: Error?, completion: @Sendable @escaping (_ result: Swift.Result, ErrorResponse>) -> Void) { switch T.self { case is Void.Type: - - completion(.success(Response(response: httpResponse, body: () as! T, bodyData: data))) + let result = () as! T + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: data, response: httpResponse, result: .success(result)) + completion(.success(Response(response: httpResponse, body: result, bodyData: data))) default: fatalError("Unsupported Response Body Type - \(String(describing: T.self))") @@ -319,19 +333,17 @@ fileprivate class URLSessionRequestBuilderConfiguration: @unchecked Sendable { } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class URLSessionDecodableRequestBuilder: URLSessionRequestBuilder, @unchecked Sendable { - override fileprivate func processRequestResponse(urlRequest: URLRequest, data: Data?, httpResponse: HTTPURLResponse, error: Error?, completion: @Sendable @escaping (_ result: Swift.Result, ErrorResponse>) -> Void) { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class URLSessionDecodableRequestBuilder: URLSessionRequestBuilder, @unchecked Sendable { + override fileprivate func processRequestResponse(urlRequest: URLRequest, urlSession: URLSessionProtocol, data: Data?, httpResponse: HTTPURLResponse, error: Error?, completion: @Sendable @escaping (_ result: Swift.Result, ErrorResponse>) -> Void) { switch T.self { case is String.Type: - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: data, response: httpResponse, result: .success(body as! T)) completion(.success(Response(response: httpResponse, body: body as! T, bodyData: data))) case is URL.Type: do { - guard error == nil else { throw DownloadException.responseFailed } @@ -358,29 +370,37 @@ fileprivate class URLSessionRequestBuilderConfiguration: @unchecked Sendable { try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: data, response: httpResponse, result: .success(filePath as! T)) completion(.success(Response(response: httpResponse, body: filePath as! T, bodyData: data))) } catch let requestParserError as DownloadException { + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: data, response: httpResponse, result: .failure(requestParserError)) completion(.failure(ErrorResponse.error(400, data, httpResponse, requestParserError))) } catch { + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: data, response: httpResponse, result: .failure(error)) completion(.failure(ErrorResponse.error(400, data, httpResponse, error))) } case is Void.Type: - - completion(.success(Response(response: httpResponse, body: () as! T, bodyData: data))) + let result = () as! T + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: data, response: httpResponse, result: .success(result)) + completion(.success(Response(response: httpResponse, body: result, bodyData: data))) case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as! T, bodyData: data))) + let result = data as! T + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: data, response: httpResponse, result: .success(result)) + completion(.success(Response(response: httpResponse, body: result, bodyData: data))) default: - guard let unwrappedData = data, !unwrappedData.isEmpty else { if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type { - completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data))) + let result = expressibleByNilLiteralType.init(nilLiteral: ()) as! T + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: data, response: httpResponse, result: .success(result)) + completion(.success(Response(response: httpResponse, body: result, bodyData: data))) } else { - completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, httpResponse, DecodableRequestBuilderError.emptyDataResponse))) + let emptyDataError = DecodableRequestBuilderError.emptyDataResponse + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: nil, response: httpResponse, result: .failure(emptyDataError)) + completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, httpResponse, emptyDataError))) } return } @@ -389,8 +409,10 @@ fileprivate class URLSessionRequestBuilderConfiguration: @unchecked Sendable { switch decodeResult { case let .success(decodableObj): + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: unwrappedData, response: httpResponse, result: .success(decodableObj)) completion(.success(Response(response: httpResponse, body: decodableObj, bodyData: unwrappedData))) case let .failure(error): + apiConfiguration.interceptor.didComplete(urlRequest: urlRequest, urlSession: urlSession, requestBuilder: self, data: unwrappedData, response: httpResponse, result: .failure(error)) completion(.failure(ErrorResponse.error(httpResponse.statusCode, unwrappedData, httpResponse, error))) } } @@ -711,19 +733,47 @@ extension JSONDataEncoding: ParameterEncoding {} case dontRetry } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} protocol OpenAPIInterceptor { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} protocol OpenAPIInterceptor: Sendable { + // MARK: - Request Modification & Retry + + /// Called before the request is sent. Allows modifying the URLRequest (e.g., adding authentication headers). func intercept(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder, completion: @Sendable @escaping (Result) -> Void) + /// Called when a request fails. Allows the interceptor to decide whether to retry the request. func retry(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder, data: Data?, response: URLResponse?, error: Error, completion: @Sendable @escaping (OpenAPIInterceptorRetry) -> Void) + + // MARK: - Lifecycle Hooks + + /// Called right before the request is sent, after all modifications from `intercept()` have been applied. + /// Useful for logging the final request that will be sent. + func willSendRequest(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder) + + /// Called when the raw response is received, before any processing or decoding. + /// Useful for logging raw responses or performing custom validation. + func didReceiveResponse(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder, data: Data?, response: URLResponse?, error: Error?) + + /// Called after the request completes (either success or failure). + /// Useful for cleanup, analytics, or performance monitoring. + func didComplete(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder, data: Data?, response: URLResponse?, result: Result) +} + +// MARK: - Default Implementations (No-op) + +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} extension OpenAPIInterceptor { + func willSendRequest(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder) {} + + func didReceiveResponse(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder, data: Data?, response: URLResponse?, error: Error?) {} + + func didComplete(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder, data: Data?, response: URLResponse?, result: Result) {} } -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} class DefaultOpenAPIInterceptor: OpenAPIInterceptor { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} final class DefaultOpenAPIInterceptor: OpenAPIInterceptor { public init() {} - + public func intercept(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder, completion: @Sendable @escaping (Result) -> Void) { completion(.success(urlRequest)) } - + public func retry(urlRequest: URLRequest, urlSession: URLSessionProtocol, requestBuilder: RequestBuilder, data: Data?, response: URLResponse?, error: Error, completion: @Sendable @escaping (OpenAPIInterceptorRetry) -> Void) { completion(.dontRetry) } diff --git a/modules/openapi-generator/src/main/resources/swift6/model.mustache b/modules/openapi-generator/src/main/resources/swift6/model.mustache index e9d561310dc8..8f3127a0bdaf 100644 --- a/modules/openapi-generator/src/main/resources/swift6/model.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/model.mustache @@ -25,6 +25,5 @@ extension {{projectName}}API { {{#swiftUseApiNamespace}} } {{/swiftUseApiNamespace}}{{#models}}{{#model}}{{#vendorExtensions.x-swift-identifiable}} -@available(iOS 13, tvOS 13, watchOS 6, macOS 10.15, *) extension {{#swiftUseApiNamespace}}{{projectName}}API.{{/swiftUseApiNamespace}}{{{classname}}}: Identifiable {} {{/vendorExtensions.x-swift-identifiable}}{{/model}}{{/models}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/swift6/modelObject.mustache b/modules/openapi-generator/src/main/resources/swift6/modelObject.mustache index d577636875ba..c1e562c6ca11 100644 --- a/modules/openapi-generator/src/main/resources/swift6/modelObject.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/modelObject.mustache @@ -1,5 +1,5 @@ {{^objcCompatible}}{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} {{#useClasses}}final class{{/useClasses}}{{^useClasses}}struct{{/useClasses}} {{{classname}}}: {{^useClasses}}Sendable, {{/useClasses}}{{#useClasses}}{{#readonlyProperties}}@unchecked Sendable, {{/readonlyProperties}}{{/useClasses}}{{#useVapor}}Content{{/useVapor}}{{^useVapor}}Codable{{/useVapor}}{{#vendorExtensions.x-swift-hashable}}, Hashable{{/vendorExtensions.x-swift-hashable}} { -{{/objcCompatible}}{{#objcCompatible}}@objcMembers {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} class {{classname}}: NSObject, Codable { +{{/objcCompatible}}{{#objcCompatible}}@objcMembers {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} final class {{classname}}: NSObject, Codable, @unchecked Sendable { {{/objcCompatible}} {{#allVars}} diff --git a/modules/openapi-generator/src/main/resources/typescript-angular/configuration.mustache b/modules/openapi-generator/src/main/resources/typescript-angular/configuration.mustache index 3182d6027e33..4f035d5a5d27 100644 --- a/modules/openapi-generator/src/main/resources/typescript-angular/configuration.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-angular/configuration.mustache @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface {{configurationParametersInterfaceName}} { /** @@ -198,7 +199,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache b/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache index 5c99230c73f0..1e8db2b3c4c3 100644 --- a/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache @@ -42,6 +42,19 @@ 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; + /** * {{¬es}} {{#summary}} @@ -95,17 +108,12 @@ export class {{classname}} extends runtime.BaseAPI { {{#operation}} /** - {{#notes}} - * {{¬es}} - {{/notes}} - {{#summary}} - * {{&summary}} - {{/summary}} + * Creates request options for {{nickname}} without sending the request {{#isDeprecated}} * @deprecated {{/isDeprecated}} */ - async {{nickname}}Raw({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request, {{/allParams.0}}initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async {{nickname}}RequestOpts({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): Promise { {{#allParams}} {{#required}} if (requestParameters['{{paramName}}'] == null) { @@ -304,7 +312,7 @@ export class {{classname}} extends runtime.BaseAPI { {{/isDateTimeType}} {{/pathParams}} - const response = await this.request({ + return { path: urlPath, method: '{{httpMethod}}', headers: headerParameters, @@ -337,7 +345,23 @@ export class {{classname}} extends runtime.BaseAPI { {{#hasFormParams}} body: formParams, {{/hasFormParams}} - }, initOverrides); + }; + } + + /** + {{#notes}} + * {{¬es}} + {{/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> { + const requestOptions = await this.{{nickname}}RequestOpts({{#allParams.0}}requestParameters{{/allParams.0}}); + const response = await this.request(requestOptions, initOverrides); {{#returnType}} {{#isResponseFile}} diff --git a/modules/openapi-generator/src/main/resources/typescript/http/http.mustache b/modules/openapi-generator/src/main/resources/typescript/http/http.mustache index 440022a3e668..12f3471ed7a5 100644 --- a/modules/openapi-generator/src/main/resources/typescript/http/http.mustache +++ b/modules/openapi-generator/src/main/resources/typescript/http/http.mustache @@ -216,6 +216,11 @@ export class RequestContext { export interface ResponseBody { text(): Promise; binary(): Promise<{{{fileContentDataType}}}>; + {{#platforms}} + {{#node}} + stream(): ReadableStream | null; + {{/node}} + {{/platforms}} } /** @@ -253,6 +258,14 @@ export class SelfDecodingBody implements ResponseBody { {{/deno}} {{/platforms}} } + + {{#platforms}} + {{#node}} + stream(): ReadableStream | null { + return null; + } + {{/node}} + {{/platforms}} } export class ResponseContext { diff --git a/modules/openapi-generator/src/main/resources/typescript/http/isomorphic-fetch.mustache b/modules/openapi-generator/src/main/resources/typescript/http/isomorphic-fetch.mustache index a4f779b937c4..f9e38334e3e9 100644 --- a/modules/openapi-generator/src/main/resources/typescript/http/isomorphic-fetch.mustache +++ b/modules/openapi-generator/src/main/resources/typescript/http/isomorphic-fetch.mustache @@ -38,7 +38,8 @@ export class IsomorphicFetchHttpLibrary implements HttpLibrary { {{#node}} const body = { text: () => resp.text(), - binary: () => resp.buffer() + binary: () => resp.buffer(), + stream: () => resp.body }; {{/node}} {{^node}} diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultGeneratorTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultGeneratorTest.java index 92fab8b73d95..1ba9a2c7c5c6 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultGeneratorTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultGeneratorTest.java @@ -671,6 +671,32 @@ public void testHandlesTrailingSlashInServers() { Assert.assertEquals(servers.get(2).url, "http://notrailingslash.io:80/v2"); } + @Test + public void testHandlesRelativeUrlsWithSpecialChars() { + final Map specToBasePath = Map.of( + "src/test/resources/3_0/relative-url-point.yaml", "/api/v4.0", + "src/test/resources/3_0/relative-url-dash.yaml", "/api-v3", + "src/test/resources/3_0/relative-url-tilde.yaml", "/~api/v5", + "src/test/resources/3_0/relative-url-at.yaml", "/api/@6" + ); + + specToBasePath.forEach((spec, expectedBasePath) -> { + OpenAPI openAPI = TestUtils.parseFlattenSpec(spec); + ClientOptInput opts = new ClientOptInput(); + opts.openAPI(openAPI); + DefaultCodegen config = new DefaultCodegen(); + config.setStrictSpecBehavior(false); + opts.config(config); + final DefaultGenerator generator = new DefaultGenerator(); + generator.opts(opts); + generator.configureGeneratorProperties(); + + Map bundle = generator.buildSupportFileBundle(new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); + final String actualBasePath = (String) bundle.get("basePath"); + Assert.assertEquals(actualBasePath, expectedBasePath); + }); + } + @Test public void testHandlesRelativeUrlsInServers() { OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/issue_10056.yaml"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java index 11ca74f3e534..39d573ea219b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java @@ -1590,7 +1590,6 @@ public void shouldGenerateDefaultValueForEnumRequestParameter() throws IOExcepti assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/api/GetApi.java"), "@RequestParam(value = \"testParameter1\", required = false, defaultValue = \"BAR\")", "@RequestParam(value = \"TestParameter2\", required = false, defaultValue = \"BAR\")"); - } /** @@ -5075,7 +5074,36 @@ public void optionalListShouldBeEmpty() throws IOException { JavaFileAssert.assertThat(files.get("PetDto.java")) .fileContains("private List<@Valid TagDto> tags = new ArrayList<>();") .fileContains("private List photoUrls = new ArrayList<>();"); + } + + @Test + public void testOptionalListWithMinItems1ShouldBeNull_issue_22784() throws IOException { + File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); + output.deleteOnExit(); + + OpenAPI openAPI = new OpenAPIParser() + .readLocation("src/test/resources/3_1/issue_22784.yaml", null, new ParseOptions()).getOpenAPI(); + SpringCodegen codegen = new SpringCodegen(); + codegen.setOutputDir(output.getAbsolutePath()); + codegen.additionalProperties().put(INTERFACE_ONLY, "true"); + codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.model"); + codegen.additionalProperties().put(CodegenConstants.API_NAME_SUFFIX, "Controller"); + codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.controller"); + codegen.additionalProperties().put(CodegenConstants.MODEL_NAME_SUFFIX, "Dto"); + + ClientOptInput input = new ClientOptInput() + .openAPI(openAPI) + .config(codegen); + + DefaultGenerator generator = new DefaultGenerator(); + generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models + generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); + + Map files = generator.opts(input).generate().stream() + .collect(Collectors.toMap(File::getName, Function.identity())); + JavaFileAssert.assertThat(files.get("FooBarRequestDto.java")) + .fileContains("private @Nullable List<@Valid BarDto> barList;"); } @Test diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java index 68e9dc11ed1f..02f58f48f64e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java @@ -29,6 +29,7 @@ import org.testng.annotations.Test; import java.io.File; +import java.io.IOException; import java.nio.file.Files; import java.util.List; import java.util.Map; @@ -146,4 +147,33 @@ public void testEnumUnknownDefaultCaseDeserializationDisabled() throws Exception Assert.assertListNotContains(modelContent, a -> a.equals("$color = self::COLOR_UNKNOWN_DEFAULT_OPEN_API;"), ""); Assert.assertListContains(modelContent, a -> a.equalsIgnoreCase("\"Invalid value '%s' for 'color', must be one of '%s'\","), ""); } + + @Test + public void testDifferentResponseSchemasWithEmpty() throws IOException { + File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); + output.deleteOnExit(); + + OpenAPI openAPI = new OpenAPIParser() + .readLocation("src/test/resources/bugs/issue_22817.yaml", null, new ParseOptions()) + .getOpenAPI(); + + + codegen.setOutputDir(output.getAbsolutePath()); + ClientOptInput input = new ClientOptInput() + .openAPI(openAPI) + .config(codegen); + + DefaultGenerator generator = new DefaultGenerator(); + Map files = generator.opts(input).generate().stream() + .collect(Collectors.toMap(File::getName, Function.identity())); + + List modelContent = Files + .readAllLines(files.get("DefaultApi.php").toPath()) + .stream() + .map(String::trim) + .collect(Collectors.toList()); + + Assert.assertListContains(modelContent, a -> a.equals("): int|string|null"), "Expected to find nullable return type declaration."); + Assert.assertListNotContains(modelContent, a -> a.equals("): ?int|string"), "Expected to not find invalid union type with '?'."); + } } diff --git a/modules/openapi-generator/src/test/resources/3_0/relative-url-at.yaml b/modules/openapi-generator/src/test/resources/3_0/relative-url-at.yaml new file mode 100644 index 000000000000..8dbe70ba081b --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/relative-url-at.yaml @@ -0,0 +1,15 @@ +openapi: 3.0.1 +info: + title: OpenAPI Petstore + description: "sample spec" + license: + name: Apache-2.0 + url: https://www.apache.org/licenses/LICENSE-2.0.html + version: 1.0.0 +servers: + - url: /api/@6 +tags: [] +paths: {} +components: + schemas: {} + securitySchemes: {} \ No newline at end of file diff --git a/modules/openapi-generator/src/test/resources/3_0/relative-url-dash.yaml b/modules/openapi-generator/src/test/resources/3_0/relative-url-dash.yaml new file mode 100644 index 000000000000..6295b3f3fd9f --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/relative-url-dash.yaml @@ -0,0 +1,15 @@ +openapi: 3.0.1 +info: + title: OpenAPI Petstore + description: "sample spec" + license: + name: Apache-2.0 + url: https://www.apache.org/licenses/LICENSE-2.0.html + version: 1.0.0 +servers: + - url: /api-v3 +tags: [] +paths: {} +components: + schemas: {} + securitySchemes: {} \ No newline at end of file diff --git a/modules/openapi-generator/src/test/resources/3_0/relative-url-point.yaml b/modules/openapi-generator/src/test/resources/3_0/relative-url-point.yaml new file mode 100644 index 000000000000..35db6758ad6e --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/relative-url-point.yaml @@ -0,0 +1,15 @@ +openapi: 3.0.1 +info: + title: OpenAPI Petstore + description: "sample spec" + license: + name: Apache-2.0 + url: https://www.apache.org/licenses/LICENSE-2.0.html + version: 1.0.0 +servers: + - url: /api/v4.0 +tags: [] +paths: {} +components: + schemas: {} + securitySchemes: {} \ No newline at end of file diff --git a/modules/openapi-generator/src/test/resources/3_0/relative-url-tilde.yaml b/modules/openapi-generator/src/test/resources/3_0/relative-url-tilde.yaml new file mode 100644 index 000000000000..376700a3d64c --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/relative-url-tilde.yaml @@ -0,0 +1,15 @@ +openapi: 3.0.1 +info: + title: OpenAPI Petstore + description: "sample spec" + license: + name: Apache-2.0 + url: https://www.apache.org/licenses/LICENSE-2.0.html + version: 1.0.0 +servers: + - url: /~api/v5 +tags: [] +paths: {} +components: + schemas: {} + securitySchemes: {} \ No newline at end of file diff --git a/modules/openapi-generator/src/test/resources/3_1/issue_22784.yaml b/modules/openapi-generator/src/test/resources/3_1/issue_22784.yaml new file mode 100644 index 000000000000..046b4c314fbd --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_1/issue_22784.yaml @@ -0,0 +1,45 @@ +openapi: 3.1.1 +info: + title: Optional Array with minItems 1 OpenAPI Example + version: 1.0.0 +paths: + /foo-bar: + put: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FooBarRequest' + responses: + 204: + description: success + +components: + schemas: + FooBarRequest: + type: object + properties: + foo: + properties: + name: + type: string + required: + - name + barList: + description: | + This array is optional. If provided, it must contain between 1 and 3 items + type: array + items: + $ref: '#/components/schemas/Bar' + minItems: 1 + maxItems: 3 + required: + - foo + Bar: + type: object + properties: + someProperty: + type: string + required: + - someProperty diff --git a/modules/openapi-generator/src/test/resources/bugs/issue_22817.yaml b/modules/openapi-generator/src/test/resources/bugs/issue_22817.yaml new file mode 100644 index 000000000000..d3711323344e --- /dev/null +++ b/modules/openapi-generator/src/test/resources/bugs/issue_22817.yaml @@ -0,0 +1,24 @@ +openapi: 3.0.4 +info: + title: "Different response schemas including an empty one" + version: "1.0.0" +paths: + /example: + get: + operationId: exampleGet + responses: + 200: + description: "A successful response with data" + content: + application/json: + schema: + type: integer + 400: + description: "A bad request with a message" + content: + application/json: + schema: + type: string + 500: + description: "An internal server error with no content" + content: { } diff --git a/samples/client/echo_api/java/resteasy/pom.xml b/samples/client/echo_api/java/resteasy/pom.xml index 8afc65a8756d..c1e6da066eed 100644 --- a/samples/client/echo_api/java/resteasy/pom.xml +++ b/samples/client/echo_api/java/resteasy/pom.xml @@ -260,7 +260,7 @@ 1.3.5 2.9.10 1.0.0 - 3.23.1 + 3.27.7 5.10.2 diff --git a/samples/client/echo_api/typescript/build/http/http.ts b/samples/client/echo_api/typescript/build/http/http.ts index 68974f3164cf..79bdf44c9afe 100644 --- a/samples/client/echo_api/typescript/build/http/http.ts +++ b/samples/client/echo_api/typescript/build/http/http.ts @@ -162,6 +162,7 @@ export class RequestContext { export interface ResponseBody { text(): Promise; binary(): Promise; + stream(): ReadableStream | null; } /** @@ -178,6 +179,10 @@ export class SelfDecodingBody implements ResponseBody { const data: Buffer = await this.dataSource; return data.toString(); } + + stream(): ReadableStream | null { + return null; + } } export class ResponseContext { diff --git a/samples/client/echo_api/typescript/build/http/isomorphic-fetch.ts b/samples/client/echo_api/typescript/build/http/isomorphic-fetch.ts index 23cfa867b046..fd0627960b43 100644 --- a/samples/client/echo_api/typescript/build/http/isomorphic-fetch.ts +++ b/samples/client/echo_api/typescript/build/http/isomorphic-fetch.ts @@ -22,7 +22,8 @@ export class IsomorphicFetchHttpLibrary implements HttpLibrary { const body = { text: () => resp.text(), - binary: () => resp.buffer() + binary: () => resp.buffer(), + stream: () => resp.body }; return new ResponseContext(resp.status, headers, body); }); diff --git a/samples/client/others/rust/reqwest-regression-16119/Cargo.toml b/samples/client/others/rust/reqwest-regression-16119/Cargo.toml index 36a3c0a431c7..1cf190a4b585 100644 --- a/samples/client/others/rust/reqwest-regression-16119/Cargo.toml +++ b/samples/client/others/rust/reqwest-regression-16119/Cargo.toml @@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" serde_repr = "^0.1" url = "^2.5" -reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] } [features] default = ["native-tls"] native-tls = ["reqwest/native-tls"] -rustls-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] diff --git a/samples/client/others/rust/reqwest/api-with-ref-param/Cargo.toml b/samples/client/others/rust/reqwest/api-with-ref-param/Cargo.toml index 653e280f2d34..b56d45044262 100644 --- a/samples/client/others/rust/reqwest/api-with-ref-param/Cargo.toml +++ b/samples/client/others/rust/reqwest/api-with-ref-param/Cargo.toml @@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" serde_repr = "^0.1" url = "^2.5" -reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "query", "form"] } [features] default = ["native-tls"] native-tls = ["reqwest/native-tls"] -rustls-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] diff --git a/samples/client/others/rust/reqwest/composed-oneof/Cargo.toml b/samples/client/others/rust/reqwest/composed-oneof/Cargo.toml index 83811f7efb77..5f0ab68ddb74 100644 --- a/samples/client/others/rust/reqwest/composed-oneof/Cargo.toml +++ b/samples/client/others/rust/reqwest/composed-oneof/Cargo.toml @@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" serde_repr = "^0.1" url = "^2.5" -reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] } [features] default = ["native-tls"] native-tls = ["reqwest/native-tls"] -rustls-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] diff --git a/samples/client/others/rust/reqwest/emptyObject/Cargo.toml b/samples/client/others/rust/reqwest/emptyObject/Cargo.toml index e683742ec908..ce06aa391784 100644 --- a/samples/client/others/rust/reqwest/emptyObject/Cargo.toml +++ b/samples/client/others/rust/reqwest/emptyObject/Cargo.toml @@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" serde_repr = "^0.1" url = "^2.5" -reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] } [features] default = ["native-tls"] native-tls = ["reqwest/native-tls"] -rustls-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] diff --git a/samples/client/others/rust/reqwest/enum-query-params/Cargo.toml b/samples/client/others/rust/reqwest/enum-query-params/Cargo.toml index 9b025fe71ddd..0a22bad218ad 100644 --- a/samples/client/others/rust/reqwest/enum-query-params/Cargo.toml +++ b/samples/client/others/rust/reqwest/enum-query-params/Cargo.toml @@ -12,7 +12,7 @@ serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" serde_repr = "^0.1" url = "^2.5" -reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "query", "form"] } [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-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] diff --git a/samples/client/others/rust/reqwest/oneOf-array-map/Cargo.toml b/samples/client/others/rust/reqwest/oneOf-array-map/Cargo.toml index fb682a1f07f2..971d4b00f14e 100644 --- a/samples/client/others/rust/reqwest/oneOf-array-map/Cargo.toml +++ b/samples/client/others/rust/reqwest/oneOf-array-map/Cargo.toml @@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" serde_repr = "^0.1" url = "^2.5" -reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] } [features] default = ["native-tls"] native-tls = ["reqwest/native-tls"] -rustls-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] diff --git a/samples/client/others/rust/reqwest/oneOf-reuseRef/Cargo.toml b/samples/client/others/rust/reqwest/oneOf-reuseRef/Cargo.toml index 838395ce1b24..3d23b195443e 100644 --- a/samples/client/others/rust/reqwest/oneOf-reuseRef/Cargo.toml +++ b/samples/client/others/rust/reqwest/oneOf-reuseRef/Cargo.toml @@ -11,9 +11,9 @@ serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" serde_repr = "^0.1" url = "^2.5" -reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] } [features] default = ["native-tls"] native-tls = ["reqwest/native-tls"] -rustls-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] diff --git a/samples/client/others/rust/reqwest/oneOf/Cargo.toml b/samples/client/others/rust/reqwest/oneOf/Cargo.toml index fc08d8321b3b..011f2b721b5f 100644 --- a/samples/client/others/rust/reqwest/oneOf/Cargo.toml +++ b/samples/client/others/rust/reqwest/oneOf/Cargo.toml @@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" serde_repr = "^0.1" url = "^2.5" -reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] } +reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] } [features] default = ["native-tls"] native-tls = ["reqwest/native-tls"] -rustls-tls = ["reqwest/rustls-tls"] +rustls = ["reqwest/rustls"] diff --git a/samples/client/others/typescript-angular-v20/builds/query-param-deep-object/configuration.ts b/samples/client/others/typescript-angular-v20/builds/query-param-deep-object/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular-v20/builds/query-param-deep-object/configuration.ts +++ b/samples/client/others/typescript-angular-v20/builds/query-param-deep-object/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/others/typescript-angular-v20/builds/query-param-form/configuration.ts b/samples/client/others/typescript-angular-v20/builds/query-param-form/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular-v20/builds/query-param-form/configuration.ts +++ b/samples/client/others/typescript-angular-v20/builds/query-param-form/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/others/typescript-angular-v20/builds/query-param-json/configuration.ts b/samples/client/others/typescript-angular-v20/builds/query-param-json/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular-v20/builds/query-param-json/configuration.ts +++ b/samples/client/others/typescript-angular-v20/builds/query-param-json/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/configuration.ts b/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/configuration.ts +++ b/samples/client/others/typescript-angular/builds/composed-schemas-tagged-unions/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/others/typescript-angular/builds/composed-schemas/configuration.ts b/samples/client/others/typescript-angular/builds/composed-schemas/configuration.ts index 2a128451c081..3ce70bf8abaa 100644 --- a/samples/client/others/typescript-angular/builds/composed-schemas/configuration.ts +++ b/samples/client/others/typescript-angular/builds/composed-schemas/configuration.ts @@ -1,5 +1,6 @@ -import { HttpHeaders, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { HttpHeaders, HttpParameterCodec } from '@angular/common/http'; import { Param } from './param'; +import { OpenApiHttpParams } from './query.params'; export interface ConfigurationParameters { /** @@ -159,7 +160,7 @@ constructor({ accessToken, apiKeys, basePath, credentials, encodeParam, encoder, : headers; } - public addCredentialToQuery(credentialKey: string, paramName: string, query: HttpParams): HttpParams { + public addCredentialToQuery(credentialKey: string, paramName: string, query: OpenApiHttpParams): OpenApiHttpParams { const value = this.lookupCredential(credentialKey); return value ? query.set(paramName, value) diff --git a/samples/client/others/typescript-fetch/infinite-recursion-issue/apis/TestApi.ts b/samples/client/others/typescript-fetch/infinite-recursion-issue/apis/TestApi.ts index ba47bcab5145..42a1e35feab7 100644 --- a/samples/client/others/typescript-fetch/infinite-recursion-issue/apis/TestApi.ts +++ b/samples/client/others/typescript-fetch/infinite-recursion-issue/apis/TestApi.ts @@ -28,8 +28,9 @@ import { export class TestApi extends runtime.BaseAPI { /** + * Creates request options for test without sending the request */ - async testRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + async testRequestOpts(): Promise { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -37,12 +38,19 @@ export class TestApi extends runtime.BaseAPI { let urlPath = `/api/v1/test`; - const response = await this.request({ + return { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters, - }, initOverrides); + }; + } + + /** + */ + async testRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const requestOptions = await this.testRequestOpts(); + const response = await this.request(requestOptions, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TestBaseDtoFromJSON)); } diff --git a/samples/client/others/typescript/builds/array-of-lists/http/http.ts b/samples/client/others/typescript/builds/array-of-lists/http/http.ts index 6ac932c7c23a..3a83e7519fbe 100644 --- a/samples/client/others/typescript/builds/array-of-lists/http/http.ts +++ b/samples/client/others/typescript/builds/array-of-lists/http/http.ts @@ -174,6 +174,7 @@ export class SelfDecodingBody implements ResponseBody { reader.readAsText(data); }); } + } export class ResponseContext { diff --git a/samples/client/others/typescript/builds/enum-single-value/http/http.ts b/samples/client/others/typescript/builds/enum-single-value/http/http.ts index 6ac932c7c23a..3a83e7519fbe 100644 --- a/samples/client/others/typescript/builds/enum-single-value/http/http.ts +++ b/samples/client/others/typescript/builds/enum-single-value/http/http.ts @@ -174,6 +174,7 @@ export class SelfDecodingBody implements ResponseBody { reader.readAsText(data); }); } + } export class ResponseContext { diff --git a/samples/client/others/typescript/builds/null-types-simple/http/http.ts b/samples/client/others/typescript/builds/null-types-simple/http/http.ts index 6ac932c7c23a..3a83e7519fbe 100644 --- a/samples/client/others/typescript/builds/null-types-simple/http/http.ts +++ b/samples/client/others/typescript/builds/null-types-simple/http/http.ts @@ -174,6 +174,7 @@ export class SelfDecodingBody implements ResponseBody { reader.readAsText(data); }); } + } export class ResponseContext { diff --git a/samples/client/others/typescript/builds/with-unique-items/http/http.ts b/samples/client/others/typescript/builds/with-unique-items/http/http.ts index 6ac932c7c23a..3a83e7519fbe 100644 --- a/samples/client/others/typescript/builds/with-unique-items/http/http.ts +++ b/samples/client/others/typescript/builds/with-unique-items/http/http.ts @@ -174,6 +174,7 @@ export class SelfDecodingBody implements ResponseBody { reader.readAsText(data); }); } + } export class ResponseContext { diff --git a/samples/client/others/typescript/encode-decode/build/http/http.ts b/samples/client/others/typescript/encode-decode/build/http/http.ts index 68974f3164cf..79bdf44c9afe 100644 --- a/samples/client/others/typescript/encode-decode/build/http/http.ts +++ b/samples/client/others/typescript/encode-decode/build/http/http.ts @@ -162,6 +162,7 @@ export class RequestContext { export interface ResponseBody { text(): Promise; binary(): Promise; + stream(): ReadableStream | null; } /** @@ -178,6 +179,10 @@ export class SelfDecodingBody implements ResponseBody { const data: Buffer = await this.dataSource; return data.toString(); } + + stream(): ReadableStream | null { + return null; + } } export class ResponseContext { diff --git a/samples/client/others/typescript/encode-decode/build/http/isomorphic-fetch.ts b/samples/client/others/typescript/encode-decode/build/http/isomorphic-fetch.ts index 23cfa867b046..fd0627960b43 100644 --- a/samples/client/others/typescript/encode-decode/build/http/isomorphic-fetch.ts +++ b/samples/client/others/typescript/encode-decode/build/http/isomorphic-fetch.ts @@ -22,7 +22,8 @@ export class IsomorphicFetchHttpLibrary implements HttpLibrary { const body = { text: () => resp.text(), - binary: () => resp.buffer() + binary: () => resp.buffer(), + stream: () => resp.body }; return new ResponseContext(resp.status, headers, body); }); diff --git a/samples/client/others/typescript/encode-decode/test/test/server.ts b/samples/client/others/typescript/encode-decode/test/test/server.ts index a32330da9c19..a6747fc6cd08 100644 --- a/samples/client/others/typescript/encode-decode/test/test/server.ts +++ b/samples/client/others/typescript/encode-decode/test/test/server.ts @@ -26,6 +26,7 @@ class TestServerStub implements PromiseHttpLibrary { const body: ResponseBody = { binary: async () => { throw new Error('not implemented') }, text: async () => JSON.stringify(value), + stream: () => null, }; const headers = { 'content-type': 'application/json' }; return new ResponseContext(200, headers, body); @@ -35,6 +36,7 @@ class TestServerStub implements PromiseHttpLibrary { const body: ResponseBody = { binary: async () => { throw new Error('not implemented') }, text: async () => "", + stream: () => null, }; return new ResponseContext(200, {}, body); } else { diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..f585f3c0a2f0 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI + * + * OpenAPI + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..95e0d7d7ffd3 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI + * + * OpenAPI + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..e02712c4078c 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI + * + * OpenAPI + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..d89aded6131e 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI + * + * OpenAPI + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..4244c4daf4ce 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI + * + * OpenAPI + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..2239c09bfeb2 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI + * + * OpenAPI + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index 0f1476c40c26..c1e9012a9965 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -47,7 +51,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..c857ebbb41ad 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI + * + * OpenAPI + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..a425a015fb33 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI + * + * OpenAPI + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 41825a6caa05..93eb78fe8829 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..ed0fae093ffa 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * Minimal reproduction for csharp webhook bug + * + * This is an example API to reproduce a bug with webhooks in csharp codegen + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..fb174003be7c 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * Minimal reproduction for csharp webhook bug + * + * This is an example API to reproduce a bug with webhooks in csharp codegen + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..b25e1196a2ba 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * Minimal reproduction for csharp webhook bug + * + * This is an example API to reproduce a bug with webhooks in csharp codegen + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..4e10aecc1e0e 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * Minimal reproduction for csharp webhook bug + * + * This is an example API to reproduce a bug with webhooks in csharp codegen + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..e79c8ac1a19c 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * Minimal reproduction for csharp webhook bug + * + * This is an example API to reproduce a bug with webhooks in csharp codegen + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..39982f5c525d 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * Minimal reproduction for csharp webhook bug + * + * This is an example API to reproduce a bug with webhooks in csharp codegen + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index e391d54816c1..e1947b346887 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -47,7 +51,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..415af19e3c90 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * Minimal reproduction for csharp webhook bug + * + * This is an example API to reproduce a bug with webhooks in csharp codegen + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..e831ca2b895a 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * Minimal reproduction for csharp webhook bug + * + * This is an example API to reproduce a bug with webhooks in csharp codegen + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 4a2eeb313648..260b523cf349 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..f11d0bfc797f 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..006a2ec37991 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..ce3efa1aaaf6 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..f55af84d3122 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..49e1cd0c9152 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs index 5c677ebfe604..c2f5d190fc79 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -69,7 +69,7 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..6a0910ea6c71 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index 47f04ad710a3..f47686424279 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -47,7 +51,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..5bb1044f772c 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..e1910b2d58e7 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 2d668528ef65..3528b94f6725 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..94b17df95eec 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * Oneof array test + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..6d6f0595e3e5 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * Oneof array test + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..bd48c044c3f9 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * Oneof array test + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..5d65f736b3c1 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * Oneof array test + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..e021e476e3ce 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * Oneof array test + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/HostConfiguration.cs index f6ff3ae8fb5e..bba3521b58e8 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -66,7 +66,7 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..087ef46f1b57 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * Oneof array test + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index e3393fd59add..580368b3fa8f 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -47,7 +51,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..53471fdcea21 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * Oneof array test + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..514341827e4d 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * Oneof array test + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 56f0a7675aec..9ee5d4e3849f 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..5f792eb3eb80 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,13 @@ +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +22,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..faf7176d8a44 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,13 @@ +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiKeyToken.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiKeyToken.cs index d0b10f69b91e..9760b3a9b118 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiKeyToken.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiKeyToken.cs @@ -1,4 +1,13 @@ // +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -51,4 +60,4 @@ public virtual void UseInQuery(global::System.Net.Http.HttpRequestMessage reques parseQueryString[ClientUtils.ApiKeyHeaderToString(Header)] = Uri.EscapeDataString(_raw).ToString()!; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..946bd1f7d757 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,13 @@ +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..86137e9617cb 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,13 @@ // +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +26,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..3e0644adaeb3 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,13 @@ +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/HostConfiguration.cs index ff84d1b3f835..807864f24c64 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -66,9 +66,9 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IAPIKEYSApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IAPIKeysApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IApiKeysApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..c03f0d4aa569 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,13 @@ // +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +33,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index 37880748aed6..8deb80ac2f35 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -22,7 +22,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -74,7 +78,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..49d5af533e92 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,13 @@ // +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +24,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +49,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +83,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..8fd814b7d75f 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,13 @@ // +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +43,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenProvider`1.cs index a65bd07d9681..cce71626227e 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -22,6 +22,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..65c41d0633ba 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..6a6cadccdb3d 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..3f062c6e5399 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..2cd377673b91 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..a3320d0d1b82 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/HostConfiguration.cs index 1a9db5721d53..95f42975580d 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -67,7 +67,7 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..f84b0c81cfc5 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index 7b0510910777..9f0455767aca 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -47,7 +51,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..477aeaead406 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..77adf6a995f9 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 16359b31aa40..c66cdb4ee2a4 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..ad5ab9cfa9a3 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..a82fd66226e3 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..98e63e13d068 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..8c8b0435c1c4 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..4a7d7f4afd08 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs index 2e37448fb7d8..2afdd0a137e6 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -67,7 +67,7 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..ae6194f0d4fd 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index 413887f07db1..77d36ad1aa38 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -47,7 +51,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..acbbccb65582 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..2529186409d8 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 0f375142c129..7f56320e4115 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..ad5ab9cfa9a3 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..a82fd66226e3 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..98e63e13d068 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..8c8b0435c1c4 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..4a7d7f4afd08 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/HostConfiguration.cs index 2e37448fb7d8..2afdd0a137e6 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -67,7 +67,7 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..ae6194f0d4fd 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index 413887f07db1..77d36ad1aa38 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -47,7 +51,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..acbbccb65582 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..2529186409d8 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 0f375142c129..7f56320e4115 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..f11d0bfc797f 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..006a2ec37991 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiKeyToken.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiKeyToken.cs index 4ae15cda355e..2499533cba7c 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiKeyToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiKeyToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; @@ -49,4 +57,4 @@ public virtual void UseInQuery(global::System.Net.Http.HttpRequestMessage reques parseQueryString[ClientUtils.ApiKeyHeaderToString(Header)] = Uri.EscapeDataString(_raw).ToString(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..ce3efa1aaaf6 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/BasicToken.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/BasicToken.cs index bde0562e1940..867cf1d717bc 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/BasicToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/BasicToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; using System.Linq; @@ -39,4 +47,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Org.OpenAPITools.Client.ClientUtils.Base64Encode(_username + ":" + _password)); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/BearerToken.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/BearerToken.cs index 4337ac9a7736..a701ee8d0dcd 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/BearerToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/BearerToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; using System.Linq; @@ -34,4 +42,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/CookieContainer.cs index da94287dab88..63b7093df708 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Linq; using System.Collections.Generic; @@ -15,4 +23,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..49e1cd0c9152 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/HostConfiguration.cs index efaff580a5f9..0d45a7a32e20 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -229,13 +229,13 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IAnotherFakeApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IFakeApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IPetApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IStoreApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IUserApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/HttpSigningToken.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/HttpSigningToken.cs index 387f7a8829e8..ad45bd0bc3af 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/HttpSigningToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/HttpSigningToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; using System.Linq; @@ -38,4 +46,4 @@ public void UseInHeader(global::System.Net.Http.HttpRequestMessage request, stri request.Headers.Add(signedHeader.Key, signedHeader.Value); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 8fd6b68578f0..ee0db494080a 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Text.Json; @@ -22,4 +30,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/OAuthToken.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/OAuthToken.cs index 209e913db3e0..199ec310d268 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/OAuthToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/OAuthToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; using System.Linq; @@ -34,4 +42,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index be9379a5634d..b3e2c32d4ed1 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -19,7 +19,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -71,7 +75,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenBase.cs index 11cddf564b33..744e156cd16f 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; @@ -13,11 +21,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -31,7 +46,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -66,4 +80,4 @@ private void OnTimer(object sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 1e81bcd48886..c39958a248c8 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Linq; using System.Collections.Generic; @@ -32,4 +40,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 1a9a30116ee5..4b00ebf1d497 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -19,6 +19,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..f11d0bfc797f 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..006a2ec37991 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiKeyToken.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiKeyToken.cs index d0b10f69b91e..f5f603c4e3c4 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiKeyToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiKeyToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -51,4 +59,4 @@ public virtual void UseInQuery(global::System.Net.Http.HttpRequestMessage reques parseQueryString[ClientUtils.ApiKeyHeaderToString(Header)] = Uri.EscapeDataString(_raw).ToString()!; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..ce3efa1aaaf6 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/BasicToken.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/BasicToken.cs index 01e79ed16ed2..199c1c236136 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/BasicToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/BasicToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -41,4 +49,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Org.OpenAPITools.Client.ClientUtils.Base64Encode(_username + ":" + _password)); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/BearerToken.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/BearerToken.cs index b2d4591d46b9..eff990384e27 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/BearerToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/BearerToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -36,4 +44,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..f55af84d3122 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..49e1cd0c9152 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/HostConfiguration.cs index 7828441b95e5..601e2a799777 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -181,13 +181,13 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IAnotherFakeApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IFakeApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IPetApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IStoreApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IUserApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/HttpSigningToken.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/HttpSigningToken.cs index 5d5338cb9e61..9819949b502e 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/HttpSigningToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/HttpSigningToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -40,4 +48,4 @@ public void UseInHeader(global::System.Net.Http.HttpRequestMessage request, stri request.Headers.Add(signedHeader.Key, signedHeader.Value); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..6a0910ea6c71 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/OAuthToken.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/OAuthToken.cs index 3544d55c373c..fee5c1b86e31 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/OAuthToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/OAuthToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -36,4 +44,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index aedb1cef12fa..674ae48622db 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -73,7 +77,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..5bb1044f772c 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..e1910b2d58e7 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 2d668528ef65..3528b94f6725 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..ad5ab9cfa9a3 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..a82fd66226e3 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..98e63e13d068 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..8c8b0435c1c4 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..4a7d7f4afd08 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/HostConfiguration.cs index 9e79cf0877cf..b41e668f3d81 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -68,7 +68,7 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..ae6194f0d4fd 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index 413887f07db1..77d36ad1aa38 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -47,7 +51,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..acbbccb65582 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..2529186409d8 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 0f375142c129..7f56320e4115 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..f11d0bfc797f 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..006a2ec37991 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiKeyToken.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiKeyToken.cs index 4ae15cda355e..2499533cba7c 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiKeyToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiKeyToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; @@ -49,4 +57,4 @@ public virtual void UseInQuery(global::System.Net.Http.HttpRequestMessage reques parseQueryString[ClientUtils.ApiKeyHeaderToString(Header)] = Uri.EscapeDataString(_raw).ToString(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..ce3efa1aaaf6 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/BasicToken.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/BasicToken.cs index bde0562e1940..867cf1d717bc 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/BasicToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/BasicToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; using System.Linq; @@ -39,4 +47,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Org.OpenAPITools.Client.ClientUtils.Base64Encode(_username + ":" + _password)); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/BearerToken.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/BearerToken.cs index 4337ac9a7736..a701ee8d0dcd 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/BearerToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/BearerToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; using System.Linq; @@ -34,4 +42,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/CookieContainer.cs index da94287dab88..63b7093df708 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Linq; using System.Collections.Generic; @@ -15,4 +23,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..49e1cd0c9152 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/HostConfiguration.cs index f97fb3c5e7a2..d9c123539554 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -179,13 +179,13 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IAnotherFakeApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IFakeApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IPetApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IStoreApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IUserApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/HttpSigningToken.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/HttpSigningToken.cs index 387f7a8829e8..ad45bd0bc3af 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/HttpSigningToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/HttpSigningToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; using System.Linq; @@ -38,4 +46,4 @@ public void UseInHeader(global::System.Net.Http.HttpRequestMessage request, stri request.Headers.Add(signedHeader.Key, signedHeader.Value); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 8fd6b68578f0..ee0db494080a 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Text.Json; @@ -22,4 +30,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/OAuthToken.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/OAuthToken.cs index 209e913db3e0..199ec310d268 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/OAuthToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/OAuthToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; using System.Linq; @@ -34,4 +42,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index be9379a5634d..b3e2c32d4ed1 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -19,7 +19,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -71,7 +75,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenBase.cs index 11cddf564b33..744e156cd16f 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; @@ -13,11 +21,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -31,7 +46,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -66,4 +80,4 @@ private void OnTimer(object sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 1e81bcd48886..c39958a248c8 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Linq; using System.Collections.Generic; @@ -32,4 +40,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 1a9a30116ee5..4b00ebf1d497 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -19,6 +19,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..f11d0bfc797f 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..006a2ec37991 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiKeyToken.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiKeyToken.cs index d0b10f69b91e..f5f603c4e3c4 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiKeyToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiKeyToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -51,4 +59,4 @@ public virtual void UseInQuery(global::System.Net.Http.HttpRequestMessage reques parseQueryString[ClientUtils.ApiKeyHeaderToString(Header)] = Uri.EscapeDataString(_raw).ToString()!; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..ce3efa1aaaf6 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/BasicToken.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/BasicToken.cs index 01e79ed16ed2..199c1c236136 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/BasicToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/BasicToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -41,4 +49,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Org.OpenAPITools.Client.ClientUtils.Base64Encode(_username + ":" + _password)); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/BearerToken.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/BearerToken.cs index b2d4591d46b9..eff990384e27 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/BearerToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/BearerToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -36,4 +44,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..f55af84d3122 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..49e1cd0c9152 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/HostConfiguration.cs index 759667956526..0b1b1097c6a4 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -289,13 +289,13 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IAnotherFakeApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IFakeApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IFakeClassnameTags123Api", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IPetApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IStoreApi", client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IUserApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/HttpSigningToken.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/HttpSigningToken.cs index 5d5338cb9e61..9819949b502e 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/HttpSigningToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/HttpSigningToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -40,4 +48,4 @@ public void UseInHeader(global::System.Net.Http.HttpRequestMessage request, stri request.Headers.Add(signedHeader.Key, signedHeader.Value); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..6a0910ea6c71 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/OAuthToken.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/OAuthToken.cs index 3544d55c373c..fee5c1b86e31 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/OAuthToken.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/OAuthToken.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -36,4 +44,4 @@ public virtual void UseInHeader(global::System.Net.Http.HttpRequestMessage reque request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index aedb1cef12fa..674ae48622db 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -73,7 +77,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..5bb1044f772c 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..e1910b2d58e7 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 2d668528ef65..3528b94f6725 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..60c04556c0a0 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..d4ea39986293 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..ccd377b6ffa0 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/CookieContainer.cs index 85093b0c1fee..dec381c8b3cf 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -17,4 +25,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..baef1090e088 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/HostConfiguration.cs index a1983fd248da..4a76ecc7d311 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -63,7 +63,7 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 0184d9ad9446..ad0ca5cc3ead 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -24,4 +32,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index 63af49ff9e42..a679439c57aa 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -21,7 +21,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -47,7 +51,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel? tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenBase.cs index aa6df45cf7c0..0b380a8182ec 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -15,11 +23,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler? TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler? TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -33,7 +48,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -68,4 +82,4 @@ private void OnTimer(object? sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 7b0f23d28a4e..fd53a6a1222b 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ #nullable enable @@ -34,4 +42,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenProvider`1.cs index 36ae5069699f..aa26e4e69804 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -21,6 +21,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..65c41d0633ba 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..6a6cadccdb3d 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..3f062c6e5399 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/CookieContainer.cs index da94287dab88..816c20656472 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Linq; using System.Collections.Generic; @@ -15,4 +23,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..a3320d0d1b82 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/HostConfiguration.cs index 2518b0f2bda6..bff2be1c81d1 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -63,7 +63,7 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 8fd6b68578f0..6bbbba2f639e 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Text.Json; @@ -22,4 +30,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index 79b86c53e0cd..0df212257386 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -19,7 +19,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new Dictionary>(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new Dictionary>(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -45,7 +49,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenBase.cs index 11cddf564b33..964ae57ee1b1 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; @@ -13,11 +21,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -31,7 +46,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - /// /// Starts the token's timer /// @@ -66,4 +80,4 @@ private void OnTimer(object sender, System.Timers.ElapsedEventArgs e) TokenBecameAvailable.Invoke(this); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs index 1e81bcd48886..d969b1c337cc 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenContainer`1.cs @@ -1,4 +1,12 @@ // +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Linq; using System.Collections.Generic; @@ -32,4 +40,4 @@ public TokenContainer(global::System.Collections.Generic.IEnumerable Tokens = tokens.ToList(); } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs index c96d82895566..7ec5cecf4014 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/TokenProvider`1.cs @@ -19,6 +19,12 @@ namespace Org.OpenAPITools /// public abstract class TokenProvider where TTokenBase : TokenBase { - public abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); + /// + /// Gets a token asynchronously for the specified header. + /// + /// The header name to retrieve a token for. Empty string for non-API-key authentication schemes. + /// Cancellation token for the asynchronous operation. + /// A task that returns the requested token. + protected internal abstract System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default); } } \ No newline at end of file diff --git a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Api/IApi.cs b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Api/IApi.cs index 28520f043f2d..ad5ab9cfa9a3 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Api/IApi.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Api/IApi.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System.Net.Http; namespace Org.OpenAPITools.Api @@ -12,4 +21,4 @@ public interface IApi /// HttpClient HttpClient { get; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs index b9b27c613f86..a82fd66226e3 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ApiFactory.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; using Microsoft.Extensions.DependencyInjection; using Org.OpenAPITools.Api; diff --git a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index 3cb65e5adc0b..98e63e13d068 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs index da94287dab88..2dfab812a89c 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/CookieContainer.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Linq; using System.Collections.Generic; @@ -15,4 +23,4 @@ public sealed class CookieContainer /// public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer(); } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs index f711f9f3c7ee..4a7d7f4afd08 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/ExceptionEventArgs.cs @@ -1,3 +1,12 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + using System; namespace Org.OpenAPITools.Client diff --git a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs index 6e6cadc2371f..cb1edaa5d4d7 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -63,7 +63,7 @@ public HostConfiguration AddApiHttpClients List builders = new List(); - builders.Add(_services.AddHttpClient(client)); + builders.Add(_services.AddHttpClient("Org.OpenAPITools.Api.IDefaultApi", client)); if (builder != null) foreach (IHttpClientBuilder instance in builders) diff --git a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs index 8fd6b68578f0..42188198307c 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/JsonSerializerOptionsProvider.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System.Text.Json; @@ -22,4 +30,4 @@ public JsonSerializerOptionsProvider(JsonSerializerOptions options) Options = options; } } -} \ No newline at end of file +} diff --git a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs index e41f3d33abf7..33c9efff7660 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs @@ -19,7 +19,11 @@ namespace Org.OpenAPITools.Client /// public class RateLimitProvider : TokenProvider where TTokenBase : TokenBase { - public Dictionary> AvailableTokens { get; } = new Dictionary>(); + /// + /// 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. + /// + protected internal Dictionary> AvailableTokens { get; } = new Dictionary>(); /// /// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. @@ -45,7 +49,7 @@ public RateLimitProvider(TokenContainer container) : base() } /// - public override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) + protected internal override async System.Threading.Tasks.ValueTask GetAsync(string header = "", System.Threading.CancellationToken cancellation = default) { if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel tokens)) throw new KeyNotFoundException($"Could not locate a token for header '{header}'."); diff --git a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/TokenBase.cs b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/TokenBase.cs index 11cddf564b33..b90437e247b1 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/TokenBase.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/TokenBase.cs @@ -1,4 +1,12 @@ // +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ using System; @@ -13,11 +21,18 @@ public abstract class TokenBase private object _nextAvailableLock = new object(); private readonly System.Timers.Timer _timer = new System.Timers.Timer(); - internal TimeSpan? Timeout { get; set; } + + /// + /// Delegate for token availability notification events. + /// + /// The token that became available. public delegate void TokenBecameAvailableEventHandler(object sender); - public event TokenBecameAvailableEventHandler TokenBecameAvailable; + /// + /// Event raised when a rate-limited token becomes available for use. + /// + public event TokenBecameAvailableEventHandler TokenBecameAvailable; /// /// Initialize a TokenBase object. @@ -31,7 +46,6 @@ internal TokenBase(TimeSpan? timeout = null) StartTimer(Timeout.Value); } - ///