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

io.github.vigoo.zioaws.ecrpublic.model.Layer.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.ecrpublic.model
import io.github.vigoo.zioaws.ecrpublic.model.primitives.{
  MediaType,
  LayerSizeInBytes,
  LayerDigest
}
import zio.ZIO
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class Layer(
    layerDigest: Option[LayerDigest] = None,
    layerAvailability: Option[
      io.github.vigoo.zioaws.ecrpublic.model.LayerAvailability
    ] = None,
    layerSize: Option[LayerSizeInBytes] = None,
    mediaType: Option[MediaType] = None
) {
  def buildAwsValue(): software.amazon.awssdk.services.ecrpublic.model.Layer = {
    import Layer.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.ecrpublic.model.Layer
      .builder()
      .optionallyWith(layerDigest.map(value => value: java.lang.String))(
        _.layerDigest
      )
      .optionallyWith(layerAvailability.map(value => value.unwrap))(
        _.layerAvailability
      )
      .optionallyWith(layerSize.map(value => value: java.lang.Long))(
        _.layerSize
      )
      .optionallyWith(mediaType.map(value => value: java.lang.String))(
        _.mediaType
      )
      .build()
  }
  def asReadOnly: io.github.vigoo.zioaws.ecrpublic.model.Layer.ReadOnly =
    io.github.vigoo.zioaws.ecrpublic.model.Layer.wrap(buildAwsValue())
}
object Layer {
  private lazy val zioAwsBuilderHelper
      : BuilderHelper[software.amazon.awssdk.services.ecrpublic.model.Layer] =
    BuilderHelper.apply
  trait ReadOnly {
    def editable: io.github.vigoo.zioaws.ecrpublic.model.Layer =
      io.github.vigoo.zioaws.ecrpublic.model.Layer(
        layerDigestValue.map(value => value),
        layerAvailabilityValue.map(value => value),
        layerSizeValue.map(value => value),
        mediaTypeValue.map(value => value)
      )
    def layerDigestValue: Option[LayerDigest]
    def layerAvailabilityValue
        : Option[io.github.vigoo.zioaws.ecrpublic.model.LayerAvailability]
    def layerSizeValue: Option[LayerSizeInBytes]
    def mediaTypeValue: Option[MediaType]
    def layerDigest: ZIO[Any, AwsError, LayerDigest] =
      AwsError.unwrapOptionField("layerDigest", layerDigestValue)
    def layerAvailability: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.ecrpublic.model.LayerAvailability
    ] = AwsError.unwrapOptionField("layerAvailability", layerAvailabilityValue)
    def layerSize: ZIO[Any, AwsError, LayerSizeInBytes] =
      AwsError.unwrapOptionField("layerSize", layerSizeValue)
    def mediaType: ZIO[Any, AwsError, MediaType] =
      AwsError.unwrapOptionField("mediaType", mediaTypeValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.ecrpublic.model.Layer
  ) extends io.github.vigoo.zioaws.ecrpublic.model.Layer.ReadOnly {
    override def layerDigestValue: Option[LayerDigest] =
      scala.Option(impl.layerDigest()).map(value => value: LayerDigest)
    override def layerAvailabilityValue
        : Option[io.github.vigoo.zioaws.ecrpublic.model.LayerAvailability] =
      scala
        .Option(impl.layerAvailability())
        .map(value =>
          io.github.vigoo.zioaws.ecrpublic.model.LayerAvailability.wrap(value)
        )
    override def layerSizeValue: Option[LayerSizeInBytes] =
      scala.Option(impl.layerSize()).map(value => value: LayerSizeInBytes)
    override def mediaTypeValue: Option[MediaType] =
      scala.Option(impl.mediaType()).map(value => value: MediaType)
  }
  def wrap(
      impl: software.amazon.awssdk.services.ecrpublic.model.Layer
  ): io.github.vigoo.zioaws.ecrpublic.model.Layer.ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy