Use with FS2

sbt
libraryDependencies += "uk.gov.nationalarchives" %% "preservica-client-fs2" % "0.0.71"
Maven
<dependencies>
  <dependency>
    <groupId>uk.gov.nationalarchives</groupId>
    <artifactId>preservica-client-fs2_3</artifactId>
    <version>0.0.71</version>
  </dependency>
</dependencies>
Gradle
dependencies {
  implementation "uk.gov.nationalarchives:preservica-client-fs2_3:0.0.71"
}
object WorkflowFs2 {
  import cats.effect.IO
  import uk.gov.nationalarchives.dp.client.WorkflowClient.{Parameter, StartWorkflowRequest}
  import uk.gov.nationalarchives.dp.client.fs2.Fs2Client

  val url = "https://test.preservica.com"
  val parameters: List[Parameter] = List(Parameter("param1", "value1"))
  val startWorkflowRequestWithName: StartWorkflowRequest =
    StartWorkflowRequest(Option("contextName"), None, parameters, Option("correlationId"))
  val startWorkflowRequestWithId: StartWorkflowRequest =
    StartWorkflowRequest(None, Option(1), parameters, Option("correlationId"))
  val startWorkflowRequestNoCorrelationId: StartWorkflowRequest =
    StartWorkflowRequest(None, Option(1), parameters, None)
  val startWorkflowRequestNoParameters: StartWorkflowRequest =
    StartWorkflowRequest(None, Option(1), Nil, Option("correlationId"))

  def searchEntities(): IO[Unit] = {
    for {
      client <- Fs2Client.workflowClient(url, "secretName")
      _ <- client.startWorkflow(startWorkflowRequestWithName)
      _ <- client.startWorkflow(startWorkflowRequestWithId)
      _ <- client.startWorkflow(startWorkflowRequestNoCorrelationId)
      _ <- client.startWorkflow(startWorkflowRequestNoParameters)
    } yield ()
  }
}