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

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

package io.github.vigoo.zioaws.swf.model
import zio.ZIO
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class Decision(
    decisionType: io.github.vigoo.zioaws.swf.model.DecisionType,
    scheduleActivityTaskDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.ScheduleActivityTaskDecisionAttributes
    ] = None,
    requestCancelActivityTaskDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.RequestCancelActivityTaskDecisionAttributes
    ] = None,
    completeWorkflowExecutionDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.CompleteWorkflowExecutionDecisionAttributes
    ] = None,
    failWorkflowExecutionDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.FailWorkflowExecutionDecisionAttributes
    ] = None,
    cancelWorkflowExecutionDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.CancelWorkflowExecutionDecisionAttributes
    ] = None,
    continueAsNewWorkflowExecutionDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.ContinueAsNewWorkflowExecutionDecisionAttributes
    ] = None,
    recordMarkerDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.RecordMarkerDecisionAttributes
    ] = None,
    startTimerDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes
    ] = None,
    cancelTimerDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.CancelTimerDecisionAttributes
    ] = None,
    signalExternalWorkflowExecutionDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.SignalExternalWorkflowExecutionDecisionAttributes
    ] = None,
    requestCancelExternalWorkflowExecutionDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.RequestCancelExternalWorkflowExecutionDecisionAttributes
    ] = None,
    startChildWorkflowExecutionDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.StartChildWorkflowExecutionDecisionAttributes
    ] = None,
    scheduleLambdaFunctionDecisionAttributes: Option[
      io.github.vigoo.zioaws.swf.model.ScheduleLambdaFunctionDecisionAttributes
    ] = None
) {
  def buildAwsValue(): software.amazon.awssdk.services.swf.model.Decision = {
    import Decision.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.swf.model.Decision
      .builder()
      .decisionType(decisionType.unwrap)
      .optionallyWith(
        scheduleActivityTaskDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.scheduleActivityTaskDecisionAttributes)
      .optionallyWith(
        requestCancelActivityTaskDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.requestCancelActivityTaskDecisionAttributes)
      .optionallyWith(
        completeWorkflowExecutionDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.completeWorkflowExecutionDecisionAttributes)
      .optionallyWith(
        failWorkflowExecutionDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.failWorkflowExecutionDecisionAttributes)
      .optionallyWith(
        cancelWorkflowExecutionDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.cancelWorkflowExecutionDecisionAttributes)
      .optionallyWith(
        continueAsNewWorkflowExecutionDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.continueAsNewWorkflowExecutionDecisionAttributes)
      .optionallyWith(
        recordMarkerDecisionAttributes.map(value => value.buildAwsValue())
      )(_.recordMarkerDecisionAttributes)
      .optionallyWith(
        startTimerDecisionAttributes.map(value => value.buildAwsValue())
      )(_.startTimerDecisionAttributes)
      .optionallyWith(
        cancelTimerDecisionAttributes.map(value => value.buildAwsValue())
      )(_.cancelTimerDecisionAttributes)
      .optionallyWith(
        signalExternalWorkflowExecutionDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.signalExternalWorkflowExecutionDecisionAttributes)
      .optionallyWith(
        requestCancelExternalWorkflowExecutionDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.requestCancelExternalWorkflowExecutionDecisionAttributes)
      .optionallyWith(
        startChildWorkflowExecutionDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.startChildWorkflowExecutionDecisionAttributes)
      .optionallyWith(
        scheduleLambdaFunctionDecisionAttributes.map(value =>
          value.buildAwsValue()
        )
      )(_.scheduleLambdaFunctionDecisionAttributes)
      .build()
  }
  def asReadOnly: io.github.vigoo.zioaws.swf.model.Decision.ReadOnly =
    io.github.vigoo.zioaws.swf.model.Decision.wrap(buildAwsValue())
}
object Decision {
  private lazy val zioAwsBuilderHelper
      : BuilderHelper[software.amazon.awssdk.services.swf.model.Decision] =
    BuilderHelper.apply
  trait ReadOnly {
    def editable: io.github.vigoo.zioaws.swf.model.Decision =
      io.github.vigoo.zioaws.swf.model.Decision(
        decisionTypeValue,
        scheduleActivityTaskDecisionAttributesValue.map(value =>
          value.editable
        ),
        requestCancelActivityTaskDecisionAttributesValue.map(value =>
          value.editable
        ),
        completeWorkflowExecutionDecisionAttributesValue.map(value =>
          value.editable
        ),
        failWorkflowExecutionDecisionAttributesValue.map(value =>
          value.editable
        ),
        cancelWorkflowExecutionDecisionAttributesValue.map(value =>
          value.editable
        ),
        continueAsNewWorkflowExecutionDecisionAttributesValue.map(value =>
          value.editable
        ),
        recordMarkerDecisionAttributesValue.map(value => value.editable),
        startTimerDecisionAttributesValue.map(value => value.editable),
        cancelTimerDecisionAttributesValue.map(value => value.editable),
        signalExternalWorkflowExecutionDecisionAttributesValue.map(value =>
          value.editable
        ),
        requestCancelExternalWorkflowExecutionDecisionAttributesValue.map(
          value => value.editable
        ),
        startChildWorkflowExecutionDecisionAttributesValue.map(value =>
          value.editable
        ),
        scheduleLambdaFunctionDecisionAttributesValue.map(value =>
          value.editable
        )
      )
    def decisionTypeValue: io.github.vigoo.zioaws.swf.model.DecisionType
    def scheduleActivityTaskDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.ScheduleActivityTaskDecisionAttributes.ReadOnly
    ]
    def requestCancelActivityTaskDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.RequestCancelActivityTaskDecisionAttributes.ReadOnly
    ]
    def completeWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.CompleteWorkflowExecutionDecisionAttributes.ReadOnly
    ]
    def failWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.FailWorkflowExecutionDecisionAttributes.ReadOnly
    ]
    def cancelWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.CancelWorkflowExecutionDecisionAttributes.ReadOnly
    ]
    def continueAsNewWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.ContinueAsNewWorkflowExecutionDecisionAttributes.ReadOnly
    ]
    def recordMarkerDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.RecordMarkerDecisionAttributes.ReadOnly
    ]
    def startTimerDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes.ReadOnly
    ]
    def cancelTimerDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.CancelTimerDecisionAttributes.ReadOnly
    ]
    def signalExternalWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.SignalExternalWorkflowExecutionDecisionAttributes.ReadOnly
    ]
    def requestCancelExternalWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.RequestCancelExternalWorkflowExecutionDecisionAttributes.ReadOnly
    ]
    def startChildWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.StartChildWorkflowExecutionDecisionAttributes.ReadOnly
    ]
    def scheduleLambdaFunctionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.ScheduleLambdaFunctionDecisionAttributes.ReadOnly
    ]
    def decisionType
        : ZIO[Any, Nothing, io.github.vigoo.zioaws.swf.model.DecisionType] =
      ZIO.succeed(decisionTypeValue)
    def scheduleActivityTaskDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.ScheduleActivityTaskDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "scheduleActivityTaskDecisionAttributes",
      scheduleActivityTaskDecisionAttributesValue
    )
    def requestCancelActivityTaskDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.RequestCancelActivityTaskDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "requestCancelActivityTaskDecisionAttributes",
      requestCancelActivityTaskDecisionAttributesValue
    )
    def completeWorkflowExecutionDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.CompleteWorkflowExecutionDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "completeWorkflowExecutionDecisionAttributes",
      completeWorkflowExecutionDecisionAttributesValue
    )
    def failWorkflowExecutionDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.FailWorkflowExecutionDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "failWorkflowExecutionDecisionAttributes",
      failWorkflowExecutionDecisionAttributesValue
    )
    def cancelWorkflowExecutionDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.CancelWorkflowExecutionDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "cancelWorkflowExecutionDecisionAttributes",
      cancelWorkflowExecutionDecisionAttributesValue
    )
    def continueAsNewWorkflowExecutionDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.ContinueAsNewWorkflowExecutionDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "continueAsNewWorkflowExecutionDecisionAttributes",
      continueAsNewWorkflowExecutionDecisionAttributesValue
    )
    def recordMarkerDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.RecordMarkerDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "recordMarkerDecisionAttributes",
      recordMarkerDecisionAttributesValue
    )
    def startTimerDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "startTimerDecisionAttributes",
      startTimerDecisionAttributesValue
    )
    def cancelTimerDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.CancelTimerDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "cancelTimerDecisionAttributes",
      cancelTimerDecisionAttributesValue
    )
    def signalExternalWorkflowExecutionDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.SignalExternalWorkflowExecutionDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "signalExternalWorkflowExecutionDecisionAttributes",
      signalExternalWorkflowExecutionDecisionAttributesValue
    )
    def requestCancelExternalWorkflowExecutionDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.RequestCancelExternalWorkflowExecutionDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "requestCancelExternalWorkflowExecutionDecisionAttributes",
      requestCancelExternalWorkflowExecutionDecisionAttributesValue
    )
    def startChildWorkflowExecutionDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.StartChildWorkflowExecutionDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "startChildWorkflowExecutionDecisionAttributes",
      startChildWorkflowExecutionDecisionAttributesValue
    )
    def scheduleLambdaFunctionDecisionAttributes: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.swf.model.ScheduleLambdaFunctionDecisionAttributes.ReadOnly
    ] = AwsError.unwrapOptionField(
      "scheduleLambdaFunctionDecisionAttributes",
      scheduleLambdaFunctionDecisionAttributesValue
    )
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.swf.model.Decision
  ) extends io.github.vigoo.zioaws.swf.model.Decision.ReadOnly {
    override def decisionTypeValue
        : io.github.vigoo.zioaws.swf.model.DecisionType =
      io.github.vigoo.zioaws.swf.model.DecisionType.wrap(impl.decisionType())
    override def scheduleActivityTaskDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.ScheduleActivityTaskDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.scheduleActivityTaskDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.ScheduleActivityTaskDecisionAttributes
          .wrap(value)
      )
    override def requestCancelActivityTaskDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.RequestCancelActivityTaskDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.requestCancelActivityTaskDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.RequestCancelActivityTaskDecisionAttributes
          .wrap(value)
      )
    override def completeWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.CompleteWorkflowExecutionDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.completeWorkflowExecutionDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.CompleteWorkflowExecutionDecisionAttributes
          .wrap(value)
      )
    override def failWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.FailWorkflowExecutionDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.failWorkflowExecutionDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.FailWorkflowExecutionDecisionAttributes
          .wrap(value)
      )
    override def cancelWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.CancelWorkflowExecutionDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.cancelWorkflowExecutionDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.CancelWorkflowExecutionDecisionAttributes
          .wrap(value)
      )
    override def continueAsNewWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.ContinueAsNewWorkflowExecutionDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.continueAsNewWorkflowExecutionDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.ContinueAsNewWorkflowExecutionDecisionAttributes
          .wrap(value)
      )
    override def recordMarkerDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.RecordMarkerDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.recordMarkerDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.RecordMarkerDecisionAttributes
          .wrap(value)
      )
    override def startTimerDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.startTimerDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes
          .wrap(value)
      )
    override def cancelTimerDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.CancelTimerDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.cancelTimerDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.CancelTimerDecisionAttributes
          .wrap(value)
      )
    override def signalExternalWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.SignalExternalWorkflowExecutionDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.signalExternalWorkflowExecutionDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.SignalExternalWorkflowExecutionDecisionAttributes
          .wrap(value)
      )
    override def requestCancelExternalWorkflowExecutionDecisionAttributesValue
        : Option[
          io.github.vigoo.zioaws.swf.model.RequestCancelExternalWorkflowExecutionDecisionAttributes.ReadOnly
        ] = scala
      .Option(impl.requestCancelExternalWorkflowExecutionDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.RequestCancelExternalWorkflowExecutionDecisionAttributes
          .wrap(value)
      )
    override def startChildWorkflowExecutionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.StartChildWorkflowExecutionDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.startChildWorkflowExecutionDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.StartChildWorkflowExecutionDecisionAttributes
          .wrap(value)
      )
    override def scheduleLambdaFunctionDecisionAttributesValue: Option[
      io.github.vigoo.zioaws.swf.model.ScheduleLambdaFunctionDecisionAttributes.ReadOnly
    ] = scala
      .Option(impl.scheduleLambdaFunctionDecisionAttributes())
      .map(value =>
        io.github.vigoo.zioaws.swf.model.ScheduleLambdaFunctionDecisionAttributes
          .wrap(value)
      )
  }
  def wrap(
      impl: software.amazon.awssdk.services.swf.model.Decision
  ): io.github.vigoo.zioaws.swf.model.Decision.ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy