GuideReference
TrainingSupportCommunity
Guide

API prioritization match rule

akamai_cloudlets_api_prioritization_match_rule

Build a match rule JSON object for the API prioritization cloudlet.

data "akamai_cloudlets_api_prioritization_match_rule" "my_ap_match_rule" {
    match_rules {
        name = "my_ap_rule"
        disabled = false
        match_url = "my_ap_rule_example.com"
        pass_through_percent = 100
        matches {
            case_sensitive = true
            match_type = "method"
            match_operator = "equals"
            negate = false
            object_match_value {
                type = "simple"
                value = ["POST"]
            }
        }
    }
}

output "my_ap_match_rule" {
  value = data.akamai_cloudlets_api_prioritization_match_rule.my_ap_match_rule
}
Changes to Outputs:
  + my_ap_match_rule = {
      + id          = "12ab3cde4f5g678h901234567i890123j456k789"
      + json        = jsonencode(
            [
              + {
                  + matchURL           = "my_ap_rule_example.com"
                  + matches            = [
                      + {
                          + caseSensitive    = true
                          + matchOperator    = "equals"
                          + matchType        = "method"
                          + negate           = false
                          + objectMatchValue = {
                              + type  = "simple"
                              + value = [
                                  + "POST",
                                ]
                            }
                        },
                    ]
                  + name               = "my_ap_rule"
                  + passThroughPercent = 100
                  + type               = "apMatchRule"
                },
            ]
        )
      + match_rules = [
          + {
              + disabled             = false
              + end                  = 0
              + match_url            = "my_rule_example.com"
              + matches              = [
                  + {
                      + case_sensitive     = true
                      + check_ips          = ""
                      + match_operator     = "equals"
                      + match_type         = "method"
                      + match_value        = ""
                      + negate             = false
                      + object_match_value = [
                          + {
                              + name                = ""
                              + name_case_sensitive = false
                              + name_has_wildcard   = false
                              + options             = []
                              + type                = "simple"
                              + value               = [
                                  + "POST",
                                ]
                            },
                        ]
                    },
                ]
              + name                 = "my_ap_rule"
              + pass_through_percent = 100
              + start                = 0
              + type                 = "apMatchRule"
            },
        ]
    }

Arguments

Pass a match_rules list with the options that best fit your business case. While the match definitions arguments are optional, expected, at a minimum, is the pass_through_percent argument.

Use the information in the match options table to build out your rule's matches criteria.

Argument Required Description
pass_through_percent The percent of requests that pass through to the origin. Value options are:
  • 0.0-99.0.
  • 100 sets all requests to pass through.
  • -1 sends all requests to the waiting room.
name A human-readable name for your rule.
start The start time for the match. Value is UTC through seconds.
end The end time for the match. Value is UTC through seconds.
match_url The URL that the cloudlet uses to match with the incoming request.
disabled Whether to disable a rule so it is not evaluated against incoming requests.
matches The match object definitions list.

Match options

The options listed are nested within the matches argument.

All match options are optional.

Argument Description
match_type The type of match used. Value is one of:
  • header
  • hostname
  • path
  • extension
  • query
  • cookie
  • deviceCharacteristics
  • clientip
  • continent
  • countrycode
  • regioncode
  • protocol
  • method
  • proxy
match_value A value that reflects your match type, for example, if you set your match type to countrycode, the value would reflect the match country.
match_operator Compares a string expression with a pattern. Value is one of:
  • contains
  • exists
  • equals
case_sensitive Whether the match is case sensitive.
negate Whether to negate the match.
check_ips For clientip, continent, countrycode, proxy, and regioncode match types, the part of the request to use as the IP address. Value options:
  • CONNECTING_IP
  • XFF_HEADERS
  • You can use both separated by a space. When both values are included, the connecting IP address is evaluated first.
object_match_value Use when a rule includes more complex match criteria, like multiple value attributes. Value options:
  • name. One of cookie, header, parameter, or query.
  • type. Required. The type of list, either object or simple.
  • name_case_sensitive. Whether the evaluation of the name argument is case sensitive.
  • name_has_wildcard. Whether the name argument includes wildcards.
  • options. If you set the type argument to object, use this to list the values on which to match.
    • value. The values in the incoming request on which to match.
    • value_has_wildcard. Whether the value argument includes wildcards.
    • value_case_sensitive. Whether the evaluation of the value argument is case sensitive.
    • value_escaped. Whether the compared value argument can be an escaped form.
  • value. If you set the type argument to simple, provide the values in the incoming request on which to match.

Attributes

Returned is a jsonencoded list of the match rules defined in your query. Set the output type to capture the result based on your need as you use the return in the policy resource.