From 4db4fea56778c68969d9ed0bcffe1dccf5556d13 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 15 May 2026 08:50:39 +0000 Subject: [PATCH] feat: Updated OpenAPI spec --- .../Replicate.AutoSDKHttpResponse.g.cs | 121 ++ ...Replicate.IReplicateClient.AccountGet.g.cs | 27 + ...icate.IReplicateClient.CollectionsGet.g.cs | 29 + ...cate.IReplicateClient.CollectionsList.g.cs | 31 + ...te.IReplicateClient.DeploymentsCreate.g.cs | 58 + ...te.IReplicateClient.DeploymentsDelete.g.cs | 25 + ...icate.IReplicateClient.DeploymentsGet.g.cs | 47 + ...cate.IReplicateClient.DeploymentsList.g.cs | 49 + ...teClient.DeploymentsPredictionsCreate.g.cs | 39 + ...te.IReplicateClient.DeploymentsUpdate.g.cs | 56 + ...eplicate.IReplicateClient.FilesCreate.g.cs | 121 ++ ...eplicate.IReplicateClient.FilesDelete.g.cs | 20 + ...licate.IReplicateClient.FilesDownload.g.cs | 46 + .../Replicate.IReplicateClient.FilesGet.g.cs | 20 + .../Replicate.IReplicateClient.FilesList.g.cs | 19 + ...plicate.IReplicateClient.HardwareList.g.cs | 26 + ...plicate.IReplicateClient.ModelsCreate.g.cs | 43 + ...plicate.IReplicateClient.ModelsDelete.g.cs | 27 + ...e.IReplicateClient.ModelsExamplesList.g.cs | 34 + .../Replicate.IReplicateClient.ModelsGet.g.cs | 71 + ...Replicate.IReplicateClient.ModelsList.g.cs | 40 + ...plicateClient.ModelsPredictionsCreate.g.cs | 40 + ...cate.IReplicateClient.ModelsReadmeGet.g.cs | 27 + ...plicate.IReplicateClient.ModelsUpdate.g.cs | 44 + ...IReplicateClient.ModelsVersionsDelete.g.cs | 32 + ...te.IReplicateClient.ModelsVersionsGet.g.cs | 59 + ...e.IReplicateClient.ModelsVersionsList.g.cs | 36 + ...te.IReplicateClient.PredictionsCancel.g.cs | 33 + ...te.IReplicateClient.PredictionsCreate.g.cs | 35 + ...icate.IReplicateClient.PredictionsGet.g.cs | 61 + ...cate.IReplicateClient.PredictionsList.g.cs | 69 + .../Replicate.IReplicateClient.Search.g.cs | 32 + ...cate.IReplicateClient.TrainingsCancel.g.cs | 13 + ...cate.IReplicateClient.TrainingsCreate.g.cs | 64 + ...plicate.IReplicateClient.TrainingsGet.g.cs | 58 + ...licate.IReplicateClient.TrainingsList.g.cs | 59 + ...licateClient.WebhooksDefaultSecretGet.g.cs | 24 + .../Generated/Replicate.IReplicateClient.g.cs | 5 + .../Replicate.JsonConverters.OneOf2.g.cs | 5 +- .../Replicate.Models.AccountGetResponse.g.cs | 1 + ...icate.Models.DeploymentsCreateRequest.g.cs | 1 + ...licate.Models.DeploymentsListResponse.g.cs | 1 + ...icate.Models.DeploymentsUpdateRequest.g.cs | 1 + .../Replicate.Models.FilesCreateRequest.g.cs | 1 + ...ate.Models.FilesCreateRequestMetadata.g.cs | 1 + .../Replicate.Models.FilesCreateResponse.g.cs | 1 + .../Replicate.Models.FilesDeleteResponse.g.cs | 1 + ...eplicate.Models.FilesDownloadResponse.g.cs | 1 + .../Replicate.Models.FilesGetResponse.g.cs | 1 + .../Replicate.Models.FilesListResponse.g.cs | 1 + ...icate.Models.HardwareListResponseItem.g.cs | 1 + .../Replicate.Models.ModelsCreateRequest.g.cs | 1 + .../Replicate.Models.ModelsUpdateRequest.g.cs | 1 + ...licate.Models.PredictionsListResponse.g.cs | 1 + ...cate.Models.SchemasCollectionListItem.g.cs | 1 + ...cate.Models.SchemasCollectionResponse.g.cs | 1 + ...cate.Models.SchemasDeploymentResponse.g.cs | 1 + ...hemasDeploymentResponseCurrentRelease.g.cs | 1 + ...ntResponseCurrentReleaseConfiguration.g.cs | 1 + ...oymentResponseCurrentReleaseCreatedBy.g.cs | 1 + .../Replicate.Models.SchemasFileResponse.g.cs | 1 + ...e.Models.SchemasFileResponseChecksums.g.cs | 1 + ...te.Models.SchemasFileResponseMetadata.g.cs | 1 + ...licate.Models.SchemasFileResponseUrls.g.cs | 1 + ...Replicate.Models.SchemasModelResponse.g.cs | 1 + ...ls.SchemasModelResponseDefaultExample.g.cs | 1 + ...els.SchemasModelResponseLatestVersion.g.cs | 1 + .../Replicate.Models.SchemasPageResponse.g.cs | 1 + ...ls.SchemasPaginatedCollectionResponse.g.cs | 1 + ....Models.SchemasPaginatedModelResponse.g.cs | 1 + ...ls.SchemasPaginatedPredictionResponse.g.cs | 1 + ...odels.SchemasPaginatedVersionResponse.g.cs | 1 + ...icate.Models.SchemasPredictionRequest.g.cs | 1 + ....Models.SchemasPredictionRequestInput.g.cs | 1 + ...cate.Models.SchemasPredictionResponse.g.cs | 1 + ...Models.SchemasPredictionResponseInput.g.cs | 1 + ...dels.SchemasPredictionResponseMetrics.g.cs | 1 + ...odels.SchemasPredictionResponseOutput.g.cs | 1 + ....Models.SchemasPredictionResponseUrls.g.cs | 1 + ...odels.SchemasSearchCollectionResponse.g.cs | 1 + ...ls.SchemasSearchModelMetadataResponse.g.cs | 1 + ...eplicate.Models.SchemasSearchResponse.g.cs | 1 + ...ate.Models.SchemasSearchResponseModel.g.cs | 1 + ...plicate.Models.SchemasTrainingRequest.g.cs | 1 + ...te.Models.SchemasTrainingRequestInput.g.cs | 1 + ...licate.Models.SchemasTrainingResponse.g.cs | 1 + ...e.Models.SchemasTrainingResponseInput.g.cs | 1 + ...Models.SchemasTrainingResponseMetrics.g.cs | 1 + ....Models.SchemasTrainingResponseOutput.g.cs | 1 + ...te.Models.SchemasTrainingResponseUrls.g.cs | 1 + ...odels.SchemasVersionPredictionRequest.g.cs | 1 + ....SchemasVersionPredictionRequestInput.g.cs | 1 + ...plicate.Models.SchemasVersionResponse.g.cs | 1 + ...s.SchemasVersionResponseOpenapiSchema.g.cs | 1 + .../Replicate.Models.SearchResponse.g.cs | 1 + .../Replicate.Models.SearchResponse2.g.cs | 1 + ...eplicate.Models.TrainingsListResponse.g.cs | 1 + ...dels.WebhooksDefaultSecretGetResponse.g.cs | 1 + .../Generated/Replicate.OneOf.2.g.cs | 74 + .../Generated/Replicate.OptionsSupport.g.cs | 937 ++++++++++ .../Generated/Replicate.PathBuilder.g.cs | 5 + .../Replicate.ReplicateClient.AccountGet.g.cs | 437 ++++- ...ReplicateClient.Authorizations.Bearer.g.cs | 1 + ...licate.ReplicateClient.CollectionsGet.g.cs | 442 ++++- ...icate.ReplicateClient.CollectionsList.g.cs | 441 ++++- ...e.ReplicateClient.Constructors.Bearer.g.cs | 1 + ...ate.ReplicateClient.DeploymentsCreate.g.cs | 485 +++-- ...ate.ReplicateClient.DeploymentsDelete.g.cs | 407 ++++- ...licate.ReplicateClient.DeploymentsGet.g.cs | 463 ++++- ...icate.ReplicateClient.DeploymentsList.g.cs | 459 ++++- ...teClient.DeploymentsPredictionsCreate.g.cs | 478 +++-- ...ate.ReplicateClient.DeploymentsUpdate.g.cs | 489 +++-- ...Replicate.ReplicateClient.FilesCreate.g.cs | 1607 +++++++++++++++-- ...Replicate.ReplicateClient.FilesDelete.g.cs | 461 +++-- ...plicate.ReplicateClient.FilesDownload.g.cs | 850 +++++++-- .../Replicate.ReplicateClient.FilesGet.g.cs | 491 +++-- .../Replicate.ReplicateClient.FilesList.g.cs | 429 ++++- ...eplicate.ReplicateClient.HardwareList.g.cs | 436 ++++- ...eplicate.ReplicateClient.ModelsCreate.g.cs | 470 +++-- ...eplicate.ReplicateClient.ModelsDelete.g.cs | 409 ++++- ...te.ReplicateClient.ModelsExamplesList.g.cs | 450 ++++- .../Replicate.ReplicateClient.ModelsGet.g.cs | 487 ++++- .../Replicate.ReplicateClient.ModelsList.g.cs | 464 +++-- ...plicateClient.ModelsPredictionsCreate.g.cs | 479 +++-- ...icate.ReplicateClient.ModelsReadmeGet.g.cs | 485 +++-- ...eplicate.ReplicateClient.ModelsUpdate.g.cs | 477 +++-- ....ReplicateClient.ModelsVersionsDelete.g.cs | 417 ++++- ...ate.ReplicateClient.ModelsVersionsGet.g.cs | 478 ++++- ...te.ReplicateClient.ModelsVersionsList.g.cs | 452 ++++- ...ate.ReplicateClient.PredictionsCancel.g.cs | 446 ++++- ...ate.ReplicateClient.PredictionsCreate.g.cs | 468 +++-- ...licate.ReplicateClient.PredictionsGet.g.cs | 474 ++++- ...icate.ReplicateClient.PredictionsList.g.cs | 498 +++-- .../Replicate.ReplicateClient.Search.g.cs | 576 ++++-- ...icate.ReplicateClient.TrainingsCancel.g.cs | 426 ++++- ...icate.ReplicateClient.TrainingsCreate.g.cs | 500 +++-- ...eplicate.ReplicateClient.TrainingsGet.g.cs | 471 ++++- ...plicate.ReplicateClient.TrainingsList.g.cs | 469 ++++- ...licateClient.WebhooksDefaultSecretGet.g.cs | 434 ++++- .../Generated/Replicate.ReplicateClient.g.cs | 50 + .../Generated/Replicate.ResponseStream.g.cs | 117 ++ .../Generated/Replicate.Security.g.cs | 15 +- .../Generated/autosdk.generated-examples.json | 15 + 143 files changed, 17358 insertions(+), 3766 deletions(-) create mode 100644 src/libs/Replicate/Generated/Replicate.AutoSDKHttpResponse.g.cs create mode 100644 src/libs/Replicate/Generated/Replicate.OptionsSupport.g.cs create mode 100644 src/libs/Replicate/Generated/Replicate.ResponseStream.g.cs create mode 100644 src/libs/Replicate/Generated/autosdk.generated-examples.json diff --git a/src/libs/Replicate/Generated/Replicate.AutoSDKHttpResponse.g.cs b/src/libs/Replicate/Generated/Replicate.AutoSDKHttpResponse.g.cs new file mode 100644 index 0000000..79f0fa4 --- /dev/null +++ b/src/libs/Replicate/Generated/Replicate.AutoSDKHttpResponse.g.cs @@ -0,0 +1,121 @@ + +#nullable enable + +namespace Replicate +{ + /// + /// Represents a successful HTTP response with status code and headers. + /// + public partial class AutoSDKHttpResponse + { + /// + /// Initializes a new instance of the class. + /// + public AutoSDKHttpResponse( + global::System.Net.HttpStatusCode statusCode, + global::System.Collections.Generic.Dictionary> headers) + : this( + statusCode: statusCode, + headers: headers, + requestUri: null) + { + } + + /// + /// Initializes a new instance of the class. + /// + public AutoSDKHttpResponse( + global::System.Net.HttpStatusCode statusCode, + global::System.Collections.Generic.Dictionary> headers, + global::System.Uri? requestUri) + { + StatusCode = statusCode; + Headers = headers ?? throw new global::System.ArgumentNullException(nameof(headers)); + RequestUri = requestUri; + } + + /// + /// Gets the HTTP status code. + /// + public global::System.Net.HttpStatusCode StatusCode { get; } + /// + /// Gets the response headers. + /// + public global::System.Collections.Generic.Dictionary> Headers { get; } + /// + /// Gets the final request URI associated with the response. + /// + public global::System.Uri? RequestUri { get; } + + internal static global::System.Collections.Generic.Dictionary> CreateHeaders( + global::System.Net.Http.HttpResponseMessage response) + { + response = response ?? throw new global::System.ArgumentNullException(nameof(response)); + + var headers = global::System.Linq.Enumerable.ToDictionary( + response.Headers, + static header => header.Key, + static header => (global::System.Collections.Generic.IEnumerable)global::System.Linq.Enumerable.ToArray(header.Value), + global::System.StringComparer.OrdinalIgnoreCase); + + if (response.Content?.Headers == null) + { + return headers; + } + + foreach (var header in response.Content.Headers) + { + if (headers.TryGetValue(header.Key, out var existingValues)) + { + headers[header.Key] = global::System.Linq.Enumerable.ToArray( + global::System.Linq.Enumerable.Concat(existingValues, header.Value)); + } + else + { + headers[header.Key] = global::System.Linq.Enumerable.ToArray(header.Value); + } + } + + return headers; + } + } + + /// + /// Represents a successful HTTP response with status code, headers, and body. + /// + public partial class AutoSDKHttpResponse : AutoSDKHttpResponse + { + /// + /// Initializes a new instance of the class. + /// + public AutoSDKHttpResponse( + global::System.Net.HttpStatusCode statusCode, + global::System.Collections.Generic.Dictionary> headers, + T body) + : this( + statusCode: statusCode, + headers: headers, + requestUri: null, + body: body) + { + } + + /// + /// Initializes a new instance of the class. + /// + public AutoSDKHttpResponse( + global::System.Net.HttpStatusCode statusCode, + global::System.Collections.Generic.Dictionary> headers, + global::System.Uri? requestUri, + T body) + : base(statusCode, headers, requestUri) + { + Body = body; + } + + /// + /// Gets the response body. + /// + public T Body { get; } + } +} \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.AccountGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.AccountGet.g.cs index a113ba1..cd34f8a 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.AccountGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.AccountGet.g.cs @@ -23,9 +23,36 @@ public partial interface IReplicateClient /// }
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task AccountGetAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get the authenticated account
+ /// Returns information about the user or organization associated with the provided API token.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/account
+ /// ```
+ /// The response will be a JSON object describing the account:
+ /// ```json
+ /// {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "github_url": "https://github.com/acme",
+ /// }
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> AccountGetAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.CollectionsGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.CollectionsGet.g.cs index 0c8e970..7f7844e 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.CollectionsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.CollectionsGet.g.cs @@ -24,10 +24,39 @@ public partial interface IReplicateClient /// ``` /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task CollectionsGetAsync( string collectionSlug, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get a collection of models
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/collections/super-resolution
+ /// ```
+ /// The response will be a collection object with a nested list of the models in that collection:
+ /// ```json
+ /// {
+ /// "name": "Super resolution",
+ /// "slug": "super-resolution",
+ /// "description": "Upscaling models that create high-quality images from low-quality images.",
+ /// "full_description": "## Overview\n\nThese models generate high-quality images from low-quality images. Many of these models are based on **advanced upscaling techniques**.\n\n### Key Features\n\n- Enhance image resolution\n- Restore fine details\n- Improve overall image quality",
+ /// "models": [...]
+ /// }
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> CollectionsGetAsResponseAsync( + string collectionSlug, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.CollectionsList.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.CollectionsList.g.cs index 63c8672..0b0867a 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.CollectionsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.CollectionsList.g.cs @@ -27,9 +27,40 @@ public partial interface IReplicateClient /// }
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task CollectionsListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// List collections of models
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/collections
+ /// ```
+ /// The response will be a paginated JSON list of collection objects:
+ /// ```json
+ /// {
+ /// "next": "null",
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "name": "Super resolution",
+ /// "slug": "super-resolution",
+ /// "description": "Upscaling models that create high-quality images from low-quality images."
+ /// }
+ /// ]
+ /// }
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> CollectionsListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsCreate.g.cs index 4f4b2cf..a8d6616 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsCreate.g.cs @@ -50,11 +50,67 @@ public partial interface IReplicateClient /// ``` /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task DeploymentsCreateAsync( global::Replicate.DeploymentsCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Create a deployment
+ /// Create a new deployment:
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -X POST \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H "Content-Type: application/json" \
+ /// -d '{
+ /// "name": "my-app-image-generator",
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 0,
+ /// "max_instances": 3
+ /// }' \
+ /// https://api.replicate.com/v1/deployments
+ /// ```
+ /// The response will be a JSON object describing the deployment:
+ /// ```json
+ /// {
+ /// "owner": "acme",
+ /// "name": "my-app-image-generator",
+ /// "current_release": {
+ /// "number": 1,
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "created_at": "2024-02-15T16:32:57.018467Z",
+ /// "created_by": {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "avatar_url": "https://cdn.replicate.com/avatars/acme.png",
+ /// "github_url": "https://github.com/acme"
+ /// },
+ /// "configuration": {
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 1,
+ /// "max_instances": 5
+ /// }
+ /// }
+ /// }
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> DeploymentsCreateAsResponseAsync( + + global::Replicate.DeploymentsCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); /// /// Create a deployment
@@ -119,6 +175,7 @@ public partial interface IReplicateClient /// /// The 64-character string ID of the model version that you want to deploy. /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task DeploymentsCreateAsync( @@ -128,6 +185,7 @@ public partial interface IReplicateClient string model, string name, string version, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsDelete.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsDelete.g.cs index 2742b5e..9f7b7e3 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsDelete.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsDelete.g.cs @@ -19,11 +19,36 @@ public partial interface IReplicateClient ///
/// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task DeploymentsDeleteAsync( string deploymentOwner, string deploymentName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Delete a deployment
+ /// Delete a deployment
+ /// Deployment deletion has some restrictions:
+ /// - You can only delete deployments that have been offline and unused for at least 15 minutes.
+ /// Example cURL request:
+ /// ```command
+ /// curl -s -X DELETE \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/deployments/acme/my-app-image-generator
+ /// ```
+ /// The response will be an empty 204, indicating the deployment has been deleted. + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task DeploymentsDeleteAsResponseAsync( + string deploymentOwner, + string deploymentName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsGet.g.cs index 4a141ae..f9ca08f 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsGet.g.cs @@ -41,11 +41,58 @@ public partial interface IReplicateClient /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task DeploymentsGetAsync( string deploymentOwner, string deploymentName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get a deployment
+ /// Get information about a deployment by name including the current release.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/deployments/replicate/my-app-image-generator
+ /// ```
+ /// The response will be a JSON object describing the deployment:
+ /// ```json
+ /// {
+ /// "owner": "acme",
+ /// "name": "my-app-image-generator",
+ /// "current_release": {
+ /// "number": 1,
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "created_at": "2024-02-15T16:32:57.018467Z",
+ /// "created_by": {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "avatar_url": "https://cdn.replicate.com/avatars/acme.png",
+ /// "github_url": "https://github.com/acme"
+ /// },
+ /// "configuration": {
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 1,
+ /// "max_instances": 5
+ /// }
+ /// }
+ /// }
+ /// ``` + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> DeploymentsGetAsResponseAsync( + string deploymentOwner, + string deploymentName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsList.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsList.g.cs index 1bccf60..ccc8fa3 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsList.g.cs @@ -45,9 +45,58 @@ public partial interface IReplicateClient /// }
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task DeploymentsListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// List deployments
+ /// Get a list of deployments associated with the current account, including the latest release configuration for each deployment.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/deployments
+ /// ```
+ /// The response will be a paginated JSON array of deployment objects, sorted with the most recent deployment first:
+ /// ```json
+ /// {
+ /// "next": "http://api.replicate.com/v1/deployments?cursor=cD0yMDIzLTA2LTA2KzIzJTNBNDAlM0EwOC45NjMwMDAlMkIwMCUzQTAw",
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "owner": "replicate",
+ /// "name": "my-app-image-generator",
+ /// "current_release": {
+ /// "number": 1,
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "created_at": "2024-02-15T16:32:57.018467Z",
+ /// "created_by": {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "avatar_url": "https://cdn.replicate.com/avatars/acme.png",
+ /// "github_url": "https://github.com/acme"
+ /// },
+ /// "configuration": {
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 1,
+ /// "max_instances": 5
+ /// }
+ /// }
+ /// }
+ /// ]
+ /// }
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> DeploymentsListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsPredictionsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsPredictionsCreate.g.cs index 3aa8a4b..c8d81f1 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsPredictionsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsPredictionsCreate.g.cs @@ -27,6 +27,7 @@ public partial interface IReplicateClient /// Example: 5m /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task DeploymentsPredictionsCreateAsync( @@ -36,6 +37,42 @@ public partial interface IReplicateClient global::Replicate.SchemasPredictionRequest request, string? prefer = default, string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Create a prediction using a deployment
+ /// Create a prediction for the deployment and inputs you provide.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST -H 'Prefer: wait' \
+ /// -d '{"input": {"prompt": "A photo of a bear riding a bicycle over the moon"}}' \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// https://api.replicate.com/v1/deployments/acme/my-app-image-generator/predictions
+ /// ```
+ /// The request will wait up to 60 seconds for the model to run. If this time is exceeded the prediction will be returned in a `"starting"` state and need to be retrieved using the `predictions.get` endpoint.
+ /// For a complete overview of the `deployments.predictions.create` API check out our documentation on [creating a prediction](https://replicate.com/docs/topics/predictions/create-a-prediction) which covers a variety of use cases. + ///
+ /// + /// + /// + /// Example: wait=5 + /// + /// + /// Example: 5m + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> DeploymentsPredictionsCreateAsResponseAsync( + string deploymentOwner, + string deploymentName, + + global::Replicate.SchemasPredictionRequest request, + string? prefer = default, + string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); /// /// Create a prediction using a deployment
@@ -100,6 +137,7 @@ public partial interface IReplicateClient /// Requests for event types `output` and `logs` will be sent at most once every 500ms. If you request `start` and `completed` webhooks, then they'll always be sent regardless of throttling.
/// Example: [start, completed] /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task DeploymentsPredictionsCreateAsync( @@ -111,6 +149,7 @@ public partial interface IReplicateClient bool? stream = default, string? webhook = default, global::System.Collections.Generic.IList? webhookEventsFilter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsUpdate.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsUpdate.g.cs index d74f49e..717bac1 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsUpdate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.DeploymentsUpdate.g.cs @@ -46,6 +46,7 @@ public partial interface IReplicateClient /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task DeploymentsUpdateAsync( @@ -53,6 +54,59 @@ public partial interface IReplicateClient string deploymentName, global::Replicate.DeploymentsUpdateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Update a deployment
+ /// Update properties of an existing deployment, including hardware, min/max instances, and the deployment's underlying model [version](https://replicate.com/docs/how-does-replicate-work#versions).
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -X PATCH \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H "Content-Type: application/json" \
+ /// -d '{"min_instances": 3, "max_instances": 10}' \
+ /// https://api.replicate.com/v1/deployments/acme/my-app-image-generator
+ /// ```
+ /// The response will be a JSON object describing the deployment:
+ /// ```json
+ /// {
+ /// "owner": "acme",
+ /// "name": "my-app-image-generator",
+ /// "current_release": {
+ /// "number": 2,
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "created_at": "2024-02-15T16:32:57.018467Z",
+ /// "created_by": {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "avatar_url": "https://cdn.replicate.com/avatars/acme.png",
+ /// "github_url": "https://github.com/acme"
+ /// },
+ /// "configuration": {
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 3,
+ /// "max_instances": 10
+ /// }
+ /// }
+ /// }
+ /// ```
+ /// Updating any deployment properties will increment the `number` field of the `current_release`. + ///
+ /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> DeploymentsUpdateAsResponseAsync( + string deploymentOwner, + string deploymentName, + + global::Replicate.DeploymentsUpdateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); /// /// Update a deployment
@@ -107,6 +161,7 @@ public partial interface IReplicateClient /// /// The ID of the model version that you want to deploy /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task DeploymentsUpdateAsync( @@ -116,6 +171,7 @@ public partial interface IReplicateClient int? maxInstances = default, int? minInstances = default, string? version = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesCreate.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesCreate.g.cs index 83bb108..ce06dbb 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesCreate.g.cs @@ -22,11 +22,39 @@ public partial interface IReplicateClient /// - `metadata`: User-provided metadata associated with the file (defaults to `{}`, must be valid JSON) ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task FilesCreateAsync( global::Replicate.FilesCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Create a file
+ /// Create a file by uploading its content and optional metadata.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X POST https://api.replicate.com/v1/files \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: multipart/form-data' \
+ /// -F 'content=@/path/to/archive.zip;type=application/zip;filename=example.zip' \
+ /// -F 'metadata={"customer_reference_id": 123};type=application/json'
+ /// ```
+ /// The request must include:
+ /// - `content`: The file content (required)
+ /// - `type`: The content / MIME type for the file (defaults to `application/octet-stream`)
+ /// - `filename`: The filename (required, ≤ 255 bytes, valid UTF-8)
+ /// - `metadata`: User-provided metadata associated with the file (defaults to `{}`, must be valid JSON) + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> FilesCreateAsResponseAsync( + + global::Replicate.FilesCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); /// /// Create a file
@@ -62,6 +90,7 @@ public partial interface IReplicateClient /// The content / MIME type for the file
/// Default Value: application/octet-stream /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task FilesCreateAsync( @@ -70,6 +99,98 @@ public partial interface IReplicateClient string? filename = default, object? metadata = default, string? type = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + + /// + /// Create a file
+ /// Create a file by uploading its content and optional metadata.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X POST https://api.replicate.com/v1/files \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: multipart/form-data' \
+ /// -F 'content=@/path/to/archive.zip;type=application/zip;filename=example.zip' \
+ /// -F 'metadata={"customer_reference_id": 123};type=application/json'
+ /// ```
+ /// The request must include:
+ /// - `content`: The file content (required)
+ /// - `type`: The content / MIME type for the file (defaults to `application/octet-stream`)
+ /// - `filename`: The filename (required, ≤ 255 bytes, valid UTF-8)
+ /// - `metadata`: User-provided metadata associated with the file (defaults to `{}`, must be valid JSON) + ///
+ /// + /// The file content + /// + /// + /// The file content + /// + /// + /// The filename + /// + /// + /// User-provided metadata associated with the file
+ /// Default Value: {} + /// + /// + /// The content / MIME type for the file
+ /// Default Value: application/octet-stream + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task FilesCreateAsync( + global::System.IO.Stream content, + string contentname, + string? filename = default, + object? metadata = default, + string? type = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Create a file
+ /// Create a file by uploading its content and optional metadata.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X POST https://api.replicate.com/v1/files \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: multipart/form-data' \
+ /// -F 'content=@/path/to/archive.zip;type=application/zip;filename=example.zip' \
+ /// -F 'metadata={"customer_reference_id": 123};type=application/json'
+ /// ```
+ /// The request must include:
+ /// - `content`: The file content (required)
+ /// - `type`: The content / MIME type for the file (defaults to `application/octet-stream`)
+ /// - `filename`: The filename (required, ≤ 255 bytes, valid UTF-8)
+ /// - `metadata`: User-provided metadata associated with the file (defaults to `{}`, must be valid JSON) + ///
+ /// + /// The file content + /// + /// + /// The file content + /// + /// + /// The filename + /// + /// + /// User-provided metadata associated with the file
+ /// Default Value: {} + /// + /// + /// The content / MIME type for the file
+ /// Default Value: application/octet-stream + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> FilesCreateAsResponseAsync( + global::System.IO.Stream content, + string contentname, + string? filename = default, + object? metadata = default, + string? type = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesDelete.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesDelete.g.cs index 83cd4c1..ca1815b 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesDelete.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesDelete.g.cs @@ -15,10 +15,30 @@ public partial interface IReplicateClient /// ``` ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task FilesDeleteAsync( string fileId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Delete a file
+ /// Delete a file. Once a file has been deleted, subsequent requests to the file resource return 404 Not found.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X DELETE \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/files/cneqzikepnug6xezperrr4z55o
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task FilesDeleteAsResponseAsync( + string fileId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesDownload.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesDownload.g.cs index c9129ec..97b4b5a 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesDownload.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesDownload.g.cs @@ -16,6 +16,7 @@ public partial interface IReplicateClient /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task FilesDownloadAsync( @@ -23,6 +24,51 @@ public partial interface IReplicateClient string owner, long expiry, string signature, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Download a file
+ /// Download a file by providing the file owner, access expiry, and a valid signature.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X GET "https://api.replicate.com/v1/files/cneqzikepnug6xezperrr4z55o/download?expiry=1708515345&owner=mattt&signature=zuoghqlrcnw8YHywkpaXQlHsVhWen%2FDZ4aal76dLiOo%3D"
+ /// ``` + ///
+ /// + /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task FilesDownloadAsStreamAsync( + string fileId, + string owner, + long expiry, + string signature, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Download a file
+ /// Download a file by providing the file owner, access expiry, and a valid signature.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X GET "https://api.replicate.com/v1/files/cneqzikepnug6xezperrr4z55o/download?expiry=1708515345&owner=mattt&signature=zuoghqlrcnw8YHywkpaXQlHsVhWen%2FDZ4aal76dLiOo%3D"
+ /// ``` + ///
+ /// + /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> FilesDownloadAsResponseAsync( + string fileId, + string owner, + long expiry, + string signature, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesGet.g.cs index 38fc250..247c968 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesGet.g.cs @@ -15,10 +15,30 @@ public partial interface IReplicateClient /// ``` ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task FilesGetAsync( string fileId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get a file
+ /// Get the details of a file.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/files/cneqzikepnug6xezperrr4z55o
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> FilesGetAsResponseAsync( + string fileId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesList.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesList.g.cs index 311aac9..bc4cf19 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.FilesList.g.cs @@ -15,9 +15,28 @@ public partial interface IReplicateClient /// ```
/// The response will be a paginated JSON array of file objects, sorted with the most recent file first. /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task FilesListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// List files
+ /// Get a paginated list of all files created by the user or organization associated with the provided API token.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/files
+ /// ```
+ /// The response will be a paginated JSON array of file objects, sorted with the most recent file first. + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> FilesListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.HardwareList.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.HardwareList.g.cs index 789e514..0467e76 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.HardwareList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.HardwareList.g.cs @@ -22,9 +22,35 @@ public partial interface IReplicateClient /// ]
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task> HardwareListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// List available hardware for models
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/hardware
+ /// ```
+ /// The response will be a JSON array of hardware objects:
+ /// ```json
+ /// [
+ /// {"name": "CPU", "sku": "cpu"},
+ /// {"name": "Nvidia T4 GPU", "sku": "gpu-t4"},
+ /// {"name": "Nvidia A40 GPU", "sku": "gpu-a40-small"},
+ /// {"name": "Nvidia A40 (Large) GPU", "sku": "gpu-a40-large"},
+ /// ]
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task>> HardwareListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsCreate.g.cs index 5ef3df3..469f7e9 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsCreate.g.cs @@ -35,11 +35,52 @@ public partial interface IReplicateClient /// Note that there is a limit of 1,000 models per account. For most purposes, we recommend using a single model and pushing new [versions](https://replicate.com/docs/how-does-replicate-work#versions) of the model as you make changes to it. /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsCreateAsync( global::Replicate.ModelsCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Create a model
+ /// Create a model.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// -d '{"owner": "alice", "name": "hot-dog-detector", "description": "Detect hot dogs in images", "visibility": "public", "hardware": "cpu"}' \
+ /// https://api.replicate.com/v1/models
+ /// ```
+ /// The response will be a model object in the following format:
+ /// ```json
+ /// {
+ /// "url": "https://replicate.com/alice/hot-dog-detector",
+ /// "owner": "alice",
+ /// "name": "hot-dog-detector",
+ /// "description": "Detect hot dogs in images",
+ /// "visibility": "public",
+ /// "github_url": null,
+ /// "paper_url": null,
+ /// "license_url": null,
+ /// "run_count": 0,
+ /// "cover_image_url": null,
+ /// "default_example": null,
+ /// "latest_version": null,
+ /// }
+ /// ```
+ /// Note that there is a limit of 1,000 models per account. For most purposes, we recommend using a single model and pushing new [versions](https://replicate.com/docs/how-does-replicate-work#versions) of the model as you make changes to it. + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> ModelsCreateAsResponseAsync( + + global::Replicate.ModelsCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); /// /// Create a model
@@ -105,6 +146,7 @@ public partial interface IReplicateClient /// Whether the model should be public or private. A public model can be viewed and run by anyone, whereas a private model can be viewed and run only by the user or organization members that own the model.
/// Example: public /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsCreateAsync( @@ -117,6 +159,7 @@ public partial interface IReplicateClient string? githubUrl = default, string? licenseUrl = default, string? paperUrl = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsDelete.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsDelete.g.cs index ace72c4..c238dfc 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsDelete.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsDelete.g.cs @@ -21,11 +21,38 @@ public partial interface IReplicateClient ///
/// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsDeleteAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Delete a model
+ /// Delete a model
+ /// Model deletion has some restrictions:
+ /// - You can only delete models you own.
+ /// - You can only delete private models.
+ /// - You can only delete models that have no versions associated with them. Currently you'll need to [delete the model's versions](#models.versions.delete) before you can delete the model itself.
+ /// Example cURL request:
+ /// ```command
+ /// curl -s -X DELETE \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world
+ /// ```
+ /// The response will be an empty 204, indicating the model has been deleted. + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task ModelsDeleteAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsExamplesList.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsExamplesList.g.cs index 9e7cc85..0b29c19 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsExamplesList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsExamplesList.g.cs @@ -28,11 +28,45 @@ public partial interface IReplicateClient /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsExamplesListAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// List examples for a model
+ /// List [example predictions](https://replicate.com/docs/topics/models/publish-a-model#what-are-examples) made using the model.
+ /// These are predictions that were saved by the model author as illustrative examples of the model's capabilities.
+ /// If you want all the examples for a model, use this operation.
+ /// If you just want the model's default example, you can use the [`models.get`](#models.get) operation instead, which includes a `default_example` object.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/examples
+ /// ```
+ /// The response will be a pagination object containing a list of example predictions:
+ /// ```json
+ /// {
+ /// "next": "https://api.replicate.com/v1/models/replicate/hello-world/examples?cursor=...",
+ /// "previous": "https://api.replicate.com/v1/models/replicate/hello-world/examples?cursor=...",
+ /// "results": [...]
+ /// }
+ /// ```
+ /// Each item in the `results` list is a [prediction object](#predictions.get). + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> ModelsExamplesListAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsGet.g.cs index adb36fa..30e6eb5 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsGet.g.cs @@ -65,11 +65,82 @@ public partial interface IReplicateClient /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsGetAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get a model
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world
+ /// ```
+ /// The response will be a model object in the following format:
+ /// ```json
+ /// {
+ /// "url": "https://replicate.com/replicate/hello-world",
+ /// "owner": "replicate",
+ /// "name": "hello-world",
+ /// "description": "A tiny model that says hello",
+ /// "visibility": "public",
+ /// "github_url": "https://github.com/replicate/cog-examples",
+ /// "paper_url": null,
+ /// "license_url": null,
+ /// "run_count": 5681081,
+ /// "cover_image_url": "...",
+ /// "default_example": {...},
+ /// "latest_version": {...},
+ /// }
+ /// ```
+ /// The model object includes the [input and output schema](https://replicate.com/docs/reference/openapi#model-schemas) for the latest version of the model.
+ /// Here's an example showing how to fetch the model with cURL and display its input schema with [jq](https://stedolan.github.io/jq/):
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world \
+ /// | jq ".latest_version.openapi_schema.components.schemas.Input"
+ /// ```
+ /// This will return the following JSON object:
+ /// ```json
+ /// {
+ /// "type": "object",
+ /// "title": "Input",
+ /// "required": [
+ /// "text"
+ /// ],
+ /// "properties": {
+ /// "text": {
+ /// "type": "string",
+ /// "title": "Text",
+ /// "x-order": 0,
+ /// "description": "Text to prefix with 'hello '"
+ /// }
+ /// }
+ /// }
+ /// ```
+ /// The `cover_image_url` string is an HTTPS URL for an image file. This can be:
+ /// - An image uploaded by the model author.
+ /// - The output file of the example prediction, if the model author has not set a cover image.
+ /// - The input file of the example prediction, if the model author has not set a cover image and the example prediction has no output file.
+ /// - A generic fallback image.
+ /// The `default_example` object is a [prediction](#predictions.get) created with this model.
+ /// The `latest_version` object is the model's most recently pushed [version](#models.versions.get). + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> ModelsGetAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsList.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsList.g.cs index 01a4aea..2559545 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsList.g.cs @@ -34,11 +34,51 @@ public partial interface IReplicateClient /// /// Default Value: desc /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsListAsync( global::Replicate.ModelsListSortBy? sortBy = default, global::Replicate.ModelsListSortDirection? sortDirection = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// List public models
+ /// Get a paginated list of public models.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models
+ /// ```
+ /// The response will be a pagination object containing a list of model objects.
+ /// See the [`models.get`](#models.get) docs for more details about the model object.
+ /// ## Sorting
+ /// You can sort the results using the `sort_by` and `sort_direction` query parameters.
+ /// For example, to get the most recently created models:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// "https://api.replicate.com/v1/models?sort_by=model_created_at&sort_direction=desc"
+ /// ```
+ /// Available sorting options:
+ /// - `model_created_at`: Sort by when the model was first created
+ /// - `latest_version_created_at`: Sort by when the model's latest version was created (default)
+ /// Sort direction can be `asc` (ascending) or `desc` (descending, default). + ///
+ /// + /// Default Value: latest_version_created_at + /// + /// + /// Default Value: desc + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> ModelsListAsResponseAsync( + global::Replicate.ModelsListSortBy? sortBy = default, + global::Replicate.ModelsListSortDirection? sortDirection = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsPredictionsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsPredictionsCreate.g.cs index 8d727b8..60b361e 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsPredictionsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsPredictionsCreate.g.cs @@ -28,6 +28,7 @@ public partial interface IReplicateClient /// Example: 5m /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsPredictionsCreateAsync( @@ -37,6 +38,43 @@ public partial interface IReplicateClient global::Replicate.SchemasPredictionRequest request, string? prefer = default, string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Create a prediction using an official model
+ /// Create a prediction using an [official model](https://replicate.com/changelog/2025-01-29-official-models).
+ /// If you're _not_ running an official model, use the [`predictions.create`](#predictions.create) operation instead.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST -H 'Prefer: wait' \
+ /// -d '{"input": {"prompt": "Write a short poem about the weather."}}' \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// https://api.replicate.com/v1/models/meta/meta-llama-3-70b-instruct/predictions
+ /// ```
+ /// The request will wait up to 60 seconds for the model to run. If this time is exceeded the prediction will be returned in a `"starting"` state and need to be retrieved using the `predictions.get` endpoint.
+ /// For a complete overview of the `deployments.predictions.create` API check out our documentation on [creating a prediction](https://replicate.com/docs/topics/predictions/create-a-prediction) which covers a variety of use cases. + ///
+ /// + /// + /// + /// Example: wait=5 + /// + /// + /// Example: 5m + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> ModelsPredictionsCreateAsResponseAsync( + string modelOwner, + string modelName, + + global::Replicate.SchemasPredictionRequest request, + string? prefer = default, + string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); /// /// Create a prediction using an official model
@@ -102,6 +140,7 @@ public partial interface IReplicateClient /// Requests for event types `output` and `logs` will be sent at most once every 500ms. If you request `start` and `completed` webhooks, then they'll always be sent regardless of throttling.
/// Example: [start, completed] /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsPredictionsCreateAsync( @@ -113,6 +152,7 @@ public partial interface IReplicateClient bool? stream = default, string? webhook = default, global::System.Collections.Generic.IList? webhookEventsFilter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsReadmeGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsReadmeGet.g.cs index a188aee..fe4cb2c 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsReadmeGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsReadmeGet.g.cs @@ -21,11 +21,38 @@ public partial interface IReplicateClient ///
/// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsReadmeGetAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get a model's README
+ /// Get the README content for a model.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/readme
+ /// ```
+ /// The response will be the README content as plain text in Markdown format:
+ /// ```
+ /// # Hello World Model
+ /// This is an example model that...
+ /// ``` + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> ModelsReadmeGetAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsUpdate.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsUpdate.g.cs index 9fd5993..ce0a5d7 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsUpdate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsUpdate.g.cs @@ -34,6 +34,7 @@ public partial interface IReplicateClient /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsUpdateAsync( @@ -41,6 +42,47 @@ public partial interface IReplicateClient string modelName, global::Replicate.ModelsUpdateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Update metadata for a model
+ /// Update select properties of an existing model.
+ /// You can update the following properties:
+ /// - `description` - Model description
+ /// - `readme` - Model README content
+ /// - `github_url` - GitHub repository URL
+ /// - `paper_url` - Research paper URL
+ /// - `weights_url` - Model weights URL
+ /// - `license_url` - License URL
+ /// Example cURL request:
+ /// ```console
+ /// curl -X PATCH \
+ /// https://api.replicate.com/v1/models/your-username/your-model-name \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// -H "Content-Type: application/json" \
+ /// -d '{
+ /// "description": "Detect hot dogs in images",
+ /// "readme": "# Hot Dog Detector\n\n🌭 Ketchup, mustard, and onions...",
+ /// "github_url": "https://github.com/alice/hot-dog-detector",
+ /// "paper_url": "https://arxiv.org/abs/2504.17639",
+ /// "weights_url": "https://huggingface.co/alice/hot-dog-detector",
+ /// "license_url": "https://choosealicense.com/licenses/mit/"
+ /// }'
+ /// ```
+ /// The response will be the updated model object with all of its properties. + ///
+ /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> ModelsUpdateAsResponseAsync( + string modelOwner, + string modelName, + + global::Replicate.ModelsUpdateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); /// /// Update metadata for a model
@@ -95,6 +137,7 @@ public partial interface IReplicateClient /// A URL for the model's weights.
/// Example: https://huggingface.co/alice/hot-dog-detector /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsUpdateAsync( @@ -106,6 +149,7 @@ public partial interface IReplicateClient string? paperUrl = default, string? readme = default, string? weightsUrl = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsDelete.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsDelete.g.cs index 999376f..dd85851 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsDelete.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsDelete.g.cs @@ -25,12 +25,44 @@ public partial interface IReplicateClient /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsVersionsDeleteAsync( string modelOwner, string modelName, string versionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Delete a model version
+ /// Delete a model version and all associated predictions, including all output files.
+ /// Model version deletion has some restrictions:
+ /// - You can only delete versions from models you own.
+ /// - You can only delete versions from private models.
+ /// - You cannot delete a version if someone other than you has run predictions with it.
+ /// - You cannot delete a version if it is being used as the base model for a fine tune/training.
+ /// - You cannot delete a version if it has an associated deployment.
+ /// - You cannot delete a version if another model version is overridden to use it.
+ /// Example cURL request:
+ /// ```command
+ /// curl -s -X DELETE \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/versions/5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa
+ /// ```
+ /// The response will be an empty 202, indicating the deletion request has been accepted. It might take a few minutes to be processed. + ///
+ /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task ModelsVersionsDeleteAsResponseAsync( + string modelOwner, + string modelName, + string versionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsGet.g.cs index 284c5bb..d07681d 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsGet.g.cs @@ -52,12 +52,71 @@ public partial interface IReplicateClient /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsVersionsGetAsync( string modelOwner, string modelName, string versionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get a model version
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/versions/5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa
+ /// ```
+ /// The response will be the version object:
+ /// ```json
+ /// {
+ /// "id": "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa",
+ /// "created_at": "2022-04-26T19:29:04.418669Z",
+ /// "cog_version": "0.3.0",
+ /// "openapi_schema": {...}
+ /// }
+ /// ```
+ /// Every model describes its inputs and outputs with [OpenAPI Schema Objects](https://spec.openapis.org/oas/latest.html#schemaObject) in the `openapi_schema` property.
+ /// The `openapi_schema.components.schemas.Input` property for the [replicate/hello-world](https://replicate.com/replicate/hello-world) model looks like this:
+ /// ```json
+ /// {
+ /// "type": "object",
+ /// "title": "Input",
+ /// "required": [
+ /// "text"
+ /// ],
+ /// "properties": {
+ /// "text": {
+ /// "x-order": 0,
+ /// "type": "string",
+ /// "title": "Text",
+ /// "description": "Text to prefix with 'hello '"
+ /// }
+ /// }
+ /// }
+ /// ```
+ /// The `openapi_schema.components.schemas.Output` property for the [replicate/hello-world](https://replicate.com/replicate/hello-world) model looks like this:
+ /// ```json
+ /// {
+ /// "type": "string",
+ /// "title": "Output"
+ /// }
+ /// ```
+ /// For more details, see the docs on [Cog's supported input and output types](https://github.com/replicate/cog/blob/75b7802219e7cd4cee845e34c4c22139558615d4/docs/python.md#input-and-output-types) + ///
+ /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> ModelsVersionsGetAsResponseAsync( + string modelOwner, + string modelName, + string versionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsList.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsList.g.cs index bc83ca5..7e5df99 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.ModelsVersionsList.g.cs @@ -30,11 +30,47 @@ public partial interface IReplicateClient ///
/// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task ModelsVersionsListAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// List model versions
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/versions
+ /// ```
+ /// The response will be a JSON array of model version objects, sorted with the most recent version first:
+ /// ```json
+ /// {
+ /// "next": null,
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "id": "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa",
+ /// "created_at": "2022-04-26T19:29:04.418669Z",
+ /// "cog_version": "0.3.0",
+ /// "openapi_schema": {...}
+ /// }
+ /// ]
+ /// }
+ /// ``` + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> ModelsVersionsListAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsCancel.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsCancel.g.cs index da8af9c..895021d 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsCancel.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsCancel.g.cs @@ -28,10 +28,43 @@ public partial interface IReplicateClient /// ``` /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task PredictionsCancelAsync( string predictionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Cancel a prediction
+ /// Cancel a prediction that is currently running.
+ /// Example cURL request that creates a prediction and then cancels it:
+ /// ```console
+ /// # First, create a prediction
+ /// PREDICTION_ID=$(curl -s -X POST \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H "Content-Type: application/json" \
+ /// -d '{
+ /// "input": {
+ /// "prompt": "a video that may take a while to generate"
+ /// }
+ /// }' \
+ /// https://api.replicate.com/v1/models/minimax/video-01/predictions | jq -r '.id')
+ /// # Echo the prediction ID
+ /// echo "Created prediction with ID: $PREDICTION_ID"
+ /// # Cancel the prediction
+ /// curl -s -X POST \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/predictions/$PREDICTION_ID/cancel
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> PredictionsCancelAsResponseAsync( + string predictionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsCreate.g.cs index 4a7a0ac..0d904ba 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsCreate.g.cs @@ -25,6 +25,7 @@ public partial interface IReplicateClient /// Example: 5m /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task PredictionsCreateAsync( @@ -32,6 +33,38 @@ public partial interface IReplicateClient global::Replicate.SchemasVersionPredictionRequest request, string? prefer = default, string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Create a prediction
+ /// Create a prediction for the model version and inputs you provide.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST -H 'Prefer: wait' \
+ /// -d '{"version": "replicate/hello-world:5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa", "input": {"text": "Alice"}}' \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// https://api.replicate.com/v1/predictions
+ /// ```
+ /// The request will wait up to 60 seconds for the model to run. If this time is exceeded the prediction will be returned in a `"starting"` state and need to be retrieved using the `predictions.get` endpoint.
+ /// For a complete overview of the `predictions.create` API check out our documentation on [creating a prediction](https://replicate.com/docs/topics/predictions/create-a-prediction) which covers a variety of use cases. + ///
+ /// + /// Example: wait=5 + /// + /// + /// Example: 5m + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> PredictionsCreateAsResponseAsync( + + global::Replicate.SchemasVersionPredictionRequest request, + string? prefer = default, + string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); /// /// Create a prediction
@@ -102,6 +135,7 @@ public partial interface IReplicateClient /// Requests for event types `output` and `logs` will be sent at most once every 500ms. If you request `start` and `completed` webhooks, then they'll always be sent regardless of throttling.
/// Example: [start, completed] /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task PredictionsCreateAsync( @@ -112,6 +146,7 @@ public partial interface IReplicateClient bool? stream = default, string? webhook = default, global::System.Collections.Generic.IList? webhookEventsFilter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsGet.g.cs index c372c30..519437c 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsGet.g.cs @@ -56,10 +56,71 @@ public partial interface IReplicateClient /// Output files are served by `replicate.delivery` and its subdomains. If you use an allow list of external domains for your assets, add `replicate.delivery` and `*.replicate.delivery` to it. ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task PredictionsGetAsync( string predictionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get a prediction
+ /// Get the current state of a prediction.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu
+ /// ```
+ /// The response will be the prediction object:
+ /// ```json
+ /// {
+ /// "id": "gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "model": "replicate/hello-world",
+ /// "version": "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa",
+ /// "input": {
+ /// "text": "Alice"
+ /// },
+ /// "logs": "",
+ /// "output": "hello Alice",
+ /// "error": null,
+ /// "status": "succeeded",
+ /// "created_at": "2023-09-08T16:19:34.765994Z",
+ /// "source": "api",
+ /// "data_removed": false,
+ /// "started_at": "2023-09-08T16:19:34.779176Z",
+ /// "completed_at": "2023-09-08T16:19:34.791859Z",
+ /// "metrics": {
+ /// "predict_time": 0.012683
+ /// },
+ /// "urls": {
+ /// "web": "https://replicate.com/p/gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "get": "https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "cancel": "https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu/cancel"
+ /// }
+ /// }
+ /// ```
+ /// `source` will indicate how the prediction was created. Possible values are `web` or `api`.
+ /// `status` will be one of:
+ /// - `starting`: the prediction is starting up. If this status lasts longer than a few seconds, then it's typically because a new worker is being started to run the prediction.
+ /// - `processing`: the `predict()` method of the model is currently running.
+ /// - `succeeded`: the prediction completed successfully.
+ /// - `failed`: the prediction encountered an error during processing.
+ /// - `canceled`: the prediction was canceled by its creator.
+ /// In the case of success, `output` will be an object containing the output of the model. Any files will be represented as HTTPS URLs. You'll need to pass the `Authorization` header to request them.
+ /// In the case of failure, `error` will contain the error encountered during the prediction.
+ /// Terminated predictions (with a status of `succeeded`, `failed`, or `canceled`) will include a `metrics` object with a `predict_time` property showing the amount of CPU or GPU time, in seconds, that the prediction used while running. It won't include time waiting for the prediction to start. The `metrics` object will also include a `total_time` property showing the total time, in seconds, that the prediction took to complete.
+ /// All input parameters, output values, and logs are automatically removed after an hour, by default, for predictions created through the API.
+ /// You must save a copy of any data or files in the output if you'd like to continue using them. The `output` key will still be present, but it's value will be `null` after the output has been removed.
+ /// Output files are served by `replicate.delivery` and its subdomains. If you use an allow list of external domains for your assets, add `replicate.delivery` and `*.replicate.delivery` to it. + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> PredictionsGetAsResponseAsync( + string predictionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsList.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsList.g.cs index 26d041f..a506dd2 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.PredictionsList.g.cs @@ -62,12 +62,81 @@ public partial interface IReplicateClient /// Example: 2025-02-01T00:00:00Z /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task PredictionsListAsync( global::System.DateTime? createdAfter = default, global::System.DateTime? createdBefore = default, global::Replicate.PredictionsListSource? source = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// List predictions
+ /// Get a paginated list of all predictions created by the user or organization associated with the provided API token.
+ /// This will include predictions created from the API and the website. It will return 100 records per page.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/predictions
+ /// ```
+ /// The response will be a paginated JSON array of prediction objects, sorted with the most recent prediction first:
+ /// ```json
+ /// {
+ /// "next": null,
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "completed_at": "2023-09-08T16:19:34.791859Z",
+ /// "created_at": "2023-09-08T16:19:34.907244Z",
+ /// "data_removed": false,
+ /// "error": null,
+ /// "id": "gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "input": {
+ /// "text": "Alice"
+ /// },
+ /// "metrics": {
+ /// "predict_time": 0.012683
+ /// },
+ /// "output": "hello Alice",
+ /// "started_at": "2023-09-08T16:19:34.779176Z",
+ /// "source": "api",
+ /// "status": "succeeded",
+ /// "urls": {
+ /// "web": "https://replicate.com/p/gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "get": "https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "cancel": "https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu/cancel"
+ /// },
+ /// "model": "replicate/hello-world",
+ /// "version": "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa",
+ /// }
+ /// ]
+ /// }
+ /// ```
+ /// `id` will be the unique ID of the prediction.
+ /// `source` will indicate how the prediction was created. Possible values are `web` or `api`.
+ /// `status` will be the status of the prediction. Refer to [get a single prediction](#predictions.get) for possible values.
+ /// `urls` will be a convenience object that can be used to construct new API requests for the given prediction. If the requested model version supports streaming, this will have a `stream` entry with an HTTPS URL that you can use to construct an [`EventSource`](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).
+ /// `model` will be the model identifier string in the format of `{model_owner}/{model_name}`.
+ /// `version` will be the unique ID of model version used to create the prediction.
+ /// `data_removed` will be `true` if the input and output data has been deleted. + ///
+ /// + /// Example: 2025-01-01T00:00:00Z + /// + /// + /// Example: 2025-02-01T00:00:00Z + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> PredictionsListAsResponseAsync( + global::System.DateTime? createdAfter = default, + global::System.DateTime? createdBefore = default, + global::Replicate.PredictionsListSource? source = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.Search.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.Search.g.cs index 7ac07d8..41b5765 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.Search.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.Search.g.cs @@ -26,11 +26,43 @@ public partial interface IReplicateClient /// Default Value: 20
/// Example: 10 /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task SearchAsync( string query, int? limit = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Search models, collections, and docs (beta)
+ /// Search for public models, collections, and docs using a text query.
+ /// For models, the response includes all model data, plus a new `metadata` object with the following fields:
+ /// - `generated_description`: A longer and more detailed AI-generated description of the model
+ /// - `tags`: An array of tags for the model
+ /// - `score`: A score for the model's relevance to the search query
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// "https://api.replicate.com/v1/search?query=nano+banana"
+ /// ```
+ /// Note: This search API is currently in beta and may change in future versions. + ///
+ /// + /// Example: nano banana + /// + /// + /// Default Value: 20
+ /// Example: 10 + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> SearchAsResponseAsync( + string query, + int? limit = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsCancel.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsCancel.g.cs index c216f00..b38dc5c 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsCancel.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsCancel.g.cs @@ -8,10 +8,23 @@ public partial interface IReplicateClient /// Cancel a training /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task TrainingsCancelAsync( string trainingId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Cancel a training + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> TrainingsCancelAsResponseAsync( + string trainingId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsCreate.g.cs index e3973c4..6dcad43 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsCreate.g.cs @@ -53,6 +53,7 @@ public partial interface IReplicateClient /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task TrainingsCreateAsync( @@ -61,6 +62,67 @@ public partial interface IReplicateClient string versionId, global::Replicate.SchemasTrainingRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Create a training
+ /// Start a new training of the model version you specify.
+ /// Example request body:
+ /// ```json
+ /// {
+ /// "destination": "{new_owner}/{new_name}",
+ /// "input": {
+ /// "train_data": "https://example.com/my-input-images.zip",
+ /// },
+ /// "webhook": "https://example.com/my-webhook",
+ /// }
+ /// ```
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST \
+ /// -d '{"destination": "{new_owner}/{new_name}", "input": {"input_images": "https://example.com/my-input-images.zip"}}' \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// https://api.replicate.com/v1/models/stability-ai/sdxl/versions/da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf/trainings
+ /// ```
+ /// The response will be the training object:
+ /// ```json
+ /// {
+ /// "id": "zz4ibbonubfz7carwiefibzgga",
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "input": {
+ /// "input_images": "https://example.com/my-input-images.zip"
+ /// },
+ /// "logs": "",
+ /// "error": null,
+ /// "status": "starting",
+ /// "created_at": "2023-09-08T16:32:56.990893084Z",
+ /// "urls": {
+ /// "web": "https://replicate.com/p/zz4ibbonubfz7carwiefibzgga",
+ /// "get": "https://api.replicate.com/v1/predictions/zz4ibbonubfz7carwiefibzgga",
+ /// "cancel": "https://api.replicate.com/v1/predictions/zz4ibbonubfz7carwiefibzgga/cancel"
+ /// }
+ /// }
+ /// ```
+ /// As models can take several minutes or more to train, the result will not be available immediately. To get the final result of the training you should either provide a `webhook` HTTPS URL for us to call when the results are ready, or poll the [get a training](#trainings.get) endpoint until it has finished.
+ /// When a training completes, it creates a new [version](https://replicate.com/docs/how-does-replicate-work#terminology) of the model at the specified destination.
+ /// To find some models to train on, check out the [trainable language models collection](https://replicate.com/collections/trainable-language-models). + ///
+ /// + /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> TrainingsCreateAsResponseAsync( + string modelOwner, + string modelName, + string versionId, + + global::Replicate.SchemasTrainingRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); /// /// Create a training
@@ -138,6 +200,7 @@ public partial interface IReplicateClient /// ```
/// Requests for event types `output` and `logs` will be sent at most once every 500ms. If you request `start` and `completed` webhooks, then they'll always be sent regardless of throttling. /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task TrainingsCreateAsync( @@ -148,6 +211,7 @@ public partial interface IReplicateClient object input, string? webhook = default, global::System.Collections.Generic.IList? webhookEventsFilter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsGet.g.cs index aa69105..926ceaa 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsGet.g.cs @@ -53,10 +53,68 @@ public partial interface IReplicateClient /// Terminated trainings (with a status of `succeeded`, `failed`, or `canceled`) will include a `metrics` object with a `predict_time` property showing the amount of CPU or GPU time, in seconds, that the training used while running. It won't include time waiting for the training to start. The `metrics` object will also include a `total_time` property showing the total time, in seconds, that the training took to complete. ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task TrainingsGetAsync( string trainingId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get a training
+ /// Get the current state of a training.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga
+ /// ```
+ /// The response will be the training object:
+ /// ```json
+ /// {
+ /// "completed_at": "2023-09-08T16:41:19.826523Z",
+ /// "created_at": "2023-09-08T16:32:57.018467Z",
+ /// "error": null,
+ /// "id": "zz4ibbonubfz7carwiefibzgga",
+ /// "input": {
+ /// "input_images": "https://example.com/my-input-images.zip"
+ /// },
+ /// "logs": "...",
+ /// "metrics": {
+ /// "predict_time": 502.713876
+ /// },
+ /// "output": {
+ /// "version": "...",
+ /// "weights": "..."
+ /// },
+ /// "started_at": "2023-09-08T16:32:57.112647Z",
+ /// "status": "succeeded",
+ /// "urls": {
+ /// "web": "https://replicate.com/p/zz4ibbonubfz7carwiefibzgga",
+ /// "get": "https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga",
+ /// "cancel": "https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga/cancel"
+ /// },
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// }
+ /// ```
+ /// `status` will be one of:
+ /// - `starting`: the training is starting up. If this status lasts longer than a few seconds, then it's typically because a new worker is being started to run the training.
+ /// - `processing`: the `train()` method of the model is currently running.
+ /// - `succeeded`: the training completed successfully.
+ /// - `failed`: the training encountered an error during processing.
+ /// - `canceled`: the training was canceled by its creator.
+ /// In the case of success, `output` will be an object containing the output of the model. Any files will be represented as HTTPS URLs. You'll need to pass the `Authorization` header to request them.
+ /// In the case of failure, `error` will contain the error encountered during the training.
+ /// Terminated trainings (with a status of `succeeded`, `failed`, or `canceled`) will include a `metrics` object with a `predict_time` property showing the amount of CPU or GPU time, in seconds, that the training used while running. It won't include time waiting for the training to start. The `metrics` object will also include a `total_time` property showing the total time, in seconds, that the training took to complete. + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> TrainingsGetAsResponseAsync( + string trainingId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsList.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsList.g.cs index 10a51ac..6081ea4 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.TrainingsList.g.cs @@ -55,9 +55,68 @@ public partial interface IReplicateClient /// `urls` will be a convenience object that can be used to construct new API requests for the given training.
/// `version` will be the unique ID of model version used to create the training. /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task TrainingsListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// List trainings
+ /// Get a paginated list of all trainings created by the user or organization associated with the provided API token.
+ /// This will include trainings created from the API and the website. It will return 100 records per page.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/trainings
+ /// ```
+ /// The response will be a paginated JSON array of training objects, sorted with the most recent training first:
+ /// ```json
+ /// {
+ /// "next": null,
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "completed_at": "2023-09-08T16:41:19.826523Z",
+ /// "created_at": "2023-09-08T16:32:57.018467Z",
+ /// "error": null,
+ /// "id": "zz4ibbonubfz7carwiefibzgga",
+ /// "input": {
+ /// "input_images": "https://example.com/my-input-images.zip"
+ /// },
+ /// "metrics": {
+ /// "predict_time": 502.713876
+ /// },
+ /// "output": {
+ /// "version": "...",
+ /// "weights": "..."
+ /// },
+ /// "started_at": "2023-09-08T16:32:57.112647Z",
+ /// "source": "api",
+ /// "status": "succeeded",
+ /// "urls": {
+ /// "web": "https://replicate.com/p/zz4ibbonubfz7carwiefibzgga",
+ /// "get": "https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga",
+ /// "cancel": "https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga/cancel"
+ /// },
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// }
+ /// ]
+ /// }
+ /// ```
+ /// `id` will be the unique ID of the training.
+ /// `source` will indicate how the training was created. Possible values are `web` or `api`.
+ /// `status` will be the status of the training. Refer to [get a single training](#trainings.get) for possible values.
+ /// `urls` will be a convenience object that can be used to construct new API requests for the given training.
+ /// `version` will be the unique ID of model version used to create the training. + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> TrainingsListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.WebhooksDefaultSecretGet.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.WebhooksDefaultSecretGet.g.cs index c3a8383..4c689aa 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.WebhooksDefaultSecretGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.WebhooksDefaultSecretGet.g.cs @@ -20,9 +20,33 @@ public partial interface IReplicateClient /// }
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// global::System.Threading.Tasks.Task WebhooksDefaultSecretGetAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Get the signing secret for the default webhook
+ /// Get the signing secret for the default webhook endpoint. This is used to verify that webhook requests are coming from Replicate.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/webhooks/default/secret
+ /// ```
+ /// The response will be a JSON object with a `key` property:
+ /// ```json
+ /// {
+ /// "key": "..."
+ /// }
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> WebhooksDefaultSecretGetAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.IReplicateClient.g.cs b/src/libs/Replicate/Generated/Replicate.IReplicateClient.g.cs index 77a11b8..bd0fbc2 100644 --- a/src/libs/Replicate/Generated/Replicate.IReplicateClient.g.cs +++ b/src/libs/Replicate/Generated/Replicate.IReplicateClient.g.cs @@ -33,6 +33,11 @@ public partial interface IReplicateClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } + /// + /// Client-wide request defaults such as headers, query parameters, retries, and timeout. + /// + public global::Replicate.AutoSDKClientOptions Options { get; } + /// /// diff --git a/src/libs/Replicate/Generated/Replicate.JsonConverters.OneOf2.g.cs b/src/libs/Replicate/Generated/Replicate.JsonConverters.OneOf2.g.cs index 54c523e..0a61765 100644 --- a/src/libs/Replicate/Generated/Replicate.JsonConverters.OneOf2.g.cs +++ b/src/libs/Replicate/Generated/Replicate.JsonConverters.OneOf2.g.cs @@ -3,7 +3,7 @@ namespace Replicate.JsonConverters { /// - public class OneOfJsonConverter<[global::System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(global::System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)] T1, [global::System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(global::System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)] T2> : global::System.Text.Json.Serialization.JsonConverter> + public class OneOfJsonConverter : global::System.Text.Json.Serialization.JsonConverter> { /// public override global::Replicate.OneOf Read( @@ -107,7 +107,10 @@ public class OneOfJsonConverter<[global::System.Diagnostics.CodeAnalysis.Dynamic catch (global::System.InvalidOperationException) { } + } + if (value1 == null && value2 == null) + { try { diff --git a/src/libs/Replicate/Generated/Replicate.Models.AccountGetResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.AccountGetResponse.g.cs index 8ccfad3..3d2aeb2 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.AccountGetResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.AccountGetResponse.g.cs @@ -88,5 +88,6 @@ public AccountGetResponse( public AccountGetResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.DeploymentsCreateRequest.g.cs b/src/libs/Replicate/Generated/Replicate.Models.DeploymentsCreateRequest.g.cs index eb9505a..32054f6 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.DeploymentsCreateRequest.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.DeploymentsCreateRequest.g.cs @@ -102,5 +102,6 @@ public DeploymentsCreateRequest( public DeploymentsCreateRequest() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.DeploymentsListResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.DeploymentsListResponse.g.cs index 0a53287..df2f640 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.DeploymentsListResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.DeploymentsListResponse.g.cs @@ -63,5 +63,6 @@ public DeploymentsListResponse( public DeploymentsListResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.DeploymentsUpdateRequest.g.cs b/src/libs/Replicate/Generated/Replicate.Models.DeploymentsUpdateRequest.g.cs index 7625793..ec3143d 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.DeploymentsUpdateRequest.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.DeploymentsUpdateRequest.g.cs @@ -74,5 +74,6 @@ public DeploymentsUpdateRequest( public DeploymentsUpdateRequest() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.FilesCreateRequest.g.cs b/src/libs/Replicate/Generated/Replicate.Models.FilesCreateRequest.g.cs index ba03438..435b911 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.FilesCreateRequest.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.FilesCreateRequest.g.cs @@ -91,5 +91,6 @@ public FilesCreateRequest( public FilesCreateRequest() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.FilesCreateRequestMetadata.g.cs b/src/libs/Replicate/Generated/Replicate.Models.FilesCreateRequestMetadata.g.cs index d322a4a..e2d61f1 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.FilesCreateRequestMetadata.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.FilesCreateRequestMetadata.g.cs @@ -15,5 +15,6 @@ public sealed partial class FilesCreateRequestMetadata /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.FilesCreateResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.FilesCreateResponse.g.cs index cb8ca27..0b4f598 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.FilesCreateResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.FilesCreateResponse.g.cs @@ -42,5 +42,6 @@ public FilesCreateResponse( public FilesCreateResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.FilesDeleteResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.FilesDeleteResponse.g.cs index 18d2138..f117207 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.FilesDeleteResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.FilesDeleteResponse.g.cs @@ -42,5 +42,6 @@ public FilesDeleteResponse( public FilesDeleteResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.FilesDownloadResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.FilesDownloadResponse.g.cs index f0049a5..5b9f67c 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.FilesDownloadResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.FilesDownloadResponse.g.cs @@ -42,5 +42,6 @@ public FilesDownloadResponse( public FilesDownloadResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.FilesGetResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.FilesGetResponse.g.cs index 89effd2..31e31db 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.FilesGetResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.FilesGetResponse.g.cs @@ -42,5 +42,6 @@ public FilesGetResponse( public FilesGetResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.FilesListResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.FilesListResponse.g.cs index edc74aa..3c1e759 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.FilesListResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.FilesListResponse.g.cs @@ -57,5 +57,6 @@ public FilesListResponse( public FilesListResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.HardwareListResponseItem.g.cs b/src/libs/Replicate/Generated/Replicate.Models.HardwareListResponseItem.g.cs index 2780a6c..3bc3f94 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.HardwareListResponseItem.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.HardwareListResponseItem.g.cs @@ -52,5 +52,6 @@ public HardwareListResponseItem( public HardwareListResponseItem() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.ModelsCreateRequest.g.cs b/src/libs/Replicate/Generated/Replicate.Models.ModelsCreateRequest.g.cs index dcb24a1..70dc6e6 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.ModelsCreateRequest.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.ModelsCreateRequest.g.cs @@ -155,5 +155,6 @@ public ModelsCreateRequest( public ModelsCreateRequest() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.ModelsUpdateRequest.g.cs b/src/libs/Replicate/Generated/Replicate.Models.ModelsUpdateRequest.g.cs index 74dd0bc..26f20ac 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.ModelsUpdateRequest.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.ModelsUpdateRequest.g.cs @@ -116,5 +116,6 @@ public ModelsUpdateRequest( public ModelsUpdateRequest() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.PredictionsListResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.PredictionsListResponse.g.cs index 1bee1c7..afd423c 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.PredictionsListResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.PredictionsListResponse.g.cs @@ -57,5 +57,6 @@ public PredictionsListResponse( public PredictionsListResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasCollectionListItem.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasCollectionListItem.g.cs index b1409c6..b921e4b 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasCollectionListItem.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasCollectionListItem.g.cs @@ -66,5 +66,6 @@ public SchemasCollectionListItem( public SchemasCollectionListItem() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasCollectionResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasCollectionResponse.g.cs index 08cbadc..e9e13da 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasCollectionResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasCollectionResponse.g.cs @@ -89,5 +89,6 @@ public SchemasCollectionResponse( public SchemasCollectionResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponse.g.cs index 4eb1b27..ba202bf 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponse.g.cs @@ -61,5 +61,6 @@ public SchemasDeploymentResponse( public SchemasDeploymentResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentRelease.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentRelease.g.cs index 38ccf4d..17ce12a 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentRelease.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentRelease.g.cs @@ -92,5 +92,6 @@ public SchemasDeploymentResponseCurrentRelease( public SchemasDeploymentResponseCurrentRelease() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentReleaseConfiguration.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentReleaseConfiguration.g.cs index fa72136..a057570 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentReleaseConfiguration.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentReleaseConfiguration.g.cs @@ -63,5 +63,6 @@ public SchemasDeploymentResponseCurrentReleaseConfiguration( public SchemasDeploymentResponseCurrentReleaseConfiguration() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentReleaseCreatedBy.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentReleaseCreatedBy.g.cs index fd9cb95..f6f1dbd 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentReleaseCreatedBy.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasDeploymentResponseCurrentReleaseCreatedBy.g.cs @@ -88,5 +88,6 @@ public SchemasDeploymentResponseCurrentReleaseCreatedBy( public SchemasDeploymentResponseCurrentReleaseCreatedBy() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponse.g.cs index c071c48..e63e2e8 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponse.g.cs @@ -144,5 +144,6 @@ public SchemasFileResponse( public SchemasFileResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseChecksums.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseChecksums.g.cs index ab4d5a9..1bdb54f 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseChecksums.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseChecksums.g.cs @@ -44,5 +44,6 @@ public SchemasFileResponseChecksums( public SchemasFileResponseChecksums() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseMetadata.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseMetadata.g.cs index 4531a3a..d74a618 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseMetadata.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseMetadata.g.cs @@ -15,5 +15,6 @@ public sealed partial class SchemasFileResponseMetadata /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseUrls.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseUrls.g.cs index b35e1ec..f0cbf22 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseUrls.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasFileResponseUrls.g.cs @@ -44,5 +44,6 @@ public SchemasFileResponseUrls( public SchemasFileResponseUrls() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponse.g.cs index 5450315..ddbdd73 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponse.g.cs @@ -174,5 +174,6 @@ public SchemasModelResponse( public SchemasModelResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponseDefaultExample.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponseDefaultExample.g.cs index 8c0e14d..13dc187 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponseDefaultExample.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponseDefaultExample.g.cs @@ -14,5 +14,6 @@ public sealed partial class SchemasModelResponseDefaultExample /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponseLatestVersion.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponseLatestVersion.g.cs index a5bbd4d..3b96414 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponseLatestVersion.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasModelResponseLatestVersion.g.cs @@ -14,5 +14,6 @@ public sealed partial class SchemasModelResponseLatestVersion /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPageResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPageResponse.g.cs index aecc6c0..10c6d40 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPageResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPageResponse.g.cs @@ -54,5 +54,6 @@ public SchemasPageResponse( public SchemasPageResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedCollectionResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedCollectionResponse.g.cs index 43e0c95..9a504ac 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedCollectionResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedCollectionResponse.g.cs @@ -63,5 +63,6 @@ public SchemasPaginatedCollectionResponse( public SchemasPaginatedCollectionResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedModelResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedModelResponse.g.cs index 5f9c398..d4a71e9 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedModelResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedModelResponse.g.cs @@ -63,5 +63,6 @@ public SchemasPaginatedModelResponse( public SchemasPaginatedModelResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedPredictionResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedPredictionResponse.g.cs index 0ca70b6..e85d41b 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedPredictionResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedPredictionResponse.g.cs @@ -63,5 +63,6 @@ public SchemasPaginatedPredictionResponse( public SchemasPaginatedPredictionResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedVersionResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedVersionResponse.g.cs index 3e7e833..e72de28 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedVersionResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPaginatedVersionResponse.g.cs @@ -63,5 +63,6 @@ public SchemasPaginatedVersionResponse( public SchemasPaginatedVersionResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionRequest.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionRequest.g.cs index 9f7c4d3..a846644 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionRequest.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionRequest.g.cs @@ -136,5 +136,6 @@ public SchemasPredictionRequest( public SchemasPredictionRequest() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionRequestInput.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionRequestInput.g.cs index ab60db3..b998ee3 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionRequestInput.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionRequestInput.g.cs @@ -24,5 +24,6 @@ public sealed partial class SchemasPredictionRequestInput /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponse.g.cs index 927bbef..88cfdf8 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponse.g.cs @@ -226,5 +226,6 @@ public SchemasPredictionResponse( public SchemasPredictionResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseInput.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseInput.g.cs index c70226b..e6e2df3 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseInput.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseInput.g.cs @@ -14,5 +14,6 @@ public sealed partial class SchemasPredictionResponseInput /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseMetrics.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseMetrics.g.cs index d27263a..100dd16 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseMetrics.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseMetrics.g.cs @@ -41,5 +41,6 @@ public SchemasPredictionResponseMetrics( public SchemasPredictionResponseMetrics() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseOutput.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseOutput.g.cs index 9f3ab75..e35bf80 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseOutput.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseOutput.g.cs @@ -14,5 +14,6 @@ public sealed partial class SchemasPredictionResponseOutput /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseUrls.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseUrls.g.cs index 81ff2de..ebd1eb0 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseUrls.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasPredictionResponseUrls.g.cs @@ -77,5 +77,6 @@ public SchemasPredictionResponseUrls( public SchemasPredictionResponseUrls() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchCollectionResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchCollectionResponse.g.cs index 98b129d..7f107de 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchCollectionResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchCollectionResponse.g.cs @@ -77,5 +77,6 @@ public SchemasSearchCollectionResponse( public SchemasSearchCollectionResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchModelMetadataResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchModelMetadataResponse.g.cs index 395ebf0..3d78fd7 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchModelMetadataResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchModelMetadataResponse.g.cs @@ -63,5 +63,6 @@ public SchemasSearchModelMetadataResponse( public SchemasSearchModelMetadataResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchResponse.g.cs index fe9d18e..019053e 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchResponse.g.cs @@ -78,5 +78,6 @@ public SchemasSearchResponse( public SchemasSearchResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchResponseModel.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchResponseModel.g.cs index 53c3d73..cd3c20e 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchResponseModel.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasSearchResponseModel.g.cs @@ -50,5 +50,6 @@ public SchemasSearchResponseModel( public SchemasSearchResponseModel() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingRequest.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingRequest.g.cs index 883eb1f..31c9a49 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingRequest.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingRequest.g.cs @@ -108,5 +108,6 @@ public SchemasTrainingRequest( public SchemasTrainingRequest() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingRequestInput.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingRequestInput.g.cs index 8b8072e..d1ce755 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingRequestInput.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingRequestInput.g.cs @@ -14,5 +14,6 @@ public sealed partial class SchemasTrainingRequestInput /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponse.g.cs index bb9aef3..80c9d5c 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponse.g.cs @@ -186,5 +186,6 @@ public SchemasTrainingResponse( public SchemasTrainingResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseInput.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseInput.g.cs index 90517a7..09ac1c8 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseInput.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseInput.g.cs @@ -14,5 +14,6 @@ public sealed partial class SchemasTrainingResponseInput /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseMetrics.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseMetrics.g.cs index 0580a76..1482216 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseMetrics.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseMetrics.g.cs @@ -52,5 +52,6 @@ public SchemasTrainingResponseMetrics( public SchemasTrainingResponseMetrics() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseOutput.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseOutput.g.cs index c74a05b..c5f7e1a 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseOutput.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseOutput.g.cs @@ -52,5 +52,6 @@ public SchemasTrainingResponseOutput( public SchemasTrainingResponseOutput() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseUrls.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseUrls.g.cs index 3710169..1d95d68 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseUrls.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasTrainingResponseUrls.g.cs @@ -52,5 +52,6 @@ public SchemasTrainingResponseUrls( public SchemasTrainingResponseUrls() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionPredictionRequest.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionPredictionRequest.g.cs index 6d0be6f..d0c0dcc 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionPredictionRequest.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionPredictionRequest.g.cs @@ -159,5 +159,6 @@ public SchemasVersionPredictionRequest( public SchemasVersionPredictionRequest() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionPredictionRequestInput.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionPredictionRequestInput.g.cs index 7717cea..cf7eccd 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionPredictionRequestInput.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionPredictionRequestInput.g.cs @@ -24,5 +24,6 @@ public sealed partial class SchemasVersionPredictionRequestInput /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionResponse.g.cs index 7d64974..73bc6b9 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionResponse.g.cs @@ -74,5 +74,6 @@ public SchemasVersionResponse( public SchemasVersionResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionResponseOpenapiSchema.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionResponseOpenapiSchema.g.cs index c7be2e3..ae1ab83 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionResponseOpenapiSchema.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SchemasVersionResponseOpenapiSchema.g.cs @@ -14,5 +14,6 @@ public sealed partial class SchemasVersionResponseOpenapiSchema /// [global::System.Text.Json.Serialization.JsonExtensionData] public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SearchResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SearchResponse.g.cs index f9b825b..ecfe8fb 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SearchResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SearchResponse.g.cs @@ -42,5 +42,6 @@ public SearchResponse( public SearchResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.SearchResponse2.g.cs b/src/libs/Replicate/Generated/Replicate.Models.SearchResponse2.g.cs index d5277d9..6f74dc0 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.SearchResponse2.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.SearchResponse2.g.cs @@ -42,5 +42,6 @@ public SearchResponse2( public SearchResponse2() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.TrainingsListResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.TrainingsListResponse.g.cs index f7ead78..1a5cc90 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.TrainingsListResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.TrainingsListResponse.g.cs @@ -61,5 +61,6 @@ public TrainingsListResponse( public TrainingsListResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Models.WebhooksDefaultSecretGetResponse.g.cs b/src/libs/Replicate/Generated/Replicate.Models.WebhooksDefaultSecretGetResponse.g.cs index 2944cc1..69d11a6 100644 --- a/src/libs/Replicate/Generated/Replicate.Models.WebhooksDefaultSecretGetResponse.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Models.WebhooksDefaultSecretGetResponse.g.cs @@ -41,5 +41,6 @@ public WebhooksDefaultSecretGetResponse( public WebhooksDefaultSecretGetResponse() { } + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.OneOf.2.g.cs b/src/libs/Replicate/Generated/Replicate.OneOf.2.g.cs index c14b3b7..637ecbb 100644 --- a/src/libs/Replicate/Generated/Replicate.OneOf.2.g.cs +++ b/src/libs/Replicate/Generated/Replicate.OneOf.2.g.cs @@ -25,6 +25,26 @@ namespace Replicate #endif public bool IsValue1 => Value1 != null; + /// + /// + /// + public bool TryPickValue1( +#if NET6_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)] +#endif + out T1? value) + { + value = Value1; + return IsValue1; + } + + /// + /// + /// + public T1 PickValue1() => IsValue1 + ? Value1! + : throw new global::System.InvalidOperationException($"Expected union variant 'Value1' but the value was {ToString()}."); + /// /// /// @@ -41,6 +61,26 @@ namespace Replicate [global::System.Diagnostics.CodeAnalysis.MemberNotNullWhen(true, nameof(Value2))] #endif public bool IsValue2 => Value2 != null; + + /// + /// + /// + public bool TryPickValue2( +#if NET6_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)] +#endif + out T2? value) + { + value = Value2; + return IsValue2; + } + + /// + /// + /// + public T2 PickValue2() => IsValue2 + ? Value2! + : throw new global::System.InvalidOperationException($"Expected union variant 'Value2' but the value was {ToString()}."); /// /// /// @@ -59,6 +99,11 @@ public OneOf(T1? value) Value1 = value; } + /// + /// + /// + public static OneOf FromValue1(T1? value) => new OneOf(value); + /// /// /// @@ -77,6 +122,11 @@ public OneOf(T2? value) Value2 = value; } + /// + /// + /// + public static OneOf FromValue2(T2? value) => new OneOf(value); + /// /// /// @@ -143,6 +193,30 @@ public bool Validate() /// public void Match( global::System.Action? value1 = null, + + global::System.Action? value2 = null, + bool validate = true) + { + if (validate) + { + Validate(); + } + + if (IsValue1) + { + value1?.Invoke(Value1!); + } + else if (IsValue2) + { + value2?.Invoke(Value2!); + } + } + + /// + /// + /// + public void Switch( + global::System.Action? value1 = null, global::System.Action? value2 = null, bool validate = true) { diff --git a/src/libs/Replicate/Generated/Replicate.OptionsSupport.g.cs b/src/libs/Replicate/Generated/Replicate.OptionsSupport.g.cs new file mode 100644 index 0000000..a6cd825 --- /dev/null +++ b/src/libs/Replicate/Generated/Replicate.OptionsSupport.g.cs @@ -0,0 +1,937 @@ + +#nullable enable + +namespace Replicate +{ + /// + /// Global defaults applied to generated SDK requests. + /// + public sealed class AutoSDKClientOptions + { + /// + /// Additional headers applied to every request after generated headers are set. + /// Entries with the same key overwrite earlier header values. + /// + public global::System.Collections.Generic.Dictionary Headers { get; } = + new global::System.Collections.Generic.Dictionary(global::System.StringComparer.OrdinalIgnoreCase); + + /// + /// Additional query parameters appended to every request. + /// Request-level entries with the same key are appended after client defaults. + /// + public global::System.Collections.Generic.Dictionary QueryParameters { get; } = + new global::System.Collections.Generic.Dictionary(global::System.StringComparer.Ordinal); + + /// + /// Optional timeout applied to the full request execution. + /// + public global::System.TimeSpan? Timeout { get; set; } + + /// + /// Default retry behavior for generated HTTP requests. + /// + public global::Replicate.AutoSDKRetryOptions Retry { get; set; } = new global::Replicate.AutoSDKRetryOptions(); + + /// + /// Overrides the client-wide response buffering mode when set. + /// + public bool? ReadResponseAsString { get; set; } + + /// + /// Reusable hooks invoked for every generated SDK request. + /// + public global::System.Collections.Generic.List Hooks { get; } = + new global::System.Collections.Generic.List(); + + /// + /// Registers a hook for all requests issued by this client. + /// + /// + /// The current options instance. + public global::Replicate.AutoSDKClientOptions AddHook( + global::Replicate.IAutoSDKHook hook) + { + Hooks.Add(hook ?? throw new global::System.ArgumentNullException(nameof(hook))); + return this; + } + + /// + /// Optional per-request authorization provider invoked before each request is sent. + /// Set this when the client is registered as a singleton in DI but each call needs + /// a fresh credential resolved from a provider, secret-store, or session — instead + /// of mutating the shared Authorizations list at construction time. + /// + public global::Replicate.IAutoSDKAuthorizationProvider? AuthorizationProvider { get; set; } + + /// + /// Convenience helper that registers + /// using so request-level auth is resolved without + /// touching shared client state. + /// + /// + public global::Replicate.AutoSDKClientOptions UseAuthorizationProvider( + global::Replicate.IAutoSDKAuthorizationProvider provider) + { + AuthorizationProvider = provider ?? throw new global::System.ArgumentNullException(nameof(provider)); + if (Hooks.Find(static x => x is global::Replicate.AutoSDKAuthorizationProviderHook) == null) + { + Hooks.Add(new global::Replicate.AutoSDKAuthorizationProviderHook()); + } + + return this; + } + } + + /// + /// A request-level authorization value supplied by . + /// Mirrors the runtime fields the SDK applies for HTTP / OAuth2 / API-key auth without + /// requiring the consumer to construct the generated EndPointAuthorization type. + /// + public readonly struct AutoSDKAuthorizationValue + { + /// + /// Initializes a new . + /// + /// + /// + /// + /// + /// + public AutoSDKAuthorizationValue( + string value, + string scheme = "Bearer", + string? headerName = null, + string location = "Header", + string type = "Http") + { + Value = value ?? string.Empty; + Scheme = string.IsNullOrWhiteSpace(scheme) ? "Bearer" : scheme; + HeaderName = headerName ?? string.Empty; + Location = string.IsNullOrWhiteSpace(location) ? "Header" : location; + Type = string.IsNullOrWhiteSpace(type) ? "Http" : type; + } + + /// The credential value (token, API key, etc.). + public string Value { get; } + + /// The HTTP authorization scheme — typically Bearer, Basic, or Token. + public string Scheme { get; } + + /// The custom header name when is ApiKey; ignored for HTTP/OAuth2 auth. + public string HeaderName { get; } + + /// The credential location — Header, Query, or Cookie. + public string Location { get; } + + /// The auth type — Http, OAuth2, OpenIdConnect, or ApiKey. + public string Type { get; } + + /// Convenience factory for a Bearer token. + public static global::Replicate.AutoSDKAuthorizationValue Bearer(string token) => new(value: token, scheme: "Bearer"); + + /// Convenience factory for an API-key header. + public static global::Replicate.AutoSDKAuthorizationValue ApiKeyHeader(string name, string value) => + new(value: value, headerName: name, location: "Header", type: "ApiKey"); + } + + /// + /// Resolves request-level authorization values without mutating the shared client + /// authorization list. Implementations should be safe to invoke concurrently — + /// the hook calls them once per outgoing request. + /// + public interface IAutoSDKAuthorizationProvider + { + /// + /// Returns one or more values to apply to + /// the current request, or an empty list / null to leave the request as-is. + /// + /// + global::System.Threading.Tasks.Task?> ResolveAsync( + global::Replicate.AutoSDKHookContext context); + } + + /// + /// Marker keys stamped onto outgoing + /// instances so consumer s — and any + /// other transport-layer code that runs after AutoSDK's send pipeline — can observe whether + /// the resolved Authorization is call-scoped and opt out of overwriting it with a + /// rotation-aware account-level credential. + /// + public static class AutoSDKHttpRequestOptions + { + /// + /// Key under which records the marker. Exposed + /// for handlers that target frameworks older than .NET 5 and need to read the value + /// through the legacy HttpRequestMessage.Properties bag. + /// + public const string AuthorizationOverrideKey = "AutoSDK.AuthorizationOverride"; + +#if NET5_0_OR_GREATER + /// + /// Strongly-typed for + /// the call-scoped Authorization marker on .NET 5+ targets. Consumers should prefer this + /// over the legacy HttpRequestMessage.Properties bag where available. + /// + public static readonly global::System.Net.Http.HttpRequestOptionsKey AuthorizationOverride = + new global::System.Net.Http.HttpRequestOptionsKey(AuthorizationOverrideKey); +#endif + + /// + /// Stamps the call-scoped Authorization marker on . AutoSDK's + /// built-in calls this whenever the + /// resolved auth came from a per-request override or a client-level + /// . Hand-written SDK extensions that set a + /// non-default Authorization header (e.g. a session-scoped bearer returned by an + /// upstream poll) should call this too so downstream rotation handlers know to skip the + /// overwrite. + /// + /// + public static void StampAuthorizationOverride( + global::System.Net.Http.HttpRequestMessage? request) + { + if (request is null) + { + return; + } + +#if NET5_0_OR_GREATER + request.Options.Set(AuthorizationOverride, true); +#else +#pragma warning disable CS0618 // HttpRequestMessage.Properties is obsolete in NET5+, but the only option below it. + request.Properties[AuthorizationOverrideKey] = true; +#pragma warning restore CS0618 +#endif + } + + /// + /// Returns true when previously marked the + /// request as carrying a call-scoped Authorization. + /// + /// + public static bool HasAuthorizationOverride( + global::System.Net.Http.HttpRequestMessage? request) + { + if (request is null) + { + return false; + } + +#if NET5_0_OR_GREATER + return request.Options.TryGetValue(AuthorizationOverride, out var value) && value; +#else +#pragma warning disable CS0618 + return request.Properties.TryGetValue(AuthorizationOverrideKey, out var raw) && + raw is bool flag && + flag; +#pragma warning restore CS0618 +#endif + } + } + + /// + /// Built-in that consults + /// before every outgoing + /// request and stamps the resolved values onto the . + /// + public sealed class AutoSDKAuthorizationProviderHook : global::Replicate.AutoSDKHook + { + /// + public override async global::System.Threading.Tasks.Task OnBeforeRequestAsync( + global::Replicate.AutoSDKHookContext context) + { + context = context ?? throw new global::System.ArgumentNullException(nameof(context)); + + if (context.Request == null) + { + return; + } + + var perRequest = context.RequestOptions?.Authorizations; + if (perRequest != null && perRequest.Count > 0) + { + for (var index = 0; index < perRequest.Count; index++) + { + ApplyAuthorization(context.Request, perRequest[index]); + } + + global::Replicate.AutoSDKHttpRequestOptions.StampAuthorizationOverride(context.Request); + return; + } + + var provider = context.ClientOptions?.AuthorizationProvider; + if (provider == null) + { + return; + } + + var resolved = await provider.ResolveAsync(context).ConfigureAwait(false); + if (resolved == null || resolved.Count == 0) + { + return; + } + + for (var index = 0; index < resolved.Count; index++) + { + ApplyAuthorization(context.Request, resolved[index]); + } + + global::Replicate.AutoSDKHttpRequestOptions.StampAuthorizationOverride(context.Request); + } + + private static void ApplyAuthorization( + global::System.Net.Http.HttpRequestMessage request, + global::Replicate.AutoSDKAuthorizationValue authorization) + { + switch (authorization.Type) + { + case "Http": + case "OAuth2": + case "OpenIdConnect": + request.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( + scheme: authorization.Scheme, + parameter: authorization.Value); + break; + case "ApiKey": + if (string.Equals(authorization.Location, "Header", global::System.StringComparison.OrdinalIgnoreCase) && + !string.IsNullOrEmpty(authorization.HeaderName)) + { + request.Headers.Remove(authorization.HeaderName); + request.Headers.TryAddWithoutValidation(authorization.HeaderName, authorization.Value ?? string.Empty); + } + break; + } + } + } + + /// + /// Per-request overrides applied on top of . + /// + public sealed class AutoSDKRequestOptions + { + /// + /// Additional headers applied after generated and client-level headers. + /// + public global::System.Collections.Generic.Dictionary Headers { get; } = + new global::System.Collections.Generic.Dictionary(global::System.StringComparer.OrdinalIgnoreCase); + + /// + /// Additional query parameters appended after generated and client-level query parameters. + /// + public global::System.Collections.Generic.Dictionary QueryParameters { get; } = + new global::System.Collections.Generic.Dictionary(global::System.StringComparer.Ordinal); + + /// + /// Optional timeout override for this request. + /// + public global::System.TimeSpan? Timeout { get; set; } + + /// + /// Optional retry override for this request. + /// + public global::Replicate.AutoSDKRetryOptions? Retry { get; set; } + + /// + /// Overrides response buffering for this request when set. + /// + public bool? ReadResponseAsString { get; set; } + + /// + /// Optional per-request authorization values. When non-empty, the built-in + /// applies these instead of consulting + /// for this request only. + /// Useful for multi-tenant routing or "act-as" admin tooling that needs a different + /// credential per call without mutating shared client state. + /// + public global::System.Collections.Generic.IReadOnlyList? Authorizations { get; set; } + } + + /// + /// Retry settings for generated HTTP requests. + /// + public sealed class AutoSDKRetryOptions + { + /// + /// Total number of attempts, including the initial request. + /// Values less than 1 are normalized to 1. + /// + public int MaxAttempts { get; set; } = 1; + + /// + /// Optional fixed delay between retry attempts. When set, this takes precedence over exponential backoff. + /// + public global::System.TimeSpan? Delay { get; set; } + + /// + /// Initial exponential backoff delay used when is not set. + /// + public global::System.TimeSpan InitialDelay { get; set; } = global::System.TimeSpan.FromSeconds(1); + + /// + /// Maximum retry delay after applying retry headers, backoff, and jitter. + /// + public global::System.TimeSpan MaxDelay { get; set; } = global::System.TimeSpan.FromSeconds(30); + + /// + /// Multiplier applied to exponential backoff after each failed attempt. + /// Values below 1 are normalized to 1. + /// + public double BackoffMultiplier { get; set; } = 2D; + + /// + /// Randomizes computed backoff by plus or minus this ratio. Values are clamped to 0..1. + /// + public double JitterRatio { get; set; } = 0.2D; + + /// + /// Whether Retry-After response headers should control retry delay when present. + /// + public bool UseRetryAfterHeader { get; set; } = true; + + /// + /// Whether a rate-limit reset response header should control retry delay when present. + /// + public bool UseRateLimitResetHeader { get; set; } + + /// + /// Optional provider-specific rate-limit reset header name. Values may be Unix seconds or an HTTP date. + /// + public string? RateLimitResetHeaderName { get; set; } = "X-RateLimit-Reset"; + } + + + /// + /// Runtime hook interface for generated SDK lifecycle events. + /// + public interface IAutoSDKHook + { + /// + /// Runs before a request is sent. + /// + /// + global::System.Threading.Tasks.Task OnBeforeRequestAsync( + global::Replicate.AutoSDKHookContext context); + + /// + /// Runs after a successful HTTP response is received. + /// + /// + global::System.Threading.Tasks.Task OnAfterSuccessAsync( + global::Replicate.AutoSDKHookContext context); + + /// + /// Runs after an error response or transport failure is observed. + /// + /// + global::System.Threading.Tasks.Task OnAfterErrorAsync( + global::Replicate.AutoSDKHookContext context); + } + + /// + /// Convenience base type for request hooks with no-op defaults. + /// + public abstract class AutoSDKHook : global::Replicate.IAutoSDKHook + { + /// + public virtual global::System.Threading.Tasks.Task OnBeforeRequestAsync( + global::Replicate.AutoSDKHookContext context) + { + return global::System.Threading.Tasks.Task.CompletedTask; + } + + /// + public virtual global::System.Threading.Tasks.Task OnAfterSuccessAsync( + global::Replicate.AutoSDKHookContext context) + { + return global::System.Threading.Tasks.Task.CompletedTask; + } + + /// + public virtual global::System.Threading.Tasks.Task OnAfterErrorAsync( + global::Replicate.AutoSDKHookContext context) + { + return global::System.Threading.Tasks.Task.CompletedTask; + } + } + + /// + /// Runtime metadata passed to generated SDK hooks. + /// + public sealed class AutoSDKHookContext + { + /// + /// The source OpenAPI operation id or generated fallback id. + /// + public string OperationId { get; set; } = string.Empty; + + /// + /// The generated C# method name. + /// + public string MethodName { get; set; } = string.Empty; + + /// + /// The OpenAPI path template for the operation. + /// + public string PathTemplate { get; set; } = string.Empty; + + /// + /// The HTTP method used for the request. + /// + public string HttpMethod { get; set; } = string.Empty; + + /// + /// The client's resolved base URI. + /// + public global::System.Uri? BaseUri { get; set; } + + /// + /// The outgoing HTTP request for the current attempt. + /// + public global::System.Net.Http.HttpRequestMessage Request { get; set; } = null!; + + /// + /// The HTTP response when one was received. + /// + public global::System.Net.Http.HttpResponseMessage? Response { get; set; } + + /// + /// The transport or processing exception when one was observed. + /// + public global::System.Exception? Exception { get; set; } + + /// + /// The client-wide runtime options. + /// + public global::Replicate.AutoSDKClientOptions ClientOptions { get; set; } = null!; + + /// + /// The per-request runtime options. + /// + public global::Replicate.AutoSDKRequestOptions? RequestOptions { get; set; } + + /// + /// The current attempt number, starting at 1. + /// + public int Attempt { get; set; } + + /// + /// The total number of attempts allowed for this request. + /// + public int MaxAttempts { get; set; } + + /// + /// Indicates whether the generated client will retry after this hook invocation. + /// + public bool WillRetry { get; set; } + + /// + /// The computed retry delay when is true. + /// + public global::System.TimeSpan? RetryDelay { get; set; } + + /// + /// A short retry reason such as exception or status:429. + /// + public string RetryReason { get; set; } = string.Empty; + + /// + /// The effective cancellation token for the current request attempt. + /// + public global::System.Threading.CancellationToken CancellationToken { get; set; } + } + + + internal static class AutoSDKRequestOptionsSupport + { + internal static global::Replicate.AutoSDKHookContext CreateHookContext( + string operationId, + string methodName, + string pathTemplate, + string httpMethod, + global::System.Uri? baseUri, + global::System.Net.Http.HttpRequestMessage request, + global::System.Net.Http.HttpResponseMessage? response, + global::System.Exception? exception, + global::Replicate.AutoSDKClientOptions clientOptions, + global::Replicate.AutoSDKRequestOptions? requestOptions, + int attempt, + int maxAttempts, + bool willRetry, + global::System.TimeSpan? retryDelay, + string retryReason, + global::System.Threading.CancellationToken cancellationToken) + { + return new global::Replicate.AutoSDKHookContext + { + OperationId = operationId ?? string.Empty, + MethodName = methodName ?? string.Empty, + PathTemplate = pathTemplate ?? string.Empty, + HttpMethod = httpMethod ?? string.Empty, + BaseUri = baseUri, + Request = request, + Response = response, + Exception = exception, + ClientOptions = clientOptions, + RequestOptions = requestOptions, + Attempt = attempt, + MaxAttempts = maxAttempts, + WillRetry = willRetry, + RetryDelay = retryDelay, + RetryReason = retryReason ?? string.Empty, + CancellationToken = cancellationToken, + }; + } + + internal static global::System.Threading.Tasks.Task OnBeforeRequestAsync( + global::Replicate.AutoSDKClientOptions clientOptions, + global::Replicate.AutoSDKHookContext context) + { + return InvokeHooksAsync(clientOptions, static (hook, hookContext) => hook.OnBeforeRequestAsync(hookContext), context); + } + + internal static global::System.Threading.Tasks.Task OnAfterSuccessAsync( + global::Replicate.AutoSDKClientOptions clientOptions, + global::Replicate.AutoSDKHookContext context) + { + return InvokeHooksAsync(clientOptions, static (hook, hookContext) => hook.OnAfterSuccessAsync(hookContext), context); + } + + internal static global::System.Threading.Tasks.Task OnAfterErrorAsync( + global::Replicate.AutoSDKClientOptions clientOptions, + global::Replicate.AutoSDKHookContext context) + { + return InvokeHooksAsync(clientOptions, static (hook, hookContext) => hook.OnAfterErrorAsync(hookContext), context); + } + + internal static bool GetReadResponseAsString( + global::Replicate.AutoSDKClientOptions clientOptions, + global::Replicate.AutoSDKRequestOptions? requestOptions, + bool fallbackValue) + { + return requestOptions?.ReadResponseAsString ?? + clientOptions.ReadResponseAsString ?? + fallbackValue; + } + + internal static global::System.Threading.CancellationTokenSource? CreateTimeoutCancellationTokenSource( + global::Replicate.AutoSDKClientOptions clientOptions, + global::Replicate.AutoSDKRequestOptions? requestOptions, + global::System.Threading.CancellationToken cancellationToken) + { + var timeout = requestOptions?.Timeout ?? clientOptions.Timeout; + if (!timeout.HasValue || timeout.Value <= global::System.TimeSpan.Zero) + { + return null; + } + + var cancellationTokenSource = global::System.Threading.CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + cancellationTokenSource.CancelAfter(timeout.Value); + return cancellationTokenSource; + } + + internal static int GetMaxAttempts( + global::Replicate.AutoSDKClientOptions clientOptions, + global::Replicate.AutoSDKRequestOptions? requestOptions, + bool supportsRetry) + { + if (!supportsRetry) + { + return 1; + } + + var maxAttempts = requestOptions?.Retry?.MaxAttempts ?? + clientOptions.Retry?.MaxAttempts ?? + 1; + return maxAttempts < 1 ? 1 : maxAttempts; + } + + internal static global::System.TimeSpan GetRetryDelay( + global::Replicate.AutoSDKClientOptions clientOptions, + global::Replicate.AutoSDKRequestOptions? requestOptions, + global::System.Net.Http.HttpResponseMessage? response, + int attempt) + { + var retryOptions = requestOptions?.Retry ?? clientOptions.Retry ?? new global::Replicate.AutoSDKRetryOptions(); + + if (retryOptions.UseRetryAfterHeader && + TryGetRetryAfterDelay(response, out var retryAfterDelay)) + { + return ClampRetryDelay(retryAfterDelay, retryOptions); + } + + if (retryOptions.UseRateLimitResetHeader && + TryGetRateLimitResetDelay(response, retryOptions.RateLimitResetHeaderName, out var rateLimitResetDelay)) + { + return ClampRetryDelay(rateLimitResetDelay, retryOptions); + } + + if (retryOptions.Delay.HasValue) + { + return ClampRetryDelay(retryOptions.Delay.Value, retryOptions); + } + + var initialDelay = retryOptions.InitialDelay; + if (initialDelay <= global::System.TimeSpan.Zero) + { + return global::System.TimeSpan.Zero; + } + + var multiplier = retryOptions.BackoffMultiplier < 1D ? 1D : retryOptions.BackoffMultiplier; + var exponent = attempt <= 1 ? 0 : attempt - 1; + var delayMilliseconds = initialDelay.TotalMilliseconds * global::System.Math.Pow(multiplier, exponent); + if (double.IsNaN(delayMilliseconds) || double.IsInfinity(delayMilliseconds) || delayMilliseconds < 0D) + { + delayMilliseconds = 0D; + } + + var delay = global::System.TimeSpan.FromMilliseconds(delayMilliseconds); + delay = ApplyJitter(delay, retryOptions.JitterRatio); + return ClampRetryDelay(delay, retryOptions); + } + + internal static async global::System.Threading.Tasks.Task DelayBeforeRetryAsync( + global::System.TimeSpan retryDelay, + global::System.Threading.CancellationToken cancellationToken) + { + if (retryDelay <= global::System.TimeSpan.Zero) + { + return; + } + + await global::System.Threading.Tasks.Task.Delay(retryDelay, cancellationToken).ConfigureAwait(false); + } + + private static bool TryGetRetryAfterDelay( + global::System.Net.Http.HttpResponseMessage? response, + out global::System.TimeSpan delay) + { + delay = global::System.TimeSpan.Zero; + var retryAfter = response?.Headers.RetryAfter; + if (retryAfter == null) + { + return false; + } + + if (retryAfter.Delta.HasValue) + { + delay = retryAfter.Delta.Value; + return delay > global::System.TimeSpan.Zero; + } + + if (retryAfter.Date.HasValue) + { + delay = retryAfter.Date.Value - global::System.DateTimeOffset.UtcNow; + return delay > global::System.TimeSpan.Zero; + } + + return false; + } + + private static bool TryGetRateLimitResetDelay( + global::System.Net.Http.HttpResponseMessage? response, + string? headerName, + out global::System.TimeSpan delay) + { + delay = global::System.TimeSpan.Zero; + if (response == null || string.IsNullOrWhiteSpace(headerName)) + { + return false; + } + + if (!response.Headers.TryGetValues(headerName, out var values) && + (response.Content?.Headers == null || !response.Content.Headers.TryGetValues(headerName, out values))) + { + return false; + } + + var value = global::System.Linq.Enumerable.FirstOrDefault(values); + if (string.IsNullOrWhiteSpace(value)) + { + return false; + } + + value = value.Trim(); + if (long.TryParse( + value, + global::System.Globalization.NumberStyles.Integer, + global::System.Globalization.CultureInfo.InvariantCulture, + out var unixSeconds)) + { + delay = global::System.DateTimeOffset.FromUnixTimeSeconds(unixSeconds) - global::System.DateTimeOffset.UtcNow; + return delay > global::System.TimeSpan.Zero; + } + + if (global::System.DateTimeOffset.TryParse( + value, + global::System.Globalization.CultureInfo.InvariantCulture, + global::System.Globalization.DateTimeStyles.AssumeUniversal | global::System.Globalization.DateTimeStyles.AdjustToUniversal, + out var resetAt)) + { + delay = resetAt - global::System.DateTimeOffset.UtcNow; + return delay > global::System.TimeSpan.Zero; + } + + return false; + } + + private static global::System.TimeSpan ApplyJitter( + global::System.TimeSpan delay, + double jitterRatio) + { + if (delay <= global::System.TimeSpan.Zero || jitterRatio <= 0D) + { + return delay; + } + + if (jitterRatio > 1D) + { + jitterRatio = 1D; + } + + var sample = NextJitterSample(); + var multiplier = 1D - jitterRatio + (sample * jitterRatio * 2D); + var milliseconds = delay.TotalMilliseconds * multiplier; + if (double.IsNaN(milliseconds) || double.IsInfinity(milliseconds) || milliseconds < 0D) + { + milliseconds = 0D; + } + + return global::System.TimeSpan.FromMilliseconds(milliseconds); + } + + private static double NextJitterSample() + { + var bytes = new byte[8]; + using (var randomNumberGenerator = global::System.Security.Cryptography.RandomNumberGenerator.Create()) + { + randomNumberGenerator.GetBytes(bytes); + } + + var value = global::System.BitConverter.ToUInt64(bytes, 0); + return value / (double)ulong.MaxValue; + } + + private static global::System.TimeSpan ClampRetryDelay( + global::System.TimeSpan delay, + global::Replicate.AutoSDKRetryOptions retryOptions) + { + if (delay <= global::System.TimeSpan.Zero) + { + return global::System.TimeSpan.Zero; + } + + var maxDelay = retryOptions.MaxDelay; + if (maxDelay > global::System.TimeSpan.Zero && delay > maxDelay) + { + return maxDelay; + } + + return delay; + } + + internal static bool ShouldRetryStatusCode( + global::System.Net.HttpStatusCode statusCode) + { + return (int)statusCode switch + { + 408 => true, + 429 => true, + 500 => true, + 502 => true, + 503 => true, + 504 => true, + _ => false, + }; + } + + internal static string AppendQueryParameters( + string path, + global::System.Collections.Generic.Dictionary clientParameters, + global::System.Collections.Generic.Dictionary? requestParameters) + { + var hasClientParameters = clientParameters != null && clientParameters.Count > 0; + var hasRequestParameters = requestParameters != null && requestParameters.Count > 0; + if (!hasClientParameters && !hasRequestParameters) + { + return path; + } + + var builder = new global::System.Text.StringBuilder(path ?? string.Empty); + var hasQuery = builder.ToString().IndexOf("?", global::System.StringComparison.Ordinal) >= 0; + AppendParameters(builder, clientParameters, ref hasQuery); + AppendParameters(builder, requestParameters, ref hasQuery); + return builder.ToString(); + } + + internal static void ApplyHeaders( + global::System.Net.Http.HttpRequestMessage request, + global::System.Collections.Generic.Dictionary clientHeaders, + global::System.Collections.Generic.Dictionary? requestHeaders) + { + ApplyHeadersCore(request, clientHeaders); + ApplyHeadersCore(request, requestHeaders); + } + + private static void AppendParameters( + global::System.Text.StringBuilder builder, + global::System.Collections.Generic.Dictionary? parameters, + ref bool hasQuery) + { + if (parameters == null || parameters.Count == 0) + { + return; + } + + foreach (var parameter in parameters) + { + builder.Append(hasQuery ? '&' : '?'); + builder.Append(global::System.Uri.EscapeDataString(parameter.Key)); + builder.Append('='); + builder.Append(global::System.Uri.EscapeDataString(parameter.Value ?? string.Empty)); + hasQuery = true; + } + } + + private static void ApplyHeadersCore( + global::System.Net.Http.HttpRequestMessage request, + global::System.Collections.Generic.Dictionary? headers) + { + if (headers == null || headers.Count == 0) + { + return; + } + + foreach (var header in headers) + { + request.Headers.Remove(header.Key); + request.Content?.Headers.Remove(header.Key); + + if (!request.Headers.TryAddWithoutValidation(header.Key, header.Value ?? string.Empty) && + request.Content != null) + { + request.Content.Headers.TryAddWithoutValidation(header.Key, header.Value ?? string.Empty); + } + } + } + + private static async global::System.Threading.Tasks.Task InvokeHooksAsync( + global::Replicate.AutoSDKClientOptions clientOptions, + global::System.Func callback, + global::Replicate.AutoSDKHookContext context) + { + if (clientOptions.Hooks == null || clientOptions.Hooks.Count == 0) + { + return; + } + + foreach (var hook in clientOptions.Hooks) + { + if (hook == null) + { + continue; + } + + await callback(hook, context).ConfigureAwait(false); + } + } + } +} \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.PathBuilder.g.cs b/src/libs/Replicate/Generated/Replicate.PathBuilder.g.cs index 156b141..8642626 100644 --- a/src/libs/Replicate/Generated/Replicate.PathBuilder.g.cs +++ b/src/libs/Replicate/Generated/Replicate.PathBuilder.g.cs @@ -275,6 +275,11 @@ public class EndPointAuthorization /// public string Type { get; set; } = string.Empty; + /// + /// + /// + public string SchemeId { get; set; } = string.Empty; + /// /// /// diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.AccountGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.AccountGet.g.cs index cd45c02..cf14dab 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.AccountGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.AccountGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -57,9 +58,44 @@ partial void ProcessAccountGetResponseContent( /// }
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task AccountGetAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await AccountGetAsResponseAsync( + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get the authenticated account
+ /// Returns information about the user or organization associated with the provided API token.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/account
+ /// ```
+ /// The response will be a JSON object describing the account:
+ /// ```json
+ /// {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "github_url": "https://github.com/acme",
+ /// }
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> AccountGetAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -73,22 +109,44 @@ partial void ProcessAccountGetResponseContent( securityRequirements: s_AccountGetSecurityRequirements, operationName: "AccountGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/account", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/account", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -98,111 +156,296 @@ partial void ProcessAccountGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareAccountGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareAccountGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessAccountGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "AccountGet", + methodName: "AccountGetAsync", + pathTemplate: "\"/account\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "AccountGet", + methodName: "AccountGetAsync", + pathTemplate: "\"/account\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessAccountGetResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "AccountGet", + methodName: "AccountGetAsync", + pathTemplate: "\"/account\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.AccountGetResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.AccountGetResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessAccountGetResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "AccountGet", + methodName: "AccountGetAsync", + pathTemplate: "\"/account\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "AccountGet", + methodName: "AccountGetAsync", + pathTemplate: "\"/account\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessAccountGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.AccountGetResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.AccountGetResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.Authorizations.Bearer.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.Authorizations.Bearer.g.cs index c01c857..7c56322 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.Authorizations.Bearer.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.Authorizations.Bearer.g.cs @@ -25,6 +25,7 @@ public void AuthorizeUsingBearer( Authorizations.Add(new global::Replicate.EndPointAuthorization { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", Value = apiKey, diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.CollectionsGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.CollectionsGet.g.cs index c4bd04e..7dbfe22 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.CollectionsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.CollectionsGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -60,10 +61,48 @@ partial void ProcessCollectionsGetResponseContent( /// ``` /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task CollectionsGetAsync( string collectionSlug, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await CollectionsGetAsResponseAsync( + collectionSlug: collectionSlug, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get a collection of models
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/collections/super-resolution
+ /// ```
+ /// The response will be a collection object with a nested list of the models in that collection:
+ /// ```json
+ /// {
+ /// "name": "Super resolution",
+ /// "slug": "super-resolution",
+ /// "description": "Upscaling models that create high-quality images from low-quality images.",
+ /// "full_description": "## Overview\n\nThese models generate high-quality images from low-quality images. Many of these models are based on **advanced upscaling techniques**.\n\n### Key Features\n\n- Enhance image resolution\n- Restore fine details\n- Improve overall image quality",
+ /// "models": [...]
+ /// }
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> CollectionsGetAsResponseAsync( + string collectionSlug, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -78,22 +117,44 @@ partial void ProcessCollectionsGetResponseContent( securityRequirements: s_CollectionsGetSecurityRequirements, operationName: "CollectionsGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/collections/{collectionSlug}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/collections/{collectionSlug}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -103,112 +164,297 @@ partial void ProcessCollectionsGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareCollectionsGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - collectionSlug: collectionSlug); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareCollectionsGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + collectionSlug: collectionSlug!); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessCollectionsGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsGet", + methodName: "CollectionsGetAsync", + pathTemplate: "$\"/collections/{collectionSlug}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsGet", + methodName: "CollectionsGetAsync", + pathTemplate: "$\"/collections/{collectionSlug}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessCollectionsGetResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsGet", + methodName: "CollectionsGetAsync", + pathTemplate: "$\"/collections/{collectionSlug}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasCollectionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasCollectionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessCollectionsGetResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsGet", + methodName: "CollectionsGetAsync", + pathTemplate: "$\"/collections/{collectionSlug}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsGet", + methodName: "CollectionsGetAsync", + pathTemplate: "$\"/collections/{collectionSlug}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessCollectionsGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasCollectionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasCollectionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.CollectionsList.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.CollectionsList.g.cs index eb03c36..471fdc4 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.CollectionsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.CollectionsList.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -61,9 +62,48 @@ partial void ProcessCollectionsListResponseContent( /// }
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task CollectionsListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await CollectionsListAsResponseAsync( + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// List collections of models
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/collections
+ /// ```
+ /// The response will be a paginated JSON list of collection objects:
+ /// ```json
+ /// {
+ /// "next": "null",
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "name": "Super resolution",
+ /// "slug": "super-resolution",
+ /// "description": "Upscaling models that create high-quality images from low-quality images."
+ /// }
+ /// ]
+ /// }
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> CollectionsListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -77,22 +117,44 @@ partial void ProcessCollectionsListResponseContent( securityRequirements: s_CollectionsListSecurityRequirements, operationName: "CollectionsListAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/collections", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/collections", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -102,111 +164,296 @@ partial void ProcessCollectionsListResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareCollectionsListRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareCollectionsListRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessCollectionsListResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsList", + methodName: "CollectionsListAsync", + pathTemplate: "\"/collections\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsList", + methodName: "CollectionsListAsync", + pathTemplate: "\"/collections\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessCollectionsListResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsList", + methodName: "CollectionsListAsync", + pathTemplate: "\"/collections\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasPaginatedCollectionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasPaginatedCollectionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessCollectionsListResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsList", + methodName: "CollectionsListAsync", + pathTemplate: "\"/collections\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "CollectionsList", + methodName: "CollectionsListAsync", + pathTemplate: "\"/collections\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessCollectionsListResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasPaginatedCollectionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasPaginatedCollectionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.Constructors.Bearer.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.Constructors.Bearer.g.cs index fc6aa54..6afebdd 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.Constructors.Bearer.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.Constructors.Bearer.g.cs @@ -26,5 +26,6 @@ partial void Authorizing( ref string apiKey); partial void Authorized( global::System.Net.Http.HttpClient client); + } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsCreate.g.cs index d45343a..88c764e 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsCreate.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -86,11 +87,77 @@ partial void ProcessDeploymentsCreateResponseContent( /// ``` /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task DeploymentsCreateAsync( global::Replicate.DeploymentsCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await DeploymentsCreateAsResponseAsync( + + request: request, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Create a deployment
+ /// Create a new deployment:
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -X POST \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H "Content-Type: application/json" \
+ /// -d '{
+ /// "name": "my-app-image-generator",
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 0,
+ /// "max_instances": 3
+ /// }' \
+ /// https://api.replicate.com/v1/deployments
+ /// ```
+ /// The response will be a JSON object describing the deployment:
+ /// ```json
+ /// {
+ /// "owner": "acme",
+ /// "name": "my-app-image-generator",
+ /// "current_release": {
+ /// "number": 1,
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "created_at": "2024-02-15T16:32:57.018467Z",
+ /// "created_by": {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "avatar_url": "https://cdn.replicate.com/avatars/acme.png",
+ /// "github_url": "https://github.com/acme"
+ /// },
+ /// "configuration": {
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 1,
+ /// "max_instances": 5
+ /// }
+ /// }
+ /// }
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> DeploymentsCreateAsResponseAsync( + + global::Replicate.DeploymentsCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { request = request ?? throw new global::System.ArgumentNullException(nameof(request)); @@ -107,22 +174,44 @@ partial void ProcessDeploymentsCreateResponseContent( securityRequirements: s_DeploymentsCreateSecurityRequirements, operationName: "DeploymentsCreateAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/deployments", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Post, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/deployments", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -132,118 +221,303 @@ partial void ProcessDeploymentsCreateResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } - var __httpRequestContentBody = request.ToJson(JsonSerializerContext); - var __httpRequestContent = new global::System.Net.Http.StringContent( - content: __httpRequestContentBody, - encoding: global::System.Text.Encoding.UTF8, - mediaType: "application/json"); - __httpRequest.Content = __httpRequestContent; - - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareDeploymentsCreateRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - request: request); + var __httpRequestContentBody = request.ToJson(JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + __httpRequest.Content = __httpRequestContent; + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareDeploymentsCreateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + request: request); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessDeploymentsCreateResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsCreate", + methodName: "DeploymentsCreateAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsCreate", + methodName: "DeploymentsCreateAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessDeploymentsCreateResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsCreate", + methodName: "DeploymentsCreateAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasDeploymentResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasDeploymentResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessDeploymentsCreateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsCreate", + methodName: "DeploymentsCreateAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsCreate", + methodName: "DeploymentsCreateAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessDeploymentsCreateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasDeploymentResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasDeploymentResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } /// /// Create a deployment
@@ -308,6 +582,7 @@ partial void ProcessDeploymentsCreateResponseContent( /// /// The 64-character string ID of the model version that you want to deploy. /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task DeploymentsCreateAsync( @@ -317,6 +592,7 @@ partial void ProcessDeploymentsCreateResponseContent( string model, string name, string version, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { var __request = new global::Replicate.DeploymentsCreateRequest @@ -331,6 +607,7 @@ partial void ProcessDeploymentsCreateResponseContent( return await DeploymentsCreateAsync( request: __request, + requestOptions: requestOptions, cancellationToken: cancellationToken).ConfigureAwait(false); } } diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsDelete.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsDelete.g.cs index f63de87..64c2445 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsDelete.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsDelete.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -52,11 +53,44 @@ partial void ProcessDeploymentsDeleteResponse( ///
/// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task DeploymentsDeleteAsync( string deploymentOwner, string deploymentName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + await DeploymentsDeleteAsResponseAsync( + deploymentOwner: deploymentOwner, + deploymentName: deploymentName, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + } + /// + /// Delete a deployment
+ /// Delete a deployment
+ /// Deployment deletion has some restrictions:
+ /// - You can only delete deployments that have been offline and unused for at least 15 minutes.
+ /// Example cURL request:
+ /// ```command
+ /// curl -s -X DELETE \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/deployments/acme/my-app-image-generator
+ /// ```
+ /// The response will be an empty 204, indicating the deployment has been deleted. + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task DeploymentsDeleteAsResponseAsync( + string deploymentOwner, + string deploymentName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -72,22 +106,44 @@ partial void ProcessDeploymentsDeleteResponse( securityRequirements: s_DeploymentsDeleteSecurityRequirements, operationName: "DeploymentsDeleteAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/deployments/{deploymentOwner}/{deploymentName}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Delete, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/deployments/{deploymentOwner}/{deploymentName}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Delete, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -97,97 +153,282 @@ partial void ProcessDeploymentsDeleteResponse( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareDeploymentsDeleteRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - deploymentOwner: deploymentOwner, - deploymentName: deploymentName); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareDeploymentsDeleteRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + deploymentOwner: deploymentOwner!, + deploymentName: deploymentName!); + + return __httpRequest; + } - using var __response = await HttpClient.SendAsync( + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try + { + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsDelete", + methodName: "DeploymentsDeleteAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( request: __httpRequest, completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsDelete", + methodName: "DeploymentsDeleteAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponse( - client: HttpClient, - response: __response); - ProcessDeploymentsDeleteResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsDelete", + methodName: "DeploymentsDeleteAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); + break; + } - try + if (__response == null) { - __response.EnsureSuccessStatusCode(); - + throw new global::System.InvalidOperationException("No response received."); } - catch (global::System.Exception __ex) + + using (__response) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - } - else - { - try + + ProcessResponse( + client: HttpClient, + response: __response); + ProcessDeploymentsDeleteResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) { - __response.EnsureSuccessStatusCode(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsDelete", + methodName: "DeploymentsDeleteAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsDelete", + methodName: "DeploymentsDeleteAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsGet.g.cs index 4bf85e7..57934ea 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -79,11 +80,68 @@ partial void ProcessDeploymentsGetResponseContent( /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task DeploymentsGetAsync( string deploymentOwner, string deploymentName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await DeploymentsGetAsResponseAsync( + deploymentOwner: deploymentOwner, + deploymentName: deploymentName, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get a deployment
+ /// Get information about a deployment by name including the current release.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/deployments/replicate/my-app-image-generator
+ /// ```
+ /// The response will be a JSON object describing the deployment:
+ /// ```json
+ /// {
+ /// "owner": "acme",
+ /// "name": "my-app-image-generator",
+ /// "current_release": {
+ /// "number": 1,
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "created_at": "2024-02-15T16:32:57.018467Z",
+ /// "created_by": {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "avatar_url": "https://cdn.replicate.com/avatars/acme.png",
+ /// "github_url": "https://github.com/acme"
+ /// },
+ /// "configuration": {
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 1,
+ /// "max_instances": 5
+ /// }
+ /// }
+ /// }
+ /// ``` + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> DeploymentsGetAsResponseAsync( + string deploymentOwner, + string deploymentName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -99,22 +157,44 @@ partial void ProcessDeploymentsGetResponseContent( securityRequirements: s_DeploymentsGetSecurityRequirements, operationName: "DeploymentsGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/deployments/{deploymentOwner}/{deploymentName}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/deployments/{deploymentOwner}/{deploymentName}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -124,113 +204,298 @@ partial void ProcessDeploymentsGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareDeploymentsGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - deploymentOwner: deploymentOwner, - deploymentName: deploymentName); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareDeploymentsGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + deploymentOwner: deploymentOwner!, + deploymentName: deploymentName!); + + return __httpRequest; + } - using var __response = await HttpClient.SendAsync( + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try + { + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsGet", + methodName: "DeploymentsGetAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( request: __httpRequest, completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsGet", + methodName: "DeploymentsGetAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponse( - client: HttpClient, - response: __response); - ProcessDeploymentsGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsGet", + methodName: "DeploymentsGetAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessDeploymentsGetResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + break; + } - try + if (__response == null) { - __response.EnsureSuccessStatusCode(); - - return - global::Replicate.SchemasDeploymentResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + throw new global::System.InvalidOperationException("No response received."); } - catch (global::System.Exception __ex) - { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasDeploymentResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessDeploymentsGetResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsGet", + methodName: "DeploymentsGetAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsGet", + methodName: "DeploymentsGetAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessDeploymentsGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasDeploymentResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasDeploymentResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsList.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsList.g.cs index fa9ac2b..e74be42 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsList.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -79,9 +80,66 @@ partial void ProcessDeploymentsListResponseContent( /// }
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task DeploymentsListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await DeploymentsListAsResponseAsync( + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// List deployments
+ /// Get a list of deployments associated with the current account, including the latest release configuration for each deployment.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/deployments
+ /// ```
+ /// The response will be a paginated JSON array of deployment objects, sorted with the most recent deployment first:
+ /// ```json
+ /// {
+ /// "next": "http://api.replicate.com/v1/deployments?cursor=cD0yMDIzLTA2LTA2KzIzJTNBNDAlM0EwOC45NjMwMDAlMkIwMCUzQTAw",
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "owner": "replicate",
+ /// "name": "my-app-image-generator",
+ /// "current_release": {
+ /// "number": 1,
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "created_at": "2024-02-15T16:32:57.018467Z",
+ /// "created_by": {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "avatar_url": "https://cdn.replicate.com/avatars/acme.png",
+ /// "github_url": "https://github.com/acme"
+ /// },
+ /// "configuration": {
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 1,
+ /// "max_instances": 5
+ /// }
+ /// }
+ /// }
+ /// ]
+ /// }
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> DeploymentsListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -95,22 +153,44 @@ partial void ProcessDeploymentsListResponseContent( securityRequirements: s_DeploymentsListSecurityRequirements, operationName: "DeploymentsListAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/deployments", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/deployments", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -120,111 +200,296 @@ partial void ProcessDeploymentsListResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareDeploymentsListRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareDeploymentsListRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessDeploymentsListResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsList", + methodName: "DeploymentsListAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsList", + methodName: "DeploymentsListAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessDeploymentsListResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsList", + methodName: "DeploymentsListAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.DeploymentsListResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.DeploymentsListResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessDeploymentsListResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsList", + methodName: "DeploymentsListAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsList", + methodName: "DeploymentsListAsync", + pathTemplate: "\"/deployments\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessDeploymentsListResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.DeploymentsListResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.DeploymentsListResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsPredictionsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsPredictionsCreate.g.cs index 6fb27fb..3e4ea46 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsPredictionsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsPredictionsCreate.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -71,6 +72,7 @@ partial void ProcessDeploymentsPredictionsCreateResponseContent( /// Example: 5m /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task DeploymentsPredictionsCreateAsync( @@ -80,6 +82,56 @@ partial void ProcessDeploymentsPredictionsCreateResponseContent( global::Replicate.SchemasPredictionRequest request, string? prefer = default, string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await DeploymentsPredictionsCreateAsResponseAsync( + deploymentOwner: deploymentOwner, + deploymentName: deploymentName, + + request: request, + prefer: prefer, + cancelAfter: cancelAfter, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Create a prediction using a deployment
+ /// Create a prediction for the deployment and inputs you provide.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST -H 'Prefer: wait' \
+ /// -d '{"input": {"prompt": "A photo of a bear riding a bicycle over the moon"}}' \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// https://api.replicate.com/v1/deployments/acme/my-app-image-generator/predictions
+ /// ```
+ /// The request will wait up to 60 seconds for the model to run. If this time is exceeded the prediction will be returned in a `"starting"` state and need to be retrieved using the `predictions.get` endpoint.
+ /// For a complete overview of the `deployments.predictions.create` API check out our documentation on [creating a prediction](https://replicate.com/docs/topics/predictions/create-a-prediction) which covers a variety of use cases. + ///
+ /// + /// + /// + /// Example: wait=5 + /// + /// + /// Example: 5m + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> DeploymentsPredictionsCreateAsResponseAsync( + string deploymentOwner, + string deploymentName, + + global::Replicate.SchemasPredictionRequest request, + string? prefer = default, + string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { request = request ?? throw new global::System.ArgumentNullException(nameof(request)); @@ -100,22 +152,44 @@ partial void ProcessDeploymentsPredictionsCreateResponseContent( securityRequirements: s_DeploymentsPredictionsCreateSecurityRequirements, operationName: "DeploymentsPredictionsCreateAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/deployments/{deploymentOwner}/{deploymentName}/predictions", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Post, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: false); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/deployments/{deploymentOwner}/{deploymentName}/predictions", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -125,7 +199,7 @@ partial void ProcessDeploymentsPredictionsCreateResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } if (prefer != default) @@ -137,120 +211,305 @@ partial void ProcessDeploymentsPredictionsCreateResponseContent( __httpRequest.Headers.TryAddWithoutValidation("Cancel-After", cancelAfter.ToString()); } - var __httpRequestContentBody = request.ToJson(JsonSerializerContext); - var __httpRequestContent = new global::System.Net.Http.StringContent( - content: __httpRequestContentBody, - encoding: global::System.Text.Encoding.UTF8, - mediaType: "application/json"); - __httpRequest.Content = __httpRequestContent; - - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareDeploymentsPredictionsCreateRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - deploymentOwner: deploymentOwner, - deploymentName: deploymentName, - prefer: prefer, - cancelAfter: cancelAfter, - request: request); + var __httpRequestContentBody = request.ToJson(JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + __httpRequest.Content = __httpRequestContent; + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareDeploymentsPredictionsCreateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + deploymentOwner: deploymentOwner!, + deploymentName: deploymentName!, + prefer: prefer, + cancelAfter: cancelAfter, + request: request); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessDeploymentsPredictionsCreateResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsPredictionsCreate", + methodName: "DeploymentsPredictionsCreateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsPredictionsCreate", + methodName: "DeploymentsPredictionsCreateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessDeploymentsPredictionsCreateResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsPredictionsCreate", + methodName: "DeploymentsPredictionsCreateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessDeploymentsPredictionsCreateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsPredictionsCreate", + methodName: "DeploymentsPredictionsCreateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsPredictionsCreate", + methodName: "DeploymentsPredictionsCreateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessDeploymentsPredictionsCreateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } /// /// Create a prediction using a deployment
@@ -315,6 +574,7 @@ partial void ProcessDeploymentsPredictionsCreateResponseContent( /// Requests for event types `output` and `logs` will be sent at most once every 500ms. If you request `start` and `completed` webhooks, then they'll always be sent regardless of throttling.
/// Example: [start, completed] /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task DeploymentsPredictionsCreateAsync( @@ -326,6 +586,7 @@ partial void ProcessDeploymentsPredictionsCreateResponseContent( bool? stream = default, string? webhook = default, global::System.Collections.Generic.IList? webhookEventsFilter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { var __request = new global::Replicate.SchemasPredictionRequest @@ -342,6 +603,7 @@ partial void ProcessDeploymentsPredictionsCreateResponseContent( prefer: prefer, cancelAfter: cancelAfter, request: __request, + requestOptions: requestOptions, cancellationToken: cancellationToken).ConfigureAwait(false); } } diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsUpdate.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsUpdate.g.cs index c0d8dcb..b49e0e4 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsUpdate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.DeploymentsUpdate.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -86,6 +87,7 @@ partial void ProcessDeploymentsUpdateResponseContent( /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task DeploymentsUpdateAsync( @@ -93,6 +95,71 @@ partial void ProcessDeploymentsUpdateResponseContent( string deploymentName, global::Replicate.DeploymentsUpdateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await DeploymentsUpdateAsResponseAsync( + deploymentOwner: deploymentOwner, + deploymentName: deploymentName, + + request: request, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Update a deployment
+ /// Update properties of an existing deployment, including hardware, min/max instances, and the deployment's underlying model [version](https://replicate.com/docs/how-does-replicate-work#versions).
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -X PATCH \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H "Content-Type: application/json" \
+ /// -d '{"min_instances": 3, "max_instances": 10}' \
+ /// https://api.replicate.com/v1/deployments/acme/my-app-image-generator
+ /// ```
+ /// The response will be a JSON object describing the deployment:
+ /// ```json
+ /// {
+ /// "owner": "acme",
+ /// "name": "my-app-image-generator",
+ /// "current_release": {
+ /// "number": 2,
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "created_at": "2024-02-15T16:32:57.018467Z",
+ /// "created_by": {
+ /// "type": "organization",
+ /// "username": "acme",
+ /// "name": "Acme Corp, Inc.",
+ /// "avatar_url": "https://cdn.replicate.com/avatars/acme.png",
+ /// "github_url": "https://github.com/acme"
+ /// },
+ /// "configuration": {
+ /// "hardware": "gpu-t4",
+ /// "min_instances": 3,
+ /// "max_instances": 10
+ /// }
+ /// }
+ /// }
+ /// ```
+ /// Updating any deployment properties will increment the `number` field of the `current_release`. + ///
+ /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> DeploymentsUpdateAsResponseAsync( + string deploymentOwner, + string deploymentName, + + global::Replicate.DeploymentsUpdateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { request = request ?? throw new global::System.ArgumentNullException(nameof(request)); @@ -111,22 +178,44 @@ partial void ProcessDeploymentsUpdateResponseContent( securityRequirements: s_DeploymentsUpdateSecurityRequirements, operationName: "DeploymentsUpdateAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/deployments/{deploymentOwner}/{deploymentName}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: new global::System.Net.Http.HttpMethod("PATCH"), - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/deployments/{deploymentOwner}/{deploymentName}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: new global::System.Net.Http.HttpMethod("PATCH"), + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -136,120 +225,305 @@ partial void ProcessDeploymentsUpdateResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } - var __httpRequestContentBody = request.ToJson(JsonSerializerContext); - var __httpRequestContent = new global::System.Net.Http.StringContent( - content: __httpRequestContentBody, - encoding: global::System.Text.Encoding.UTF8, - mediaType: "application/json"); - __httpRequest.Content = __httpRequestContent; - - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareDeploymentsUpdateRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - deploymentOwner: deploymentOwner, - deploymentName: deploymentName, - request: request); + var __httpRequestContentBody = request.ToJson(JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + __httpRequest.Content = __httpRequestContent; + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareDeploymentsUpdateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + deploymentOwner: deploymentOwner!, + deploymentName: deploymentName!, + request: request); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessDeploymentsUpdateResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsUpdate", + methodName: "DeploymentsUpdateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsUpdate", + methodName: "DeploymentsUpdateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessDeploymentsUpdateResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsUpdate", + methodName: "DeploymentsUpdateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasDeploymentResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasDeploymentResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessDeploymentsUpdateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsUpdate", + methodName: "DeploymentsUpdateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "DeploymentsUpdate", + methodName: "DeploymentsUpdateAsync", + pathTemplate: "$\"/deployments/{deploymentOwner}/{deploymentName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessDeploymentsUpdateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasDeploymentResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasDeploymentResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } /// /// Update a deployment
@@ -304,6 +578,7 @@ partial void ProcessDeploymentsUpdateResponseContent( /// /// The ID of the model version that you want to deploy /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task DeploymentsUpdateAsync( @@ -313,6 +588,7 @@ partial void ProcessDeploymentsUpdateResponseContent( int? maxInstances = default, int? minInstances = default, string? version = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { var __request = new global::Replicate.DeploymentsUpdateRequest @@ -327,6 +603,7 @@ partial void ProcessDeploymentsUpdateResponseContent( deploymentOwner: deploymentOwner, deploymentName: deploymentName, request: __request, + requestOptions: requestOptions, cancellationToken: cancellationToken).ConfigureAwait(false); } } diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesCreate.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesCreate.g.cs index e5117ff..a98b808 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesCreate.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -58,11 +59,49 @@ partial void ProcessFilesCreateResponseContent( /// - `metadata`: User-provided metadata associated with the file (defaults to `{}`, must be valid JSON) ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task FilesCreateAsync( global::Replicate.FilesCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await FilesCreateAsResponseAsync( + + request: request, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Create a file
+ /// Create a file by uploading its content and optional metadata.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X POST https://api.replicate.com/v1/files \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: multipart/form-data' \
+ /// -F 'content=@/path/to/archive.zip;type=application/zip;filename=example.zip' \
+ /// -F 'metadata={"customer_reference_id": 123};type=application/json'
+ /// ```
+ /// The request must include:
+ /// - `content`: The file content (required)
+ /// - `type`: The content / MIME type for the file (defaults to `application/octet-stream`)
+ /// - `filename`: The filename (required, ≤ 255 bytes, valid UTF-8)
+ /// - `metadata`: User-provided metadata associated with the file (defaults to `{}`, must be valid JSON) + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> FilesCreateAsResponseAsync( + + global::Replicate.FilesCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { request = request ?? throw new global::System.ArgumentNullException(nameof(request)); @@ -79,22 +118,44 @@ partial void ProcessFilesCreateResponseContent( securityRequirements: s_FilesCreateSecurityRequirements, operationName: "FilesCreateAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/files", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Post, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: false); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/files", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -104,182 +165,967 @@ partial void ProcessFilesCreateResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } - using var __httpRequestContent = new global::System.Net.Http.MultipartFormDataContent(); - var __contentContent = new global::System.Net.Http.ByteArrayContent(request.Content ?? global::System.Array.Empty()); - __httpRequestContent.Add( - content: __contentContent, - name: "\"content\"", - fileName: request.Contentname != null ? $"\"{request.Contentname}\"" : string.Empty); - if (__contentContent.Headers.ContentDisposition != null) - { - __contentContent.Headers.ContentDisposition.FileNameStar = null; - } - if (request.Filename != default) - { - __httpRequestContent.Add( - content: new global::System.Net.Http.StringContent($"{request.Filename}"), - name: "\"filename\""); - } - if (request.Metadata != default) - { + var __httpRequestContent = new global::System.Net.Http.MultipartFormDataContent(); + var __contentContent = new global::System.Net.Http.ByteArrayContent(request.Content ?? global::System.Array.Empty()); + __contentContent.Headers.ContentType = new global::System.Net.Http.Headers.MediaTypeHeaderValue( + request.Contentname is null + ? "application/octet-stream" + : (global::System.IO.Path.GetExtension(request.Contentname) ?? string.Empty).ToLowerInvariant() switch + { + ".aac" => "audio/aac", + ".flac" => "audio/flac", + ".gif" => "image/gif", + ".jpeg" => "image/jpeg", + ".jpg" => "image/jpeg", + ".json" => "application/json", + ".m4a" => "audio/mp4", + ".mp3" => "audio/mpeg", + ".mp4" => "video/mp4", + ".mpeg" => "audio/mpeg", + ".mpga" => "audio/mpeg", + ".oga" => "audio/ogg", + ".ogg" => "audio/ogg", + ".opus" => "audio/ogg", + ".pdf" => "application/pdf", + ".png" => "image/png", + ".txt" => "text/plain", + ".wav" => "audio/wav", + ".weba" => "audio/webm", + ".webm" => "video/webm", + ".webp" => "image/webp", + _ => "application/octet-stream", + }); + __httpRequestContent.Add( + content: __contentContent, + name: "\"content\"", + fileName: request.Contentname != null ? $"\"{request.Contentname}\"" : string.Empty); + if (__contentContent.Headers.ContentDisposition != null) + { + __contentContent.Headers.ContentDisposition.FileNameStar = null; + } - __httpRequestContent.Add( - content: new global::System.Net.Http.StringContent($"{request.Metadata}"), - name: "\"metadata\""); - } - if (request.Type != default) - { + if (request.Filename != default) + { - __httpRequestContent.Add( - content: new global::System.Net.Http.StringContent($"{request.Type}"), - name: "\"type\""); - } - __httpRequest.Content = __httpRequestContent; + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Filename ?? string.Empty), + name: "\"filename\""); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareFilesCreateRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - request: request); + } + if (request.Metadata != default) + { - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Metadata.ToString() ?? string.Empty), + name: "\"metadata\""); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessFilesCreateResponse( - httpClient: HttpClient, - httpResponseMessage: __response); - // Content Too Large - if ((int)__response.StatusCode == 413) + } + if (request.Type != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Type ?? string.Empty), + name: "\"type\""); + + } + + __httpRequest.Content = __httpRequestContent; + + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); + + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareFilesCreateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + request: request); + + return __httpRequest; + } + + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - string? __content_413 = null; - global::System.Exception? __exception_413 = null; - global::Replicate.FilesCreateResponse? __value_413 = null; - try + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) { - if (ReadResponseAsString) + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try { - __content_413 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); - __value_413 = global::Replicate.FilesCreateResponse.FromJson(__content_413, JsonSerializerContext); + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); } - else + catch (global::System.Net.Http.HttpRequestException __exception) { - __content_413 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - __value_413 = global::Replicate.FilesCreateResponse.FromJson(__content_413, JsonSerializerContext); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } + + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } + + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - __exception_413 = __ex; + throw new global::System.InvalidOperationException("No response received."); } - throw new global::Replicate.ApiException( - message: __content_413 ?? __response.ReasonPhrase ?? string.Empty, - innerException: __exception_413, - statusCode: __response.StatusCode) + using (__response) { - ResponseBody = __content_413, - ResponseObject = __value_413, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - - ProcessResponseContent( + ProcessResponse( client: HttpClient, - response: __response, - content: ref __content); - ProcessFilesCreateResponseContent( + response: __response); + ProcessFilesCreateResponse( httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); - - try + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) { - __response.EnsureSuccessStatusCode(); - - return - global::Replicate.SchemasFileResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + // Content Too Large + if ((int)__response.StatusCode == 413) + { + string? __content_413 = null; + global::System.Exception? __exception_413 = null; + global::Replicate.FilesCreateResponse? __value_413 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_413 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_413 = global::Replicate.FilesCreateResponse.FromJson(__content_413, JsonSerializerContext); + } + else + { + __content_413 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + + __value_413 = global::Replicate.FilesCreateResponse.FromJson(__content_413, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_413 = __ex; + } + + throw new global::Replicate.ApiException( + message: __content_413 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_413, + statusCode: __response.StatusCode) + { + ResponseBody = __content_413, + ResponseObject = __value_413, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessFilesCreateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasFileResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasFileResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + } } - else + finally { - try - { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken + __httpRequest?.Dispose(); + } + } + /// + /// Create a file
+ /// Create a file by uploading its content and optional metadata.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X POST https://api.replicate.com/v1/files \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: multipart/form-data' \
+ /// -F 'content=@/path/to/archive.zip;type=application/zip;filename=example.zip' \
+ /// -F 'metadata={"customer_reference_id": 123};type=application/json'
+ /// ```
+ /// The request must include:
+ /// - `content`: The file content (required)
+ /// - `type`: The content / MIME type for the file (defaults to `application/octet-stream`)
+ /// - `filename`: The filename (required, ≤ 255 bytes, valid UTF-8)
+ /// - `metadata`: User-provided metadata associated with the file (defaults to `{}`, must be valid JSON) + ///
+ /// + /// The file content + /// + /// + /// The file content + /// + /// + /// The filename + /// + /// + /// User-provided metadata associated with the file
+ /// Default Value: {} + /// + /// + /// The content / MIME type for the file
+ /// Default Value: application/octet-stream + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task FilesCreateAsync( + byte[] content, + string contentname, + string? filename = default, + object? metadata = default, + string? type = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __request = new global::Replicate.FilesCreateRequest + { + Content = content, + Contentname = contentname, + Filename = filename, + Metadata = metadata, + Type = type, + }; + + return await FilesCreateAsync( + request: __request, + requestOptions: requestOptions, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// Create a file
+ /// Create a file by uploading its content and optional metadata.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X POST https://api.replicate.com/v1/files \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: multipart/form-data' \
+ /// -F 'content=@/path/to/archive.zip;type=application/zip;filename=example.zip' \
+ /// -F 'metadata={"customer_reference_id": 123};type=application/json'
+ /// ```
+ /// The request must include:
+ /// - `content`: The file content (required)
+ /// - `type`: The content / MIME type for the file (defaults to `application/octet-stream`)
+ /// - `filename`: The filename (required, ≤ 255 bytes, valid UTF-8)
+ /// - `metadata`: User-provided metadata associated with the file (defaults to `{}`, must be valid JSON) + ///
+ /// + /// The file content + /// + /// + /// The file content + /// + /// + /// The filename + /// + /// + /// User-provided metadata associated with the file
+ /// Default Value: {} + /// + /// + /// The content / MIME type for the file
+ /// Default Value: application/octet-stream + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task FilesCreateAsync( + global::System.IO.Stream content, + string contentname, + string? filename = default, + object? metadata = default, + string? type = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + + content = content ?? throw new global::System.ArgumentNullException(nameof(content)); + var request = new global::Replicate.FilesCreateRequest + { + Content = global::System.Array.Empty(), + Contentname = contentname, + Filename = filename, + Metadata = metadata, + Type = type, + }; + PrepareArguments( + client: HttpClient); + PrepareFilesCreateArguments( + httpClient: HttpClient, + request: request); + + + var __authorizations = global::Replicate.EndPointSecurityResolver.ResolveAuthorizations( + availableAuthorizations: Authorizations, + securityRequirements: s_FilesCreateSecurityRequirements, + operationName: "FilesCreateAsync"); + + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: false); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/files", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); +#if NET6_0_OR_GREATER + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasFileResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + foreach (var __authorization in __authorizations) + { + if (__authorization.Type == "Http" || + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") + { + __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( + scheme: __authorization.Name, + parameter: __authorization.Value); } - catch (global::System.Exception __ex) + else if (__authorization.Type == "ApiKey" && + __authorization.Location == "Header") + { + __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); + } + } + + var __httpRequestContent = new global::System.Net.Http.MultipartFormDataContent(); + var __contentContent = new global::System.Net.Http.StreamContent(content); + __contentContent.Headers.ContentType = new global::System.Net.Http.Headers.MediaTypeHeaderValue( + request.Contentname is null + ? "application/octet-stream" + : (global::System.IO.Path.GetExtension(request.Contentname) ?? string.Empty).ToLowerInvariant() switch + { + ".aac" => "audio/aac", + ".flac" => "audio/flac", + ".gif" => "image/gif", + ".jpeg" => "image/jpeg", + ".jpg" => "image/jpeg", + ".json" => "application/json", + ".m4a" => "audio/mp4", + ".mp3" => "audio/mpeg", + ".mp4" => "video/mp4", + ".mpeg" => "audio/mpeg", + ".mpga" => "audio/mpeg", + ".oga" => "audio/ogg", + ".ogg" => "audio/ogg", + ".opus" => "audio/ogg", + ".pdf" => "application/pdf", + ".png" => "image/png", + ".txt" => "text/plain", + ".wav" => "audio/wav", + ".weba" => "audio/webm", + ".webm" => "video/webm", + ".webp" => "image/webp", + _ => "application/octet-stream", + }); + __httpRequestContent.Add( + content: __contentContent, + name: "\"content\"", + fileName: request.Contentname != null ? $"\"{request.Contentname}\"" : string.Empty); + if (__contentContent.Headers.ContentDisposition != null) + { + __contentContent.Headers.ContentDisposition.FileNameStar = null; + } + + if (request.Filename != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Filename ?? string.Empty), + name: "\"filename\""); + + } + if (request.Metadata != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Metadata.ToString() ?? string.Empty), + name: "\"metadata\""); + + } + if (request.Type != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Type ?? string.Empty), + name: "\"type\""); + + } + + __httpRequest.Content = __httpRequestContent; + + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); + + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareFilesCreateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + request: request); + + return __httpRequest; + } + + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try + { + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) { - string? __content = null; + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); try { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); } - catch (global::System.Exception) + catch (global::System.Net.Http.HttpRequestException __exception) { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } + + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } + + break; + } + + if (__response == null) + { + throw new global::System.InvalidOperationException("No response received."); + } + + using (__response) + { + + ProcessResponse( + client: HttpClient, + response: __response); + ProcessFilesCreateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + else + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + // Content Too Large + if ((int)__response.StatusCode == 413) + { + string? __content_413 = null; + global::System.Exception? __exception_413 = null; + global::Replicate.FilesCreateResponse? __value_413 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_413 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_413 = global::Replicate.FilesCreateResponse.FromJson(__content_413, JsonSerializerContext); + } + else + { + __content_413 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + + __value_413 = global::Replicate.FilesCreateResponse.FromJson(__content_413, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_413 = __ex; + } + + throw new global::Replicate.ApiException( + message: __content_413 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_413, + statusCode: __response.StatusCode) + { + ResponseBody = __content_413, + ResponseObject = __value_413, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessFilesCreateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + return + global::Replicate.SchemasFileResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + return + await global::Replicate.SchemasFileResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + } } + finally + { + __httpRequest?.Dispose(); + } } /// /// Create a file
@@ -315,28 +1161,483 @@ partial void ProcessFilesCreateResponseContent( /// The content / MIME type for the file
/// Default Value: application/octet-stream /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with - /// - public async global::System.Threading.Tasks.Task FilesCreateAsync( - byte[] content, + /// + public async global::System.Threading.Tasks.Task> FilesCreateAsResponseAsync( + global::System.IO.Stream content, string contentname, string? filename = default, object? metadata = default, string? type = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { - var __request = new global::Replicate.FilesCreateRequest + + content = content ?? throw new global::System.ArgumentNullException(nameof(content)); + var request = new global::Replicate.FilesCreateRequest { - Content = content, + Content = global::System.Array.Empty(), Contentname = contentname, Filename = filename, Metadata = metadata, Type = type, }; + PrepareArguments( + client: HttpClient); + PrepareFilesCreateArguments( + httpClient: HttpClient, + request: request); - return await FilesCreateAsync( - request: __request, - cancellationToken: cancellationToken).ConfigureAwait(false); + + var __authorizations = global::Replicate.EndPointSecurityResolver.ResolveAuthorizations( + availableAuthorizations: Authorizations, + securityRequirements: s_FilesCreateSecurityRequirements, + operationName: "FilesCreateAsync"); + + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: false); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/files", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); +#if NET6_0_OR_GREATER + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; +#endif + + foreach (var __authorization in __authorizations) + { + if (__authorization.Type == "Http" || + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") + { + __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( + scheme: __authorization.Name, + parameter: __authorization.Value); + } + else if (__authorization.Type == "ApiKey" && + __authorization.Location == "Header") + { + __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); + } + } + + var __httpRequestContent = new global::System.Net.Http.MultipartFormDataContent(); + var __contentContent = new global::System.Net.Http.StreamContent(content); + __contentContent.Headers.ContentType = new global::System.Net.Http.Headers.MediaTypeHeaderValue( + request.Contentname is null + ? "application/octet-stream" + : (global::System.IO.Path.GetExtension(request.Contentname) ?? string.Empty).ToLowerInvariant() switch + { + ".aac" => "audio/aac", + ".flac" => "audio/flac", + ".gif" => "image/gif", + ".jpeg" => "image/jpeg", + ".jpg" => "image/jpeg", + ".json" => "application/json", + ".m4a" => "audio/mp4", + ".mp3" => "audio/mpeg", + ".mp4" => "video/mp4", + ".mpeg" => "audio/mpeg", + ".mpga" => "audio/mpeg", + ".oga" => "audio/ogg", + ".ogg" => "audio/ogg", + ".opus" => "audio/ogg", + ".pdf" => "application/pdf", + ".png" => "image/png", + ".txt" => "text/plain", + ".wav" => "audio/wav", + ".weba" => "audio/webm", + ".webm" => "video/webm", + ".webp" => "image/webp", + _ => "application/octet-stream", + }); + __httpRequestContent.Add( + content: __contentContent, + name: "\"content\"", + fileName: request.Contentname != null ? $"\"{request.Contentname}\"" : string.Empty); + if (__contentContent.Headers.ContentDisposition != null) + { + __contentContent.Headers.ContentDisposition.FileNameStar = null; + } + + if (request.Filename != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Filename ?? string.Empty), + name: "\"filename\""); + + } + if (request.Metadata != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Metadata.ToString() ?? string.Empty), + name: "\"metadata\""); + + } + if (request.Type != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Type ?? string.Empty), + name: "\"type\""); + + } + + __httpRequest.Content = __httpRequestContent; + + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); + + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareFilesCreateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + request: request); + + return __httpRequest; + } + + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try + { + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } + + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } + + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } + + break; + } + + if (__response == null) + { + throw new global::System.InvalidOperationException("No response received."); + } + + using (__response) + { + + ProcessResponse( + client: HttpClient, + response: __response); + ProcessFilesCreateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + else + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesCreate", + methodName: "FilesCreateAsync", + pathTemplate: "\"/files\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + // Content Too Large + if ((int)__response.StatusCode == 413) + { + string? __content_413 = null; + global::System.Exception? __exception_413 = null; + global::Replicate.FilesCreateResponse? __value_413 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_413 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_413 = global::Replicate.FilesCreateResponse.FromJson(__content_413, JsonSerializerContext); + } + else + { + __content_413 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + + __value_413 = global::Replicate.FilesCreateResponse.FromJson(__content_413, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_413 = __ex; + } + + throw new global::Replicate.ApiException( + message: __content_413 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_413, + statusCode: __response.StatusCode) + { + ResponseBody = __content_413, + ResponseObject = __value_413, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessFilesCreateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasFileResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasFileResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + + } + } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesDelete.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesDelete.g.cs index 8ba7b95..3f82b4f 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesDelete.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesDelete.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -46,10 +47,37 @@ partial void ProcessFilesDeleteResponse( /// ``` ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task FilesDeleteAsync( string fileId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + await FilesDeleteAsResponseAsync( + fileId: fileId, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + } + /// + /// Delete a file
+ /// Delete a file. Once a file has been deleted, subsequent requests to the file resource return 404 Not found.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X DELETE \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/files/cneqzikepnug6xezperrr4z55o
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task FilesDeleteAsResponseAsync( + string fileId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -64,22 +92,44 @@ partial void ProcessFilesDeleteResponse( securityRequirements: s_FilesDeleteSecurityRequirements, operationName: "FilesDeleteAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/files/{fileId}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Delete, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/files/{fileId}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Delete, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -89,134 +139,319 @@ partial void ProcessFilesDeleteResponse( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareFilesDeleteRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - fileId: fileId); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareFilesDeleteRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + fileId: fileId!); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + return __httpRequest; + } - ProcessResponse( - client: HttpClient, - response: __response); - ProcessFilesDeleteResponse( - httpClient: HttpClient, - httpResponseMessage: __response); - // File not found - if ((int)__response.StatusCode == 404) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - string? __content_404 = null; - global::System.Exception? __exception_404 = null; - global::Replicate.FilesDeleteResponse? __value_404 = null; - try + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) { - if (ReadResponseAsString) + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDelete", + methodName: "FilesDeleteAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try { - __content_404 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); - __value_404 = global::Replicate.FilesDeleteResponse.FromJson(__content_404, JsonSerializerContext); + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); } - else + catch (global::System.Net.Http.HttpRequestException __exception) { - __content_404 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDelete", + methodName: "FilesDeleteAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - __value_404 = global::Replicate.FilesDeleteResponse.FromJson(__content_404, JsonSerializerContext); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } + + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDelete", + methodName: "FilesDeleteAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } + + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - __exception_404 = __ex; + throw new global::System.InvalidOperationException("No response received."); } - throw new global::Replicate.ApiException( - message: __content_404 ?? __response.ReasonPhrase ?? string.Empty, - innerException: __exception_404, - statusCode: __response.StatusCode) + using (__response) { - ResponseBody = __content_404, - ResponseObject = __value_404, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - - ProcessResponseContent( + ProcessResponse( client: HttpClient, - response: __response, - content: ref __content); - - try + response: __response); + ProcessFilesDeleteResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) { - __response.EnsureSuccessStatusCode(); - - } - catch (global::System.Exception __ex) - { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDelete", + methodName: "FilesDeleteAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - } - else - { - try + else { - __response.EnsureSuccessStatusCode(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDelete", + methodName: "FilesDeleteAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) - { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + // File not found + if ((int)__response.StatusCode == 404) + { + string? __content_404 = null; + global::System.Exception? __exception_404 = null; + global::Replicate.FilesDeleteResponse? __value_404 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_404 = global::Replicate.FilesDeleteResponse.FromJson(__content_404, JsonSerializerContext); + } + else + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + + __value_404 = global::Replicate.FilesDeleteResponse.FromJson(__content_404, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_404 = __ex; + } + + throw new global::Replicate.ApiException( + message: __content_404 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_404, + statusCode: __response.StatusCode) + { + ResponseBody = __content_404, + ResponseObject = __value_404, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesDownload.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesDownload.g.cs index a1fc9a2..82db761 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesDownload.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesDownload.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -58,6 +59,7 @@ partial void ProcessFilesDownloadResponseContent( /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task FilesDownloadAsync( @@ -65,6 +67,41 @@ partial void ProcessFilesDownloadResponseContent( string owner, long expiry, string signature, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await FilesDownloadAsResponseAsync( + fileId: fileId, + owner: owner, + expiry: expiry, + signature: signature, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Download a file
+ /// Download a file by providing the file owner, access expiry, and a valid signature.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X GET "https://api.replicate.com/v1/files/cneqzikepnug6xezperrr4z55o/download?expiry=1708515345&owner=mattt&signature=zuoghqlrcnw8YHywkpaXQlHsVhWen%2FDZ4aal76dLiOo%3D"
+ /// ``` + ///
+ /// + /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task FilesDownloadAsStreamAsync( + string fileId, + string owner, + long expiry, + string signature, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -82,27 +119,49 @@ partial void ProcessFilesDownloadResponseContent( securityRequirements: s_FilesDownloadSecurityRequirements, operationName: "FilesDownloadAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/files/{fileId}/download", - baseUri: HttpClient.BaseAddress); - __pathBuilder - .AddRequiredParameter("owner", owner) - .AddRequiredParameter("expiry", expiry.ToString()!) - .AddRequiredParameter("signature", signature) - ; - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/files/{fileId}/download", + baseUri: HttpClient.BaseAddress); + __pathBuilder + .AddRequiredParameter("owner", owner) + .AddRequiredParameter("expiry", expiry.ToString()!) + .AddRequiredParameter("signature", signature) + ; + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -112,143 +171,704 @@ partial void ProcessFilesDownloadResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareFilesDownloadRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - fileId: fileId, - owner: owner, - expiry: expiry, - signature: signature); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareFilesDownloadRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + fileId: fileId!, + owner: owner!, + expiry: expiry!, + signature: signature!); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + return __httpRequest; + } - ProcessResponse( - client: HttpClient, - response: __response); - ProcessFilesDownloadResponse( - httpClient: HttpClient, - httpResponseMessage: __response); - // File not found - if ((int)__response.StatusCode == 404) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - string? __content_404 = null; - global::System.Exception? __exception_404 = null; - global::Replicate.FilesDownloadResponse? __value_404 = null; - try + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) { - if (ReadResponseAsString) + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try { - __content_404 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); - __value_404 = global::Replicate.FilesDownloadResponse.FromJson(__content_404, JsonSerializerContext); + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseHeadersRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); } - else + catch (global::System.Net.Http.HttpRequestException __exception) { - __content_404 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - __value_404 = global::Replicate.FilesDownloadResponse.FromJson(__content_404, JsonSerializerContext); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } + + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } + + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - __exception_404 = __ex; + throw new global::System.InvalidOperationException("No response received."); } - throw new global::Replicate.ApiException( - message: __content_404 ?? __response.ReasonPhrase ?? string.Empty, - innerException: __exception_404, - statusCode: __response.StatusCode) + try { - ResponseBody = __content_404, - ResponseObject = __value_404, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsByteArrayAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - - ProcessFilesDownloadResponseContent( + ProcessResponse( + client: HttpClient, + response: __response); + ProcessFilesDownloadResponse( httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); - - try + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) { - __response.EnsureSuccessStatusCode(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + else + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + // File not found + if ((int)__response.StatusCode == 404) + { + string? __content_404 = null; + global::System.Exception? __exception_404 = null; + global::Replicate.FilesDownloadResponse? __value_404 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_404 = global::Replicate.FilesDownloadResponse.FromJson(__content_404, JsonSerializerContext); + } + else + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + + __value_404 = global::Replicate.FilesDownloadResponse.FromJson(__content_404, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_404 = __ex; + } + + throw new global::Replicate.ApiException( + message: __content_404 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_404, + statusCode: __response.StatusCode) + { + ResponseBody = __content_404, + ResponseObject = __value_404, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + + try + { + __response.EnsureSuccessStatusCode(); + + var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + return new global::Replicate.ResponseStream(__response, __content); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } - return __content; } - catch (global::System.Exception __ex) + catch { - throw new global::Replicate.ApiException( - message: __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + __response.Dispose(); + throw; } } - else + finally { - try - { - __response.EnsureSuccessStatusCode(); - var __content = await __response.Content.ReadAsByteArrayAsync( -#if NET5_0_OR_GREATER - cancellationToken + __httpRequest?.Dispose(); + } + } + /// + /// Download a file
+ /// Download a file by providing the file owner, access expiry, and a valid signature.
+ /// Example cURL request:
+ /// ```console
+ /// curl -X GET "https://api.replicate.com/v1/files/cneqzikepnug6xezperrr4z55o/download?expiry=1708515345&owner=mattt&signature=zuoghqlrcnw8YHywkpaXQlHsVhWen%2FDZ4aal76dLiOo%3D"
+ /// ``` + ///
+ /// + /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> FilesDownloadAsResponseAsync( + string fileId, + string owner, + long expiry, + string signature, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + PrepareArguments( + client: HttpClient); + PrepareFilesDownloadArguments( + httpClient: HttpClient, + fileId: ref fileId, + owner: ref owner, + expiry: ref expiry, + signature: ref signature); + + + var __authorizations = global::Replicate.EndPointSecurityResolver.ResolveAuthorizations( + availableAuthorizations: Authorizations, + securityRequirements: s_FilesDownloadSecurityRequirements, + operationName: "FilesDownloadAsync"); + + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/files/{fileId}/download", + baseUri: HttpClient.BaseAddress); + __pathBuilder + .AddRequiredParameter("owner", owner) + .AddRequiredParameter("expiry", expiry.ToString()!) + .AddRequiredParameter("signature", signature) + ; + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); +#if NET6_0_OR_GREATER + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif - ).ConfigureAwait(false); - return __content; + foreach (var __authorization in __authorizations) + { + if (__authorization.Type == "Http" || + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") + { + __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( + scheme: __authorization.Name, + parameter: __authorization.Value); } - catch (global::System.Exception __ex) + else if (__authorization.Type == "ApiKey" && + __authorization.Location == "Header") { - string? __content = null; + __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); + } + } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); + + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareFilesDownloadRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + fileId: fileId!, + owner: owner!, + expiry: expiry!, + signature: signature!); + + return __httpRequest; + } + + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try + { + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); try { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); } - catch (global::System.Exception) + catch (global::System.Net.Http.HttpRequestException __exception) { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } + + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } + + break; + } + + if (__response == null) + { + throw new global::System.InvalidOperationException("No response received."); + } + + using (__response) + { + + ProcessResponse( + client: HttpClient, + response: __response); + ProcessFilesDownloadResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } + else + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesDownload", + methodName: "FilesDownloadAsync", + pathTemplate: "$\"/files/{fileId}/download\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + // File not found + if ((int)__response.StatusCode == 404) + { + string? __content_404 = null; + global::System.Exception? __exception_404 = null; + global::Replicate.FilesDownloadResponse? __value_404 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_404 = global::Replicate.FilesDownloadResponse.FromJson(__content_404, JsonSerializerContext); + } + else + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + + __value_404 = global::Replicate.FilesDownloadResponse.FromJson(__content_404, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_404 = __ex; + } + + throw new global::Replicate.ApiException( + message: __content_404 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_404, + statusCode: __response.StatusCode) + { + ResponseBody = __content_404, + ResponseObject = __value_404, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsByteArrayAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessFilesDownloadResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __content); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + var __content = await __response.Content.ReadAsByteArrayAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __content); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + + } + } + finally + { + __httpRequest?.Dispose(); } } } diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesGet.g.cs index de7d5a1..3885933 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -51,10 +52,39 @@ partial void ProcessFilesGetResponseContent( /// ``` ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task FilesGetAsync( string fileId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await FilesGetAsResponseAsync( + fileId: fileId, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get a file
+ /// Get the details of a file.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/files/cneqzikepnug6xezperrr4z55o
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> FilesGetAsResponseAsync( + string fileId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -69,22 +99,44 @@ partial void ProcessFilesGetResponseContent( securityRequirements: s_FilesGetSecurityRequirements, operationName: "FilesGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/files/{fileId}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/files/{fileId}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -94,150 +146,335 @@ partial void ProcessFilesGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareFilesGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - fileId: fileId); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareFilesGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + fileId: fileId!); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + return __httpRequest; + } - ProcessResponse( - client: HttpClient, - response: __response); - ProcessFilesGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); - // File not found - if ((int)__response.StatusCode == 404) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - string? __content_404 = null; - global::System.Exception? __exception_404 = null; - global::Replicate.FilesGetResponse? __value_404 = null; - try + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) { - if (ReadResponseAsString) + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesGet", + methodName: "FilesGetAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try { - __content_404 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); - __value_404 = global::Replicate.FilesGetResponse.FromJson(__content_404, JsonSerializerContext); + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); } - else + catch (global::System.Net.Http.HttpRequestException __exception) { - __content_404 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesGet", + methodName: "FilesGetAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } + + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - __value_404 = global::Replicate.FilesGetResponse.FromJson(__content_404, JsonSerializerContext); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesGet", + methodName: "FilesGetAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } + + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - __exception_404 = __ex; + throw new global::System.InvalidOperationException("No response received."); } - throw new global::Replicate.ApiException( - message: __content_404 ?? __response.ReasonPhrase ?? string.Empty, - innerException: __exception_404, - statusCode: __response.StatusCode) + using (__response) { - ResponseBody = __content_404, - ResponseObject = __value_404, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - - ProcessResponseContent( + ProcessResponse( client: HttpClient, - response: __response, - content: ref __content); - ProcessFilesGetResponseContent( + response: __response); + ProcessFilesGetResponse( httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); - - try + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) { - __response.EnsureSuccessStatusCode(); - - return - global::Replicate.SchemasFileResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesGet", + methodName: "FilesGetAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesGet", + methodName: "FilesGetAsync", + pathTemplate: "$\"/files/{fileId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - } - else - { - try - { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + // File not found + if ((int)__response.StatusCode == 404) + { + string? __content_404 = null; + global::System.Exception? __exception_404 = null; + global::Replicate.FilesGetResponse? __value_404 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_404 = global::Replicate.FilesGetResponse.FromJson(__content_404, JsonSerializerContext); + } + else + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); - return - await global::Replicate.SchemasFileResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); - } - catch (global::System.Exception __ex) - { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + __value_404 = global::Replicate.FilesGetResponse.FromJson(__content_404, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_404 = __ex; + } + + throw new global::Replicate.ApiException( + message: __content_404 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_404, + statusCode: __response.StatusCode) + { + ResponseBody = __content_404, + ResponseObject = __value_404, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessFilesGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasFileResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasFileResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesList.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesList.g.cs index 99a6c8a..7bf169b 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.FilesList.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -49,9 +50,36 @@ partial void ProcessFilesListResponseContent( /// ```
/// The response will be a paginated JSON array of file objects, sorted with the most recent file first. /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task FilesListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await FilesListAsResponseAsync( + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// List files
+ /// Get a paginated list of all files created by the user or organization associated with the provided API token.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/files
+ /// ```
+ /// The response will be a paginated JSON array of file objects, sorted with the most recent file first. + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> FilesListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -65,22 +93,44 @@ partial void ProcessFilesListResponseContent( securityRequirements: s_FilesListSecurityRequirements, operationName: "FilesListAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/files", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/files", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -90,111 +140,296 @@ partial void ProcessFilesListResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareFilesListRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareFilesListRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessFilesListResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesList", + methodName: "FilesListAsync", + pathTemplate: "\"/files\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesList", + methodName: "FilesListAsync", + pathTemplate: "\"/files\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessFilesListResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesList", + methodName: "FilesListAsync", + pathTemplate: "\"/files\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.FilesListResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.FilesListResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessFilesListResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesList", + methodName: "FilesListAsync", + pathTemplate: "\"/files\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "FilesList", + methodName: "FilesListAsync", + pathTemplate: "\"/files\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessFilesListResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.FilesListResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.FilesListResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.HardwareList.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.HardwareList.g.cs index 6ee9299..6076644 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.HardwareList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.HardwareList.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -56,9 +57,43 @@ partial void ProcessHardwareListResponseContent( /// ]
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task> HardwareListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await HardwareListAsResponseAsync( + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// List available hardware for models
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/hardware
+ /// ```
+ /// The response will be a JSON array of hardware objects:
+ /// ```json
+ /// [
+ /// {"name": "CPU", "sku": "cpu"},
+ /// {"name": "Nvidia T4 GPU", "sku": "gpu-t4"},
+ /// {"name": "Nvidia A40 GPU", "sku": "gpu-a40-small"},
+ /// {"name": "Nvidia A40 (Large) GPU", "sku": "gpu-a40-large"},
+ /// ]
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task>> HardwareListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -72,22 +107,44 @@ partial void ProcessHardwareListResponseContent( securityRequirements: s_HardwareListSecurityRequirements, operationName: "HardwareListAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/hardware", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/hardware", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -97,111 +154,296 @@ partial void ProcessHardwareListResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareHardwareListRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareHardwareListRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessHardwareListResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "HardwareList", + methodName: "HardwareListAsync", + pathTemplate: "\"/hardware\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "HardwareList", + methodName: "HardwareListAsync", + pathTemplate: "\"/hardware\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessHardwareListResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "HardwareList", + methodName: "HardwareListAsync", + pathTemplate: "\"/hardware\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - (global::System.Collections.Generic.IList?)global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::System.Collections.Generic.IList), JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - (global::System.Collections.Generic.IList?)await global::System.Text.Json.JsonSerializer.DeserializeAsync(__content, typeof(global::System.Collections.Generic.IList), JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessHardwareListResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "HardwareList", + methodName: "HardwareListAsync", + pathTemplate: "\"/hardware\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "HardwareList", + methodName: "HardwareListAsync", + pathTemplate: "\"/hardware\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessHardwareListResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = (global::System.Collections.Generic.IList?)global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::System.Collections.Generic.IList), JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse>( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = (global::System.Collections.Generic.IList?)await global::System.Text.Json.JsonSerializer.DeserializeAsync(__content, typeof(global::System.Collections.Generic.IList), JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse>( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsCreate.g.cs index 80ba7a2..4f085a1 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsCreate.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -71,11 +72,62 @@ partial void ProcessModelsCreateResponseContent( /// Note that there is a limit of 1,000 models per account. For most purposes, we recommend using a single model and pushing new [versions](https://replicate.com/docs/how-does-replicate-work#versions) of the model as you make changes to it. /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsCreateAsync( global::Replicate.ModelsCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await ModelsCreateAsResponseAsync( + + request: request, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Create a model
+ /// Create a model.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// -d '{"owner": "alice", "name": "hot-dog-detector", "description": "Detect hot dogs in images", "visibility": "public", "hardware": "cpu"}' \
+ /// https://api.replicate.com/v1/models
+ /// ```
+ /// The response will be a model object in the following format:
+ /// ```json
+ /// {
+ /// "url": "https://replicate.com/alice/hot-dog-detector",
+ /// "owner": "alice",
+ /// "name": "hot-dog-detector",
+ /// "description": "Detect hot dogs in images",
+ /// "visibility": "public",
+ /// "github_url": null,
+ /// "paper_url": null,
+ /// "license_url": null,
+ /// "run_count": 0,
+ /// "cover_image_url": null,
+ /// "default_example": null,
+ /// "latest_version": null,
+ /// }
+ /// ```
+ /// Note that there is a limit of 1,000 models per account. For most purposes, we recommend using a single model and pushing new [versions](https://replicate.com/docs/how-does-replicate-work#versions) of the model as you make changes to it. + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> ModelsCreateAsResponseAsync( + + global::Replicate.ModelsCreateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { request = request ?? throw new global::System.ArgumentNullException(nameof(request)); @@ -92,22 +144,44 @@ partial void ProcessModelsCreateResponseContent( securityRequirements: s_ModelsCreateSecurityRequirements, operationName: "ModelsCreateAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/models", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Post, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/models", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -117,118 +191,303 @@ partial void ProcessModelsCreateResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } - var __httpRequestContentBody = request.ToJson(JsonSerializerContext); - var __httpRequestContent = new global::System.Net.Http.StringContent( - content: __httpRequestContentBody, - encoding: global::System.Text.Encoding.UTF8, - mediaType: "application/json"); - __httpRequest.Content = __httpRequestContent; - - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsCreateRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - request: request); + var __httpRequestContentBody = request.ToJson(JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + __httpRequest.Content = __httpRequestContent; + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsCreateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + request: request); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsCreateResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsCreate", + methodName: "ModelsCreateAsync", + pathTemplate: "\"/models\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsCreate", + methodName: "ModelsCreateAsync", + pathTemplate: "\"/models\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessModelsCreateResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsCreate", + methodName: "ModelsCreateAsync", + pathTemplate: "\"/models\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasModelResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasModelResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsCreateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsCreate", + methodName: "ModelsCreateAsync", + pathTemplate: "\"/models\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsCreate", + methodName: "ModelsCreateAsync", + pathTemplate: "\"/models\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessModelsCreateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasModelResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasModelResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } /// /// Create a model
@@ -294,6 +553,7 @@ partial void ProcessModelsCreateResponseContent( /// Whether the model should be public or private. A public model can be viewed and run by anyone, whereas a private model can be viewed and run only by the user or organization members that own the model.
/// Example: public /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsCreateAsync( @@ -306,6 +566,7 @@ partial void ProcessModelsCreateResponseContent( string? githubUrl = default, string? licenseUrl = default, string? paperUrl = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { var __request = new global::Replicate.ModelsCreateRequest @@ -323,6 +584,7 @@ partial void ProcessModelsCreateResponseContent( return await ModelsCreateAsync( request: __request, + requestOptions: requestOptions, cancellationToken: cancellationToken).ConfigureAwait(false); } } diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsDelete.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsDelete.g.cs index dc59b0a..c7b1818 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsDelete.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsDelete.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -54,11 +55,46 @@ partial void ProcessModelsDeleteResponse( ///
/// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsDeleteAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + await ModelsDeleteAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + } + /// + /// Delete a model
+ /// Delete a model
+ /// Model deletion has some restrictions:
+ /// - You can only delete models you own.
+ /// - You can only delete private models.
+ /// - You can only delete models that have no versions associated with them. Currently you'll need to [delete the model's versions](#models.versions.delete) before you can delete the model itself.
+ /// Example cURL request:
+ /// ```command
+ /// curl -s -X DELETE \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world
+ /// ```
+ /// The response will be an empty 204, indicating the model has been deleted. + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task ModelsDeleteAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -74,22 +110,44 @@ partial void ProcessModelsDeleteResponse( securityRequirements: s_ModelsDeleteSecurityRequirements, operationName: "ModelsDeleteAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Delete, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Delete, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -99,97 +157,282 @@ partial void ProcessModelsDeleteResponse( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsDeleteRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsDeleteRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!); - using var __response = await HttpClient.SendAsync( + return __httpRequest; + } + + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try + { + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsDelete", + methodName: "ModelsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( request: __httpRequest, completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsDelete", + methodName: "ModelsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsDeleteResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsDelete", + methodName: "ModelsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); + break; + } - try + if (__response == null) { - __response.EnsureSuccessStatusCode(); - + throw new global::System.InvalidOperationException("No response received."); } - catch (global::System.Exception __ex) + + using (__response) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - } - else - { - try + + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsDeleteResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) { - __response.EnsureSuccessStatusCode(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsDelete", + methodName: "ModelsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsDelete", + methodName: "ModelsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsExamplesList.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsExamplesList.g.cs index 304c232..68910db 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsExamplesList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsExamplesList.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -66,11 +67,55 @@ partial void ProcessModelsExamplesListResponseContent( /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsExamplesListAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await ModelsExamplesListAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// List examples for a model
+ /// List [example predictions](https://replicate.com/docs/topics/models/publish-a-model#what-are-examples) made using the model.
+ /// These are predictions that were saved by the model author as illustrative examples of the model's capabilities.
+ /// If you want all the examples for a model, use this operation.
+ /// If you just want the model's default example, you can use the [`models.get`](#models.get) operation instead, which includes a `default_example` object.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/examples
+ /// ```
+ /// The response will be a pagination object containing a list of example predictions:
+ /// ```json
+ /// {
+ /// "next": "https://api.replicate.com/v1/models/replicate/hello-world/examples?cursor=...",
+ /// "previous": "https://api.replicate.com/v1/models/replicate/hello-world/examples?cursor=...",
+ /// "results": [...]
+ /// }
+ /// ```
+ /// Each item in the `results` list is a [prediction object](#predictions.get). + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> ModelsExamplesListAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -86,22 +131,44 @@ partial void ProcessModelsExamplesListResponseContent( securityRequirements: s_ModelsExamplesListSecurityRequirements, operationName: "ModelsExamplesListAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}/examples", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}/examples", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -111,113 +178,298 @@ partial void ProcessModelsExamplesListResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsExamplesListRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsExamplesListRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsExamplesListResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsExamplesList", + methodName: "ModelsExamplesListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/examples\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsExamplesList", + methodName: "ModelsExamplesListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/examples\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessModelsExamplesListResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsExamplesList", + methodName: "ModelsExamplesListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/examples\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasPaginatedPredictionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasPaginatedPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsExamplesListResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsExamplesList", + methodName: "ModelsExamplesListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/examples\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsExamplesList", + methodName: "ModelsExamplesListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/examples\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessModelsExamplesListResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasPaginatedPredictionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasPaginatedPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsGet.g.cs index 1475f3d..f84b132 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -103,11 +104,92 @@ partial void ProcessModelsGetResponseContent( /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsGetAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await ModelsGetAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get a model
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world
+ /// ```
+ /// The response will be a model object in the following format:
+ /// ```json
+ /// {
+ /// "url": "https://replicate.com/replicate/hello-world",
+ /// "owner": "replicate",
+ /// "name": "hello-world",
+ /// "description": "A tiny model that says hello",
+ /// "visibility": "public",
+ /// "github_url": "https://github.com/replicate/cog-examples",
+ /// "paper_url": null,
+ /// "license_url": null,
+ /// "run_count": 5681081,
+ /// "cover_image_url": "...",
+ /// "default_example": {...},
+ /// "latest_version": {...},
+ /// }
+ /// ```
+ /// The model object includes the [input and output schema](https://replicate.com/docs/reference/openapi#model-schemas) for the latest version of the model.
+ /// Here's an example showing how to fetch the model with cURL and display its input schema with [jq](https://stedolan.github.io/jq/):
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world \
+ /// | jq ".latest_version.openapi_schema.components.schemas.Input"
+ /// ```
+ /// This will return the following JSON object:
+ /// ```json
+ /// {
+ /// "type": "object",
+ /// "title": "Input",
+ /// "required": [
+ /// "text"
+ /// ],
+ /// "properties": {
+ /// "text": {
+ /// "type": "string",
+ /// "title": "Text",
+ /// "x-order": 0,
+ /// "description": "Text to prefix with 'hello '"
+ /// }
+ /// }
+ /// }
+ /// ```
+ /// The `cover_image_url` string is an HTTPS URL for an image file. This can be:
+ /// - An image uploaded by the model author.
+ /// - The output file of the example prediction, if the model author has not set a cover image.
+ /// - The input file of the example prediction, if the model author has not set a cover image and the example prediction has no output file.
+ /// - A generic fallback image.
+ /// The `default_example` object is a [prediction](#predictions.get) created with this model.
+ /// The `latest_version` object is the model's most recently pushed [version](#models.versions.get). + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> ModelsGetAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -123,22 +205,44 @@ partial void ProcessModelsGetResponseContent( securityRequirements: s_ModelsGetSecurityRequirements, operationName: "ModelsGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -148,113 +252,298 @@ partial void ProcessModelsGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsGet", + methodName: "ModelsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsGet", + methodName: "ModelsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessModelsGetResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsGet", + methodName: "ModelsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasModelResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasModelResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsGetResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsGet", + methodName: "ModelsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsGet", + methodName: "ModelsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessModelsGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasModelResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasModelResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsList.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsList.g.cs index cc5dc25..762394a 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsList.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -72,11 +73,61 @@ partial void ProcessModelsListResponseContent( /// /// Default Value: desc /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsListAsync( global::Replicate.ModelsListSortBy? sortBy = default, global::Replicate.ModelsListSortDirection? sortDirection = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await ModelsListAsResponseAsync( + sortBy: sortBy, + sortDirection: sortDirection, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// List public models
+ /// Get a paginated list of public models.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models
+ /// ```
+ /// The response will be a pagination object containing a list of model objects.
+ /// See the [`models.get`](#models.get) docs for more details about the model object.
+ /// ## Sorting
+ /// You can sort the results using the `sort_by` and `sort_direction` query parameters.
+ /// For example, to get the most recently created models:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// "https://api.replicate.com/v1/models?sort_by=model_created_at&sort_direction=desc"
+ /// ```
+ /// Available sorting options:
+ /// - `model_created_at`: Sort by when the model was first created
+ /// - `latest_version_created_at`: Sort by when the model's latest version was created (default)
+ /// Sort direction can be `asc` (ascending) or `desc` (descending, default). + ///
+ /// + /// Default Value: latest_version_created_at + /// + /// + /// Default Value: desc + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> ModelsListAsResponseAsync( + global::Replicate.ModelsListSortBy? sortBy = default, + global::Replicate.ModelsListSortDirection? sortDirection = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -92,26 +143,48 @@ partial void ProcessModelsListResponseContent( securityRequirements: s_ModelsListSecurityRequirements, operationName: "ModelsListAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/models", - baseUri: HttpClient.BaseAddress); - __pathBuilder - .AddOptionalParameter("sort_by", sortBy?.ToValueString()) - .AddOptionalParameter("sort_direction", sortDirection?.ToValueString()) - ; - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/models", + baseUri: HttpClient.BaseAddress); + __pathBuilder + .AddOptionalParameter("sort_by", sortBy?.ToValueString()) + .AddOptionalParameter("sort_direction", sortDirection?.ToValueString()) + ; + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -121,113 +194,298 @@ partial void ProcessModelsListResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsListRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - sortBy: sortBy, - sortDirection: sortDirection); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsListRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + sortBy: sortBy, + sortDirection: sortDirection); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsListResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsList", + methodName: "ModelsListAsync", + pathTemplate: "\"/models\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsList", + methodName: "ModelsListAsync", + pathTemplate: "\"/models\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessModelsListResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsList", + methodName: "ModelsListAsync", + pathTemplate: "\"/models\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasPaginatedModelResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasPaginatedModelResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsListResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsList", + methodName: "ModelsListAsync", + pathTemplate: "\"/models\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsList", + methodName: "ModelsListAsync", + pathTemplate: "\"/models\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessModelsListResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasPaginatedModelResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasPaginatedModelResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsPredictionsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsPredictionsCreate.g.cs index b51d2a4..fe5a13d 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsPredictionsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsPredictionsCreate.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -72,6 +73,7 @@ partial void ProcessModelsPredictionsCreateResponseContent( /// Example: 5m /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsPredictionsCreateAsync( @@ -81,6 +83,57 @@ partial void ProcessModelsPredictionsCreateResponseContent( global::Replicate.SchemasPredictionRequest request, string? prefer = default, string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await ModelsPredictionsCreateAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + + request: request, + prefer: prefer, + cancelAfter: cancelAfter, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Create a prediction using an official model
+ /// Create a prediction using an [official model](https://replicate.com/changelog/2025-01-29-official-models).
+ /// If you're _not_ running an official model, use the [`predictions.create`](#predictions.create) operation instead.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST -H 'Prefer: wait' \
+ /// -d '{"input": {"prompt": "Write a short poem about the weather."}}' \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// https://api.replicate.com/v1/models/meta/meta-llama-3-70b-instruct/predictions
+ /// ```
+ /// The request will wait up to 60 seconds for the model to run. If this time is exceeded the prediction will be returned in a `"starting"` state and need to be retrieved using the `predictions.get` endpoint.
+ /// For a complete overview of the `deployments.predictions.create` API check out our documentation on [creating a prediction](https://replicate.com/docs/topics/predictions/create-a-prediction) which covers a variety of use cases. + ///
+ /// + /// + /// + /// Example: wait=5 + /// + /// + /// Example: 5m + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> ModelsPredictionsCreateAsResponseAsync( + string modelOwner, + string modelName, + + global::Replicate.SchemasPredictionRequest request, + string? prefer = default, + string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { request = request ?? throw new global::System.ArgumentNullException(nameof(request)); @@ -101,22 +154,44 @@ partial void ProcessModelsPredictionsCreateResponseContent( securityRequirements: s_ModelsPredictionsCreateSecurityRequirements, operationName: "ModelsPredictionsCreateAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}/predictions", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Post, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: false); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}/predictions", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -126,7 +201,7 @@ partial void ProcessModelsPredictionsCreateResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } if (prefer != default) @@ -138,120 +213,305 @@ partial void ProcessModelsPredictionsCreateResponseContent( __httpRequest.Headers.TryAddWithoutValidation("Cancel-After", cancelAfter.ToString()); } - var __httpRequestContentBody = request.ToJson(JsonSerializerContext); - var __httpRequestContent = new global::System.Net.Http.StringContent( - content: __httpRequestContentBody, - encoding: global::System.Text.Encoding.UTF8, - mediaType: "application/json"); - __httpRequest.Content = __httpRequestContent; - - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsPredictionsCreateRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName, - prefer: prefer, - cancelAfter: cancelAfter, - request: request); + var __httpRequestContentBody = request.ToJson(JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + __httpRequest.Content = __httpRequestContent; + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsPredictionsCreateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!, + prefer: prefer, + cancelAfter: cancelAfter, + request: request); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsPredictionsCreateResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsPredictionsCreate", + methodName: "ModelsPredictionsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsPredictionsCreate", + methodName: "ModelsPredictionsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessModelsPredictionsCreateResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsPredictionsCreate", + methodName: "ModelsPredictionsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsPredictionsCreateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsPredictionsCreate", + methodName: "ModelsPredictionsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsPredictionsCreate", + methodName: "ModelsPredictionsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessModelsPredictionsCreateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } /// /// Create a prediction using an official model
@@ -317,6 +577,7 @@ partial void ProcessModelsPredictionsCreateResponseContent( /// Requests for event types `output` and `logs` will be sent at most once every 500ms. If you request `start` and `completed` webhooks, then they'll always be sent regardless of throttling.
/// Example: [start, completed] /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsPredictionsCreateAsync( @@ -328,6 +589,7 @@ partial void ProcessModelsPredictionsCreateResponseContent( bool? stream = default, string? webhook = default, global::System.Collections.Generic.IList? webhookEventsFilter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { var __request = new global::Replicate.SchemasPredictionRequest @@ -344,6 +606,7 @@ partial void ProcessModelsPredictionsCreateResponseContent( prefer: prefer, cancelAfter: cancelAfter, request: __request, + requestOptions: requestOptions, cancellationToken: cancellationToken).ConfigureAwait(false); } } diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsReadmeGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsReadmeGet.g.cs index 423376c..eb8d9da 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsReadmeGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsReadmeGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -59,11 +60,48 @@ partial void ProcessModelsReadmeGetResponseContent( ///
/// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsReadmeGetAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await ModelsReadmeGetAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get a model's README
+ /// Get the README content for a model.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/readme
+ /// ```
+ /// The response will be the README content as plain text in Markdown format:
+ /// ```
+ /// # Hello World Model
+ /// This is an example model that...
+ /// ``` + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> ModelsReadmeGetAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -79,22 +117,44 @@ partial void ProcessModelsReadmeGetResponseContent( securityRequirements: s_ModelsReadmeGetSecurityRequirements, operationName: "ModelsReadmeGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}/readme", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}/readme", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -104,142 +164,327 @@ partial void ProcessModelsReadmeGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsReadmeGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsReadmeGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + return __httpRequest; + } - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsReadmeGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); - // - if ((int)__response.StatusCode == 404) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - string? __content_404 = null; - global::System.Exception? __exception_404 = null; - try + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) { - if (ReadResponseAsString) + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsReadmeGet", + methodName: "ModelsReadmeGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/readme\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) { - __content_404 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsReadmeGet", + methodName: "ModelsReadmeGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/readme\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } + + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } - else + + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) { - __content_404 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsReadmeGet", + methodName: "ModelsReadmeGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/readme\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } + + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - __exception_404 = __ex; + throw new global::System.InvalidOperationException("No response received."); } - throw new global::Replicate.ApiException( - message: __content_404 ?? __response.ReasonPhrase ?? string.Empty, - innerException: __exception_404, - statusCode: __response.StatusCode) + using (__response) { - ResponseBody = __content_404, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - - ProcessResponseContent( + ProcessResponse( client: HttpClient, - response: __response, - content: ref __content); - ProcessModelsReadmeGetResponseContent( + response: __response); + ProcessModelsReadmeGetResponse( httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); - - try + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) { - __response.EnsureSuccessStatusCode(); - - return __content; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsReadmeGet", + methodName: "ModelsReadmeGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/readme\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsReadmeGet", + methodName: "ModelsReadmeGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/readme\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - } - else - { - try - { - __response.EnsureSuccessStatusCode(); - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + // + if ((int)__response.StatusCode == 404) + { + string? __content_404 = null; + global::System.Exception? __exception_404 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + else + { + __content_404 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + } + catch (global::System.Exception __ex) + { + __exception_404 = __ex; + } - return __content; - } - catch (global::System.Exception __ex) - { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + throw new global::Replicate.ApiException( + message: __content_404 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_404, + statusCode: __response.StatusCode) + { + ResponseBody = __content_404, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessModelsReadmeGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __content); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __content); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsUpdate.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsUpdate.g.cs index 9db01e5..2b812fe 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsUpdate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsUpdate.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -74,6 +75,7 @@ partial void ProcessModelsUpdateResponseContent( /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsUpdateAsync( @@ -81,6 +83,59 @@ partial void ProcessModelsUpdateResponseContent( string modelName, global::Replicate.ModelsUpdateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await ModelsUpdateAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + + request: request, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Update metadata for a model
+ /// Update select properties of an existing model.
+ /// You can update the following properties:
+ /// - `description` - Model description
+ /// - `readme` - Model README content
+ /// - `github_url` - GitHub repository URL
+ /// - `paper_url` - Research paper URL
+ /// - `weights_url` - Model weights URL
+ /// - `license_url` - License URL
+ /// Example cURL request:
+ /// ```console
+ /// curl -X PATCH \
+ /// https://api.replicate.com/v1/models/your-username/your-model-name \
+ /// -H "Authorization: Token $REPLICATE_API_TOKEN" \
+ /// -H "Content-Type: application/json" \
+ /// -d '{
+ /// "description": "Detect hot dogs in images",
+ /// "readme": "# Hot Dog Detector\n\n🌭 Ketchup, mustard, and onions...",
+ /// "github_url": "https://github.com/alice/hot-dog-detector",
+ /// "paper_url": "https://arxiv.org/abs/2504.17639",
+ /// "weights_url": "https://huggingface.co/alice/hot-dog-detector",
+ /// "license_url": "https://choosealicense.com/licenses/mit/"
+ /// }'
+ /// ```
+ /// The response will be the updated model object with all of its properties. + ///
+ /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> ModelsUpdateAsResponseAsync( + string modelOwner, + string modelName, + + global::Replicate.ModelsUpdateRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { request = request ?? throw new global::System.ArgumentNullException(nameof(request)); @@ -99,22 +154,44 @@ partial void ProcessModelsUpdateResponseContent( securityRequirements: s_ModelsUpdateSecurityRequirements, operationName: "ModelsUpdateAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: new global::System.Net.Http.HttpMethod("PATCH"), - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: new global::System.Net.Http.HttpMethod("PATCH"), + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -124,120 +201,305 @@ partial void ProcessModelsUpdateResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } - var __httpRequestContentBody = request.ToJson(JsonSerializerContext); - var __httpRequestContent = new global::System.Net.Http.StringContent( - content: __httpRequestContentBody, - encoding: global::System.Text.Encoding.UTF8, - mediaType: "application/json"); - __httpRequest.Content = __httpRequestContent; - - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsUpdateRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName, - request: request); + var __httpRequestContentBody = request.ToJson(JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + __httpRequest.Content = __httpRequestContent; + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsUpdateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!, + request: request); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsUpdateResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsUpdate", + methodName: "ModelsUpdateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsUpdate", + methodName: "ModelsUpdateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessModelsUpdateResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsUpdate", + methodName: "ModelsUpdateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasModelResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasModelResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsUpdateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsUpdate", + methodName: "ModelsUpdateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsUpdate", + methodName: "ModelsUpdateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}\"", + httpMethod: "PATCH", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessModelsUpdateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasModelResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasModelResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } /// /// Update metadata for a model
@@ -292,6 +554,7 @@ partial void ProcessModelsUpdateResponseContent( /// A URL for the model's weights.
/// Example: https://huggingface.co/alice/hot-dog-detector /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsUpdateAsync( @@ -303,6 +566,7 @@ partial void ProcessModelsUpdateResponseContent( string? paperUrl = default, string? readme = default, string? weightsUrl = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { var __request = new global::Replicate.ModelsUpdateRequest @@ -319,6 +583,7 @@ partial void ProcessModelsUpdateResponseContent( modelOwner: modelOwner, modelName: modelName, request: __request, + requestOptions: requestOptions, cancellationToken: cancellationToken).ConfigureAwait(false); } } diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsDelete.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsDelete.g.cs index 951002d..ed563c5 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsDelete.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsDelete.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -60,12 +61,53 @@ partial void ProcessModelsVersionsDeleteResponse( /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsVersionsDeleteAsync( string modelOwner, string modelName, string versionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + await ModelsVersionsDeleteAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + versionId: versionId, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + } + /// + /// Delete a model version
+ /// Delete a model version and all associated predictions, including all output files.
+ /// Model version deletion has some restrictions:
+ /// - You can only delete versions from models you own.
+ /// - You can only delete versions from private models.
+ /// - You cannot delete a version if someone other than you has run predictions with it.
+ /// - You cannot delete a version if it is being used as the base model for a fine tune/training.
+ /// - You cannot delete a version if it has an associated deployment.
+ /// - You cannot delete a version if another model version is overridden to use it.
+ /// Example cURL request:
+ /// ```command
+ /// curl -s -X DELETE \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/versions/5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa
+ /// ```
+ /// The response will be an empty 202, indicating the deletion request has been accepted. It might take a few minutes to be processed. + ///
+ /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task ModelsVersionsDeleteAsResponseAsync( + string modelOwner, + string modelName, + string versionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -82,22 +124,44 @@ partial void ProcessModelsVersionsDeleteResponse( securityRequirements: s_ModelsVersionsDeleteSecurityRequirements, operationName: "ModelsVersionsDeleteAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}/versions/{versionId}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Delete, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}/versions/{versionId}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Delete, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -107,98 +171,283 @@ partial void ProcessModelsVersionsDeleteResponse( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsVersionsDeleteRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName, - versionId: versionId); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsVersionsDeleteRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!, + versionId: versionId!); - using var __response = await HttpClient.SendAsync( + return __httpRequest; + } + + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try + { + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsDelete", + methodName: "ModelsVersionsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( request: __httpRequest, completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsDelete", + methodName: "ModelsVersionsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsVersionsDeleteResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsDelete", + methodName: "ModelsVersionsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); + break; + } - try + if (__response == null) { - __response.EnsureSuccessStatusCode(); - + throw new global::System.InvalidOperationException("No response received."); } - catch (global::System.Exception __ex) + + using (__response) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - } - else - { - try + + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsVersionsDeleteResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) { - __response.EnsureSuccessStatusCode(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsDelete", + methodName: "ModelsVersionsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsDelete", + methodName: "ModelsVersionsDeleteAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "DELETE", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsGet.g.cs index bfd1b43..0f4c901 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -92,12 +93,82 @@ partial void ProcessModelsVersionsGetResponseContent( /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsVersionsGetAsync( string modelOwner, string modelName, string versionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await ModelsVersionsGetAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + versionId: versionId, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get a model version
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/versions/5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa
+ /// ```
+ /// The response will be the version object:
+ /// ```json
+ /// {
+ /// "id": "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa",
+ /// "created_at": "2022-04-26T19:29:04.418669Z",
+ /// "cog_version": "0.3.0",
+ /// "openapi_schema": {...}
+ /// }
+ /// ```
+ /// Every model describes its inputs and outputs with [OpenAPI Schema Objects](https://spec.openapis.org/oas/latest.html#schemaObject) in the `openapi_schema` property.
+ /// The `openapi_schema.components.schemas.Input` property for the [replicate/hello-world](https://replicate.com/replicate/hello-world) model looks like this:
+ /// ```json
+ /// {
+ /// "type": "object",
+ /// "title": "Input",
+ /// "required": [
+ /// "text"
+ /// ],
+ /// "properties": {
+ /// "text": {
+ /// "x-order": 0,
+ /// "type": "string",
+ /// "title": "Text",
+ /// "description": "Text to prefix with 'hello '"
+ /// }
+ /// }
+ /// }
+ /// ```
+ /// The `openapi_schema.components.schemas.Output` property for the [replicate/hello-world](https://replicate.com/replicate/hello-world) model looks like this:
+ /// ```json
+ /// {
+ /// "type": "string",
+ /// "title": "Output"
+ /// }
+ /// ```
+ /// For more details, see the docs on [Cog's supported input and output types](https://github.com/replicate/cog/blob/75b7802219e7cd4cee845e34c4c22139558615d4/docs/python.md#input-and-output-types) + ///
+ /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> ModelsVersionsGetAsResponseAsync( + string modelOwner, + string modelName, + string versionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -114,22 +185,44 @@ partial void ProcessModelsVersionsGetResponseContent( securityRequirements: s_ModelsVersionsGetSecurityRequirements, operationName: "ModelsVersionsGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}/versions/{versionId}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}/versions/{versionId}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -139,114 +232,299 @@ partial void ProcessModelsVersionsGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsVersionsGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName, - versionId: versionId); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsVersionsGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!, + versionId: versionId!); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsVersionsGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsGet", + methodName: "ModelsVersionsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsGet", + methodName: "ModelsVersionsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessModelsVersionsGetResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsGet", + methodName: "ModelsVersionsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasVersionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasVersionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsVersionsGetResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsGet", + methodName: "ModelsVersionsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsGet", + methodName: "ModelsVersionsGetAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessModelsVersionsGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasVersionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasVersionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsList.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsList.g.cs index f9a3d32..dcc2e19 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.ModelsVersionsList.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -68,11 +69,57 @@ partial void ProcessModelsVersionsListResponseContent( ///
/// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task ModelsVersionsListAsync( string modelOwner, string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await ModelsVersionsListAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// List model versions
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/models/replicate/hello-world/versions
+ /// ```
+ /// The response will be a JSON array of model version objects, sorted with the most recent version first:
+ /// ```json
+ /// {
+ /// "next": null,
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "id": "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa",
+ /// "created_at": "2022-04-26T19:29:04.418669Z",
+ /// "cog_version": "0.3.0",
+ /// "openapi_schema": {...}
+ /// }
+ /// ]
+ /// }
+ /// ``` + ///
+ /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> ModelsVersionsListAsResponseAsync( + string modelOwner, + string modelName, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -88,22 +135,44 @@ partial void ProcessModelsVersionsListResponseContent( securityRequirements: s_ModelsVersionsListSecurityRequirements, operationName: "ModelsVersionsListAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}/versions", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}/versions", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -113,113 +182,298 @@ partial void ProcessModelsVersionsListResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareModelsVersionsListRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareModelsVersionsListRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessModelsVersionsListResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsList", + methodName: "ModelsVersionsListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsList", + methodName: "ModelsVersionsListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessModelsVersionsListResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsList", + methodName: "ModelsVersionsListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasPaginatedVersionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasPaginatedVersionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessModelsVersionsListResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsList", + methodName: "ModelsVersionsListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "ModelsVersionsList", + methodName: "ModelsVersionsListAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessModelsVersionsListResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasPaginatedVersionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasPaginatedVersionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsCancel.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsCancel.g.cs index d59c36b..eb5e85a 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsCancel.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsCancel.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -64,10 +65,52 @@ partial void ProcessPredictionsCancelResponseContent( /// ``` /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task PredictionsCancelAsync( string predictionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await PredictionsCancelAsResponseAsync( + predictionId: predictionId, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Cancel a prediction
+ /// Cancel a prediction that is currently running.
+ /// Example cURL request that creates a prediction and then cancels it:
+ /// ```console
+ /// # First, create a prediction
+ /// PREDICTION_ID=$(curl -s -X POST \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H "Content-Type: application/json" \
+ /// -d '{
+ /// "input": {
+ /// "prompt": "a video that may take a while to generate"
+ /// }
+ /// }' \
+ /// https://api.replicate.com/v1/models/minimax/video-01/predictions | jq -r '.id')
+ /// # Echo the prediction ID
+ /// echo "Created prediction with ID: $PREDICTION_ID"
+ /// # Cancel the prediction
+ /// curl -s -X POST \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/predictions/$PREDICTION_ID/cancel
+ /// ``` + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> PredictionsCancelAsResponseAsync( + string predictionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -82,22 +125,44 @@ partial void ProcessPredictionsCancelResponseContent( securityRequirements: s_PredictionsCancelSecurityRequirements, operationName: "PredictionsCancelAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/predictions/{predictionId}/cancel", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Post, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/predictions/{predictionId}/cancel", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -107,112 +172,297 @@ partial void ProcessPredictionsCancelResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PreparePredictionsCancelRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - predictionId: predictionId); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PreparePredictionsCancelRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + predictionId: predictionId!); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessPredictionsCancelResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCancel", + methodName: "PredictionsCancelAsync", + pathTemplate: "$\"/predictions/{predictionId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCancel", + methodName: "PredictionsCancelAsync", + pathTemplate: "$\"/predictions/{predictionId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessPredictionsCancelResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCancel", + methodName: "PredictionsCancelAsync", + pathTemplate: "$\"/predictions/{predictionId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessPredictionsCancelResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCancel", + methodName: "PredictionsCancelAsync", + pathTemplate: "$\"/predictions/{predictionId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCancel", + methodName: "PredictionsCancelAsync", + pathTemplate: "$\"/predictions/{predictionId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessPredictionsCancelResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsCreate.g.cs index 5296fac..0057d7e 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsCreate.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -65,6 +66,7 @@ partial void ProcessPredictionsCreateResponseContent( /// Example: 5m /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task PredictionsCreateAsync( @@ -72,6 +74,50 @@ partial void ProcessPredictionsCreateResponseContent( global::Replicate.SchemasVersionPredictionRequest request, string? prefer = default, string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await PredictionsCreateAsResponseAsync( + + request: request, + prefer: prefer, + cancelAfter: cancelAfter, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Create a prediction
+ /// Create a prediction for the model version and inputs you provide.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST -H 'Prefer: wait' \
+ /// -d '{"version": "replicate/hello-world:5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa", "input": {"text": "Alice"}}' \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// https://api.replicate.com/v1/predictions
+ /// ```
+ /// The request will wait up to 60 seconds for the model to run. If this time is exceeded the prediction will be returned in a `"starting"` state and need to be retrieved using the `predictions.get` endpoint.
+ /// For a complete overview of the `predictions.create` API check out our documentation on [creating a prediction](https://replicate.com/docs/topics/predictions/create-a-prediction) which covers a variety of use cases. + ///
+ /// + /// Example: wait=5 + /// + /// + /// Example: 5m + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> PredictionsCreateAsResponseAsync( + + global::Replicate.SchemasVersionPredictionRequest request, + string? prefer = default, + string? cancelAfter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { request = request ?? throw new global::System.ArgumentNullException(nameof(request)); @@ -90,22 +136,44 @@ partial void ProcessPredictionsCreateResponseContent( securityRequirements: s_PredictionsCreateSecurityRequirements, operationName: "PredictionsCreateAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/predictions", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Post, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: false); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/predictions", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -115,7 +183,7 @@ partial void ProcessPredictionsCreateResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } if (prefer != default) @@ -127,118 +195,303 @@ partial void ProcessPredictionsCreateResponseContent( __httpRequest.Headers.TryAddWithoutValidation("Cancel-After", cancelAfter.ToString()); } - var __httpRequestContentBody = request.ToJson(JsonSerializerContext); - var __httpRequestContent = new global::System.Net.Http.StringContent( - content: __httpRequestContentBody, - encoding: global::System.Text.Encoding.UTF8, - mediaType: "application/json"); - __httpRequest.Content = __httpRequestContent; - - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PreparePredictionsCreateRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - prefer: prefer, - cancelAfter: cancelAfter, - request: request); + var __httpRequestContentBody = request.ToJson(JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + __httpRequest.Content = __httpRequestContent; + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PreparePredictionsCreateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + prefer: prefer, + cancelAfter: cancelAfter, + request: request); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessPredictionsCreateResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCreate", + methodName: "PredictionsCreateAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCreate", + methodName: "PredictionsCreateAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessPredictionsCreateResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCreate", + methodName: "PredictionsCreateAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessPredictionsCreateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCreate", + methodName: "PredictionsCreateAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsCreate", + methodName: "PredictionsCreateAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessPredictionsCreateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } /// /// Create a prediction
@@ -309,6 +562,7 @@ partial void ProcessPredictionsCreateResponseContent( /// Requests for event types `output` and `logs` will be sent at most once every 500ms. If you request `start` and `completed` webhooks, then they'll always be sent regardless of throttling.
/// Example: [start, completed] /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task PredictionsCreateAsync( @@ -319,6 +573,7 @@ partial void ProcessPredictionsCreateResponseContent( bool? stream = default, string? webhook = default, global::System.Collections.Generic.IList? webhookEventsFilter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { var __request = new global::Replicate.SchemasVersionPredictionRequest @@ -334,6 +589,7 @@ partial void ProcessPredictionsCreateResponseContent( prefer: prefer, cancelAfter: cancelAfter, request: __request, + requestOptions: requestOptions, cancellationToken: cancellationToken).ConfigureAwait(false); } } diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsGet.g.cs index f8158f2..2fb09f5 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -92,10 +93,80 @@ partial void ProcessPredictionsGetResponseContent( /// Output files are served by `replicate.delivery` and its subdomains. If you use an allow list of external domains for your assets, add `replicate.delivery` and `*.replicate.delivery` to it. ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task PredictionsGetAsync( string predictionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await PredictionsGetAsResponseAsync( + predictionId: predictionId, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get a prediction
+ /// Get the current state of a prediction.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu
+ /// ```
+ /// The response will be the prediction object:
+ /// ```json
+ /// {
+ /// "id": "gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "model": "replicate/hello-world",
+ /// "version": "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa",
+ /// "input": {
+ /// "text": "Alice"
+ /// },
+ /// "logs": "",
+ /// "output": "hello Alice",
+ /// "error": null,
+ /// "status": "succeeded",
+ /// "created_at": "2023-09-08T16:19:34.765994Z",
+ /// "source": "api",
+ /// "data_removed": false,
+ /// "started_at": "2023-09-08T16:19:34.779176Z",
+ /// "completed_at": "2023-09-08T16:19:34.791859Z",
+ /// "metrics": {
+ /// "predict_time": 0.012683
+ /// },
+ /// "urls": {
+ /// "web": "https://replicate.com/p/gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "get": "https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "cancel": "https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu/cancel"
+ /// }
+ /// }
+ /// ```
+ /// `source` will indicate how the prediction was created. Possible values are `web` or `api`.
+ /// `status` will be one of:
+ /// - `starting`: the prediction is starting up. If this status lasts longer than a few seconds, then it's typically because a new worker is being started to run the prediction.
+ /// - `processing`: the `predict()` method of the model is currently running.
+ /// - `succeeded`: the prediction completed successfully.
+ /// - `failed`: the prediction encountered an error during processing.
+ /// - `canceled`: the prediction was canceled by its creator.
+ /// In the case of success, `output` will be an object containing the output of the model. Any files will be represented as HTTPS URLs. You'll need to pass the `Authorization` header to request them.
+ /// In the case of failure, `error` will contain the error encountered during the prediction.
+ /// Terminated predictions (with a status of `succeeded`, `failed`, or `canceled`) will include a `metrics` object with a `predict_time` property showing the amount of CPU or GPU time, in seconds, that the prediction used while running. It won't include time waiting for the prediction to start. The `metrics` object will also include a `total_time` property showing the total time, in seconds, that the prediction took to complete.
+ /// All input parameters, output values, and logs are automatically removed after an hour, by default, for predictions created through the API.
+ /// You must save a copy of any data or files in the output if you'd like to continue using them. The `output` key will still be present, but it's value will be `null` after the output has been removed.
+ /// Output files are served by `replicate.delivery` and its subdomains. If you use an allow list of external domains for your assets, add `replicate.delivery` and `*.replicate.delivery` to it. + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> PredictionsGetAsResponseAsync( + string predictionId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -110,22 +181,44 @@ partial void ProcessPredictionsGetResponseContent( securityRequirements: s_PredictionsGetSecurityRequirements, operationName: "PredictionsGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/predictions/{predictionId}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/predictions/{predictionId}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -135,112 +228,297 @@ partial void ProcessPredictionsGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PreparePredictionsGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - predictionId: predictionId); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PreparePredictionsGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + predictionId: predictionId!); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessPredictionsGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsGet", + methodName: "PredictionsGetAsync", + pathTemplate: "$\"/predictions/{predictionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsGet", + methodName: "PredictionsGetAsync", + pathTemplate: "$\"/predictions/{predictionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessPredictionsGetResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsGet", + methodName: "PredictionsGetAsync", + pathTemplate: "$\"/predictions/{predictionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessPredictionsGetResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsGet", + methodName: "PredictionsGetAsync", + pathTemplate: "$\"/predictions/{predictionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsGet", + methodName: "PredictionsGetAsync", + pathTemplate: "$\"/predictions/{predictionId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessPredictionsGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasPredictionResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasPredictionResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsList.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsList.g.cs index af0dbc1..524824e 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.PredictionsList.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -102,12 +103,92 @@ partial void ProcessPredictionsListResponseContent( /// Example: 2025-02-01T00:00:00Z /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task PredictionsListAsync( global::System.DateTime? createdAfter = default, global::System.DateTime? createdBefore = default, global::Replicate.PredictionsListSource? source = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await PredictionsListAsResponseAsync( + createdAfter: createdAfter, + createdBefore: createdBefore, + source: source, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// List predictions
+ /// Get a paginated list of all predictions created by the user or organization associated with the provided API token.
+ /// This will include predictions created from the API and the website. It will return 100 records per page.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/predictions
+ /// ```
+ /// The response will be a paginated JSON array of prediction objects, sorted with the most recent prediction first:
+ /// ```json
+ /// {
+ /// "next": null,
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "completed_at": "2023-09-08T16:19:34.791859Z",
+ /// "created_at": "2023-09-08T16:19:34.907244Z",
+ /// "data_removed": false,
+ /// "error": null,
+ /// "id": "gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "input": {
+ /// "text": "Alice"
+ /// },
+ /// "metrics": {
+ /// "predict_time": 0.012683
+ /// },
+ /// "output": "hello Alice",
+ /// "started_at": "2023-09-08T16:19:34.779176Z",
+ /// "source": "api",
+ /// "status": "succeeded",
+ /// "urls": {
+ /// "web": "https://replicate.com/p/gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "get": "https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu",
+ /// "cancel": "https://api.replicate.com/v1/predictions/gm3qorzdhgbfurvjtvhg6dckhu/cancel"
+ /// },
+ /// "model": "replicate/hello-world",
+ /// "version": "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa",
+ /// }
+ /// ]
+ /// }
+ /// ```
+ /// `id` will be the unique ID of the prediction.
+ /// `source` will indicate how the prediction was created. Possible values are `web` or `api`.
+ /// `status` will be the status of the prediction. Refer to [get a single prediction](#predictions.get) for possible values.
+ /// `urls` will be a convenience object that can be used to construct new API requests for the given prediction. If the requested model version supports streaming, this will have a `stream` entry with an HTTPS URL that you can use to construct an [`EventSource`](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).
+ /// `model` will be the model identifier string in the format of `{model_owner}/{model_name}`.
+ /// `version` will be the unique ID of model version used to create the prediction.
+ /// `data_removed` will be `true` if the input and output data has been deleted. + ///
+ /// + /// Example: 2025-01-01T00:00:00Z + /// + /// + /// Example: 2025-02-01T00:00:00Z + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> PredictionsListAsResponseAsync( + global::System.DateTime? createdAfter = default, + global::System.DateTime? createdBefore = default, + global::Replicate.PredictionsListSource? source = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -124,27 +205,49 @@ partial void ProcessPredictionsListResponseContent( securityRequirements: s_PredictionsListSecurityRequirements, operationName: "PredictionsListAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/predictions", - baseUri: HttpClient.BaseAddress); - __pathBuilder - .AddOptionalParameter("created_after", createdAfter?.ToString("yyyy-MM-ddTHH:mm:ssZ")) - .AddOptionalParameter("created_before", createdBefore?.ToString("yyyy-MM-ddTHH:mm:ssZ")) - .AddOptionalParameter("source", source?.ToValueString()) - ; - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/predictions", + baseUri: HttpClient.BaseAddress); + __pathBuilder + .AddOptionalParameter("created_after", createdAfter?.ToString("yyyy-MM-ddTHH:mm:ssZ")) + .AddOptionalParameter("created_before", createdBefore?.ToString("yyyy-MM-ddTHH:mm:ssZ")) + .AddOptionalParameter("source", source?.ToValueString()) + ; + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -154,114 +257,299 @@ partial void ProcessPredictionsListResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PreparePredictionsListRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - createdAfter: createdAfter, - createdBefore: createdBefore, - source: source); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PreparePredictionsListRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + createdAfter: createdAfter, + createdBefore: createdBefore, + source: source); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessPredictionsListResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsList", + methodName: "PredictionsListAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsList", + methodName: "PredictionsListAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessPredictionsListResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsList", + methodName: "PredictionsListAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.PredictionsListResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.PredictionsListResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessPredictionsListResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsList", + methodName: "PredictionsListAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PredictionsList", + methodName: "PredictionsListAsync", + pathTemplate: "\"/predictions\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessPredictionsListResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.PredictionsListResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.PredictionsListResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.Search.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.Search.g.cs index f64a1d2..5ce06c9 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.Search.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.Search.g.cs @@ -45,11 +45,53 @@ partial void ProcessSearchResponseContent( /// Default Value: 20
/// Example: 10 /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task SearchAsync( string query, int? limit = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await SearchAsResponseAsync( + query: query, + limit: limit, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Search models, collections, and docs (beta)
+ /// Search for public models, collections, and docs using a text query.
+ /// For models, the response includes all model data, plus a new `metadata` object with the following fields:
+ /// - `generated_description`: A longer and more detailed AI-generated description of the model
+ /// - `tags`: An array of tags for the model
+ /// - `score`: A score for the model's relevance to the search query
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// "https://api.replicate.com/v1/search?query=nano+banana"
+ /// ```
+ /// Note: This search API is currently in beta and may change in future versions. + ///
+ /// + /// Example: nano banana + /// + /// + /// Default Value: 20
+ /// Example: 10 + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> SearchAsResponseAsync( + string query, + int? limit = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -59,202 +101,408 @@ partial void ProcessSearchResponseContent( query: ref query, limit: ref limit); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/search", - baseUri: HttpClient.BaseAddress); - __pathBuilder - .AddRequiredParameter("query", query) - .AddOptionalParameter("limit", limit?.ToString()) - ; - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/search", + baseUri: HttpClient.BaseAddress); + __pathBuilder + .AddRequiredParameter("query", query) + .AddOptionalParameter("limit", limit?.ToString()) + ; + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareSearchRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - query: query, - limit: limit); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareSearchRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + query: query!, + limit: limit); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + return __httpRequest; + } - ProcessResponse( - client: HttpClient, - response: __response); - ProcessSearchResponse( - httpClient: HttpClient, - httpResponseMessage: __response); - // Bad Request - Missing or invalid query parameter - if ((int)__response.StatusCode == 400) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - string? __content_400 = null; - global::System.Exception? __exception_400 = null; - global::Replicate.SearchResponse? __value_400 = null; - try + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) { - if (ReadResponseAsString) + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "Search", + methodName: "SearchAsync", + pathTemplate: "\"/search\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try { - __content_400 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); - __value_400 = global::Replicate.SearchResponse.FromJson(__content_400, JsonSerializerContext); + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); } - else + catch (global::System.Net.Http.HttpRequestException __exception) { - __content_400 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "Search", + methodName: "SearchAsync", + pathTemplate: "\"/search\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - __value_400 = global::Replicate.SearchResponse.FromJson(__content_400, JsonSerializerContext); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } - } - catch (global::System.Exception __ex) - { - __exception_400 = __ex; - } - throw new global::Replicate.ApiException( - message: __content_400 ?? __response.ReasonPhrase ?? string.Empty, - innerException: __exception_400, - statusCode: __response.StatusCode) - { - ResponseBody = __content_400, - ResponseObject = __value_400, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - // Internal Server Error - Search service error - if ((int)__response.StatusCode == 500) - { - string? __content_500 = null; - global::System.Exception? __exception_500 = null; - global::Replicate.SearchResponse2? __value_500 = null; - try - { - if (ReadResponseAsString) + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) { - __content_500 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); - __value_500 = global::Replicate.SearchResponse2.FromJson(__content_500, JsonSerializerContext); + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "Search", + methodName: "SearchAsync", + pathTemplate: "\"/search\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; } - else - { - __content_500 = await __response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); - __value_500 = global::Replicate.SearchResponse2.FromJson(__content_500, JsonSerializerContext); - } + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - __exception_500 = __ex; + throw new global::System.InvalidOperationException("No response received."); } - throw new global::Replicate.ApiException( - message: __content_500 ?? __response.ReasonPhrase ?? string.Empty, - innerException: __exception_500, - statusCode: __response.StatusCode) + using (__response) { - ResponseBody = __content_500, - ResponseObject = __value_500, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; - } - - if (ReadResponseAsString) - { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - ProcessResponseContent( + ProcessResponse( client: HttpClient, - response: __response, - content: ref __content); - ProcessSearchResponseContent( + response: __response); + ProcessSearchResponse( httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); - - try + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) { - __response.EnsureSuccessStatusCode(); - - return - global::Replicate.SchemasSearchResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "Search", + methodName: "SearchAsync", + pathTemplate: "\"/search\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "Search", + methodName: "SearchAsync", + pathTemplate: "\"/search\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - } - else - { - try - { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + // Bad Request - Missing or invalid query parameter + if ((int)__response.StatusCode == 400) + { + string? __content_400 = null; + global::System.Exception? __exception_400 = null; + global::Replicate.SearchResponse? __value_400 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_400 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_400 = global::Replicate.SearchResponse.FromJson(__content_400, JsonSerializerContext); + } + else + { + __content_400 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); - return - await global::Replicate.SchemasSearchResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); - } - catch (global::System.Exception __ex) - { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + __value_400 = global::Replicate.SearchResponse.FromJson(__content_400, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_400 = __ex; + } + + throw new global::Replicate.ApiException( + message: __content_400 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_400, + statusCode: __response.StatusCode) + { + ResponseBody = __content_400, + ResponseObject = __value_400, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + // Internal Server Error - Search service error + if ((int)__response.StatusCode == 500) + { + string? __content_500 = null; + global::System.Exception? __exception_500 = null; + global::Replicate.SearchResponse2? __value_500 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_500 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_500 = global::Replicate.SearchResponse2.FromJson(__content_500, JsonSerializerContext); + } + else + { + __content_500 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + + __value_500 = global::Replicate.SearchResponse2.FromJson(__content_500, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_500 = __ex; + } + + throw new global::Replicate.ApiException( + message: __content_500 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_500, + statusCode: __response.StatusCode) + { + ResponseBody = __content_500, + ResponseObject = __value_500, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessSearchResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasSearchResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasSearchResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsCancel.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsCancel.g.cs index 7fd54b1..3d6ee15 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsCancel.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsCancel.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -44,10 +45,32 @@ partial void ProcessTrainingsCancelResponseContent( /// Cancel a training /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task TrainingsCancelAsync( string trainingId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await TrainingsCancelAsResponseAsync( + trainingId: trainingId, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Cancel a training + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> TrainingsCancelAsResponseAsync( + string trainingId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -62,22 +85,44 @@ partial void ProcessTrainingsCancelResponseContent( securityRequirements: s_TrainingsCancelSecurityRequirements, operationName: "TrainingsCancelAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/trainings/{trainingId}/cancel", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Post, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/trainings/{trainingId}/cancel", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -87,112 +132,297 @@ partial void ProcessTrainingsCancelResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareTrainingsCancelRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - trainingId: trainingId); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareTrainingsCancelRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + trainingId: trainingId!); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessTrainingsCancelResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCancel", + methodName: "TrainingsCancelAsync", + pathTemplate: "$\"/trainings/{trainingId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCancel", + methodName: "TrainingsCancelAsync", + pathTemplate: "$\"/trainings/{trainingId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessTrainingsCancelResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCancel", + methodName: "TrainingsCancelAsync", + pathTemplate: "$\"/trainings/{trainingId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasTrainingResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasTrainingResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessTrainingsCancelResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCancel", + methodName: "TrainingsCancelAsync", + pathTemplate: "$\"/trainings/{trainingId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCancel", + methodName: "TrainingsCancelAsync", + pathTemplate: "$\"/trainings/{trainingId}/cancel\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessTrainingsCancelResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasTrainingResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasTrainingResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsCreate.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsCreate.g.cs index 8f1dad0..8f7763f 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsCreate.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsCreate.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -95,6 +96,7 @@ partial void ProcessTrainingsCreateResponseContent( /// /// /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task TrainingsCreateAsync( @@ -103,6 +105,80 @@ partial void ProcessTrainingsCreateResponseContent( string versionId, global::Replicate.SchemasTrainingRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await TrainingsCreateAsResponseAsync( + modelOwner: modelOwner, + modelName: modelName, + versionId: versionId, + + request: request, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Create a training
+ /// Start a new training of the model version you specify.
+ /// Example request body:
+ /// ```json
+ /// {
+ /// "destination": "{new_owner}/{new_name}",
+ /// "input": {
+ /// "train_data": "https://example.com/my-input-images.zip",
+ /// },
+ /// "webhook": "https://example.com/my-webhook",
+ /// }
+ /// ```
+ /// Example cURL request:
+ /// ```console
+ /// curl -s -X POST \
+ /// -d '{"destination": "{new_owner}/{new_name}", "input": {"input_images": "https://example.com/my-input-images.zip"}}' \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// -H 'Content-Type: application/json' \
+ /// https://api.replicate.com/v1/models/stability-ai/sdxl/versions/da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf/trainings
+ /// ```
+ /// The response will be the training object:
+ /// ```json
+ /// {
+ /// "id": "zz4ibbonubfz7carwiefibzgga",
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// "input": {
+ /// "input_images": "https://example.com/my-input-images.zip"
+ /// },
+ /// "logs": "",
+ /// "error": null,
+ /// "status": "starting",
+ /// "created_at": "2023-09-08T16:32:56.990893084Z",
+ /// "urls": {
+ /// "web": "https://replicate.com/p/zz4ibbonubfz7carwiefibzgga",
+ /// "get": "https://api.replicate.com/v1/predictions/zz4ibbonubfz7carwiefibzgga",
+ /// "cancel": "https://api.replicate.com/v1/predictions/zz4ibbonubfz7carwiefibzgga/cancel"
+ /// }
+ /// }
+ /// ```
+ /// As models can take several minutes or more to train, the result will not be available immediately. To get the final result of the training you should either provide a `webhook` HTTPS URL for us to call when the results are ready, or poll the [get a training](#trainings.get) endpoint until it has finished.
+ /// When a training completes, it creates a new [version](https://replicate.com/docs/how-does-replicate-work#terminology) of the model at the specified destination.
+ /// To find some models to train on, check out the [trainable language models collection](https://replicate.com/collections/trainable-language-models). + ///
+ /// + /// + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> TrainingsCreateAsResponseAsync( + string modelOwner, + string modelName, + string versionId, + + global::Replicate.SchemasTrainingRequest request, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { request = request ?? throw new global::System.ArgumentNullException(nameof(request)); @@ -122,22 +198,44 @@ partial void ProcessTrainingsCreateResponseContent( securityRequirements: s_TrainingsCreateSecurityRequirements, operationName: "TrainingsCreateAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/models/{modelOwner}/{modelName}/versions/{versionId}/trainings", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Post, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/models/{modelOwner}/{modelName}/versions/{versionId}/trainings", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -147,121 +245,306 @@ partial void ProcessTrainingsCreateResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } - var __httpRequestContentBody = request.ToJson(JsonSerializerContext); - var __httpRequestContent = new global::System.Net.Http.StringContent( - content: __httpRequestContentBody, - encoding: global::System.Text.Encoding.UTF8, - mediaType: "application/json"); - __httpRequest.Content = __httpRequestContent; - - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareTrainingsCreateRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - modelOwner: modelOwner, - modelName: modelName, - versionId: versionId, - request: request); + var __httpRequestContentBody = request.ToJson(JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + __httpRequest.Content = __httpRequestContent; + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareTrainingsCreateRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + modelOwner: modelOwner!, + modelName: modelName!, + versionId: versionId!, + request: request); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessTrainingsCreateResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCreate", + methodName: "TrainingsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}/trainings\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCreate", + methodName: "TrainingsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}/trainings\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessTrainingsCreateResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCreate", + methodName: "TrainingsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}/trainings\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasTrainingResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasTrainingResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessTrainingsCreateResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCreate", + methodName: "TrainingsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}/trainings\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsCreate", + methodName: "TrainingsCreateAsync", + pathTemplate: "$\"/models/{modelOwner}/{modelName}/versions/{versionId}/trainings\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessTrainingsCreateResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasTrainingResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasTrainingResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } /// /// Create a training
@@ -339,6 +622,7 @@ partial void ProcessTrainingsCreateResponseContent( /// ```
/// Requests for event types `output` and `logs` will be sent at most once every 500ms. If you request `start` and `completed` webhooks, then they'll always be sent regardless of throttling. /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task TrainingsCreateAsync( @@ -349,6 +633,7 @@ partial void ProcessTrainingsCreateResponseContent( object input, string? webhook = default, global::System.Collections.Generic.IList? webhookEventsFilter = default, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { var __request = new global::Replicate.SchemasTrainingRequest @@ -364,6 +649,7 @@ partial void ProcessTrainingsCreateResponseContent( modelName: modelName, versionId: versionId, request: __request, + requestOptions: requestOptions, cancellationToken: cancellationToken).ConfigureAwait(false); } } diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsGet.g.cs index de40610..88b02dc 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -89,10 +90,77 @@ partial void ProcessTrainingsGetResponseContent( /// Terminated trainings (with a status of `succeeded`, `failed`, or `canceled`) will include a `metrics` object with a `predict_time` property showing the amount of CPU or GPU time, in seconds, that the training used while running. It won't include time waiting for the training to start. The `metrics` object will also include a `total_time` property showing the total time, in seconds, that the training took to complete. ///
/// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task TrainingsGetAsync( string trainingId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await TrainingsGetAsResponseAsync( + trainingId: trainingId, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get a training
+ /// Get the current state of a training.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga
+ /// ```
+ /// The response will be the training object:
+ /// ```json
+ /// {
+ /// "completed_at": "2023-09-08T16:41:19.826523Z",
+ /// "created_at": "2023-09-08T16:32:57.018467Z",
+ /// "error": null,
+ /// "id": "zz4ibbonubfz7carwiefibzgga",
+ /// "input": {
+ /// "input_images": "https://example.com/my-input-images.zip"
+ /// },
+ /// "logs": "...",
+ /// "metrics": {
+ /// "predict_time": 502.713876
+ /// },
+ /// "output": {
+ /// "version": "...",
+ /// "weights": "..."
+ /// },
+ /// "started_at": "2023-09-08T16:32:57.112647Z",
+ /// "status": "succeeded",
+ /// "urls": {
+ /// "web": "https://replicate.com/p/zz4ibbonubfz7carwiefibzgga",
+ /// "get": "https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga",
+ /// "cancel": "https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga/cancel"
+ /// },
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// }
+ /// ```
+ /// `status` will be one of:
+ /// - `starting`: the training is starting up. If this status lasts longer than a few seconds, then it's typically because a new worker is being started to run the training.
+ /// - `processing`: the `train()` method of the model is currently running.
+ /// - `succeeded`: the training completed successfully.
+ /// - `failed`: the training encountered an error during processing.
+ /// - `canceled`: the training was canceled by its creator.
+ /// In the case of success, `output` will be an object containing the output of the model. Any files will be represented as HTTPS URLs. You'll need to pass the `Authorization` header to request them.
+ /// In the case of failure, `error` will contain the error encountered during the training.
+ /// Terminated trainings (with a status of `succeeded`, `failed`, or `canceled`) will include a `metrics` object with a `predict_time` property showing the amount of CPU or GPU time, in seconds, that the training used while running. It won't include time waiting for the training to start. The `metrics` object will also include a `total_time` property showing the total time, in seconds, that the training took to complete. + ///
+ /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> TrainingsGetAsResponseAsync( + string trainingId, + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -107,22 +175,44 @@ partial void ProcessTrainingsGetResponseContent( securityRequirements: s_TrainingsGetSecurityRequirements, operationName: "TrainingsGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: $"/trainings/{trainingId}", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: $"/trainings/{trainingId}", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -132,112 +222,297 @@ partial void ProcessTrainingsGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareTrainingsGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest, - trainingId: trainingId); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareTrainingsGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + trainingId: trainingId!); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessTrainingsGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsGet", + methodName: "TrainingsGetAsync", + pathTemplate: "$\"/trainings/{trainingId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsGet", + methodName: "TrainingsGetAsync", + pathTemplate: "$\"/trainings/{trainingId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessTrainingsGetResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsGet", + methodName: "TrainingsGetAsync", + pathTemplate: "$\"/trainings/{trainingId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.SchemasTrainingResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.SchemasTrainingResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessTrainingsGetResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsGet", + methodName: "TrainingsGetAsync", + pathTemplate: "$\"/trainings/{trainingId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsGet", + methodName: "TrainingsGetAsync", + pathTemplate: "$\"/trainings/{trainingId}\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessTrainingsGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.SchemasTrainingResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.SchemasTrainingResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsList.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsList.g.cs index 95958e8..9bfa45a 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsList.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.TrainingsList.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -89,9 +90,76 @@ partial void ProcessTrainingsListResponseContent( /// `urls` will be a convenience object that can be used to construct new API requests for the given training.
/// `version` will be the unique ID of model version used to create the training. /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task TrainingsListAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await TrainingsListAsResponseAsync( + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// List trainings
+ /// Get a paginated list of all trainings created by the user or organization associated with the provided API token.
+ /// This will include trainings created from the API and the website. It will return 100 records per page.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/trainings
+ /// ```
+ /// The response will be a paginated JSON array of training objects, sorted with the most recent training first:
+ /// ```json
+ /// {
+ /// "next": null,
+ /// "previous": null,
+ /// "results": [
+ /// {
+ /// "completed_at": "2023-09-08T16:41:19.826523Z",
+ /// "created_at": "2023-09-08T16:32:57.018467Z",
+ /// "error": null,
+ /// "id": "zz4ibbonubfz7carwiefibzgga",
+ /// "input": {
+ /// "input_images": "https://example.com/my-input-images.zip"
+ /// },
+ /// "metrics": {
+ /// "predict_time": 502.713876
+ /// },
+ /// "output": {
+ /// "version": "...",
+ /// "weights": "..."
+ /// },
+ /// "started_at": "2023-09-08T16:32:57.112647Z",
+ /// "source": "api",
+ /// "status": "succeeded",
+ /// "urls": {
+ /// "web": "https://replicate.com/p/zz4ibbonubfz7carwiefibzgga",
+ /// "get": "https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga",
+ /// "cancel": "https://api.replicate.com/v1/trainings/zz4ibbonubfz7carwiefibzgga/cancel"
+ /// },
+ /// "model": "stability-ai/sdxl",
+ /// "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
+ /// }
+ /// ]
+ /// }
+ /// ```
+ /// `id` will be the unique ID of the training.
+ /// `source` will indicate how the training was created. Possible values are `web` or `api`.
+ /// `status` will be the status of the training. Refer to [get a single training](#trainings.get) for possible values.
+ /// `urls` will be a convenience object that can be used to construct new API requests for the given training.
+ /// `version` will be the unique ID of model version used to create the training. + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> TrainingsListAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -105,22 +173,44 @@ partial void ProcessTrainingsListResponseContent( securityRequirements: s_TrainingsListSecurityRequirements, operationName: "TrainingsListAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/trainings", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/trainings", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -130,111 +220,296 @@ partial void ProcessTrainingsListResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareTrainingsListRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareTrainingsListRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessTrainingsListResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsList", + methodName: "TrainingsListAsync", + pathTemplate: "\"/trainings\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsList", + methodName: "TrainingsListAsync", + pathTemplate: "\"/trainings\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessTrainingsListResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsList", + methodName: "TrainingsListAsync", + pathTemplate: "\"/trainings\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.TrainingsListResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.TrainingsListResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessTrainingsListResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsList", + methodName: "TrainingsListAsync", + pathTemplate: "\"/trainings\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "TrainingsList", + methodName: "TrainingsListAsync", + pathTemplate: "\"/trainings\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessTrainingsListResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.TrainingsListResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.TrainingsListResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.WebhooksDefaultSecretGet.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.WebhooksDefaultSecretGet.g.cs index 906be4e..fc2f7bc 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.WebhooksDefaultSecretGet.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.WebhooksDefaultSecretGet.g.cs @@ -14,6 +14,7 @@ public partial class ReplicateClient { new global::Replicate.EndPointAuthorizationRequirement { Type = "Http", + SchemeId = "BearerAuth", Location = "Header", Name = "Bearer", FriendlyName = "Bearer", @@ -54,9 +55,41 @@ partial void ProcessWebhooksDefaultSecretGetResponseContent( /// }
/// ``` /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. /// The token to cancel the operation with /// public async global::System.Threading.Tasks.Task WebhooksDefaultSecretGetAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await WebhooksDefaultSecretGetAsResponseAsync( + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Get the signing secret for the default webhook
+ /// Get the signing secret for the default webhook endpoint. This is used to verify that webhook requests are coming from Replicate.
+ /// Example cURL request:
+ /// ```console
+ /// curl -s \
+ /// -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
+ /// https://api.replicate.com/v1/webhooks/default/secret
+ /// ```
+ /// The response will be a JSON object with a `key` property:
+ /// ```json
+ /// {
+ /// "key": "..."
+ /// }
+ /// ``` + ///
+ /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> WebhooksDefaultSecretGetAsResponseAsync( + global::Replicate.AutoSDKRequestOptions? requestOptions = default, global::System.Threading.CancellationToken cancellationToken = default) { PrepareArguments( @@ -70,22 +103,44 @@ partial void ProcessWebhooksDefaultSecretGetResponseContent( securityRequirements: s_WebhooksDefaultSecretGetSecurityRequirements, operationName: "WebhooksDefaultSecretGetAsync"); - var __pathBuilder = new global::Replicate.PathBuilder( - path: "/webhooks/default/secret", - baseUri: HttpClient.BaseAddress); - var __path = __pathBuilder.ToString(); - using var __httpRequest = new global::System.Net.Http.HttpRequestMessage( - method: global::System.Net.Http.HttpMethod.Get, - requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); + using var __timeoutCancellationTokenSource = global::Replicate.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Replicate.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Replicate.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: true); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Replicate.PathBuilder( + path: "/webhooks/default/secret", + baseUri: HttpClient.BaseAddress); + var __path = __pathBuilder.ToString(); + __path = global::Replicate.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); #if NET6_0_OR_GREATER - __httpRequest.Version = global::System.Net.HttpVersion.Version11; - __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; #endif foreach (var __authorization in __authorizations) { if (__authorization.Type == "Http" || - __authorization.Type == "OAuth2") + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") { __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( scheme: __authorization.Name, @@ -95,111 +150,296 @@ partial void ProcessWebhooksDefaultSecretGetResponseContent( __authorization.Location == "Header") { __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); - } + } } + global::Replicate.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); - PrepareRequest( - client: HttpClient, - request: __httpRequest); - PrepareWebhooksDefaultSecretGetRequest( - httpClient: HttpClient, - httpRequestMessage: __httpRequest); - - using var __response = await HttpClient.SendAsync( - request: __httpRequest, - completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, - cancellationToken: cancellationToken).ConfigureAwait(false); + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PrepareWebhooksDefaultSecretGetRequest( + httpClient: HttpClient, + httpRequestMessage: __httpRequest); - ProcessResponse( - client: HttpClient, - response: __response); - ProcessWebhooksDefaultSecretGetResponse( - httpClient: HttpClient, - httpResponseMessage: __response); + return __httpRequest; + } - if (ReadResponseAsString) + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try { - var __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Replicate.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "WebhooksDefaultSecretGet", + methodName: "WebhooksDefaultSecretGetAsync", + pathTemplate: "\"/webhooks/default/secret\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "WebhooksDefaultSecretGet", + methodName: "WebhooksDefaultSecretGetAsync", + pathTemplate: "\"/webhooks/default/secret\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } - ProcessResponseContent( - client: HttpClient, - response: __response, - content: ref __content); - ProcessWebhooksDefaultSecretGetResponseContent( - httpClient: HttpClient, - httpResponseMessage: __response, - content: ref __content); + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - try - { - __response.EnsureSuccessStatusCode(); + if (__response != null && + __attempt < __maxAttempts && + global::Replicate.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Replicate.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "WebhooksDefaultSecretGet", + methodName: "WebhooksDefaultSecretGetAsync", + pathTemplate: "\"/webhooks/default/secret\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Replicate.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } - return - global::Replicate.WebhooksDefaultSecretGetResponse.FromJson(__content, JsonSerializerContext) ?? - throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + break; } - catch (global::System.Exception __ex) + + if (__response == null) { - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; + throw new global::System.InvalidOperationException("No response received."); } - } - else - { - try + + using (__response) { - __response.EnsureSuccessStatusCode(); - using var __content = await __response.Content.ReadAsStreamAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - return - await global::Replicate.WebhooksDefaultSecretGetResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? - throw new global::System.InvalidOperationException("Response deserialization failed."); + ProcessResponse( + client: HttpClient, + response: __response); + ProcessWebhooksDefaultSecretGetResponse( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "WebhooksDefaultSecretGet", + methodName: "WebhooksDefaultSecretGetAsync", + pathTemplate: "\"/webhooks/default/secret\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); } - catch (global::System.Exception __ex) + else { - string? __content = null; - try - { - __content = await __response.Content.ReadAsStringAsync( -#if NET5_0_OR_GREATER - cancellationToken -#endif - ).ConfigureAwait(false); - } - catch (global::System.Exception) - { - } + await global::Replicate.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Replicate.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "WebhooksDefaultSecretGet", + methodName: "WebhooksDefaultSecretGetAsync", + pathTemplate: "\"/webhooks/default/secret\"", + httpMethod: "GET", + baseUri: BaseUri, + request: __httpRequest!, + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessWebhooksDefaultSecretGetResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Replicate.WebhooksDefaultSecretGetResponse.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Replicate.WebhooksDefaultSecretGetResponse.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Replicate.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Replicate.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw new global::Replicate.ApiException( + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + statusCode: __response.StatusCode) + { + ResponseBody = __content, + ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value), + }; + } + } - throw new global::Replicate.ApiException( - message: __content ?? __response.ReasonPhrase ?? string.Empty, - innerException: __ex, - statusCode: __response.StatusCode) - { - ResponseBody = __content, - ResponseHeaders = global::System.Linq.Enumerable.ToDictionary( - __response.Headers, - h => h.Key, - h => h.Value), - }; } } + finally + { + __httpRequest?.Dispose(); + } } } } \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.ReplicateClient.g.cs b/src/libs/Replicate/Generated/Replicate.ReplicateClient.g.cs index 84d3951..1fdaa45 100644 --- a/src/libs/Replicate/Generated/Replicate.ReplicateClient.g.cs +++ b/src/libs/Replicate/Generated/Replicate.ReplicateClient.g.cs @@ -31,6 +31,9 @@ public sealed partial class ReplicateClient : global::Replicate.IReplicateClient #if DEBUG = true; #endif + + /// + public global::Replicate.AutoSDKClientOptions Options { get; } /// /// /// @@ -50,11 +53,58 @@ public ReplicateClient( global::System.Net.Http.HttpClient? httpClient = null, global::System.Uri? baseUri = null, global::System.Collections.Generic.List? authorizations = null, + bool disposeHttpClient = true) : this( + httpClient, + baseUri, + authorizations, + options: null, + disposeHttpClient: disposeHttpClient) + { + } + + /// + /// Creates a new instance of the ReplicateClient with explicit options but no base URL override. + /// Skips passing baseUri so the default base URL from the OpenAPI spec applies. + /// + /// The HttpClient instance. If not provided, a new one will be created. + /// The authorizations to use for the requests. + /// Client-wide request defaults such as headers, query parameters, retries, and timeout. + /// Dispose the HttpClient when the instance is disposed. True by default. + public ReplicateClient( + global::System.Net.Http.HttpClient? httpClient, + global::System.Collections.Generic.List? authorizations, + global::Replicate.AutoSDKClientOptions? options, + bool disposeHttpClient = true) : this( + httpClient, + baseUri: null, + authorizations, + options, + disposeHttpClient: disposeHttpClient) + { + } + + /// + /// Creates a new instance of the ReplicateClient. + /// If no httpClient is provided, a new one will be created. + /// If no baseUri is provided, the default baseUri from OpenAPI spec will be used. + /// + /// The HttpClient instance. If not provided, a new one will be created. + /// The base URL for the API. If not provided, the default baseUri from OpenAPI spec will be used. + /// The authorizations to use for the requests. + /// Client-wide request defaults such as headers, query parameters, retries, and timeout. + /// Dispose the HttpClient when the instance is disposed. True by default. + public ReplicateClient( + global::System.Net.Http.HttpClient? httpClient, + global::System.Uri? baseUri, + global::System.Collections.Generic.List? authorizations, + global::Replicate.AutoSDKClientOptions? options, bool disposeHttpClient = true) { + HttpClient = httpClient ?? new global::System.Net.Http.HttpClient(); HttpClient.BaseAddress ??= baseUri ?? new global::System.Uri(DefaultBaseUrl); Authorizations = authorizations ?? new global::System.Collections.Generic.List(); + Options = options ?? new global::Replicate.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; Initialized(HttpClient); diff --git a/src/libs/Replicate/Generated/Replicate.ResponseStream.g.cs b/src/libs/Replicate/Generated/Replicate.ResponseStream.g.cs new file mode 100644 index 0000000..174f8db --- /dev/null +++ b/src/libs/Replicate/Generated/Replicate.ResponseStream.g.cs @@ -0,0 +1,117 @@ + +#nullable enable + +namespace Replicate +{ + internal sealed class ResponseStream : global::System.IO.Stream + { + private readonly global::System.Net.Http.HttpResponseMessage _response; + private readonly global::System.IO.Stream _stream; + private bool _disposed; + + public ResponseStream( + global::System.Net.Http.HttpResponseMessage response, + global::System.IO.Stream stream) + { + _response = response ?? throw new global::System.ArgumentNullException(nameof(response)); + _stream = stream ?? throw new global::System.ArgumentNullException(nameof(stream)); + } + + public override bool CanRead => _stream.CanRead; + public override bool CanSeek => _stream.CanSeek; + public override bool CanWrite => _stream.CanWrite; + public override bool CanTimeout => _stream.CanTimeout; + public override long Length => _stream.Length; + + public override long Position + { + get => _stream.Position; + set => _stream.Position = value; + } + + public override int ReadTimeout + { + get => _stream.ReadTimeout; + set => _stream.ReadTimeout = value; + } + + public override int WriteTimeout + { + get => _stream.WriteTimeout; + set => _stream.WriteTimeout = value; + } + + public override void Flush() => _stream.Flush(); + + public override global::System.Threading.Tasks.Task FlushAsync( + global::System.Threading.CancellationToken cancellationToken) => + _stream.FlushAsync(cancellationToken); + + public override int Read(byte[] buffer, int offset, int count) => + _stream.Read(buffer, offset, count); + + public override global::System.Threading.Tasks.Task ReadAsync( + byte[] buffer, + int offset, + int count, + global::System.Threading.CancellationToken cancellationToken) => + _stream.ReadAsync(buffer, offset, count, cancellationToken); + +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_0_OR_GREATER || NET5_0_OR_GREATER + public override global::System.Threading.Tasks.ValueTask ReadAsync( + global::System.Memory buffer, + global::System.Threading.CancellationToken cancellationToken = default) => + _stream.ReadAsync(buffer, cancellationToken); +#endif + + public override long Seek(long offset, global::System.IO.SeekOrigin origin) => + _stream.Seek(offset, origin); + + public override void SetLength(long value) => + _stream.SetLength(value); + + public override void Write(byte[] buffer, int offset, int count) => + _stream.Write(buffer, offset, count); + + public override global::System.Threading.Tasks.Task WriteAsync( + byte[] buffer, + int offset, + int count, + global::System.Threading.CancellationToken cancellationToken) => + _stream.WriteAsync(buffer, offset, count, cancellationToken); + +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_0_OR_GREATER || NET5_0_OR_GREATER + public override global::System.Threading.Tasks.ValueTask WriteAsync( + global::System.ReadOnlyMemory buffer, + global::System.Threading.CancellationToken cancellationToken = default) => + _stream.WriteAsync(buffer, cancellationToken); +#endif + + protected override void Dispose(bool disposing) + { + if (!_disposed && disposing) + { + _disposed = true; + _stream.Dispose(); + _response.Dispose(); + } + + base.Dispose(disposing); + } + +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_0_OR_GREATER || NET5_0_OR_GREATER + public override async global::System.Threading.Tasks.ValueTask DisposeAsync() + { + if (_disposed) + { + return; + } + + _disposed = true; + await _stream.DisposeAsync().ConfigureAwait(false); + _response.Dispose(); + await base.DisposeAsync().ConfigureAwait(false); + } +#endif + } +} \ No newline at end of file diff --git a/src/libs/Replicate/Generated/Replicate.Security.g.cs b/src/libs/Replicate/Generated/Replicate.Security.g.cs index ae19611..56460c4 100644 --- a/src/libs/Replicate/Generated/Replicate.Security.g.cs +++ b/src/libs/Replicate/Generated/Replicate.Security.g.cs @@ -6,6 +6,8 @@ internal sealed class EndPointAuthorizationRequirement { internal string Type { get; set; } = string.Empty; + internal string SchemeId { get; set; } = string.Empty; + internal string Location { get; set; } = string.Empty; internal string Name { get; set; } = string.Empty; @@ -97,7 +99,18 @@ private static bool Matches( return requiredAuthorization.Type switch { - "OAuth2" => true, + "OAuth2" => string.Equals( + availableAuthorization.SchemeId, + requiredAuthorization.SchemeId, + global::System.StringComparison.Ordinal), + "OpenIdConnect" => string.Equals( + availableAuthorization.SchemeId, + requiredAuthorization.SchemeId, + global::System.StringComparison.Ordinal), + "MutualTLS" => string.Equals( + availableAuthorization.SchemeId, + requiredAuthorization.SchemeId, + global::System.StringComparison.Ordinal), "Http" => string.Equals( availableAuthorization.Name, requiredAuthorization.Name, diff --git a/src/libs/Replicate/Generated/autosdk.generated-examples.json b/src/libs/Replicate/Generated/autosdk.generated-examples.json new file mode 100644 index 0000000..a193895 --- /dev/null +++ b/src/libs/Replicate/Generated/autosdk.generated-examples.json @@ -0,0 +1,15 @@ +{ + "Examples": [ + { + "Order": 1, + "Title": "Search models, collections, and docs (beta)", + "Slug": "search", + "Description": "Search for public models, collections, and docs using a text query.\n\nFor models, the response includes all model data, plus a new \u0060metadata\u0060 object with the following fields:\n\n- \u0060generated_description\u0060: A longer and more detailed AI-generated description of the model\n- \u0060tags\u0060: An array of tags for the model\n- \u0060score\u0060: A score for the model\u0027s relevance to the search query\n\nExample cURL request:\n\n\u0060\u0060\u0060console\ncurl -s \\\n -H \u0022Authorization: Bearer $REPLICATE_API_TOKEN\u0022 \\\n \u0022https://api.replicate.com/v1/search?query=nano\u002Bbanana\u0022\n\u0060\u0060\u0060\n\nNote: This search API is currently in beta and may change in future versions.", + "Language": "http", + "Code": "### Search models, collections, and docs (beta)\n# @name search\nGET {{host}}/search?query={{query}}\u0026limit=20\nAccept: application/json\n\n## Responses\n# 200\n# Description: Success\n# Content-Type: application/json\n# 400\n# Description: Bad Request - Missing or invalid query parameter\n# Content-Type: application/json\n# 500\n# Description: Internal Server Error - Search service error\n# Content-Type: application/json", + "Format": "http", + "OperationId": "search", + "Setup": null + } + ] +} \ No newline at end of file