diff --git a/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs b/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs
index a5a14c777..fe88c1fce 100644
--- a/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs
+++ b/src/clients/Elsa.Api.Client/Extensions/DependencyInjectionExtensions.cs
@@ -82,19 +82,19 @@ public static class DependencyInjectionExtensions
private static RefitSettings CreateRefitSettings(IServiceProvider serviceProvider)
{
- JsonSerializerOptions jsonSerializerSettings = new()
+ JsonSerializerOptions serializerOptions = new()
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
};
- jsonSerializerSettings.Converters.Add(new JsonStringEnumConverter());
- jsonSerializerSettings.Converters.Add(new VersionOptionsJsonConverter());
- jsonSerializerSettings.Converters.Add(new ActivityJsonConverterFactory(serviceProvider));
- jsonSerializerSettings.Converters.Add(new ExpressionJsonConverterFactory());
+ serializerOptions.Converters.Add(new JsonStringEnumConverter());
+ serializerOptions.Converters.Add(new VersionOptionsJsonConverter());
+ serializerOptions.Converters.Add(new ActivityJsonConverterFactory(serviceProvider));
+ serializerOptions.Converters.Add(new ExpressionJsonConverterFactory());
var settings = new RefitSettings
{
- ContentSerializer = new SystemTextJsonContentSerializer(jsonSerializerSettings)
+ ContentSerializer = new SystemTextJsonContentSerializer(serializerOptions)
};
return settings;
diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs
index 227ce2e78..5fc8e2e70 100644
--- a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs
+++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Contracts/IWorkflowDefinitionsApi.cs
@@ -1,3 +1,4 @@
+using System.Net.Mime;
using Elsa.Api.Client.Models;
using Elsa.Api.Client.Resources.WorkflowDefinitions.Models;
using JetBrains.Annotations;
@@ -69,14 +70,16 @@ public interface IWorkflowDefinitionsApi
/// The cancellation token.
[Post("/workflow-definitions/{definitionId}/publish")]
Task PublishAsync(string definitionId, CancellationToken cancellationToken = default);
-
+
///
/// Retracts a workflow definition.
///
/// The ID of the workflow definition to retract.
+ /// An empty object to satisfy the request body requirement.
/// The cancellation token.
[Post("/workflow-definitions/{definitionId}/retract")]
- Task RetractAsync(string definitionId, CancellationToken cancellationToken = default);
+ [Headers(MediaTypeNames.Application.Json)]
+ Task RetractAsync(string definitionId, RetractWorkflowDefinitionRequest request, CancellationToken cancellationToken = default);
///
/// Deletes many workflow definitions.
@@ -110,4 +113,13 @@ public interface IWorkflowDefinitionsApi
/// The cancellation token.
[Get("/workflow-definitions/{definitionId}/export?versionOptions={versionOptions}")]
Task> ExportAsync(string definitionId, VersionOptions? versionOptions = default, CancellationToken cancellationToken = default);
+
+ ///
+ /// Imports a workflow definition.
+ ///
+ /// The model containing the workflow definition to import.
+ /// The cancellation token.
+ /// The imported workflow definition.
+ [Post("/workflow-definitions/import")]
+ Task ImportAsync(WorkflowDefinitionModel model, CancellationToken cancellationToken = default);
}
\ No newline at end of file
diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/RetractWorkflowDefinitionRequest.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/RetractWorkflowDefinitionRequest.cs
new file mode 100644
index 000000000..5714b01c5
--- /dev/null
+++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/RetractWorkflowDefinitionRequest.cs
@@ -0,0 +1,6 @@
+namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models;
+
+///
+/// Request to retract a workflow definition.
+///
+public record RetractWorkflowDefinitionRequest();
\ No newline at end of file