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

io.github.vigoo.zioaws.snowdevicemanagement.model.DescribeTaskResponse.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.snowdevicemanagement.model
import io.github.vigoo.zioaws.snowdevicemanagement.model.primitives.{
  TaskDescriptionString,
  Timestamp
}
import zio.ZIO
import java.time.Instant
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters.*
final case class DescribeTaskResponse(
    completedAt: Option[Timestamp] = None,
    createdAt: Option[Timestamp] = None,
    description: Option[TaskDescriptionString] = None,
    lastUpdatedAt: Option[Timestamp] = None,
    state: Option[io.github.vigoo.zioaws.snowdevicemanagement.model.TaskState] =
      None,
    tags: Option[Map[String, String]] = None,
    targets: Option[Iterable[String]] = None,
    taskArn: Option[String] = None,
    taskId: Option[String] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.snowdevicemanagement.model.DescribeTaskResponse = {
    import DescribeTaskResponse.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.snowdevicemanagement.model.DescribeTaskResponse
      .builder()
      .optionallyWith(completedAt.map(value => value: Instant))(_.completedAt)
      .optionallyWith(createdAt.map(value => value: Instant))(_.createdAt)
      .optionallyWith(description.map(value => value: java.lang.String))(
        _.description
      )
      .optionallyWith(lastUpdatedAt.map(value => value: Instant))(
        _.lastUpdatedAt
      )
      .optionallyWith(state.map(value => value.unwrap))(_.state)
      .optionallyWith(
        tags.map(value =>
          value
            .map({ case (key, value) =>
              (key: java.lang.String) -> (value: java.lang.String)
            })
            .asJava
        )
      )(_.tags)
      .optionallyWith(
        targets.map(value =>
          value.map { item =>
            item: java.lang.String
          }.asJavaCollection
        )
      )(_.targets)
      .optionallyWith(taskArn.map(value => value: java.lang.String))(_.taskArn)
      .optionallyWith(taskId.map(value => value: java.lang.String))(_.taskId)
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.snowdevicemanagement.model.DescribeTaskResponse.ReadOnly =
    io.github.vigoo.zioaws.snowdevicemanagement.model.DescribeTaskResponse
      .wrap(buildAwsValue())
}
object DescribeTaskResponse {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.snowdevicemanagement.model.DescribeTaskResponse
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.snowdevicemanagement.model.DescribeTaskResponse =
      io.github.vigoo.zioaws.snowdevicemanagement.model.DescribeTaskResponse(
        completedAtValue.map(value => value),
        createdAtValue.map(value => value),
        descriptionValue.map(value => value),
        lastUpdatedAtValue.map(value => value),
        stateValue.map(value => value),
        tagsValue.map(value => value),
        targetsValue.map(value => value),
        taskArnValue.map(value => value),
        taskIdValue.map(value => value)
      )
    def completedAtValue: Option[Timestamp]
    def createdAtValue: Option[Timestamp]
    def descriptionValue: Option[TaskDescriptionString]
    def lastUpdatedAtValue: Option[Timestamp]
    def stateValue
        : Option[io.github.vigoo.zioaws.snowdevicemanagement.model.TaskState]
    def tagsValue: Option[Map[String, String]]
    def targetsValue: Option[List[String]]
    def taskArnValue: Option[String]
    def taskIdValue: Option[String]
    def completedAt: ZIO[Any, AwsError, Timestamp] =
      AwsError.unwrapOptionField("completedAt", completedAtValue)
    def createdAt: ZIO[Any, AwsError, Timestamp] =
      AwsError.unwrapOptionField("createdAt", createdAtValue)
    def description: ZIO[Any, AwsError, TaskDescriptionString] =
      AwsError.unwrapOptionField("description", descriptionValue)
    def lastUpdatedAt: ZIO[Any, AwsError, Timestamp] =
      AwsError.unwrapOptionField("lastUpdatedAt", lastUpdatedAtValue)
    def state: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.snowdevicemanagement.model.TaskState
    ] = AwsError.unwrapOptionField("state", stateValue)
    def tags: ZIO[Any, AwsError, Map[String, String]] =
      AwsError.unwrapOptionField("tags", tagsValue)
    def targets: ZIO[Any, AwsError, List[String]] =
      AwsError.unwrapOptionField("targets", targetsValue)
    def taskArn: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("taskArn", taskArnValue)
    def taskId: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("taskId", taskIdValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.snowdevicemanagement.model.DescribeTaskResponse
  ) extends io.github.vigoo.zioaws.snowdevicemanagement.model.DescribeTaskResponse.ReadOnly {
    override def completedAtValue: Option[Timestamp] =
      scala.Option(impl.completedAt()).map(value => value: Timestamp)
    override def createdAtValue: Option[Timestamp] =
      scala.Option(impl.createdAt()).map(value => value: Timestamp)
    override def descriptionValue: Option[TaskDescriptionString] = scala
      .Option(impl.description())
      .map(value => value: TaskDescriptionString)
    override def lastUpdatedAtValue: Option[Timestamp] =
      scala.Option(impl.lastUpdatedAt()).map(value => value: Timestamp)
    override def stateValue
        : Option[io.github.vigoo.zioaws.snowdevicemanagement.model.TaskState] =
      scala
        .Option(impl.state())
        .map(value =>
          io.github.vigoo.zioaws.snowdevicemanagement.model.TaskState
            .wrap(value)
        )
    override def tagsValue: Option[Map[String, String]] = scala
      .Option(impl.tags())
      .map(value =>
        value.asScala
          .map({ case (key, value) =>
            (key: String) -> (value: String)
          })
          .toMap
      )
    override def targetsValue: Option[List[String]] = scala
      .Option(impl.targets())
      .map(value =>
        value.asScala.map { item =>
          item: String
        }.toList
      )
    override def taskArnValue: Option[String] =
      scala.Option(impl.taskArn()).map(value => value: String)
    override def taskIdValue: Option[String] =
      scala.Option(impl.taskId()).map(value => value: String)
  }
  def wrap(
      impl: software.amazon.awssdk.services.snowdevicemanagement.model.DescribeTaskResponse
  ): io.github.vigoo.zioaws.snowdevicemanagement.model.DescribeTaskResponse.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy