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

io.github.vigoo.zioaws.datasync.model.Options.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.BytesPerSecond
import scala.jdk.CollectionConverters._
final case class Options(
    verifyMode: Option[io.github.vigoo.zioaws.datasync.model.VerifyMode] = None,
    overwriteMode: Option[io.github.vigoo.zioaws.datasync.model.OverwriteMode] =
      None,
    atime: Option[io.github.vigoo.zioaws.datasync.model.Atime] = None,
    mtime: Option[io.github.vigoo.zioaws.datasync.model.Mtime] = None,
    uid: Option[io.github.vigoo.zioaws.datasync.model.Uid] = None,
    gid: Option[io.github.vigoo.zioaws.datasync.model.Gid] = None,
    preserveDeletedFiles: Option[
      io.github.vigoo.zioaws.datasync.model.PreserveDeletedFiles
    ] = None,
    preserveDevices: Option[
      io.github.vigoo.zioaws.datasync.model.PreserveDevices
    ] = None,
    posixPermissions: Option[
      io.github.vigoo.zioaws.datasync.model.PosixPermissions
    ] = None,
    bytesPerSecond: Option[BytesPerSecond] = None,
    taskQueueing: Option[io.github.vigoo.zioaws.datasync.model.TaskQueueing] =
      None,
    logLevel: Option[io.github.vigoo.zioaws.datasync.model.LogLevel] = None,
    transferMode: Option[io.github.vigoo.zioaws.datasync.model.TransferMode] =
      None,
    securityDescriptorCopyFlags: Option[
      io.github.vigoo.zioaws.datasync.model.SmbSecurityDescriptorCopyFlags
    ] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.datasync.model.Options = {
    import Options.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.datasync.model.Options
      .builder()
      .optionallyWith(verifyMode.map(value => value.unwrap))(_.verifyMode)
      .optionallyWith(overwriteMode.map(value => value.unwrap))(_.overwriteMode)
      .optionallyWith(atime.map(value => value.unwrap))(_.atime)
      .optionallyWith(mtime.map(value => value.unwrap))(_.mtime)
      .optionallyWith(uid.map(value => value.unwrap))(_.uid)
      .optionallyWith(gid.map(value => value.unwrap))(_.gid)
      .optionallyWith(preserveDeletedFiles.map(value => value.unwrap))(
        _.preserveDeletedFiles
      )
      .optionallyWith(preserveDevices.map(value => value.unwrap))(
        _.preserveDevices
      )
      .optionallyWith(posixPermissions.map(value => value.unwrap))(
        _.posixPermissions
      )
      .optionallyWith(bytesPerSecond.map(value => value: java.lang.Long))(
        _.bytesPerSecond
      )
      .optionallyWith(taskQueueing.map(value => value.unwrap))(_.taskQueueing)
      .optionallyWith(logLevel.map(value => value.unwrap))(_.logLevel)
      .optionallyWith(transferMode.map(value => value.unwrap))(_.transferMode)
      .optionallyWith(securityDescriptorCopyFlags.map(value => value.unwrap))(
        _.securityDescriptorCopyFlags
      )
      .build()
  }
  def asReadOnly: io.github.vigoo.zioaws.datasync.model.Options.ReadOnly =
    io.github.vigoo.zioaws.datasync.model.Options.wrap(buildAwsValue())
}
object Options {
  private lazy val zioAwsBuilderHelper
      : BuilderHelper[software.amazon.awssdk.services.datasync.model.Options] =
    BuilderHelper.apply
  trait ReadOnly {
    def editable: io.github.vigoo.zioaws.datasync.model.Options =
      io.github.vigoo.zioaws.datasync.model.Options(
        verifyModeValue.map(value => value),
        overwriteModeValue.map(value => value),
        atimeValue.map(value => value),
        mtimeValue.map(value => value),
        uidValue.map(value => value),
        gidValue.map(value => value),
        preserveDeletedFilesValue.map(value => value),
        preserveDevicesValue.map(value => value),
        posixPermissionsValue.map(value => value),
        bytesPerSecondValue.map(value => value),
        taskQueueingValue.map(value => value),
        logLevelValue.map(value => value),
        transferModeValue.map(value => value),
        securityDescriptorCopyFlagsValue.map(value => value)
      )
    def verifyModeValue
        : Option[io.github.vigoo.zioaws.datasync.model.VerifyMode]
    def overwriteModeValue
        : Option[io.github.vigoo.zioaws.datasync.model.OverwriteMode]
    def atimeValue: Option[io.github.vigoo.zioaws.datasync.model.Atime]
    def mtimeValue: Option[io.github.vigoo.zioaws.datasync.model.Mtime]
    def uidValue: Option[io.github.vigoo.zioaws.datasync.model.Uid]
    def gidValue: Option[io.github.vigoo.zioaws.datasync.model.Gid]
    def preserveDeletedFilesValue
        : Option[io.github.vigoo.zioaws.datasync.model.PreserveDeletedFiles]
    def preserveDevicesValue
        : Option[io.github.vigoo.zioaws.datasync.model.PreserveDevices]
    def posixPermissionsValue
        : Option[io.github.vigoo.zioaws.datasync.model.PosixPermissions]
    def bytesPerSecondValue: Option[BytesPerSecond]
    def taskQueueingValue
        : Option[io.github.vigoo.zioaws.datasync.model.TaskQueueing]
    def logLevelValue: Option[io.github.vigoo.zioaws.datasync.model.LogLevel]
    def transferModeValue
        : Option[io.github.vigoo.zioaws.datasync.model.TransferMode]
    def securityDescriptorCopyFlagsValue: Option[
      io.github.vigoo.zioaws.datasync.model.SmbSecurityDescriptorCopyFlags
    ]
    def verifyMode
        : ZIO[Any, AwsError, io.github.vigoo.zioaws.datasync.model.VerifyMode] =
      AwsError.unwrapOptionField("verifyMode", verifyModeValue)
    def overwriteMode: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.datasync.model.OverwriteMode
    ] = AwsError.unwrapOptionField("overwriteMode", overwriteModeValue)
    def atime: ZIO[Any, AwsError, io.github.vigoo.zioaws.datasync.model.Atime] =
      AwsError.unwrapOptionField("atime", atimeValue)
    def mtime: ZIO[Any, AwsError, io.github.vigoo.zioaws.datasync.model.Mtime] =
      AwsError.unwrapOptionField("mtime", mtimeValue)
    def uid: ZIO[Any, AwsError, io.github.vigoo.zioaws.datasync.model.Uid] =
      AwsError.unwrapOptionField("uid", uidValue)
    def gid: ZIO[Any, AwsError, io.github.vigoo.zioaws.datasync.model.Gid] =
      AwsError.unwrapOptionField("gid", gidValue)
    def preserveDeletedFiles: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.datasync.model.PreserveDeletedFiles
    ] = AwsError.unwrapOptionField(
      "preserveDeletedFiles",
      preserveDeletedFilesValue
    )
    def preserveDevices: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.datasync.model.PreserveDevices
    ] = AwsError.unwrapOptionField("preserveDevices", preserveDevicesValue)
    def posixPermissions: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.datasync.model.PosixPermissions
    ] = AwsError.unwrapOptionField("posixPermissions", posixPermissionsValue)
    def bytesPerSecond: ZIO[Any, AwsError, BytesPerSecond] =
      AwsError.unwrapOptionField("bytesPerSecond", bytesPerSecondValue)
    def taskQueueing: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.datasync.model.TaskQueueing
    ] = AwsError.unwrapOptionField("taskQueueing", taskQueueingValue)
    def logLevel
        : ZIO[Any, AwsError, io.github.vigoo.zioaws.datasync.model.LogLevel] =
      AwsError.unwrapOptionField("logLevel", logLevelValue)
    def transferMode: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.datasync.model.TransferMode
    ] = AwsError.unwrapOptionField("transferMode", transferModeValue)
    def securityDescriptorCopyFlags: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.datasync.model.SmbSecurityDescriptorCopyFlags
    ] = AwsError.unwrapOptionField(
      "securityDescriptorCopyFlags",
      securityDescriptorCopyFlagsValue
    )
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.datasync.model.Options
  ) extends io.github.vigoo.zioaws.datasync.model.Options.ReadOnly {
    override def verifyModeValue
        : Option[io.github.vigoo.zioaws.datasync.model.VerifyMode] = scala
      .Option(impl.verifyMode())
      .map(value =>
        io.github.vigoo.zioaws.datasync.model.VerifyMode.wrap(value)
      )
    override def overwriteModeValue
        : Option[io.github.vigoo.zioaws.datasync.model.OverwriteMode] = scala
      .Option(impl.overwriteMode())
      .map(value =>
        io.github.vigoo.zioaws.datasync.model.OverwriteMode.wrap(value)
      )
    override def atimeValue
        : Option[io.github.vigoo.zioaws.datasync.model.Atime] = scala
      .Option(impl.atime())
      .map(value => io.github.vigoo.zioaws.datasync.model.Atime.wrap(value))
    override def mtimeValue
        : Option[io.github.vigoo.zioaws.datasync.model.Mtime] = scala
      .Option(impl.mtime())
      .map(value => io.github.vigoo.zioaws.datasync.model.Mtime.wrap(value))
    override def uidValue: Option[io.github.vigoo.zioaws.datasync.model.Uid] =
      scala
        .Option(impl.uid())
        .map(value => io.github.vigoo.zioaws.datasync.model.Uid.wrap(value))
    override def gidValue: Option[io.github.vigoo.zioaws.datasync.model.Gid] =
      scala
        .Option(impl.gid())
        .map(value => io.github.vigoo.zioaws.datasync.model.Gid.wrap(value))
    override def preserveDeletedFilesValue
        : Option[io.github.vigoo.zioaws.datasync.model.PreserveDeletedFiles] =
      scala
        .Option(impl.preserveDeletedFiles())
        .map(value =>
          io.github.vigoo.zioaws.datasync.model.PreserveDeletedFiles.wrap(value)
        )
    override def preserveDevicesValue
        : Option[io.github.vigoo.zioaws.datasync.model.PreserveDevices] = scala
      .Option(impl.preserveDevices())
      .map(value =>
        io.github.vigoo.zioaws.datasync.model.PreserveDevices.wrap(value)
      )
    override def posixPermissionsValue
        : Option[io.github.vigoo.zioaws.datasync.model.PosixPermissions] = scala
      .Option(impl.posixPermissions())
      .map(value =>
        io.github.vigoo.zioaws.datasync.model.PosixPermissions.wrap(value)
      )
    override def bytesPerSecondValue: Option[BytesPerSecond] =
      scala.Option(impl.bytesPerSecond()).map(value => value: BytesPerSecond)
    override def taskQueueingValue
        : Option[io.github.vigoo.zioaws.datasync.model.TaskQueueing] = scala
      .Option(impl.taskQueueing())
      .map(value =>
        io.github.vigoo.zioaws.datasync.model.TaskQueueing.wrap(value)
      )
    override def logLevelValue
        : Option[io.github.vigoo.zioaws.datasync.model.LogLevel] = scala
      .Option(impl.logLevel())
      .map(value => io.github.vigoo.zioaws.datasync.model.LogLevel.wrap(value))
    override def transferModeValue
        : Option[io.github.vigoo.zioaws.datasync.model.TransferMode] = scala
      .Option(impl.transferMode())
      .map(value =>
        io.github.vigoo.zioaws.datasync.model.TransferMode.wrap(value)
      )
    override def securityDescriptorCopyFlagsValue: Option[
      io.github.vigoo.zioaws.datasync.model.SmbSecurityDescriptorCopyFlags
    ] = scala
      .Option(impl.securityDescriptorCopyFlags())
      .map(value =>
        io.github.vigoo.zioaws.datasync.model.SmbSecurityDescriptorCopyFlags
          .wrap(value)
      )
  }
  def wrap(
      impl: software.amazon.awssdk.services.datasync.model.Options
  ): io.github.vigoo.zioaws.datasync.model.Options.ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy