Skip to content

Latest commit

 

History

History
478 lines (352 loc) · 21.3 KB

RateLimiterApi.md

File metadata and controls

478 lines (352 loc) · 21.3 KB

fastly.RateLimiterApi

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

create_rate_limiter

RateLimiterResponse create_rate_limiter(service_id, version_id)

Create a rate limiter

Create a rate limiter for a particular service and version.

Example

  • 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)

Parameters

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]

Return type

RateLimiterResponse

Authorization

token

HTTP request headers

  • Content-Type: application/x-www-form-urlencoded
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 OK -

[Back to top] [Back to API list] [Back to Model list] [Back to README]

delete_rate_limiter

InlineResponse200 delete_rate_limiter(rate_limiter_id)

Delete a rate limiter

Delete a rate limiter by its ID.

Example

  • 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)

Parameters

Name Type Description Notes
rate_limiter_id str Alphanumeric string identifying the rate limiter.

Return type

InlineResponse200

Authorization

token

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 OK -

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_rate_limiter

RateLimiterResponse get_rate_limiter(rate_limiter_id)

Get a rate limiter

Get a rate limiter by its ID.

Example

  • 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)

Parameters

Name Type Description Notes
rate_limiter_id str Alphanumeric string identifying the rate limiter.

Return type

RateLimiterResponse

Authorization

token

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 OK -

[Back to top] [Back to API list] [Back to Model list] [Back to README]

list_rate_limiters

[RateLimiterResponse] list_rate_limiters(service_id, version_id)

List rate limiters

List all rate limiters for a particular service and version.

Example

  • 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)

Parameters

Name Type Description Notes
service_id str Alphanumeric string identifying the service.
version_id int Integer identifying a service version.

Return type

[RateLimiterResponse]

Authorization

token

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 OK -

[Back to top] [Back to API list] [Back to Model list] [Back to README]

update_rate_limiter

RateLimiterResponse update_rate_limiter(rate_limiter_id)

Update a rate limiter

Update a rate limiter by its ID.

Example

  • 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)

Parameters

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]

Return type

RateLimiterResponse

Authorization

token

HTTP request headers

  • Content-Type: application/x-www-form-urlencoded
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 OK -

[Back to top] [Back to API list] [Back to Model list] [Back to README]