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

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

package zio.aws.qbusiness.model
import zio.aws.qbusiness.model.primitives.{Timestamp, IndexId, IndexName}
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 Index(
    displayName: Optional[IndexName] = Optional.Absent,
    indexId: Optional[IndexId] = Optional.Absent,
    createdAt: Optional[Timestamp] = Optional.Absent,
    updatedAt: Optional[Timestamp] = Optional.Absent,
    status: Optional[zio.aws.qbusiness.model.IndexStatus] = Optional.Absent
) {
  def buildAwsValue(): software.amazon.awssdk.services.qbusiness.model.Index = {
    import Index.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.qbusiness.model.Index
      .builder()
      .optionallyWith(
        displayName.map(value => IndexName.unwrap(value): java.lang.String)
      )(_.displayName)
      .optionallyWith(
        indexId.map(value => IndexId.unwrap(value): java.lang.String)
      )(_.indexId)
      .optionallyWith(createdAt.map(value => Timestamp.unwrap(value): Instant))(
        _.createdAt
      )
      .optionallyWith(updatedAt.map(value => Timestamp.unwrap(value): Instant))(
        _.updatedAt
      )
      .optionallyWith(status.map(value => value.unwrap))(_.status)
      .build()
  }
  def asReadOnly: zio.aws.qbusiness.model.Index.ReadOnly =
    zio.aws.qbusiness.model.Index.wrap(buildAwsValue())
}
object Index {
  private lazy val zioAwsBuilderHelper
      : BuilderHelper[software.amazon.awssdk.services.qbusiness.model.Index] =
    BuilderHelper.apply
  trait ReadOnly {
    def asEditable: zio.aws.qbusiness.model.Index =
      zio.aws.qbusiness.model.Index(
        displayName.map(value => value),
        indexId.map(value => value),
        createdAt.map(value => value),
        updatedAt.map(value => value),
        status.map(value => value)
      )
    def displayName: Optional[IndexName]
    def indexId: Optional[IndexId]
    def createdAt: Optional[Timestamp]
    def updatedAt: Optional[Timestamp]
    def status: Optional[zio.aws.qbusiness.model.IndexStatus]
    def getDisplayName: ZIO[Any, AwsError, IndexName] =
      AwsError.unwrapOptionField("displayName", displayName)
    def getIndexId: ZIO[Any, AwsError, IndexId] =
      AwsError.unwrapOptionField("indexId", indexId)
    def getCreatedAt: ZIO[Any, AwsError, Timestamp] =
      AwsError.unwrapOptionField("createdAt", createdAt)
    def getUpdatedAt: ZIO[Any, AwsError, Timestamp] =
      AwsError.unwrapOptionField("updatedAt", updatedAt)
    def getStatus: ZIO[Any, AwsError, zio.aws.qbusiness.model.IndexStatus] =
      AwsError.unwrapOptionField("status", status)
  }
  private final class Wrapper(
      impl: software.amazon.awssdk.services.qbusiness.model.Index
  ) extends zio.aws.qbusiness.model.Index.ReadOnly {
    override val displayName: Optional[IndexName] = zio.aws.core.internal
      .optionalFromNullable(impl.displayName())
      .map(value => zio.aws.qbusiness.model.primitives.IndexName(value))
    override val indexId: Optional[IndexId] = zio.aws.core.internal
      .optionalFromNullable(impl.indexId())
      .map(value => zio.aws.qbusiness.model.primitives.IndexId(value))
    override val createdAt: Optional[Timestamp] = zio.aws.core.internal
      .optionalFromNullable(impl.createdAt())
      .map(value => zio.aws.qbusiness.model.primitives.Timestamp(value))
    override val updatedAt: Optional[Timestamp] = zio.aws.core.internal
      .optionalFromNullable(impl.updatedAt())
      .map(value => zio.aws.qbusiness.model.primitives.Timestamp(value))
    override val status: Optional[zio.aws.qbusiness.model.IndexStatus] =
      zio.aws.core.internal
        .optionalFromNullable(impl.status())
        .map(value => zio.aws.qbusiness.model.IndexStatus.wrap(value))
  }
  def wrap(
      impl: software.amazon.awssdk.services.qbusiness.model.Index
  ): zio.aws.qbusiness.model.Index.ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy