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

io.github.vigoo.zioaws.route53resolver.model.AssociateFirewallRuleGroupRequest.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.route53resolver.model
import java.lang.Integer
import zio.ZIO
import io.github.vigoo.zioaws.route53resolver.model.primitives.{
  Name,
  Priority,
  ResourceId,
  CreatorRequestId
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class AssociateFirewallRuleGroupRequest(
    creatorRequestId: CreatorRequestId,
    firewallRuleGroupId: ResourceId,
    vpcId: ResourceId,
    priority: Priority,
    name: Name,
    mutationProtection: Option[
      io.github.vigoo.zioaws.route53resolver.model.MutationProtectionStatus
    ] = None,
    tags: Option[Iterable[io.github.vigoo.zioaws.route53resolver.model.Tag]] =
      None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.route53resolver.model.AssociateFirewallRuleGroupRequest = {
    import AssociateFirewallRuleGroupRequest.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.route53resolver.model.AssociateFirewallRuleGroupRequest
      .builder()
      .creatorRequestId(creatorRequestId: java.lang.String)
      .firewallRuleGroupId(firewallRuleGroupId: java.lang.String)
      .vpcId(vpcId: java.lang.String)
      .priority(priority: Integer)
      .name(name: java.lang.String)
      .optionallyWith(mutationProtection.map(value => value.unwrap))(
        _.mutationProtection
      )
      .optionallyWith(
        tags.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.tags)
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.route53resolver.model.AssociateFirewallRuleGroupRequest.ReadOnly =
    io.github.vigoo.zioaws.route53resolver.model.AssociateFirewallRuleGroupRequest
      .wrap(buildAwsValue())
}
object AssociateFirewallRuleGroupRequest {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.route53resolver.model.AssociateFirewallRuleGroupRequest
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.route53resolver.model.AssociateFirewallRuleGroupRequest =
      io.github.vigoo.zioaws.route53resolver.model
        .AssociateFirewallRuleGroupRequest(
          creatorRequestIdValue,
          firewallRuleGroupIdValue,
          vpcIdValue,
          priorityValue,
          nameValue,
          mutationProtectionValue.map(value => value),
          tagsValue.map(value =>
            value.map { item =>
              item.editable
            }
          )
        )
    def creatorRequestIdValue: CreatorRequestId
    def firewallRuleGroupIdValue: ResourceId
    def vpcIdValue: ResourceId
    def priorityValue: Priority
    def nameValue: Name
    def mutationProtectionValue: Option[
      io.github.vigoo.zioaws.route53resolver.model.MutationProtectionStatus
    ]
    def tagsValue: Option[
      List[io.github.vigoo.zioaws.route53resolver.model.Tag.ReadOnly]
    ]
    def creatorRequestId: ZIO[Any, Nothing, CreatorRequestId] =
      ZIO.succeed(creatorRequestIdValue)
    def firewallRuleGroupId: ZIO[Any, Nothing, ResourceId] =
      ZIO.succeed(firewallRuleGroupIdValue)
    def vpcId: ZIO[Any, Nothing, ResourceId] = ZIO.succeed(vpcIdValue)
    def priority: ZIO[Any, Nothing, Priority] = ZIO.succeed(priorityValue)
    def name: ZIO[Any, Nothing, Name] = ZIO.succeed(nameValue)
    def mutationProtection: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.route53resolver.model.MutationProtectionStatus
    ] =
      AwsError.unwrapOptionField("mutationProtection", mutationProtectionValue)
    def tags: ZIO[Any, AwsError, List[
      io.github.vigoo.zioaws.route53resolver.model.Tag.ReadOnly
    ]] = AwsError.unwrapOptionField("tags", tagsValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.route53resolver.model.AssociateFirewallRuleGroupRequest
  ) extends io.github.vigoo.zioaws.route53resolver.model.AssociateFirewallRuleGroupRequest.ReadOnly {
    override def creatorRequestIdValue: CreatorRequestId =
      impl.creatorRequestId(): CreatorRequestId
    override def firewallRuleGroupIdValue: ResourceId =
      impl.firewallRuleGroupId(): ResourceId
    override def vpcIdValue: ResourceId = impl.vpcId(): ResourceId
    override def priorityValue: Priority = impl.priority(): Priority
    override def nameValue: Name = impl.name(): Name
    override def mutationProtectionValue: Option[
      io.github.vigoo.zioaws.route53resolver.model.MutationProtectionStatus
    ] = scala
      .Option(impl.mutationProtection())
      .map(value =>
        io.github.vigoo.zioaws.route53resolver.model.MutationProtectionStatus
          .wrap(value)
      )
    override def tagsValue: Option[
      List[io.github.vigoo.zioaws.route53resolver.model.Tag.ReadOnly]
    ] = scala
      .Option(impl.tags())
      .map(value =>
        value.asScala.map { item =>
          io.github.vigoo.zioaws.route53resolver.model.Tag.wrap(item)
        }.toList
      )
  }
  def wrap(
      impl: software.amazon.awssdk.services.route53resolver.model.AssociateFirewallRuleGroupRequest
  ): io.github.vigoo.zioaws.route53resolver.model.AssociateFirewallRuleGroupRequest.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy