Skip to content

Latest commit

 

History

History
255 lines (198 loc) · 12.5 KB

RateLimiterApi.md

File metadata and controls

255 lines (198 loc) · 12.5 KB

Fastly::RateLimiterApi

require 'fastly'
api_instance = Fastly::RateLimiterApi.new

Methods

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

create_rate_limiter(opts): <RateLimiterResponse> # Create a rate limiter

Create a rate limiter for a particular service and version.

Examples

api_instance = Fastly::RateLimiterApi.new
opts = {
    service_id: 'service_id_example', # String | Alphanumeric string identifying the service.
    version_id: 56, # Integer | Integer identifying a service version.
    name: 'name_example', # String | A human readable name for the rate limiting rule.
    uri_dictionary_name: 'uri_dictionary_name_example', # String | The name of an Edge Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited.
    http_methods: ['HEAD'], # Array<String> | Array of HTTP methods to apply rate limiting to.
    rps_limit: 56, # Integer | Upper limit of requests per second allowed by the rate limiter.
    window_size: 1, # Integer | Number of seconds during which the RPS limit must be exceeded in order to trigger a violation.
    client_key: ['inner_example'], # Array<String> | 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: 56, # Integer | Length of time in minutes that the rate limiter is in effect after the initial violation is detected.
    action: 'response', # String | The action to take when a rate limiter violation is detected.
    response_object_name: 'response_object_name_example', # 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: 'azureblob', # 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: 56, # Integer | Revision number of the rate limiting feature implementation. Defaults to the most recent revision.
}

begin
  # Create a rate limiter
  result = api_instance.create_rate_limiter(opts)
  p result
rescue Fastly::ApiError => e
  puts "Error when calling RateLimiterApi->create_rate_limiter: #{e}"
end

Options

Name Type Description Notes
service_id String Alphanumeric string identifying the service.
version_id Integer Integer identifying a service version.
name String A human readable name for the rate limiting rule. [optional]
uri_dictionary_name String 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 Array<String> Array of HTTP methods to apply rate limiting to. [optional]
rps_limit Integer Upper limit of requests per second allowed by the rate limiter. [optional]
window_size Integer Number of seconds during which the RPS limit must be exceeded in order to trigger a violation. [optional]
client_key Array<String> 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 Integer Length of time in minutes that the rate limiter is in effect after the initial violation is detected. [optional]
action String The action to take when a rate limiter violation is detected. [optional]
response_object_name 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. [optional]
logger_type 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. [optional]
feature_revision Integer Revision number of the rate limiting feature implementation. Defaults to the most recent revision. [optional]

Return type

RateLimiterResponse

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

delete_rate_limiter()

delete_rate_limiter(opts): <InlineResponse200> # Delete a rate limiter

Delete a rate limiter by its ID.

Examples

api_instance = Fastly::RateLimiterApi.new
opts = {
    rate_limiter_id: 'rate_limiter_id_example', # String | Alphanumeric string identifying the rate limiter.
}

begin
  # Delete a rate limiter
  result = api_instance.delete_rate_limiter(opts)
  p result
rescue Fastly::ApiError => e
  puts "Error when calling RateLimiterApi->delete_rate_limiter: #{e}"
end

Options

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

Return type

InlineResponse200

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

get_rate_limiter()

get_rate_limiter(opts): <RateLimiterResponse> # Get a rate limiter

Get a rate limiter by its ID.

Examples

api_instance = Fastly::RateLimiterApi.new
opts = {
    rate_limiter_id: 'rate_limiter_id_example', # String | Alphanumeric string identifying the rate limiter.
}

begin
  # Get a rate limiter
  result = api_instance.get_rate_limiter(opts)
  p result
rescue Fastly::ApiError => e
  puts "Error when calling RateLimiterApi->get_rate_limiter: #{e}"
end

Options

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

Return type

RateLimiterResponse

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

list_rate_limiters()

list_rate_limiters(opts): <Array<RateLimiterResponse>> # List rate limiters

List all rate limiters for a particular service and version.

Examples

api_instance = Fastly::RateLimiterApi.new
opts = {
    service_id: 'service_id_example', # String | Alphanumeric string identifying the service.
    version_id: 56, # Integer | Integer identifying a service version.
}

begin
  # List rate limiters
  result = api_instance.list_rate_limiters(opts)
  p result
rescue Fastly::ApiError => e
  puts "Error when calling RateLimiterApi->list_rate_limiters: #{e}"
end

Options

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

Return type

Array<RateLimiterResponse>

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

update_rate_limiter()

update_rate_limiter(opts): <RateLimiterResponse> # Update a rate limiter

Update a rate limiter by its ID.

Examples

api_instance = Fastly::RateLimiterApi.new
opts = {
    rate_limiter_id: 'rate_limiter_id_example', # String | Alphanumeric string identifying the rate limiter.
    name: 'name_example', # String | A human readable name for the rate limiting rule.
    uri_dictionary_name: 'uri_dictionary_name_example', # String | The name of an Edge Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited.
    http_methods: ['HEAD'], # Array<String> | Array of HTTP methods to apply rate limiting to.
    rps_limit: 56, # Integer | Upper limit of requests per second allowed by the rate limiter.
    window_size: 1, # Integer | Number of seconds during which the RPS limit must be exceeded in order to trigger a violation.
    client_key: ['inner_example'], # Array<String> | 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: 56, # Integer | Length of time in minutes that the rate limiter is in effect after the initial violation is detected.
    action: 'response', # String | The action to take when a rate limiter violation is detected.
    response_object_name: 'response_object_name_example', # 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: 'azureblob', # 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: 56, # Integer | Revision number of the rate limiting feature implementation. Defaults to the most recent revision.
}

begin
  # Update a rate limiter
  result = api_instance.update_rate_limiter(opts)
  p result
rescue Fastly::ApiError => e
  puts "Error when calling RateLimiterApi->update_rate_limiter: #{e}"
end

Options

Name Type Description Notes
rate_limiter_id String Alphanumeric string identifying the rate limiter.
name String A human readable name for the rate limiting rule. [optional]
uri_dictionary_name String 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 Array<String> Array of HTTP methods to apply rate limiting to. [optional]
rps_limit Integer Upper limit of requests per second allowed by the rate limiter. [optional]
window_size Integer Number of seconds during which the RPS limit must be exceeded in order to trigger a violation. [optional]
client_key Array<String> 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 Integer Length of time in minutes that the rate limiter is in effect after the initial violation is detected. [optional]
action String The action to take when a rate limiter violation is detected. [optional]
response_object_name 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. [optional]
logger_type 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. [optional]
feature_revision Integer Revision number of the rate limiting feature implementation. Defaults to the most recent revision. [optional]

Return type

RateLimiterResponse

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