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

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

package zio.aws.storagegateway.model
import zio.aws.storagegateway.model.primitives.{IqnName, ChapSecret, TargetARN}
import zio.ZIO
import zio.aws.core.{AwsError, BuilderHelper}
import zio.prelude.data.Optional
import scala.jdk.CollectionConverters._
final case class UpdateChapCredentialsRequest(
    targetARN: TargetARN,
    secretToAuthenticateInitiator: ChapSecret,
    initiatorName: IqnName,
    secretToAuthenticateTarget: Optional[ChapSecret] = Optional.Absent
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.storagegateway.model.UpdateChapCredentialsRequest = {
    import UpdateChapCredentialsRequest.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.storagegateway.model.UpdateChapCredentialsRequest
      .builder()
      .targetARN(TargetARN.unwrap(targetARN): java.lang.String)
      .secretToAuthenticateInitiator(
        ChapSecret.unwrap(secretToAuthenticateInitiator): java.lang.String
      )
      .initiatorName(IqnName.unwrap(initiatorName): java.lang.String)
      .optionallyWith(
        secretToAuthenticateTarget.map(value =>
          ChapSecret.unwrap(value): java.lang.String
        )
      )(_.secretToAuthenticateTarget)
      .build()
  }
  def asReadOnly
      : zio.aws.storagegateway.model.UpdateChapCredentialsRequest.ReadOnly =
    zio.aws.storagegateway.model.UpdateChapCredentialsRequest
      .wrap(buildAwsValue())
}
object UpdateChapCredentialsRequest {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.storagegateway.model.UpdateChapCredentialsRequest
  ] = BuilderHelper.apply
  trait ReadOnly {
    def asEditable: zio.aws.storagegateway.model.UpdateChapCredentialsRequest =
      zio.aws.storagegateway.model.UpdateChapCredentialsRequest(
        targetARN,
        secretToAuthenticateInitiator,
        initiatorName,
        secretToAuthenticateTarget.map(value => value)
      )
    def targetARN: TargetARN
    def secretToAuthenticateInitiator: ChapSecret
    def initiatorName: IqnName
    def secretToAuthenticateTarget: Optional[ChapSecret]
    def getTargetARN: ZIO[Any, Nothing, TargetARN] = ZIO.succeed(targetARN)
    def getSecretToAuthenticateInitiator: ZIO[Any, Nothing, ChapSecret] =
      ZIO.succeed(secretToAuthenticateInitiator)
    def getInitiatorName: ZIO[Any, Nothing, IqnName] =
      ZIO.succeed(initiatorName)
    def getSecretToAuthenticateTarget: ZIO[Any, AwsError, ChapSecret] =
      AwsError.unwrapOptionField(
        "secretToAuthenticateTarget",
        secretToAuthenticateTarget
      )
  }
  private final class Wrapper(
      impl: software.amazon.awssdk.services.storagegateway.model.UpdateChapCredentialsRequest
  ) extends zio.aws.storagegateway.model.UpdateChapCredentialsRequest.ReadOnly {
    override val targetARN: TargetARN =
      zio.aws.storagegateway.model.primitives.TargetARN(impl.targetARN())
    override val secretToAuthenticateInitiator: ChapSecret =
      zio.aws.storagegateway.model.primitives
        .ChapSecret(impl.secretToAuthenticateInitiator())
    override val initiatorName: IqnName =
      zio.aws.storagegateway.model.primitives.IqnName(impl.initiatorName())
    override val secretToAuthenticateTarget: Optional[ChapSecret] =
      zio.aws.core.internal
        .optionalFromNullable(impl.secretToAuthenticateTarget())
        .map(value => zio.aws.storagegateway.model.primitives.ChapSecret(value))
  }
  def wrap(
      impl: software.amazon.awssdk.services.storagegateway.model.UpdateChapCredentialsRequest
  ): zio.aws.storagegateway.model.UpdateChapCredentialsRequest.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy