Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
    • Yandex Cloud Partner program
  • Blog
  • Pricing
  • Documentation
© 2025 Direct Cursus Technology L.L.C.
Yandex Smart Web Security
  • Getting started
    • Overview
    • Security profiles
    • WAF
    • ARL (request limit)
    • Rules
    • Conditions
    • Lists
    • Quotas and limits
  • Access management
  • Pricing policy
  • Terraform reference
    • Authentication with the API
      • Overview
        • Overview
          • Overview
          • Get
          • List
          • Create
          • Update
          • Delete
  • Monitoring metrics
  • Audit Trails events
  • Release notes

In this article:

  • gRPC request
  • CreateAdvancedRateLimiterProfileRequest
  • AdvancedRateLimiterRule
  • StaticQuota
  • Condition
  • AuthorityMatcher
  • StringMatcher
  • HttpMethodMatcher
  • RequestUriMatcher
  • QueryMatcher
  • HeaderMatcher
  • IpMatcher
  • IpRangesMatcher
  • GeoIpMatcher
  • DynamicQuota
  • Characteristic
  • SimpleCharacteristic
  • KeyCharacteristic
  • operation.Operation
  • CreateAdvancedRateLimiterProfileMetadata
  • AdvancedRateLimiterProfile
  • AdvancedRateLimiterRule
  • StaticQuota
  • Condition
  • AuthorityMatcher
  • StringMatcher
  • HttpMethodMatcher
  • RequestUriMatcher
  • QueryMatcher
  • HeaderMatcher
  • IpMatcher
  • IpRangesMatcher
  • GeoIpMatcher
  • DynamicQuota
  • Characteristic
  • SimpleCharacteristic
  • KeyCharacteristic
  1. API reference
  2. gRPC
  3. SmartWebSecurity ARL API
  4. AdvancedRateLimiterProfile
  5. Create

SmartWebSecurity ARL API, gRPC: AdvancedRateLimiterProfileService.Create

Written by
Yandex Cloud
Updated at December 17, 2024
  • gRPC request
  • CreateAdvancedRateLimiterProfileRequest
  • AdvancedRateLimiterRule
  • StaticQuota
  • Condition
  • AuthorityMatcher
  • StringMatcher
  • HttpMethodMatcher
  • RequestUriMatcher
  • QueryMatcher
  • HeaderMatcher
  • IpMatcher
  • IpRangesMatcher
  • GeoIpMatcher
  • DynamicQuota
  • Characteristic
  • SimpleCharacteristic
  • KeyCharacteristic
  • operation.Operation
  • CreateAdvancedRateLimiterProfileMetadata
  • AdvancedRateLimiterProfile
  • AdvancedRateLimiterRule
  • StaticQuota
  • Condition
  • AuthorityMatcher
  • StringMatcher
  • HttpMethodMatcher
  • RequestUriMatcher
  • QueryMatcher
  • HeaderMatcher
  • IpMatcher
  • IpRangesMatcher
  • GeoIpMatcher
  • DynamicQuota
  • Characteristic
  • SimpleCharacteristic
  • KeyCharacteristic

Creates a ARL profile in the specified folder using the data specified in the request.

gRPC requestgRPC request

rpc Create (CreateAdvancedRateLimiterProfileRequest) returns (operation.Operation)

CreateAdvancedRateLimiterProfileRequestCreateAdvancedRateLimiterProfileRequest

{
  "folder_id": "string",
  "labels": "map<string, string>",
  "name": "string",
  "description": "string",
  "advanced_rate_limiter_rules": [
    {
      "name": "string",
      "priority": "int64",
      "description": "string",
      "dry_run": "bool",
      // Includes only one of the fields `static_quota`, `dynamic_quota`
      "static_quota": {
        "action": "Action",
        "condition": {
          "authority": {
            "authorities": [
              {
                // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                "exact_match": "string",
                "exact_not_match": "string",
                "prefix_match": "string",
                "prefix_not_match": "string",
                "pire_regex_match": "string",
                "pire_regex_not_match": "string"
                // end of the list of possible fields
              }
            ]
          },
          "http_method": {
            "http_methods": [
              {
                // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                "exact_match": "string",
                "exact_not_match": "string",
                "prefix_match": "string",
                "prefix_not_match": "string",
                "pire_regex_match": "string",
                "pire_regex_not_match": "string"
                // end of the list of possible fields
              }
            ]
          },
          "request_uri": {
            "path": {
              // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
              "exact_match": "string",
              "exact_not_match": "string",
              "prefix_match": "string",
              "prefix_not_match": "string",
              "pire_regex_match": "string",
              "pire_regex_not_match": "string"
              // end of the list of possible fields
            },
            "queries": [
              {
                "key": "string",
                "value": {
                  // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                  "exact_match": "string",
                  "exact_not_match": "string",
                  "prefix_match": "string",
                  "prefix_not_match": "string",
                  "pire_regex_match": "string",
                  "pire_regex_not_match": "string"
                  // end of the list of possible fields
                }
              }
            ]
          },
          "headers": [
            {
              "name": "string",
              "value": {
                // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                "exact_match": "string",
                "exact_not_match": "string",
                "prefix_match": "string",
                "prefix_not_match": "string",
                "pire_regex_match": "string",
                "pire_regex_not_match": "string"
                // end of the list of possible fields
              }
            }
          ],
          "source_ip": {
            "ip_ranges_match": {
              "ip_ranges": [
                "string"
              ]
            },
            "ip_ranges_not_match": {
              "ip_ranges": [
                "string"
              ]
            },
            "geo_ip_match": {
              "locations": [
                "string"
              ]
            },
            "geo_ip_not_match": {
              "locations": [
                "string"
              ]
            }
          }
        },
        "limit": "int64",
        "period": "int64"
      },
      "dynamic_quota": {
        "action": "Action",
        "condition": {
          "authority": {
            "authorities": [
              {
                // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                "exact_match": "string",
                "exact_not_match": "string",
                "prefix_match": "string",
                "prefix_not_match": "string",
                "pire_regex_match": "string",
                "pire_regex_not_match": "string"
                // end of the list of possible fields
              }
            ]
          },
          "http_method": {
            "http_methods": [
              {
                // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                "exact_match": "string",
                "exact_not_match": "string",
                "prefix_match": "string",
                "prefix_not_match": "string",
                "pire_regex_match": "string",
                "pire_regex_not_match": "string"
                // end of the list of possible fields
              }
            ]
          },
          "request_uri": {
            "path": {
              // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
              "exact_match": "string",
              "exact_not_match": "string",
              "prefix_match": "string",
              "prefix_not_match": "string",
              "pire_regex_match": "string",
              "pire_regex_not_match": "string"
              // end of the list of possible fields
            },
            "queries": [
              {
                "key": "string",
                "value": {
                  // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                  "exact_match": "string",
                  "exact_not_match": "string",
                  "prefix_match": "string",
                  "prefix_not_match": "string",
                  "pire_regex_match": "string",
                  "pire_regex_not_match": "string"
                  // end of the list of possible fields
                }
              }
            ]
          },
          "headers": [
            {
              "name": "string",
              "value": {
                // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                "exact_match": "string",
                "exact_not_match": "string",
                "prefix_match": "string",
                "prefix_not_match": "string",
                "pire_regex_match": "string",
                "pire_regex_not_match": "string"
                // end of the list of possible fields
              }
            }
          ],
          "source_ip": {
            "ip_ranges_match": {
              "ip_ranges": [
                "string"
              ]
            },
            "ip_ranges_not_match": {
              "ip_ranges": [
                "string"
              ]
            },
            "geo_ip_match": {
              "locations": [
                "string"
              ]
            },
            "geo_ip_not_match": {
              "locations": [
                "string"
              ]
            }
          }
        },
        "limit": "int64",
        "period": "int64",
        "characteristics": [
          {
            // Includes only one of the fields `simple_characteristic`, `key_characteristic`
            "simple_characteristic": {
              "type": "Type"
            },
            "key_characteristic": {
              "type": "Type",
              "value": "string"
            },
            // end of the list of possible fields
            "case_insensitive": "bool"
          }
        ]
      }
      // end of the list of possible fields
    }
  ]
}

Field

Description

folder_id

string

Required field. ID of the folder to create a ARL profile in.

labels

object (map<string, string>)

Labels as key:value pairs. Maximum of 64 per resource.

name

string

Name of the ARL profile. The name is unique within the folder. 1-50 characters long.

description

string

Optional description of the ARL profile.

advanced_rate_limiter_rules[]

AdvancedRateLimiterRule

List of rules.

AdvancedRateLimiterRuleAdvancedRateLimiterRule

A AdvancedRateLimiterRule object, see Rules.

Field

Description

name

string

Required field. Name of the rule. The name is unique within the ARL profile. 1-50 characters long.

priority

int64

Determines the priority in case there are several matched rules.
Enter an integer within the range of 1 and 999999.
The rule priority must be unique within the entire ARL profile.
A lower numeric value means a higher priority.

description

string

Optional description of the rule. 0-512 characters long.

dry_run

bool

This allows you to evaluate backend capabilities and find the optimum limit values.
Requests will not be blocked in this mode.

static_quota

StaticQuota

Static quota. Counting each request individually.

Includes only one of the fields static_quota, dynamic_quota.

dynamic_quota

DynamicQuota

Dynamic quota. Grouping requests by a certain attribute and limiting the number of groups.

Includes only one of the fields static_quota, dynamic_quota.

StaticQuotaStaticQuota

StaticQuota object.

Field

Description

action

enum Action

Action in case of exceeding this quota.

  • ACTION_UNSPECIFIED
  • DENY: Deny request.

condition

Condition

The condition for matching the quota.

limit

int64

Desired maximum number of requests per period.
Enter an integer within the range of 1 and 9999999999999.

period

int64

Period of time in seconds.

ConditionCondition

Condition object. AND semantics implied.
See documentation for matchers description.

Field

Description

authority

AuthorityMatcher

Match authority (Host header).

http_method

HttpMethodMatcher

Match HTTP method.

request_uri

RequestUriMatcher

Match Request URI.

headers[]

HeaderMatcher

Match HTTP headers.

source_ip

IpMatcher

Match IP.

AuthorityMatcherAuthorityMatcher

AuthorityMatcher object.

Field

Description

authorities[]

StringMatcher

List of authorities. OR semantics implied.

StringMatcherStringMatcher

StringMatcher object.

Field

Description

exact_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

exact_not_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

prefix_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

prefix_not_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

pire_regex_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

pire_regex_not_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

HttpMethodMatcherHttpMethodMatcher

HttpMethodMatcher object.

Field

Description

http_methods[]

StringMatcher

List of HTTP methods. OR semantics implied.

RequestUriMatcherRequestUriMatcher

RequestUriMatcher object. AND semantics implied.

Field

Description

path

StringMatcher

Path of the URI RFC3986.

queries[]

QueryMatcher

List of query matchers. AND semantics implied.

QueryMatcherQueryMatcher

QueryMatcher object.

Field

Description

key

string

Required field. Key of the query parameter.

value

StringMatcher

Required field. Value of the query parameter.

HeaderMatcherHeaderMatcher

HeaderMatcher object.

Field

Description

name

string

Required field. Name of header (case insensitive).

value

StringMatcher

Required field. Value of the header.

IpMatcherIpMatcher

IpMatcher object. AND semantics implied.

Field

Description

ip_ranges_match

IpRangesMatcher

ip_ranges_not_match

IpRangesMatcher

geo_ip_match

GeoIpMatcher

geo_ip_not_match

GeoIpMatcher

IpRangesMatcherIpRangesMatcher

IpRangesMatcher object.

Field

Description

ip_ranges[]

string

List of IP ranges. OR semantics implied.

GeoIpMatcherGeoIpMatcher

GeoIpMatcher object.

Field

Description

locations[]

string

ISO 3166-1 alpha 2. OR semantics implied.

DynamicQuotaDynamicQuota

DynamicQuota object.

Field

Description

action

enum Action

Action in case of exceeding this quota.

  • ACTION_UNSPECIFIED
  • DENY: Deny request.

condition

Condition

The condition for matching the quota.

limit

int64

Desired maximum number of requests per period.
Enter an integer within the range of 1 and 9999999999999.

period

int64

Period of time in seconds.

characteristics[]

Characteristic

List of characteristics.

CharacteristicCharacteristic

Field

Description

simple_characteristic

SimpleCharacteristic

Characteristic automatically based on the Request path, HTTP method, IP address, Region, and Host attributes.
See Rules for more details.

Includes only one of the fields simple_characteristic, key_characteristic.

key_characteristic

KeyCharacteristic

Characteristic based on key match in the Query params, HTTP header, and HTTP cookie attributes.
See Rules for more details.

Includes only one of the fields simple_characteristic, key_characteristic.

case_insensitive

bool

Determines case-sensitive or case-insensitive keys matching.

SimpleCharacteristicSimpleCharacteristic

Field

Description

type

enum Type

Type of simple characteristic.

  • TYPE_UNSPECIFIED
  • REQUEST_PATH: HTTP Request path.
  • HTTP_METHOD: HTTP Method.
  • IP: IP address.
  • GEO: Region.
  • HOST: Host.

KeyCharacteristicKeyCharacteristic

Field

Description

type

enum Type

Type of key characteristic.

  • TYPE_UNSPECIFIED
  • COOKIE_KEY: HTTP cookie key.
  • HEADER_KEY: HTTP header key.
  • QUERY_KEY: Query params key.

value

string

String value of the key.

operation.Operationoperation.Operation

{
  "id": "string",
  "description": "string",
  "created_at": "google.protobuf.Timestamp",
  "created_by": "string",
  "modified_at": "google.protobuf.Timestamp",
  "done": "bool",
  "metadata": {
    "advanced_rate_limiter_profile_id": "string"
  },
  // Includes only one of the fields `error`, `response`
  "error": "google.rpc.Status",
  "response": {
    "id": "string",
    "folder_id": "string",
    "labels": "map<string, string>",
    "name": "string",
    "description": "string",
    "advanced_rate_limiter_rules": [
      {
        "name": "string",
        "priority": "int64",
        "description": "string",
        "dry_run": "bool",
        // Includes only one of the fields `static_quota`, `dynamic_quota`
        "static_quota": {
          "action": "Action",
          "condition": {
            "authority": {
              "authorities": [
                {
                  // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                  "exact_match": "string",
                  "exact_not_match": "string",
                  "prefix_match": "string",
                  "prefix_not_match": "string",
                  "pire_regex_match": "string",
                  "pire_regex_not_match": "string"
                  // end of the list of possible fields
                }
              ]
            },
            "http_method": {
              "http_methods": [
                {
                  // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                  "exact_match": "string",
                  "exact_not_match": "string",
                  "prefix_match": "string",
                  "prefix_not_match": "string",
                  "pire_regex_match": "string",
                  "pire_regex_not_match": "string"
                  // end of the list of possible fields
                }
              ]
            },
            "request_uri": {
              "path": {
                // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                "exact_match": "string",
                "exact_not_match": "string",
                "prefix_match": "string",
                "prefix_not_match": "string",
                "pire_regex_match": "string",
                "pire_regex_not_match": "string"
                // end of the list of possible fields
              },
              "queries": [
                {
                  "key": "string",
                  "value": {
                    // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                    "exact_match": "string",
                    "exact_not_match": "string",
                    "prefix_match": "string",
                    "prefix_not_match": "string",
                    "pire_regex_match": "string",
                    "pire_regex_not_match": "string"
                    // end of the list of possible fields
                  }
                }
              ]
            },
            "headers": [
              {
                "name": "string",
                "value": {
                  // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                  "exact_match": "string",
                  "exact_not_match": "string",
                  "prefix_match": "string",
                  "prefix_not_match": "string",
                  "pire_regex_match": "string",
                  "pire_regex_not_match": "string"
                  // end of the list of possible fields
                }
              }
            ],
            "source_ip": {
              "ip_ranges_match": {
                "ip_ranges": [
                  "string"
                ]
              },
              "ip_ranges_not_match": {
                "ip_ranges": [
                  "string"
                ]
              },
              "geo_ip_match": {
                "locations": [
                  "string"
                ]
              },
              "geo_ip_not_match": {
                "locations": [
                  "string"
                ]
              }
            }
          },
          "limit": "int64",
          "period": "int64"
        },
        "dynamic_quota": {
          "action": "Action",
          "condition": {
            "authority": {
              "authorities": [
                {
                  // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                  "exact_match": "string",
                  "exact_not_match": "string",
                  "prefix_match": "string",
                  "prefix_not_match": "string",
                  "pire_regex_match": "string",
                  "pire_regex_not_match": "string"
                  // end of the list of possible fields
                }
              ]
            },
            "http_method": {
              "http_methods": [
                {
                  // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                  "exact_match": "string",
                  "exact_not_match": "string",
                  "prefix_match": "string",
                  "prefix_not_match": "string",
                  "pire_regex_match": "string",
                  "pire_regex_not_match": "string"
                  // end of the list of possible fields
                }
              ]
            },
            "request_uri": {
              "path": {
                // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                "exact_match": "string",
                "exact_not_match": "string",
                "prefix_match": "string",
                "prefix_not_match": "string",
                "pire_regex_match": "string",
                "pire_regex_not_match": "string"
                // end of the list of possible fields
              },
              "queries": [
                {
                  "key": "string",
                  "value": {
                    // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                    "exact_match": "string",
                    "exact_not_match": "string",
                    "prefix_match": "string",
                    "prefix_not_match": "string",
                    "pire_regex_match": "string",
                    "pire_regex_not_match": "string"
                    // end of the list of possible fields
                  }
                }
              ]
            },
            "headers": [
              {
                "name": "string",
                "value": {
                  // Includes only one of the fields `exact_match`, `exact_not_match`, `prefix_match`, `prefix_not_match`, `pire_regex_match`, `pire_regex_not_match`
                  "exact_match": "string",
                  "exact_not_match": "string",
                  "prefix_match": "string",
                  "prefix_not_match": "string",
                  "pire_regex_match": "string",
                  "pire_regex_not_match": "string"
                  // end of the list of possible fields
                }
              }
            ],
            "source_ip": {
              "ip_ranges_match": {
                "ip_ranges": [
                  "string"
                ]
              },
              "ip_ranges_not_match": {
                "ip_ranges": [
                  "string"
                ]
              },
              "geo_ip_match": {
                "locations": [
                  "string"
                ]
              },
              "geo_ip_not_match": {
                "locations": [
                  "string"
                ]
              }
            }
          },
          "limit": "int64",
          "period": "int64",
          "characteristics": [
            {
              // Includes only one of the fields `simple_characteristic`, `key_characteristic`
              "simple_characteristic": {
                "type": "Type"
              },
              "key_characteristic": {
                "type": "Type",
                "value": "string"
              },
              // end of the list of possible fields
              "case_insensitive": "bool"
            }
          ]
        }
        // end of the list of possible fields
      }
    ],
    "created_at": "google.protobuf.Timestamp",
    "cloud_id": "string"
  }
  // end of the list of possible fields
}

An Operation resource. For more information, see Operation.

Field

Description

id

string

ID of the operation.

description

string

Description of the operation. 0-256 characters long.

created_at

google.protobuf.Timestamp

Creation timestamp.

created_by

string

ID of the user or service account who initiated the operation.

modified_at

google.protobuf.Timestamp

The time when the Operation resource was last modified.

done

bool

If the value is false, it means the operation is still in progress.
If true, the operation is completed, and either error or response is available.

metadata

CreateAdvancedRateLimiterProfileMetadata

Service-specific metadata associated with the operation.
It typically contains the ID of the target resource that the operation is performed on.
Any method that returns a long-running operation should document the metadata type, if any.

error

google.rpc.Status

The error result of the operation in case of failure or cancellation.

Includes only one of the fields error, response.

The operation result.
If done == false and there was no failure detected, neither error nor response is set.
If done == false and there was a failure detected, error is set.
If done == true, exactly one of error or response is set.

response

AdvancedRateLimiterProfile

The normal response of the operation in case of success.
If the original method returns no data on success, such as Delete,
the response is google.protobuf.Empty.
If the original method is the standard Create/Update,
the response should be the target resource of the operation.
Any method that returns a long-running operation should document the response type, if any.

Includes only one of the fields error, response.

The operation result.
If done == false and there was no failure detected, neither error nor response is set.
If done == false and there was a failure detected, error is set.
If done == true, exactly one of error or response is set.

CreateAdvancedRateLimiterProfileMetadataCreateAdvancedRateLimiterProfileMetadata

Field

Description

advanced_rate_limiter_profile_id

string

ID of the ARL profile that is being created.

AdvancedRateLimiterProfileAdvancedRateLimiterProfile

A AdvancedRateLimiterProfile (ARL) resource.

Field

Description

id

string

ID of the ARL profile.

folder_id

string

ID of the folder that the ARL profile belongs to.

labels

object (map<string, string>)

Labels as key:value pairs. Maximum of 64 per resource.

name

string

Required field. Name of the ARL profile. The name is unique within the folder. 1-50 characters long.

description

string

Optional description of the ARL profile.

advanced_rate_limiter_rules[]

AdvancedRateLimiterRule

List of rules.

created_at

google.protobuf.Timestamp

Creation timestamp in RFC3339 text format.

cloud_id

string

ID of the cloud that the ARL profile belongs to.

AdvancedRateLimiterRuleAdvancedRateLimiterRule

A AdvancedRateLimiterRule object, see Rules.

Field

Description

name

string

Required field. Name of the rule. The name is unique within the ARL profile. 1-50 characters long.

priority

int64

Determines the priority in case there are several matched rules.
Enter an integer within the range of 1 and 999999.
The rule priority must be unique within the entire ARL profile.
A lower numeric value means a higher priority.

description

string

Optional description of the rule. 0-512 characters long.

dry_run

bool

This allows you to evaluate backend capabilities and find the optimum limit values.
Requests will not be blocked in this mode.

static_quota

StaticQuota

Static quota. Counting each request individually.

Includes only one of the fields static_quota, dynamic_quota.

dynamic_quota

DynamicQuota

Dynamic quota. Grouping requests by a certain attribute and limiting the number of groups.

Includes only one of the fields static_quota, dynamic_quota.

StaticQuotaStaticQuota

StaticQuota object.

Field

Description

action

enum Action

Action in case of exceeding this quota.

  • ACTION_UNSPECIFIED
  • DENY: Deny request.

condition

Condition

The condition for matching the quota.

limit

int64

Desired maximum number of requests per period.
Enter an integer within the range of 1 and 9999999999999.

period

int64

Period of time in seconds.

ConditionCondition

Condition object. AND semantics implied.
See documentation for matchers description.

Field

Description

authority

AuthorityMatcher

Match authority (Host header).

http_method

HttpMethodMatcher

Match HTTP method.

request_uri

RequestUriMatcher

Match Request URI.

headers[]

HeaderMatcher

Match HTTP headers.

source_ip

IpMatcher

Match IP.

AuthorityMatcherAuthorityMatcher

AuthorityMatcher object.

Field

Description

authorities[]

StringMatcher

List of authorities. OR semantics implied.

StringMatcherStringMatcher

StringMatcher object.

Field

Description

exact_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

exact_not_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

prefix_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

prefix_not_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

pire_regex_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

pire_regex_not_match

string

Includes only one of the fields exact_match, exact_not_match, prefix_match, prefix_not_match, pire_regex_match, pire_regex_not_match.

HttpMethodMatcherHttpMethodMatcher

HttpMethodMatcher object.

Field

Description

http_methods[]

StringMatcher

List of HTTP methods. OR semantics implied.

RequestUriMatcherRequestUriMatcher

RequestUriMatcher object. AND semantics implied.

Field

Description

path

StringMatcher

Path of the URI RFC3986.

queries[]

QueryMatcher

List of query matchers. AND semantics implied.

QueryMatcherQueryMatcher

QueryMatcher object.

Field

Description

key

string

Required field. Key of the query parameter.

value

StringMatcher

Required field. Value of the query parameter.

HeaderMatcherHeaderMatcher

HeaderMatcher object.

Field

Description

name

string

Required field. Name of header (case insensitive).

value

StringMatcher

Required field. Value of the header.

IpMatcherIpMatcher

IpMatcher object. AND semantics implied.

Field

Description

ip_ranges_match

IpRangesMatcher

ip_ranges_not_match

IpRangesMatcher

geo_ip_match

GeoIpMatcher

geo_ip_not_match

GeoIpMatcher

IpRangesMatcherIpRangesMatcher

IpRangesMatcher object.

Field

Description

ip_ranges[]

string

List of IP ranges. OR semantics implied.

GeoIpMatcherGeoIpMatcher

GeoIpMatcher object.

Field

Description

locations[]

string

ISO 3166-1 alpha 2. OR semantics implied.

DynamicQuotaDynamicQuota

DynamicQuota object.

Field

Description

action

enum Action

Action in case of exceeding this quota.

  • ACTION_UNSPECIFIED
  • DENY: Deny request.

condition

Condition

The condition for matching the quota.

limit

int64

Desired maximum number of requests per period.
Enter an integer within the range of 1 and 9999999999999.

period

int64

Period of time in seconds.

characteristics[]

Characteristic

List of characteristics.

CharacteristicCharacteristic

Field

Description

simple_characteristic

SimpleCharacteristic

Characteristic automatically based on the Request path, HTTP method, IP address, Region, and Host attributes.
See Rules for more details.

Includes only one of the fields simple_characteristic, key_characteristic.

key_characteristic

KeyCharacteristic

Characteristic based on key match in the Query params, HTTP header, and HTTP cookie attributes.
See Rules for more details.

Includes only one of the fields simple_characteristic, key_characteristic.

case_insensitive

bool

Determines case-sensitive or case-insensitive keys matching.

SimpleCharacteristicSimpleCharacteristic

Field

Description

type

enum Type

Type of simple characteristic.

  • TYPE_UNSPECIFIED
  • REQUEST_PATH: HTTP Request path.
  • HTTP_METHOD: HTTP Method.
  • IP: IP address.
  • GEO: Region.
  • HOST: Host.

KeyCharacteristicKeyCharacteristic

Field

Description

type

enum Type

Type of key characteristic.

  • TYPE_UNSPECIFIED
  • COOKIE_KEY: HTTP cookie key.
  • HEADER_KEY: HTTP header key.
  • QUERY_KEY: Query params key.

value

string

String value of the key.

Was the article helpful?

Previous
List
Next
Update
© 2025 Direct Cursus Technology L.L.C.