# RateLimiterApi
> [!NOTE]
> All URIs are relative to `https://api.fastly.com`
[**create_rate_limiter**](RateLimiterApi.md#create_rate_limiter) | **POST** /service/{service_id}/version/{version_id}/rate-limiters | Create a rate limiter
[**delete_rate_limiter**](RateLimiterApi.md#delete_rate_limiter) | **DELETE** /rate-limiters/{rate_limiter_id} | Delete a rate limiter
[**get_rate_limiter**](RateLimiterApi.md#get_rate_limiter) | **GET** /rate-limiters/{rate_limiter_id} | Get a rate limiter
[**list_rate_limiters**](RateLimiterApi.md#list_rate_limiters) | **GET** /service/{service_id}/version/{version_id}/rate-limiters | List rate limiters
[**update_rate_limiter**](RateLimiterApi.md#update_rate_limiter) | **PUT** /rate-limiters/{rate_limiter_id} | Update a rate limiter
## create_rate_limiter
Create a rate limiter for a particular service and version.
```rust
let cfg = &Configuration::default();
let params = CreateRateLimiterParams {
// parameters
};
create_rate_limiter(cfg, params)
```
### Parameters
**service_id** | **String** | Alphanumeric string identifying the service. | [required] |
**version_id** | **i32** | Integer identifying a service version. | [required] |
**name** | Option\<**String**> | A human readable name for the rate limiting rule. | |
**uri_dictionary_name** | Option\<**String**> | The name of a Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited. | |
**http_methods** | Option\<[**Vec<String>**](String.md)> | Array of HTTP methods to apply rate limiting to. | |
**rps_limit** | Option\<**i32**> | Upper limit of requests per second allowed by the rate limiter. | |
**window_size** | Option\<**i32**> | Number of seconds during which the RPS limit must be exceeded in order to trigger a violation. | |
**client_key** | Option\<[**Vec<String>**](String.md)> | Array of VCL variables used to generate a counter key to identify a client. Example variables include `req.http.Fastly-Client-IP`, `req.http.User-Agent`, or a custom header like `req.http.API-Key`. | |
**penalty_box_duration** | Option\<**i32**> | Length of time in minutes that the rate limiter is in effect after the initial violation is detected. | |
**action** | Option\<**String**> | The action to take when a rate limiter violation is detected. | |
**response_object_name** | Option\<**String**> | Name of existing response object. Required if `action` is `response_object`. Note that the rate limiter response is only updated to reflect the response object content when saving the rate limiter configuration. | |
**logger_type** | Option\<**String**> | Name of the type of logging endpoint to be used when action is `log_only`. The logging endpoint type is used to determine the appropriate log format to use when emitting log entries. | |
**feature_revision** | Option\<**i32**> | Revision number of the rate limiting feature implementation. Defaults to the most recent revision. | |
### Return type
[**crate::models::RateLimiterResponse**](RateLimiterResponse.md)
### Authorization
[token](../README.md#token)
### HTTP request headers
- **Content-Type**: application/x-www-form-urlencoded
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
## delete_rate_limiter
Delete a rate limiter by its ID.
```rust
let cfg = &Configuration::default();
let params = DeleteRateLimiterParams {
// parameters
};
delete_rate_limiter(cfg, params)
```
### Parameters
**rate_limiter_id** | **String** | Alphanumeric string identifying the rate limiter. | [required] |
### Return type
[**crate::models::InlineResponse200**](InlineResponse200.md)
### Authorization
[token](../README.md#token)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
## get_rate_limiter
Get a rate limiter by its ID.
```rust
let cfg = &Configuration::default();
let params = GetRateLimiterParams {
// parameters
};
get_rate_limiter(cfg, params)
```
### Parameters
**rate_limiter_id** | **String** | Alphanumeric string identifying the rate limiter. | [required] |
### Return type
[**crate::models::RateLimiterResponse**](RateLimiterResponse.md)
### Authorization
[token](../README.md#token)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
## list_rate_limiters
List all rate limiters for a particular service and version.
```rust
let cfg = &Configuration::default();
let params = ListRateLimitersParams {
// parameters
};
list_rate_limiters(cfg, params)
```
### Parameters
**service_id** | **String** | Alphanumeric string identifying the service. | [required] |
**version_id** | **i32** | Integer identifying a service version. | [required] |
### Return type
[**Vec<crate::models::RateLimiterResponse>**](RateLimiterResponse.md)
### Authorization
[token](../README.md#token)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
## update_rate_limiter
Update a rate limiter by its ID.
```rust
let cfg = &Configuration::default();
let params = UpdateRateLimiterParams {
// parameters
};
update_rate_limiter(cfg, params)
```
### Parameters
**rate_limiter_id** | **String** | Alphanumeric string identifying the rate limiter. | [required] |
**name** | Option\<**String**> | A human readable name for the rate limiting rule. | |
**uri_dictionary_name** | Option\<**String**> | The name of a Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited. | |
**http_methods** | Option\<[**Vec<String>**](String.md)> | Array of HTTP methods to apply rate limiting to. | |
**rps_limit** | Option\<**i32**> | Upper limit of requests per second allowed by the rate limiter. | |
**window_size** | Option\<**i32**> | Number of seconds during which the RPS limit must be exceeded in order to trigger a violation. | |
**client_key** | Option\<[**Vec<String>**](String.md)> | Array of VCL variables used to generate a counter key to identify a client. Example variables include `req.http.Fastly-Client-IP`, `req.http.User-Agent`, or a custom header like `req.http.API-Key`. | |
**penalty_box_duration** | Option\<**i32**> | Length of time in minutes that the rate limiter is in effect after the initial violation is detected. | |
**action** | Option\<**String**> | The action to take when a rate limiter violation is detected. | |
**response_object_name** | Option\<**String**> | Name of existing response object. Required if `action` is `response_object`. Note that the rate limiter response is only updated to reflect the response object content when saving the rate limiter configuration. | |
**logger_type** | Option\<**String**> | Name of the type of logging endpoint to be used when action is `log_only`. The logging endpoint type is used to determine the appropriate log format to use when emitting log entries. | |
**feature_revision** | Option\<**i32**> | Revision number of the rate limiting feature implementation. Defaults to the most recent revision. | |
### Return type
[**crate::models::RateLimiterResponse**](RateLimiterResponse.md)
### Authorization
[token](../README.md#token)
### HTTP request headers
- **Content-Type**: application/x-www-form-urlencoded
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)