All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.vigoo.zioaws.swf.model.WorkflowExecutionConfiguration.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.swf.model
import zio.ZIO
import io.github.vigoo.zioaws.swf.model.primitives.{
  Arn,
  TaskPriority,
  DurationInSeconds
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class WorkflowExecutionConfiguration(
    taskStartToCloseTimeout: DurationInSeconds,
    executionStartToCloseTimeout: DurationInSeconds,
    taskList: io.github.vigoo.zioaws.swf.model.TaskList,
    taskPriority: Option[TaskPriority] = None,
    childPolicy: io.github.vigoo.zioaws.swf.model.ChildPolicy,
    lambdaRole: Option[Arn] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.swf.model.WorkflowExecutionConfiguration = {
    import WorkflowExecutionConfiguration.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.swf.model.WorkflowExecutionConfiguration
      .builder()
      .taskStartToCloseTimeout(taskStartToCloseTimeout: java.lang.String)
      .executionStartToCloseTimeout(
        executionStartToCloseTimeout: java.lang.String
      )
      .taskList(taskList.buildAwsValue())
      .optionallyWith(taskPriority.map(value => value: java.lang.String))(
        _.taskPriority
      )
      .childPolicy(childPolicy.unwrap)
      .optionallyWith(lambdaRole.map(value => value: java.lang.String))(
        _.lambdaRole
      )
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.swf.model.WorkflowExecutionConfiguration.ReadOnly =
    io.github.vigoo.zioaws.swf.model.WorkflowExecutionConfiguration
      .wrap(buildAwsValue())
}
object WorkflowExecutionConfiguration {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.swf.model.WorkflowExecutionConfiguration
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.swf.model.WorkflowExecutionConfiguration =
      io.github.vigoo.zioaws.swf.model.WorkflowExecutionConfiguration(
        taskStartToCloseTimeoutValue,
        executionStartToCloseTimeoutValue,
        taskListValue.editable,
        taskPriorityValue.map(value => value),
        childPolicyValue,
        lambdaRoleValue.map(value => value)
      )
    def taskStartToCloseTimeoutValue: DurationInSeconds
    def executionStartToCloseTimeoutValue: DurationInSeconds
    def taskListValue: io.github.vigoo.zioaws.swf.model.TaskList.ReadOnly
    def taskPriorityValue: Option[TaskPriority]
    def childPolicyValue: io.github.vigoo.zioaws.swf.model.ChildPolicy
    def lambdaRoleValue: Option[Arn]
    def taskStartToCloseTimeout: ZIO[Any, Nothing, DurationInSeconds] =
      ZIO.succeed(taskStartToCloseTimeoutValue)
    def executionStartToCloseTimeout: ZIO[Any, Nothing, DurationInSeconds] =
      ZIO.succeed(executionStartToCloseTimeoutValue)
    def taskList: ZIO[
      Any,
      Nothing,
      io.github.vigoo.zioaws.swf.model.TaskList.ReadOnly
    ] = ZIO.succeed(taskListValue)
    def taskPriority: ZIO[Any, AwsError, TaskPriority] =
      AwsError.unwrapOptionField("taskPriority", taskPriorityValue)
    def childPolicy
        : ZIO[Any, Nothing, io.github.vigoo.zioaws.swf.model.ChildPolicy] =
      ZIO.succeed(childPolicyValue)
    def lambdaRole: ZIO[Any, AwsError, Arn] =
      AwsError.unwrapOptionField("lambdaRole", lambdaRoleValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.swf.model.WorkflowExecutionConfiguration
  ) extends io.github.vigoo.zioaws.swf.model.WorkflowExecutionConfiguration.ReadOnly {
    override def taskStartToCloseTimeoutValue: DurationInSeconds =
      impl.taskStartToCloseTimeout(): DurationInSeconds
    override def executionStartToCloseTimeoutValue: DurationInSeconds =
      impl.executionStartToCloseTimeout(): DurationInSeconds
    override def taskListValue
        : io.github.vigoo.zioaws.swf.model.TaskList.ReadOnly =
      io.github.vigoo.zioaws.swf.model.TaskList.wrap(impl.taskList())
    override def taskPriorityValue: Option[TaskPriority] =
      scala.Option(impl.taskPriority()).map(value => value: TaskPriority)
    override def childPolicyValue
        : io.github.vigoo.zioaws.swf.model.ChildPolicy =
      io.github.vigoo.zioaws.swf.model.ChildPolicy.wrap(impl.childPolicy())
    override def lambdaRoleValue: Option[Arn] =
      scala.Option(impl.lambdaRole()).map(value => value: Arn)
  }
  def wrap(
      impl: software.amazon.awssdk.services.swf.model.WorkflowExecutionConfiguration
  ): io.github.vigoo.zioaws.swf.model.WorkflowExecutionConfiguration.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy