Rules builder
akamai_property_rules_builder
Build your property rules, includes, behaviors, and criteria into a single set of rules or a rules file. A list of all behaviors and criteria can be found in the reference section.
// Your default rule information
data "akamai_property_rules_builder" "my_default_rule" {
rules_v2023_01_05 {
name = "default"
is_secure = false
comments = <<-EOT
The behaviors in the default rule apply to all requests for the property hostnames unless another rule overrides these settings.
EOT
behavior {
origin {
origin_type = "CUSTOMER"
hostname = "httpbin.org"
forward_host_header = "ORIGIN_HOSTNAME"
cache_key_hostname = "REQUEST_HOST_HEADER"
compress = true
enable_true_client_ip = false
http_port = 80
}
}
behavior {
cp_code {
value {
id = 12345
name = "main site"
}
}
}
children = [
data.akamai_property_rules_builder.compress_text_content.json
]
}
}
// Your child rule information
data "akamai_property_rules_builder" "compress_text_content" {
rules_v2023_01_05 {
name = "Compress Text Content"
behavior {
gzipResponse {
behavior = "ALWAYS"
}
}
criterion {
contentType {
matchOperator = "IS_ONE_OF"
matchWildcard = true
matchCaseSensitive = false
values = ["text/html*", "text/css*", "application/x-javascript*"]
}
}
}
}
output "my_default_rule" {
value = data.akamai_property_rules_builder.my_default_rule
}
my_default_rule = jsonencode(
{
rules = {
behaviors = [
{
name = "origin"
options = {
cacheKeyHostname = "REQUEST_HOST_HEADER"
compress = true
enableTrueClientIp = false
forwardHostHeader = "ORIGIN_HOSTNAME"
hostname = "example.org"
httpPort = 80
originType = "CUSTOMER"
}
},
{
name = "cpCode"
options = {
value = {
id = 12345
name = "main site"
}
}
},
]
children = [
{
behaviors = [
{
name = "gzipResponse"
options = {
behavior = "ALWAYS"
}
},
]
criteria = [
{
name = "contentType"
options = {
matchCaseSensitive = false
matchOperator = "IS_ONE_OF"
matchWildcard = true
values = [
"text/html*",
"text/css*",
"application/x-javascript*",
]
}
},
]
name = "Compress Text Content"
options = {}
},
]
comments = <<-EOT
The behaviors in the default rule apply to all requests for the property hostname(s) unless another rule overrides theses settings.
EOT
name = "default"
options = {}
}
}
)
// Uses Terraform resource local_file
resource "local_file" "rules" {
content = data.akamai_property_rules_builder.my_default_rule.json
filename = "./property-snippets/main.json"
}
// local
rules = data.akamai_property_rules_builder.my_default_rule
// reference file directly
rules = file("${path.root}/property-snippets/main.json")
Arguments
Send your rule's name, rule format version, and any of the optional arguments that build out your rule's business case.
| Argument | Required | Description |
|---|---|---|
name | ✔️ | The name of your rule. If you're sending the entire tree, this value is default. |
rule_format | ✔️ | The versioned schema that represents a valid rule tree. |
is_secure | Whether the default rule is secure.Not applicable for child rules. | |
behavior | A behavior for a rule. | |
variable | A list of variables for a rule.
| |
criterion | A match target for a rule. Not applicable for the default rule. | |
criteria_must_satisfy | Whether all criteria need to match or any.Not applicable for the default rule. | |
advanced_override | XML metadata of the rule. Not applicable for child rules. | |
custom_override | A rule's XML metadata.
Not applicable for child rules. | |
comments | Any comments for a rule. | |
uuid | The rule's UUID. | |
template_uuid | The rule template's UUID. | |
criteria_locked | Whether changes to criterion objects are prohibited.Not applicable for the default rule. | |
template_link | The rule's template link. |
Attributes
For any output method you chose, returned to you is your full set of rules in the rule format you passed in the request.
Updated 16 days ago
