
zio.aws.qbusiness.model.AssociatePermissionRequest.scala Maven / Gradle / Ivy
package zio.aws.qbusiness.model
import zio.ZIO
import zio.aws.core.BuilderHelper
import zio.aws.qbusiness.model.primitives.{
PrincipalRoleArn,
QIamAction,
StatementId,
ApplicationId
}
import scala.jdk.CollectionConverters._
final case class AssociatePermissionRequest(
applicationId: ApplicationId,
statementId: StatementId,
actions: Iterable[QIamAction],
principal: PrincipalRoleArn
) {
def buildAwsValue()
: software.amazon.awssdk.services.qbusiness.model.AssociatePermissionRequest = {
import AssociatePermissionRequest.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.qbusiness.model.AssociatePermissionRequest
.builder()
.applicationId(ApplicationId.unwrap(applicationId): java.lang.String)
.statementId(StatementId.unwrap(statementId): java.lang.String)
.actions(actions.map { item =>
QIamAction.unwrap(item): java.lang.String
}.asJavaCollection)
.principal(PrincipalRoleArn.unwrap(principal): java.lang.String)
.build()
}
def asReadOnly: zio.aws.qbusiness.model.AssociatePermissionRequest.ReadOnly =
zio.aws.qbusiness.model.AssociatePermissionRequest.wrap(buildAwsValue())
}
object AssociatePermissionRequest {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.qbusiness.model.AssociatePermissionRequest
] = BuilderHelper.apply
trait ReadOnly {
def asEditable: zio.aws.qbusiness.model.AssociatePermissionRequest =
zio.aws.qbusiness.model.AssociatePermissionRequest(
applicationId,
statementId,
actions,
principal
)
def applicationId: ApplicationId
def statementId: StatementId
def actions: List[QIamAction]
def principal: PrincipalRoleArn
def getApplicationId: ZIO[Any, Nothing, ApplicationId] =
ZIO.succeed(applicationId)
def getStatementId: ZIO[Any, Nothing, StatementId] =
ZIO.succeed(statementId)
def getActions: ZIO[Any, Nothing, List[QIamAction]] = ZIO.succeed(actions)
def getPrincipal: ZIO[Any, Nothing, PrincipalRoleArn] =
ZIO.succeed(principal)
}
private final class Wrapper(
impl: software.amazon.awssdk.services.qbusiness.model.AssociatePermissionRequest
) extends zio.aws.qbusiness.model.AssociatePermissionRequest.ReadOnly {
override val applicationId: ApplicationId =
zio.aws.qbusiness.model.primitives.ApplicationId(impl.applicationId())
override val statementId: StatementId =
zio.aws.qbusiness.model.primitives.StatementId(impl.statementId())
override val actions: List[QIamAction] = impl
.actions()
.asScala
.map { item =>
zio.aws.qbusiness.model.primitives.QIamAction(item)
}
.toList
override val principal: PrincipalRoleArn =
zio.aws.qbusiness.model.primitives.PrincipalRoleArn(impl.principal())
}
def wrap(
impl: software.amazon.awssdk.services.qbusiness.model.AssociatePermissionRequest
): zio.aws.qbusiness.model.AssociatePermissionRequest.ReadOnly = new Wrapper(
impl
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy