
zio.aws.qbusiness.model.MessageUsefulnessFeedback.scala Maven / Gradle / Ivy
package zio.aws.qbusiness.model
import zio.aws.qbusiness.model.primitives.{Timestamp, MessageUsefulnessComment}
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 MessageUsefulnessFeedback(
usefulness: zio.aws.qbusiness.model.MessageUsefulness,
reason: Optional[zio.aws.qbusiness.model.MessageUsefulnessReason] =
Optional.Absent,
comment: Optional[MessageUsefulnessComment] = Optional.Absent,
submittedAt: Timestamp
) {
def buildAwsValue()
: software.amazon.awssdk.services.qbusiness.model.MessageUsefulnessFeedback = {
import MessageUsefulnessFeedback.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.qbusiness.model.MessageUsefulnessFeedback
.builder()
.usefulness(usefulness.unwrap)
.optionallyWith(reason.map(value => value.unwrap))(_.reason)
.optionallyWith(
comment.map(value =>
MessageUsefulnessComment.unwrap(value): java.lang.String
)
)(_.comment)
.submittedAt(Timestamp.unwrap(submittedAt): Instant)
.build()
}
def asReadOnly: zio.aws.qbusiness.model.MessageUsefulnessFeedback.ReadOnly =
zio.aws.qbusiness.model.MessageUsefulnessFeedback.wrap(buildAwsValue())
}
object MessageUsefulnessFeedback {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.qbusiness.model.MessageUsefulnessFeedback
] = BuilderHelper.apply
trait ReadOnly {
def asEditable: zio.aws.qbusiness.model.MessageUsefulnessFeedback =
zio.aws.qbusiness.model.MessageUsefulnessFeedback(
usefulness,
reason.map(value => value),
comment.map(value => value),
submittedAt
)
def usefulness: zio.aws.qbusiness.model.MessageUsefulness
def reason: Optional[zio.aws.qbusiness.model.MessageUsefulnessReason]
def comment: Optional[MessageUsefulnessComment]
def submittedAt: Timestamp
def getUsefulness
: ZIO[Any, Nothing, zio.aws.qbusiness.model.MessageUsefulness] =
ZIO.succeed(usefulness)
def getReason
: ZIO[Any, AwsError, zio.aws.qbusiness.model.MessageUsefulnessReason] =
AwsError.unwrapOptionField("reason", reason)
def getComment: ZIO[Any, AwsError, MessageUsefulnessComment] =
AwsError.unwrapOptionField("comment", comment)
def getSubmittedAt: ZIO[Any, Nothing, Timestamp] = ZIO.succeed(submittedAt)
}
private final class Wrapper(
impl: software.amazon.awssdk.services.qbusiness.model.MessageUsefulnessFeedback
) extends zio.aws.qbusiness.model.MessageUsefulnessFeedback.ReadOnly {
override val usefulness: zio.aws.qbusiness.model.MessageUsefulness =
zio.aws.qbusiness.model.MessageUsefulness.wrap(impl.usefulness())
override val reason
: Optional[zio.aws.qbusiness.model.MessageUsefulnessReason] =
zio.aws.core.internal
.optionalFromNullable(impl.reason())
.map(value =>
zio.aws.qbusiness.model.MessageUsefulnessReason.wrap(value)
)
override val comment: Optional[MessageUsefulnessComment] =
zio.aws.core.internal
.optionalFromNullable(impl.comment())
.map(value =>
zio.aws.qbusiness.model.primitives.MessageUsefulnessComment(value)
)
override val submittedAt: Timestamp =
zio.aws.qbusiness.model.primitives.Timestamp(impl.submittedAt())
}
def wrap(
impl: software.amazon.awssdk.services.qbusiness.model.MessageUsefulnessFeedback
): zio.aws.qbusiness.model.MessageUsefulnessFeedback.ReadOnly = new Wrapper(
impl
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy