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

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

package io.github.vigoo.zioaws.swf.model
import zio.ZIO
import io.github.vigoo.zioaws.swf.model.primitives.{
  TaskPriority,
  Data,
  WorkflowRunIdOptional,
  Tag,
  Arn,
  EventId,
  DurationInSecondsOptional
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class WorkflowExecutionStartedEventAttributes(
    input: Option[Data] = None,
    executionStartToCloseTimeout: Option[DurationInSecondsOptional] = None,
    taskStartToCloseTimeout: Option[DurationInSecondsOptional] = None,
    childPolicy: io.github.vigoo.zioaws.swf.model.ChildPolicy,
    taskList: io.github.vigoo.zioaws.swf.model.TaskList,
    taskPriority: Option[TaskPriority] = None,
    workflowType: io.github.vigoo.zioaws.swf.model.WorkflowType,
    tagList: Option[Iterable[Tag]] = None,
    continuedExecutionRunId: Option[WorkflowRunIdOptional] = None,
    parentWorkflowExecution: Option[
      io.github.vigoo.zioaws.swf.model.WorkflowExecution
    ] = None,
    parentInitiatedEventId: Option[EventId] = None,
    lambdaRole: Option[Arn] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.swf.model.WorkflowExecutionStartedEventAttributes = {
    import WorkflowExecutionStartedEventAttributes.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.swf.model.WorkflowExecutionStartedEventAttributes
      .builder()
      .optionallyWith(input.map(value => value: java.lang.String))(_.input)
      .optionallyWith(
        executionStartToCloseTimeout.map(value => value: java.lang.String)
      )(_.executionStartToCloseTimeout)
      .optionallyWith(
        taskStartToCloseTimeout.map(value => value: java.lang.String)
      )(_.taskStartToCloseTimeout)
      .childPolicy(childPolicy.unwrap)
      .taskList(taskList.buildAwsValue())
      .optionallyWith(taskPriority.map(value => value: java.lang.String))(
        _.taskPriority
      )
      .workflowType(workflowType.buildAwsValue())
      .optionallyWith(
        tagList.map(value =>
          value.map { item =>
            item: java.lang.String
          }.asJavaCollection
        )
      )(_.tagList)
      .optionallyWith(
        continuedExecutionRunId.map(value => value: java.lang.String)
      )(_.continuedExecutionRunId)
      .optionallyWith(
        parentWorkflowExecution.map(value => value.buildAwsValue())
      )(_.parentWorkflowExecution)
      .optionallyWith(
        parentInitiatedEventId.map(value => value: java.lang.Long)
      )(_.parentInitiatedEventId)
      .optionallyWith(lambdaRole.map(value => value: java.lang.String))(
        _.lambdaRole
      )
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.swf.model.WorkflowExecutionStartedEventAttributes.ReadOnly =
    io.github.vigoo.zioaws.swf.model.WorkflowExecutionStartedEventAttributes
      .wrap(buildAwsValue())
}
object WorkflowExecutionStartedEventAttributes {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.swf.model.WorkflowExecutionStartedEventAttributes
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.swf.model.WorkflowExecutionStartedEventAttributes =
      io.github.vigoo.zioaws.swf.model.WorkflowExecutionStartedEventAttributes(
        inputValue.map(value => value),
        executionStartToCloseTimeoutValue.map(value => value),
        taskStartToCloseTimeoutValue.map(value => value),
        childPolicyValue,
        taskListValue.editable,
        taskPriorityValue.map(value => value),
        workflowTypeValue.editable,
        tagListValue.map(value => value),
        continuedExecutionRunIdValue.map(value => value),
        parentWorkflowExecutionValue.map(value => value.editable),
        parentInitiatedEventIdValue.map(value => value),
        lambdaRoleValue.map(value => value)
      )
    def inputValue: Option[Data]
    def executionStartToCloseTimeoutValue: Option[DurationInSecondsOptional]
    def taskStartToCloseTimeoutValue: Option[DurationInSecondsOptional]
    def childPolicyValue: io.github.vigoo.zioaws.swf.model.ChildPolicy
    def taskListValue: io.github.vigoo.zioaws.swf.model.TaskList.ReadOnly
    def taskPriorityValue: Option[TaskPriority]
    def workflowTypeValue
        : io.github.vigoo.zioaws.swf.model.WorkflowType.ReadOnly
    def tagListValue: Option[List[Tag]]
    def continuedExecutionRunIdValue: Option[WorkflowRunIdOptional]
    def parentWorkflowExecutionValue
        : Option[io.github.vigoo.zioaws.swf.model.WorkflowExecution.ReadOnly]
    def parentInitiatedEventIdValue: Option[EventId]
    def lambdaRoleValue: Option[Arn]
    def input: ZIO[Any, AwsError, Data] =
      AwsError.unwrapOptionField("input", inputValue)
    def executionStartToCloseTimeout
        : ZIO[Any, AwsError, DurationInSecondsOptional] =
      AwsError.unwrapOptionField(
        "executionStartToCloseTimeout",
        executionStartToCloseTimeoutValue
      )
    def taskStartToCloseTimeout: ZIO[Any, AwsError, DurationInSecondsOptional] =
      AwsError.unwrapOptionField(
        "taskStartToCloseTimeout",
        taskStartToCloseTimeoutValue
      )
    def childPolicy
        : ZIO[Any, Nothing, io.github.vigoo.zioaws.swf.model.ChildPolicy] =
      ZIO.succeed(childPolicyValue)
    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 workflowType: ZIO[
      Any,
      Nothing,
      io.github.vigoo.zioaws.swf.model.WorkflowType.ReadOnly
    ] = ZIO.succeed(workflowTypeValue)
    def tagList: ZIO[Any, AwsError, List[Tag]] =
      AwsError.unwrapOptionField("tagList", tagListValue)
    def continuedExecutionRunId: ZIO[Any, AwsError, WorkflowRunIdOptional] =
      AwsError.unwrapOptionField(
        "continuedExecutionRunId",
        continuedExecutionRunIdValue
      )
    def parentWorkflowExecution: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.WorkflowExecution.ReadOnly
    ] = AwsError.unwrapOptionField(
      "parentWorkflowExecution",
      parentWorkflowExecutionValue
    )
    def parentInitiatedEventId: ZIO[Any, AwsError, EventId] = AwsError
      .unwrapOptionField("parentInitiatedEventId", parentInitiatedEventIdValue)
    def lambdaRole: ZIO[Any, AwsError, Arn] =
      AwsError.unwrapOptionField("lambdaRole", lambdaRoleValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.swf.model.WorkflowExecutionStartedEventAttributes
  ) extends io.github.vigoo.zioaws.swf.model.WorkflowExecutionStartedEventAttributes.ReadOnly {
    override def inputValue: Option[Data] =
      scala.Option(impl.input()).map(value => value: Data)
    override def executionStartToCloseTimeoutValue
        : Option[DurationInSecondsOptional] = scala
      .Option(impl.executionStartToCloseTimeout())
      .map(value => value: DurationInSecondsOptional)
    override def taskStartToCloseTimeoutValue
        : Option[DurationInSecondsOptional] = scala
      .Option(impl.taskStartToCloseTimeout())
      .map(value => value: DurationInSecondsOptional)
    override def childPolicyValue
        : io.github.vigoo.zioaws.swf.model.ChildPolicy =
      io.github.vigoo.zioaws.swf.model.ChildPolicy.wrap(impl.childPolicy())
    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 workflowTypeValue
        : io.github.vigoo.zioaws.swf.model.WorkflowType.ReadOnly =
      io.github.vigoo.zioaws.swf.model.WorkflowType.wrap(impl.workflowType())
    override def tagListValue: Option[List[Tag]] = scala
      .Option(impl.tagList())
      .map(value =>
        value.asScala.map { item =>
          item: Tag
        }.toList
      )
    override def continuedExecutionRunIdValue: Option[WorkflowRunIdOptional] =
      scala
        .Option(impl.continuedExecutionRunId())
        .map(value => value: WorkflowRunIdOptional)
    override def parentWorkflowExecutionValue
        : Option[io.github.vigoo.zioaws.swf.model.WorkflowExecution.ReadOnly] =
      scala
        .Option(impl.parentWorkflowExecution())
        .map(value =>
          io.github.vigoo.zioaws.swf.model.WorkflowExecution.wrap(value)
        )
    override def parentInitiatedEventIdValue: Option[EventId] =
      scala.Option(impl.parentInitiatedEventId()).map(value => value: EventId)
    override def lambdaRoleValue: Option[Arn] =
      scala.Option(impl.lambdaRole()).map(value => value: Arn)
  }
  def wrap(
      impl: software.amazon.awssdk.services.swf.model.WorkflowExecutionStartedEventAttributes
  ): io.github.vigoo.zioaws.swf.model.WorkflowExecutionStartedEventAttributes.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy