
io.github.vigoo.zioaws.swf.model.WorkflowExecutionInfo.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.swf.model
import zio.ZIO
import io.github.vigoo.zioaws.swf.model.primitives.{Canceled, Tag, Timestamp}
import java.time.Instant
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class WorkflowExecutionInfo(
execution: io.github.vigoo.zioaws.swf.model.WorkflowExecution,
workflowType: io.github.vigoo.zioaws.swf.model.WorkflowType,
startTimestamp: Timestamp,
closeTimestamp: Option[Timestamp] = None,
executionStatus: io.github.vigoo.zioaws.swf.model.ExecutionStatus,
closeStatus: Option[io.github.vigoo.zioaws.swf.model.CloseStatus] = None,
parent: Option[io.github.vigoo.zioaws.swf.model.WorkflowExecution] = None,
tagList: Option[Iterable[Tag]] = None,
cancelRequested: Option[Canceled] = None
) {
def buildAwsValue()
: software.amazon.awssdk.services.swf.model.WorkflowExecutionInfo = {
import WorkflowExecutionInfo.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.swf.model.WorkflowExecutionInfo
.builder()
.execution(execution.buildAwsValue())
.workflowType(workflowType.buildAwsValue())
.startTimestamp(startTimestamp: Instant)
.optionallyWith(closeTimestamp.map(value => value: Instant))(
_.closeTimestamp
)
.executionStatus(executionStatus.unwrap)
.optionallyWith(closeStatus.map(value => value.unwrap))(_.closeStatus)
.optionallyWith(parent.map(value => value.buildAwsValue()))(_.parent)
.optionallyWith(
tagList.map(value =>
value.map { item =>
item: java.lang.String
}.asJavaCollection
)
)(_.tagList)
.optionallyWith(cancelRequested.map(value => value: java.lang.Boolean))(
_.cancelRequested
)
.build()
}
def asReadOnly
: io.github.vigoo.zioaws.swf.model.WorkflowExecutionInfo.ReadOnly =
io.github.vigoo.zioaws.swf.model.WorkflowExecutionInfo.wrap(buildAwsValue())
}
object WorkflowExecutionInfo {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.swf.model.WorkflowExecutionInfo
] = BuilderHelper.apply
trait ReadOnly {
def editable: io.github.vigoo.zioaws.swf.model.WorkflowExecutionInfo =
io.github.vigoo.zioaws.swf.model.WorkflowExecutionInfo(
executionValue.editable,
workflowTypeValue.editable,
startTimestampValue,
closeTimestampValue.map(value => value),
executionStatusValue,
closeStatusValue.map(value => value),
parentValue.map(value => value.editable),
tagListValue.map(value => value),
cancelRequestedValue.map(value => value)
)
def executionValue
: io.github.vigoo.zioaws.swf.model.WorkflowExecution.ReadOnly
def workflowTypeValue
: io.github.vigoo.zioaws.swf.model.WorkflowType.ReadOnly
def startTimestampValue: Timestamp
def closeTimestampValue: Option[Timestamp]
def executionStatusValue: io.github.vigoo.zioaws.swf.model.ExecutionStatus
def closeStatusValue: Option[io.github.vigoo.zioaws.swf.model.CloseStatus]
def parentValue
: Option[io.github.vigoo.zioaws.swf.model.WorkflowExecution.ReadOnly]
def tagListValue: Option[List[Tag]]
def cancelRequestedValue: Option[Canceled]
def execution: ZIO[
Any,
Nothing,
io.github.vigoo.zioaws.swf.model.WorkflowExecution.ReadOnly
] = ZIO.succeed(executionValue)
def workflowType: ZIO[
Any,
Nothing,
io.github.vigoo.zioaws.swf.model.WorkflowType.ReadOnly
] = ZIO.succeed(workflowTypeValue)
def startTimestamp: ZIO[Any, Nothing, Timestamp] =
ZIO.succeed(startTimestampValue)
def closeTimestamp: ZIO[Any, AwsError, Timestamp] =
AwsError.unwrapOptionField("closeTimestamp", closeTimestampValue)
def executionStatus
: ZIO[Any, Nothing, io.github.vigoo.zioaws.swf.model.ExecutionStatus] =
ZIO.succeed(executionStatusValue)
def closeStatus
: ZIO[Any, AwsError, io.github.vigoo.zioaws.swf.model.CloseStatus] =
AwsError.unwrapOptionField("closeStatus", closeStatusValue)
def parent: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.swf.model.WorkflowExecution.ReadOnly
] = AwsError.unwrapOptionField("parent", parentValue)
def tagList: ZIO[Any, AwsError, List[Tag]] =
AwsError.unwrapOptionField("tagList", tagListValue)
def cancelRequested: ZIO[Any, AwsError, Canceled] =
AwsError.unwrapOptionField("cancelRequested", cancelRequestedValue)
}
private class Wrapper(
impl: software.amazon.awssdk.services.swf.model.WorkflowExecutionInfo
) extends io.github.vigoo.zioaws.swf.model.WorkflowExecutionInfo.ReadOnly {
override def executionValue
: io.github.vigoo.zioaws.swf.model.WorkflowExecution.ReadOnly =
io.github.vigoo.zioaws.swf.model.WorkflowExecution.wrap(impl.execution())
override def workflowTypeValue
: io.github.vigoo.zioaws.swf.model.WorkflowType.ReadOnly =
io.github.vigoo.zioaws.swf.model.WorkflowType.wrap(impl.workflowType())
override def startTimestampValue: Timestamp =
impl.startTimestamp(): Timestamp
override def closeTimestampValue: Option[Timestamp] =
scala.Option(impl.closeTimestamp()).map(value => value: Timestamp)
override def executionStatusValue
: io.github.vigoo.zioaws.swf.model.ExecutionStatus =
io.github.vigoo.zioaws.swf.model.ExecutionStatus
.wrap(impl.executionStatus())
override def closeStatusValue
: Option[io.github.vigoo.zioaws.swf.model.CloseStatus] = scala
.Option(impl.closeStatus())
.map(value => io.github.vigoo.zioaws.swf.model.CloseStatus.wrap(value))
override def parentValue
: Option[io.github.vigoo.zioaws.swf.model.WorkflowExecution.ReadOnly] =
scala
.Option(impl.parent())
.map(value =>
io.github.vigoo.zioaws.swf.model.WorkflowExecution.wrap(value)
)
override def tagListValue: Option[List[Tag]] = scala
.Option(impl.tagList())
.map(value =>
value.asScala.map { item =>
item: Tag
}.toList
)
override def cancelRequestedValue: Option[Canceled] =
scala.Option(impl.cancelRequested()).map(value => value: Canceled)
}
def wrap(
impl: software.amazon.awssdk.services.swf.model.WorkflowExecutionInfo
): io.github.vigoo.zioaws.swf.model.WorkflowExecutionInfo.ReadOnly =
new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy