SmartWebSecurity ARL API, gRPC: AdvancedRateLimiterProfileService.Update
- gRPC request
- UpdateAdvancedRateLimiterProfileRequest
- AdvancedRateLimiterRule
- StaticQuota
- Condition
- AuthorityMatcher
- StringMatcher
- HttpMethodMatcher
- RequestUriMatcher
- QueryMatcher
- HeaderMatcher
- IpMatcher
- IpRangesMatcher
- GeoIpMatcher
- DynamicQuota
- Characteristic
- SimpleCharacteristic
- KeyCharacteristic
- operation.Operation
- UpdateAdvancedRateLimiterProfileMetadata
- AdvancedRateLimiterProfile
- AdvancedRateLimiterRule
- StaticQuota
- Condition
- AuthorityMatcher
- StringMatcher
- HttpMethodMatcher
- RequestUriMatcher
- QueryMatcher
- HeaderMatcher
- IpMatcher
- IpRangesMatcher
- GeoIpMatcher
- DynamicQuota
- Characteristic
- SimpleCharacteristic
- KeyCharacteristic
Updates the specified ARL profile.
gRPC request
rpc Update (UpdateAdvancedRateLimiterProfileRequest) returns (operation.Operation)
UpdateAdvancedRateLimiterProfileRequest
{
"advanced_rate_limiter_profile_id": "string",
"update_mask": "google.protobuf.FieldMask",
"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 |
advanced_rate_limiter_profile_id |
string Required field. ID of the ARL profile to update. |
update_mask |
Field mask that specifies which fields of the AdvancedRateLimiterProfile resource are going to be updated. |
labels |
object (map<string, string>) Labels as |
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[] |
List of rules. |
AdvancedRateLimiterRule
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. |
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. |
static_quota |
Static quota. Counting each request individually. Includes only one of the fields |
dynamic_quota |
Dynamic quota. Grouping requests by a certain attribute and limiting the number of groups. Includes only one of the fields |
StaticQuota
StaticQuota object.
Field |
Description |
action |
enum Action Action in case of exceeding this quota.
|
condition |
The condition for matching the quota. |
limit |
int64 Desired maximum number of requests per period. |
period |
int64 Period of time in seconds. |
Condition
Condition object. AND semantics implied.
See documentation for matchers description.
Field |
Description |
authority |
Match authority (Host header). |
http_method |
Match HTTP method. |
request_uri |
Match Request URI. |
headers[] |
Match HTTP headers. |
source_ip |
Match IP. |
AuthorityMatcher
AuthorityMatcher object.
Field |
Description |
authorities[] |
List of authorities. OR semantics implied. |
StringMatcher
StringMatcher object.
Field |
Description |
exact_match |
string Includes only one of the fields |
exact_not_match |
string Includes only one of the fields |
prefix_match |
string Includes only one of the fields |
prefix_not_match |
string Includes only one of the fields |
pire_regex_match |
string Includes only one of the fields |
pire_regex_not_match |
string Includes only one of the fields |
HttpMethodMatcher
HttpMethodMatcher object.
Field |
Description |
http_methods[] |
List of HTTP methods. OR semantics implied. |
RequestUriMatcher
RequestUriMatcher object. AND semantics implied.
Field |
Description |
path |
Path of the URI RFC3986 |
queries[] |
List of query matchers. AND semantics implied. |
QueryMatcher
QueryMatcher object.
Field |
Description |
key |
string Required field. Key of the query parameter. |
value |
Required field. Value of the query parameter. |
HeaderMatcher
HeaderMatcher object.
Field |
Description |
name |
string Required field. Name of header (case insensitive). |
value |
Required field. Value of the header. |
IpMatcher
IpMatcher object. AND semantics implied.
Field |
Description |
ip_ranges_match |
|
ip_ranges_not_match |
|
geo_ip_match |
|
geo_ip_not_match |
IpRangesMatcher
IpRangesMatcher object.
Field |
Description |
ip_ranges[] |
string List of IP ranges. OR semantics implied. |
GeoIpMatcher
GeoIpMatcher object.
Field |
Description |
locations[] |
string ISO 3166-1 alpha 2. OR semantics implied. |
DynamicQuota
DynamicQuota object.
Field |
Description |
action |
enum Action Action in case of exceeding this quota.
|
condition |
The condition for matching the quota. |
limit |
int64 Desired maximum number of requests per period. |
period |
int64 Period of time in seconds. |
characteristics[] |
List of characteristics. |
Characteristic
Field |
Description |
simple_characteristic |
Characteristic automatically based on the Request path, HTTP method, IP address, Region, and Host attributes. Includes only one of the fields |
key_characteristic |
Characteristic based on key match in the Query params, HTTP header, and HTTP cookie attributes. Includes only one of the fields |
case_insensitive |
bool Determines case-sensitive or case-insensitive keys matching. |
SimpleCharacteristic
Field |
Description |
type |
enum Type Type of simple characteristic.
|
KeyCharacteristic
Field |
Description |
type |
enum Type Type of key characteristic.
|
value |
string String value of the key. |
operation.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 |
Creation timestamp. |
created_by |
string ID of the user or service account who initiated the operation. |
modified_at |
The time when the Operation resource was last modified. |
done |
bool If the value is |
metadata |
UpdateAdvancedRateLimiterProfileMetadata Service-specific metadata associated with the operation. |
error |
The error result of the operation in case of failure or cancellation. Includes only one of the fields The operation result. |
response |
The normal response of the operation in case of success. Includes only one of the fields The operation result. |
UpdateAdvancedRateLimiterProfileMetadata
Field |
Description |
advanced_rate_limiter_profile_id |
string ID of the AdvancedRateLimiterProfile resource that is being updated. |
AdvancedRateLimiterProfile
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 |
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[] |
List of rules. |
created_at |
Creation timestamp in RFC3339 |
cloud_id |
string ID of the cloud that the ARL profile belongs to. |
AdvancedRateLimiterRule
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. |
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. |
static_quota |
Static quota. Counting each request individually. Includes only one of the fields |
dynamic_quota |
Dynamic quota. Grouping requests by a certain attribute and limiting the number of groups. Includes only one of the fields |
StaticQuota
StaticQuota object.
Field |
Description |
action |
enum Action Action in case of exceeding this quota.
|
condition |
The condition for matching the quota. |
limit |
int64 Desired maximum number of requests per period. |
period |
int64 Period of time in seconds. |
Condition
Condition object. AND semantics implied.
See documentation for matchers description.
Field |
Description |
authority |
Match authority (Host header). |
http_method |
Match HTTP method. |
request_uri |
Match Request URI. |
headers[] |
Match HTTP headers. |
source_ip |
Match IP. |
AuthorityMatcher
AuthorityMatcher object.
Field |
Description |
authorities[] |
List of authorities. OR semantics implied. |
StringMatcher
StringMatcher object.
Field |
Description |
exact_match |
string Includes only one of the fields |
exact_not_match |
string Includes only one of the fields |
prefix_match |
string Includes only one of the fields |
prefix_not_match |
string Includes only one of the fields |
pire_regex_match |
string Includes only one of the fields |
pire_regex_not_match |
string Includes only one of the fields |
HttpMethodMatcher
HttpMethodMatcher object.
Field |
Description |
http_methods[] |
List of HTTP methods. OR semantics implied. |
RequestUriMatcher
RequestUriMatcher object. AND semantics implied.
Field |
Description |
path |
Path of the URI RFC3986 |
queries[] |
List of query matchers. AND semantics implied. |
QueryMatcher
QueryMatcher object.
Field |
Description |
key |
string Required field. Key of the query parameter. |
value |
Required field. Value of the query parameter. |
HeaderMatcher
HeaderMatcher object.
Field |
Description |
name |
string Required field. Name of header (case insensitive). |
value |
Required field. Value of the header. |
IpMatcher
IpMatcher object. AND semantics implied.
Field |
Description |
ip_ranges_match |
|
ip_ranges_not_match |
|
geo_ip_match |
|
geo_ip_not_match |
IpRangesMatcher
IpRangesMatcher object.
Field |
Description |
ip_ranges[] |
string List of IP ranges. OR semantics implied. |
GeoIpMatcher
GeoIpMatcher object.
Field |
Description |
locations[] |
string ISO 3166-1 alpha 2. OR semantics implied. |
DynamicQuota
DynamicQuota object.
Field |
Description |
action |
enum Action Action in case of exceeding this quota.
|
condition |
The condition for matching the quota. |
limit |
int64 Desired maximum number of requests per period. |
period |
int64 Period of time in seconds. |
characteristics[] |
List of characteristics. |
Characteristic
Field |
Description |
simple_characteristic |
Characteristic automatically based on the Request path, HTTP method, IP address, Region, and Host attributes. Includes only one of the fields |
key_characteristic |
Characteristic based on key match in the Query params, HTTP header, and HTTP cookie attributes. Includes only one of the fields |
case_insensitive |
bool Determines case-sensitive or case-insensitive keys matching. |
SimpleCharacteristic
Field |
Description |
type |
enum Type Type of simple characteristic.
|
KeyCharacteristic
Field |
Description |
type |
enum Type Type of key characteristic.
|
value |
string String value of the key. |