GuideReference
TrainingSupportCommunity
Guide

Phased release match rule

akamai_cloudlets_phased_release_match_rule

Build a match rule JSON object for the phased release cloudlet.

data "akamai_cloudlets_phased_release_match_rule" "my_pr_match_rule" {
    match_rules {
        name  = "my_pr_match_rule"
        forward_settings {
            origin_id = "MyOrigin"
            percent   = 100
        }
        matches {
            case_sensitive = false
            check_ips      = "CONNECTING_IP XFF_HEADERS"
            match_operator = "equals"
            match_type     = "header"
            negate         = false
            object_match_value {
                type = "object"
                name = "Content-Type"
                options {
                    value = ["application/json"]
                }
            }
        }
    }   
}

output "my_pr_match_rule" {
  value = data.akamai_cloudlets_phased_release_match_rule.my_pr_match_rule
}
Changes to Outputs:
+ my_pr_match_rule = {
      + id          = "12ab3cde4f5g678h901234567i890123j456k789"
      + json        = jsonencode(
            [
              + {
                  + forwardSettings = {
                      + originId = "MyOrigin"
                      + percent  = 100
                    }
                  + matches         = [
                      + {
                          + caseSensitive    = false
                          + checkIPs         = "CONNECTING_IP XFF_HEADERS"
                          + matchOperator    = "equals"
                          + matchType        = "header"
                          + negate           = false
                          + objectMatchValue = {
                              + name              = "Content-Type"
                              + nameCaseSensitive = false
                              + nameHasWildcard   = false
                              + options           = {
                                  + value = [
                                      + "application/json",
                                    ]
                                }
                              + type              = "object"
                            }
                        },
                    ]
                  + name            = "my_pr_match_rule"
                  + type            = "cdMatchRule"
                },
            ]
        )
      + match_rules = [
          + {
              + disabled         = false
              + end              = 0
              + forward_settings = [
                  + {
                      + origin_id = "MyOrigin"
                      + percent   = 100
                    },
                ]
              + match_url        = ""
              + matches          = [
                  + {
                      + case_sensitive     = false
                      + check_ips          = "CONNECTING_IP XFF_HEADERS"
                      + match_operator     = "equals"
                      + match_type         = "header"
                      + match_value        = ""
                      + negate             = false
                      + object_match_value = [
                          + {
                              + name                = "Content-Type"
                              + name_case_sensitive = false
                              + name_has_wildcard   = false
                              + options             = [
                                  + {
                                      + value                = [
                                          + "application/json",
                                        ]
                                      + value_case_sensitive = false
                                      + value_escaped        = false
                                      + value_has_wildcard   = false
                                    },
                                ]
                              + type                = "object"
                              + value               = []
                            },
                        ]
                    },
                ]
              + matches_always   = false
              + name             = "my_pr_match_rule"
              + start            = 0
              + type             = "cdMatchRule"
            },
        ]
    }

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 forward_settings argument.

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

Argument Required Description
forward_settings The data used to construct a new request URL if all match conditions are met. When all conditions are met, the edge server returns an HTTP response from the rewritten URL.
  • origin_id. A user created ID that represents a data center for an application load balancer implementation. Alphanumeric characters and underscores only, and the first and last characters must be alphanumeric.

    Note: The application load balancer cloudlet only supports a setting of APPLICATION_LOAD_BALANCER in the origin behavior of your property's rules.
  • percent. The percent of traffic sent to the data center.
matches_always Whether the rule always matches the rule options set.
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
  • regex
  • 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 that defines 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.