
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