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

zio.aws.waf.model.SampledHTTPRequest.scala Maven / Gradle / Ivy

There is a newer version: 7.28.29.14
Show newest version
package zio.aws.waf.model
import zio.aws.waf.model.primitives.{
  ResourceId,
  Action,
  Timestamp,
  SampleWeight
}
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 SampledHTTPRequest(
    request: zio.aws.waf.model.HTTPRequest,
    weight: SampleWeight,
    timestamp: Optional[Timestamp] = Optional.Absent,
    action: Optional[Action] = Optional.Absent,
    ruleWithinRuleGroup: Optional[ResourceId] = Optional.Absent
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.waf.model.SampledHTTPRequest = {
    import SampledHTTPRequest.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.waf.model.SampledHTTPRequest
      .builder()
      .request(request.buildAwsValue())
      .weight(SampleWeight.unwrap(weight): java.lang.Long)
      .optionallyWith(timestamp.map(value => Timestamp.unwrap(value): Instant))(
        _.timestamp
      )
      .optionallyWith(
        action.map(value => Action.unwrap(value): java.lang.String)
      )(_.action)
      .optionallyWith(
        ruleWithinRuleGroup.map(value =>
          ResourceId.unwrap(value): java.lang.String
        )
      )(_.ruleWithinRuleGroup)
      .build()
  }
  def asReadOnly: zio.aws.waf.model.SampledHTTPRequest.ReadOnly =
    zio.aws.waf.model.SampledHTTPRequest.wrap(buildAwsValue())
}
object SampledHTTPRequest {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.waf.model.SampledHTTPRequest
  ] = BuilderHelper.apply
  trait ReadOnly {
    def asEditable: zio.aws.waf.model.SampledHTTPRequest =
      zio.aws.waf.model.SampledHTTPRequest(
        request.asEditable,
        weight,
        timestamp.map(value => value),
        action.map(value => value),
        ruleWithinRuleGroup.map(value => value)
      )
    def request: zio.aws.waf.model.HTTPRequest.ReadOnly
    def weight: SampleWeight
    def timestamp: Optional[Timestamp]
    def action: Optional[Action]
    def ruleWithinRuleGroup: Optional[ResourceId]
    def getRequest: ZIO[Any, Nothing, zio.aws.waf.model.HTTPRequest.ReadOnly] =
      ZIO.succeed(request)
    def getWeight: ZIO[Any, Nothing, SampleWeight] = ZIO.succeed(weight)
    def getTimestamp: ZIO[Any, AwsError, Timestamp] =
      AwsError.unwrapOptionField("timestamp", timestamp)
    def getAction: ZIO[Any, AwsError, Action] =
      AwsError.unwrapOptionField("action", action)
    def getRuleWithinRuleGroup: ZIO[Any, AwsError, ResourceId] =
      AwsError.unwrapOptionField("ruleWithinRuleGroup", ruleWithinRuleGroup)
  }
  private final class Wrapper(
      impl: software.amazon.awssdk.services.waf.model.SampledHTTPRequest
  ) extends zio.aws.waf.model.SampledHTTPRequest.ReadOnly {
    override val request: zio.aws.waf.model.HTTPRequest.ReadOnly =
      zio.aws.waf.model.HTTPRequest.wrap(impl.request())
    override val weight: SampleWeight =
      zio.aws.waf.model.primitives.SampleWeight(impl.weight())
    override val timestamp: Optional[Timestamp] = zio.aws.core.internal
      .optionalFromNullable(impl.timestamp())
      .map(value => zio.aws.waf.model.primitives.Timestamp(value))
    override val action: Optional[Action] = zio.aws.core.internal
      .optionalFromNullable(impl.action())
      .map(value => zio.aws.waf.model.primitives.Action(value))
    override val ruleWithinRuleGroup: Optional[ResourceId] =
      zio.aws.core.internal
        .optionalFromNullable(impl.ruleWithinRuleGroup())
        .map(value => zio.aws.waf.model.primitives.ResourceId(value))
  }
  def wrap(
      impl: software.amazon.awssdk.services.waf.model.SampledHTTPRequest
  ): zio.aws.waf.model.SampledHTTPRequest.ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy