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

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

package io.github.vigoo.zioaws.swf.model
import zio.ZIO
import io.github.vigoo.zioaws.swf.model.primitives.{
  TaskPriority,
  Data,
  ActivityId,
  EventId,
  DurationInSecondsOptional
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class ActivityTaskScheduledEventAttributes(
    activityType: io.github.vigoo.zioaws.swf.model.ActivityType,
    activityId: ActivityId,
    input: Option[Data] = None,
    control: Option[Data] = None,
    scheduleToStartTimeout: Option[DurationInSecondsOptional] = None,
    scheduleToCloseTimeout: Option[DurationInSecondsOptional] = None,
    startToCloseTimeout: Option[DurationInSecondsOptional] = None,
    taskList: io.github.vigoo.zioaws.swf.model.TaskList,
    taskPriority: Option[TaskPriority] = None,
    decisionTaskCompletedEventId: EventId,
    heartbeatTimeout: Option[DurationInSecondsOptional] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.swf.model.ActivityTaskScheduledEventAttributes = {
    import ActivityTaskScheduledEventAttributes.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.swf.model.ActivityTaskScheduledEventAttributes
      .builder()
      .activityType(activityType.buildAwsValue())
      .activityId(activityId: java.lang.String)
      .optionallyWith(input.map(value => value: java.lang.String))(_.input)
      .optionallyWith(control.map(value => value: java.lang.String))(_.control)
      .optionallyWith(
        scheduleToStartTimeout.map(value => value: java.lang.String)
      )(_.scheduleToStartTimeout)
      .optionallyWith(
        scheduleToCloseTimeout.map(value => value: java.lang.String)
      )(_.scheduleToCloseTimeout)
      .optionallyWith(
        startToCloseTimeout.map(value => value: java.lang.String)
      )(_.startToCloseTimeout)
      .taskList(taskList.buildAwsValue())
      .optionallyWith(taskPriority.map(value => value: java.lang.String))(
        _.taskPriority
      )
      .decisionTaskCompletedEventId(
        decisionTaskCompletedEventId: java.lang.Long
      )
      .optionallyWith(heartbeatTimeout.map(value => value: java.lang.String))(
        _.heartbeatTimeout
      )
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.swf.model.ActivityTaskScheduledEventAttributes.ReadOnly =
    io.github.vigoo.zioaws.swf.model.ActivityTaskScheduledEventAttributes
      .wrap(buildAwsValue())
}
object ActivityTaskScheduledEventAttributes {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.swf.model.ActivityTaskScheduledEventAttributes
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.swf.model.ActivityTaskScheduledEventAttributes =
      io.github.vigoo.zioaws.swf.model.ActivityTaskScheduledEventAttributes(
        activityTypeValue.editable,
        activityIdValue,
        inputValue.map(value => value),
        controlValue.map(value => value),
        scheduleToStartTimeoutValue.map(value => value),
        scheduleToCloseTimeoutValue.map(value => value),
        startToCloseTimeoutValue.map(value => value),
        taskListValue.editable,
        taskPriorityValue.map(value => value),
        decisionTaskCompletedEventIdValue,
        heartbeatTimeoutValue.map(value => value)
      )
    def activityTypeValue
        : io.github.vigoo.zioaws.swf.model.ActivityType.ReadOnly
    def activityIdValue: ActivityId
    def inputValue: Option[Data]
    def controlValue: Option[Data]
    def scheduleToStartTimeoutValue: Option[DurationInSecondsOptional]
    def scheduleToCloseTimeoutValue: Option[DurationInSecondsOptional]
    def startToCloseTimeoutValue: Option[DurationInSecondsOptional]
    def taskListValue: io.github.vigoo.zioaws.swf.model.TaskList.ReadOnly
    def taskPriorityValue: Option[TaskPriority]
    def decisionTaskCompletedEventIdValue: EventId
    def heartbeatTimeoutValue: Option[DurationInSecondsOptional]
    def activityType: ZIO[
      Any,
      Nothing,
      io.github.vigoo.zioaws.swf.model.ActivityType.ReadOnly
    ] = ZIO.succeed(activityTypeValue)
    def activityId: ZIO[Any, Nothing, ActivityId] = ZIO.succeed(activityIdValue)
    def input: ZIO[Any, AwsError, Data] =
      AwsError.unwrapOptionField("input", inputValue)
    def control: ZIO[Any, AwsError, Data] =
      AwsError.unwrapOptionField("control", controlValue)
    def scheduleToStartTimeout: ZIO[Any, AwsError, DurationInSecondsOptional] =
      AwsError.unwrapOptionField(
        "scheduleToStartTimeout",
        scheduleToStartTimeoutValue
      )
    def scheduleToCloseTimeout: ZIO[Any, AwsError, DurationInSecondsOptional] =
      AwsError.unwrapOptionField(
        "scheduleToCloseTimeout",
        scheduleToCloseTimeoutValue
      )
    def startToCloseTimeout: ZIO[Any, AwsError, DurationInSecondsOptional] =
      AwsError.unwrapOptionField(
        "startToCloseTimeout",
        startToCloseTimeoutValue
      )
    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 decisionTaskCompletedEventId: ZIO[Any, Nothing, EventId] =
      ZIO.succeed(decisionTaskCompletedEventIdValue)
    def heartbeatTimeout: ZIO[Any, AwsError, DurationInSecondsOptional] =
      AwsError.unwrapOptionField("heartbeatTimeout", heartbeatTimeoutValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.swf.model.ActivityTaskScheduledEventAttributes
  ) extends io.github.vigoo.zioaws.swf.model.ActivityTaskScheduledEventAttributes.ReadOnly {
    override def activityTypeValue
        : io.github.vigoo.zioaws.swf.model.ActivityType.ReadOnly =
      io.github.vigoo.zioaws.swf.model.ActivityType.wrap(impl.activityType())
    override def activityIdValue: ActivityId = impl.activityId(): ActivityId
    override def inputValue: Option[Data] =
      scala.Option(impl.input()).map(value => value: Data)
    override def controlValue: Option[Data] =
      scala.Option(impl.control()).map(value => value: Data)
    override def scheduleToStartTimeoutValue
        : Option[DurationInSecondsOptional] = scala
      .Option(impl.scheduleToStartTimeout())
      .map(value => value: DurationInSecondsOptional)
    override def scheduleToCloseTimeoutValue
        : Option[DurationInSecondsOptional] = scala
      .Option(impl.scheduleToCloseTimeout())
      .map(value => value: DurationInSecondsOptional)
    override def startToCloseTimeoutValue: Option[DurationInSecondsOptional] =
      scala
        .Option(impl.startToCloseTimeout())
        .map(value => value: DurationInSecondsOptional)
    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 decisionTaskCompletedEventIdValue: EventId =
      impl.decisionTaskCompletedEventId(): EventId
    override def heartbeatTimeoutValue: Option[DurationInSecondsOptional] =
      scala
        .Option(impl.heartbeatTimeout())
        .map(value => value: DurationInSecondsOptional)
  }
  def wrap(
      impl: software.amazon.awssdk.services.swf.model.ActivityTaskScheduledEventAttributes
  ): io.github.vigoo.zioaws.swf.model.ActivityTaskScheduledEventAttributes.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy