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

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

package zio.aws.qbusiness.model
import zio.aws.qbusiness.model.primitives.{
  DataAccessorName,
  IdcApplicationArn,
  Timestamp,
  DataAccessorId,
  PrincipalRoleArn,
  DataAccessorArn
}
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 DataAccessor(
    displayName: Optional[DataAccessorName] = Optional.Absent,
    dataAccessorId: Optional[DataAccessorId] = Optional.Absent,
    dataAccessorArn: Optional[DataAccessorArn] = Optional.Absent,
    idcApplicationArn: Optional[IdcApplicationArn] = Optional.Absent,
    principal: Optional[PrincipalRoleArn] = Optional.Absent,
    createdAt: Optional[Timestamp] = Optional.Absent,
    updatedAt: Optional[Timestamp] = Optional.Absent
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.qbusiness.model.DataAccessor = {
    import DataAccessor.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.qbusiness.model.DataAccessor
      .builder()
      .optionallyWith(
        displayName.map(value =>
          DataAccessorName.unwrap(value): java.lang.String
        )
      )(_.displayName)
      .optionallyWith(
        dataAccessorId.map(value =>
          DataAccessorId.unwrap(value): java.lang.String
        )
      )(_.dataAccessorId)
      .optionallyWith(
        dataAccessorArn.map(value =>
          DataAccessorArn.unwrap(value): java.lang.String
        )
      )(_.dataAccessorArn)
      .optionallyWith(
        idcApplicationArn.map(value =>
          IdcApplicationArn.unwrap(value): java.lang.String
        )
      )(_.idcApplicationArn)
      .optionallyWith(
        principal.map(value => PrincipalRoleArn.unwrap(value): java.lang.String)
      )(_.principal)
      .optionallyWith(createdAt.map(value => Timestamp.unwrap(value): Instant))(
        _.createdAt
      )
      .optionallyWith(updatedAt.map(value => Timestamp.unwrap(value): Instant))(
        _.updatedAt
      )
      .build()
  }
  def asReadOnly: zio.aws.qbusiness.model.DataAccessor.ReadOnly =
    zio.aws.qbusiness.model.DataAccessor.wrap(buildAwsValue())
}
object DataAccessor {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.qbusiness.model.DataAccessor
  ] = BuilderHelper.apply
  trait ReadOnly {
    def asEditable: zio.aws.qbusiness.model.DataAccessor =
      zio.aws.qbusiness.model.DataAccessor(
        displayName.map(value => value),
        dataAccessorId.map(value => value),
        dataAccessorArn.map(value => value),
        idcApplicationArn.map(value => value),
        principal.map(value => value),
        createdAt.map(value => value),
        updatedAt.map(value => value)
      )
    def displayName: Optional[DataAccessorName]
    def dataAccessorId: Optional[DataAccessorId]
    def dataAccessorArn: Optional[DataAccessorArn]
    def idcApplicationArn: Optional[IdcApplicationArn]
    def principal: Optional[PrincipalRoleArn]
    def createdAt: Optional[Timestamp]
    def updatedAt: Optional[Timestamp]
    def getDisplayName: ZIO[Any, AwsError, DataAccessorName] =
      AwsError.unwrapOptionField("displayName", displayName)
    def getDataAccessorId: ZIO[Any, AwsError, DataAccessorId] =
      AwsError.unwrapOptionField("dataAccessorId", dataAccessorId)
    def getDataAccessorArn: ZIO[Any, AwsError, DataAccessorArn] =
      AwsError.unwrapOptionField("dataAccessorArn", dataAccessorArn)
    def getIdcApplicationArn: ZIO[Any, AwsError, IdcApplicationArn] =
      AwsError.unwrapOptionField("idcApplicationArn", idcApplicationArn)
    def getPrincipal: ZIO[Any, AwsError, PrincipalRoleArn] =
      AwsError.unwrapOptionField("principal", principal)
    def getCreatedAt: ZIO[Any, AwsError, Timestamp] =
      AwsError.unwrapOptionField("createdAt", createdAt)
    def getUpdatedAt: ZIO[Any, AwsError, Timestamp] =
      AwsError.unwrapOptionField("updatedAt", updatedAt)
  }
  private final class Wrapper(
      impl: software.amazon.awssdk.services.qbusiness.model.DataAccessor
  ) extends zio.aws.qbusiness.model.DataAccessor.ReadOnly {
    override val displayName: Optional[DataAccessorName] = zio.aws.core.internal
      .optionalFromNullable(impl.displayName())
      .map(value => zio.aws.qbusiness.model.primitives.DataAccessorName(value))
    override val dataAccessorId: Optional[DataAccessorId] =
      zio.aws.core.internal
        .optionalFromNullable(impl.dataAccessorId())
        .map(value => zio.aws.qbusiness.model.primitives.DataAccessorId(value))
    override val dataAccessorArn: Optional[DataAccessorArn] =
      zio.aws.core.internal
        .optionalFromNullable(impl.dataAccessorArn())
        .map(value => zio.aws.qbusiness.model.primitives.DataAccessorArn(value))
    override val idcApplicationArn: Optional[IdcApplicationArn] =
      zio.aws.core.internal
        .optionalFromNullable(impl.idcApplicationArn())
        .map(value =>
          zio.aws.qbusiness.model.primitives.IdcApplicationArn(value)
        )
    override val principal: Optional[PrincipalRoleArn] = zio.aws.core.internal
      .optionalFromNullable(impl.principal())
      .map(value => zio.aws.qbusiness.model.primitives.PrincipalRoleArn(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))
  }
  def wrap(
      impl: software.amazon.awssdk.services.qbusiness.model.DataAccessor
  ): zio.aws.qbusiness.model.DataAccessor.ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy