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

zio.aws.storagegateway.model.ActivateGatewayRequest.scala Maven / Gradle / Ivy

package zio.aws.storagegateway.model
import zio.aws.storagegateway.model.primitives.{
  GatewayType,
  GatewayName,
  ActivationKey,
  TapeDriveType,
  RegionId,
  GatewayTimezone,
  MediumChangerType
}
import zio.ZIO
import zio.aws.core.{AwsError, BuilderHelper}
import zio.prelude.data.Optional
import scala.jdk.CollectionConverters._
final case class ActivateGatewayRequest(
    activationKey: ActivationKey,
    gatewayName: GatewayName,
    gatewayTimezone: GatewayTimezone,
    gatewayRegion: RegionId,
    gatewayType: Optional[GatewayType] = Optional.Absent,
    tapeDriveType: Optional[TapeDriveType] = Optional.Absent,
    mediumChangerType: Optional[MediumChangerType] = Optional.Absent,
    tags: Optional[Iterable[zio.aws.storagegateway.model.Tag]] = Optional.Absent
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.storagegateway.model.ActivateGatewayRequest = {
    import ActivateGatewayRequest.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.storagegateway.model.ActivateGatewayRequest
      .builder()
      .activationKey(ActivationKey.unwrap(activationKey): java.lang.String)
      .gatewayName(GatewayName.unwrap(gatewayName): java.lang.String)
      .gatewayTimezone(
        GatewayTimezone.unwrap(gatewayTimezone): java.lang.String
      )
      .gatewayRegion(RegionId.unwrap(gatewayRegion): java.lang.String)
      .optionallyWith(
        gatewayType.map(value => GatewayType.unwrap(value): java.lang.String)
      )(_.gatewayType)
      .optionallyWith(
        tapeDriveType.map(value =>
          TapeDriveType.unwrap(value): java.lang.String
        )
      )(_.tapeDriveType)
      .optionallyWith(
        mediumChangerType.map(value =>
          MediumChangerType.unwrap(value): java.lang.String
        )
      )(_.mediumChangerType)
      .optionallyWith(
        tags.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.tags)
      .build()
  }
  def asReadOnly: zio.aws.storagegateway.model.ActivateGatewayRequest.ReadOnly =
    zio.aws.storagegateway.model.ActivateGatewayRequest.wrap(buildAwsValue())
}
object ActivateGatewayRequest {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.storagegateway.model.ActivateGatewayRequest
  ] = BuilderHelper.apply
  trait ReadOnly {
    def asEditable: zio.aws.storagegateway.model.ActivateGatewayRequest =
      zio.aws.storagegateway.model.ActivateGatewayRequest(
        activationKey,
        gatewayName,
        gatewayTimezone,
        gatewayRegion,
        gatewayType.map(value => value),
        tapeDriveType.map(value => value),
        mediumChangerType.map(value => value),
        tags.map(value =>
          value.map { item =>
            item.asEditable
          }
        )
      )
    def activationKey: ActivationKey
    def gatewayName: GatewayName
    def gatewayTimezone: GatewayTimezone
    def gatewayRegion: RegionId
    def gatewayType: Optional[GatewayType]
    def tapeDriveType: Optional[TapeDriveType]
    def mediumChangerType: Optional[MediumChangerType]
    def tags: Optional[List[zio.aws.storagegateway.model.Tag.ReadOnly]]
    def getActivationKey: ZIO[Any, Nothing, ActivationKey] =
      ZIO.succeed(activationKey)
    def getGatewayName: ZIO[Any, Nothing, GatewayName] =
      ZIO.succeed(gatewayName)
    def getGatewayTimezone: ZIO[Any, Nothing, GatewayTimezone] =
      ZIO.succeed(gatewayTimezone)
    def getGatewayRegion: ZIO[Any, Nothing, RegionId] =
      ZIO.succeed(gatewayRegion)
    def getGatewayType: ZIO[Any, AwsError, GatewayType] =
      AwsError.unwrapOptionField("gatewayType", gatewayType)
    def getTapeDriveType: ZIO[Any, AwsError, TapeDriveType] =
      AwsError.unwrapOptionField("tapeDriveType", tapeDriveType)
    def getMediumChangerType: ZIO[Any, AwsError, MediumChangerType] =
      AwsError.unwrapOptionField("mediumChangerType", mediumChangerType)
    def getTags
        : ZIO[Any, AwsError, List[zio.aws.storagegateway.model.Tag.ReadOnly]] =
      AwsError.unwrapOptionField("tags", tags)
  }
  private final class Wrapper(
      impl: software.amazon.awssdk.services.storagegateway.model.ActivateGatewayRequest
  ) extends zio.aws.storagegateway.model.ActivateGatewayRequest.ReadOnly {
    override val activationKey: ActivationKey =
      zio.aws.storagegateway.model.primitives
        .ActivationKey(impl.activationKey())
    override val gatewayName: GatewayName =
      zio.aws.storagegateway.model.primitives.GatewayName(impl.gatewayName())
    override val gatewayTimezone: GatewayTimezone =
      zio.aws.storagegateway.model.primitives
        .GatewayTimezone(impl.gatewayTimezone())
    override val gatewayRegion: RegionId =
      zio.aws.storagegateway.model.primitives.RegionId(impl.gatewayRegion())
    override val gatewayType: Optional[GatewayType] = zio.aws.core.internal
      .optionalFromNullable(impl.gatewayType())
      .map(value => zio.aws.storagegateway.model.primitives.GatewayType(value))
    override val tapeDriveType: Optional[TapeDriveType] = zio.aws.core.internal
      .optionalFromNullable(impl.tapeDriveType())
      .map(value =>
        zio.aws.storagegateway.model.primitives.TapeDriveType(value)
      )
    override val mediumChangerType: Optional[MediumChangerType] =
      zio.aws.core.internal
        .optionalFromNullable(impl.mediumChangerType())
        .map(value =>
          zio.aws.storagegateway.model.primitives.MediumChangerType(value)
        )
    override val tags
        : Optional[List[zio.aws.storagegateway.model.Tag.ReadOnly]] =
      zio.aws.core.internal
        .optionalFromNullable(impl.tags())
        .map(value =>
          value.asScala.map { item =>
            zio.aws.storagegateway.model.Tag.wrap(item)
          }.toList
        )
  }
  def wrap(
      impl: software.amazon.awssdk.services.storagegateway.model.ActivateGatewayRequest
  ): zio.aws.storagegateway.model.ActivateGatewayRequest.ReadOnly = new Wrapper(
    impl
  )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy