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

io.github.vigoo.zioaws.elastictranscoder.model.package.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.elastictranscoder
import scala.jdk.CollectionConverters._
import java.time.Instant
import zio.{ Chunk, ZIO }
import software.amazon.awssdk.core.SdkBytes
package object model {
  object primitives {
    type AccessControl = String
    type Ascending = String
    type AspectRatio = String
    type AudioBitDepth = String
    type AudioBitOrder = String
    type AudioBitRate = String
    type AudioChannels = String
    type AudioCodec = String
    type AudioCodecProfile = String
    type AudioPackingMode = String
    type AudioSampleRate = String
    type AudioSigned = String
    type Base64EncodedString = String
    type BucketName = String
    type CaptionFormatFormat = String
    type CaptionFormatPattern = String
    type CaptionMergePolicy = String
    type CodecOption = String
    type Description = String
    type Digits = String
    type DigitsOrAuto = String
    type EncryptionMode = String
    type Filename = String
    type FixedGOP = String
    type FloatString = String
    type FrameRate = String
    type Grantee = String
    type GranteeType = String
    type HlsContentProtectionMethod = String
    type HorizontalAlign = String
    type Id = String
    type Interlaced = String
    type JobContainer = String
    type JobStatus = String
    type JpgOrPng = String
    type Key = String
    type KeyArn = String
    type KeyIdGuid = String
    type KeyStoragePolicy = String
    type KeyframesMaxDist = String
    type LongKey = String
    type MaxFrameRate = String
    type MergePolicy = String
    type Name = String
    type NonEmptyBase64EncodedString = String
    type NullableInteger = Int
    type NullableLong = Long
    type OneTo512String = String
    type Opacity = String
    type PaddingPolicy = String
    type PipelineStatus = String
    type PixelsOrPercent = String
    type PlayReadyDrmFormatString = String
    type PlaylistFormat = String
    type PresetContainer = String
    type PresetType = String
    type PresetWatermarkId = String
    type Resolution = String
    type Role = String
    type Rotate = String
    type SizingPolicy = String
    type SnsTopic = String
    type StorageClass = String
    type Target = String
    type ThumbnailPattern = String
    type ThumbnailResolution = String
    type Time = String
    type TimeOffset = String
    type VerticalAlign = String
    type VideoBitRate = String
    type VideoCodec = String
    type WatermarkKey = String
    type WatermarkSizingPolicy = String
    type ZeroTo255String = String
    type ZeroTo512String = String
  }
  type AccessControls = List[primitives.AccessControl]
  case class Artwork(inputKey: scala.Option[primitives.WatermarkKey] = None, maxWidth: scala.Option[primitives.DigitsOrAuto] = None, maxHeight: scala.Option[primitives.DigitsOrAuto] = None, sizingPolicy: scala.Option[primitives.SizingPolicy] = None, paddingPolicy: scala.Option[primitives.PaddingPolicy] = None, albumArtFormat: scala.Option[primitives.JpgOrPng] = None, encryption: scala.Option[Encryption] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Artwork = {
      import Artwork.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Artwork.builder().optionallyWith(inputKey.map(value => value: java.lang.String))(_.inputKey).optionallyWith(maxWidth.map(value => value: java.lang.String))(_.maxWidth).optionallyWith(maxHeight.map(value => value: java.lang.String))(_.maxHeight).optionallyWith(sizingPolicy.map(value => value: java.lang.String))(_.sizingPolicy).optionallyWith(paddingPolicy.map(value => value: java.lang.String))(_.paddingPolicy).optionallyWith(albumArtFormat.map(value => value: java.lang.String))(_.albumArtFormat).optionallyWith(encryption.map(value => value.buildAwsValue()))(_.encryption).build()
    }
    def asReadOnly: Artwork.ReadOnly = Artwork.wrap(buildAwsValue())
  }
  object Artwork {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Artwork] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Artwork = Artwork(inputKeyValue.map(value => value), maxWidthValue.map(value => value), maxHeightValue.map(value => value), sizingPolicyValue.map(value => value), paddingPolicyValue.map(value => value), albumArtFormatValue.map(value => value), encryptionValue.map(value => value.editable))
      def inputKeyValue: scala.Option[primitives.WatermarkKey]
      def maxWidthValue: scala.Option[primitives.DigitsOrAuto]
      def maxHeightValue: scala.Option[primitives.DigitsOrAuto]
      def sizingPolicyValue: scala.Option[primitives.SizingPolicy]
      def paddingPolicyValue: scala.Option[primitives.PaddingPolicy]
      def albumArtFormatValue: scala.Option[primitives.JpgOrPng]
      def encryptionValue: scala.Option[Encryption.ReadOnly]
      def inputKey: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.WatermarkKey] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("inputKey", inputKeyValue)
      def maxWidth: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.DigitsOrAuto] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("maxWidth", maxWidthValue)
      def maxHeight: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.DigitsOrAuto] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("maxHeight", maxHeightValue)
      def sizingPolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.SizingPolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("sizingPolicy", sizingPolicyValue)
      def paddingPolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PaddingPolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("paddingPolicy", paddingPolicyValue)
      def albumArtFormat: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.JpgOrPng] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("albumArtFormat", albumArtFormatValue)
      def encryption: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Encryption.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("encryption", encryptionValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Artwork) extends Artwork.ReadOnly {
      override def inputKeyValue: scala.Option[primitives.WatermarkKey] = scala.Option(impl.inputKey()).map(value => value: primitives.WatermarkKey)
      override def maxWidthValue: scala.Option[primitives.DigitsOrAuto] = scala.Option(impl.maxWidth()).map(value => value: primitives.DigitsOrAuto)
      override def maxHeightValue: scala.Option[primitives.DigitsOrAuto] = scala.Option(impl.maxHeight()).map(value => value: primitives.DigitsOrAuto)
      override def sizingPolicyValue: scala.Option[primitives.SizingPolicy] = scala.Option(impl.sizingPolicy()).map(value => value: primitives.SizingPolicy)
      override def paddingPolicyValue: scala.Option[primitives.PaddingPolicy] = scala.Option(impl.paddingPolicy()).map(value => value: primitives.PaddingPolicy)
      override def albumArtFormatValue: scala.Option[primitives.JpgOrPng] = scala.Option(impl.albumArtFormat()).map(value => value: primitives.JpgOrPng)
      override def encryptionValue: scala.Option[Encryption.ReadOnly] = scala.Option(impl.encryption()).map(value => Encryption.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Artwork): ReadOnly = new Wrapper(impl)
  }
  type Artworks = List[Artwork]
  case class AudioCodecOptions(profile: scala.Option[primitives.AudioCodecProfile] = None, bitDepth: scala.Option[primitives.AudioBitDepth] = None, bitOrder: scala.Option[primitives.AudioBitOrder] = None, signed: scala.Option[primitives.AudioSigned] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.AudioCodecOptions = {
      import AudioCodecOptions.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.AudioCodecOptions.builder().optionallyWith(profile.map(value => value: java.lang.String))(_.profile).optionallyWith(bitDepth.map(value => value: java.lang.String))(_.bitDepth).optionallyWith(bitOrder.map(value => value: java.lang.String))(_.bitOrder).optionallyWith(signed.map(value => value: java.lang.String))(_.signed).build()
    }
    def asReadOnly: AudioCodecOptions.ReadOnly = AudioCodecOptions.wrap(buildAwsValue())
  }
  object AudioCodecOptions {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.AudioCodecOptions] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: AudioCodecOptions = AudioCodecOptions(profileValue.map(value => value), bitDepthValue.map(value => value), bitOrderValue.map(value => value), signedValue.map(value => value))
      def profileValue: scala.Option[primitives.AudioCodecProfile]
      def bitDepthValue: scala.Option[primitives.AudioBitDepth]
      def bitOrderValue: scala.Option[primitives.AudioBitOrder]
      def signedValue: scala.Option[primitives.AudioSigned]
      def profile: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AudioCodecProfile] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("profile", profileValue)
      def bitDepth: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AudioBitDepth] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("bitDepth", bitDepthValue)
      def bitOrder: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AudioBitOrder] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("bitOrder", bitOrderValue)
      def signed: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AudioSigned] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("signed", signedValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.AudioCodecOptions) extends AudioCodecOptions.ReadOnly {
      override def profileValue: scala.Option[primitives.AudioCodecProfile] = scala.Option(impl.profile()).map(value => value: primitives.AudioCodecProfile)
      override def bitDepthValue: scala.Option[primitives.AudioBitDepth] = scala.Option(impl.bitDepth()).map(value => value: primitives.AudioBitDepth)
      override def bitOrderValue: scala.Option[primitives.AudioBitOrder] = scala.Option(impl.bitOrder()).map(value => value: primitives.AudioBitOrder)
      override def signedValue: scala.Option[primitives.AudioSigned] = scala.Option(impl.signed()).map(value => value: primitives.AudioSigned)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.AudioCodecOptions): ReadOnly = new Wrapper(impl)
  }
  case class AudioParameters(codec: scala.Option[primitives.AudioCodec] = None, sampleRate: scala.Option[primitives.AudioSampleRate] = None, bitRate: scala.Option[primitives.AudioBitRate] = None, channels: scala.Option[primitives.AudioChannels] = None, audioPackingMode: scala.Option[primitives.AudioPackingMode] = None, codecOptions: scala.Option[AudioCodecOptions] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.AudioParameters = {
      import AudioParameters.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.AudioParameters.builder().optionallyWith(codec.map(value => value: java.lang.String))(_.codec).optionallyWith(sampleRate.map(value => value: java.lang.String))(_.sampleRate).optionallyWith(bitRate.map(value => value: java.lang.String))(_.bitRate).optionallyWith(channels.map(value => value: java.lang.String))(_.channels).optionallyWith(audioPackingMode.map(value => value: java.lang.String))(_.audioPackingMode).optionallyWith(codecOptions.map(value => value.buildAwsValue()))(_.codecOptions).build()
    }
    def asReadOnly: AudioParameters.ReadOnly = AudioParameters.wrap(buildAwsValue())
  }
  object AudioParameters {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.AudioParameters] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: AudioParameters = AudioParameters(codecValue.map(value => value), sampleRateValue.map(value => value), bitRateValue.map(value => value), channelsValue.map(value => value), audioPackingModeValue.map(value => value), codecOptionsValue.map(value => value.editable))
      def codecValue: scala.Option[primitives.AudioCodec]
      def sampleRateValue: scala.Option[primitives.AudioSampleRate]
      def bitRateValue: scala.Option[primitives.AudioBitRate]
      def channelsValue: scala.Option[primitives.AudioChannels]
      def audioPackingModeValue: scala.Option[primitives.AudioPackingMode]
      def codecOptionsValue: scala.Option[AudioCodecOptions.ReadOnly]
      def codec: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AudioCodec] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("codec", codecValue)
      def sampleRate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AudioSampleRate] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("sampleRate", sampleRateValue)
      def bitRate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AudioBitRate] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("bitRate", bitRateValue)
      def channels: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AudioChannels] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("channels", channelsValue)
      def audioPackingMode: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AudioPackingMode] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("audioPackingMode", audioPackingModeValue)
      def codecOptions: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, AudioCodecOptions.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("codecOptions", codecOptionsValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.AudioParameters) extends AudioParameters.ReadOnly {
      override def codecValue: scala.Option[primitives.AudioCodec] = scala.Option(impl.codec()).map(value => value: primitives.AudioCodec)
      override def sampleRateValue: scala.Option[primitives.AudioSampleRate] = scala.Option(impl.sampleRate()).map(value => value: primitives.AudioSampleRate)
      override def bitRateValue: scala.Option[primitives.AudioBitRate] = scala.Option(impl.bitRate()).map(value => value: primitives.AudioBitRate)
      override def channelsValue: scala.Option[primitives.AudioChannels] = scala.Option(impl.channels()).map(value => value: primitives.AudioChannels)
      override def audioPackingModeValue: scala.Option[primitives.AudioPackingMode] = scala.Option(impl.audioPackingMode()).map(value => value: primitives.AudioPackingMode)
      override def codecOptionsValue: scala.Option[AudioCodecOptions.ReadOnly] = scala.Option(impl.codecOptions()).map(value => AudioCodecOptions.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.AudioParameters): ReadOnly = new Wrapper(impl)
  }
  case class CancelJobRequest(id: primitives.Id) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CancelJobRequest = {
      import CancelJobRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CancelJobRequest.builder().id(id: java.lang.String).build()
    }
    def asReadOnly: CancelJobRequest.ReadOnly = CancelJobRequest.wrap(buildAwsValue())
  }
  object CancelJobRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CancelJobRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CancelJobRequest = CancelJobRequest(idValue)
      def idValue: primitives.Id
      def id: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(idValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CancelJobRequest) extends CancelJobRequest.ReadOnly { override def idValue: primitives.Id = impl.id(): primitives.Id }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CancelJobRequest): ReadOnly = new Wrapper(impl)
  }
  case class CancelJobResponse() {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CancelJobResponse = {
      import CancelJobResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CancelJobResponse.builder().build()
    }
    def asReadOnly: CancelJobResponse.ReadOnly = CancelJobResponse.wrap(buildAwsValue())
  }
  object CancelJobResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CancelJobResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly { def editable: CancelJobResponse = CancelJobResponse() }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CancelJobResponse) extends CancelJobResponse.ReadOnly
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CancelJobResponse): ReadOnly = new Wrapper(impl)
  }
  case class CaptionFormat(format: scala.Option[primitives.CaptionFormatFormat] = None, pattern: scala.Option[primitives.CaptionFormatPattern] = None, encryption: scala.Option[Encryption] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CaptionFormat = {
      import CaptionFormat.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CaptionFormat.builder().optionallyWith(format.map(value => value: java.lang.String))(_.format).optionallyWith(pattern.map(value => value: java.lang.String))(_.pattern).optionallyWith(encryption.map(value => value.buildAwsValue()))(_.encryption).build()
    }
    def asReadOnly: CaptionFormat.ReadOnly = CaptionFormat.wrap(buildAwsValue())
  }
  object CaptionFormat {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CaptionFormat] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CaptionFormat = CaptionFormat(formatValue.map(value => value), patternValue.map(value => value), encryptionValue.map(value => value.editable))
      def formatValue: scala.Option[primitives.CaptionFormatFormat]
      def patternValue: scala.Option[primitives.CaptionFormatPattern]
      def encryptionValue: scala.Option[Encryption.ReadOnly]
      def format: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.CaptionFormatFormat] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("format", formatValue)
      def pattern: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.CaptionFormatPattern] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pattern", patternValue)
      def encryption: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Encryption.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("encryption", encryptionValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CaptionFormat) extends CaptionFormat.ReadOnly {
      override def formatValue: scala.Option[primitives.CaptionFormatFormat] = scala.Option(impl.format()).map(value => value: primitives.CaptionFormatFormat)
      override def patternValue: scala.Option[primitives.CaptionFormatPattern] = scala.Option(impl.pattern()).map(value => value: primitives.CaptionFormatPattern)
      override def encryptionValue: scala.Option[Encryption.ReadOnly] = scala.Option(impl.encryption()).map(value => Encryption.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CaptionFormat): ReadOnly = new Wrapper(impl)
  }
  type CaptionFormats = List[CaptionFormat]
  case class CaptionSource(key: scala.Option[primitives.LongKey] = None, language: scala.Option[primitives.Key] = None, timeOffset: scala.Option[primitives.TimeOffset] = None, label: scala.Option[primitives.Name] = None, encryption: scala.Option[Encryption] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CaptionSource = {
      import CaptionSource.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CaptionSource.builder().optionallyWith(key.map(value => value: java.lang.String))(_.key).optionallyWith(language.map(value => value: java.lang.String))(_.language).optionallyWith(timeOffset.map(value => value: java.lang.String))(_.timeOffset).optionallyWith(label.map(value => value: java.lang.String))(_.label).optionallyWith(encryption.map(value => value.buildAwsValue()))(_.encryption).build()
    }
    def asReadOnly: CaptionSource.ReadOnly = CaptionSource.wrap(buildAwsValue())
  }
  object CaptionSource {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CaptionSource] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CaptionSource = CaptionSource(keyValue.map(value => value), languageValue.map(value => value), timeOffsetValue.map(value => value), labelValue.map(value => value), encryptionValue.map(value => value.editable))
      def keyValue: scala.Option[primitives.LongKey]
      def languageValue: scala.Option[primitives.Key]
      def timeOffsetValue: scala.Option[primitives.TimeOffset]
      def labelValue: scala.Option[primitives.Name]
      def encryptionValue: scala.Option[Encryption.ReadOnly]
      def key: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.LongKey] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("key", keyValue)
      def language: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Key] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("language", languageValue)
      def timeOffset: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.TimeOffset] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("timeOffset", timeOffsetValue)
      def label: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Name] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("label", labelValue)
      def encryption: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Encryption.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("encryption", encryptionValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CaptionSource) extends CaptionSource.ReadOnly {
      override def keyValue: scala.Option[primitives.LongKey] = scala.Option(impl.key()).map(value => value: primitives.LongKey)
      override def languageValue: scala.Option[primitives.Key] = scala.Option(impl.language()).map(value => value: primitives.Key)
      override def timeOffsetValue: scala.Option[primitives.TimeOffset] = scala.Option(impl.timeOffset()).map(value => value: primitives.TimeOffset)
      override def labelValue: scala.Option[primitives.Name] = scala.Option(impl.label()).map(value => value: primitives.Name)
      override def encryptionValue: scala.Option[Encryption.ReadOnly] = scala.Option(impl.encryption()).map(value => Encryption.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CaptionSource): ReadOnly = new Wrapper(impl)
  }
  type CaptionSources = List[CaptionSource]
  case class Captions(mergePolicy: scala.Option[primitives.CaptionMergePolicy] = None, captionSources: scala.Option[Iterable[CaptionSource]] = None, captionFormats: scala.Option[Iterable[CaptionFormat]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Captions = {
      import Captions.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Captions.builder().optionallyWith(mergePolicy.map(value => value: java.lang.String))(_.mergePolicy).optionallyWith(captionSources.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.captionSources).optionallyWith(captionFormats.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.captionFormats).build()
    }
    def asReadOnly: Captions.ReadOnly = Captions.wrap(buildAwsValue())
  }
  object Captions {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Captions] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Captions = Captions(mergePolicyValue.map(value => value), captionSourcesValue.map(value => value.map { item => 
        item.editable
      }), captionFormatsValue.map(value => value.map { item => 
        item.editable
      }))
      def mergePolicyValue: scala.Option[primitives.CaptionMergePolicy]
      def captionSourcesValue: scala.Option[List[CaptionSource.ReadOnly]]
      def captionFormatsValue: scala.Option[List[CaptionFormat.ReadOnly]]
      def mergePolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.CaptionMergePolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("mergePolicy", mergePolicyValue)
      def captionSources: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[CaptionSource.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("captionSources", captionSourcesValue)
      def captionFormats: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[CaptionFormat.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("captionFormats", captionFormatsValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Captions) extends Captions.ReadOnly {
      override def mergePolicyValue: scala.Option[primitives.CaptionMergePolicy] = scala.Option(impl.mergePolicy()).map(value => value: primitives.CaptionMergePolicy)
      override def captionSourcesValue: scala.Option[List[CaptionSource.ReadOnly]] = scala.Option(impl.captionSources()).map(value => value.asScala.map { item => 
        CaptionSource.wrap(item)
      }.toList)
      override def captionFormatsValue: scala.Option[List[CaptionFormat.ReadOnly]] = scala.Option(impl.captionFormats()).map(value => value.asScala.map { item => 
        CaptionFormat.wrap(item)
      }.toList)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Captions): ReadOnly = new Wrapper(impl)
  }
  case class Clip(timeSpan: scala.Option[TimeSpan] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Clip = {
      import Clip.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Clip.builder().optionallyWith(timeSpan.map(value => value.buildAwsValue()))(_.timeSpan).build()
    }
    def asReadOnly: Clip.ReadOnly = Clip.wrap(buildAwsValue())
  }
  object Clip {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Clip] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Clip = Clip(timeSpanValue.map(value => value.editable))
      def timeSpanValue: scala.Option[TimeSpan.ReadOnly]
      def timeSpan: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, TimeSpan.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("timeSpan", timeSpanValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Clip) extends Clip.ReadOnly { override def timeSpanValue: scala.Option[TimeSpan.ReadOnly] = scala.Option(impl.timeSpan()).map(value => TimeSpan.wrap(value)) }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Clip): ReadOnly = new Wrapper(impl)
  }
  type CodecOptions = Map[primitives.CodecOption, primitives.CodecOption]
  type Composition = List[Clip]
  case class CreateJobOutput(key: scala.Option[primitives.Key] = None, thumbnailPattern: scala.Option[primitives.ThumbnailPattern] = None, thumbnailEncryption: scala.Option[Encryption] = None, rotate: scala.Option[primitives.Rotate] = None, presetId: scala.Option[primitives.Id] = None, segmentDuration: scala.Option[primitives.FloatString] = None, watermarks: scala.Option[Iterable[JobWatermark]] = None, albumArt: scala.Option[JobAlbumArt] = None, composition: scala.Option[Iterable[Clip]] = None, captions: scala.Option[Captions] = None, encryption: scala.Option[Encryption] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CreateJobOutput = {
      import CreateJobOutput.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CreateJobOutput.builder().optionallyWith(key.map(value => value: java.lang.String))(_.key).optionallyWith(thumbnailPattern.map(value => value: java.lang.String))(_.thumbnailPattern).optionallyWith(thumbnailEncryption.map(value => value.buildAwsValue()))(_.thumbnailEncryption).optionallyWith(rotate.map(value => value: java.lang.String))(_.rotate).optionallyWith(presetId.map(value => value: java.lang.String))(_.presetId).optionallyWith(segmentDuration.map(value => value: java.lang.String))(_.segmentDuration).optionallyWith(watermarks.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.watermarks).optionallyWith(albumArt.map(value => value.buildAwsValue()))(_.albumArt).optionallyWith(composition.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.composition).optionallyWith(captions.map(value => value.buildAwsValue()))(_.captions).optionallyWith(encryption.map(value => value.buildAwsValue()))(_.encryption).build()
    }
    def asReadOnly: CreateJobOutput.ReadOnly = CreateJobOutput.wrap(buildAwsValue())
  }
  object CreateJobOutput {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CreateJobOutput] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CreateJobOutput = CreateJobOutput(keyValue.map(value => value), thumbnailPatternValue.map(value => value), thumbnailEncryptionValue.map(value => value.editable), rotateValue.map(value => value), presetIdValue.map(value => value), segmentDurationValue.map(value => value), watermarksValue.map(value => value.map { item => 
        item.editable
      }), albumArtValue.map(value => value.editable), compositionValue.map(value => value.map { item => 
        item.editable
      }), captionsValue.map(value => value.editable), encryptionValue.map(value => value.editable))
      def keyValue: scala.Option[primitives.Key]
      def thumbnailPatternValue: scala.Option[primitives.ThumbnailPattern]
      def thumbnailEncryptionValue: scala.Option[Encryption.ReadOnly]
      def rotateValue: scala.Option[primitives.Rotate]
      def presetIdValue: scala.Option[primitives.Id]
      def segmentDurationValue: scala.Option[primitives.FloatString]
      def watermarksValue: scala.Option[List[JobWatermark.ReadOnly]]
      def albumArtValue: scala.Option[JobAlbumArt.ReadOnly]
      def compositionValue: scala.Option[List[Clip.ReadOnly]]
      def captionsValue: scala.Option[Captions.ReadOnly]
      def encryptionValue: scala.Option[Encryption.ReadOnly]
      def key: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Key] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("key", keyValue)
      def thumbnailPattern: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.ThumbnailPattern] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("thumbnailPattern", thumbnailPatternValue)
      def thumbnailEncryption: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Encryption.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("thumbnailEncryption", thumbnailEncryptionValue)
      def rotate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Rotate] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("rotate", rotateValue)
      def presetId: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("presetId", presetIdValue)
      def segmentDuration: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.FloatString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("segmentDuration", segmentDurationValue)
      def watermarks: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[JobWatermark.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("watermarks", watermarksValue)
      def albumArt: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, JobAlbumArt.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("albumArt", albumArtValue)
      def composition: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Clip.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("composition", compositionValue)
      def captions: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Captions.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("captions", captionsValue)
      def encryption: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Encryption.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("encryption", encryptionValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CreateJobOutput) extends CreateJobOutput.ReadOnly {
      override def keyValue: scala.Option[primitives.Key] = scala.Option(impl.key()).map(value => value: primitives.Key)
      override def thumbnailPatternValue: scala.Option[primitives.ThumbnailPattern] = scala.Option(impl.thumbnailPattern()).map(value => value: primitives.ThumbnailPattern)
      override def thumbnailEncryptionValue: scala.Option[Encryption.ReadOnly] = scala.Option(impl.thumbnailEncryption()).map(value => Encryption.wrap(value))
      override def rotateValue: scala.Option[primitives.Rotate] = scala.Option(impl.rotate()).map(value => value: primitives.Rotate)
      override def presetIdValue: scala.Option[primitives.Id] = scala.Option(impl.presetId()).map(value => value: primitives.Id)
      override def segmentDurationValue: scala.Option[primitives.FloatString] = scala.Option(impl.segmentDuration()).map(value => value: primitives.FloatString)
      override def watermarksValue: scala.Option[List[JobWatermark.ReadOnly]] = scala.Option(impl.watermarks()).map(value => value.asScala.map { item => 
        JobWatermark.wrap(item)
      }.toList)
      override def albumArtValue: scala.Option[JobAlbumArt.ReadOnly] = scala.Option(impl.albumArt()).map(value => JobAlbumArt.wrap(value))
      override def compositionValue: scala.Option[List[Clip.ReadOnly]] = scala.Option(impl.composition()).map(value => value.asScala.map { item => 
        Clip.wrap(item)
      }.toList)
      override def captionsValue: scala.Option[Captions.ReadOnly] = scala.Option(impl.captions()).map(value => Captions.wrap(value))
      override def encryptionValue: scala.Option[Encryption.ReadOnly] = scala.Option(impl.encryption()).map(value => Encryption.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CreateJobOutput): ReadOnly = new Wrapper(impl)
  }
  type CreateJobOutputs = List[CreateJobOutput]
  case class CreateJobPlaylist(name: scala.Option[primitives.Filename] = None, format: scala.Option[primitives.PlaylistFormat] = None, outputKeys: scala.Option[Iterable[primitives.Key]] = None, hlsContentProtection: scala.Option[HlsContentProtection] = None, playReadyDrm: scala.Option[PlayReadyDrm] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CreateJobPlaylist = {
      import CreateJobPlaylist.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CreateJobPlaylist.builder().optionallyWith(name.map(value => value: java.lang.String))(_.name).optionallyWith(format.map(value => value: java.lang.String))(_.format).optionallyWith(outputKeys.map(value => value.map { item => 
        item: java.lang.String
      }.asJavaCollection))(_.outputKeys).optionallyWith(hlsContentProtection.map(value => value.buildAwsValue()))(_.hlsContentProtection).optionallyWith(playReadyDrm.map(value => value.buildAwsValue()))(_.playReadyDrm).build()
    }
    def asReadOnly: CreateJobPlaylist.ReadOnly = CreateJobPlaylist.wrap(buildAwsValue())
  }
  object CreateJobPlaylist {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CreateJobPlaylist] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CreateJobPlaylist = CreateJobPlaylist(nameValue.map(value => value), formatValue.map(value => value), outputKeysValue.map(value => value), hlsContentProtectionValue.map(value => value.editable), playReadyDrmValue.map(value => value.editable))
      def nameValue: scala.Option[primitives.Filename]
      def formatValue: scala.Option[primitives.PlaylistFormat]
      def outputKeysValue: scala.Option[List[primitives.Key]]
      def hlsContentProtectionValue: scala.Option[HlsContentProtection.ReadOnly]
      def playReadyDrmValue: scala.Option[PlayReadyDrm.ReadOnly]
      def name: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Filename] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("name", nameValue)
      def format: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PlaylistFormat] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("format", formatValue)
      def outputKeys: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[primitives.Key]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("outputKeys", outputKeysValue)
      def hlsContentProtection: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, HlsContentProtection.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("hlsContentProtection", hlsContentProtectionValue)
      def playReadyDrm: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, PlayReadyDrm.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("playReadyDrm", playReadyDrmValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CreateJobPlaylist) extends CreateJobPlaylist.ReadOnly {
      override def nameValue: scala.Option[primitives.Filename] = scala.Option(impl.name()).map(value => value: primitives.Filename)
      override def formatValue: scala.Option[primitives.PlaylistFormat] = scala.Option(impl.format()).map(value => value: primitives.PlaylistFormat)
      override def outputKeysValue: scala.Option[List[primitives.Key]] = scala.Option(impl.outputKeys()).map(value => value.asScala.map { item => 
        item: primitives.Key
      }.toList)
      override def hlsContentProtectionValue: scala.Option[HlsContentProtection.ReadOnly] = scala.Option(impl.hlsContentProtection()).map(value => HlsContentProtection.wrap(value))
      override def playReadyDrmValue: scala.Option[PlayReadyDrm.ReadOnly] = scala.Option(impl.playReadyDrm()).map(value => PlayReadyDrm.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CreateJobPlaylist): ReadOnly = new Wrapper(impl)
  }
  type CreateJobPlaylists = List[CreateJobPlaylist]
  case class CreateJobRequest(pipelineId: primitives.Id, input: scala.Option[JobInput] = None, inputs: scala.Option[Iterable[JobInput]] = None, output: scala.Option[CreateJobOutput] = None, outputs: scala.Option[Iterable[CreateJobOutput]] = None, outputKeyPrefix: scala.Option[primitives.Key] = None, playlists: scala.Option[Iterable[CreateJobPlaylist]] = None, userMetadata: scala.Option[Map[String, String]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CreateJobRequest = {
      import CreateJobRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CreateJobRequest.builder().pipelineId(pipelineId: java.lang.String).optionallyWith(input.map(value => value.buildAwsValue()))(_.input).optionallyWith(inputs.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.inputs).optionallyWith(output.map(value => value.buildAwsValue()))(_.output).optionallyWith(outputs.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.outputs).optionallyWith(outputKeyPrefix.map(value => value: java.lang.String))(_.outputKeyPrefix).optionallyWith(playlists.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.playlists).optionallyWith(userMetadata.map(value => value.map({
        case (key, value) =>
          (key: java.lang.String) -> (value: java.lang.String)
      }).asJava))(_.userMetadata).build()
    }
    def asReadOnly: CreateJobRequest.ReadOnly = CreateJobRequest.wrap(buildAwsValue())
  }
  object CreateJobRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CreateJobRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CreateJobRequest = CreateJobRequest(pipelineIdValue, inputValue.map(value => value.editable), inputsValue.map(value => value.map { item => 
        item.editable
      }), outputValue.map(value => value.editable), outputsValue.map(value => value.map { item => 
        item.editable
      }), outputKeyPrefixValue.map(value => value), playlistsValue.map(value => value.map { item => 
        item.editable
      }), userMetadataValue.map(value => value))
      def pipelineIdValue: primitives.Id
      def inputValue: scala.Option[JobInput.ReadOnly]
      def inputsValue: scala.Option[List[JobInput.ReadOnly]]
      def outputValue: scala.Option[CreateJobOutput.ReadOnly]
      def outputsValue: scala.Option[List[CreateJobOutput.ReadOnly]]
      def outputKeyPrefixValue: scala.Option[primitives.Key]
      def playlistsValue: scala.Option[List[CreateJobPlaylist.ReadOnly]]
      def userMetadataValue: scala.Option[Map[String, String]]
      def pipelineId: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(pipelineIdValue)
      def input: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, JobInput.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("input", inputValue)
      def inputs: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[JobInput.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("inputs", inputsValue)
      def output: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, CreateJobOutput.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("output", outputValue)
      def outputs: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[CreateJobOutput.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("outputs", outputsValue)
      def outputKeyPrefix: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Key] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("outputKeyPrefix", outputKeyPrefixValue)
      def playlists: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[CreateJobPlaylist.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("playlists", playlistsValue)
      def userMetadata: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Map[String, String]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("userMetadata", userMetadataValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CreateJobRequest) extends CreateJobRequest.ReadOnly {
      override def pipelineIdValue: primitives.Id = impl.pipelineId(): primitives.Id
      override def inputValue: scala.Option[JobInput.ReadOnly] = scala.Option(impl.input()).map(value => JobInput.wrap(value))
      override def inputsValue: scala.Option[List[JobInput.ReadOnly]] = scala.Option(impl.inputs()).map(value => value.asScala.map { item => 
        JobInput.wrap(item)
      }.toList)
      override def outputValue: scala.Option[CreateJobOutput.ReadOnly] = scala.Option(impl.output()).map(value => CreateJobOutput.wrap(value))
      override def outputsValue: scala.Option[List[CreateJobOutput.ReadOnly]] = scala.Option(impl.outputs()).map(value => value.asScala.map { item => 
        CreateJobOutput.wrap(item)
      }.toList)
      override def outputKeyPrefixValue: scala.Option[primitives.Key] = scala.Option(impl.outputKeyPrefix()).map(value => value: primitives.Key)
      override def playlistsValue: scala.Option[List[CreateJobPlaylist.ReadOnly]] = scala.Option(impl.playlists()).map(value => value.asScala.map { item => 
        CreateJobPlaylist.wrap(item)
      }.toList)
      override def userMetadataValue: scala.Option[Map[String, String]] = scala.Option(impl.userMetadata()).map(value => value.asScala.map({
        case (key, value) =>
          (key: String) -> (value: String)
      }).toMap)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CreateJobRequest): ReadOnly = new Wrapper(impl)
  }
  case class CreateJobResponse(job: scala.Option[Job] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CreateJobResponse = {
      import CreateJobResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CreateJobResponse.builder().optionallyWith(job.map(value => value.buildAwsValue()))(_.job).build()
    }
    def asReadOnly: CreateJobResponse.ReadOnly = CreateJobResponse.wrap(buildAwsValue())
  }
  object CreateJobResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CreateJobResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CreateJobResponse = CreateJobResponse(jobValue.map(value => value.editable))
      def jobValue: scala.Option[Job.ReadOnly]
      def job: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Job.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("job", jobValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CreateJobResponse) extends CreateJobResponse.ReadOnly { override def jobValue: scala.Option[Job.ReadOnly] = scala.Option(impl.job()).map(value => Job.wrap(value)) }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CreateJobResponse): ReadOnly = new Wrapper(impl)
  }
  case class CreatePipelineRequest(name: primitives.Name, inputBucket: primitives.BucketName, outputBucket: scala.Option[primitives.BucketName] = None, role: primitives.Role, awsKmsKeyArn: scala.Option[primitives.KeyArn] = None, notifications: scala.Option[Notifications] = None, contentConfig: scala.Option[PipelineOutputConfig] = None, thumbnailConfig: scala.Option[PipelineOutputConfig] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineRequest = {
      import CreatePipelineRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineRequest.builder().name(name: java.lang.String).inputBucket(inputBucket: java.lang.String).optionallyWith(outputBucket.map(value => value: java.lang.String))(_.outputBucket).role(role: java.lang.String).optionallyWith(awsKmsKeyArn.map(value => value: java.lang.String))(_.awsKmsKeyArn).optionallyWith(notifications.map(value => value.buildAwsValue()))(_.notifications).optionallyWith(contentConfig.map(value => value.buildAwsValue()))(_.contentConfig).optionallyWith(thumbnailConfig.map(value => value.buildAwsValue()))(_.thumbnailConfig).build()
    }
    def asReadOnly: CreatePipelineRequest.ReadOnly = CreatePipelineRequest.wrap(buildAwsValue())
  }
  object CreatePipelineRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CreatePipelineRequest = CreatePipelineRequest(nameValue, inputBucketValue, outputBucketValue.map(value => value), roleValue, awsKmsKeyArnValue.map(value => value), notificationsValue.map(value => value.editable), contentConfigValue.map(value => value.editable), thumbnailConfigValue.map(value => value.editable))
      def nameValue: primitives.Name
      def inputBucketValue: primitives.BucketName
      def outputBucketValue: scala.Option[primitives.BucketName]
      def roleValue: primitives.Role
      def awsKmsKeyArnValue: scala.Option[primitives.KeyArn]
      def notificationsValue: scala.Option[Notifications.ReadOnly]
      def contentConfigValue: scala.Option[PipelineOutputConfig.ReadOnly]
      def thumbnailConfigValue: scala.Option[PipelineOutputConfig.ReadOnly]
      def name: ZIO[Any, Nothing, primitives.Name] = ZIO.succeed(nameValue)
      def inputBucket: ZIO[Any, Nothing, primitives.BucketName] = ZIO.succeed(inputBucketValue)
      def outputBucket: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.BucketName] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("outputBucket", outputBucketValue)
      def role: ZIO[Any, Nothing, primitives.Role] = ZIO.succeed(roleValue)
      def awsKmsKeyArn: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.KeyArn] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("awsKmsKeyArn", awsKmsKeyArnValue)
      def notifications: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Notifications.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("notifications", notificationsValue)
      def contentConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, PipelineOutputConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("contentConfig", contentConfigValue)
      def thumbnailConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, PipelineOutputConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("thumbnailConfig", thumbnailConfigValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineRequest) extends CreatePipelineRequest.ReadOnly {
      override def nameValue: primitives.Name = impl.name(): primitives.Name
      override def inputBucketValue: primitives.BucketName = impl.inputBucket(): primitives.BucketName
      override def outputBucketValue: scala.Option[primitives.BucketName] = scala.Option(impl.outputBucket()).map(value => value: primitives.BucketName)
      override def roleValue: primitives.Role = impl.role(): primitives.Role
      override def awsKmsKeyArnValue: scala.Option[primitives.KeyArn] = scala.Option(impl.awsKmsKeyArn()).map(value => value: primitives.KeyArn)
      override def notificationsValue: scala.Option[Notifications.ReadOnly] = scala.Option(impl.notifications()).map(value => Notifications.wrap(value))
      override def contentConfigValue: scala.Option[PipelineOutputConfig.ReadOnly] = scala.Option(impl.contentConfig()).map(value => PipelineOutputConfig.wrap(value))
      override def thumbnailConfigValue: scala.Option[PipelineOutputConfig.ReadOnly] = scala.Option(impl.thumbnailConfig()).map(value => PipelineOutputConfig.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineRequest): ReadOnly = new Wrapper(impl)
  }
  case class CreatePipelineResponse(pipeline: scala.Option[Pipeline] = None, warnings: scala.Option[Iterable[Warning]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineResponse = {
      import CreatePipelineResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineResponse.builder().optionallyWith(pipeline.map(value => value.buildAwsValue()))(_.pipeline).optionallyWith(warnings.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.warnings).build()
    }
    def asReadOnly: CreatePipelineResponse.ReadOnly = CreatePipelineResponse.wrap(buildAwsValue())
  }
  object CreatePipelineResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CreatePipelineResponse = CreatePipelineResponse(pipelineValue.map(value => value.editable), warningsValue.map(value => value.map { item => 
        item.editable
      }))
      def pipelineValue: scala.Option[Pipeline.ReadOnly]
      def warningsValue: scala.Option[List[Warning.ReadOnly]]
      def pipeline: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Pipeline.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pipeline", pipelineValue)
      def warnings: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Warning.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("warnings", warningsValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineResponse) extends CreatePipelineResponse.ReadOnly {
      override def pipelineValue: scala.Option[Pipeline.ReadOnly] = scala.Option(impl.pipeline()).map(value => Pipeline.wrap(value))
      override def warningsValue: scala.Option[List[Warning.ReadOnly]] = scala.Option(impl.warnings()).map(value => value.asScala.map { item => 
        Warning.wrap(item)
      }.toList)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CreatePipelineResponse): ReadOnly = new Wrapper(impl)
  }
  case class CreatePresetRequest(name: primitives.Name, description: scala.Option[primitives.Description] = None, container: primitives.PresetContainer, video: scala.Option[VideoParameters] = None, audio: scala.Option[AudioParameters] = None, thumbnails: scala.Option[Thumbnails] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CreatePresetRequest = {
      import CreatePresetRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CreatePresetRequest.builder().name(name: java.lang.String).optionallyWith(description.map(value => value: java.lang.String))(_.description).container(container: java.lang.String).optionallyWith(video.map(value => value.buildAwsValue()))(_.video).optionallyWith(audio.map(value => value.buildAwsValue()))(_.audio).optionallyWith(thumbnails.map(value => value.buildAwsValue()))(_.thumbnails).build()
    }
    def asReadOnly: CreatePresetRequest.ReadOnly = CreatePresetRequest.wrap(buildAwsValue())
  }
  object CreatePresetRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CreatePresetRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CreatePresetRequest = CreatePresetRequest(nameValue, descriptionValue.map(value => value), containerValue, videoValue.map(value => value.editable), audioValue.map(value => value.editable), thumbnailsValue.map(value => value.editable))
      def nameValue: primitives.Name
      def descriptionValue: scala.Option[primitives.Description]
      def containerValue: primitives.PresetContainer
      def videoValue: scala.Option[VideoParameters.ReadOnly]
      def audioValue: scala.Option[AudioParameters.ReadOnly]
      def thumbnailsValue: scala.Option[Thumbnails.ReadOnly]
      def name: ZIO[Any, Nothing, primitives.Name] = ZIO.succeed(nameValue)
      def description: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Description] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("description", descriptionValue)
      def container: ZIO[Any, Nothing, primitives.PresetContainer] = ZIO.succeed(containerValue)
      def video: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, VideoParameters.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("video", videoValue)
      def audio: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, AudioParameters.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("audio", audioValue)
      def thumbnails: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Thumbnails.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("thumbnails", thumbnailsValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CreatePresetRequest) extends CreatePresetRequest.ReadOnly {
      override def nameValue: primitives.Name = impl.name(): primitives.Name
      override def descriptionValue: scala.Option[primitives.Description] = scala.Option(impl.description()).map(value => value: primitives.Description)
      override def containerValue: primitives.PresetContainer = impl.container(): primitives.PresetContainer
      override def videoValue: scala.Option[VideoParameters.ReadOnly] = scala.Option(impl.video()).map(value => VideoParameters.wrap(value))
      override def audioValue: scala.Option[AudioParameters.ReadOnly] = scala.Option(impl.audio()).map(value => AudioParameters.wrap(value))
      override def thumbnailsValue: scala.Option[Thumbnails.ReadOnly] = scala.Option(impl.thumbnails()).map(value => Thumbnails.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CreatePresetRequest): ReadOnly = new Wrapper(impl)
  }
  case class CreatePresetResponse(preset: scala.Option[Preset] = None, warning: scala.Option[String] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.CreatePresetResponse = {
      import CreatePresetResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.CreatePresetResponse.builder().optionallyWith(preset.map(value => value.buildAwsValue()))(_.preset).optionallyWith(warning.map(value => value: java.lang.String))(_.warning).build()
    }
    def asReadOnly: CreatePresetResponse.ReadOnly = CreatePresetResponse.wrap(buildAwsValue())
  }
  object CreatePresetResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.CreatePresetResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: CreatePresetResponse = CreatePresetResponse(presetValue.map(value => value.editable), warningValue.map(value => value))
      def presetValue: scala.Option[Preset.ReadOnly]
      def warningValue: scala.Option[String]
      def preset: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Preset.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("preset", presetValue)
      def warning: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("warning", warningValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.CreatePresetResponse) extends CreatePresetResponse.ReadOnly {
      override def presetValue: scala.Option[Preset.ReadOnly] = scala.Option(impl.preset()).map(value => Preset.wrap(value))
      override def warningValue: scala.Option[String] = scala.Option(impl.warning()).map(value => value: String)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.CreatePresetResponse): ReadOnly = new Wrapper(impl)
  }
  case class DeletePipelineRequest(id: primitives.Id) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineRequest = {
      import DeletePipelineRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineRequest.builder().id(id: java.lang.String).build()
    }
    def asReadOnly: DeletePipelineRequest.ReadOnly = DeletePipelineRequest.wrap(buildAwsValue())
  }
  object DeletePipelineRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: DeletePipelineRequest = DeletePipelineRequest(idValue)
      def idValue: primitives.Id
      def id: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(idValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineRequest) extends DeletePipelineRequest.ReadOnly { override def idValue: primitives.Id = impl.id(): primitives.Id }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineRequest): ReadOnly = new Wrapper(impl)
  }
  case class DeletePipelineResponse() {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineResponse = {
      import DeletePipelineResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineResponse.builder().build()
    }
    def asReadOnly: DeletePipelineResponse.ReadOnly = DeletePipelineResponse.wrap(buildAwsValue())
  }
  object DeletePipelineResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly { def editable: DeletePipelineResponse = DeletePipelineResponse() }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineResponse) extends DeletePipelineResponse.ReadOnly
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.DeletePipelineResponse): ReadOnly = new Wrapper(impl)
  }
  case class DeletePresetRequest(id: primitives.Id) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.DeletePresetRequest = {
      import DeletePresetRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.DeletePresetRequest.builder().id(id: java.lang.String).build()
    }
    def asReadOnly: DeletePresetRequest.ReadOnly = DeletePresetRequest.wrap(buildAwsValue())
  }
  object DeletePresetRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.DeletePresetRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: DeletePresetRequest = DeletePresetRequest(idValue)
      def idValue: primitives.Id
      def id: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(idValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.DeletePresetRequest) extends DeletePresetRequest.ReadOnly { override def idValue: primitives.Id = impl.id(): primitives.Id }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.DeletePresetRequest): ReadOnly = new Wrapper(impl)
  }
  case class DeletePresetResponse() {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.DeletePresetResponse = {
      import DeletePresetResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.DeletePresetResponse.builder().build()
    }
    def asReadOnly: DeletePresetResponse.ReadOnly = DeletePresetResponse.wrap(buildAwsValue())
  }
  object DeletePresetResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.DeletePresetResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly { def editable: DeletePresetResponse = DeletePresetResponse() }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.DeletePresetResponse) extends DeletePresetResponse.ReadOnly
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.DeletePresetResponse): ReadOnly = new Wrapper(impl)
  }
  case class DetectedProperties(width: scala.Option[primitives.NullableInteger] = None, height: scala.Option[primitives.NullableInteger] = None, frameRate: scala.Option[primitives.FloatString] = None, fileSize: scala.Option[primitives.NullableLong] = None, durationMillis: scala.Option[primitives.NullableLong] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.DetectedProperties = {
      import DetectedProperties.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.DetectedProperties.builder().optionallyWith(width.map(value => value: java.lang.Integer))(_.width).optionallyWith(height.map(value => value: java.lang.Integer))(_.height).optionallyWith(frameRate.map(value => value: java.lang.String))(_.frameRate).optionallyWith(fileSize.map(value => value: java.lang.Long))(_.fileSize).optionallyWith(durationMillis.map(value => value: java.lang.Long))(_.durationMillis).build()
    }
    def asReadOnly: DetectedProperties.ReadOnly = DetectedProperties.wrap(buildAwsValue())
  }
  object DetectedProperties {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.DetectedProperties] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: DetectedProperties = DetectedProperties(widthValue.map(value => value), heightValue.map(value => value), frameRateValue.map(value => value), fileSizeValue.map(value => value), durationMillisValue.map(value => value))
      def widthValue: scala.Option[primitives.NullableInteger]
      def heightValue: scala.Option[primitives.NullableInteger]
      def frameRateValue: scala.Option[primitives.FloatString]
      def fileSizeValue: scala.Option[primitives.NullableLong]
      def durationMillisValue: scala.Option[primitives.NullableLong]
      def width: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableInteger] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("width", widthValue)
      def height: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableInteger] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("height", heightValue)
      def frameRate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.FloatString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("frameRate", frameRateValue)
      def fileSize: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableLong] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("fileSize", fileSizeValue)
      def durationMillis: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableLong] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("durationMillis", durationMillisValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.DetectedProperties) extends DetectedProperties.ReadOnly {
      override def widthValue: scala.Option[primitives.NullableInteger] = scala.Option(impl.width()).map(value => value: primitives.NullableInteger)
      override def heightValue: scala.Option[primitives.NullableInteger] = scala.Option(impl.height()).map(value => value: primitives.NullableInteger)
      override def frameRateValue: scala.Option[primitives.FloatString] = scala.Option(impl.frameRate()).map(value => value: primitives.FloatString)
      override def fileSizeValue: scala.Option[primitives.NullableLong] = scala.Option(impl.fileSize()).map(value => value: primitives.NullableLong)
      override def durationMillisValue: scala.Option[primitives.NullableLong] = scala.Option(impl.durationMillis()).map(value => value: primitives.NullableLong)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.DetectedProperties): ReadOnly = new Wrapper(impl)
  }
  case class Encryption(mode: scala.Option[primitives.EncryptionMode] = None, key: scala.Option[primitives.Base64EncodedString] = None, keyMd5: scala.Option[primitives.Base64EncodedString] = None, initializationVector: scala.Option[primitives.ZeroTo255String] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Encryption = {
      import Encryption.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Encryption.builder().optionallyWith(mode.map(value => value: java.lang.String))(_.mode).optionallyWith(key.map(value => value: java.lang.String))(_.key).optionallyWith(keyMd5.map(value => value: java.lang.String))(_.keyMd5).optionallyWith(initializationVector.map(value => value: java.lang.String))(_.initializationVector).build()
    }
    def asReadOnly: Encryption.ReadOnly = Encryption.wrap(buildAwsValue())
  }
  object Encryption {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Encryption] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Encryption = Encryption(modeValue.map(value => value), keyValue.map(value => value), keyMd5Value.map(value => value), initializationVectorValue.map(value => value))
      def modeValue: scala.Option[primitives.EncryptionMode]
      def keyValue: scala.Option[primitives.Base64EncodedString]
      def keyMd5Value: scala.Option[primitives.Base64EncodedString]
      def initializationVectorValue: scala.Option[primitives.ZeroTo255String]
      def mode: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.EncryptionMode] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("mode", modeValue)
      def key: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Base64EncodedString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("key", keyValue)
      def keyMd5: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Base64EncodedString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("keyMd5", keyMd5Value)
      def initializationVector: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.ZeroTo255String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("initializationVector", initializationVectorValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Encryption) extends Encryption.ReadOnly {
      override def modeValue: scala.Option[primitives.EncryptionMode] = scala.Option(impl.mode()).map(value => value: primitives.EncryptionMode)
      override def keyValue: scala.Option[primitives.Base64EncodedString] = scala.Option(impl.key()).map(value => value: primitives.Base64EncodedString)
      override def keyMd5Value: scala.Option[primitives.Base64EncodedString] = scala.Option(impl.keyMd5()).map(value => value: primitives.Base64EncodedString)
      override def initializationVectorValue: scala.Option[primitives.ZeroTo255String] = scala.Option(impl.initializationVector()).map(value => value: primitives.ZeroTo255String)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Encryption): ReadOnly = new Wrapper(impl)
  }
  case class HlsContentProtection(method: scala.Option[primitives.HlsContentProtectionMethod] = None, key: scala.Option[primitives.Base64EncodedString] = None, keyMd5: scala.Option[primitives.Base64EncodedString] = None, initializationVector: scala.Option[primitives.ZeroTo255String] = None, licenseAcquisitionUrl: scala.Option[primitives.ZeroTo512String] = None, keyStoragePolicy: scala.Option[primitives.KeyStoragePolicy] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.HlsContentProtection = {
      import HlsContentProtection.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.HlsContentProtection.builder().optionallyWith(method.map(value => value: java.lang.String))(_.method).optionallyWith(key.map(value => value: java.lang.String))(_.key).optionallyWith(keyMd5.map(value => value: java.lang.String))(_.keyMd5).optionallyWith(initializationVector.map(value => value: java.lang.String))(_.initializationVector).optionallyWith(licenseAcquisitionUrl.map(value => value: java.lang.String))(_.licenseAcquisitionUrl).optionallyWith(keyStoragePolicy.map(value => value: java.lang.String))(_.keyStoragePolicy).build()
    }
    def asReadOnly: HlsContentProtection.ReadOnly = HlsContentProtection.wrap(buildAwsValue())
  }
  object HlsContentProtection {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.HlsContentProtection] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: HlsContentProtection = HlsContentProtection(methodValue.map(value => value), keyValue.map(value => value), keyMd5Value.map(value => value), initializationVectorValue.map(value => value), licenseAcquisitionUrlValue.map(value => value), keyStoragePolicyValue.map(value => value))
      def methodValue: scala.Option[primitives.HlsContentProtectionMethod]
      def keyValue: scala.Option[primitives.Base64EncodedString]
      def keyMd5Value: scala.Option[primitives.Base64EncodedString]
      def initializationVectorValue: scala.Option[primitives.ZeroTo255String]
      def licenseAcquisitionUrlValue: scala.Option[primitives.ZeroTo512String]
      def keyStoragePolicyValue: scala.Option[primitives.KeyStoragePolicy]
      def method: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.HlsContentProtectionMethod] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("method", methodValue)
      def key: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Base64EncodedString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("key", keyValue)
      def keyMd5: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Base64EncodedString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("keyMd5", keyMd5Value)
      def initializationVector: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.ZeroTo255String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("initializationVector", initializationVectorValue)
      def licenseAcquisitionUrl: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.ZeroTo512String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("licenseAcquisitionUrl", licenseAcquisitionUrlValue)
      def keyStoragePolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.KeyStoragePolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("keyStoragePolicy", keyStoragePolicyValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.HlsContentProtection) extends HlsContentProtection.ReadOnly {
      override def methodValue: scala.Option[primitives.HlsContentProtectionMethod] = scala.Option(impl.method()).map(value => value: primitives.HlsContentProtectionMethod)
      override def keyValue: scala.Option[primitives.Base64EncodedString] = scala.Option(impl.key()).map(value => value: primitives.Base64EncodedString)
      override def keyMd5Value: scala.Option[primitives.Base64EncodedString] = scala.Option(impl.keyMd5()).map(value => value: primitives.Base64EncodedString)
      override def initializationVectorValue: scala.Option[primitives.ZeroTo255String] = scala.Option(impl.initializationVector()).map(value => value: primitives.ZeroTo255String)
      override def licenseAcquisitionUrlValue: scala.Option[primitives.ZeroTo512String] = scala.Option(impl.licenseAcquisitionUrl()).map(value => value: primitives.ZeroTo512String)
      override def keyStoragePolicyValue: scala.Option[primitives.KeyStoragePolicy] = scala.Option(impl.keyStoragePolicy()).map(value => value: primitives.KeyStoragePolicy)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.HlsContentProtection): ReadOnly = new Wrapper(impl)
  }
  case class InputCaptions(mergePolicy: scala.Option[primitives.CaptionMergePolicy] = None, captionSources: scala.Option[Iterable[CaptionSource]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.InputCaptions = {
      import InputCaptions.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.InputCaptions.builder().optionallyWith(mergePolicy.map(value => value: java.lang.String))(_.mergePolicy).optionallyWith(captionSources.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.captionSources).build()
    }
    def asReadOnly: InputCaptions.ReadOnly = InputCaptions.wrap(buildAwsValue())
  }
  object InputCaptions {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.InputCaptions] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: InputCaptions = InputCaptions(mergePolicyValue.map(value => value), captionSourcesValue.map(value => value.map { item => 
        item.editable
      }))
      def mergePolicyValue: scala.Option[primitives.CaptionMergePolicy]
      def captionSourcesValue: scala.Option[List[CaptionSource.ReadOnly]]
      def mergePolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.CaptionMergePolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("mergePolicy", mergePolicyValue)
      def captionSources: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[CaptionSource.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("captionSources", captionSourcesValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.InputCaptions) extends InputCaptions.ReadOnly {
      override def mergePolicyValue: scala.Option[primitives.CaptionMergePolicy] = scala.Option(impl.mergePolicy()).map(value => value: primitives.CaptionMergePolicy)
      override def captionSourcesValue: scala.Option[List[CaptionSource.ReadOnly]] = scala.Option(impl.captionSources()).map(value => value.asScala.map { item => 
        CaptionSource.wrap(item)
      }.toList)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.InputCaptions): ReadOnly = new Wrapper(impl)
  }
  case class Job(id: scala.Option[primitives.Id] = None, arn: scala.Option[String] = None, pipelineId: scala.Option[primitives.Id] = None, input: scala.Option[JobInput] = None, inputs: scala.Option[Iterable[JobInput]] = None, output: scala.Option[JobOutput] = None, outputs: scala.Option[Iterable[JobOutput]] = None, outputKeyPrefix: scala.Option[primitives.Key] = None, playlists: scala.Option[Iterable[Playlist]] = None, status: scala.Option[primitives.JobStatus] = None, userMetadata: scala.Option[Map[String, String]] = None, timing: scala.Option[Timing] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Job = {
      import Job.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Job.builder().optionallyWith(id.map(value => value: java.lang.String))(_.id).optionallyWith(arn.map(value => value: java.lang.String))(_.arn).optionallyWith(pipelineId.map(value => value: java.lang.String))(_.pipelineId).optionallyWith(input.map(value => value.buildAwsValue()))(_.input).optionallyWith(inputs.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.inputs).optionallyWith(output.map(value => value.buildAwsValue()))(_.output).optionallyWith(outputs.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.outputs).optionallyWith(outputKeyPrefix.map(value => value: java.lang.String))(_.outputKeyPrefix).optionallyWith(playlists.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.playlists).optionallyWith(status.map(value => value: java.lang.String))(_.status).optionallyWith(userMetadata.map(value => value.map({
        case (key, value) =>
          (key: java.lang.String) -> (value: java.lang.String)
      }).asJava))(_.userMetadata).optionallyWith(timing.map(value => value.buildAwsValue()))(_.timing).build()
    }
    def asReadOnly: Job.ReadOnly = Job.wrap(buildAwsValue())
  }
  object Job {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Job] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Job = Job(idValue.map(value => value), arnValue.map(value => value), pipelineIdValue.map(value => value), inputValue.map(value => value.editable), inputsValue.map(value => value.map { item => 
        item.editable
      }), outputValue.map(value => value.editable), outputsValue.map(value => value.map { item => 
        item.editable
      }), outputKeyPrefixValue.map(value => value), playlistsValue.map(value => value.map { item => 
        item.editable
      }), statusValue.map(value => value), userMetadataValue.map(value => value), timingValue.map(value => value.editable))
      def idValue: scala.Option[primitives.Id]
      def arnValue: scala.Option[String]
      def pipelineIdValue: scala.Option[primitives.Id]
      def inputValue: scala.Option[JobInput.ReadOnly]
      def inputsValue: scala.Option[List[JobInput.ReadOnly]]
      def outputValue: scala.Option[JobOutput.ReadOnly]
      def outputsValue: scala.Option[List[JobOutput.ReadOnly]]
      def outputKeyPrefixValue: scala.Option[primitives.Key]
      def playlistsValue: scala.Option[List[Playlist.ReadOnly]]
      def statusValue: scala.Option[primitives.JobStatus]
      def userMetadataValue: scala.Option[Map[String, String]]
      def timingValue: scala.Option[Timing.ReadOnly]
      def id: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("id", idValue)
      def arn: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("arn", arnValue)
      def pipelineId: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pipelineId", pipelineIdValue)
      def input: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, JobInput.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("input", inputValue)
      def inputs: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[JobInput.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("inputs", inputsValue)
      def output: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, JobOutput.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("output", outputValue)
      def outputs: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[JobOutput.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("outputs", outputsValue)
      def outputKeyPrefix: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Key] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("outputKeyPrefix", outputKeyPrefixValue)
      def playlists: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Playlist.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("playlists", playlistsValue)
      def status: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.JobStatus] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("status", statusValue)
      def userMetadata: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Map[String, String]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("userMetadata", userMetadataValue)
      def timing: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Timing.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("timing", timingValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Job) extends Job.ReadOnly {
      override def idValue: scala.Option[primitives.Id] = scala.Option(impl.id()).map(value => value: primitives.Id)
      override def arnValue: scala.Option[String] = scala.Option(impl.arn()).map(value => value: String)
      override def pipelineIdValue: scala.Option[primitives.Id] = scala.Option(impl.pipelineId()).map(value => value: primitives.Id)
      override def inputValue: scala.Option[JobInput.ReadOnly] = scala.Option(impl.input()).map(value => JobInput.wrap(value))
      override def inputsValue: scala.Option[List[JobInput.ReadOnly]] = scala.Option(impl.inputs()).map(value => value.asScala.map { item => 
        JobInput.wrap(item)
      }.toList)
      override def outputValue: scala.Option[JobOutput.ReadOnly] = scala.Option(impl.output()).map(value => JobOutput.wrap(value))
      override def outputsValue: scala.Option[List[JobOutput.ReadOnly]] = scala.Option(impl.outputs()).map(value => value.asScala.map { item => 
        JobOutput.wrap(item)
      }.toList)
      override def outputKeyPrefixValue: scala.Option[primitives.Key] = scala.Option(impl.outputKeyPrefix()).map(value => value: primitives.Key)
      override def playlistsValue: scala.Option[List[Playlist.ReadOnly]] = scala.Option(impl.playlists()).map(value => value.asScala.map { item => 
        Playlist.wrap(item)
      }.toList)
      override def statusValue: scala.Option[primitives.JobStatus] = scala.Option(impl.status()).map(value => value: primitives.JobStatus)
      override def userMetadataValue: scala.Option[Map[String, String]] = scala.Option(impl.userMetadata()).map(value => value.asScala.map({
        case (key, value) =>
          (key: String) -> (value: String)
      }).toMap)
      override def timingValue: scala.Option[Timing.ReadOnly] = scala.Option(impl.timing()).map(value => Timing.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Job): ReadOnly = new Wrapper(impl)
  }
  case class JobAlbumArt(mergePolicy: scala.Option[primitives.MergePolicy] = None, artwork: scala.Option[Iterable[Artwork]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.JobAlbumArt = {
      import JobAlbumArt.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.JobAlbumArt.builder().optionallyWith(mergePolicy.map(value => value: java.lang.String))(_.mergePolicy).optionallyWith(artwork.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.artwork).build()
    }
    def asReadOnly: JobAlbumArt.ReadOnly = JobAlbumArt.wrap(buildAwsValue())
  }
  object JobAlbumArt {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.JobAlbumArt] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: JobAlbumArt = JobAlbumArt(mergePolicyValue.map(value => value), artworkValue.map(value => value.map { item => 
        item.editable
      }))
      def mergePolicyValue: scala.Option[primitives.MergePolicy]
      def artworkValue: scala.Option[List[Artwork.ReadOnly]]
      def mergePolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.MergePolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("mergePolicy", mergePolicyValue)
      def artwork: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Artwork.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("artwork", artworkValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.JobAlbumArt) extends JobAlbumArt.ReadOnly {
      override def mergePolicyValue: scala.Option[primitives.MergePolicy] = scala.Option(impl.mergePolicy()).map(value => value: primitives.MergePolicy)
      override def artworkValue: scala.Option[List[Artwork.ReadOnly]] = scala.Option(impl.artwork()).map(value => value.asScala.map { item => 
        Artwork.wrap(item)
      }.toList)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.JobAlbumArt): ReadOnly = new Wrapper(impl)
  }
  case class JobInput(key: scala.Option[primitives.LongKey] = None, frameRate: scala.Option[primitives.FrameRate] = None, resolution: scala.Option[primitives.Resolution] = None, aspectRatio: scala.Option[primitives.AspectRatio] = None, interlaced: scala.Option[primitives.Interlaced] = None, container: scala.Option[primitives.JobContainer] = None, encryption: scala.Option[Encryption] = None, timeSpan: scala.Option[TimeSpan] = None, inputCaptions: scala.Option[InputCaptions] = None, detectedProperties: scala.Option[DetectedProperties] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.JobInput = {
      import JobInput.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.JobInput.builder().optionallyWith(key.map(value => value: java.lang.String))(_.key).optionallyWith(frameRate.map(value => value: java.lang.String))(_.frameRate).optionallyWith(resolution.map(value => value: java.lang.String))(_.resolution).optionallyWith(aspectRatio.map(value => value: java.lang.String))(_.aspectRatio).optionallyWith(interlaced.map(value => value: java.lang.String))(_.interlaced).optionallyWith(container.map(value => value: java.lang.String))(_.container).optionallyWith(encryption.map(value => value.buildAwsValue()))(_.encryption).optionallyWith(timeSpan.map(value => value.buildAwsValue()))(_.timeSpan).optionallyWith(inputCaptions.map(value => value.buildAwsValue()))(_.inputCaptions).optionallyWith(detectedProperties.map(value => value.buildAwsValue()))(_.detectedProperties).build()
    }
    def asReadOnly: JobInput.ReadOnly = JobInput.wrap(buildAwsValue())
  }
  object JobInput {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.JobInput] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: JobInput = JobInput(keyValue.map(value => value), frameRateValue.map(value => value), resolutionValue.map(value => value), aspectRatioValue.map(value => value), interlacedValue.map(value => value), containerValue.map(value => value), encryptionValue.map(value => value.editable), timeSpanValue.map(value => value.editable), inputCaptionsValue.map(value => value.editable), detectedPropertiesValue.map(value => value.editable))
      def keyValue: scala.Option[primitives.LongKey]
      def frameRateValue: scala.Option[primitives.FrameRate]
      def resolutionValue: scala.Option[primitives.Resolution]
      def aspectRatioValue: scala.Option[primitives.AspectRatio]
      def interlacedValue: scala.Option[primitives.Interlaced]
      def containerValue: scala.Option[primitives.JobContainer]
      def encryptionValue: scala.Option[Encryption.ReadOnly]
      def timeSpanValue: scala.Option[TimeSpan.ReadOnly]
      def inputCaptionsValue: scala.Option[InputCaptions.ReadOnly]
      def detectedPropertiesValue: scala.Option[DetectedProperties.ReadOnly]
      def key: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.LongKey] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("key", keyValue)
      def frameRate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.FrameRate] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("frameRate", frameRateValue)
      def resolution: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Resolution] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("resolution", resolutionValue)
      def aspectRatio: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AspectRatio] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("aspectRatio", aspectRatioValue)
      def interlaced: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Interlaced] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("interlaced", interlacedValue)
      def container: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.JobContainer] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("container", containerValue)
      def encryption: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Encryption.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("encryption", encryptionValue)
      def timeSpan: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, TimeSpan.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("timeSpan", timeSpanValue)
      def inputCaptions: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, InputCaptions.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("inputCaptions", inputCaptionsValue)
      def detectedProperties: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, DetectedProperties.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("detectedProperties", detectedPropertiesValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.JobInput) extends JobInput.ReadOnly {
      override def keyValue: scala.Option[primitives.LongKey] = scala.Option(impl.key()).map(value => value: primitives.LongKey)
      override def frameRateValue: scala.Option[primitives.FrameRate] = scala.Option(impl.frameRate()).map(value => value: primitives.FrameRate)
      override def resolutionValue: scala.Option[primitives.Resolution] = scala.Option(impl.resolution()).map(value => value: primitives.Resolution)
      override def aspectRatioValue: scala.Option[primitives.AspectRatio] = scala.Option(impl.aspectRatio()).map(value => value: primitives.AspectRatio)
      override def interlacedValue: scala.Option[primitives.Interlaced] = scala.Option(impl.interlaced()).map(value => value: primitives.Interlaced)
      override def containerValue: scala.Option[primitives.JobContainer] = scala.Option(impl.container()).map(value => value: primitives.JobContainer)
      override def encryptionValue: scala.Option[Encryption.ReadOnly] = scala.Option(impl.encryption()).map(value => Encryption.wrap(value))
      override def timeSpanValue: scala.Option[TimeSpan.ReadOnly] = scala.Option(impl.timeSpan()).map(value => TimeSpan.wrap(value))
      override def inputCaptionsValue: scala.Option[InputCaptions.ReadOnly] = scala.Option(impl.inputCaptions()).map(value => InputCaptions.wrap(value))
      override def detectedPropertiesValue: scala.Option[DetectedProperties.ReadOnly] = scala.Option(impl.detectedProperties()).map(value => DetectedProperties.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.JobInput): ReadOnly = new Wrapper(impl)
  }
  type JobInputs = List[JobInput]
  case class JobOutput(id: scala.Option[String] = None, key: scala.Option[primitives.Key] = None, thumbnailPattern: scala.Option[primitives.ThumbnailPattern] = None, thumbnailEncryption: scala.Option[Encryption] = None, rotate: scala.Option[primitives.Rotate] = None, presetId: scala.Option[primitives.Id] = None, segmentDuration: scala.Option[primitives.FloatString] = None, status: scala.Option[primitives.JobStatus] = None, statusDetail: scala.Option[primitives.Description] = None, duration: scala.Option[primitives.NullableLong] = None, width: scala.Option[primitives.NullableInteger] = None, height: scala.Option[primitives.NullableInteger] = None, frameRate: scala.Option[primitives.FloatString] = None, fileSize: scala.Option[primitives.NullableLong] = None, durationMillis: scala.Option[primitives.NullableLong] = None, watermarks: scala.Option[Iterable[JobWatermark]] = None, albumArt: scala.Option[JobAlbumArt] = None, composition: scala.Option[Iterable[Clip]] = None, captions: scala.Option[Captions] = None, encryption: scala.Option[Encryption] = None, appliedColorSpaceConversion: scala.Option[String] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.JobOutput = {
      import JobOutput.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.JobOutput.builder().optionallyWith(id.map(value => value: java.lang.String))(_.id).optionallyWith(key.map(value => value: java.lang.String))(_.key).optionallyWith(thumbnailPattern.map(value => value: java.lang.String))(_.thumbnailPattern).optionallyWith(thumbnailEncryption.map(value => value.buildAwsValue()))(_.thumbnailEncryption).optionallyWith(rotate.map(value => value: java.lang.String))(_.rotate).optionallyWith(presetId.map(value => value: java.lang.String))(_.presetId).optionallyWith(segmentDuration.map(value => value: java.lang.String))(_.segmentDuration).optionallyWith(status.map(value => value: java.lang.String))(_.status).optionallyWith(statusDetail.map(value => value: java.lang.String))(_.statusDetail).optionallyWith(duration.map(value => value: java.lang.Long))(_.duration).optionallyWith(width.map(value => value: java.lang.Integer))(_.width).optionallyWith(height.map(value => value: java.lang.Integer))(_.height).optionallyWith(frameRate.map(value => value: java.lang.String))(_.frameRate).optionallyWith(fileSize.map(value => value: java.lang.Long))(_.fileSize).optionallyWith(durationMillis.map(value => value: java.lang.Long))(_.durationMillis).optionallyWith(watermarks.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.watermarks).optionallyWith(albumArt.map(value => value.buildAwsValue()))(_.albumArt).optionallyWith(composition.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.composition).optionallyWith(captions.map(value => value.buildAwsValue()))(_.captions).optionallyWith(encryption.map(value => value.buildAwsValue()))(_.encryption).optionallyWith(appliedColorSpaceConversion.map(value => value: java.lang.String))(_.appliedColorSpaceConversion).build()
    }
    def asReadOnly: JobOutput.ReadOnly = JobOutput.wrap(buildAwsValue())
  }
  object JobOutput {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.JobOutput] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: JobOutput = JobOutput(idValue.map(value => value), keyValue.map(value => value), thumbnailPatternValue.map(value => value), thumbnailEncryptionValue.map(value => value.editable), rotateValue.map(value => value), presetIdValue.map(value => value), segmentDurationValue.map(value => value), statusValue.map(value => value), statusDetailValue.map(value => value), durationValue.map(value => value), widthValue.map(value => value), heightValue.map(value => value), frameRateValue.map(value => value), fileSizeValue.map(value => value), durationMillisValue.map(value => value), watermarksValue.map(value => value.map { item => 
        item.editable
      }), albumArtValue.map(value => value.editable), compositionValue.map(value => value.map { item => 
        item.editable
      }), captionsValue.map(value => value.editable), encryptionValue.map(value => value.editable), appliedColorSpaceConversionValue.map(value => value))
      def idValue: scala.Option[String]
      def keyValue: scala.Option[primitives.Key]
      def thumbnailPatternValue: scala.Option[primitives.ThumbnailPattern]
      def thumbnailEncryptionValue: scala.Option[Encryption.ReadOnly]
      def rotateValue: scala.Option[primitives.Rotate]
      def presetIdValue: scala.Option[primitives.Id]
      def segmentDurationValue: scala.Option[primitives.FloatString]
      def statusValue: scala.Option[primitives.JobStatus]
      def statusDetailValue: scala.Option[primitives.Description]
      def durationValue: scala.Option[primitives.NullableLong]
      def widthValue: scala.Option[primitives.NullableInteger]
      def heightValue: scala.Option[primitives.NullableInteger]
      def frameRateValue: scala.Option[primitives.FloatString]
      def fileSizeValue: scala.Option[primitives.NullableLong]
      def durationMillisValue: scala.Option[primitives.NullableLong]
      def watermarksValue: scala.Option[List[JobWatermark.ReadOnly]]
      def albumArtValue: scala.Option[JobAlbumArt.ReadOnly]
      def compositionValue: scala.Option[List[Clip.ReadOnly]]
      def captionsValue: scala.Option[Captions.ReadOnly]
      def encryptionValue: scala.Option[Encryption.ReadOnly]
      def appliedColorSpaceConversionValue: scala.Option[String]
      def id: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("id", idValue)
      def key: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Key] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("key", keyValue)
      def thumbnailPattern: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.ThumbnailPattern] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("thumbnailPattern", thumbnailPatternValue)
      def thumbnailEncryption: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Encryption.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("thumbnailEncryption", thumbnailEncryptionValue)
      def rotate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Rotate] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("rotate", rotateValue)
      def presetId: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("presetId", presetIdValue)
      def segmentDuration: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.FloatString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("segmentDuration", segmentDurationValue)
      def status: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.JobStatus] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("status", statusValue)
      def statusDetail: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Description] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("statusDetail", statusDetailValue)
      def duration: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableLong] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("duration", durationValue)
      def width: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableInteger] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("width", widthValue)
      def height: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableInteger] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("height", heightValue)
      def frameRate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.FloatString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("frameRate", frameRateValue)
      def fileSize: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableLong] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("fileSize", fileSizeValue)
      def durationMillis: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableLong] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("durationMillis", durationMillisValue)
      def watermarks: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[JobWatermark.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("watermarks", watermarksValue)
      def albumArt: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, JobAlbumArt.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("albumArt", albumArtValue)
      def composition: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Clip.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("composition", compositionValue)
      def captions: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Captions.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("captions", captionsValue)
      def encryption: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Encryption.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("encryption", encryptionValue)
      def appliedColorSpaceConversion: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("appliedColorSpaceConversion", appliedColorSpaceConversionValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.JobOutput) extends JobOutput.ReadOnly {
      override def idValue: scala.Option[String] = scala.Option(impl.id()).map(value => value: String)
      override def keyValue: scala.Option[primitives.Key] = scala.Option(impl.key()).map(value => value: primitives.Key)
      override def thumbnailPatternValue: scala.Option[primitives.ThumbnailPattern] = scala.Option(impl.thumbnailPattern()).map(value => value: primitives.ThumbnailPattern)
      override def thumbnailEncryptionValue: scala.Option[Encryption.ReadOnly] = scala.Option(impl.thumbnailEncryption()).map(value => Encryption.wrap(value))
      override def rotateValue: scala.Option[primitives.Rotate] = scala.Option(impl.rotate()).map(value => value: primitives.Rotate)
      override def presetIdValue: scala.Option[primitives.Id] = scala.Option(impl.presetId()).map(value => value: primitives.Id)
      override def segmentDurationValue: scala.Option[primitives.FloatString] = scala.Option(impl.segmentDuration()).map(value => value: primitives.FloatString)
      override def statusValue: scala.Option[primitives.JobStatus] = scala.Option(impl.status()).map(value => value: primitives.JobStatus)
      override def statusDetailValue: scala.Option[primitives.Description] = scala.Option(impl.statusDetail()).map(value => value: primitives.Description)
      override def durationValue: scala.Option[primitives.NullableLong] = scala.Option(impl.duration()).map(value => value: primitives.NullableLong)
      override def widthValue: scala.Option[primitives.NullableInteger] = scala.Option(impl.width()).map(value => value: primitives.NullableInteger)
      override def heightValue: scala.Option[primitives.NullableInteger] = scala.Option(impl.height()).map(value => value: primitives.NullableInteger)
      override def frameRateValue: scala.Option[primitives.FloatString] = scala.Option(impl.frameRate()).map(value => value: primitives.FloatString)
      override def fileSizeValue: scala.Option[primitives.NullableLong] = scala.Option(impl.fileSize()).map(value => value: primitives.NullableLong)
      override def durationMillisValue: scala.Option[primitives.NullableLong] = scala.Option(impl.durationMillis()).map(value => value: primitives.NullableLong)
      override def watermarksValue: scala.Option[List[JobWatermark.ReadOnly]] = scala.Option(impl.watermarks()).map(value => value.asScala.map { item => 
        JobWatermark.wrap(item)
      }.toList)
      override def albumArtValue: scala.Option[JobAlbumArt.ReadOnly] = scala.Option(impl.albumArt()).map(value => JobAlbumArt.wrap(value))
      override def compositionValue: scala.Option[List[Clip.ReadOnly]] = scala.Option(impl.composition()).map(value => value.asScala.map { item => 
        Clip.wrap(item)
      }.toList)
      override def captionsValue: scala.Option[Captions.ReadOnly] = scala.Option(impl.captions()).map(value => Captions.wrap(value))
      override def encryptionValue: scala.Option[Encryption.ReadOnly] = scala.Option(impl.encryption()).map(value => Encryption.wrap(value))
      override def appliedColorSpaceConversionValue: scala.Option[String] = scala.Option(impl.appliedColorSpaceConversion()).map(value => value: String)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.JobOutput): ReadOnly = new Wrapper(impl)
  }
  type JobOutputs = List[JobOutput]
  case class JobWatermark(presetWatermarkId: scala.Option[primitives.PresetWatermarkId] = None, inputKey: scala.Option[primitives.WatermarkKey] = None, encryption: scala.Option[Encryption] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.JobWatermark = {
      import JobWatermark.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.JobWatermark.builder().optionallyWith(presetWatermarkId.map(value => value: java.lang.String))(_.presetWatermarkId).optionallyWith(inputKey.map(value => value: java.lang.String))(_.inputKey).optionallyWith(encryption.map(value => value.buildAwsValue()))(_.encryption).build()
    }
    def asReadOnly: JobWatermark.ReadOnly = JobWatermark.wrap(buildAwsValue())
  }
  object JobWatermark {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.JobWatermark] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: JobWatermark = JobWatermark(presetWatermarkIdValue.map(value => value), inputKeyValue.map(value => value), encryptionValue.map(value => value.editable))
      def presetWatermarkIdValue: scala.Option[primitives.PresetWatermarkId]
      def inputKeyValue: scala.Option[primitives.WatermarkKey]
      def encryptionValue: scala.Option[Encryption.ReadOnly]
      def presetWatermarkId: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PresetWatermarkId] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("presetWatermarkId", presetWatermarkIdValue)
      def inputKey: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.WatermarkKey] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("inputKey", inputKeyValue)
      def encryption: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Encryption.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("encryption", encryptionValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.JobWatermark) extends JobWatermark.ReadOnly {
      override def presetWatermarkIdValue: scala.Option[primitives.PresetWatermarkId] = scala.Option(impl.presetWatermarkId()).map(value => value: primitives.PresetWatermarkId)
      override def inputKeyValue: scala.Option[primitives.WatermarkKey] = scala.Option(impl.inputKey()).map(value => value: primitives.WatermarkKey)
      override def encryptionValue: scala.Option[Encryption.ReadOnly] = scala.Option(impl.encryption()).map(value => Encryption.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.JobWatermark): ReadOnly = new Wrapper(impl)
  }
  type JobWatermarks = List[JobWatermark]
  type Jobs = List[Job]
  case class ListJobsByPipelineRequest(pipelineId: primitives.Id, ascending: scala.Option[primitives.Ascending] = None, pageToken: scala.Option[primitives.Id] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineRequest = {
      import ListJobsByPipelineRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineRequest.builder().pipelineId(pipelineId: java.lang.String).optionallyWith(ascending.map(value => value: java.lang.String))(_.ascending).optionallyWith(pageToken.map(value => value: java.lang.String))(_.pageToken).build()
    }
    def asReadOnly: ListJobsByPipelineRequest.ReadOnly = ListJobsByPipelineRequest.wrap(buildAwsValue())
  }
  object ListJobsByPipelineRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ListJobsByPipelineRequest = ListJobsByPipelineRequest(pipelineIdValue, ascendingValue.map(value => value), pageTokenValue.map(value => value))
      def pipelineIdValue: primitives.Id
      def ascendingValue: scala.Option[primitives.Ascending]
      def pageTokenValue: scala.Option[primitives.Id]
      def pipelineId: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(pipelineIdValue)
      def ascending: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Ascending] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("ascending", ascendingValue)
      def pageToken: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pageToken", pageTokenValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineRequest) extends ListJobsByPipelineRequest.ReadOnly {
      override def pipelineIdValue: primitives.Id = impl.pipelineId(): primitives.Id
      override def ascendingValue: scala.Option[primitives.Ascending] = scala.Option(impl.ascending()).map(value => value: primitives.Ascending)
      override def pageTokenValue: scala.Option[primitives.Id] = scala.Option(impl.pageToken()).map(value => value: primitives.Id)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineRequest): ReadOnly = new Wrapper(impl)
  }
  case class ListJobsByPipelineResponse(jobs: scala.Option[Iterable[Job]] = None, nextPageToken: scala.Option[primitives.Id] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineResponse = {
      import ListJobsByPipelineResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineResponse.builder().optionallyWith(jobs.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.jobs).optionallyWith(nextPageToken.map(value => value: java.lang.String))(_.nextPageToken).build()
    }
    def asReadOnly: ListJobsByPipelineResponse.ReadOnly = ListJobsByPipelineResponse.wrap(buildAwsValue())
  }
  object ListJobsByPipelineResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ListJobsByPipelineResponse = ListJobsByPipelineResponse(jobsValue.map(value => value.map { item => 
        item.editable
      }), nextPageTokenValue.map(value => value))
      def jobsValue: scala.Option[List[Job.ReadOnly]]
      def nextPageTokenValue: scala.Option[primitives.Id]
      def jobs: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Job.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("jobs", jobsValue)
      def nextPageToken: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("nextPageToken", nextPageTokenValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineResponse) extends ListJobsByPipelineResponse.ReadOnly {
      override def jobsValue: scala.Option[List[Job.ReadOnly]] = scala.Option(impl.jobs()).map(value => value.asScala.map { item => 
        Job.wrap(item)
      }.toList)
      override def nextPageTokenValue: scala.Option[primitives.Id] = scala.Option(impl.nextPageToken()).map(value => value: primitives.Id)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ListJobsByPipelineResponse): ReadOnly = new Wrapper(impl)
  }
  case class ListJobsByStatusRequest(status: primitives.JobStatus, ascending: scala.Option[primitives.Ascending] = None, pageToken: scala.Option[primitives.Id] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusRequest = {
      import ListJobsByStatusRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusRequest.builder().status(status: java.lang.String).optionallyWith(ascending.map(value => value: java.lang.String))(_.ascending).optionallyWith(pageToken.map(value => value: java.lang.String))(_.pageToken).build()
    }
    def asReadOnly: ListJobsByStatusRequest.ReadOnly = ListJobsByStatusRequest.wrap(buildAwsValue())
  }
  object ListJobsByStatusRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ListJobsByStatusRequest = ListJobsByStatusRequest(statusValue, ascendingValue.map(value => value), pageTokenValue.map(value => value))
      def statusValue: primitives.JobStatus
      def ascendingValue: scala.Option[primitives.Ascending]
      def pageTokenValue: scala.Option[primitives.Id]
      def status: ZIO[Any, Nothing, primitives.JobStatus] = ZIO.succeed(statusValue)
      def ascending: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Ascending] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("ascending", ascendingValue)
      def pageToken: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pageToken", pageTokenValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusRequest) extends ListJobsByStatusRequest.ReadOnly {
      override def statusValue: primitives.JobStatus = impl.status(): primitives.JobStatus
      override def ascendingValue: scala.Option[primitives.Ascending] = scala.Option(impl.ascending()).map(value => value: primitives.Ascending)
      override def pageTokenValue: scala.Option[primitives.Id] = scala.Option(impl.pageToken()).map(value => value: primitives.Id)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusRequest): ReadOnly = new Wrapper(impl)
  }
  case class ListJobsByStatusResponse(jobs: scala.Option[Iterable[Job]] = None, nextPageToken: scala.Option[primitives.Id] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusResponse = {
      import ListJobsByStatusResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusResponse.builder().optionallyWith(jobs.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.jobs).optionallyWith(nextPageToken.map(value => value: java.lang.String))(_.nextPageToken).build()
    }
    def asReadOnly: ListJobsByStatusResponse.ReadOnly = ListJobsByStatusResponse.wrap(buildAwsValue())
  }
  object ListJobsByStatusResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ListJobsByStatusResponse = ListJobsByStatusResponse(jobsValue.map(value => value.map { item => 
        item.editable
      }), nextPageTokenValue.map(value => value))
      def jobsValue: scala.Option[List[Job.ReadOnly]]
      def nextPageTokenValue: scala.Option[primitives.Id]
      def jobs: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Job.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("jobs", jobsValue)
      def nextPageToken: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("nextPageToken", nextPageTokenValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusResponse) extends ListJobsByStatusResponse.ReadOnly {
      override def jobsValue: scala.Option[List[Job.ReadOnly]] = scala.Option(impl.jobs()).map(value => value.asScala.map { item => 
        Job.wrap(item)
      }.toList)
      override def nextPageTokenValue: scala.Option[primitives.Id] = scala.Option(impl.nextPageToken()).map(value => value: primitives.Id)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ListJobsByStatusResponse): ReadOnly = new Wrapper(impl)
  }
  case class ListPipelinesRequest(ascending: scala.Option[primitives.Ascending] = None, pageToken: scala.Option[primitives.Id] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesRequest = {
      import ListPipelinesRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesRequest.builder().optionallyWith(ascending.map(value => value: java.lang.String))(_.ascending).optionallyWith(pageToken.map(value => value: java.lang.String))(_.pageToken).build()
    }
    def asReadOnly: ListPipelinesRequest.ReadOnly = ListPipelinesRequest.wrap(buildAwsValue())
  }
  object ListPipelinesRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ListPipelinesRequest = ListPipelinesRequest(ascendingValue.map(value => value), pageTokenValue.map(value => value))
      def ascendingValue: scala.Option[primitives.Ascending]
      def pageTokenValue: scala.Option[primitives.Id]
      def ascending: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Ascending] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("ascending", ascendingValue)
      def pageToken: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pageToken", pageTokenValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesRequest) extends ListPipelinesRequest.ReadOnly {
      override def ascendingValue: scala.Option[primitives.Ascending] = scala.Option(impl.ascending()).map(value => value: primitives.Ascending)
      override def pageTokenValue: scala.Option[primitives.Id] = scala.Option(impl.pageToken()).map(value => value: primitives.Id)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesRequest): ReadOnly = new Wrapper(impl)
  }
  case class ListPipelinesResponse(pipelines: scala.Option[Iterable[Pipeline]] = None, nextPageToken: scala.Option[primitives.Id] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesResponse = {
      import ListPipelinesResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesResponse.builder().optionallyWith(pipelines.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.pipelines).optionallyWith(nextPageToken.map(value => value: java.lang.String))(_.nextPageToken).build()
    }
    def asReadOnly: ListPipelinesResponse.ReadOnly = ListPipelinesResponse.wrap(buildAwsValue())
  }
  object ListPipelinesResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ListPipelinesResponse = ListPipelinesResponse(pipelinesValue.map(value => value.map { item => 
        item.editable
      }), nextPageTokenValue.map(value => value))
      def pipelinesValue: scala.Option[List[Pipeline.ReadOnly]]
      def nextPageTokenValue: scala.Option[primitives.Id]
      def pipelines: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Pipeline.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pipelines", pipelinesValue)
      def nextPageToken: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("nextPageToken", nextPageTokenValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesResponse) extends ListPipelinesResponse.ReadOnly {
      override def pipelinesValue: scala.Option[List[Pipeline.ReadOnly]] = scala.Option(impl.pipelines()).map(value => value.asScala.map { item => 
        Pipeline.wrap(item)
      }.toList)
      override def nextPageTokenValue: scala.Option[primitives.Id] = scala.Option(impl.nextPageToken()).map(value => value: primitives.Id)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ListPipelinesResponse): ReadOnly = new Wrapper(impl)
  }
  case class ListPresetsRequest(ascending: scala.Option[primitives.Ascending] = None, pageToken: scala.Option[primitives.Id] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ListPresetsRequest = {
      import ListPresetsRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ListPresetsRequest.builder().optionallyWith(ascending.map(value => value: java.lang.String))(_.ascending).optionallyWith(pageToken.map(value => value: java.lang.String))(_.pageToken).build()
    }
    def asReadOnly: ListPresetsRequest.ReadOnly = ListPresetsRequest.wrap(buildAwsValue())
  }
  object ListPresetsRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ListPresetsRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ListPresetsRequest = ListPresetsRequest(ascendingValue.map(value => value), pageTokenValue.map(value => value))
      def ascendingValue: scala.Option[primitives.Ascending]
      def pageTokenValue: scala.Option[primitives.Id]
      def ascending: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Ascending] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("ascending", ascendingValue)
      def pageToken: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pageToken", pageTokenValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ListPresetsRequest) extends ListPresetsRequest.ReadOnly {
      override def ascendingValue: scala.Option[primitives.Ascending] = scala.Option(impl.ascending()).map(value => value: primitives.Ascending)
      override def pageTokenValue: scala.Option[primitives.Id] = scala.Option(impl.pageToken()).map(value => value: primitives.Id)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ListPresetsRequest): ReadOnly = new Wrapper(impl)
  }
  case class ListPresetsResponse(presets: scala.Option[Iterable[Preset]] = None, nextPageToken: scala.Option[primitives.Id] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ListPresetsResponse = {
      import ListPresetsResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ListPresetsResponse.builder().optionallyWith(presets.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.presets).optionallyWith(nextPageToken.map(value => value: java.lang.String))(_.nextPageToken).build()
    }
    def asReadOnly: ListPresetsResponse.ReadOnly = ListPresetsResponse.wrap(buildAwsValue())
  }
  object ListPresetsResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ListPresetsResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ListPresetsResponse = ListPresetsResponse(presetsValue.map(value => value.map { item => 
        item.editable
      }), nextPageTokenValue.map(value => value))
      def presetsValue: scala.Option[List[Preset.ReadOnly]]
      def nextPageTokenValue: scala.Option[primitives.Id]
      def presets: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Preset.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("presets", presetsValue)
      def nextPageToken: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("nextPageToken", nextPageTokenValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ListPresetsResponse) extends ListPresetsResponse.ReadOnly {
      override def presetsValue: scala.Option[List[Preset.ReadOnly]] = scala.Option(impl.presets()).map(value => value.asScala.map { item => 
        Preset.wrap(item)
      }.toList)
      override def nextPageTokenValue: scala.Option[primitives.Id] = scala.Option(impl.nextPageToken()).map(value => value: primitives.Id)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ListPresetsResponse): ReadOnly = new Wrapper(impl)
  }
  case class Notifications(progressing: scala.Option[primitives.SnsTopic] = None, completed: scala.Option[primitives.SnsTopic] = None, warning: scala.Option[primitives.SnsTopic] = None, error: scala.Option[primitives.SnsTopic] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Notifications = {
      import Notifications.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Notifications.builder().optionallyWith(progressing.map(value => value: java.lang.String))(_.progressing).optionallyWith(completed.map(value => value: java.lang.String))(_.completed).optionallyWith(warning.map(value => value: java.lang.String))(_.warning).optionallyWith(error.map(value => value: java.lang.String))(_.error).build()
    }
    def asReadOnly: Notifications.ReadOnly = Notifications.wrap(buildAwsValue())
  }
  object Notifications {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Notifications] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Notifications = Notifications(progressingValue.map(value => value), completedValue.map(value => value), warningValue.map(value => value), errorValue.map(value => value))
      def progressingValue: scala.Option[primitives.SnsTopic]
      def completedValue: scala.Option[primitives.SnsTopic]
      def warningValue: scala.Option[primitives.SnsTopic]
      def errorValue: scala.Option[primitives.SnsTopic]
      def progressing: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.SnsTopic] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("progressing", progressingValue)
      def completed: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.SnsTopic] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("completed", completedValue)
      def warning: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.SnsTopic] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("warning", warningValue)
      def error: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.SnsTopic] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("error", errorValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Notifications) extends Notifications.ReadOnly {
      override def progressingValue: scala.Option[primitives.SnsTopic] = scala.Option(impl.progressing()).map(value => value: primitives.SnsTopic)
      override def completedValue: scala.Option[primitives.SnsTopic] = scala.Option(impl.completed()).map(value => value: primitives.SnsTopic)
      override def warningValue: scala.Option[primitives.SnsTopic] = scala.Option(impl.warning()).map(value => value: primitives.SnsTopic)
      override def errorValue: scala.Option[primitives.SnsTopic] = scala.Option(impl.error()).map(value => value: primitives.SnsTopic)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Notifications): ReadOnly = new Wrapper(impl)
  }
  type OutputKeys = List[primitives.Key]
  case class Permission(granteeType: scala.Option[primitives.GranteeType] = None, grantee: scala.Option[primitives.Grantee] = None, access: scala.Option[Iterable[primitives.AccessControl]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Permission = {
      import Permission.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Permission.builder().optionallyWith(granteeType.map(value => value: java.lang.String))(_.granteeType).optionallyWith(grantee.map(value => value: java.lang.String))(_.grantee).optionallyWith(access.map(value => value.map { item => 
        item: java.lang.String
      }.asJavaCollection))(_.access).build()
    }
    def asReadOnly: Permission.ReadOnly = Permission.wrap(buildAwsValue())
  }
  object Permission {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Permission] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Permission = Permission(granteeTypeValue.map(value => value), granteeValue.map(value => value), accessValue.map(value => value))
      def granteeTypeValue: scala.Option[primitives.GranteeType]
      def granteeValue: scala.Option[primitives.Grantee]
      def accessValue: scala.Option[List[primitives.AccessControl]]
      def granteeType: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.GranteeType] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("granteeType", granteeTypeValue)
      def grantee: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Grantee] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("grantee", granteeValue)
      def access: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[primitives.AccessControl]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("access", accessValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Permission) extends Permission.ReadOnly {
      override def granteeTypeValue: scala.Option[primitives.GranteeType] = scala.Option(impl.granteeType()).map(value => value: primitives.GranteeType)
      override def granteeValue: scala.Option[primitives.Grantee] = scala.Option(impl.grantee()).map(value => value: primitives.Grantee)
      override def accessValue: scala.Option[List[primitives.AccessControl]] = scala.Option(impl.access()).map(value => value.asScala.map { item => 
        item: primitives.AccessControl
      }.toList)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Permission): ReadOnly = new Wrapper(impl)
  }
  type Permissions = List[Permission]
  case class Pipeline(id: scala.Option[primitives.Id] = None, arn: scala.Option[String] = None, name: scala.Option[primitives.Name] = None, status: scala.Option[primitives.PipelineStatus] = None, inputBucket: scala.Option[primitives.BucketName] = None, outputBucket: scala.Option[primitives.BucketName] = None, role: scala.Option[primitives.Role] = None, awsKmsKeyArn: scala.Option[primitives.KeyArn] = None, notifications: scala.Option[Notifications] = None, contentConfig: scala.Option[PipelineOutputConfig] = None, thumbnailConfig: scala.Option[PipelineOutputConfig] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Pipeline = {
      import Pipeline.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Pipeline.builder().optionallyWith(id.map(value => value: java.lang.String))(_.id).optionallyWith(arn.map(value => value: java.lang.String))(_.arn).optionallyWith(name.map(value => value: java.lang.String))(_.name).optionallyWith(status.map(value => value: java.lang.String))(_.status).optionallyWith(inputBucket.map(value => value: java.lang.String))(_.inputBucket).optionallyWith(outputBucket.map(value => value: java.lang.String))(_.outputBucket).optionallyWith(role.map(value => value: java.lang.String))(_.role).optionallyWith(awsKmsKeyArn.map(value => value: java.lang.String))(_.awsKmsKeyArn).optionallyWith(notifications.map(value => value.buildAwsValue()))(_.notifications).optionallyWith(contentConfig.map(value => value.buildAwsValue()))(_.contentConfig).optionallyWith(thumbnailConfig.map(value => value.buildAwsValue()))(_.thumbnailConfig).build()
    }
    def asReadOnly: Pipeline.ReadOnly = Pipeline.wrap(buildAwsValue())
  }
  object Pipeline {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Pipeline] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Pipeline = Pipeline(idValue.map(value => value), arnValue.map(value => value), nameValue.map(value => value), statusValue.map(value => value), inputBucketValue.map(value => value), outputBucketValue.map(value => value), roleValue.map(value => value), awsKmsKeyArnValue.map(value => value), notificationsValue.map(value => value.editable), contentConfigValue.map(value => value.editable), thumbnailConfigValue.map(value => value.editable))
      def idValue: scala.Option[primitives.Id]
      def arnValue: scala.Option[String]
      def nameValue: scala.Option[primitives.Name]
      def statusValue: scala.Option[primitives.PipelineStatus]
      def inputBucketValue: scala.Option[primitives.BucketName]
      def outputBucketValue: scala.Option[primitives.BucketName]
      def roleValue: scala.Option[primitives.Role]
      def awsKmsKeyArnValue: scala.Option[primitives.KeyArn]
      def notificationsValue: scala.Option[Notifications.ReadOnly]
      def contentConfigValue: scala.Option[PipelineOutputConfig.ReadOnly]
      def thumbnailConfigValue: scala.Option[PipelineOutputConfig.ReadOnly]
      def id: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("id", idValue)
      def arn: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("arn", arnValue)
      def name: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Name] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("name", nameValue)
      def status: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PipelineStatus] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("status", statusValue)
      def inputBucket: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.BucketName] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("inputBucket", inputBucketValue)
      def outputBucket: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.BucketName] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("outputBucket", outputBucketValue)
      def role: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Role] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("role", roleValue)
      def awsKmsKeyArn: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.KeyArn] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("awsKmsKeyArn", awsKmsKeyArnValue)
      def notifications: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Notifications.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("notifications", notificationsValue)
      def contentConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, PipelineOutputConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("contentConfig", contentConfigValue)
      def thumbnailConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, PipelineOutputConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("thumbnailConfig", thumbnailConfigValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Pipeline) extends Pipeline.ReadOnly {
      override def idValue: scala.Option[primitives.Id] = scala.Option(impl.id()).map(value => value: primitives.Id)
      override def arnValue: scala.Option[String] = scala.Option(impl.arn()).map(value => value: String)
      override def nameValue: scala.Option[primitives.Name] = scala.Option(impl.name()).map(value => value: primitives.Name)
      override def statusValue: scala.Option[primitives.PipelineStatus] = scala.Option(impl.status()).map(value => value: primitives.PipelineStatus)
      override def inputBucketValue: scala.Option[primitives.BucketName] = scala.Option(impl.inputBucket()).map(value => value: primitives.BucketName)
      override def outputBucketValue: scala.Option[primitives.BucketName] = scala.Option(impl.outputBucket()).map(value => value: primitives.BucketName)
      override def roleValue: scala.Option[primitives.Role] = scala.Option(impl.role()).map(value => value: primitives.Role)
      override def awsKmsKeyArnValue: scala.Option[primitives.KeyArn] = scala.Option(impl.awsKmsKeyArn()).map(value => value: primitives.KeyArn)
      override def notificationsValue: scala.Option[Notifications.ReadOnly] = scala.Option(impl.notifications()).map(value => Notifications.wrap(value))
      override def contentConfigValue: scala.Option[PipelineOutputConfig.ReadOnly] = scala.Option(impl.contentConfig()).map(value => PipelineOutputConfig.wrap(value))
      override def thumbnailConfigValue: scala.Option[PipelineOutputConfig.ReadOnly] = scala.Option(impl.thumbnailConfig()).map(value => PipelineOutputConfig.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Pipeline): ReadOnly = new Wrapper(impl)
  }
  case class PipelineOutputConfig(bucket: scala.Option[primitives.BucketName] = None, storageClass: scala.Option[primitives.StorageClass] = None, permissions: scala.Option[Iterable[Permission]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.PipelineOutputConfig = {
      import PipelineOutputConfig.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.PipelineOutputConfig.builder().optionallyWith(bucket.map(value => value: java.lang.String))(_.bucket).optionallyWith(storageClass.map(value => value: java.lang.String))(_.storageClass).optionallyWith(permissions.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.permissions).build()
    }
    def asReadOnly: PipelineOutputConfig.ReadOnly = PipelineOutputConfig.wrap(buildAwsValue())
  }
  object PipelineOutputConfig {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.PipelineOutputConfig] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: PipelineOutputConfig = PipelineOutputConfig(bucketValue.map(value => value), storageClassValue.map(value => value), permissionsValue.map(value => value.map { item => 
        item.editable
      }))
      def bucketValue: scala.Option[primitives.BucketName]
      def storageClassValue: scala.Option[primitives.StorageClass]
      def permissionsValue: scala.Option[List[Permission.ReadOnly]]
      def bucket: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.BucketName] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("bucket", bucketValue)
      def storageClass: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.StorageClass] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("storageClass", storageClassValue)
      def permissions: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Permission.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("permissions", permissionsValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.PipelineOutputConfig) extends PipelineOutputConfig.ReadOnly {
      override def bucketValue: scala.Option[primitives.BucketName] = scala.Option(impl.bucket()).map(value => value: primitives.BucketName)
      override def storageClassValue: scala.Option[primitives.StorageClass] = scala.Option(impl.storageClass()).map(value => value: primitives.StorageClass)
      override def permissionsValue: scala.Option[List[Permission.ReadOnly]] = scala.Option(impl.permissions()).map(value => value.asScala.map { item => 
        Permission.wrap(item)
      }.toList)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.PipelineOutputConfig): ReadOnly = new Wrapper(impl)
  }
  type Pipelines = List[Pipeline]
  case class PlayReadyDrm(format: scala.Option[primitives.PlayReadyDrmFormatString] = None, key: scala.Option[primitives.NonEmptyBase64EncodedString] = None, keyMd5: scala.Option[primitives.NonEmptyBase64EncodedString] = None, keyId: scala.Option[primitives.KeyIdGuid] = None, initializationVector: scala.Option[primitives.ZeroTo255String] = None, licenseAcquisitionUrl: scala.Option[primitives.OneTo512String] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.PlayReadyDrm = {
      import PlayReadyDrm.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.PlayReadyDrm.builder().optionallyWith(format.map(value => value: java.lang.String))(_.format).optionallyWith(key.map(value => value: java.lang.String))(_.key).optionallyWith(keyMd5.map(value => value: java.lang.String))(_.keyMd5).optionallyWith(keyId.map(value => value: java.lang.String))(_.keyId).optionallyWith(initializationVector.map(value => value: java.lang.String))(_.initializationVector).optionallyWith(licenseAcquisitionUrl.map(value => value: java.lang.String))(_.licenseAcquisitionUrl).build()
    }
    def asReadOnly: PlayReadyDrm.ReadOnly = PlayReadyDrm.wrap(buildAwsValue())
  }
  object PlayReadyDrm {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.PlayReadyDrm] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: PlayReadyDrm = PlayReadyDrm(formatValue.map(value => value), keyValue.map(value => value), keyMd5Value.map(value => value), keyIdValue.map(value => value), initializationVectorValue.map(value => value), licenseAcquisitionUrlValue.map(value => value))
      def formatValue: scala.Option[primitives.PlayReadyDrmFormatString]
      def keyValue: scala.Option[primitives.NonEmptyBase64EncodedString]
      def keyMd5Value: scala.Option[primitives.NonEmptyBase64EncodedString]
      def keyIdValue: scala.Option[primitives.KeyIdGuid]
      def initializationVectorValue: scala.Option[primitives.ZeroTo255String]
      def licenseAcquisitionUrlValue: scala.Option[primitives.OneTo512String]
      def format: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PlayReadyDrmFormatString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("format", formatValue)
      def key: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NonEmptyBase64EncodedString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("key", keyValue)
      def keyMd5: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NonEmptyBase64EncodedString] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("keyMd5", keyMd5Value)
      def keyId: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.KeyIdGuid] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("keyId", keyIdValue)
      def initializationVector: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.ZeroTo255String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("initializationVector", initializationVectorValue)
      def licenseAcquisitionUrl: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.OneTo512String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("licenseAcquisitionUrl", licenseAcquisitionUrlValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.PlayReadyDrm) extends PlayReadyDrm.ReadOnly {
      override def formatValue: scala.Option[primitives.PlayReadyDrmFormatString] = scala.Option(impl.format()).map(value => value: primitives.PlayReadyDrmFormatString)
      override def keyValue: scala.Option[primitives.NonEmptyBase64EncodedString] = scala.Option(impl.key()).map(value => value: primitives.NonEmptyBase64EncodedString)
      override def keyMd5Value: scala.Option[primitives.NonEmptyBase64EncodedString] = scala.Option(impl.keyMd5()).map(value => value: primitives.NonEmptyBase64EncodedString)
      override def keyIdValue: scala.Option[primitives.KeyIdGuid] = scala.Option(impl.keyId()).map(value => value: primitives.KeyIdGuid)
      override def initializationVectorValue: scala.Option[primitives.ZeroTo255String] = scala.Option(impl.initializationVector()).map(value => value: primitives.ZeroTo255String)
      override def licenseAcquisitionUrlValue: scala.Option[primitives.OneTo512String] = scala.Option(impl.licenseAcquisitionUrl()).map(value => value: primitives.OneTo512String)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.PlayReadyDrm): ReadOnly = new Wrapper(impl)
  }
  case class Playlist(name: scala.Option[primitives.Filename] = None, format: scala.Option[primitives.PlaylistFormat] = None, outputKeys: scala.Option[Iterable[primitives.Key]] = None, hlsContentProtection: scala.Option[HlsContentProtection] = None, playReadyDrm: scala.Option[PlayReadyDrm] = None, status: scala.Option[primitives.JobStatus] = None, statusDetail: scala.Option[primitives.Description] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Playlist = {
      import Playlist.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Playlist.builder().optionallyWith(name.map(value => value: java.lang.String))(_.name).optionallyWith(format.map(value => value: java.lang.String))(_.format).optionallyWith(outputKeys.map(value => value.map { item => 
        item: java.lang.String
      }.asJavaCollection))(_.outputKeys).optionallyWith(hlsContentProtection.map(value => value.buildAwsValue()))(_.hlsContentProtection).optionallyWith(playReadyDrm.map(value => value.buildAwsValue()))(_.playReadyDrm).optionallyWith(status.map(value => value: java.lang.String))(_.status).optionallyWith(statusDetail.map(value => value: java.lang.String))(_.statusDetail).build()
    }
    def asReadOnly: Playlist.ReadOnly = Playlist.wrap(buildAwsValue())
  }
  object Playlist {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Playlist] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Playlist = Playlist(nameValue.map(value => value), formatValue.map(value => value), outputKeysValue.map(value => value), hlsContentProtectionValue.map(value => value.editable), playReadyDrmValue.map(value => value.editable), statusValue.map(value => value), statusDetailValue.map(value => value))
      def nameValue: scala.Option[primitives.Filename]
      def formatValue: scala.Option[primitives.PlaylistFormat]
      def outputKeysValue: scala.Option[List[primitives.Key]]
      def hlsContentProtectionValue: scala.Option[HlsContentProtection.ReadOnly]
      def playReadyDrmValue: scala.Option[PlayReadyDrm.ReadOnly]
      def statusValue: scala.Option[primitives.JobStatus]
      def statusDetailValue: scala.Option[primitives.Description]
      def name: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Filename] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("name", nameValue)
      def format: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PlaylistFormat] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("format", formatValue)
      def outputKeys: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[primitives.Key]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("outputKeys", outputKeysValue)
      def hlsContentProtection: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, HlsContentProtection.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("hlsContentProtection", hlsContentProtectionValue)
      def playReadyDrm: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, PlayReadyDrm.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("playReadyDrm", playReadyDrmValue)
      def status: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.JobStatus] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("status", statusValue)
      def statusDetail: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Description] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("statusDetail", statusDetailValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Playlist) extends Playlist.ReadOnly {
      override def nameValue: scala.Option[primitives.Filename] = scala.Option(impl.name()).map(value => value: primitives.Filename)
      override def formatValue: scala.Option[primitives.PlaylistFormat] = scala.Option(impl.format()).map(value => value: primitives.PlaylistFormat)
      override def outputKeysValue: scala.Option[List[primitives.Key]] = scala.Option(impl.outputKeys()).map(value => value.asScala.map { item => 
        item: primitives.Key
      }.toList)
      override def hlsContentProtectionValue: scala.Option[HlsContentProtection.ReadOnly] = scala.Option(impl.hlsContentProtection()).map(value => HlsContentProtection.wrap(value))
      override def playReadyDrmValue: scala.Option[PlayReadyDrm.ReadOnly] = scala.Option(impl.playReadyDrm()).map(value => PlayReadyDrm.wrap(value))
      override def statusValue: scala.Option[primitives.JobStatus] = scala.Option(impl.status()).map(value => value: primitives.JobStatus)
      override def statusDetailValue: scala.Option[primitives.Description] = scala.Option(impl.statusDetail()).map(value => value: primitives.Description)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Playlist): ReadOnly = new Wrapper(impl)
  }
  type Playlists = List[Playlist]
  case class Preset(id: scala.Option[primitives.Id] = None, arn: scala.Option[String] = None, name: scala.Option[primitives.Name] = None, description: scala.Option[primitives.Description] = None, container: scala.Option[primitives.PresetContainer] = None, audio: scala.Option[AudioParameters] = None, video: scala.Option[VideoParameters] = None, thumbnails: scala.Option[Thumbnails] = None, `type`: scala.Option[primitives.PresetType] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Preset = {
      import Preset.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Preset.builder().optionallyWith(id.map(value => value: java.lang.String))(_.id).optionallyWith(arn.map(value => value: java.lang.String))(_.arn).optionallyWith(name.map(value => value: java.lang.String))(_.name).optionallyWith(description.map(value => value: java.lang.String))(_.description).optionallyWith(container.map(value => value: java.lang.String))(_.container).optionallyWith(audio.map(value => value.buildAwsValue()))(_.audio).optionallyWith(video.map(value => value.buildAwsValue()))(_.video).optionallyWith(thumbnails.map(value => value.buildAwsValue()))(_.thumbnails).optionallyWith(`type`.map(value => value: java.lang.String))(_.`type`).build()
    }
    def asReadOnly: Preset.ReadOnly = Preset.wrap(buildAwsValue())
  }
  object Preset {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Preset] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Preset = Preset(idValue.map(value => value), arnValue.map(value => value), nameValue.map(value => value), descriptionValue.map(value => value), containerValue.map(value => value), audioValue.map(value => value.editable), videoValue.map(value => value.editable), thumbnailsValue.map(value => value.editable), typeValue.map(value => value))
      def idValue: scala.Option[primitives.Id]
      def arnValue: scala.Option[String]
      def nameValue: scala.Option[primitives.Name]
      def descriptionValue: scala.Option[primitives.Description]
      def containerValue: scala.Option[primitives.PresetContainer]
      def audioValue: scala.Option[AudioParameters.ReadOnly]
      def videoValue: scala.Option[VideoParameters.ReadOnly]
      def thumbnailsValue: scala.Option[Thumbnails.ReadOnly]
      def typeValue: scala.Option[primitives.PresetType]
      def id: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Id] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("id", idValue)
      def arn: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("arn", arnValue)
      def name: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Name] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("name", nameValue)
      def description: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Description] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("description", descriptionValue)
      def container: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PresetContainer] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("container", containerValue)
      def audio: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, AudioParameters.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("audio", audioValue)
      def video: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, VideoParameters.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("video", videoValue)
      def thumbnails: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Thumbnails.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("thumbnails", thumbnailsValue)
      def `type`: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PresetType] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("type", typeValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Preset) extends Preset.ReadOnly {
      override def idValue: scala.Option[primitives.Id] = scala.Option(impl.id()).map(value => value: primitives.Id)
      override def arnValue: scala.Option[String] = scala.Option(impl.arn()).map(value => value: String)
      override def nameValue: scala.Option[primitives.Name] = scala.Option(impl.name()).map(value => value: primitives.Name)
      override def descriptionValue: scala.Option[primitives.Description] = scala.Option(impl.description()).map(value => value: primitives.Description)
      override def containerValue: scala.Option[primitives.PresetContainer] = scala.Option(impl.container()).map(value => value: primitives.PresetContainer)
      override def audioValue: scala.Option[AudioParameters.ReadOnly] = scala.Option(impl.audio()).map(value => AudioParameters.wrap(value))
      override def videoValue: scala.Option[VideoParameters.ReadOnly] = scala.Option(impl.video()).map(value => VideoParameters.wrap(value))
      override def thumbnailsValue: scala.Option[Thumbnails.ReadOnly] = scala.Option(impl.thumbnails()).map(value => Thumbnails.wrap(value))
      override def typeValue: scala.Option[primitives.PresetType] = scala.Option(impl.`type`()).map(value => value: primitives.PresetType)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Preset): ReadOnly = new Wrapper(impl)
  }
  case class PresetWatermark(id: scala.Option[primitives.PresetWatermarkId] = None, maxWidth: scala.Option[primitives.PixelsOrPercent] = None, maxHeight: scala.Option[primitives.PixelsOrPercent] = None, sizingPolicy: scala.Option[primitives.WatermarkSizingPolicy] = None, horizontalAlign: scala.Option[primitives.HorizontalAlign] = None, horizontalOffset: scala.Option[primitives.PixelsOrPercent] = None, verticalAlign: scala.Option[primitives.VerticalAlign] = None, verticalOffset: scala.Option[primitives.PixelsOrPercent] = None, opacity: scala.Option[primitives.Opacity] = None, target: scala.Option[primitives.Target] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.PresetWatermark = {
      import PresetWatermark.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.PresetWatermark.builder().optionallyWith(id.map(value => value: java.lang.String))(_.id).optionallyWith(maxWidth.map(value => value: java.lang.String))(_.maxWidth).optionallyWith(maxHeight.map(value => value: java.lang.String))(_.maxHeight).optionallyWith(sizingPolicy.map(value => value: java.lang.String))(_.sizingPolicy).optionallyWith(horizontalAlign.map(value => value: java.lang.String))(_.horizontalAlign).optionallyWith(horizontalOffset.map(value => value: java.lang.String))(_.horizontalOffset).optionallyWith(verticalAlign.map(value => value: java.lang.String))(_.verticalAlign).optionallyWith(verticalOffset.map(value => value: java.lang.String))(_.verticalOffset).optionallyWith(opacity.map(value => value: java.lang.String))(_.opacity).optionallyWith(target.map(value => value: java.lang.String))(_.target).build()
    }
    def asReadOnly: PresetWatermark.ReadOnly = PresetWatermark.wrap(buildAwsValue())
  }
  object PresetWatermark {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.PresetWatermark] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: PresetWatermark = PresetWatermark(idValue.map(value => value), maxWidthValue.map(value => value), maxHeightValue.map(value => value), sizingPolicyValue.map(value => value), horizontalAlignValue.map(value => value), horizontalOffsetValue.map(value => value), verticalAlignValue.map(value => value), verticalOffsetValue.map(value => value), opacityValue.map(value => value), targetValue.map(value => value))
      def idValue: scala.Option[primitives.PresetWatermarkId]
      def maxWidthValue: scala.Option[primitives.PixelsOrPercent]
      def maxHeightValue: scala.Option[primitives.PixelsOrPercent]
      def sizingPolicyValue: scala.Option[primitives.WatermarkSizingPolicy]
      def horizontalAlignValue: scala.Option[primitives.HorizontalAlign]
      def horizontalOffsetValue: scala.Option[primitives.PixelsOrPercent]
      def verticalAlignValue: scala.Option[primitives.VerticalAlign]
      def verticalOffsetValue: scala.Option[primitives.PixelsOrPercent]
      def opacityValue: scala.Option[primitives.Opacity]
      def targetValue: scala.Option[primitives.Target]
      def id: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PresetWatermarkId] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("id", idValue)
      def maxWidth: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PixelsOrPercent] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("maxWidth", maxWidthValue)
      def maxHeight: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PixelsOrPercent] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("maxHeight", maxHeightValue)
      def sizingPolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.WatermarkSizingPolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("sizingPolicy", sizingPolicyValue)
      def horizontalAlign: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.HorizontalAlign] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("horizontalAlign", horizontalAlignValue)
      def horizontalOffset: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PixelsOrPercent] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("horizontalOffset", horizontalOffsetValue)
      def verticalAlign: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.VerticalAlign] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("verticalAlign", verticalAlignValue)
      def verticalOffset: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PixelsOrPercent] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("verticalOffset", verticalOffsetValue)
      def opacity: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Opacity] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("opacity", opacityValue)
      def target: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Target] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("target", targetValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.PresetWatermark) extends PresetWatermark.ReadOnly {
      override def idValue: scala.Option[primitives.PresetWatermarkId] = scala.Option(impl.id()).map(value => value: primitives.PresetWatermarkId)
      override def maxWidthValue: scala.Option[primitives.PixelsOrPercent] = scala.Option(impl.maxWidth()).map(value => value: primitives.PixelsOrPercent)
      override def maxHeightValue: scala.Option[primitives.PixelsOrPercent] = scala.Option(impl.maxHeight()).map(value => value: primitives.PixelsOrPercent)
      override def sizingPolicyValue: scala.Option[primitives.WatermarkSizingPolicy] = scala.Option(impl.sizingPolicy()).map(value => value: primitives.WatermarkSizingPolicy)
      override def horizontalAlignValue: scala.Option[primitives.HorizontalAlign] = scala.Option(impl.horizontalAlign()).map(value => value: primitives.HorizontalAlign)
      override def horizontalOffsetValue: scala.Option[primitives.PixelsOrPercent] = scala.Option(impl.horizontalOffset()).map(value => value: primitives.PixelsOrPercent)
      override def verticalAlignValue: scala.Option[primitives.VerticalAlign] = scala.Option(impl.verticalAlign()).map(value => value: primitives.VerticalAlign)
      override def verticalOffsetValue: scala.Option[primitives.PixelsOrPercent] = scala.Option(impl.verticalOffset()).map(value => value: primitives.PixelsOrPercent)
      override def opacityValue: scala.Option[primitives.Opacity] = scala.Option(impl.opacity()).map(value => value: primitives.Opacity)
      override def targetValue: scala.Option[primitives.Target] = scala.Option(impl.target()).map(value => value: primitives.Target)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.PresetWatermark): ReadOnly = new Wrapper(impl)
  }
  type PresetWatermarks = List[PresetWatermark]
  type Presets = List[Preset]
  case class ReadJobRequest(id: primitives.Id) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ReadJobRequest = {
      import ReadJobRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ReadJobRequest.builder().id(id: java.lang.String).build()
    }
    def asReadOnly: ReadJobRequest.ReadOnly = ReadJobRequest.wrap(buildAwsValue())
  }
  object ReadJobRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ReadJobRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ReadJobRequest = ReadJobRequest(idValue)
      def idValue: primitives.Id
      def id: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(idValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadJobRequest) extends ReadJobRequest.ReadOnly { override def idValue: primitives.Id = impl.id(): primitives.Id }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadJobRequest): ReadOnly = new Wrapper(impl)
  }
  case class ReadJobResponse(job: scala.Option[Job] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ReadJobResponse = {
      import ReadJobResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ReadJobResponse.builder().optionallyWith(job.map(value => value.buildAwsValue()))(_.job).build()
    }
    def asReadOnly: ReadJobResponse.ReadOnly = ReadJobResponse.wrap(buildAwsValue())
  }
  object ReadJobResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ReadJobResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ReadJobResponse = ReadJobResponse(jobValue.map(value => value.editable))
      def jobValue: scala.Option[Job.ReadOnly]
      def job: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Job.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("job", jobValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadJobResponse) extends ReadJobResponse.ReadOnly { override def jobValue: scala.Option[Job.ReadOnly] = scala.Option(impl.job()).map(value => Job.wrap(value)) }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadJobResponse): ReadOnly = new Wrapper(impl)
  }
  case class ReadPipelineRequest(id: primitives.Id) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineRequest = {
      import ReadPipelineRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineRequest.builder().id(id: java.lang.String).build()
    }
    def asReadOnly: ReadPipelineRequest.ReadOnly = ReadPipelineRequest.wrap(buildAwsValue())
  }
  object ReadPipelineRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ReadPipelineRequest = ReadPipelineRequest(idValue)
      def idValue: primitives.Id
      def id: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(idValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineRequest) extends ReadPipelineRequest.ReadOnly { override def idValue: primitives.Id = impl.id(): primitives.Id }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineRequest): ReadOnly = new Wrapper(impl)
  }
  case class ReadPipelineResponse(pipeline: scala.Option[Pipeline] = None, warnings: scala.Option[Iterable[Warning]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineResponse = {
      import ReadPipelineResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineResponse.builder().optionallyWith(pipeline.map(value => value.buildAwsValue()))(_.pipeline).optionallyWith(warnings.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.warnings).build()
    }
    def asReadOnly: ReadPipelineResponse.ReadOnly = ReadPipelineResponse.wrap(buildAwsValue())
  }
  object ReadPipelineResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ReadPipelineResponse = ReadPipelineResponse(pipelineValue.map(value => value.editable), warningsValue.map(value => value.map { item => 
        item.editable
      }))
      def pipelineValue: scala.Option[Pipeline.ReadOnly]
      def warningsValue: scala.Option[List[Warning.ReadOnly]]
      def pipeline: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Pipeline.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pipeline", pipelineValue)
      def warnings: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Warning.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("warnings", warningsValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineResponse) extends ReadPipelineResponse.ReadOnly {
      override def pipelineValue: scala.Option[Pipeline.ReadOnly] = scala.Option(impl.pipeline()).map(value => Pipeline.wrap(value))
      override def warningsValue: scala.Option[List[Warning.ReadOnly]] = scala.Option(impl.warnings()).map(value => value.asScala.map { item => 
        Warning.wrap(item)
      }.toList)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadPipelineResponse): ReadOnly = new Wrapper(impl)
  }
  case class ReadPresetRequest(id: primitives.Id) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ReadPresetRequest = {
      import ReadPresetRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ReadPresetRequest.builder().id(id: java.lang.String).build()
    }
    def asReadOnly: ReadPresetRequest.ReadOnly = ReadPresetRequest.wrap(buildAwsValue())
  }
  object ReadPresetRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ReadPresetRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ReadPresetRequest = ReadPresetRequest(idValue)
      def idValue: primitives.Id
      def id: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(idValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadPresetRequest) extends ReadPresetRequest.ReadOnly { override def idValue: primitives.Id = impl.id(): primitives.Id }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadPresetRequest): ReadOnly = new Wrapper(impl)
  }
  case class ReadPresetResponse(preset: scala.Option[Preset] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.ReadPresetResponse = {
      import ReadPresetResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.ReadPresetResponse.builder().optionallyWith(preset.map(value => value.buildAwsValue()))(_.preset).build()
    }
    def asReadOnly: ReadPresetResponse.ReadOnly = ReadPresetResponse.wrap(buildAwsValue())
  }
  object ReadPresetResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.ReadPresetResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: ReadPresetResponse = ReadPresetResponse(presetValue.map(value => value.editable))
      def presetValue: scala.Option[Preset.ReadOnly]
      def preset: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Preset.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("preset", presetValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadPresetResponse) extends ReadPresetResponse.ReadOnly { override def presetValue: scala.Option[Preset.ReadOnly] = scala.Option(impl.preset()).map(value => Preset.wrap(value)) }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.ReadPresetResponse): ReadOnly = new Wrapper(impl)
  }
  case class Thumbnails(format: scala.Option[primitives.JpgOrPng] = None, interval: scala.Option[primitives.Digits] = None, resolution: scala.Option[primitives.ThumbnailResolution] = None, aspectRatio: scala.Option[primitives.AspectRatio] = None, maxWidth: scala.Option[primitives.DigitsOrAuto] = None, maxHeight: scala.Option[primitives.DigitsOrAuto] = None, sizingPolicy: scala.Option[primitives.SizingPolicy] = None, paddingPolicy: scala.Option[primitives.PaddingPolicy] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Thumbnails = {
      import Thumbnails.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Thumbnails.builder().optionallyWith(format.map(value => value: java.lang.String))(_.format).optionallyWith(interval.map(value => value: java.lang.String))(_.interval).optionallyWith(resolution.map(value => value: java.lang.String))(_.resolution).optionallyWith(aspectRatio.map(value => value: java.lang.String))(_.aspectRatio).optionallyWith(maxWidth.map(value => value: java.lang.String))(_.maxWidth).optionallyWith(maxHeight.map(value => value: java.lang.String))(_.maxHeight).optionallyWith(sizingPolicy.map(value => value: java.lang.String))(_.sizingPolicy).optionallyWith(paddingPolicy.map(value => value: java.lang.String))(_.paddingPolicy).build()
    }
    def asReadOnly: Thumbnails.ReadOnly = Thumbnails.wrap(buildAwsValue())
  }
  object Thumbnails {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Thumbnails] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Thumbnails = Thumbnails(formatValue.map(value => value), intervalValue.map(value => value), resolutionValue.map(value => value), aspectRatioValue.map(value => value), maxWidthValue.map(value => value), maxHeightValue.map(value => value), sizingPolicyValue.map(value => value), paddingPolicyValue.map(value => value))
      def formatValue: scala.Option[primitives.JpgOrPng]
      def intervalValue: scala.Option[primitives.Digits]
      def resolutionValue: scala.Option[primitives.ThumbnailResolution]
      def aspectRatioValue: scala.Option[primitives.AspectRatio]
      def maxWidthValue: scala.Option[primitives.DigitsOrAuto]
      def maxHeightValue: scala.Option[primitives.DigitsOrAuto]
      def sizingPolicyValue: scala.Option[primitives.SizingPolicy]
      def paddingPolicyValue: scala.Option[primitives.PaddingPolicy]
      def format: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.JpgOrPng] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("format", formatValue)
      def interval: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Digits] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("interval", intervalValue)
      def resolution: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.ThumbnailResolution] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("resolution", resolutionValue)
      def aspectRatio: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AspectRatio] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("aspectRatio", aspectRatioValue)
      def maxWidth: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.DigitsOrAuto] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("maxWidth", maxWidthValue)
      def maxHeight: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.DigitsOrAuto] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("maxHeight", maxHeightValue)
      def sizingPolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.SizingPolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("sizingPolicy", sizingPolicyValue)
      def paddingPolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PaddingPolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("paddingPolicy", paddingPolicyValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Thumbnails) extends Thumbnails.ReadOnly {
      override def formatValue: scala.Option[primitives.JpgOrPng] = scala.Option(impl.format()).map(value => value: primitives.JpgOrPng)
      override def intervalValue: scala.Option[primitives.Digits] = scala.Option(impl.interval()).map(value => value: primitives.Digits)
      override def resolutionValue: scala.Option[primitives.ThumbnailResolution] = scala.Option(impl.resolution()).map(value => value: primitives.ThumbnailResolution)
      override def aspectRatioValue: scala.Option[primitives.AspectRatio] = scala.Option(impl.aspectRatio()).map(value => value: primitives.AspectRatio)
      override def maxWidthValue: scala.Option[primitives.DigitsOrAuto] = scala.Option(impl.maxWidth()).map(value => value: primitives.DigitsOrAuto)
      override def maxHeightValue: scala.Option[primitives.DigitsOrAuto] = scala.Option(impl.maxHeight()).map(value => value: primitives.DigitsOrAuto)
      override def sizingPolicyValue: scala.Option[primitives.SizingPolicy] = scala.Option(impl.sizingPolicy()).map(value => value: primitives.SizingPolicy)
      override def paddingPolicyValue: scala.Option[primitives.PaddingPolicy] = scala.Option(impl.paddingPolicy()).map(value => value: primitives.PaddingPolicy)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Thumbnails): ReadOnly = new Wrapper(impl)
  }
  case class TimeSpan(startTime: scala.Option[primitives.Time] = None, duration: scala.Option[primitives.Time] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.TimeSpan = {
      import TimeSpan.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.TimeSpan.builder().optionallyWith(startTime.map(value => value: java.lang.String))(_.startTime).optionallyWith(duration.map(value => value: java.lang.String))(_.duration).build()
    }
    def asReadOnly: TimeSpan.ReadOnly = TimeSpan.wrap(buildAwsValue())
  }
  object TimeSpan {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.TimeSpan] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: TimeSpan = TimeSpan(startTimeValue.map(value => value), durationValue.map(value => value))
      def startTimeValue: scala.Option[primitives.Time]
      def durationValue: scala.Option[primitives.Time]
      def startTime: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Time] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("startTime", startTimeValue)
      def duration: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Time] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("duration", durationValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.TimeSpan) extends TimeSpan.ReadOnly {
      override def startTimeValue: scala.Option[primitives.Time] = scala.Option(impl.startTime()).map(value => value: primitives.Time)
      override def durationValue: scala.Option[primitives.Time] = scala.Option(impl.duration()).map(value => value: primitives.Time)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.TimeSpan): ReadOnly = new Wrapper(impl)
  }
  case class Timing(submitTimeMillis: scala.Option[primitives.NullableLong] = None, startTimeMillis: scala.Option[primitives.NullableLong] = None, finishTimeMillis: scala.Option[primitives.NullableLong] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Timing = {
      import Timing.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Timing.builder().optionallyWith(submitTimeMillis.map(value => value: java.lang.Long))(_.submitTimeMillis).optionallyWith(startTimeMillis.map(value => value: java.lang.Long))(_.startTimeMillis).optionallyWith(finishTimeMillis.map(value => value: java.lang.Long))(_.finishTimeMillis).build()
    }
    def asReadOnly: Timing.ReadOnly = Timing.wrap(buildAwsValue())
  }
  object Timing {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Timing] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Timing = Timing(submitTimeMillisValue.map(value => value), startTimeMillisValue.map(value => value), finishTimeMillisValue.map(value => value))
      def submitTimeMillisValue: scala.Option[primitives.NullableLong]
      def startTimeMillisValue: scala.Option[primitives.NullableLong]
      def finishTimeMillisValue: scala.Option[primitives.NullableLong]
      def submitTimeMillis: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableLong] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("submitTimeMillis", submitTimeMillisValue)
      def startTimeMillis: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableLong] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("startTimeMillis", startTimeMillisValue)
      def finishTimeMillis: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.NullableLong] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("finishTimeMillis", finishTimeMillisValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Timing) extends Timing.ReadOnly {
      override def submitTimeMillisValue: scala.Option[primitives.NullableLong] = scala.Option(impl.submitTimeMillis()).map(value => value: primitives.NullableLong)
      override def startTimeMillisValue: scala.Option[primitives.NullableLong] = scala.Option(impl.startTimeMillis()).map(value => value: primitives.NullableLong)
      override def finishTimeMillisValue: scala.Option[primitives.NullableLong] = scala.Option(impl.finishTimeMillis()).map(value => value: primitives.NullableLong)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Timing): ReadOnly = new Wrapper(impl)
  }
  case class UpdatePipelineNotificationsRequest(id: primitives.Id, notifications: Notifications) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsRequest = {
      import UpdatePipelineNotificationsRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsRequest.builder().id(id: java.lang.String).notifications(notifications.buildAwsValue()).build()
    }
    def asReadOnly: UpdatePipelineNotificationsRequest.ReadOnly = UpdatePipelineNotificationsRequest.wrap(buildAwsValue())
  }
  object UpdatePipelineNotificationsRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: UpdatePipelineNotificationsRequest = UpdatePipelineNotificationsRequest(idValue, notificationsValue.editable)
      def idValue: primitives.Id
      def notificationsValue: Notifications.ReadOnly
      def id: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(idValue)
      def notifications: ZIO[Any, Nothing, Notifications.ReadOnly] = ZIO.succeed(notificationsValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsRequest) extends UpdatePipelineNotificationsRequest.ReadOnly {
      override def idValue: primitives.Id = impl.id(): primitives.Id
      override def notificationsValue: Notifications.ReadOnly = Notifications.wrap(impl.notifications())
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsRequest): ReadOnly = new Wrapper(impl)
  }
  case class UpdatePipelineNotificationsResponse(pipeline: scala.Option[Pipeline] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsResponse = {
      import UpdatePipelineNotificationsResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsResponse.builder().optionallyWith(pipeline.map(value => value.buildAwsValue()))(_.pipeline).build()
    }
    def asReadOnly: UpdatePipelineNotificationsResponse.ReadOnly = UpdatePipelineNotificationsResponse.wrap(buildAwsValue())
  }
  object UpdatePipelineNotificationsResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: UpdatePipelineNotificationsResponse = UpdatePipelineNotificationsResponse(pipelineValue.map(value => value.editable))
      def pipelineValue: scala.Option[Pipeline.ReadOnly]
      def pipeline: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Pipeline.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pipeline", pipelineValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsResponse) extends UpdatePipelineNotificationsResponse.ReadOnly { override def pipelineValue: scala.Option[Pipeline.ReadOnly] = scala.Option(impl.pipeline()).map(value => Pipeline.wrap(value)) }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineNotificationsResponse): ReadOnly = new Wrapper(impl)
  }
  case class UpdatePipelineRequest(id: primitives.Id, name: scala.Option[primitives.Name] = None, inputBucket: scala.Option[primitives.BucketName] = None, role: scala.Option[primitives.Role] = None, awsKmsKeyArn: scala.Option[primitives.KeyArn] = None, notifications: scala.Option[Notifications] = None, contentConfig: scala.Option[PipelineOutputConfig] = None, thumbnailConfig: scala.Option[PipelineOutputConfig] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineRequest = {
      import UpdatePipelineRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineRequest.builder().id(id: java.lang.String).optionallyWith(name.map(value => value: java.lang.String))(_.name).optionallyWith(inputBucket.map(value => value: java.lang.String))(_.inputBucket).optionallyWith(role.map(value => value: java.lang.String))(_.role).optionallyWith(awsKmsKeyArn.map(value => value: java.lang.String))(_.awsKmsKeyArn).optionallyWith(notifications.map(value => value.buildAwsValue()))(_.notifications).optionallyWith(contentConfig.map(value => value.buildAwsValue()))(_.contentConfig).optionallyWith(thumbnailConfig.map(value => value.buildAwsValue()))(_.thumbnailConfig).build()
    }
    def asReadOnly: UpdatePipelineRequest.ReadOnly = UpdatePipelineRequest.wrap(buildAwsValue())
  }
  object UpdatePipelineRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: UpdatePipelineRequest = UpdatePipelineRequest(idValue, nameValue.map(value => value), inputBucketValue.map(value => value), roleValue.map(value => value), awsKmsKeyArnValue.map(value => value), notificationsValue.map(value => value.editable), contentConfigValue.map(value => value.editable), thumbnailConfigValue.map(value => value.editable))
      def idValue: primitives.Id
      def nameValue: scala.Option[primitives.Name]
      def inputBucketValue: scala.Option[primitives.BucketName]
      def roleValue: scala.Option[primitives.Role]
      def awsKmsKeyArnValue: scala.Option[primitives.KeyArn]
      def notificationsValue: scala.Option[Notifications.ReadOnly]
      def contentConfigValue: scala.Option[PipelineOutputConfig.ReadOnly]
      def thumbnailConfigValue: scala.Option[PipelineOutputConfig.ReadOnly]
      def id: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(idValue)
      def name: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Name] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("name", nameValue)
      def inputBucket: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.BucketName] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("inputBucket", inputBucketValue)
      def role: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Role] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("role", roleValue)
      def awsKmsKeyArn: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.KeyArn] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("awsKmsKeyArn", awsKmsKeyArnValue)
      def notifications: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Notifications.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("notifications", notificationsValue)
      def contentConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, PipelineOutputConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("contentConfig", contentConfigValue)
      def thumbnailConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, PipelineOutputConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("thumbnailConfig", thumbnailConfigValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineRequest) extends UpdatePipelineRequest.ReadOnly {
      override def idValue: primitives.Id = impl.id(): primitives.Id
      override def nameValue: scala.Option[primitives.Name] = scala.Option(impl.name()).map(value => value: primitives.Name)
      override def inputBucketValue: scala.Option[primitives.BucketName] = scala.Option(impl.inputBucket()).map(value => value: primitives.BucketName)
      override def roleValue: scala.Option[primitives.Role] = scala.Option(impl.role()).map(value => value: primitives.Role)
      override def awsKmsKeyArnValue: scala.Option[primitives.KeyArn] = scala.Option(impl.awsKmsKeyArn()).map(value => value: primitives.KeyArn)
      override def notificationsValue: scala.Option[Notifications.ReadOnly] = scala.Option(impl.notifications()).map(value => Notifications.wrap(value))
      override def contentConfigValue: scala.Option[PipelineOutputConfig.ReadOnly] = scala.Option(impl.contentConfig()).map(value => PipelineOutputConfig.wrap(value))
      override def thumbnailConfigValue: scala.Option[PipelineOutputConfig.ReadOnly] = scala.Option(impl.thumbnailConfig()).map(value => PipelineOutputConfig.wrap(value))
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineRequest): ReadOnly = new Wrapper(impl)
  }
  case class UpdatePipelineResponse(pipeline: scala.Option[Pipeline] = None, warnings: scala.Option[Iterable[Warning]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineResponse = {
      import UpdatePipelineResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineResponse.builder().optionallyWith(pipeline.map(value => value.buildAwsValue()))(_.pipeline).optionallyWith(warnings.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.warnings).build()
    }
    def asReadOnly: UpdatePipelineResponse.ReadOnly = UpdatePipelineResponse.wrap(buildAwsValue())
  }
  object UpdatePipelineResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: UpdatePipelineResponse = UpdatePipelineResponse(pipelineValue.map(value => value.editable), warningsValue.map(value => value.map { item => 
        item.editable
      }))
      def pipelineValue: scala.Option[Pipeline.ReadOnly]
      def warningsValue: scala.Option[List[Warning.ReadOnly]]
      def pipeline: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Pipeline.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pipeline", pipelineValue)
      def warnings: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Warning.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("warnings", warningsValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineResponse) extends UpdatePipelineResponse.ReadOnly {
      override def pipelineValue: scala.Option[Pipeline.ReadOnly] = scala.Option(impl.pipeline()).map(value => Pipeline.wrap(value))
      override def warningsValue: scala.Option[List[Warning.ReadOnly]] = scala.Option(impl.warnings()).map(value => value.asScala.map { item => 
        Warning.wrap(item)
      }.toList)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineResponse): ReadOnly = new Wrapper(impl)
  }
  case class UpdatePipelineStatusRequest(id: primitives.Id, status: primitives.PipelineStatus) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusRequest = {
      import UpdatePipelineStatusRequest.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusRequest.builder().id(id: java.lang.String).status(status: java.lang.String).build()
    }
    def asReadOnly: UpdatePipelineStatusRequest.ReadOnly = UpdatePipelineStatusRequest.wrap(buildAwsValue())
  }
  object UpdatePipelineStatusRequest {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: UpdatePipelineStatusRequest = UpdatePipelineStatusRequest(idValue, statusValue)
      def idValue: primitives.Id
      def statusValue: primitives.PipelineStatus
      def id: ZIO[Any, Nothing, primitives.Id] = ZIO.succeed(idValue)
      def status: ZIO[Any, Nothing, primitives.PipelineStatus] = ZIO.succeed(statusValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusRequest) extends UpdatePipelineStatusRequest.ReadOnly {
      override def idValue: primitives.Id = impl.id(): primitives.Id
      override def statusValue: primitives.PipelineStatus = impl.status(): primitives.PipelineStatus
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusRequest): ReadOnly = new Wrapper(impl)
  }
  case class UpdatePipelineStatusResponse(pipeline: scala.Option[Pipeline] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusResponse = {
      import UpdatePipelineStatusResponse.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusResponse.builder().optionallyWith(pipeline.map(value => value.buildAwsValue()))(_.pipeline).build()
    }
    def asReadOnly: UpdatePipelineStatusResponse.ReadOnly = UpdatePipelineStatusResponse.wrap(buildAwsValue())
  }
  object UpdatePipelineStatusResponse {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusResponse] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: UpdatePipelineStatusResponse = UpdatePipelineStatusResponse(pipelineValue.map(value => value.editable))
      def pipelineValue: scala.Option[Pipeline.ReadOnly]
      def pipeline: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Pipeline.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("pipeline", pipelineValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusResponse) extends UpdatePipelineStatusResponse.ReadOnly { override def pipelineValue: scala.Option[Pipeline.ReadOnly] = scala.Option(impl.pipeline()).map(value => Pipeline.wrap(value)) }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.UpdatePipelineStatusResponse): ReadOnly = new Wrapper(impl)
  }
  type UserMetadata = Map[String, String]
  case class VideoParameters(codec: scala.Option[primitives.VideoCodec] = None, codecOptions: scala.Option[Map[primitives.CodecOption, primitives.CodecOption]] = None, keyframesMaxDist: scala.Option[primitives.KeyframesMaxDist] = None, fixedGOP: scala.Option[primitives.FixedGOP] = None, bitRate: scala.Option[primitives.VideoBitRate] = None, frameRate: scala.Option[primitives.FrameRate] = None, maxFrameRate: scala.Option[primitives.MaxFrameRate] = None, resolution: scala.Option[primitives.Resolution] = None, aspectRatio: scala.Option[primitives.AspectRatio] = None, maxWidth: scala.Option[primitives.DigitsOrAuto] = None, maxHeight: scala.Option[primitives.DigitsOrAuto] = None, displayAspectRatio: scala.Option[primitives.AspectRatio] = None, sizingPolicy: scala.Option[primitives.SizingPolicy] = None, paddingPolicy: scala.Option[primitives.PaddingPolicy] = None, watermarks: scala.Option[Iterable[PresetWatermark]] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.VideoParameters = {
      import VideoParameters.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.VideoParameters.builder().optionallyWith(codec.map(value => value: java.lang.String))(_.codec).optionallyWith(codecOptions.map(value => value.map({
        case (key, value) =>
          (key: java.lang.String) -> (value: java.lang.String)
      }).asJava))(_.codecOptions).optionallyWith(keyframesMaxDist.map(value => value: java.lang.String))(_.keyframesMaxDist).optionallyWith(fixedGOP.map(value => value: java.lang.String))(_.fixedGOP).optionallyWith(bitRate.map(value => value: java.lang.String))(_.bitRate).optionallyWith(frameRate.map(value => value: java.lang.String))(_.frameRate).optionallyWith(maxFrameRate.map(value => value: java.lang.String))(_.maxFrameRate).optionallyWith(resolution.map(value => value: java.lang.String))(_.resolution).optionallyWith(aspectRatio.map(value => value: java.lang.String))(_.aspectRatio).optionallyWith(maxWidth.map(value => value: java.lang.String))(_.maxWidth).optionallyWith(maxHeight.map(value => value: java.lang.String))(_.maxHeight).optionallyWith(displayAspectRatio.map(value => value: java.lang.String))(_.displayAspectRatio).optionallyWith(sizingPolicy.map(value => value: java.lang.String))(_.sizingPolicy).optionallyWith(paddingPolicy.map(value => value: java.lang.String))(_.paddingPolicy).optionallyWith(watermarks.map(value => value.map { item => 
        item.buildAwsValue()
      }.asJavaCollection))(_.watermarks).build()
    }
    def asReadOnly: VideoParameters.ReadOnly = VideoParameters.wrap(buildAwsValue())
  }
  object VideoParameters {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.VideoParameters] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: VideoParameters = VideoParameters(codecValue.map(value => value), codecOptionsValue.map(value => value), keyframesMaxDistValue.map(value => value), fixedGOPValue.map(value => value), bitRateValue.map(value => value), frameRateValue.map(value => value), maxFrameRateValue.map(value => value), resolutionValue.map(value => value), aspectRatioValue.map(value => value), maxWidthValue.map(value => value), maxHeightValue.map(value => value), displayAspectRatioValue.map(value => value), sizingPolicyValue.map(value => value), paddingPolicyValue.map(value => value), watermarksValue.map(value => value.map { item => 
        item.editable
      }))
      def codecValue: scala.Option[primitives.VideoCodec]
      def codecOptionsValue: scala.Option[Map[primitives.CodecOption, primitives.CodecOption]]
      def keyframesMaxDistValue: scala.Option[primitives.KeyframesMaxDist]
      def fixedGOPValue: scala.Option[primitives.FixedGOP]
      def bitRateValue: scala.Option[primitives.VideoBitRate]
      def frameRateValue: scala.Option[primitives.FrameRate]
      def maxFrameRateValue: scala.Option[primitives.MaxFrameRate]
      def resolutionValue: scala.Option[primitives.Resolution]
      def aspectRatioValue: scala.Option[primitives.AspectRatio]
      def maxWidthValue: scala.Option[primitives.DigitsOrAuto]
      def maxHeightValue: scala.Option[primitives.DigitsOrAuto]
      def displayAspectRatioValue: scala.Option[primitives.AspectRatio]
      def sizingPolicyValue: scala.Option[primitives.SizingPolicy]
      def paddingPolicyValue: scala.Option[primitives.PaddingPolicy]
      def watermarksValue: scala.Option[List[PresetWatermark.ReadOnly]]
      def codec: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.VideoCodec] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("codec", codecValue)
      def codecOptions: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Map[primitives.CodecOption, primitives.CodecOption]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("codecOptions", codecOptionsValue)
      def keyframesMaxDist: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.KeyframesMaxDist] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("keyframesMaxDist", keyframesMaxDistValue)
      def fixedGOP: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.FixedGOP] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("fixedGOP", fixedGOPValue)
      def bitRate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.VideoBitRate] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("bitRate", bitRateValue)
      def frameRate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.FrameRate] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("frameRate", frameRateValue)
      def maxFrameRate: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.MaxFrameRate] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("maxFrameRate", maxFrameRateValue)
      def resolution: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Resolution] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("resolution", resolutionValue)
      def aspectRatio: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AspectRatio] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("aspectRatio", aspectRatioValue)
      def maxWidth: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.DigitsOrAuto] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("maxWidth", maxWidthValue)
      def maxHeight: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.DigitsOrAuto] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("maxHeight", maxHeightValue)
      def displayAspectRatio: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.AspectRatio] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("displayAspectRatio", displayAspectRatioValue)
      def sizingPolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.SizingPolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("sizingPolicy", sizingPolicyValue)
      def paddingPolicy: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.PaddingPolicy] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("paddingPolicy", paddingPolicyValue)
      def watermarks: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[PresetWatermark.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("watermarks", watermarksValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.VideoParameters) extends VideoParameters.ReadOnly {
      override def codecValue: scala.Option[primitives.VideoCodec] = scala.Option(impl.codec()).map(value => value: primitives.VideoCodec)
      override def codecOptionsValue: scala.Option[Map[primitives.CodecOption, primitives.CodecOption]] = scala.Option(impl.codecOptions()).map(value => value.asScala.map({
        case (key, value) =>
          (key: primitives.CodecOption) -> (value: primitives.CodecOption)
      }).toMap)
      override def keyframesMaxDistValue: scala.Option[primitives.KeyframesMaxDist] = scala.Option(impl.keyframesMaxDist()).map(value => value: primitives.KeyframesMaxDist)
      override def fixedGOPValue: scala.Option[primitives.FixedGOP] = scala.Option(impl.fixedGOP()).map(value => value: primitives.FixedGOP)
      override def bitRateValue: scala.Option[primitives.VideoBitRate] = scala.Option(impl.bitRate()).map(value => value: primitives.VideoBitRate)
      override def frameRateValue: scala.Option[primitives.FrameRate] = scala.Option(impl.frameRate()).map(value => value: primitives.FrameRate)
      override def maxFrameRateValue: scala.Option[primitives.MaxFrameRate] = scala.Option(impl.maxFrameRate()).map(value => value: primitives.MaxFrameRate)
      override def resolutionValue: scala.Option[primitives.Resolution] = scala.Option(impl.resolution()).map(value => value: primitives.Resolution)
      override def aspectRatioValue: scala.Option[primitives.AspectRatio] = scala.Option(impl.aspectRatio()).map(value => value: primitives.AspectRatio)
      override def maxWidthValue: scala.Option[primitives.DigitsOrAuto] = scala.Option(impl.maxWidth()).map(value => value: primitives.DigitsOrAuto)
      override def maxHeightValue: scala.Option[primitives.DigitsOrAuto] = scala.Option(impl.maxHeight()).map(value => value: primitives.DigitsOrAuto)
      override def displayAspectRatioValue: scala.Option[primitives.AspectRatio] = scala.Option(impl.displayAspectRatio()).map(value => value: primitives.AspectRatio)
      override def sizingPolicyValue: scala.Option[primitives.SizingPolicy] = scala.Option(impl.sizingPolicy()).map(value => value: primitives.SizingPolicy)
      override def paddingPolicyValue: scala.Option[primitives.PaddingPolicy] = scala.Option(impl.paddingPolicy()).map(value => value: primitives.PaddingPolicy)
      override def watermarksValue: scala.Option[List[PresetWatermark.ReadOnly]] = scala.Option(impl.watermarks()).map(value => value.asScala.map { item => 
        PresetWatermark.wrap(item)
      }.toList)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.VideoParameters): ReadOnly = new Wrapper(impl)
  }
  case class Warning(code: scala.Option[String] = None, message: scala.Option[String] = None) {
    def buildAwsValue(): software.amazon.awssdk.services.elastictranscoder.model.Warning = {
      import Warning.zioAwsBuilderHelper.BuilderOps
      software.amazon.awssdk.services.elastictranscoder.model.Warning.builder().optionallyWith(code.map(value => value: java.lang.String))(_.code).optionallyWith(message.map(value => value: java.lang.String))(_.message).build()
    }
    def asReadOnly: Warning.ReadOnly = Warning.wrap(buildAwsValue())
  }
  object Warning {
    private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elastictranscoder.model.Warning] = io.github.vigoo.zioaws.core.BuilderHelper.apply
    trait ReadOnly {
      def editable: Warning = Warning(codeValue.map(value => value), messageValue.map(value => value))
      def codeValue: scala.Option[String]
      def messageValue: scala.Option[String]
      def code: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("code", codeValue)
      def message: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("message", messageValue)
    }
    private class Wrapper(impl: software.amazon.awssdk.services.elastictranscoder.model.Warning) extends Warning.ReadOnly {
      override def codeValue: scala.Option[String] = scala.Option(impl.code()).map(value => value: String)
      override def messageValue: scala.Option[String] = scala.Option(impl.message()).map(value => value: String)
    }
    def wrap(impl: software.amazon.awssdk.services.elastictranscoder.model.Warning): ReadOnly = new Wrapper(impl)
  }
  type Warnings = List[Warning]
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy