Rate Limit Args
data class RateLimitArgs(val action: Output<RateLimitActionArgs>? = null, val bypassUrlPatterns: Output<List<String>>? = null, val correlate: Output<RateLimitCorrelateArgs>? = null, val description: Output<String>? = null, val disabled: Output<Boolean>? = null, val match: Output<RateLimitMatchArgs>? = null, val period: Output<Int>? = null, val threshold: Output<Int>? = null, val zoneId: Output<String>? = null) : ConvertibleToJava<RateLimitArgs>
Provides a Cloudflare rate limit resource for a given zone. This can be used to limit the traffic you receive zone-wide, or matching more specific types of requests/responses.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.cloudflare.RateLimit;
import com.pulumi.cloudflare.RateLimitArgs;
import com.pulumi.cloudflare.inputs.RateLimitActionArgs;
import com.pulumi.cloudflare.inputs.RateLimitActionResponseArgs;
import com.pulumi.cloudflare.inputs.RateLimitCorrelateArgs;
import com.pulumi.cloudflare.inputs.RateLimitMatchArgs;
import com.pulumi.cloudflare.inputs.RateLimitMatchRequestArgs;
import com.pulumi.cloudflare.inputs.RateLimitMatchResponseArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new RateLimit("example", RateLimitArgs.builder()
.action(RateLimitActionArgs.builder()
.mode("simulate")
.response(RateLimitActionResponseArgs.builder()
.body("custom response body")
.contentType("text/plain")
.build())
.timeout(43200)
.build())
.bypassUrlPatterns(
"example.com/bypass1",
"example.com/bypass2")
.correlate(RateLimitCorrelateArgs.builder()
.by("nat")
.build())
.description("example rate limit for a zone")
.disabled(false)
.match(RateLimitMatchArgs.builder()
.request(RateLimitMatchRequestArgs.builder()
.methods(
"GET",
"POST",
"PUT",
"DELETE",
"PATCH",
"HEAD")
.schemes(
"HTTP",
"HTTPS")
.urlPattern(String.format("%s/*", var_.cloudflare_zone()))
.build())
.response(RateLimitMatchResponseArgs.builder()
.headers(
Map.ofEntries(
Map.entry("name", "Host"),
Map.entry("op", "eq"),
Map.entry("value", "localhost")
),
Map.ofEntries(
Map.entry("name", "X-Example"),
Map.entry("op", "ne"),
Map.entry("value", "my-example")
))
.originTraffic(false)
.statuses(
200,
201,
202,
301,
429)
.build())
.build())
.period(2)
.threshold(2000)
.zoneId("0da42c8d2132a9ddaf714f9e7c920711")
.build());
}
}
Content copied to clipboard
Import
$ pulumi import cloudflare:index/rateLimit:RateLimit example <zone_id>/<rate_limit_id>
Content copied to clipboard
Constructors
Link copied to clipboard
fun RateLimitArgs(action: Output<RateLimitActionArgs>? = null, bypassUrlPatterns: Output<List<String>>? = null, correlate: Output<RateLimitCorrelateArgs>? = null, description: Output<String>? = null, disabled: Output<Boolean>? = null, match: Output<RateLimitMatchArgs>? = null, period: Output<Int>? = null, threshold: Output<Int>? = null, zoneId: Output<String>? = null)