fastly 5.2.2 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/Gemfile.lock +1 -1
- data/README.md +4 -3
- data/docs/AutomationTokenCreateResponse.md +3 -3
- data/docs/AutomationTokenCreateResponseAllOf.md +3 -3
- data/docs/AutomationTokenResponse.md +2 -2
- data/docs/AutomationTokenResponseAllOf.md +2 -2
- data/docs/AutomationTokensApi.md +4 -3
- data/docs/Batch.md +12 -0
- data/docs/BatchErrors.md +13 -0
- data/docs/ErrorResponse.md +13 -0
- data/docs/HistoricalFieldResultsAttributes.md +1 -1
- data/docs/HistoricalFieldResultsAttributesAllOf.md +1 -1
- data/docs/RateLimiter.md +1 -1
- data/docs/RateLimiterApi.md +122 -0
- data/docs/RateLimiterResponse.md +1 -1
- data/docs/ReadOnlyCustomerId.md +9 -0
- data/docs/ReadOnlyId.md +9 -0
- data/docs/ReadOnlyIdService.md +9 -0
- data/docs/ReadOnlyUserId.md +9 -0
- data/docs/SchemasSnippetResponse.md +1 -1
- data/docs/Snippet.md +1 -1
- data/docs/SnippetApi.md +4 -4
- data/docs/SnippetResponse.md +1 -1
- data/docs/TokensAdditionalProps.md +9 -0
- data/docs/ValidatorResult.md +1 -5
- data/docs/ValidatorResultData.md +12 -0
- data/docs/ValidatorResultDataAttributes.md +14 -0
- data/docs/{ValidatorResultMessages.md → ValidatorResultDataAttributesMessages.md} +2 -2
- data/docs/VclApi.md +8 -6
- data/docs/VclSyntaxHighlightingResponse.md +10 -0
- data/lib/fastly/api/automation_tokens_api.rb +5 -5
- data/lib/fastly/api/rate_limiter_api.rb +345 -0
- data/lib/fastly/api/snippet_api.rb +6 -6
- data/lib/fastly/api/vcl_api.rb +10 -10
- data/lib/fastly/configuration.rb +12 -0
- data/lib/fastly/models/automation_token_create_request_attributes.rb +0 -1
- data/lib/fastly/models/automation_token_create_response.rb +3 -6
- data/lib/fastly/models/automation_token_create_response_all_of.rb +3 -6
- data/lib/fastly/models/automation_token_response.rb +2 -4
- data/lib/fastly/models/automation_token_response_all_of.rb +2 -4
- data/lib/fastly/models/batch.rb +239 -0
- data/lib/fastly/models/batch_errors.rb +247 -0
- data/lib/fastly/models/error_response.rb +245 -0
- data/lib/fastly/models/historical_field_results_attributes.rb +1 -2
- data/lib/fastly/models/historical_field_results_attributes_all_of.rb +1 -2
- data/lib/fastly/models/rate_limiter.rb +5 -2
- data/lib/fastly/models/rate_limiter_response.rb +5 -2
- data/lib/fastly/models/read_only_customer_id.rb +207 -0
- data/lib/fastly/models/read_only_id.rb +207 -0
- data/lib/fastly/models/read_only_id_service.rb +207 -0
- data/lib/fastly/models/read_only_user_id.rb +207 -0
- data/lib/fastly/models/schemas_snippet_response.rb +3 -3
- data/lib/fastly/models/snippet.rb +3 -3
- data/lib/fastly/models/snippet_response.rb +3 -3
- data/lib/fastly/models/tokens_additional_props.rb +227 -0
- data/lib/fastly/models/validator_result.rb +7 -84
- data/lib/fastly/models/validator_result_data.rb +234 -0
- data/lib/fastly/models/{rate_limiter_response1.rb → validator_result_data_attributes.rb} +71 -70
- data/lib/fastly/models/{validator_result_messages.rb → validator_result_data_attributes_messages.rb} +4 -4
- data/lib/fastly/models/vcl_syntax_highlighting_response.rb +217 -0
- data/lib/fastly/version.rb +1 -1
- data/lib/fastly.rb +12 -2
- data/sig.json +1 -1
- metadata +26 -6
- data/docs/RateLimiterResponse1.md +0 -12
@@ -0,0 +1,10 @@
|
|
1
|
+
# Fastly::VclSyntaxHighlightingResponse
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
|
5
|
+
| Name | Type | Description | Notes |
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
7
|
+
| **content** | **String** | VCL with HTML syntax highlighting. | [optional] |
|
8
|
+
|
9
|
+
[[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)
|
10
|
+
|
@@ -277,16 +277,16 @@ module Fastly
|
|
277
277
|
# Revoke an Automation Token by ID
|
278
278
|
# Revoke an automation token by ID.
|
279
279
|
# @option opts [String] :id (required)
|
280
|
-
# @return [
|
280
|
+
# @return [ErrorResponse]
|
281
281
|
def revoke_automation_token_id(opts = {})
|
282
|
-
revoke_automation_token_id_with_http_info(opts)
|
283
|
-
|
282
|
+
data, _status_code, _headers = revoke_automation_token_id_with_http_info(opts)
|
283
|
+
data
|
284
284
|
end
|
285
285
|
|
286
286
|
# Revoke an Automation Token by ID
|
287
287
|
# Revoke an automation token by ID.
|
288
288
|
# @option opts [String] :id (required)
|
289
|
-
# @return [Array<(
|
289
|
+
# @return [Array<(ErrorResponse, Integer, Hash)>] ErrorResponse data, response status code and response headers
|
290
290
|
def revoke_automation_token_id_with_http_info(opts = {})
|
291
291
|
if @api_client.config.debugging
|
292
292
|
@api_client.config.logger.debug 'Calling API: AutomationTokensApi.revoke_automation_token_id ...'
|
@@ -315,7 +315,7 @@ module Fastly
|
|
315
315
|
post_body = opts[:debug_body]
|
316
316
|
|
317
317
|
# return_type
|
318
|
-
return_type = opts[:debug_return_type]
|
318
|
+
return_type = opts[:debug_return_type] || 'ErrorResponse'
|
319
319
|
|
320
320
|
# auth_names
|
321
321
|
auth_names = opts[:debug_auth_names] || ['token']
|
@@ -17,6 +17,182 @@ module Fastly
|
|
17
17
|
def initialize(api_client = ApiClient.default)
|
18
18
|
@api_client = api_client
|
19
19
|
end
|
20
|
+
# Create a rate limiter
|
21
|
+
# Create a rate limiter for a particular service and version.
|
22
|
+
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
23
|
+
# @option opts [Integer] :version_id Integer identifying a service version. (required)
|
24
|
+
# @option opts [String] :name A human readable name for the rate limiting rule.
|
25
|
+
# @option opts [String] :uri_dictionary_name The name of an Edge Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited.
|
26
|
+
# @option opts [Array<String>] :http_methods Array of HTTP methods to apply rate limiting to.
|
27
|
+
# @option opts [Integer] :rps_limit Upper limit of requests per second allowed by the rate limiter.
|
28
|
+
# @option opts [Integer] :window_size Number of seconds during which the RPS limit must be exceeded in order to trigger a violation.
|
29
|
+
# @option opts [Array<String>] :client_key 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`.
|
30
|
+
# @option opts [Integer] :penalty_box_duration Length of time in minutes that the rate limiter is in effect after the initial violation is detected.
|
31
|
+
# @option opts [String] :action The action to take when a rate limiter violation is detected.
|
32
|
+
# @option opts [String] :response_object_name 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.
|
33
|
+
# @option opts [String] :logger_type 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.
|
34
|
+
# @option opts [Integer] :feature_revision Revision number of the rate limiting feature implementation. Defaults to the most recent revision.
|
35
|
+
# @return [RateLimiterResponse]
|
36
|
+
def create_rate_limiter(opts = {})
|
37
|
+
data, _status_code, _headers = create_rate_limiter_with_http_info(opts)
|
38
|
+
data
|
39
|
+
end
|
40
|
+
|
41
|
+
# Create a rate limiter
|
42
|
+
# Create a rate limiter for a particular service and version.
|
43
|
+
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
44
|
+
# @option opts [Integer] :version_id Integer identifying a service version. (required)
|
45
|
+
# @option opts [String] :name A human readable name for the rate limiting rule.
|
46
|
+
# @option opts [String] :uri_dictionary_name The name of an Edge Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited.
|
47
|
+
# @option opts [Array<String>] :http_methods Array of HTTP methods to apply rate limiting to.
|
48
|
+
# @option opts [Integer] :rps_limit Upper limit of requests per second allowed by the rate limiter.
|
49
|
+
# @option opts [Integer] :window_size Number of seconds during which the RPS limit must be exceeded in order to trigger a violation.
|
50
|
+
# @option opts [Array<String>] :client_key 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`.
|
51
|
+
# @option opts [Integer] :penalty_box_duration Length of time in minutes that the rate limiter is in effect after the initial violation is detected.
|
52
|
+
# @option opts [String] :action The action to take when a rate limiter violation is detected.
|
53
|
+
# @option opts [String] :response_object_name 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.
|
54
|
+
# @option opts [String] :logger_type 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.
|
55
|
+
# @option opts [Integer] :feature_revision Revision number of the rate limiting feature implementation. Defaults to the most recent revision.
|
56
|
+
# @return [Array<(RateLimiterResponse, Integer, Hash)>] RateLimiterResponse data, response status code and response headers
|
57
|
+
def create_rate_limiter_with_http_info(opts = {})
|
58
|
+
if @api_client.config.debugging
|
59
|
+
@api_client.config.logger.debug 'Calling API: RateLimiterApi.create_rate_limiter ...'
|
60
|
+
end
|
61
|
+
# unbox the parameters from the hash
|
62
|
+
service_id = opts[:'service_id']
|
63
|
+
version_id = opts[:'version_id']
|
64
|
+
# verify the required parameter 'service_id' is set
|
65
|
+
if @api_client.config.client_side_validation && service_id.nil?
|
66
|
+
fail ArgumentError, "Missing the required parameter 'service_id' when calling RateLimiterApi.create_rate_limiter"
|
67
|
+
end
|
68
|
+
# verify the required parameter 'version_id' is set
|
69
|
+
if @api_client.config.client_side_validation && version_id.nil?
|
70
|
+
fail ArgumentError, "Missing the required parameter 'version_id' when calling RateLimiterApi.create_rate_limiter"
|
71
|
+
end
|
72
|
+
if @api_client.config.client_side_validation && !opts[:'name'].nil? && opts[:'name'].to_s.length > 255
|
73
|
+
fail ArgumentError, 'invalid value for "opts[:"name"]" when calling RateLimiterApi.create_rate_limiter, the character length must be smaller than or equal to 255.'
|
74
|
+
end
|
75
|
+
|
76
|
+
if @api_client.config.client_side_validation && !opts[:'name'].nil? && opts[:'name'].to_s.length < 1
|
77
|
+
fail ArgumentError, 'invalid value for "opts[:"name"]" when calling RateLimiterApi.create_rate_limiter, the character length must be great than or equal to 1.'
|
78
|
+
end
|
79
|
+
|
80
|
+
if @api_client.config.client_side_validation && !opts[:'uri_dictionary_name'].nil? && opts[:'uri_dictionary_name'].to_s.length > 255
|
81
|
+
fail ArgumentError, 'invalid value for "opts[:"uri_dictionary_name"]" when calling RateLimiterApi.create_rate_limiter, the character length must be smaller than or equal to 255.'
|
82
|
+
end
|
83
|
+
|
84
|
+
if @api_client.config.client_side_validation && !opts[:'uri_dictionary_name'].nil? && opts[:'uri_dictionary_name'].to_s.length < 1
|
85
|
+
fail ArgumentError, 'invalid value for "opts[:"uri_dictionary_name"]" when calling RateLimiterApi.create_rate_limiter, the character length must be great than or equal to 1.'
|
86
|
+
end
|
87
|
+
|
88
|
+
allowable_values = ["HEAD", "OPTIONS", "GET", "POST", "PUT", "PATCH", "DELETE", "TRACE"]
|
89
|
+
if @api_client.config.client_side_validation && opts[:'http_methods'] && !opts[:'http_methods'].all? { |item| allowable_values.include?(item) }
|
90
|
+
fail ArgumentError, "invalid value for \"http_methods\", must include one of #{allowable_values}"
|
91
|
+
end
|
92
|
+
if @api_client.config.client_side_validation && !opts[:'http_methods'].nil? && opts[:'http_methods'].length < 1
|
93
|
+
fail ArgumentError, 'invalid value for "opts[:"http_methods"]" when calling RateLimiterApi.create_rate_limiter, number of items must be greater than or equal to 1.'
|
94
|
+
end
|
95
|
+
|
96
|
+
if @api_client.config.client_side_validation && !opts[:'rps_limit'].nil? && opts[:'rps_limit'] > 10000
|
97
|
+
fail ArgumentError, 'invalid value for "opts[:"rps_limit"]" when calling RateLimiterApi.create_rate_limiter, must be smaller than or equal to 10000.'
|
98
|
+
end
|
99
|
+
|
100
|
+
if @api_client.config.client_side_validation && !opts[:'rps_limit'].nil? && opts[:'rps_limit'] < 10
|
101
|
+
fail ArgumentError, 'invalid value for "opts[:"rps_limit"]" when calling RateLimiterApi.create_rate_limiter, must be greater than or equal to 10.'
|
102
|
+
end
|
103
|
+
|
104
|
+
allowable_values = [1, 10, 60]
|
105
|
+
if @api_client.config.client_side_validation && opts[:'window_size'] && !allowable_values.include?(opts[:'window_size'])
|
106
|
+
fail ArgumentError, "invalid value for \"window_size\", must be one of #{allowable_values}"
|
107
|
+
end
|
108
|
+
if @api_client.config.client_side_validation && !opts[:'client_key'].nil? && opts[:'client_key'].length < 1
|
109
|
+
fail ArgumentError, 'invalid value for "opts[:"client_key"]" when calling RateLimiterApi.create_rate_limiter, number of items must be greater than or equal to 1.'
|
110
|
+
end
|
111
|
+
|
112
|
+
if @api_client.config.client_side_validation && !opts[:'penalty_box_duration'].nil? && opts[:'penalty_box_duration'] > 60
|
113
|
+
fail ArgumentError, 'invalid value for "opts[:"penalty_box_duration"]" when calling RateLimiterApi.create_rate_limiter, must be smaller than or equal to 60.'
|
114
|
+
end
|
115
|
+
|
116
|
+
if @api_client.config.client_side_validation && !opts[:'penalty_box_duration'].nil? && opts[:'penalty_box_duration'] < 1
|
117
|
+
fail ArgumentError, 'invalid value for "opts[:"penalty_box_duration"]" when calling RateLimiterApi.create_rate_limiter, must be greater than or equal to 1.'
|
118
|
+
end
|
119
|
+
|
120
|
+
allowable_values = ["response", "response_object", "log_only"]
|
121
|
+
if @api_client.config.client_side_validation && opts[:'action'] && !allowable_values.include?(opts[:'action'])
|
122
|
+
fail ArgumentError, "invalid value for \"action\", must be one of #{allowable_values}"
|
123
|
+
end
|
124
|
+
if @api_client.config.client_side_validation && !opts[:'action'].nil? && opts[:'action'].to_s.length < 1
|
125
|
+
fail ArgumentError, 'invalid value for "opts[:"action"]" when calling RateLimiterApi.create_rate_limiter, the character length must be great than or equal to 1.'
|
126
|
+
end
|
127
|
+
|
128
|
+
if @api_client.config.client_side_validation && !opts[:'response_object_name'].nil? && opts[:'response_object_name'].to_s.length > 255
|
129
|
+
fail ArgumentError, 'invalid value for "opts[:"response_object_name"]" when calling RateLimiterApi.create_rate_limiter, the character length must be smaller than or equal to 255.'
|
130
|
+
end
|
131
|
+
|
132
|
+
if @api_client.config.client_side_validation && !opts[:'response_object_name'].nil? && opts[:'response_object_name'].to_s.length < 1
|
133
|
+
fail ArgumentError, 'invalid value for "opts[:"response_object_name"]" when calling RateLimiterApi.create_rate_limiter, the character length must be great than or equal to 1.'
|
134
|
+
end
|
135
|
+
|
136
|
+
allowable_values = ["azureblob", "bigquery", "cloudfiles", "datadog", "digitalocean", "elasticsearch", "ftp", "gcs", "googleanalytics", "heroku", "honeycomb", "http", "https", "kafka", "kinesis", "logentries", "loggly", "logshuttle", "newrelic", "openstack", "papertrail", "pubsub", "s3", "scalyr", "sftp", "splunk", "stackdriver", "sumologic", "syslog"]
|
137
|
+
if @api_client.config.client_side_validation && opts[:'logger_type'] && !allowable_values.include?(opts[:'logger_type'])
|
138
|
+
fail ArgumentError, "invalid value for \"logger_type\", must be one of #{allowable_values}"
|
139
|
+
end
|
140
|
+
# resource path
|
141
|
+
local_var_path = '/service/{service_id}/version/{version_id}/rate-limiters'.sub('{' + 'service_id' + '}', CGI.escape(service_id.to_s)).sub('{' + 'version_id' + '}', CGI.escape(version_id.to_s))
|
142
|
+
|
143
|
+
# query parameters
|
144
|
+
query_params = opts[:query_params] || {}
|
145
|
+
|
146
|
+
# header parameters
|
147
|
+
header_params = opts[:header_params] || {}
|
148
|
+
# HTTP header 'Accept' (if needed)
|
149
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
150
|
+
# HTTP header 'Content-Type'
|
151
|
+
content_type = @api_client.select_header_content_type(['application/x-www-form-urlencoded'])
|
152
|
+
if !content_type.nil?
|
153
|
+
header_params['Content-Type'] = content_type
|
154
|
+
end
|
155
|
+
|
156
|
+
# form parameters
|
157
|
+
form_params = opts[:form_params] || {}
|
158
|
+
form_params['name'] = opts[:'name'] if !opts[:'name'].nil?
|
159
|
+
form_params['uri_dictionary_name'] = opts[:'uri_dictionary_name'] if !opts[:'uri_dictionary_name'].nil?
|
160
|
+
form_params['http_methods'] = @api_client.build_collection_param(opts[:'http_methods'], :csv) if !opts[:'http_methods'].nil?
|
161
|
+
form_params['rps_limit'] = opts[:'rps_limit'] if !opts[:'rps_limit'].nil?
|
162
|
+
form_params['window_size'] = opts[:'window_size'] if !opts[:'window_size'].nil?
|
163
|
+
form_params['client_key'] = @api_client.build_collection_param(opts[:'client_key'], :csv) if !opts[:'client_key'].nil?
|
164
|
+
form_params['penalty_box_duration'] = opts[:'penalty_box_duration'] if !opts[:'penalty_box_duration'].nil?
|
165
|
+
form_params['action'] = opts[:'action'] if !opts[:'action'].nil?
|
166
|
+
form_params['response_object_name'] = opts[:'response_object_name'] if !opts[:'response_object_name'].nil?
|
167
|
+
form_params['logger_type'] = opts[:'logger_type'] if !opts[:'logger_type'].nil?
|
168
|
+
form_params['feature_revision'] = opts[:'feature_revision'] if !opts[:'feature_revision'].nil?
|
169
|
+
|
170
|
+
# http body (model)
|
171
|
+
post_body = opts[:debug_body]
|
172
|
+
|
173
|
+
# return_type
|
174
|
+
return_type = opts[:debug_return_type] || 'RateLimiterResponse'
|
175
|
+
|
176
|
+
# auth_names
|
177
|
+
auth_names = opts[:debug_auth_names] || ['token']
|
178
|
+
|
179
|
+
new_options = opts.merge(
|
180
|
+
:operation => :"RateLimiterApi.create_rate_limiter",
|
181
|
+
:header_params => header_params,
|
182
|
+
:query_params => query_params,
|
183
|
+
:form_params => form_params,
|
184
|
+
:body => post_body,
|
185
|
+
:auth_names => auth_names,
|
186
|
+
:return_type => return_type
|
187
|
+
)
|
188
|
+
|
189
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
190
|
+
if @api_client.config.debugging
|
191
|
+
@api_client.config.logger.debug "API called: RateLimiterApi#create_rate_limiter\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
192
|
+
end
|
193
|
+
return data, status_code, headers
|
194
|
+
end
|
195
|
+
|
20
196
|
# Delete a rate limiter
|
21
197
|
# Delete a rate limiter by its ID.
|
22
198
|
# @option opts [String] :rate_limiter_id Alphanumeric string identifying the rate limiter. (required)
|
@@ -212,5 +388,174 @@ module Fastly
|
|
212
388
|
end
|
213
389
|
return data, status_code, headers
|
214
390
|
end
|
391
|
+
|
392
|
+
# Update a rate limiter
|
393
|
+
# Update a rate limiter by its ID.
|
394
|
+
# @option opts [String] :rate_limiter_id Alphanumeric string identifying the rate limiter. (required)
|
395
|
+
# @option opts [String] :name A human readable name for the rate limiting rule.
|
396
|
+
# @option opts [String] :uri_dictionary_name The name of an Edge Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited.
|
397
|
+
# @option opts [Array<String>] :http_methods Array of HTTP methods to apply rate limiting to.
|
398
|
+
# @option opts [Integer] :rps_limit Upper limit of requests per second allowed by the rate limiter.
|
399
|
+
# @option opts [Integer] :window_size Number of seconds during which the RPS limit must be exceeded in order to trigger a violation.
|
400
|
+
# @option opts [Array<String>] :client_key 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`.
|
401
|
+
# @option opts [Integer] :penalty_box_duration Length of time in minutes that the rate limiter is in effect after the initial violation is detected.
|
402
|
+
# @option opts [String] :action The action to take when a rate limiter violation is detected.
|
403
|
+
# @option opts [String] :response_object_name 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.
|
404
|
+
# @option opts [String] :logger_type 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.
|
405
|
+
# @option opts [Integer] :feature_revision Revision number of the rate limiting feature implementation. Defaults to the most recent revision.
|
406
|
+
# @return [RateLimiterResponse]
|
407
|
+
def update_rate_limiter(opts = {})
|
408
|
+
data, _status_code, _headers = update_rate_limiter_with_http_info(opts)
|
409
|
+
data
|
410
|
+
end
|
411
|
+
|
412
|
+
# Update a rate limiter
|
413
|
+
# Update a rate limiter by its ID.
|
414
|
+
# @option opts [String] :rate_limiter_id Alphanumeric string identifying the rate limiter. (required)
|
415
|
+
# @option opts [String] :name A human readable name for the rate limiting rule.
|
416
|
+
# @option opts [String] :uri_dictionary_name The name of an Edge Dictionary containing URIs as keys. If not defined or `null`, all origin URIs will be rate limited.
|
417
|
+
# @option opts [Array<String>] :http_methods Array of HTTP methods to apply rate limiting to.
|
418
|
+
# @option opts [Integer] :rps_limit Upper limit of requests per second allowed by the rate limiter.
|
419
|
+
# @option opts [Integer] :window_size Number of seconds during which the RPS limit must be exceeded in order to trigger a violation.
|
420
|
+
# @option opts [Array<String>] :client_key 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`.
|
421
|
+
# @option opts [Integer] :penalty_box_duration Length of time in minutes that the rate limiter is in effect after the initial violation is detected.
|
422
|
+
# @option opts [String] :action The action to take when a rate limiter violation is detected.
|
423
|
+
# @option opts [String] :response_object_name 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.
|
424
|
+
# @option opts [String] :logger_type 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.
|
425
|
+
# @option opts [Integer] :feature_revision Revision number of the rate limiting feature implementation. Defaults to the most recent revision.
|
426
|
+
# @return [Array<(RateLimiterResponse, Integer, Hash)>] RateLimiterResponse data, response status code and response headers
|
427
|
+
def update_rate_limiter_with_http_info(opts = {})
|
428
|
+
if @api_client.config.debugging
|
429
|
+
@api_client.config.logger.debug 'Calling API: RateLimiterApi.update_rate_limiter ...'
|
430
|
+
end
|
431
|
+
# unbox the parameters from the hash
|
432
|
+
rate_limiter_id = opts[:'rate_limiter_id']
|
433
|
+
# verify the required parameter 'rate_limiter_id' is set
|
434
|
+
if @api_client.config.client_side_validation && rate_limiter_id.nil?
|
435
|
+
fail ArgumentError, "Missing the required parameter 'rate_limiter_id' when calling RateLimiterApi.update_rate_limiter"
|
436
|
+
end
|
437
|
+
if @api_client.config.client_side_validation && !opts[:'name'].nil? && opts[:'name'].to_s.length > 255
|
438
|
+
fail ArgumentError, 'invalid value for "opts[:"name"]" when calling RateLimiterApi.update_rate_limiter, the character length must be smaller than or equal to 255.'
|
439
|
+
end
|
440
|
+
|
441
|
+
if @api_client.config.client_side_validation && !opts[:'name'].nil? && opts[:'name'].to_s.length < 1
|
442
|
+
fail ArgumentError, 'invalid value for "opts[:"name"]" when calling RateLimiterApi.update_rate_limiter, the character length must be great than or equal to 1.'
|
443
|
+
end
|
444
|
+
|
445
|
+
if @api_client.config.client_side_validation && !opts[:'uri_dictionary_name'].nil? && opts[:'uri_dictionary_name'].to_s.length > 255
|
446
|
+
fail ArgumentError, 'invalid value for "opts[:"uri_dictionary_name"]" when calling RateLimiterApi.update_rate_limiter, the character length must be smaller than or equal to 255.'
|
447
|
+
end
|
448
|
+
|
449
|
+
if @api_client.config.client_side_validation && !opts[:'uri_dictionary_name'].nil? && opts[:'uri_dictionary_name'].to_s.length < 1
|
450
|
+
fail ArgumentError, 'invalid value for "opts[:"uri_dictionary_name"]" when calling RateLimiterApi.update_rate_limiter, the character length must be great than or equal to 1.'
|
451
|
+
end
|
452
|
+
|
453
|
+
allowable_values = ["HEAD", "OPTIONS", "GET", "POST", "PUT", "PATCH", "DELETE", "TRACE"]
|
454
|
+
if @api_client.config.client_side_validation && opts[:'http_methods'] && !opts[:'http_methods'].all? { |item| allowable_values.include?(item) }
|
455
|
+
fail ArgumentError, "invalid value for \"http_methods\", must include one of #{allowable_values}"
|
456
|
+
end
|
457
|
+
if @api_client.config.client_side_validation && !opts[:'http_methods'].nil? && opts[:'http_methods'].length < 1
|
458
|
+
fail ArgumentError, 'invalid value for "opts[:"http_methods"]" when calling RateLimiterApi.update_rate_limiter, number of items must be greater than or equal to 1.'
|
459
|
+
end
|
460
|
+
|
461
|
+
if @api_client.config.client_side_validation && !opts[:'rps_limit'].nil? && opts[:'rps_limit'] > 10000
|
462
|
+
fail ArgumentError, 'invalid value for "opts[:"rps_limit"]" when calling RateLimiterApi.update_rate_limiter, must be smaller than or equal to 10000.'
|
463
|
+
end
|
464
|
+
|
465
|
+
if @api_client.config.client_side_validation && !opts[:'rps_limit'].nil? && opts[:'rps_limit'] < 10
|
466
|
+
fail ArgumentError, 'invalid value for "opts[:"rps_limit"]" when calling RateLimiterApi.update_rate_limiter, must be greater than or equal to 10.'
|
467
|
+
end
|
468
|
+
|
469
|
+
allowable_values = [1, 10, 60]
|
470
|
+
if @api_client.config.client_side_validation && opts[:'window_size'] && !allowable_values.include?(opts[:'window_size'])
|
471
|
+
fail ArgumentError, "invalid value for \"window_size\", must be one of #{allowable_values}"
|
472
|
+
end
|
473
|
+
if @api_client.config.client_side_validation && !opts[:'client_key'].nil? && opts[:'client_key'].length < 1
|
474
|
+
fail ArgumentError, 'invalid value for "opts[:"client_key"]" when calling RateLimiterApi.update_rate_limiter, number of items must be greater than or equal to 1.'
|
475
|
+
end
|
476
|
+
|
477
|
+
if @api_client.config.client_side_validation && !opts[:'penalty_box_duration'].nil? && opts[:'penalty_box_duration'] > 60
|
478
|
+
fail ArgumentError, 'invalid value for "opts[:"penalty_box_duration"]" when calling RateLimiterApi.update_rate_limiter, must be smaller than or equal to 60.'
|
479
|
+
end
|
480
|
+
|
481
|
+
if @api_client.config.client_side_validation && !opts[:'penalty_box_duration'].nil? && opts[:'penalty_box_duration'] < 1
|
482
|
+
fail ArgumentError, 'invalid value for "opts[:"penalty_box_duration"]" when calling RateLimiterApi.update_rate_limiter, must be greater than or equal to 1.'
|
483
|
+
end
|
484
|
+
|
485
|
+
allowable_values = ["response", "response_object", "log_only"]
|
486
|
+
if @api_client.config.client_side_validation && opts[:'action'] && !allowable_values.include?(opts[:'action'])
|
487
|
+
fail ArgumentError, "invalid value for \"action\", must be one of #{allowable_values}"
|
488
|
+
end
|
489
|
+
if @api_client.config.client_side_validation && !opts[:'action'].nil? && opts[:'action'].to_s.length < 1
|
490
|
+
fail ArgumentError, 'invalid value for "opts[:"action"]" when calling RateLimiterApi.update_rate_limiter, the character length must be great than or equal to 1.'
|
491
|
+
end
|
492
|
+
|
493
|
+
if @api_client.config.client_side_validation && !opts[:'response_object_name'].nil? && opts[:'response_object_name'].to_s.length > 255
|
494
|
+
fail ArgumentError, 'invalid value for "opts[:"response_object_name"]" when calling RateLimiterApi.update_rate_limiter, the character length must be smaller than or equal to 255.'
|
495
|
+
end
|
496
|
+
|
497
|
+
if @api_client.config.client_side_validation && !opts[:'response_object_name'].nil? && opts[:'response_object_name'].to_s.length < 1
|
498
|
+
fail ArgumentError, 'invalid value for "opts[:"response_object_name"]" when calling RateLimiterApi.update_rate_limiter, the character length must be great than or equal to 1.'
|
499
|
+
end
|
500
|
+
|
501
|
+
allowable_values = ["azureblob", "bigquery", "cloudfiles", "datadog", "digitalocean", "elasticsearch", "ftp", "gcs", "googleanalytics", "heroku", "honeycomb", "http", "https", "kafka", "kinesis", "logentries", "loggly", "logshuttle", "newrelic", "openstack", "papertrail", "pubsub", "s3", "scalyr", "sftp", "splunk", "stackdriver", "sumologic", "syslog"]
|
502
|
+
if @api_client.config.client_side_validation && opts[:'logger_type'] && !allowable_values.include?(opts[:'logger_type'])
|
503
|
+
fail ArgumentError, "invalid value for \"logger_type\", must be one of #{allowable_values}"
|
504
|
+
end
|
505
|
+
# resource path
|
506
|
+
local_var_path = '/rate-limiters/{rate_limiter_id}'.sub('{' + 'rate_limiter_id' + '}', CGI.escape(rate_limiter_id.to_s))
|
507
|
+
|
508
|
+
# query parameters
|
509
|
+
query_params = opts[:query_params] || {}
|
510
|
+
|
511
|
+
# header parameters
|
512
|
+
header_params = opts[:header_params] || {}
|
513
|
+
# HTTP header 'Accept' (if needed)
|
514
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
515
|
+
# HTTP header 'Content-Type'
|
516
|
+
content_type = @api_client.select_header_content_type(['application/x-www-form-urlencoded'])
|
517
|
+
if !content_type.nil?
|
518
|
+
header_params['Content-Type'] = content_type
|
519
|
+
end
|
520
|
+
|
521
|
+
# form parameters
|
522
|
+
form_params = opts[:form_params] || {}
|
523
|
+
form_params['name'] = opts[:'name'] if !opts[:'name'].nil?
|
524
|
+
form_params['uri_dictionary_name'] = opts[:'uri_dictionary_name'] if !opts[:'uri_dictionary_name'].nil?
|
525
|
+
form_params['http_methods'] = @api_client.build_collection_param(opts[:'http_methods'], :csv) if !opts[:'http_methods'].nil?
|
526
|
+
form_params['rps_limit'] = opts[:'rps_limit'] if !opts[:'rps_limit'].nil?
|
527
|
+
form_params['window_size'] = opts[:'window_size'] if !opts[:'window_size'].nil?
|
528
|
+
form_params['client_key'] = @api_client.build_collection_param(opts[:'client_key'], :csv) if !opts[:'client_key'].nil?
|
529
|
+
form_params['penalty_box_duration'] = opts[:'penalty_box_duration'] if !opts[:'penalty_box_duration'].nil?
|
530
|
+
form_params['action'] = opts[:'action'] if !opts[:'action'].nil?
|
531
|
+
form_params['response_object_name'] = opts[:'response_object_name'] if !opts[:'response_object_name'].nil?
|
532
|
+
form_params['logger_type'] = opts[:'logger_type'] if !opts[:'logger_type'].nil?
|
533
|
+
form_params['feature_revision'] = opts[:'feature_revision'] if !opts[:'feature_revision'].nil?
|
534
|
+
|
535
|
+
# http body (model)
|
536
|
+
post_body = opts[:debug_body]
|
537
|
+
|
538
|
+
# return_type
|
539
|
+
return_type = opts[:debug_return_type] || 'RateLimiterResponse'
|
540
|
+
|
541
|
+
# auth_names
|
542
|
+
auth_names = opts[:debug_auth_names] || ['token']
|
543
|
+
|
544
|
+
new_options = opts.merge(
|
545
|
+
:operation => :"RateLimiterApi.update_rate_limiter",
|
546
|
+
:header_params => header_params,
|
547
|
+
:query_params => query_params,
|
548
|
+
:form_params => form_params,
|
549
|
+
:body => post_body,
|
550
|
+
:auth_names => auth_names,
|
551
|
+
:return_type => return_type
|
552
|
+
)
|
553
|
+
|
554
|
+
data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
|
555
|
+
if @api_client.config.debugging
|
556
|
+
@api_client.config.logger.debug "API called: RateLimiterApi#update_rate_limiter\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
557
|
+
end
|
558
|
+
return data, status_code, headers
|
559
|
+
end
|
215
560
|
end
|
216
561
|
end
|
@@ -22,7 +22,7 @@ module Fastly
|
|
22
22
|
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
23
23
|
# @option opts [Integer] :version_id Integer identifying a service version. (required)
|
24
24
|
# @option opts [String] :name The name for the snippet.
|
25
|
-
# @option opts [
|
25
|
+
# @option opts [String] :dynamic Sets the snippet version.
|
26
26
|
# @option opts [String] :type The location in generated VCL where the snippet should be placed.
|
27
27
|
# @option opts [String] :content The VCL code that specifies exactly what the snippet does.
|
28
28
|
# @option opts [String] :priority Priority determines execution order. Lower numbers execute first. (default to '100')
|
@@ -37,7 +37,7 @@ module Fastly
|
|
37
37
|
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
38
38
|
# @option opts [Integer] :version_id Integer identifying a service version. (required)
|
39
39
|
# @option opts [String] :name The name for the snippet.
|
40
|
-
# @option opts [
|
40
|
+
# @option opts [String] :dynamic Sets the snippet version.
|
41
41
|
# @option opts [String] :type The location in generated VCL where the snippet should be placed.
|
42
42
|
# @option opts [String] :content The VCL code that specifies exactly what the snippet does.
|
43
43
|
# @option opts [String] :priority Priority determines execution order. Lower numbers execute first. (default to '100')
|
@@ -57,7 +57,7 @@ module Fastly
|
|
57
57
|
if @api_client.config.client_side_validation && version_id.nil?
|
58
58
|
fail ArgumentError, "Missing the required parameter 'version_id' when calling SnippetApi.create_snippet"
|
59
59
|
end
|
60
|
-
allowable_values = [0, 1]
|
60
|
+
allowable_values = ["0", "1"]
|
61
61
|
if @api_client.config.client_side_validation && opts[:'dynamic'] && !allowable_values.include?(opts[:'dynamic'])
|
62
62
|
fail ArgumentError, "invalid value for \"dynamic\", must be one of #{allowable_values}"
|
63
63
|
end
|
@@ -414,7 +414,7 @@ module Fastly
|
|
414
414
|
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
415
415
|
# @option opts [String] :snippet_id Alphanumeric string identifying a VCL Snippet. (required)
|
416
416
|
# @option opts [String] :name The name for the snippet.
|
417
|
-
# @option opts [
|
417
|
+
# @option opts [String] :dynamic Sets the snippet version.
|
418
418
|
# @option opts [String] :type The location in generated VCL where the snippet should be placed.
|
419
419
|
# @option opts [String] :content The VCL code that specifies exactly what the snippet does.
|
420
420
|
# @option opts [String] :priority Priority determines execution order. Lower numbers execute first. (default to '100')
|
@@ -429,7 +429,7 @@ module Fastly
|
|
429
429
|
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
430
430
|
# @option opts [String] :snippet_id Alphanumeric string identifying a VCL Snippet. (required)
|
431
431
|
# @option opts [String] :name The name for the snippet.
|
432
|
-
# @option opts [
|
432
|
+
# @option opts [String] :dynamic Sets the snippet version.
|
433
433
|
# @option opts [String] :type The location in generated VCL where the snippet should be placed.
|
434
434
|
# @option opts [String] :content The VCL code that specifies exactly what the snippet does.
|
435
435
|
# @option opts [String] :priority Priority determines execution order. Lower numbers execute first. (default to '100')
|
@@ -449,7 +449,7 @@ module Fastly
|
|
449
449
|
if @api_client.config.client_side_validation && snippet_id.nil?
|
450
450
|
fail ArgumentError, "Missing the required parameter 'snippet_id' when calling SnippetApi.update_snippet_dynamic"
|
451
451
|
end
|
452
|
-
allowable_values = [0, 1]
|
452
|
+
allowable_values = ["0", "1"]
|
453
453
|
if @api_client.config.client_side_validation && opts[:'dynamic'] && !allowable_values.include?(opts[:'dynamic'])
|
454
454
|
fail ArgumentError, "invalid value for \"dynamic\", must be one of #{allowable_values}"
|
455
455
|
end
|
data/lib/fastly/api/vcl_api.rb
CHANGED
@@ -402,17 +402,17 @@ module Fastly
|
|
402
402
|
# Display the content of generated VCL with HTML syntax highlighting. Include line numbers by sending `lineno=true` as a request parameter.
|
403
403
|
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
404
404
|
# @option opts [Integer] :version_id Integer identifying a service version. (required)
|
405
|
-
# @return [
|
405
|
+
# @return [VclSyntaxHighlightingResponse]
|
406
406
|
def get_custom_vcl_generated_highlighted(opts = {})
|
407
|
-
get_custom_vcl_generated_highlighted_with_http_info(opts)
|
408
|
-
|
407
|
+
data, _status_code, _headers = get_custom_vcl_generated_highlighted_with_http_info(opts)
|
408
|
+
data
|
409
409
|
end
|
410
410
|
|
411
411
|
# Get the generated VCL with syntax highlighting
|
412
412
|
# Display the content of generated VCL with HTML syntax highlighting. Include line numbers by sending `lineno=true` as a request parameter.
|
413
413
|
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
414
414
|
# @option opts [Integer] :version_id Integer identifying a service version. (required)
|
415
|
-
# @return [Array<(
|
415
|
+
# @return [Array<(VclSyntaxHighlightingResponse, Integer, Hash)>] VclSyntaxHighlightingResponse data, response status code and response headers
|
416
416
|
def get_custom_vcl_generated_highlighted_with_http_info(opts = {})
|
417
417
|
if @api_client.config.debugging
|
418
418
|
@api_client.config.logger.debug 'Calling API: VclApi.get_custom_vcl_generated_highlighted ...'
|
@@ -446,7 +446,7 @@ module Fastly
|
|
446
446
|
post_body = opts[:debug_body]
|
447
447
|
|
448
448
|
# return_type
|
449
|
-
return_type = opts[:debug_return_type]
|
449
|
+
return_type = opts[:debug_return_type] || 'VclSyntaxHighlightingResponse'
|
450
450
|
|
451
451
|
# auth_names
|
452
452
|
auth_names = opts[:debug_auth_names] || ['token']
|
@@ -473,10 +473,10 @@ module Fastly
|
|
473
473
|
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
474
474
|
# @option opts [Integer] :version_id Integer identifying a service version. (required)
|
475
475
|
# @option opts [String] :vcl_name The name of this VCL. (required)
|
476
|
-
# @return [
|
476
|
+
# @return [VclSyntaxHighlightingResponse]
|
477
477
|
def get_custom_vcl_highlighted(opts = {})
|
478
|
-
get_custom_vcl_highlighted_with_http_info(opts)
|
479
|
-
|
478
|
+
data, _status_code, _headers = get_custom_vcl_highlighted_with_http_info(opts)
|
479
|
+
data
|
480
480
|
end
|
481
481
|
|
482
482
|
# Get a custom VCL file with syntax highlighting
|
@@ -484,7 +484,7 @@ module Fastly
|
|
484
484
|
# @option opts [String] :service_id Alphanumeric string identifying the service. (required)
|
485
485
|
# @option opts [Integer] :version_id Integer identifying a service version. (required)
|
486
486
|
# @option opts [String] :vcl_name The name of this VCL. (required)
|
487
|
-
# @return [Array<(
|
487
|
+
# @return [Array<(VclSyntaxHighlightingResponse, Integer, Hash)>] VclSyntaxHighlightingResponse data, response status code and response headers
|
488
488
|
def get_custom_vcl_highlighted_with_http_info(opts = {})
|
489
489
|
if @api_client.config.debugging
|
490
490
|
@api_client.config.logger.debug 'Calling API: VclApi.get_custom_vcl_highlighted ...'
|
@@ -523,7 +523,7 @@ module Fastly
|
|
523
523
|
post_body = opts[:debug_body]
|
524
524
|
|
525
525
|
# return_type
|
526
|
-
return_type = opts[:debug_return_type]
|
526
|
+
return_type = opts[:debug_return_type] || 'VclSyntaxHighlightingResponse'
|
527
527
|
|
528
528
|
# auth_names
|
529
529
|
auth_names = opts[:debug_auth_names] || ['token']
|
data/lib/fastly/configuration.rb
CHANGED
@@ -2036,6 +2036,12 @@ module Fastly
|
|
2036
2036
|
description: "No description provided",
|
2037
2037
|
}
|
2038
2038
|
],
|
2039
|
+
"RateLimiterApi.create_rate_limiter": [
|
2040
|
+
{
|
2041
|
+
url: "https://api.fastly.com",
|
2042
|
+
description: "No description provided",
|
2043
|
+
}
|
2044
|
+
],
|
2039
2045
|
"RateLimiterApi.delete_rate_limiter": [
|
2040
2046
|
{
|
2041
2047
|
url: "https://api.fastly.com",
|
@@ -2054,6 +2060,12 @@ module Fastly
|
|
2054
2060
|
description: "No description provided",
|
2055
2061
|
}
|
2056
2062
|
],
|
2063
|
+
"RateLimiterApi.update_rate_limiter": [
|
2064
|
+
{
|
2065
|
+
url: "https://api.fastly.com",
|
2066
|
+
description: "No description provided",
|
2067
|
+
}
|
2068
|
+
],
|
2057
2069
|
"RealtimeApi.get_stats_last120_seconds": [
|
2058
2070
|
{
|
2059
2071
|
url: "https://rt.fastly.com",
|
@@ -112,9 +112,9 @@ module Fastly
|
|
112
112
|
:'created_at' => :'Time',
|
113
113
|
:'deleted_at' => :'Time',
|
114
114
|
:'updated_at' => :'Time',
|
115
|
-
:'id' => :'
|
116
|
-
:'user_id' => :'
|
117
|
-
:'customer_id' => :'
|
115
|
+
:'id' => :'ReadOnlyId',
|
116
|
+
:'user_id' => :'ReadOnlyUserId',
|
117
|
+
:'customer_id' => :'ReadOnlyCustomerId',
|
118
118
|
:'sudo_expires_at' => :'Time',
|
119
119
|
:'access_token' => :'String',
|
120
120
|
:'last_used_at' => :'Time',
|
@@ -127,9 +127,6 @@ module Fastly
|
|
127
127
|
Set.new([
|
128
128
|
:'deleted_at',
|
129
129
|
:'updated_at',
|
130
|
-
:'id',
|
131
|
-
:'user_id',
|
132
|
-
:'customer_id',
|
133
130
|
])
|
134
131
|
end
|
135
132
|
|
@@ -54,9 +54,9 @@ module Fastly
|
|
54
54
|
# Attribute type mapping.
|
55
55
|
def self.fastly_types
|
56
56
|
{
|
57
|
-
:'id' => :'
|
58
|
-
:'user_id' => :'
|
59
|
-
:'customer_id' => :'
|
57
|
+
:'id' => :'ReadOnlyId',
|
58
|
+
:'user_id' => :'ReadOnlyUserId',
|
59
|
+
:'customer_id' => :'ReadOnlyCustomerId',
|
60
60
|
:'sudo_expires_at' => :'Time',
|
61
61
|
:'created_at' => :'Time',
|
62
62
|
:'access_token' => :'String',
|
@@ -68,9 +68,6 @@ module Fastly
|
|
68
68
|
# List of attributes with nullable: true
|
69
69
|
def self.fastly_nullable
|
70
70
|
Set.new([
|
71
|
-
:'id',
|
72
|
-
:'user_id',
|
73
|
-
:'customer_id',
|
74
71
|
])
|
75
72
|
end
|
76
73
|
|
@@ -109,8 +109,8 @@ module Fastly
|
|
109
109
|
:'created_at' => :'String',
|
110
110
|
:'deleted_at' => :'Time',
|
111
111
|
:'updated_at' => :'Time',
|
112
|
-
:'id' => :'
|
113
|
-
:'customer_id' => :'
|
112
|
+
:'id' => :'ReadOnlyId',
|
113
|
+
:'customer_id' => :'ReadOnlyCustomerId',
|
114
114
|
:'ip' => :'String',
|
115
115
|
:'user_agent' => :'String',
|
116
116
|
:'sudo_expires_at' => :'String',
|
@@ -123,8 +123,6 @@ module Fastly
|
|
123
123
|
Set.new([
|
124
124
|
:'deleted_at',
|
125
125
|
:'updated_at',
|
126
|
-
:'id',
|
127
|
-
:'customer_id',
|
128
126
|
])
|
129
127
|
end
|
130
128
|
|