
io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.swf.model
import zio.ZIO
import io.github.vigoo.zioaws.swf.model.primitives.{
DurationInSeconds,
Data,
TimerId
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class StartTimerDecisionAttributes(
timerId: TimerId,
control: Option[Data] = None,
startToFireTimeout: DurationInSeconds
) {
def buildAwsValue()
: software.amazon.awssdk.services.swf.model.StartTimerDecisionAttributes = {
import StartTimerDecisionAttributes.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.swf.model.StartTimerDecisionAttributes
.builder()
.timerId(timerId: java.lang.String)
.optionallyWith(control.map(value => value: java.lang.String))(_.control)
.startToFireTimeout(startToFireTimeout: java.lang.String)
.build()
}
def asReadOnly
: io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes.ReadOnly =
io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes
.wrap(buildAwsValue())
}
object StartTimerDecisionAttributes {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.swf.model.StartTimerDecisionAttributes
] = BuilderHelper.apply
trait ReadOnly {
def editable
: io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes =
io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes(
timerIdValue,
controlValue.map(value => value),
startToFireTimeoutValue
)
def timerIdValue: TimerId
def controlValue: Option[Data]
def startToFireTimeoutValue: DurationInSeconds
def timerId: ZIO[Any, Nothing, TimerId] = ZIO.succeed(timerIdValue)
def control: ZIO[Any, AwsError, Data] =
AwsError.unwrapOptionField("control", controlValue)
def startToFireTimeout: ZIO[Any, Nothing, DurationInSeconds] =
ZIO.succeed(startToFireTimeoutValue)
}
private class Wrapper(
impl: software.amazon.awssdk.services.swf.model.StartTimerDecisionAttributes
) extends io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes.ReadOnly {
override def timerIdValue: TimerId = impl.timerId(): TimerId
override def controlValue: Option[Data] =
scala.Option(impl.control()).map(value => value: Data)
override def startToFireTimeoutValue: DurationInSeconds =
impl.startToFireTimeout(): DurationInSeconds
}
def wrap(
impl: software.amazon.awssdk.services.swf.model.StartTimerDecisionAttributes
): io.github.vigoo.zioaws.swf.model.StartTimerDecisionAttributes.ReadOnly =
new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy