Note
All URIs are relative to https://api.fastly.com
Method | HTTP request | Description |
---|---|---|
create_rate_limiter | POST /service/{service_id}/version/{version_id}/rate-limiters | Create a rate limiter |
delete_rate_limiter | DELETE /rate-limiters/{rate_limiter_id} | Delete a rate limiter |
get_rate_limiter | GET /rate-limiters/{rate_limiter_id} | Get a rate limiter |
list_rate_limiters | GET /service/{service_id}/version/{version_id}/rate-limiters | List rate limiters |
update_rate_limiter | PUT /rate-limiters/{rate_limiter_id} | Update a rate limiter |
RateLimiterResponse create_rate_limiter(service_id, version_id)
Create a rate limiter
Create a rate limiter for a particular service and version.
- Api Key Authentication (token):
import time
import fastly
from fastly.api import rate_limiter_api
from fastly.model.rate_limiter_response import RateLimiterResponse
from pprint import pprint
# Defining the host is optional and defaults to https://api.fastly.com
# See configuration.py for a list of all supported configuration parameters.
configuration = fastly.Configuration(
host = "https://api.fastly.com"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure API key authorization: token
configuration.api_key['token'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['token'] = 'Bearer'
# Enter a context with an instance of the API client
with fastly.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = rate_limiter_api.RateLimiterApi(api_client)
service_id = "SU1Z0isxPaozGVKXdv0eY" # str | Alphanumeric string identifying the service.
version_id = 1 # int | Integer identifying a service version.
name = "name_example" # str | A human readable name for the rate limiting rule. (optional)
uri_dictionary_name = "uri_dictionary_name_example" # str, none_type | The name of an Edge Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited. (optional)
http_methods = [
"HEAD",
] # [str] | Array of HTTP methods to apply rate limiting to. (optional)
rps_limit = 10 # int | Upper limit of requests per second allowed by the rate limiter. (optional)
window_size = 1 # int | Number of seconds during which the RPS limit must be exceeded in order to trigger a violation. (optional)
client_key = [
"client_key_example",
] # [str] | 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`. (optional)
penalty_box_duration = 1 # int | Length of time in minutes that the rate limiter is in effect after the initial violation is detected. (optional)
action = "response" # str | The action to take when a rate limiter violation is detected. (optional)
response_object_name = "response_object_name_example" # str, none_type | 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. (optional)
logger_type = "azureblob" # str | 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. (optional)
feature_revision = 1 # int | Revision number of the rate limiting feature implementation. Defaults to the most recent revision. (optional)
# example passing only required values which don't have defaults set
try:
# Create a rate limiter
api_response = api_instance.create_rate_limiter(service_id, version_id)
pprint(api_response)
except fastly.ApiException as e:
print("Exception when calling RateLimiterApi->create_rate_limiter: %s\n" % e)
# example passing only required values which don't have defaults set
# and optional values
try:
# Create a rate limiter
api_response = api_instance.create_rate_limiter(service_id, version_id, name=name, uri_dictionary_name=uri_dictionary_name, http_methods=http_methods, rps_limit=rps_limit, window_size=window_size, client_key=client_key, penalty_box_duration=penalty_box_duration, action=action, response_object_name=response_object_name, logger_type=logger_type, feature_revision=feature_revision)
pprint(api_response)
except fastly.ApiException as e:
print("Exception when calling RateLimiterApi->create_rate_limiter: %s\n" % e)
Name | Type | Description | Notes |
---|---|---|---|
service_id | str | Alphanumeric string identifying the service. | |
version_id | int | Integer identifying a service version. | |
name | str | A human readable name for the rate limiting rule. | [optional] |
uri_dictionary_name | str, none_type | The name of an Edge Dictionary containing URIs as keys. If not defined or null , all origin URIs will be rate limited. |
[optional] |
http_methods | [str] | Array of HTTP methods to apply rate limiting to. | [optional] |
rps_limit | int | Upper limit of requests per second allowed by the rate limiter. | [optional] |
window_size | int | Number of seconds during which the RPS limit must be exceeded in order to trigger a violation. | [optional] |
client_key | [str] | 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 . |
[optional] |
penalty_box_duration | int | Length of time in minutes that the rate limiter is in effect after the initial violation is detected. | [optional] |
action | str | The action to take when a rate limiter violation is detected. | [optional] |
response_object_name | str, none_type | 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. |
[optional] |
logger_type | str | 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. |
[optional] |
feature_revision | int | Revision number of the rate limiting feature implementation. Defaults to the most recent revision. | [optional] |
- Content-Type: application/x-www-form-urlencoded
- Accept: application/json
Status code | Description | Response headers |
---|---|---|
200 | OK | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
InlineResponse200 delete_rate_limiter(rate_limiter_id)
Delete a rate limiter
Delete a rate limiter by its ID.
- Api Key Authentication (token):
import time
import fastly
from fastly.api import rate_limiter_api
from fastly.model.inline_response200 import InlineResponse200
from pprint import pprint
# Defining the host is optional and defaults to https://api.fastly.com
# See configuration.py for a list of all supported configuration parameters.
configuration = fastly.Configuration(
host = "https://api.fastly.com"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure API key authorization: token
configuration.api_key['token'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['token'] = 'Bearer'
# Enter a context with an instance of the API client
with fastly.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = rate_limiter_api.RateLimiterApi(api_client)
rate_limiter_id = "s7aqgcJjqqKhwiTRMaP11" # str | Alphanumeric string identifying the rate limiter.
# example passing only required values which don't have defaults set
try:
# Delete a rate limiter
api_response = api_instance.delete_rate_limiter(rate_limiter_id)
pprint(api_response)
except fastly.ApiException as e:
print("Exception when calling RateLimiterApi->delete_rate_limiter: %s\n" % e)
Name | Type | Description | Notes |
---|---|---|---|
rate_limiter_id | str | Alphanumeric string identifying the rate limiter. |
- Content-Type: Not defined
- Accept: application/json
Status code | Description | Response headers |
---|---|---|
200 | OK | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
RateLimiterResponse get_rate_limiter(rate_limiter_id)
Get a rate limiter
Get a rate limiter by its ID.
- Api Key Authentication (token):
import time
import fastly
from fastly.api import rate_limiter_api
from fastly.model.rate_limiter_response import RateLimiterResponse
from pprint import pprint
# Defining the host is optional and defaults to https://api.fastly.com
# See configuration.py for a list of all supported configuration parameters.
configuration = fastly.Configuration(
host = "https://api.fastly.com"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure API key authorization: token
configuration.api_key['token'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['token'] = 'Bearer'
# Enter a context with an instance of the API client
with fastly.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = rate_limiter_api.RateLimiterApi(api_client)
rate_limiter_id = "s7aqgcJjqqKhwiTRMaP11" # str | Alphanumeric string identifying the rate limiter.
# example passing only required values which don't have defaults set
try:
# Get a rate limiter
api_response = api_instance.get_rate_limiter(rate_limiter_id)
pprint(api_response)
except fastly.ApiException as e:
print("Exception when calling RateLimiterApi->get_rate_limiter: %s\n" % e)
Name | Type | Description | Notes |
---|---|---|---|
rate_limiter_id | str | Alphanumeric string identifying the rate limiter. |
- Content-Type: Not defined
- Accept: application/json
Status code | Description | Response headers |
---|---|---|
200 | OK | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
[RateLimiterResponse] list_rate_limiters(service_id, version_id)
List rate limiters
List all rate limiters for a particular service and version.
- Api Key Authentication (token):
import time
import fastly
from fastly.api import rate_limiter_api
from fastly.model.rate_limiter_response import RateLimiterResponse
from pprint import pprint
# Defining the host is optional and defaults to https://api.fastly.com
# See configuration.py for a list of all supported configuration parameters.
configuration = fastly.Configuration(
host = "https://api.fastly.com"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure API key authorization: token
configuration.api_key['token'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['token'] = 'Bearer'
# Enter a context with an instance of the API client
with fastly.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = rate_limiter_api.RateLimiterApi(api_client)
service_id = "SU1Z0isxPaozGVKXdv0eY" # str | Alphanumeric string identifying the service.
version_id = 1 # int | Integer identifying a service version.
# example passing only required values which don't have defaults set
try:
# List rate limiters
api_response = api_instance.list_rate_limiters(service_id, version_id)
pprint(api_response)
except fastly.ApiException as e:
print("Exception when calling RateLimiterApi->list_rate_limiters: %s\n" % e)
Name | Type | Description | Notes |
---|---|---|---|
service_id | str | Alphanumeric string identifying the service. | |
version_id | int | Integer identifying a service version. |
- Content-Type: Not defined
- Accept: application/json
Status code | Description | Response headers |
---|---|---|
200 | OK | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
RateLimiterResponse update_rate_limiter(rate_limiter_id)
Update a rate limiter
Update a rate limiter by its ID.
- Api Key Authentication (token):
import time
import fastly
from fastly.api import rate_limiter_api
from fastly.model.rate_limiter_response import RateLimiterResponse
from pprint import pprint
# Defining the host is optional and defaults to https://api.fastly.com
# See configuration.py for a list of all supported configuration parameters.
configuration = fastly.Configuration(
host = "https://api.fastly.com"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure API key authorization: token
configuration.api_key['token'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['token'] = 'Bearer'
# Enter a context with an instance of the API client
with fastly.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = rate_limiter_api.RateLimiterApi(api_client)
rate_limiter_id = "s7aqgcJjqqKhwiTRMaP11" # str | Alphanumeric string identifying the rate limiter.
name = "name_example" # str | A human readable name for the rate limiting rule. (optional)
uri_dictionary_name = "uri_dictionary_name_example" # str, none_type | The name of an Edge Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited. (optional)
http_methods = [
"HEAD",
] # [str] | Array of HTTP methods to apply rate limiting to. (optional)
rps_limit = 10 # int | Upper limit of requests per second allowed by the rate limiter. (optional)
window_size = 1 # int | Number of seconds during which the RPS limit must be exceeded in order to trigger a violation. (optional)
client_key = [
"client_key_example",
] # [str] | 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`. (optional)
penalty_box_duration = 1 # int | Length of time in minutes that the rate limiter is in effect after the initial violation is detected. (optional)
action = "response" # str | The action to take when a rate limiter violation is detected. (optional)
response_object_name = "response_object_name_example" # str, none_type | 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. (optional)
logger_type = "azureblob" # str | 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. (optional)
feature_revision = 1 # int | Revision number of the rate limiting feature implementation. Defaults to the most recent revision. (optional)
# example passing only required values which don't have defaults set
try:
# Update a rate limiter
api_response = api_instance.update_rate_limiter(rate_limiter_id)
pprint(api_response)
except fastly.ApiException as e:
print("Exception when calling RateLimiterApi->update_rate_limiter: %s\n" % e)
# example passing only required values which don't have defaults set
# and optional values
try:
# Update a rate limiter
api_response = api_instance.update_rate_limiter(rate_limiter_id, name=name, uri_dictionary_name=uri_dictionary_name, http_methods=http_methods, rps_limit=rps_limit, window_size=window_size, client_key=client_key, penalty_box_duration=penalty_box_duration, action=action, response_object_name=response_object_name, logger_type=logger_type, feature_revision=feature_revision)
pprint(api_response)
except fastly.ApiException as e:
print("Exception when calling RateLimiterApi->update_rate_limiter: %s\n" % e)
Name | Type | Description | Notes |
---|---|---|---|
rate_limiter_id | str | Alphanumeric string identifying the rate limiter. | |
name | str | A human readable name for the rate limiting rule. | [optional] |
uri_dictionary_name | str, none_type | The name of an Edge Dictionary containing URIs as keys. If not defined or null , all origin URIs will be rate limited. |
[optional] |
http_methods | [str] | Array of HTTP methods to apply rate limiting to. | [optional] |
rps_limit | int | Upper limit of requests per second allowed by the rate limiter. | [optional] |
window_size | int | Number of seconds during which the RPS limit must be exceeded in order to trigger a violation. | [optional] |
client_key | [str] | 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 . |
[optional] |
penalty_box_duration | int | Length of time in minutes that the rate limiter is in effect after the initial violation is detected. | [optional] |
action | str | The action to take when a rate limiter violation is detected. | [optional] |
response_object_name | str, none_type | 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. |
[optional] |
logger_type | str | 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. |
[optional] |
feature_revision | int | Revision number of the rate limiting feature implementation. Defaults to the most recent revision. | [optional] |
- Content-Type: application/x-www-form-urlencoded
- Accept: application/json
Status code | Description | Response headers |
---|---|---|
200 | OK | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]