diff --git a/src/libs/Writesonic/Generated/Writesonic.Polyfills.g.cs b/src/libs/Writesonic/Generated/Writesonic.Polyfills.g.cs index a80613f..82fd2d2 100644 --- a/src/libs/Writesonic/Generated/Writesonic.Polyfills.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.Polyfills.g.cs @@ -1,5 +1,4 @@ -#if !NET6_0_OR_GREATER #nullable enable namespace Writesonic @@ -9,6 +8,7 @@ namespace Writesonic /// public static partial class AutoSdkPolyfills { +#if !NET6_0_OR_GREATER /// /// /// @@ -48,6 +48,128 @@ public static partial class AutoSdkPolyfills content = content ?? throw new global::System.ArgumentNullException(nameof(content)); return content.ReadAsByteArrayAsync(); } +#endif + + /// + /// Creates a JSON request content instance. + /// + public static global::System.Net.Http.HttpContent CreateJsonContent( + T inputValue, + string mediaType, + global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions) + { + if (string.IsNullOrWhiteSpace(mediaType)) + { + throw new global::System.ArgumentException("Media type is required.", nameof(mediaType)); + } + +#if NET5_0_OR_GREATER + return global::System.Net.Http.Json.JsonContent.Create( + inputValue: inputValue, + mediaType: new global::System.Net.Http.Headers.MediaTypeHeaderValue(mediaType), + options: jsonSerializerOptions); +#else + var json = global::System.Text.Json.JsonSerializer.Serialize(inputValue, jsonSerializerOptions); + var stringContent = new global::System.Net.Http.StringContent( + content: json, + encoding: global::System.Text.Encoding.UTF8); + stringContent.Headers.ContentType = new global::System.Net.Http.Headers.MediaTypeHeaderValue(mediaType) + { + CharSet = global::System.Text.Encoding.UTF8.WebName, + }; + return stringContent; +#endif + } + + /// + /// Creates a JSON request content instance using a source-generated serializer context. + /// + public static global::System.Net.Http.HttpContent CreateJsonContent( + object? inputValue, + global::System.Type inputType, + string mediaType, + global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext) + { + inputType = inputType ?? throw new global::System.ArgumentNullException(nameof(inputType)); + jsonSerializerContext = jsonSerializerContext ?? throw new global::System.ArgumentNullException(nameof(jsonSerializerContext)); + + if (string.IsNullOrWhiteSpace(mediaType)) + { + throw new global::System.ArgumentException("Media type is required.", nameof(mediaType)); + } + +#if NET5_0_OR_GREATER + var jsonTypeInfo = jsonSerializerContext.GetTypeInfo(inputType) ?? + throw new global::System.InvalidOperationException($"No JsonTypeInfo registered for '{inputType}'."); + return global::System.Net.Http.Json.JsonContent.Create( + inputValue: inputValue, + jsonTypeInfo: jsonTypeInfo, + mediaType: new global::System.Net.Http.Headers.MediaTypeHeaderValue(mediaType)); +#else + var json = global::System.Text.Json.JsonSerializer.Serialize( + value: inputValue, + inputType: inputType, + jsonSerializerContext); + var stringContent = new global::System.Net.Http.StringContent( + content: json, + encoding: global::System.Text.Encoding.UTF8); + stringContent.Headers.ContentType = new global::System.Net.Http.Headers.MediaTypeHeaderValue(mediaType) + { + CharSet = global::System.Text.Encoding.UTF8.WebName, + }; + return stringContent; +#endif + } + + /// + /// Reads JSON content into the specified type using serializer options. + /// + public static async global::System.Threading.Tasks.Task ReadFromJsonAsync( + this global::System.Net.Http.HttpContent content, + global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions, + global::System.Threading.CancellationToken cancellationToken) + { + content = content ?? throw new global::System.ArgumentNullException(nameof(content)); + +#if NET5_0_OR_GREATER + return await global::System.Net.Http.Json.HttpContentJsonExtensions.ReadFromJsonAsync( + content, + jsonSerializerOptions, + cancellationToken).ConfigureAwait(false); +#else + using var stream = await AutoSdkPolyfills.ReadAsStreamAsync(content, cancellationToken).ConfigureAwait(false); + return await global::System.Text.Json.JsonSerializer.DeserializeAsync( + utf8Json: stream, + options: jsonSerializerOptions, + cancellationToken: cancellationToken).ConfigureAwait(false); +#endif + } + + /// + /// Reads JSON content into the specified type using a source-generated serializer context. + /// + public static async global::System.Threading.Tasks.Task ReadFromJsonAsync( + this global::System.Net.Http.HttpContent content, + global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext, + global::System.Threading.CancellationToken cancellationToken) + { + content = content ?? throw new global::System.ArgumentNullException(nameof(content)); + jsonSerializerContext = jsonSerializerContext ?? throw new global::System.ArgumentNullException(nameof(jsonSerializerContext)); + +#if NET5_0_OR_GREATER + return (T?)await global::System.Net.Http.Json.HttpContentJsonExtensions.ReadFromJsonAsync( + content, + typeof(T), + jsonSerializerContext, + cancellationToken).ConfigureAwait(false); +#else + using var stream = await AutoSdkPolyfills.ReadAsStreamAsync(content, cancellationToken).ConfigureAwait(false); + return (T?)await global::System.Text.Json.JsonSerializer.DeserializeAsync( + utf8Json: stream, + returnType: typeof(T), + jsonSerializerContext, + cancellationToken: cancellationToken).ConfigureAwait(false); +#endif + } } } -#endif \ No newline at end of file diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.AidaFramework.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.AidaFramework.g.cs index 79342a5..f8c5932 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.AidaFramework.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.AidaFramework.g.cs @@ -201,7 +201,6 @@ partial void ProcessAidaFrameworkResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.AmazonProductDescriptions.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.AmazonProductDescriptions.g.cs index 534b0af..a75cefe 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.AmazonProductDescriptions.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.AmazonProductDescriptions.g.cs @@ -201,7 +201,6 @@ partial void ProcessAmazonProductDescriptionsResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ArticleWriterV3.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ArticleWriterV3.g.cs index 12db020..0a10df8 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ArticleWriterV3.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ArticleWriterV3.g.cs @@ -201,7 +201,6 @@ partial void ProcessArticleWriterV3ResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogIdeas.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogIdeas.g.cs index c5688ee..86f1522 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogIdeas.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogIdeas.g.cs @@ -201,7 +201,6 @@ partial void ProcessBlogIdeasResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogIntros.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogIntros.g.cs index 3ee10d1..5e824d5 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogIntros.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogIntros.g.cs @@ -201,7 +201,6 @@ partial void ProcessBlogIntrosResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogOutlines.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogOutlines.g.cs index 4f3d4f1..138eb42 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogOutlines.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.BlogOutlines.g.cs @@ -201,7 +201,6 @@ partial void ProcessBlogOutlinesResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ChatSonic.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ChatSonic.g.cs index dc6b6e4..8026e3e 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ChatSonic.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ChatSonic.g.cs @@ -202,7 +202,6 @@ partial void ProcessChatSonicResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ColdEmails.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ColdEmails.g.cs index a7cebe1..d26dd97 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ColdEmails.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ColdEmails.g.cs @@ -201,7 +201,6 @@ partial void ProcessColdEmailsResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ContentRephrase.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ContentRephrase.g.cs index b56a0ca..ec03789 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ContentRephrase.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ContentRephrase.g.cs @@ -201,7 +201,6 @@ partial void ProcessContentRephraseResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ContentShorten.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ContentShorten.g.cs index 74948b6..c6414dc 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ContentShorten.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ContentShorten.g.cs @@ -201,7 +201,6 @@ partial void ProcessContentShortenResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.EmailSubjectLines.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.EmailSubjectLines.g.cs index f4b06cd..2a1bb47 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.EmailSubjectLines.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.EmailSubjectLines.g.cs @@ -201,7 +201,6 @@ partial void ProcessEmailSubjectLinesResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.FacebookAds.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.FacebookAds.g.cs index 1713e18..42edb54 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.FacebookAds.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.FacebookAds.g.cs @@ -201,7 +201,6 @@ partial void ProcessFacebookAdsResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.GenerateImage.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.GenerateImage.g.cs index cecea7e..fd006b1 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.GenerateImage.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.GenerateImage.g.cs @@ -178,7 +178,6 @@ partial void ProcessGenerateImageResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.GoogleAds.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.GoogleAds.g.cs index a7e58e2..f412e8d 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.GoogleAds.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.GoogleAds.g.cs @@ -201,7 +201,6 @@ partial void ProcessGoogleAdsResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.InstagramCaptions.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.InstagramCaptions.g.cs index 18012ed..50c5a49 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.InstagramCaptions.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.InstagramCaptions.g.cs @@ -201,7 +201,6 @@ partial void ProcessInstagramCaptionsResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.LinkedInAds.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.LinkedInAds.g.cs index c12c7ec..4af39bd 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.LinkedInAds.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.LinkedInAds.g.cs @@ -201,7 +201,6 @@ partial void ProcessLinkedInAdsResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.PassiveToActiveVoice.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.PassiveToActiveVoice.g.cs index c96019e..bcda37a 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.PassiveToActiveVoice.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.PassiveToActiveVoice.g.cs @@ -201,7 +201,6 @@ partial void ProcessPassiveToActiveVoiceResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ProductDescriptions.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ProductDescriptions.g.cs index 3eb5421..e5636b2 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ProductDescriptions.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ProductDescriptions.g.cs @@ -201,7 +201,6 @@ partial void ProcessProductDescriptionsResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ProductNames.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ProductNames.g.cs index ea8a173..ebd0ee1 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ProductNames.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ProductNames.g.cs @@ -201,7 +201,6 @@ partial void ProcessProductNamesResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.QuestionGeneration.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.QuestionGeneration.g.cs index ce6d875..e4d8123 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.QuestionGeneration.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.QuestionGeneration.g.cs @@ -201,7 +201,6 @@ partial void ProcessQuestionGenerationResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsBlogPost.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsBlogPost.g.cs index feb171f..915a98c 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsBlogPost.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsBlogPost.g.cs @@ -201,7 +201,6 @@ partial void ProcessSeoMetaTagsBlogPostResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsHomepage.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsHomepage.g.cs index e414333..f48a3a2 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsHomepage.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsHomepage.g.cs @@ -201,7 +201,6 @@ partial void ProcessSeoMetaTagsHomepageResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsProductPage.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsProductPage.g.cs index d5089bd..d253d85 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsProductPage.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.SeoMetaTagsProductPage.g.cs @@ -201,7 +201,6 @@ partial void ProcessSeoMetaTagsProductPageResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.TikTokScripts.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.TikTokScripts.g.cs index d8ce364..490ff6d 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.TikTokScripts.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.TikTokScripts.g.cs @@ -201,7 +201,6 @@ partial void ProcessTikTokScriptsResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ToneChanger.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ToneChanger.g.cs index 3e5dde3..0e6cf21 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ToneChanger.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.ToneChanger.g.cs @@ -201,7 +201,6 @@ partial void ProcessToneChangerResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken diff --git a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.Tweets.g.cs b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.Tweets.g.cs index df88b21..57a1785 100644 --- a/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.Tweets.g.cs +++ b/src/libs/Writesonic/Generated/Writesonic.WritesonicClient.Tweets.g.cs @@ -201,7 +201,6 @@ partial void ProcessTweetsResponseContent( try { __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( #if NET5_0_OR_GREATER cancellationToken