AccessRuleArgs

data class AccessRuleArgs(val accountId: Output<String>? = null, val configuration: Output<AccessRuleConfigurationArgs>? = null, val mode: Output<String>? = null, val notes: Output<String>? = null, val zoneId: Output<String>? = null) : ConvertibleToJava<AccessRuleArgs>

Provides a Cloudflare IP Firewall Access Rule resource. Access control can be applied on basis of IP addresses, IP ranges, AS numbers or countries.

Example Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.cloudflare.AccessRule;
import com.pulumi.cloudflare.AccessRuleArgs;
import com.pulumi.cloudflare.inputs.AccessRuleConfigurationArgs;
import com.pulumi.codegen.internal.KeyedValue;
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) {
final var config = ctx.config();
var torExitNodes = new AccessRule("torExitNodes", AccessRuleArgs.builder()
.zoneId("0da42c8d2132a9ddaf714f9e7c920711")
.notes("Requests coming from known Tor exit nodes")
.mode("challenge")
.configuration(AccessRuleConfigurationArgs.builder()
.target("country")
.value("T1")
.build())
.build());
var antarctica = new AccessRule("antarctica", AccessRuleArgs.builder()
.zoneId("0da42c8d2132a9ddaf714f9e7c920711")
.notes("Requests coming from Antarctica")
.mode("whitelist")
.configuration(AccessRuleConfigurationArgs.builder()
.target("country")
.value("AQ")
.build())
.build());
final var myOffice = config.get("myOffice").orElse(
"192.0.2.0/24",
"198.51.100.0/24",
"2001:db8::/56");
for (var i = 0; i < myOffice.length(); i++) {
new AccessRule("officeNetwork-" + i, AccessRuleArgs.builder()
.accountId("f037e56e89293a057740de681ac9abbe")
.notes("Requests coming from office network")
.mode("whitelist")
.configuration(AccessRuleConfigurationArgs.builder()
.target("ip_range")
.value(myOffice[count.index()])
.build())
.build());
}
}
}

Import

User level access rule import.

$ pulumi import cloudflare:index/accessRule:AccessRule default user/<user_id>/<rule_id>

Zone level access rule import.

$ pulumi import cloudflare:index/accessRule:AccessRule default zone/<zone_id>/<rule_id>

Account level access rule import.

$ pulumi import cloudflare:index/accessRule:AccessRule default account/<account_id>/<rule_id>

Constructors

Link copied to clipboard
constructor(accountId: Output<String>? = null, configuration: Output<AccessRuleConfigurationArgs>? = null, mode: Output<String>? = null, notes: Output<String>? = null, zoneId: Output<String>? = null)

Properties

Link copied to clipboard
val accountId: Output<String>? = null

The account identifier to target for the resource. Modifying this attribute will force creation of a new resource.

Link copied to clipboard

Rule configuration to apply to a matched request. Modifying this attribute will force creation of a new resource.

Link copied to clipboard
val mode: Output<String>? = null

The action to apply to a matched request. Available values: block, challenge, whitelist, js_challenge, managed_challenge.

Link copied to clipboard
val notes: Output<String>? = null

A personal note about the rule. Typically used as a reminder or explanation for the rule.

Link copied to clipboard
val zoneId: Output<String>? = null

The zone identifier to target for the resource. Modifying this attribute will force creation of a new resource.

Functions

Link copied to clipboard
open override fun toJava(): AccessRuleArgs