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

zio.aws.transcribe.model.StartMedicalScribeJobRequest.scala Maven / Gradle / Ivy

package zio.aws.transcribe.model
import zio.ZIO
import zio.aws.transcribe.model.primitives.{
  DataAccessRoleArn,
  OutputBucketName,
  NonEmptyString,
  TranscriptionJobName,
  KMSKeyId
}
import zio.aws.core.{AwsError, BuilderHelper}
import zio.prelude.data.Optional
import scala.jdk.CollectionConverters._
final case class StartMedicalScribeJobRequest(
    medicalScribeJobName: TranscriptionJobName,
    media: zio.aws.transcribe.model.Media,
    outputBucketName: OutputBucketName,
    outputEncryptionKMSKeyId: Optional[KMSKeyId] = Optional.Absent,
    kmsEncryptionContext: Optional[Map[NonEmptyString, NonEmptyString]] =
      Optional.Absent,
    dataAccessRoleArn: DataAccessRoleArn,
    settings: zio.aws.transcribe.model.MedicalScribeSettings,
    channelDefinitions: Optional[
      Iterable[zio.aws.transcribe.model.MedicalScribeChannelDefinition]
    ] = Optional.Absent,
    tags: Optional[Iterable[zio.aws.transcribe.model.Tag]] = Optional.Absent
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.transcribe.model.StartMedicalScribeJobRequest = {
    import StartMedicalScribeJobRequest.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.transcribe.model.StartMedicalScribeJobRequest
      .builder()
      .medicalScribeJobName(
        TranscriptionJobName.unwrap(medicalScribeJobName): java.lang.String
      )
      .media(media.buildAwsValue())
      .outputBucketName(
        OutputBucketName.unwrap(outputBucketName): java.lang.String
      )
      .optionallyWith(
        outputEncryptionKMSKeyId.map(value =>
          KMSKeyId.unwrap(value): java.lang.String
        )
      )(_.outputEncryptionKMSKeyId)
      .optionallyWith(
        kmsEncryptionContext.map(value =>
          value
            .map({ case (key, value) =>
              (NonEmptyString.unwrap(key): java.lang.String) -> (NonEmptyString
                .unwrap(value): java.lang.String)
            })
            .asJava
        )
      )(_.kmsEncryptionContext)
      .dataAccessRoleArn(
        DataAccessRoleArn.unwrap(dataAccessRoleArn): java.lang.String
      )
      .settings(settings.buildAwsValue())
      .optionallyWith(
        channelDefinitions.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.channelDefinitions)
      .optionallyWith(
        tags.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.tags)
      .build()
  }
  def asReadOnly
      : zio.aws.transcribe.model.StartMedicalScribeJobRequest.ReadOnly =
    zio.aws.transcribe.model.StartMedicalScribeJobRequest.wrap(buildAwsValue())
}
object StartMedicalScribeJobRequest {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.transcribe.model.StartMedicalScribeJobRequest
  ] = BuilderHelper.apply
  trait ReadOnly {
    def asEditable: zio.aws.transcribe.model.StartMedicalScribeJobRequest =
      zio.aws.transcribe.model.StartMedicalScribeJobRequest(
        medicalScribeJobName,
        media.asEditable,
        outputBucketName,
        outputEncryptionKMSKeyId.map(value => value),
        kmsEncryptionContext.map(value => value),
        dataAccessRoleArn,
        settings.asEditable,
        channelDefinitions.map(value =>
          value.map { item =>
            item.asEditable
          }
        ),
        tags.map(value =>
          value.map { item =>
            item.asEditable
          }
        )
      )
    def medicalScribeJobName: TranscriptionJobName
    def media: zio.aws.transcribe.model.Media.ReadOnly
    def outputBucketName: OutputBucketName
    def outputEncryptionKMSKeyId: Optional[KMSKeyId]
    def kmsEncryptionContext: Optional[Map[NonEmptyString, NonEmptyString]]
    def dataAccessRoleArn: DataAccessRoleArn
    def settings: zio.aws.transcribe.model.MedicalScribeSettings.ReadOnly
    def channelDefinitions: Optional[
      List[zio.aws.transcribe.model.MedicalScribeChannelDefinition.ReadOnly]
    ]
    def tags: Optional[List[zio.aws.transcribe.model.Tag.ReadOnly]]
    def getMedicalScribeJobName: ZIO[Any, Nothing, TranscriptionJobName] =
      ZIO.succeed(medicalScribeJobName)
    def getMedia: ZIO[Any, Nothing, zio.aws.transcribe.model.Media.ReadOnly] =
      ZIO.succeed(media)
    def getOutputBucketName: ZIO[Any, Nothing, OutputBucketName] =
      ZIO.succeed(outputBucketName)
    def getOutputEncryptionKMSKeyId: ZIO[Any, AwsError, KMSKeyId] = AwsError
      .unwrapOptionField("outputEncryptionKMSKeyId", outputEncryptionKMSKeyId)
    def getKmsEncryptionContext
        : ZIO[Any, AwsError, Map[NonEmptyString, NonEmptyString]] =
      AwsError.unwrapOptionField("kmsEncryptionContext", kmsEncryptionContext)
    def getDataAccessRoleArn: ZIO[Any, Nothing, DataAccessRoleArn] =
      ZIO.succeed(dataAccessRoleArn)
    def getSettings: ZIO[
      Any,
      Nothing,
      zio.aws.transcribe.model.MedicalScribeSettings.ReadOnly
    ] = ZIO.succeed(settings)
    def getChannelDefinitions: ZIO[Any, AwsError, List[
      zio.aws.transcribe.model.MedicalScribeChannelDefinition.ReadOnly
    ]] = AwsError.unwrapOptionField("channelDefinitions", channelDefinitions)
    def getTags
        : ZIO[Any, AwsError, List[zio.aws.transcribe.model.Tag.ReadOnly]] =
      AwsError.unwrapOptionField("tags", tags)
  }
  private final class Wrapper(
      impl: software.amazon.awssdk.services.transcribe.model.StartMedicalScribeJobRequest
  ) extends zio.aws.transcribe.model.StartMedicalScribeJobRequest.ReadOnly {
    override val medicalScribeJobName: TranscriptionJobName =
      zio.aws.transcribe.model.primitives
        .TranscriptionJobName(impl.medicalScribeJobName())
    override val media: zio.aws.transcribe.model.Media.ReadOnly =
      zio.aws.transcribe.model.Media.wrap(impl.media())
    override val outputBucketName: OutputBucketName =
      zio.aws.transcribe.model.primitives
        .OutputBucketName(impl.outputBucketName())
    override val outputEncryptionKMSKeyId: Optional[KMSKeyId] =
      zio.aws.core.internal
        .optionalFromNullable(impl.outputEncryptionKMSKeyId())
        .map(value => zio.aws.transcribe.model.primitives.KMSKeyId(value))
    override val kmsEncryptionContext
        : Optional[Map[NonEmptyString, NonEmptyString]] = zio.aws.core.internal
      .optionalFromNullable(impl.kmsEncryptionContext())
      .map(value =>
        value.asScala
          .map({ case (key, value) =>
            zio.aws.transcribe.model.primitives.NonEmptyString(
              key
            ) -> zio.aws.transcribe.model.primitives.NonEmptyString(value)
          })
          .toMap
      )
    override val dataAccessRoleArn: DataAccessRoleArn =
      zio.aws.transcribe.model.primitives
        .DataAccessRoleArn(impl.dataAccessRoleArn())
    override val settings
        : zio.aws.transcribe.model.MedicalScribeSettings.ReadOnly =
      zio.aws.transcribe.model.MedicalScribeSettings.wrap(impl.settings())
    override val channelDefinitions: Optional[
      List[zio.aws.transcribe.model.MedicalScribeChannelDefinition.ReadOnly]
    ] = zio.aws.core.internal
      .optionalFromNullable(impl.channelDefinitions())
      .map(value =>
        value.asScala.map { item =>
          zio.aws.transcribe.model.MedicalScribeChannelDefinition.wrap(item)
        }.toList
      )
    override val tags: Optional[List[zio.aws.transcribe.model.Tag.ReadOnly]] =
      zio.aws.core.internal
        .optionalFromNullable(impl.tags())
        .map(value =>
          value.asScala.map { item =>
            zio.aws.transcribe.model.Tag.wrap(item)
          }.toList
        )
  }
  def wrap(
      impl: software.amazon.awssdk.services.transcribe.model.StartMedicalScribeJobRequest
  ): zio.aws.transcribe.model.StartMedicalScribeJobRequest.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy