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

io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.elasticloadbalancing.model
import java.lang.Integer
import zio.ZIO
import io.github.vigoo.zioaws.elasticloadbalancing.model.primitives.{
  AccessLogPrefix,
  AccessLogInterval,
  S3BucketName,
  AccessLogEnabled
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class AccessLog(
    enabled: AccessLogEnabled,
    s3BucketName: Option[S3BucketName] = None,
    emitInterval: Option[AccessLogInterval] = None,
    s3BucketPrefix: Option[AccessLogPrefix] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.elasticloadbalancing.model.AccessLog = {
    import AccessLog.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.elasticloadbalancing.model.AccessLog
      .builder()
      .enabled(enabled: java.lang.Boolean)
      .optionallyWith(s3BucketName.map(value => value: java.lang.String))(
        _.s3BucketName
      )
      .optionallyWith(emitInterval.map(value => value: Integer))(_.emitInterval)
      .optionallyWith(s3BucketPrefix.map(value => value: java.lang.String))(
        _.s3BucketPrefix
      )
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog.ReadOnly =
    io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog
      .wrap(buildAwsValue())
}
object AccessLog {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.elasticloadbalancing.model.AccessLog
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable: io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog =
      io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog(
        enabledValue,
        s3BucketNameValue.map(value => value),
        emitIntervalValue.map(value => value),
        s3BucketPrefixValue.map(value => value)
      )
    def enabledValue: AccessLogEnabled
    def s3BucketNameValue: Option[S3BucketName]
    def emitIntervalValue: Option[AccessLogInterval]
    def s3BucketPrefixValue: Option[AccessLogPrefix]
    def enabled: ZIO[Any, Nothing, AccessLogEnabled] = ZIO.succeed(enabledValue)
    def s3BucketName: ZIO[Any, AwsError, S3BucketName] =
      AwsError.unwrapOptionField("s3BucketName", s3BucketNameValue)
    def emitInterval: ZIO[Any, AwsError, AccessLogInterval] =
      AwsError.unwrapOptionField("emitInterval", emitIntervalValue)
    def s3BucketPrefix: ZIO[Any, AwsError, AccessLogPrefix] =
      AwsError.unwrapOptionField("s3BucketPrefix", s3BucketPrefixValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.elasticloadbalancing.model.AccessLog
  ) extends io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog.ReadOnly {
    override def enabledValue: AccessLogEnabled =
      impl.enabled(): AccessLogEnabled
    override def s3BucketNameValue: Option[S3BucketName] =
      scala.Option(impl.s3BucketName()).map(value => value: S3BucketName)
    override def emitIntervalValue: Option[AccessLogInterval] =
      scala.Option(impl.emitInterval()).map(value => value: AccessLogInterval)
    override def s3BucketPrefixValue: Option[AccessLogPrefix] =
      scala.Option(impl.s3BucketPrefix()).map(value => value: AccessLogPrefix)
  }
  def wrap(
      impl: software.amazon.awssdk.services.elasticloadbalancing.model.AccessLog
  ): io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy