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

commonMain.aws.sdk.kotlin.services.wafv2.model.RateLimitForwardedIp.kt Maven / Gradle / Ivy

The newest version!
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.wafv2.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Specifies the first IP address in an HTTP header as an aggregate key for a rate-based rule. Each distinct forwarded IP address contributes to the aggregation instance.
 *
 * This setting is used only in the `RateBasedStatementCustomKey` specification of a rate-based rule statement. When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the forwarded IP address by specifying `FORWARDED_IP` in your rate-based statement's `AggregateKeyType`.
 *
 * This data type supports using the forwarded IP address in the web request aggregation for a rate-based rule, in `RateBasedStatementCustomKey`. The JSON specification for using the forwarded IP address doesn't explicitly use this data type.
 *
 * JSON specification: `"ForwardedIP": {}`
 *
 * When you use this specification, you must also configure the forwarded IP address in the rate-based statement's `ForwardedIPConfig`.
 */
public class RateLimitForwardedIp private constructor(builder: Builder) {

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.wafv2.model.RateLimitForwardedIp = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("RateLimitForwardedIp(")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        return this::class.hashCode()
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (other == null || this::class != other::class) return false

        other as RateLimitForwardedIp

        return true
    }

    @SdkDsl
    public class Builder {

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.wafv2.model.RateLimitForwardedIp) : this() {
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.wafv2.model.RateLimitForwardedIp = RateLimitForwardedIp(this)

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy