GuideReference
Guide

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 }
Changes to Outputs: + 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.

ArgumentRequiredDescription
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_secureWhether the default rule is secure.

Not applicable for child rules.
behaviorA behavior for a rule.
variableA list of variables for a rule.
  • name. The name of a variable.
  • value. The value for a variable.
  • description. The description for a variable.
  • hidden. Whether a variable should be hidden.
  • sensitive. Whether a variable contains sensitive information.
criterionA match target for a rule.

Not applicable for the default rule.
criteria_must_satisfyWhether all criteria need to match or any.

Not applicable for the default rule.
advanced_overrideXML metadata of the rule.

Not applicable for child rules.
custom_overrideA rule's XML metadata.
  • name. The name of a custom override.
  • override_id. The ID of a custom override.
  • children. A list of child rules for a particular rule in JSON format.


Not applicable for child rules.
commentsAny comments for a rule.
uuidThe rule's UUID.
template_uuidThe rule template's UUID.
criteria_lockedWhether changes to criterion objects are prohibited.

Not applicable for the default rule.
template_linkThe 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.


Did this page help you?