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

io.github.vigoo.zioaws.datasync.model.StartTaskExecutionRequest.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.datasync.model
import zio.ZIO
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import io.github.vigoo.zioaws.datasync.model.primitives.TaskArn
import scala.jdk.CollectionConverters._
final case class StartTaskExecutionRequest(
    taskArn: TaskArn,
    overrideOptions: Option[io.github.vigoo.zioaws.datasync.model.Options] =
      None,
    includes: Option[
      Iterable[io.github.vigoo.zioaws.datasync.model.FilterRule]
    ] = None,
    excludes: Option[
      Iterable[io.github.vigoo.zioaws.datasync.model.FilterRule]
    ] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.datasync.model.StartTaskExecutionRequest = {
    import StartTaskExecutionRequest.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.datasync.model.StartTaskExecutionRequest
      .builder()
      .taskArn(taskArn: java.lang.String)
      .optionallyWith(overrideOptions.map(value => value.buildAwsValue()))(
        _.overrideOptions
      )
      .optionallyWith(
        includes.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.includes)
      .optionallyWith(
        excludes.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.excludes)
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.datasync.model.StartTaskExecutionRequest.ReadOnly =
    io.github.vigoo.zioaws.datasync.model.StartTaskExecutionRequest
      .wrap(buildAwsValue())
}
object StartTaskExecutionRequest {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.datasync.model.StartTaskExecutionRequest
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.datasync.model.StartTaskExecutionRequest =
      io.github.vigoo.zioaws.datasync.model.StartTaskExecutionRequest(
        taskArnValue,
        overrideOptionsValue.map(value => value.editable),
        includesValue.map(value =>
          value.map { item =>
            item.editable
          }
        ),
        excludesValue.map(value =>
          value.map { item =>
            item.editable
          }
        )
      )
    def taskArnValue: TaskArn
    def overrideOptionsValue
        : Option[io.github.vigoo.zioaws.datasync.model.Options.ReadOnly]
    def includesValue: Option[
      List[io.github.vigoo.zioaws.datasync.model.FilterRule.ReadOnly]
    ]
    def excludesValue: Option[
      List[io.github.vigoo.zioaws.datasync.model.FilterRule.ReadOnly]
    ]
    def taskArn: ZIO[Any, Nothing, TaskArn] = ZIO.succeed(taskArnValue)
    def overrideOptions: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.datasync.model.Options.ReadOnly
    ] = AwsError.unwrapOptionField("overrideOptions", overrideOptionsValue)
    def includes: ZIO[Any, AwsError, List[
      io.github.vigoo.zioaws.datasync.model.FilterRule.ReadOnly
    ]] = AwsError.unwrapOptionField("includes", includesValue)
    def excludes: ZIO[Any, AwsError, List[
      io.github.vigoo.zioaws.datasync.model.FilterRule.ReadOnly
    ]] = AwsError.unwrapOptionField("excludes", excludesValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.datasync.model.StartTaskExecutionRequest
  ) extends io.github.vigoo.zioaws.datasync.model.StartTaskExecutionRequest.ReadOnly {
    override def taskArnValue: TaskArn = impl.taskArn(): TaskArn
    override def overrideOptionsValue
        : Option[io.github.vigoo.zioaws.datasync.model.Options.ReadOnly] = scala
      .Option(impl.overrideOptions())
      .map(value => io.github.vigoo.zioaws.datasync.model.Options.wrap(value))
    override def includesValue: Option[
      List[io.github.vigoo.zioaws.datasync.model.FilterRule.ReadOnly]
    ] = scala
      .Option(impl.includes())
      .map(value =>
        value.asScala.map { item =>
          io.github.vigoo.zioaws.datasync.model.FilterRule.wrap(item)
        }.toList
      )
    override def excludesValue: Option[
      List[io.github.vigoo.zioaws.datasync.model.FilterRule.ReadOnly]
    ] = scala
      .Option(impl.excludes())
      .map(value =>
        value.asScala.map { item =>
          io.github.vigoo.zioaws.datasync.model.FilterRule.wrap(item)
        }.toList
      )
  }
  def wrap(
      impl: software.amazon.awssdk.services.datasync.model.StartTaskExecutionRequest
  ): io.github.vigoo.zioaws.datasync.model.StartTaskExecutionRequest.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy