
zio.aws.qbusiness.model.Message.scala Maven / Gradle / Ivy
package zio.aws.qbusiness.model
import zio.aws.qbusiness.model.primitives.{Timestamp, MessageBody}
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 Message(
messageId: Optional[String] = Optional.Absent,
body: Optional[MessageBody] = Optional.Absent,
time: Optional[Timestamp] = Optional.Absent,
`type`: Optional[zio.aws.qbusiness.model.MessageType] = Optional.Absent,
attachments: Optional[Iterable[zio.aws.qbusiness.model.AttachmentOutput]] =
Optional.Absent,
sourceAttribution: Optional[
Iterable[zio.aws.qbusiness.model.SourceAttribution]
] = Optional.Absent,
actionReview: Optional[zio.aws.qbusiness.model.ActionReview] =
Optional.Absent,
actionExecution: Optional[zio.aws.qbusiness.model.ActionExecution] =
Optional.Absent
) {
def buildAwsValue()
: software.amazon.awssdk.services.qbusiness.model.Message = {
import Message.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.qbusiness.model.Message
.builder()
.optionallyWith(messageId.map(value => value: java.lang.String))(
_.messageId
)
.optionallyWith(
body.map(value => MessageBody.unwrap(value): java.lang.String)
)(_.body)
.optionallyWith(time.map(value => Timestamp.unwrap(value): Instant))(
_.time
)
.optionallyWith(`type`.map(value => value.unwrap))(_.`type`)
.optionallyWith(
attachments.map(value =>
value.map { item =>
item.buildAwsValue()
}.asJavaCollection
)
)(_.attachments)
.optionallyWith(
sourceAttribution.map(value =>
value.map { item =>
item.buildAwsValue()
}.asJavaCollection
)
)(_.sourceAttribution)
.optionallyWith(actionReview.map(value => value.buildAwsValue()))(
_.actionReview
)
.optionallyWith(actionExecution.map(value => value.buildAwsValue()))(
_.actionExecution
)
.build()
}
def asReadOnly: zio.aws.qbusiness.model.Message.ReadOnly =
zio.aws.qbusiness.model.Message.wrap(buildAwsValue())
}
object Message {
private lazy val zioAwsBuilderHelper
: BuilderHelper[software.amazon.awssdk.services.qbusiness.model.Message] =
BuilderHelper.apply
trait ReadOnly {
def asEditable: zio.aws.qbusiness.model.Message =
zio.aws.qbusiness.model.Message(
messageId.map(value => value),
body.map(value => value),
time.map(value => value),
`type`.map(value => value),
attachments.map(value =>
value.map { item =>
item.asEditable
}
),
sourceAttribution.map(value =>
value.map { item =>
item.asEditable
}
),
actionReview.map(value => value.asEditable),
actionExecution.map(value => value.asEditable)
)
def messageId: Optional[String]
def body: Optional[MessageBody]
def time: Optional[Timestamp]
def `type`: Optional[zio.aws.qbusiness.model.MessageType]
def attachments
: Optional[List[zio.aws.qbusiness.model.AttachmentOutput.ReadOnly]]
def sourceAttribution
: Optional[List[zio.aws.qbusiness.model.SourceAttribution.ReadOnly]]
def actionReview: Optional[zio.aws.qbusiness.model.ActionReview.ReadOnly]
def actionExecution
: Optional[zio.aws.qbusiness.model.ActionExecution.ReadOnly]
def getMessageId: ZIO[Any, AwsError, String] =
AwsError.unwrapOptionField("messageId", messageId)
def getBody: ZIO[Any, AwsError, MessageBody] =
AwsError.unwrapOptionField("body", body)
def getTime: ZIO[Any, AwsError, Timestamp] =
AwsError.unwrapOptionField("time", time)
def getType: ZIO[Any, AwsError, zio.aws.qbusiness.model.MessageType] =
AwsError.unwrapOptionField("type", `type`)
def getAttachments: ZIO[Any, AwsError, List[
zio.aws.qbusiness.model.AttachmentOutput.ReadOnly
]] = AwsError.unwrapOptionField("attachments", attachments)
def getSourceAttribution: ZIO[Any, AwsError, List[
zio.aws.qbusiness.model.SourceAttribution.ReadOnly
]] = AwsError.unwrapOptionField("sourceAttribution", sourceAttribution)
def getActionReview
: ZIO[Any, AwsError, zio.aws.qbusiness.model.ActionReview.ReadOnly] =
AwsError.unwrapOptionField("actionReview", actionReview)
def getActionExecution
: ZIO[Any, AwsError, zio.aws.qbusiness.model.ActionExecution.ReadOnly] =
AwsError.unwrapOptionField("actionExecution", actionExecution)
}
private final class Wrapper(
impl: software.amazon.awssdk.services.qbusiness.model.Message
) extends zio.aws.qbusiness.model.Message.ReadOnly {
override val messageId: Optional[String] = zio.aws.core.internal
.optionalFromNullable(impl.messageId())
.map(value => value: String)
override val body: Optional[MessageBody] = zio.aws.core.internal
.optionalFromNullable(impl.body())
.map(value => zio.aws.qbusiness.model.primitives.MessageBody(value))
override val time: Optional[Timestamp] = zio.aws.core.internal
.optionalFromNullable(impl.time())
.map(value => zio.aws.qbusiness.model.primitives.Timestamp(value))
override val `type`: Optional[zio.aws.qbusiness.model.MessageType] =
zio.aws.core.internal
.optionalFromNullable(impl.`type`())
.map(value => zio.aws.qbusiness.model.MessageType.wrap(value))
override val attachments
: Optional[List[zio.aws.qbusiness.model.AttachmentOutput.ReadOnly]] =
zio.aws.core.internal
.optionalFromNullable(impl.attachments())
.map(value =>
value.asScala.map { item =>
zio.aws.qbusiness.model.AttachmentOutput.wrap(item)
}.toList
)
override val sourceAttribution
: Optional[List[zio.aws.qbusiness.model.SourceAttribution.ReadOnly]] =
zio.aws.core.internal
.optionalFromNullable(impl.sourceAttribution())
.map(value =>
value.asScala.map { item =>
zio.aws.qbusiness.model.SourceAttribution.wrap(item)
}.toList
)
override val actionReview
: Optional[zio.aws.qbusiness.model.ActionReview.ReadOnly] =
zio.aws.core.internal
.optionalFromNullable(impl.actionReview())
.map(value => zio.aws.qbusiness.model.ActionReview.wrap(value))
override val actionExecution
: Optional[zio.aws.qbusiness.model.ActionExecution.ReadOnly] =
zio.aws.core.internal
.optionalFromNullable(impl.actionExecution())
.map(value => zio.aws.qbusiness.model.ActionExecution.wrap(value))
}
def wrap(
impl: software.amazon.awssdk.services.qbusiness.model.Message
): zio.aws.qbusiness.model.Message.ReadOnly = new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy