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

zio.aws.qbusiness.model.SourceAttribution.scala Maven / Gradle / Ivy

package zio.aws.qbusiness.model
import zio.aws.qbusiness.model.primitives.{Timestamp, Integer}
import java.time.Instant
import zio.prelude.data.Optional
import zio.aws.core.{AwsError, BuilderHelper}
import zio.ZIO
import scala.jdk.CollectionConverters._
final case class SourceAttribution(
    title: Optional[String] = Optional.Absent,
    snippet: Optional[String] = Optional.Absent,
    url: Optional[String] = Optional.Absent,
    citationNumber: Optional[Integer] = Optional.Absent,
    updatedAt: Optional[Timestamp] = Optional.Absent,
    textMessageSegments: Optional[
      Iterable[zio.aws.qbusiness.model.TextSegment]
    ] = Optional.Absent
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.qbusiness.model.SourceAttribution = {
    import SourceAttribution.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.qbusiness.model.SourceAttribution
      .builder()
      .optionallyWith(title.map(value => value: java.lang.String))(_.title)
      .optionallyWith(snippet.map(value => value: java.lang.String))(_.snippet)
      .optionallyWith(url.map(value => value: java.lang.String))(_.url)
      .optionallyWith(citationNumber.map(value => value: java.lang.Integer))(
        _.citationNumber
      )
      .optionallyWith(updatedAt.map(value => Timestamp.unwrap(value): Instant))(
        _.updatedAt
      )
      .optionallyWith(
        textMessageSegments.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.textMessageSegments)
      .build()
  }
  def asReadOnly: zio.aws.qbusiness.model.SourceAttribution.ReadOnly =
    zio.aws.qbusiness.model.SourceAttribution.wrap(buildAwsValue())
}
object SourceAttribution {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.qbusiness.model.SourceAttribution
  ] = BuilderHelper.apply
  trait ReadOnly {
    def asEditable: zio.aws.qbusiness.model.SourceAttribution =
      zio.aws.qbusiness.model.SourceAttribution(
        title.map(value => value),
        snippet.map(value => value),
        url.map(value => value),
        citationNumber.map(value => value),
        updatedAt.map(value => value),
        textMessageSegments.map(value =>
          value.map { item =>
            item.asEditable
          }
        )
      )
    def title: Optional[String]
    def snippet: Optional[String]
    def url: Optional[String]
    def citationNumber: Optional[Integer]
    def updatedAt: Optional[Timestamp]
    def textMessageSegments
        : Optional[List[zio.aws.qbusiness.model.TextSegment.ReadOnly]]
    def getTitle: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("title", title)
    def getSnippet: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("snippet", snippet)
    def getUrl: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("url", url)
    def getCitationNumber: ZIO[Any, AwsError, Integer] =
      AwsError.unwrapOptionField("citationNumber", citationNumber)
    def getUpdatedAt: ZIO[Any, AwsError, Timestamp] =
      AwsError.unwrapOptionField("updatedAt", updatedAt)
    def getTextMessageSegments: ZIO[Any, AwsError, List[
      zio.aws.qbusiness.model.TextSegment.ReadOnly
    ]] = AwsError.unwrapOptionField("textMessageSegments", textMessageSegments)
  }
  private final class Wrapper(
      impl: software.amazon.awssdk.services.qbusiness.model.SourceAttribution
  ) extends zio.aws.qbusiness.model.SourceAttribution.ReadOnly {
    override val title: Optional[String] = zio.aws.core.internal
      .optionalFromNullable(impl.title())
      .map(value => value: String)
    override val snippet: Optional[String] = zio.aws.core.internal
      .optionalFromNullable(impl.snippet())
      .map(value => value: String)
    override val url: Optional[String] = zio.aws.core.internal
      .optionalFromNullable(impl.url())
      .map(value => value: String)
    override val citationNumber: Optional[Integer] = zio.aws.core.internal
      .optionalFromNullable(impl.citationNumber())
      .map(value => value: Integer)
    override val updatedAt: Optional[Timestamp] = zio.aws.core.internal
      .optionalFromNullable(impl.updatedAt())
      .map(value => zio.aws.qbusiness.model.primitives.Timestamp(value))
    override val textMessageSegments
        : Optional[List[zio.aws.qbusiness.model.TextSegment.ReadOnly]] =
      zio.aws.core.internal
        .optionalFromNullable(impl.textMessageSegments())
        .map(value =>
          value.asScala.map { item =>
            zio.aws.qbusiness.model.TextSegment.wrap(item)
          }.toList
        )
  }
  def wrap(
      impl: software.amazon.awssdk.services.qbusiness.model.SourceAttribution
  ): zio.aws.qbusiness.model.SourceAttribution.ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy