fastly 5.3.1 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +55 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +85 -63
  5. data/docs/AclEntry.md +1 -1
  6. data/docs/AclEntryApi.md +176 -0
  7. data/docs/AclEntryResponse.md +1 -1
  8. data/docs/ApexRedirectApi.md +56 -0
  9. data/docs/BulkUpdateAclEntry.md +1 -1
  10. data/docs/ClientKey.md +12 -0
  11. data/docs/ContactApi.md +50 -0
  12. data/docs/Content.md +2 -2
  13. data/docs/ContentApi.md +52 -0
  14. data/docs/DirectorApi.md +42 -0
  15. data/docs/DomainInspector.md +12 -0
  16. data/docs/DomainInspectorEntry.md +11 -0
  17. data/docs/DomainInspectorEntryDimensions.md +12 -0
  18. data/docs/DomainInspectorHistoricalApi.md +72 -0
  19. data/docs/DomainInspectorMeasurements.md +71 -0
  20. data/docs/DomainInspectorRealtimeApi.md +132 -0
  21. data/docs/DomainInspectorRealtimeEntry.md +12 -0
  22. data/docs/EventAttributes.md +1 -1
  23. data/docs/{EventsResponseAllOf.md → EventData.md} +1 -1
  24. data/docs/HistoricalDomains.md +13 -0
  25. data/docs/HistoricalDomainsData.md +11 -0
  26. data/docs/HistoricalDomainsMeta.md +18 -0
  27. data/docs/HistoricalDomainsMetaFilters.md +12 -0
  28. data/docs/HistoricalDomainsResponse.md +13 -0
  29. data/docs/HistoricalDomainsResponseAllOf.md +10 -0
  30. data/docs/{HistoricalFieldResultsAttributesAllOf.md → HistoricalFieldResultsAttributesAdditional.md} +1 -1
  31. data/docs/HistoricalOriginsResponse.md +13 -0
  32. data/docs/HistoricalOriginsResponseAllOf.md +10 -0
  33. data/docs/IamRolesApi.md +157 -0
  34. data/docs/IamServiceGroupsApi.md +157 -0
  35. data/docs/IamUserGroupsApi.md +315 -0
  36. data/docs/InlineResponse2005.md +11 -0
  37. data/docs/InlineResponse2006.md +11 -0
  38. data/docs/InlineResponse2007.md +10 -0
  39. data/docs/InlineResponse400.md +10 -0
  40. data/docs/LegacyWafConfigurationSet.md +11 -0
  41. data/docs/LegacyWafConfigurationSetsApi.md +125 -0
  42. data/docs/LegacyWafFirewall.md +18 -0
  43. data/docs/LegacyWafFirewallApi.md +352 -0
  44. data/docs/LegacyWafOwasp.md +38 -0
  45. data/docs/LegacyWafOwaspApi.md +138 -0
  46. data/docs/LegacyWafRule.md +14 -0
  47. data/docs/LegacyWafRuleApi.md +184 -0
  48. data/docs/LegacyWafRuleStatus.md +12 -0
  49. data/docs/LegacyWafRuleStatusApi.md +202 -0
  50. data/docs/LegacyWafRuleset.md +11 -0
  51. data/docs/LegacyWafRulesetApi.md +136 -0
  52. data/docs/LegacyWafTag.md +10 -0
  53. data/docs/LegacyWafTagApi.md +58 -0
  54. data/docs/LegacyWafUpdateStatus.md +15 -0
  55. data/docs/LegacyWafUpdateStatusApi.md +102 -0
  56. data/docs/LoggingKafkaApi.md +42 -0
  57. data/docs/LoggingKinesisApi.md +42 -0
  58. data/docs/OriginInspector.md +12 -0
  59. data/docs/OriginInspectorDimensions.md +12 -0
  60. data/docs/OriginInspectorEntry.md +11 -0
  61. data/docs/OriginInspectorHistorical.md +13 -0
  62. data/docs/OriginInspectorHistoricalApi.md +72 -0
  63. data/docs/OriginInspectorHistoricalData.md +11 -0
  64. data/docs/OriginInspectorHistoricalMeta.md +18 -0
  65. data/docs/OriginInspectorHistoricalMetaFilters.md +12 -0
  66. data/docs/OriginInspectorMeasurements.md +161 -0
  67. data/docs/OriginInspectorRealtimeApi.md +132 -0
  68. data/docs/OriginInspectorRealtimeEntry.md +12 -0
  69. data/docs/OriginInspectorRealtimeEntryRecorded.md +9 -0
  70. data/docs/OriginInspectorSubsequentRequestTimestamp.md +9 -0
  71. data/docs/OriginInspectorValues.md +161 -0
  72. data/docs/PaginationCursorMeta.md +11 -0
  73. data/docs/ReadOnlyServiceId.md +9 -0
  74. data/docs/ReadOnlyVersion.md +9 -0
  75. data/docs/RealtimeEntry.md +2 -2
  76. data/docs/RealtimeEntryAggregated.md +227 -0
  77. data/docs/RealtimeEntryRecorded.md +9 -0
  78. data/docs/RealtimeMeasurements.md +1 -1
  79. data/docs/RecordedTimestamp.md +9 -0
  80. data/docs/RequestSettingsApi.md +40 -0
  81. data/docs/ResponseObjectApi.md +82 -0
  82. data/docs/Secret.md +12 -0
  83. data/docs/SecretResponse.md +13 -0
  84. data/docs/SecretStore.md +10 -0
  85. data/docs/SecretStoreApi.md +233 -0
  86. data/docs/SecretStoreItemApi.md +255 -0
  87. data/docs/SecretStoreResponse.md +12 -0
  88. data/docs/ServiceAuthorizationsApi.md +76 -0
  89. data/docs/SigningKey.md +10 -0
  90. data/docs/SnippetApi.md +42 -0
  91. data/docs/SubsequentRequestTimestamp.md +9 -0
  92. data/docs/SudoApi.md +52 -0
  93. data/docs/SudoGenericTokenError.md +10 -0
  94. data/docs/SudoRequest.md +12 -0
  95. data/docs/SudoResponse.md +10 -0
  96. data/docs/TokensApi.md +70 -0
  97. data/docs/Values.md +71 -0
  98. data/docs/WafActiveRulesApi.md +41 -0
  99. data/lib/fastly/api/acl_entry_api.rb +332 -0
  100. data/lib/fastly/api/apex_redirect_api.rb +111 -0
  101. data/lib/fastly/api/contact_api.rb +90 -0
  102. data/lib/fastly/api/content_api.rb +79 -0
  103. data/lib/fastly/api/director_api.rb +82 -0
  104. data/lib/fastly/api/domain_inspector_historical_api.rb +125 -0
  105. data/lib/fastly/api/domain_inspector_realtime_api.rb +223 -0
  106. data/lib/fastly/api/iam_roles_api.rb +271 -0
  107. data/lib/fastly/api/iam_service_groups_api.rb +271 -0
  108. data/lib/fastly/api/iam_user_groups_api.rb +547 -0
  109. data/lib/fastly/api/legacy_waf_configuration_sets_api.rb +209 -0
  110. data/lib/fastly/api/legacy_waf_firewall_api.rb +627 -0
  111. data/lib/fastly/api/legacy_waf_owasp_api.rb +244 -0
  112. data/lib/fastly/api/legacy_waf_rule_api.rb +307 -0
  113. data/lib/fastly/api/legacy_waf_rule_status_api.rb +366 -0
  114. data/lib/fastly/api/legacy_waf_ruleset_api.rb +237 -0
  115. data/lib/fastly/api/legacy_waf_tag_api.rb +96 -0
  116. data/lib/fastly/api/legacy_waf_update_status_api.rb +184 -0
  117. data/lib/fastly/api/logging_kafka_api.rb +82 -0
  118. data/lib/fastly/api/logging_kinesis_api.rb +82 -0
  119. data/lib/fastly/api/origin_inspector_historical_api.rb +125 -0
  120. data/lib/fastly/api/origin_inspector_realtime_api.rb +223 -0
  121. data/lib/fastly/api/request_settings_api.rb +75 -0
  122. data/lib/fastly/api/response_object_api.rb +157 -0
  123. data/lib/fastly/api/secret_store_api.rb +381 -0
  124. data/lib/fastly/api/secret_store_item_api.rb +437 -0
  125. data/lib/fastly/api/service_authorizations_api.rb +126 -0
  126. data/lib/fastly/api/snippet_api.rb +82 -0
  127. data/lib/fastly/api/sudo_api.rb +83 -0
  128. data/lib/fastly/api/tokens_api.rb +122 -0
  129. data/lib/fastly/api/waf_active_rules_api.rb +75 -0
  130. data/lib/fastly/configuration.rb +504 -0
  131. data/lib/fastly/models/acl_entry.rb +1 -1
  132. data/lib/fastly/models/acl_entry_response.rb +1 -1
  133. data/lib/fastly/models/bulk_update_acl_entry.rb +1 -1
  134. data/lib/fastly/models/client_key.rb +239 -0
  135. data/lib/fastly/models/content.rb +8 -4
  136. data/lib/fastly/models/domain.rb +1 -0
  137. data/lib/fastly/models/domain_inspector.rb +238 -0
  138. data/lib/fastly/models/domain_inspector_entry.rb +228 -0
  139. data/lib/fastly/models/domain_inspector_entry_dimensions.rb +238 -0
  140. data/lib/fastly/models/domain_inspector_measurements.rb +828 -0
  141. data/lib/fastly/models/domain_inspector_realtime_entry.rb +241 -0
  142. data/lib/fastly/models/event_attributes.rb +4 -2
  143. data/lib/fastly/models/{events_response_all_of.rb → event_data.rb} +3 -3
  144. data/lib/fastly/models/events_response.rb +1 -1
  145. data/lib/fastly/models/historical_domains.rb +249 -0
  146. data/lib/fastly/models/historical_domains_data.rb +228 -0
  147. data/lib/fastly/models/historical_domains_meta.rb +297 -0
  148. data/lib/fastly/models/historical_domains_meta_filters.rb +235 -0
  149. data/lib/fastly/models/historical_domains_response.rb +257 -0
  150. data/lib/fastly/models/historical_domains_response_all_of.rb +219 -0
  151. data/lib/fastly/models/historical_field_results_attributes.rb +1 -1
  152. data/lib/fastly/models/{historical_field_results_attributes_all_of.rb → historical_field_results_attributes_additional.rb} +3 -3
  153. data/lib/fastly/models/historical_origins_response.rb +257 -0
  154. data/lib/fastly/models/historical_origins_response_all_of.rb +219 -0
  155. data/lib/fastly/models/inline_response2005.rb +227 -0
  156. data/lib/fastly/models/inline_response2006.rb +227 -0
  157. data/lib/fastly/models/inline_response2007.rb +218 -0
  158. data/lib/fastly/models/inline_response400.rb +250 -0
  159. data/lib/fastly/models/legacy_waf_configuration_set.rb +227 -0
  160. data/lib/fastly/models/legacy_waf_firewall.rb +297 -0
  161. data/lib/fastly/models/legacy_waf_owasp.rb +527 -0
  162. data/lib/fastly/models/legacy_waf_rule.rb +257 -0
  163. data/lib/fastly/models/legacy_waf_rule_status.rb +237 -0
  164. data/lib/fastly/models/legacy_waf_ruleset.rb +227 -0
  165. data/lib/fastly/models/legacy_waf_tag.rb +217 -0
  166. data/lib/fastly/models/legacy_waf_update_status.rb +267 -0
  167. data/lib/fastly/models/origin_inspector.rb +238 -0
  168. data/lib/fastly/models/origin_inspector_dimensions.rb +238 -0
  169. data/lib/fastly/models/origin_inspector_entry.rb +228 -0
  170. data/lib/fastly/models/origin_inspector_historical.rb +249 -0
  171. data/lib/fastly/models/origin_inspector_historical_data.rb +225 -0
  172. data/lib/fastly/models/origin_inspector_historical_meta.rb +297 -0
  173. data/lib/fastly/models/origin_inspector_historical_meta_filters.rb +235 -0
  174. data/lib/fastly/models/origin_inspector_measurements.rb +1728 -0
  175. data/lib/fastly/models/origin_inspector_realtime_entry.rb +241 -0
  176. data/lib/fastly/models/origin_inspector_realtime_entry_recorded.rb +208 -0
  177. data/lib/fastly/models/origin_inspector_subsequent_request_timestamp.rb +208 -0
  178. data/lib/fastly/models/origin_inspector_values.rb +1728 -0
  179. data/lib/fastly/models/pagination_cursor_meta.rb +227 -0
  180. data/lib/fastly/models/read_only_service_id.rb +207 -0
  181. data/lib/fastly/models/read_only_version.rb +207 -0
  182. data/lib/fastly/models/realtime_entry.rb +2 -7
  183. data/lib/fastly/models/realtime_entry_aggregated.rb +2397 -0
  184. data/lib/fastly/models/realtime_entry_recorded.rb +208 -0
  185. data/lib/fastly/models/realtime_measurements.rb +4 -2
  186. data/lib/fastly/models/recorded_timestamp.rb +208 -0
  187. data/lib/fastly/models/secret.rb +238 -0
  188. data/lib/fastly/models/secret_response.rb +249 -0
  189. data/lib/fastly/models/secret_store.rb +217 -0
  190. data/lib/fastly/models/secret_store_response.rb +238 -0
  191. data/lib/fastly/models/signing_key.rb +218 -0
  192. data/lib/fastly/models/subsequent_request_timestamp.rb +208 -0
  193. data/lib/fastly/models/sudo_generic_token_error.rb +216 -0
  194. data/lib/fastly/models/sudo_request.rb +244 -0
  195. data/lib/fastly/models/sudo_response.rb +217 -0
  196. data/lib/fastly/models/values.rb +828 -0
  197. data/lib/fastly/version.rb +1 -1
  198. data/lib/fastly.rb +72 -2
  199. data/sig.json +1 -1
  200. metadata +146 -6
@@ -0,0 +1,2397 @@
1
+ =begin
2
+ #Fastly API
3
+
4
+ #Via the Fastly API you can perform any of the operations that are possible within the management console, including creating services, domains, and backends, configuring rules or uploading your own application code, as well as account operations such as user administration and billing reports. The API is organized into collections of endpoints that allow manipulation of objects related to Fastly services and accounts. For the most accurate and up-to-date API reference content, visit our [Developer Hub](https://developer.fastly.com/reference/api/)
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: oss@fastly.com
8
+
9
+ =end
10
+
11
+ require 'date'
12
+ require 'time'
13
+
14
+ module Fastly
15
+ # Aggregates [measurements](#measurements-data-model) across all Fastly POPs.
16
+ class RealtimeEntryAggregated
17
+ # Number of requests processed.
18
+ attr_accessor :requests
19
+
20
+ # Number of log lines sent (alias for `log`).
21
+ attr_accessor :logging
22
+
23
+ # Number of log lines sent.
24
+ attr_accessor :log
25
+
26
+ # Total header bytes delivered (edge_resp_header_bytes + shield_resp_header_bytes).
27
+ attr_accessor :resp_header_bytes
28
+
29
+ # Total header bytes delivered (alias for resp_header_bytes).
30
+ attr_accessor :header_size
31
+
32
+ # Total body bytes delivered (edge_resp_body_bytes + shield_resp_body_bytes).
33
+ attr_accessor :resp_body_bytes
34
+
35
+ # Total body bytes delivered (alias for resp_body_bytes).
36
+ attr_accessor :body_size
37
+
38
+ # Number of cache hits.
39
+ attr_accessor :hits
40
+
41
+ # Number of cache misses.
42
+ attr_accessor :miss
43
+
44
+ # Number of requests that passed through the CDN without being cached.
45
+ attr_accessor :pass
46
+
47
+ # Number of requests that returned a synthetic response (i.e., response objects created with the `synthetic` VCL statement).
48
+ attr_accessor :synth
49
+
50
+ # Number of cache errors.
51
+ attr_accessor :errors
52
+
53
+ # Total amount of time spent processing cache hits (in seconds).
54
+ attr_accessor :hits_time
55
+
56
+ # Total amount of time spent processing cache misses (in seconds).
57
+ attr_accessor :miss_time
58
+
59
+ # A histogram. Each key represents the upper bound of a span of 10 milliseconds and the values represent the number of requests to origin during that 10ms period. Any origin request that takes more than 60 seconds to return will be in the 60000 bucket.
60
+ attr_accessor :miss_histogram
61
+
62
+ # The total number of requests that were received for your service by Fastly.
63
+ attr_accessor :compute_requests
64
+
65
+ # The amount of active CPU time used to process your requests (in milliseconds).
66
+ attr_accessor :compute_execution_time_ms
67
+
68
+ # The amount of RAM used for your service by Fastly (in bytes).
69
+ attr_accessor :compute_ram_used
70
+
71
+ # The total, actual amount of time used to process your requests, including active CPU time (in milliseconds).
72
+ attr_accessor :compute_request_time_ms
73
+
74
+ # The total amount of request processing time you will be billed for, measured in 50 millisecond increments.
75
+ attr_accessor :compute_request_time_billed_ms
76
+
77
+ # Number of requests from edge to the shield POP.
78
+ attr_accessor :shield
79
+
80
+ # Number of requests that were received over IPv6.
81
+ attr_accessor :ipv6
82
+
83
+ # Number of responses that came from the Fastly Image Optimizer service. If the service receives 10 requests for an image, this stat will be 10 regardless of how many times the image was transformed.
84
+ attr_accessor :imgopto
85
+
86
+ # Number of responses that came from the Fastly Image Optimizer service via a shield.
87
+ attr_accessor :imgopto_shield
88
+
89
+ # Number of transforms performed by the Fastly Image Optimizer service.
90
+ attr_accessor :imgopto_transforms
91
+
92
+ # Number of responses that came from the Fastly On-the-Fly Packaging service for video-on-demand.
93
+ attr_accessor :otfp
94
+
95
+ # Number of responses that came from the Fastly On-the-Fly Packaging service for video-on-demand via a shield.
96
+ attr_accessor :otfp_shield
97
+
98
+ # Number of responses that were manifest files from the Fastly On-the-Fly Packaging service for video-on-demand.
99
+ attr_accessor :otfp_manifests
100
+
101
+ # Number of responses with the video segment or video manifest MIME type (i.e., application/x-mpegurl, application/vnd.apple.mpegurl, application/f4m, application/dash+xml, application/vnd.ms-sstr+xml, ideo/mp2t, audio/aac, video/f4f, video/x-flv, video/mp4, audio/mp4).
102
+ attr_accessor :video
103
+
104
+ # Number of responses with the PCI flag turned on.
105
+ attr_accessor :pci
106
+
107
+ # Number of requests received over HTTP/2.
108
+ attr_accessor :http2
109
+
110
+ # Number of requests received over HTTP/3.
111
+ attr_accessor :http3
112
+
113
+ # Number of restarts performed.
114
+ attr_accessor :restarts
115
+
116
+ # Total header bytes received.
117
+ attr_accessor :req_header_bytes
118
+
119
+ # Total body bytes received.
120
+ attr_accessor :req_body_bytes
121
+
122
+ # Total header bytes sent to origin.
123
+ attr_accessor :bereq_header_bytes
124
+
125
+ # Total body bytes sent to origin.
126
+ attr_accessor :bereq_body_bytes
127
+
128
+ # Number of requests that triggered a WAF rule and were blocked.
129
+ attr_accessor :waf_blocked
130
+
131
+ # Number of requests that triggered a WAF rule and were logged.
132
+ attr_accessor :waf_logged
133
+
134
+ # Number of requests that triggered a WAF rule and were passed.
135
+ attr_accessor :waf_passed
136
+
137
+ # Total header bytes received from requests that triggered a WAF rule.
138
+ attr_accessor :attack_req_header_bytes
139
+
140
+ # Total body bytes received from requests that triggered a WAF rule.
141
+ attr_accessor :attack_req_body_bytes
142
+
143
+ # Total bytes delivered for requests that triggered a WAF rule and returned a synthetic response.
144
+ attr_accessor :attack_resp_synth_bytes
145
+
146
+ # Total header bytes received from requests that triggered a WAF rule that was logged.
147
+ attr_accessor :attack_logged_req_header_bytes
148
+
149
+ # Total body bytes received from requests that triggered a WAF rule that was logged.
150
+ attr_accessor :attack_logged_req_body_bytes
151
+
152
+ # Total header bytes received from requests that triggered a WAF rule that was blocked.
153
+ attr_accessor :attack_blocked_req_header_bytes
154
+
155
+ # Total body bytes received from requests that triggered a WAF rule that was blocked.
156
+ attr_accessor :attack_blocked_req_body_bytes
157
+
158
+ # Total header bytes received from requests that triggered a WAF rule that was passed.
159
+ attr_accessor :attack_passed_req_header_bytes
160
+
161
+ # Total body bytes received from requests that triggered a WAF rule that was passed.
162
+ attr_accessor :attack_passed_req_body_bytes
163
+
164
+ # Total header bytes delivered via a shield.
165
+ attr_accessor :shield_resp_header_bytes
166
+
167
+ # Total body bytes delivered via a shield.
168
+ attr_accessor :shield_resp_body_bytes
169
+
170
+ # Total header bytes delivered from the Fastly On-the-Fly Packaging service for video-on-demand.
171
+ attr_accessor :otfp_resp_header_bytes
172
+
173
+ # Total body bytes delivered from the Fastly On-the-Fly Packaging service for video-on-demand.
174
+ attr_accessor :otfp_resp_body_bytes
175
+
176
+ # Total header bytes delivered via a shield for the Fastly On-the-Fly Packaging service for video-on-demand.
177
+ attr_accessor :otfp_shield_resp_header_bytes
178
+
179
+ # Total body bytes delivered via a shield for the Fastly On-the-Fly Packaging service for video-on-demand.
180
+ attr_accessor :otfp_shield_resp_body_bytes
181
+
182
+ # Total amount of time spent delivering a response via a shield from the Fastly On-the-Fly Packaging service for video-on-demand (in seconds).
183
+ attr_accessor :otfp_shield_time
184
+
185
+ # Total amount of time spent delivering a response from the Fastly On-the-Fly Packaging service for video-on-demand (in seconds).
186
+ attr_accessor :otfp_deliver_time
187
+
188
+ # Total header bytes delivered from the Fastly Image Optimizer service, including shield traffic.
189
+ attr_accessor :imgopto_resp_header_bytes
190
+
191
+ # Total body bytes delivered from the Fastly Image Optimizer service, including shield traffic.
192
+ attr_accessor :imgopto_resp_body_bytes
193
+
194
+ # Total header bytes delivered via a shield from the Fastly Image Optimizer service.
195
+ attr_accessor :imgopto_shield_resp_header_bytes
196
+
197
+ # Total body bytes delivered via a shield from the Fastly Image Optimizer service.
198
+ attr_accessor :imgopto_shield_resp_body_bytes
199
+
200
+ # Number of \"Informational\" category status codes delivered.
201
+ attr_accessor :status_1xx
202
+
203
+ # Number of \"Success\" status codes delivered.
204
+ attr_accessor :status_2xx
205
+
206
+ # Number of \"Redirection\" codes delivered.
207
+ attr_accessor :status_3xx
208
+
209
+ # Number of \"Client Error\" codes delivered.
210
+ attr_accessor :status_4xx
211
+
212
+ # Number of \"Server Error\" codes delivered.
213
+ attr_accessor :status_5xx
214
+
215
+ # Number of responses sent with status code 200 (Success).
216
+ attr_accessor :status_200
217
+
218
+ # Number of responses sent with status code 204 (No Content).
219
+ attr_accessor :status_204
220
+
221
+ # Number of responses sent with status code 206 (Partial Content).
222
+ attr_accessor :status_206
223
+
224
+ # Number of responses sent with status code 301 (Moved Permanently).
225
+ attr_accessor :status_301
226
+
227
+ # Number of responses sent with status code 302 (Found).
228
+ attr_accessor :status_302
229
+
230
+ # Number of responses sent with status code 304 (Not Modified).
231
+ attr_accessor :status_304
232
+
233
+ # Number of responses sent with status code 400 (Bad Request).
234
+ attr_accessor :status_400
235
+
236
+ # Number of responses sent with status code 401 (Unauthorized).
237
+ attr_accessor :status_401
238
+
239
+ # Number of responses sent with status code 403 (Forbidden).
240
+ attr_accessor :status_403
241
+
242
+ # Number of responses sent with status code 404 (Not Found).
243
+ attr_accessor :status_404
244
+
245
+ # Number of responses sent with status code 406 (Not Acceptable).
246
+ attr_accessor :status_406
247
+
248
+ # Number of responses sent with status code 416 (Range Not Satisfiable).
249
+ attr_accessor :status_416
250
+
251
+ # Number of responses sent with status code 429 (Too Many Requests).
252
+ attr_accessor :status_429
253
+
254
+ # Number of responses sent with status code 500 (Internal Server Error).
255
+ attr_accessor :status_500
256
+
257
+ # Number of responses sent with status code 501 (Not Implemented).
258
+ attr_accessor :status_501
259
+
260
+ # Number of responses sent with status code 502 (Bad Gateway).
261
+ attr_accessor :status_502
262
+
263
+ # Number of responses sent with status code 503 (Service Unavailable).
264
+ attr_accessor :status_503
265
+
266
+ # Number of responses sent with status code 504 (Gateway Timeout).
267
+ attr_accessor :status_504
268
+
269
+ # Number of responses sent with status code 505 (HTTP Version Not Supported).
270
+ attr_accessor :status_505
271
+
272
+ # Number of requests that were designated uncachable.
273
+ attr_accessor :uncacheable
274
+
275
+ # Total amount of time spent processing cache passes (in seconds).
276
+ attr_accessor :pass_time
277
+
278
+ # Number of requests that were received over TLS.
279
+ attr_accessor :tls
280
+
281
+ # Number of requests received over TLS 1.0.
282
+ attr_accessor :tls_v10
283
+
284
+ # Number of requests received over TLS 1.1.
285
+ attr_accessor :tls_v11
286
+
287
+ # Number of requests received over TLS 1.2.
288
+ attr_accessor :tls_v12
289
+
290
+ # Number of requests received over TLS 1.3.
291
+ attr_accessor :tls_v13
292
+
293
+ # Number of objects served that were under 1KB in size.
294
+ attr_accessor :object_size_1k
295
+
296
+ # Number of objects served that were between 1KB and 10KB in size.
297
+ attr_accessor :object_size_10k
298
+
299
+ # Number of objects served that were between 10KB and 100KB in size.
300
+ attr_accessor :object_size_100k
301
+
302
+ # Number of objects served that were between 100KB and 1MB in size.
303
+ attr_accessor :object_size_1m
304
+
305
+ # Number of objects served that were between 1MB and 10MB in size.
306
+ attr_accessor :object_size_10m
307
+
308
+ # Number of objects served that were between 10MB and 100MB in size.
309
+ attr_accessor :object_size_100m
310
+
311
+ # Number of objects served that were between 100MB and 1GB in size.
312
+ attr_accessor :object_size_1g
313
+
314
+ # Number of objects served that were larger than 1GB in size.
315
+ attr_accessor :object_size_other
316
+
317
+ # Time spent inside the `vcl_recv` Varnish subroutine (in nanoseconds).
318
+ attr_accessor :recv_sub_time
319
+
320
+ # Number of executions of the `vcl_recv` Varnish subroutine.
321
+ attr_accessor :recv_sub_count
322
+
323
+ # Time spent inside the `vcl_hash` Varnish subroutine (in nanoseconds).
324
+ attr_accessor :hash_sub_time
325
+
326
+ # Number of executions of the `vcl_hash` Varnish subroutine.
327
+ attr_accessor :hash_sub_count
328
+
329
+ # Time spent inside the `vcl_miss` Varnish subroutine (in nanoseconds).
330
+ attr_accessor :miss_sub_time
331
+
332
+ # Number of executions of the `vcl_miss` Varnish subroutine.
333
+ attr_accessor :miss_sub_count
334
+
335
+ # Time spent inside the `vcl_fetch` Varnish subroutine (in nanoseconds).
336
+ attr_accessor :fetch_sub_time
337
+
338
+ # Number of executions of the `vcl_fetch` Varnish subroutine.
339
+ attr_accessor :fetch_sub_count
340
+
341
+ # Time spent inside the `vcl_pass` Varnish subroutine (in nanoseconds).
342
+ attr_accessor :pass_sub_time
343
+
344
+ # Number of executions of the `vcl_pass` Varnish subroutine.
345
+ attr_accessor :pass_sub_count
346
+
347
+ # Time spent inside the `vcl_pipe` Varnish subroutine (in nanoseconds).
348
+ attr_accessor :pipe_sub_time
349
+
350
+ # Number of executions of the `vcl_pipe` Varnish subroutine.
351
+ attr_accessor :pipe_sub_count
352
+
353
+ # Time spent inside the `vcl_deliver` Varnish subroutine (in nanoseconds).
354
+ attr_accessor :deliver_sub_time
355
+
356
+ # Number of executions of the `vcl_deliver` Varnish subroutine.
357
+ attr_accessor :deliver_sub_count
358
+
359
+ # Time spent inside the `vcl_error` Varnish subroutine (in nanoseconds).
360
+ attr_accessor :error_sub_time
361
+
362
+ # Number of executions of the `vcl_error` Varnish subroutine.
363
+ attr_accessor :error_sub_count
364
+
365
+ # Time spent inside the `vcl_hit` Varnish subroutine (in nanoseconds).
366
+ attr_accessor :hit_sub_time
367
+
368
+ # Number of executions of the `vcl_hit` Varnish subroutine.
369
+ attr_accessor :hit_sub_count
370
+
371
+ # Time spent inside the `vcl_prehash` Varnish subroutine (in nanoseconds).
372
+ attr_accessor :prehash_sub_time
373
+
374
+ # Number of executions of the `vcl_prehash` Varnish subroutine.
375
+ attr_accessor :prehash_sub_count
376
+
377
+ # Time spent inside the `vcl_predeliver` Varnish subroutine (in nanoseconds).
378
+ attr_accessor :predeliver_sub_time
379
+
380
+ # Number of executions of the `vcl_predeliver` Varnish subroutine.
381
+ attr_accessor :predeliver_sub_count
382
+
383
+ # Total body bytes delivered for cache hits.
384
+ attr_accessor :hit_resp_body_bytes
385
+
386
+ # Total body bytes delivered for cache misses.
387
+ attr_accessor :miss_resp_body_bytes
388
+
389
+ # Total body bytes delivered for cache passes.
390
+ attr_accessor :pass_resp_body_bytes
391
+
392
+ # Total header bytes received by Compute@Edge.
393
+ attr_accessor :compute_req_header_bytes
394
+
395
+ # Total body bytes received by Compute@Edge.
396
+ attr_accessor :compute_req_body_bytes
397
+
398
+ # Total header bytes sent from Compute@Edge to end user.
399
+ attr_accessor :compute_resp_header_bytes
400
+
401
+ # Total body bytes sent from Compute@Edge to end user.
402
+ attr_accessor :compute_resp_body_bytes
403
+
404
+ # Number of video responses that came from the Fastly Image Optimizer service.
405
+ attr_accessor :imgvideo
406
+
407
+ # Number of video frames that came from the Fastly Image Optimizer service. A video frame is an individual image within a sequence of video.
408
+ attr_accessor :imgvideo_frames
409
+
410
+ # Total header bytes of video delivered from the Fastly Image Optimizer service.
411
+ attr_accessor :imgvideo_resp_header_bytes
412
+
413
+ # Total body bytes of video delivered from the Fastly Image Optimizer service.
414
+ attr_accessor :imgvideo_resp_body_bytes
415
+
416
+ # Number of video responses delivered via a shield that came from the Fastly Image Optimizer service.
417
+ attr_accessor :imgvideo_shield
418
+
419
+ # Number of video frames delivered via a shield that came from the Fastly Image Optimizer service. A video frame is an individual image within a sequence of video.
420
+ attr_accessor :imgvideo_shield_frames
421
+
422
+ # Total header bytes of video delivered via a shield from the Fastly Image Optimizer service.
423
+ attr_accessor :imgvideo_shield_resp_header_bytes
424
+
425
+ # Total body bytes of video delivered via a shield from the Fastly Image Optimizer service.
426
+ attr_accessor :imgvideo_shield_resp_body_bytes
427
+
428
+ # Total log bytes sent.
429
+ attr_accessor :log_bytes
430
+
431
+ # Number of requests sent by end users to Fastly.
432
+ attr_accessor :edge_requests
433
+
434
+ # Total header bytes delivered from Fastly to the end user.
435
+ attr_accessor :edge_resp_header_bytes
436
+
437
+ # Total body bytes delivered from Fastly to the end user.
438
+ attr_accessor :edge_resp_body_bytes
439
+
440
+ # Number of responses received from origin with a `304` status code in response to an `If-Modified-Since` or `If-None-Match` request. Under regular scenarios, a revalidation will imply a cache hit. However, if using Fastly Image Optimizer or segmented caching this may result in a cache miss.
441
+ attr_accessor :origin_revalidations
442
+
443
+ # Number of requests sent to origin.
444
+ attr_accessor :origin_fetches
445
+
446
+ # Total request header bytes sent to origin.
447
+ attr_accessor :origin_fetch_header_bytes
448
+
449
+ # Total request body bytes sent to origin.
450
+ attr_accessor :origin_fetch_body_bytes
451
+
452
+ # Total header bytes received from origin.
453
+ attr_accessor :origin_fetch_resp_header_bytes
454
+
455
+ # Total body bytes received from origin.
456
+ attr_accessor :origin_fetch_resp_body_bytes
457
+
458
+ # Number of responses received from origin with a `304` status code, in response to an `If-Modified-Since` or `If-None-Match` request to a shield. Under regular scenarios, a revalidation will imply a cache hit. However, if using segmented caching this may result in a cache miss.
459
+ attr_accessor :shield_revalidations
460
+
461
+ # Number of requests made from one Fastly POP to another, as part of shielding.
462
+ attr_accessor :shield_fetches
463
+
464
+ # Total request header bytes sent to a shield.
465
+ attr_accessor :shield_fetch_header_bytes
466
+
467
+ # Total request body bytes sent to a shield.
468
+ attr_accessor :shield_fetch_body_bytes
469
+
470
+ # Total response header bytes sent from a shield to the edge.
471
+ attr_accessor :shield_fetch_resp_header_bytes
472
+
473
+ # Total response body bytes sent from a shield to the edge.
474
+ attr_accessor :shield_fetch_resp_body_bytes
475
+
476
+ # Number of `Range` requests to origin for segments of resources when using segmented caching.
477
+ attr_accessor :segblock_origin_fetches
478
+
479
+ # Number of `Range` requests to a shield for segments of resources when using segmented caching.
480
+ attr_accessor :segblock_shield_fetches
481
+
482
+ # Number of \"Informational\" category status codes delivered by Compute@Edge.
483
+ attr_accessor :compute_resp_status_1xx
484
+
485
+ # Number of \"Success\" category status codes delivered by Compute@Edge.
486
+ attr_accessor :compute_resp_status_2xx
487
+
488
+ # Number of \"Redirection\" category status codes delivered by Compute@Edge.
489
+ attr_accessor :compute_resp_status_3xx
490
+
491
+ # Number of \"Client Error\" category status codes delivered by Compute@Edge.
492
+ attr_accessor :compute_resp_status_4xx
493
+
494
+ # Number of \"Server Error\" category status codes delivered by Compute@Edge.
495
+ attr_accessor :compute_resp_status_5xx
496
+
497
+ # Number of requests sent by end users to Fastly that resulted in a hit at the edge.
498
+ attr_accessor :edge_hit_requests
499
+
500
+ # Number of requests sent by end users to Fastly that resulted in a miss at the edge.
501
+ attr_accessor :edge_miss_requests
502
+
503
+ # Total header bytes sent to backends (origins) by Compute@Edge.
504
+ attr_accessor :compute_bereq_header_bytes
505
+
506
+ # Total body bytes sent to backends (origins) by Compute@Edge.
507
+ attr_accessor :compute_bereq_body_bytes
508
+
509
+ # Total header bytes received from backends (origins) by Compute@Edge.
510
+ attr_accessor :compute_beresp_header_bytes
511
+
512
+ # Total body bytes received from backends (origins) by Compute@Edge.
513
+ attr_accessor :compute_beresp_body_bytes
514
+
515
+ # The total number of completed requests made to backends (origins) that returned cacheable content.
516
+ attr_accessor :origin_cache_fetches
517
+
518
+ # The total number of completed requests made to shields that returned cacheable content.
519
+ attr_accessor :shield_cache_fetches
520
+
521
+ # Number of backend requests started.
522
+ attr_accessor :compute_bereqs
523
+
524
+ # Number of backend request errors, including timeouts.
525
+ attr_accessor :compute_bereq_errors
526
+
527
+ # Number of times a guest exceeded its resource limit, includes heap, stack, globals, and code execution timeout.
528
+ attr_accessor :compute_resource_limit_exceeded
529
+
530
+ # Number of times a guest exceeded its heap limit.
531
+ attr_accessor :compute_heap_limit_exceeded
532
+
533
+ # Number of times a guest exceeded its stack limit.
534
+ attr_accessor :compute_stack_limit_exceeded
535
+
536
+ # Number of times a guest exceeded its globals limit.
537
+ attr_accessor :compute_globals_limit_exceeded
538
+
539
+ # Number of times a service experienced a guest code error.
540
+ attr_accessor :compute_guest_errors
541
+
542
+ # Number of times a service experienced a guest runtime error.
543
+ attr_accessor :compute_runtime_errors
544
+
545
+ # Body bytes delivered for edge hits.
546
+ attr_accessor :edge_hit_resp_body_bytes
547
+
548
+ # Header bytes delivered for edge hits.
549
+ attr_accessor :edge_hit_resp_header_bytes
550
+
551
+ # Body bytes delivered for edge misses.
552
+ attr_accessor :edge_miss_resp_body_bytes
553
+
554
+ # Header bytes delivered for edge misses.
555
+ attr_accessor :edge_miss_resp_header_bytes
556
+
557
+ # Body bytes received from origin for cacheable content.
558
+ attr_accessor :origin_cache_fetch_resp_body_bytes
559
+
560
+ # Header bytes received from an origin for cacheable content.
561
+ attr_accessor :origin_cache_fetch_resp_header_bytes
562
+
563
+ # Number of requests that resulted in a hit at a shield.
564
+ attr_accessor :shield_hit_requests
565
+
566
+ # Number of requests that resulted in a miss at a shield.
567
+ attr_accessor :shield_miss_requests
568
+
569
+ # Header bytes delivered for shield hits.
570
+ attr_accessor :shield_hit_resp_header_bytes
571
+
572
+ # Body bytes delivered for shield hits.
573
+ attr_accessor :shield_hit_resp_body_bytes
574
+
575
+ # Header bytes delivered for shield misses.
576
+ attr_accessor :shield_miss_resp_header_bytes
577
+
578
+ # Body bytes delivered for shield misses.
579
+ attr_accessor :shield_miss_resp_body_bytes
580
+
581
+ # Total header bytes received from end users over passthrough WebSocket connections.
582
+ attr_accessor :websocket_req_header_bytes
583
+
584
+ # Total message content bytes received from end users over passthrough WebSocket connections.
585
+ attr_accessor :websocket_req_body_bytes
586
+
587
+ # Total header bytes sent to end users over passthrough WebSocket connections.
588
+ attr_accessor :websocket_resp_header_bytes
589
+
590
+ # Total header bytes sent to backends over passthrough WebSocket connections.
591
+ attr_accessor :websocket_bereq_header_bytes
592
+
593
+ # Total message content bytes sent to backends over passthrough WebSocket connections.
594
+ attr_accessor :websocket_bereq_body_bytes
595
+
596
+ # Total header bytes received from backends over passthrough WebSocket connections.
597
+ attr_accessor :websocket_beresp_header_bytes
598
+
599
+ # Total message content bytes received from backends over passthrough WebSocket connections.
600
+ attr_accessor :websocket_beresp_body_bytes
601
+
602
+ # Total duration of passthrough WebSocket connections with end users.
603
+ attr_accessor :websocket_conn_time_ms
604
+
605
+ # Total message content bytes sent to end users over passthrough WebSocket connections.
606
+ attr_accessor :websocket_resp_body_bytes
607
+
608
+ # Total published messages received from the publish API endpoint.
609
+ attr_accessor :fanout_recv_publishes
610
+
611
+ # Total published messages sent to end users.
612
+ attr_accessor :fanout_send_publishes
613
+
614
+ # The total number of class a operations for the KV store.
615
+ attr_accessor :kv_store_class_a_operations
616
+
617
+ # The total number of class b operations for the KV store.
618
+ attr_accessor :kv_store_class_b_operations
619
+
620
+ # Use kv_store_class_a_operations.
621
+ attr_accessor :object_store_class_a_operations
622
+
623
+ # Use kv_store_class_b_operations.
624
+ attr_accessor :object_store_class_b_operations
625
+
626
+ # Total header bytes received from end users over Fanout connections.
627
+ attr_accessor :fanout_req_header_bytes
628
+
629
+ # Total body or message content bytes received from end users over Fanout connections.
630
+ attr_accessor :fanout_req_body_bytes
631
+
632
+ # Total header bytes sent to end users over Fanout connections.
633
+ attr_accessor :fanout_resp_header_bytes
634
+
635
+ # Total body or message content bytes sent to end users over Fanout connections, excluding published message content.
636
+ attr_accessor :fanout_resp_body_bytes
637
+
638
+ # Total header bytes sent to backends over Fanout connections.
639
+ attr_accessor :fanout_bereq_header_bytes
640
+
641
+ # Total body or message content bytes sent to backends over Fanout connections.
642
+ attr_accessor :fanout_bereq_body_bytes
643
+
644
+ # Total header bytes received from backends over Fanout connections.
645
+ attr_accessor :fanout_beresp_header_bytes
646
+
647
+ # Total body or message content bytes received from backends over Fanout connections.
648
+ attr_accessor :fanout_beresp_body_bytes
649
+
650
+ # Total duration of Fanout connections with end users.
651
+ attr_accessor :fanout_conn_time_ms
652
+
653
+ # For HTTP/2, the number of connections the limit-streams action was applied to. The limit-streams action caps the allowed number of concurrent streams in a connection.
654
+ attr_accessor :ddos_action_limit_streams_connections
655
+
656
+ # For HTTP/2, the number of requests made on a connection for which the limit-streams action was taken. The limit-streams action caps the allowed number of concurrent streams in a connection.
657
+ attr_accessor :ddos_action_limit_streams_requests
658
+
659
+ # The number of times the tarpit-accept action was taken. The tarpit-accept action adds a delay when accepting future connections.
660
+ attr_accessor :ddos_action_tarpit_accept
661
+
662
+ # The number of times the tarpit action was taken. The tarpit action delays writing the response to the client.
663
+ attr_accessor :ddos_action_tarpit
664
+
665
+ # The number of times the close action was taken. The close action aborts the connection as soon as possible. The close action takes effect either right after accept, right after the client hello, or right after the response was sent.
666
+ attr_accessor :ddos_action_close
667
+
668
+ # The number of times the blackhole action was taken. The blackhole action quietly closes a TCP connection without sending a reset. The blackhole action quietly closes a TCP connection without notifying its peer (all TCP state is dropped).
669
+ attr_accessor :ddos_action_blackhole
670
+
671
+ # Attribute mapping from ruby-style variable name to JSON key.
672
+ def self.attribute_map
673
+ {
674
+ :'requests' => :'requests',
675
+ :'logging' => :'logging',
676
+ :'log' => :'log',
677
+ :'resp_header_bytes' => :'resp_header_bytes',
678
+ :'header_size' => :'header_size',
679
+ :'resp_body_bytes' => :'resp_body_bytes',
680
+ :'body_size' => :'body_size',
681
+ :'hits' => :'hits',
682
+ :'miss' => :'miss',
683
+ :'pass' => :'pass',
684
+ :'synth' => :'synth',
685
+ :'errors' => :'errors',
686
+ :'hits_time' => :'hits_time',
687
+ :'miss_time' => :'miss_time',
688
+ :'miss_histogram' => :'miss_histogram',
689
+ :'compute_requests' => :'compute_requests',
690
+ :'compute_execution_time_ms' => :'compute_execution_time_ms',
691
+ :'compute_ram_used' => :'compute_ram_used',
692
+ :'compute_request_time_ms' => :'compute_request_time_ms',
693
+ :'compute_request_time_billed_ms' => :'compute_request_time_billed_ms',
694
+ :'shield' => :'shield',
695
+ :'ipv6' => :'ipv6',
696
+ :'imgopto' => :'imgopto',
697
+ :'imgopto_shield' => :'imgopto_shield',
698
+ :'imgopto_transforms' => :'imgopto_transforms',
699
+ :'otfp' => :'otfp',
700
+ :'otfp_shield' => :'otfp_shield',
701
+ :'otfp_manifests' => :'otfp_manifests',
702
+ :'video' => :'video',
703
+ :'pci' => :'pci',
704
+ :'http2' => :'http2',
705
+ :'http3' => :'http3',
706
+ :'restarts' => :'restarts',
707
+ :'req_header_bytes' => :'req_header_bytes',
708
+ :'req_body_bytes' => :'req_body_bytes',
709
+ :'bereq_header_bytes' => :'bereq_header_bytes',
710
+ :'bereq_body_bytes' => :'bereq_body_bytes',
711
+ :'waf_blocked' => :'waf_blocked',
712
+ :'waf_logged' => :'waf_logged',
713
+ :'waf_passed' => :'waf_passed',
714
+ :'attack_req_header_bytes' => :'attack_req_header_bytes',
715
+ :'attack_req_body_bytes' => :'attack_req_body_bytes',
716
+ :'attack_resp_synth_bytes' => :'attack_resp_synth_bytes',
717
+ :'attack_logged_req_header_bytes' => :'attack_logged_req_header_bytes',
718
+ :'attack_logged_req_body_bytes' => :'attack_logged_req_body_bytes',
719
+ :'attack_blocked_req_header_bytes' => :'attack_blocked_req_header_bytes',
720
+ :'attack_blocked_req_body_bytes' => :'attack_blocked_req_body_bytes',
721
+ :'attack_passed_req_header_bytes' => :'attack_passed_req_header_bytes',
722
+ :'attack_passed_req_body_bytes' => :'attack_passed_req_body_bytes',
723
+ :'shield_resp_header_bytes' => :'shield_resp_header_bytes',
724
+ :'shield_resp_body_bytes' => :'shield_resp_body_bytes',
725
+ :'otfp_resp_header_bytes' => :'otfp_resp_header_bytes',
726
+ :'otfp_resp_body_bytes' => :'otfp_resp_body_bytes',
727
+ :'otfp_shield_resp_header_bytes' => :'otfp_shield_resp_header_bytes',
728
+ :'otfp_shield_resp_body_bytes' => :'otfp_shield_resp_body_bytes',
729
+ :'otfp_shield_time' => :'otfp_shield_time',
730
+ :'otfp_deliver_time' => :'otfp_deliver_time',
731
+ :'imgopto_resp_header_bytes' => :'imgopto_resp_header_bytes',
732
+ :'imgopto_resp_body_bytes' => :'imgopto_resp_body_bytes',
733
+ :'imgopto_shield_resp_header_bytes' => :'imgopto_shield_resp_header_bytes',
734
+ :'imgopto_shield_resp_body_bytes' => :'imgopto_shield_resp_body_bytes',
735
+ :'status_1xx' => :'status_1xx',
736
+ :'status_2xx' => :'status_2xx',
737
+ :'status_3xx' => :'status_3xx',
738
+ :'status_4xx' => :'status_4xx',
739
+ :'status_5xx' => :'status_5xx',
740
+ :'status_200' => :'status_200',
741
+ :'status_204' => :'status_204',
742
+ :'status_206' => :'status_206',
743
+ :'status_301' => :'status_301',
744
+ :'status_302' => :'status_302',
745
+ :'status_304' => :'status_304',
746
+ :'status_400' => :'status_400',
747
+ :'status_401' => :'status_401',
748
+ :'status_403' => :'status_403',
749
+ :'status_404' => :'status_404',
750
+ :'status_406' => :'status_406',
751
+ :'status_416' => :'status_416',
752
+ :'status_429' => :'status_429',
753
+ :'status_500' => :'status_500',
754
+ :'status_501' => :'status_501',
755
+ :'status_502' => :'status_502',
756
+ :'status_503' => :'status_503',
757
+ :'status_504' => :'status_504',
758
+ :'status_505' => :'status_505',
759
+ :'uncacheable' => :'uncacheable',
760
+ :'pass_time' => :'pass_time',
761
+ :'tls' => :'tls',
762
+ :'tls_v10' => :'tls_v10',
763
+ :'tls_v11' => :'tls_v11',
764
+ :'tls_v12' => :'tls_v12',
765
+ :'tls_v13' => :'tls_v13',
766
+ :'object_size_1k' => :'object_size_1k',
767
+ :'object_size_10k' => :'object_size_10k',
768
+ :'object_size_100k' => :'object_size_100k',
769
+ :'object_size_1m' => :'object_size_1m',
770
+ :'object_size_10m' => :'object_size_10m',
771
+ :'object_size_100m' => :'object_size_100m',
772
+ :'object_size_1g' => :'object_size_1g',
773
+ :'object_size_other' => :'object_size_other',
774
+ :'recv_sub_time' => :'recv_sub_time',
775
+ :'recv_sub_count' => :'recv_sub_count',
776
+ :'hash_sub_time' => :'hash_sub_time',
777
+ :'hash_sub_count' => :'hash_sub_count',
778
+ :'miss_sub_time' => :'miss_sub_time',
779
+ :'miss_sub_count' => :'miss_sub_count',
780
+ :'fetch_sub_time' => :'fetch_sub_time',
781
+ :'fetch_sub_count' => :'fetch_sub_count',
782
+ :'pass_sub_time' => :'pass_sub_time',
783
+ :'pass_sub_count' => :'pass_sub_count',
784
+ :'pipe_sub_time' => :'pipe_sub_time',
785
+ :'pipe_sub_count' => :'pipe_sub_count',
786
+ :'deliver_sub_time' => :'deliver_sub_time',
787
+ :'deliver_sub_count' => :'deliver_sub_count',
788
+ :'error_sub_time' => :'error_sub_time',
789
+ :'error_sub_count' => :'error_sub_count',
790
+ :'hit_sub_time' => :'hit_sub_time',
791
+ :'hit_sub_count' => :'hit_sub_count',
792
+ :'prehash_sub_time' => :'prehash_sub_time',
793
+ :'prehash_sub_count' => :'prehash_sub_count',
794
+ :'predeliver_sub_time' => :'predeliver_sub_time',
795
+ :'predeliver_sub_count' => :'predeliver_sub_count',
796
+ :'hit_resp_body_bytes' => :'hit_resp_body_bytes',
797
+ :'miss_resp_body_bytes' => :'miss_resp_body_bytes',
798
+ :'pass_resp_body_bytes' => :'pass_resp_body_bytes',
799
+ :'compute_req_header_bytes' => :'compute_req_header_bytes',
800
+ :'compute_req_body_bytes' => :'compute_req_body_bytes',
801
+ :'compute_resp_header_bytes' => :'compute_resp_header_bytes',
802
+ :'compute_resp_body_bytes' => :'compute_resp_body_bytes',
803
+ :'imgvideo' => :'imgvideo',
804
+ :'imgvideo_frames' => :'imgvideo_frames',
805
+ :'imgvideo_resp_header_bytes' => :'imgvideo_resp_header_bytes',
806
+ :'imgvideo_resp_body_bytes' => :'imgvideo_resp_body_bytes',
807
+ :'imgvideo_shield' => :'imgvideo_shield',
808
+ :'imgvideo_shield_frames' => :'imgvideo_shield_frames',
809
+ :'imgvideo_shield_resp_header_bytes' => :'imgvideo_shield_resp_header_bytes',
810
+ :'imgvideo_shield_resp_body_bytes' => :'imgvideo_shield_resp_body_bytes',
811
+ :'log_bytes' => :'log_bytes',
812
+ :'edge_requests' => :'edge_requests',
813
+ :'edge_resp_header_bytes' => :'edge_resp_header_bytes',
814
+ :'edge_resp_body_bytes' => :'edge_resp_body_bytes',
815
+ :'origin_revalidations' => :'origin_revalidations',
816
+ :'origin_fetches' => :'origin_fetches',
817
+ :'origin_fetch_header_bytes' => :'origin_fetch_header_bytes',
818
+ :'origin_fetch_body_bytes' => :'origin_fetch_body_bytes',
819
+ :'origin_fetch_resp_header_bytes' => :'origin_fetch_resp_header_bytes',
820
+ :'origin_fetch_resp_body_bytes' => :'origin_fetch_resp_body_bytes',
821
+ :'shield_revalidations' => :'shield_revalidations',
822
+ :'shield_fetches' => :'shield_fetches',
823
+ :'shield_fetch_header_bytes' => :'shield_fetch_header_bytes',
824
+ :'shield_fetch_body_bytes' => :'shield_fetch_body_bytes',
825
+ :'shield_fetch_resp_header_bytes' => :'shield_fetch_resp_header_bytes',
826
+ :'shield_fetch_resp_body_bytes' => :'shield_fetch_resp_body_bytes',
827
+ :'segblock_origin_fetches' => :'segblock_origin_fetches',
828
+ :'segblock_shield_fetches' => :'segblock_shield_fetches',
829
+ :'compute_resp_status_1xx' => :'compute_resp_status_1xx',
830
+ :'compute_resp_status_2xx' => :'compute_resp_status_2xx',
831
+ :'compute_resp_status_3xx' => :'compute_resp_status_3xx',
832
+ :'compute_resp_status_4xx' => :'compute_resp_status_4xx',
833
+ :'compute_resp_status_5xx' => :'compute_resp_status_5xx',
834
+ :'edge_hit_requests' => :'edge_hit_requests',
835
+ :'edge_miss_requests' => :'edge_miss_requests',
836
+ :'compute_bereq_header_bytes' => :'compute_bereq_header_bytes',
837
+ :'compute_bereq_body_bytes' => :'compute_bereq_body_bytes',
838
+ :'compute_beresp_header_bytes' => :'compute_beresp_header_bytes',
839
+ :'compute_beresp_body_bytes' => :'compute_beresp_body_bytes',
840
+ :'origin_cache_fetches' => :'origin_cache_fetches',
841
+ :'shield_cache_fetches' => :'shield_cache_fetches',
842
+ :'compute_bereqs' => :'compute_bereqs',
843
+ :'compute_bereq_errors' => :'compute_bereq_errors',
844
+ :'compute_resource_limit_exceeded' => :'compute_resource_limit_exceeded',
845
+ :'compute_heap_limit_exceeded' => :'compute_heap_limit_exceeded',
846
+ :'compute_stack_limit_exceeded' => :'compute_stack_limit_exceeded',
847
+ :'compute_globals_limit_exceeded' => :'compute_globals_limit_exceeded',
848
+ :'compute_guest_errors' => :'compute_guest_errors',
849
+ :'compute_runtime_errors' => :'compute_runtime_errors',
850
+ :'edge_hit_resp_body_bytes' => :'edge_hit_resp_body_bytes',
851
+ :'edge_hit_resp_header_bytes' => :'edge_hit_resp_header_bytes',
852
+ :'edge_miss_resp_body_bytes' => :'edge_miss_resp_body_bytes',
853
+ :'edge_miss_resp_header_bytes' => :'edge_miss_resp_header_bytes',
854
+ :'origin_cache_fetch_resp_body_bytes' => :'origin_cache_fetch_resp_body_bytes',
855
+ :'origin_cache_fetch_resp_header_bytes' => :'origin_cache_fetch_resp_header_bytes',
856
+ :'shield_hit_requests' => :'shield_hit_requests',
857
+ :'shield_miss_requests' => :'shield_miss_requests',
858
+ :'shield_hit_resp_header_bytes' => :'shield_hit_resp_header_bytes',
859
+ :'shield_hit_resp_body_bytes' => :'shield_hit_resp_body_bytes',
860
+ :'shield_miss_resp_header_bytes' => :'shield_miss_resp_header_bytes',
861
+ :'shield_miss_resp_body_bytes' => :'shield_miss_resp_body_bytes',
862
+ :'websocket_req_header_bytes' => :'websocket_req_header_bytes',
863
+ :'websocket_req_body_bytes' => :'websocket_req_body_bytes',
864
+ :'websocket_resp_header_bytes' => :'websocket_resp_header_bytes',
865
+ :'websocket_bereq_header_bytes' => :'websocket_bereq_header_bytes',
866
+ :'websocket_bereq_body_bytes' => :'websocket_bereq_body_bytes',
867
+ :'websocket_beresp_header_bytes' => :'websocket_beresp_header_bytes',
868
+ :'websocket_beresp_body_bytes' => :'websocket_beresp_body_bytes',
869
+ :'websocket_conn_time_ms' => :'websocket_conn_time_ms',
870
+ :'websocket_resp_body_bytes' => :'websocket_resp_body_bytes',
871
+ :'fanout_recv_publishes' => :'fanout_recv_publishes',
872
+ :'fanout_send_publishes' => :'fanout_send_publishes',
873
+ :'kv_store_class_a_operations' => :'kv_store_class_a_operations',
874
+ :'kv_store_class_b_operations' => :'kv_store_class_b_operations',
875
+ :'object_store_class_a_operations' => :'object_store_class_a_operations',
876
+ :'object_store_class_b_operations' => :'object_store_class_b_operations',
877
+ :'fanout_req_header_bytes' => :'fanout_req_header_bytes',
878
+ :'fanout_req_body_bytes' => :'fanout_req_body_bytes',
879
+ :'fanout_resp_header_bytes' => :'fanout_resp_header_bytes',
880
+ :'fanout_resp_body_bytes' => :'fanout_resp_body_bytes',
881
+ :'fanout_bereq_header_bytes' => :'fanout_bereq_header_bytes',
882
+ :'fanout_bereq_body_bytes' => :'fanout_bereq_body_bytes',
883
+ :'fanout_beresp_header_bytes' => :'fanout_beresp_header_bytes',
884
+ :'fanout_beresp_body_bytes' => :'fanout_beresp_body_bytes',
885
+ :'fanout_conn_time_ms' => :'fanout_conn_time_ms',
886
+ :'ddos_action_limit_streams_connections' => :'ddos_action_limit_streams_connections',
887
+ :'ddos_action_limit_streams_requests' => :'ddos_action_limit_streams_requests',
888
+ :'ddos_action_tarpit_accept' => :'ddos_action_tarpit_accept',
889
+ :'ddos_action_tarpit' => :'ddos_action_tarpit',
890
+ :'ddos_action_close' => :'ddos_action_close',
891
+ :'ddos_action_blackhole' => :'ddos_action_blackhole'
892
+ }
893
+ end
894
+
895
+ # Returns all the JSON keys this model knows about
896
+ def self.acceptable_attributes
897
+ attribute_map.values
898
+ end
899
+
900
+ # Attribute type mapping.
901
+ def self.fastly_types
902
+ {
903
+ :'requests' => :'Integer',
904
+ :'logging' => :'Integer',
905
+ :'log' => :'Integer',
906
+ :'resp_header_bytes' => :'Integer',
907
+ :'header_size' => :'Integer',
908
+ :'resp_body_bytes' => :'Integer',
909
+ :'body_size' => :'Integer',
910
+ :'hits' => :'Integer',
911
+ :'miss' => :'Integer',
912
+ :'pass' => :'Integer',
913
+ :'synth' => :'Integer',
914
+ :'errors' => :'Integer',
915
+ :'hits_time' => :'Float',
916
+ :'miss_time' => :'Float',
917
+ :'miss_histogram' => :'Hash<String, Object>',
918
+ :'compute_requests' => :'Integer',
919
+ :'compute_execution_time_ms' => :'Float',
920
+ :'compute_ram_used' => :'Integer',
921
+ :'compute_request_time_ms' => :'Float',
922
+ :'compute_request_time_billed_ms' => :'Float',
923
+ :'shield' => :'Integer',
924
+ :'ipv6' => :'Integer',
925
+ :'imgopto' => :'Integer',
926
+ :'imgopto_shield' => :'Integer',
927
+ :'imgopto_transforms' => :'Integer',
928
+ :'otfp' => :'Integer',
929
+ :'otfp_shield' => :'Integer',
930
+ :'otfp_manifests' => :'Integer',
931
+ :'video' => :'Integer',
932
+ :'pci' => :'Integer',
933
+ :'http2' => :'Integer',
934
+ :'http3' => :'Integer',
935
+ :'restarts' => :'Integer',
936
+ :'req_header_bytes' => :'Integer',
937
+ :'req_body_bytes' => :'Integer',
938
+ :'bereq_header_bytes' => :'Integer',
939
+ :'bereq_body_bytes' => :'Integer',
940
+ :'waf_blocked' => :'Integer',
941
+ :'waf_logged' => :'Integer',
942
+ :'waf_passed' => :'Integer',
943
+ :'attack_req_header_bytes' => :'Integer',
944
+ :'attack_req_body_bytes' => :'Integer',
945
+ :'attack_resp_synth_bytes' => :'Integer',
946
+ :'attack_logged_req_header_bytes' => :'Integer',
947
+ :'attack_logged_req_body_bytes' => :'Integer',
948
+ :'attack_blocked_req_header_bytes' => :'Integer',
949
+ :'attack_blocked_req_body_bytes' => :'Integer',
950
+ :'attack_passed_req_header_bytes' => :'Integer',
951
+ :'attack_passed_req_body_bytes' => :'Integer',
952
+ :'shield_resp_header_bytes' => :'Integer',
953
+ :'shield_resp_body_bytes' => :'Integer',
954
+ :'otfp_resp_header_bytes' => :'Integer',
955
+ :'otfp_resp_body_bytes' => :'Integer',
956
+ :'otfp_shield_resp_header_bytes' => :'Integer',
957
+ :'otfp_shield_resp_body_bytes' => :'Integer',
958
+ :'otfp_shield_time' => :'Float',
959
+ :'otfp_deliver_time' => :'Float',
960
+ :'imgopto_resp_header_bytes' => :'Integer',
961
+ :'imgopto_resp_body_bytes' => :'Integer',
962
+ :'imgopto_shield_resp_header_bytes' => :'Integer',
963
+ :'imgopto_shield_resp_body_bytes' => :'Integer',
964
+ :'status_1xx' => :'Integer',
965
+ :'status_2xx' => :'Integer',
966
+ :'status_3xx' => :'Integer',
967
+ :'status_4xx' => :'Integer',
968
+ :'status_5xx' => :'Integer',
969
+ :'status_200' => :'Integer',
970
+ :'status_204' => :'Integer',
971
+ :'status_206' => :'Integer',
972
+ :'status_301' => :'Integer',
973
+ :'status_302' => :'Integer',
974
+ :'status_304' => :'Integer',
975
+ :'status_400' => :'Integer',
976
+ :'status_401' => :'Integer',
977
+ :'status_403' => :'Integer',
978
+ :'status_404' => :'Integer',
979
+ :'status_406' => :'Integer',
980
+ :'status_416' => :'Integer',
981
+ :'status_429' => :'Integer',
982
+ :'status_500' => :'Integer',
983
+ :'status_501' => :'Integer',
984
+ :'status_502' => :'Integer',
985
+ :'status_503' => :'Integer',
986
+ :'status_504' => :'Integer',
987
+ :'status_505' => :'Integer',
988
+ :'uncacheable' => :'Integer',
989
+ :'pass_time' => :'Float',
990
+ :'tls' => :'Integer',
991
+ :'tls_v10' => :'Integer',
992
+ :'tls_v11' => :'Integer',
993
+ :'tls_v12' => :'Integer',
994
+ :'tls_v13' => :'Integer',
995
+ :'object_size_1k' => :'Integer',
996
+ :'object_size_10k' => :'Integer',
997
+ :'object_size_100k' => :'Integer',
998
+ :'object_size_1m' => :'Integer',
999
+ :'object_size_10m' => :'Integer',
1000
+ :'object_size_100m' => :'Integer',
1001
+ :'object_size_1g' => :'Integer',
1002
+ :'object_size_other' => :'Integer',
1003
+ :'recv_sub_time' => :'Float',
1004
+ :'recv_sub_count' => :'Integer',
1005
+ :'hash_sub_time' => :'Float',
1006
+ :'hash_sub_count' => :'Integer',
1007
+ :'miss_sub_time' => :'Float',
1008
+ :'miss_sub_count' => :'Integer',
1009
+ :'fetch_sub_time' => :'Float',
1010
+ :'fetch_sub_count' => :'Integer',
1011
+ :'pass_sub_time' => :'Float',
1012
+ :'pass_sub_count' => :'Integer',
1013
+ :'pipe_sub_time' => :'Float',
1014
+ :'pipe_sub_count' => :'Integer',
1015
+ :'deliver_sub_time' => :'Float',
1016
+ :'deliver_sub_count' => :'Integer',
1017
+ :'error_sub_time' => :'Float',
1018
+ :'error_sub_count' => :'Integer',
1019
+ :'hit_sub_time' => :'Float',
1020
+ :'hit_sub_count' => :'Integer',
1021
+ :'prehash_sub_time' => :'Float',
1022
+ :'prehash_sub_count' => :'Integer',
1023
+ :'predeliver_sub_time' => :'Float',
1024
+ :'predeliver_sub_count' => :'Integer',
1025
+ :'hit_resp_body_bytes' => :'Integer',
1026
+ :'miss_resp_body_bytes' => :'Integer',
1027
+ :'pass_resp_body_bytes' => :'Integer',
1028
+ :'compute_req_header_bytes' => :'Integer',
1029
+ :'compute_req_body_bytes' => :'Integer',
1030
+ :'compute_resp_header_bytes' => :'Integer',
1031
+ :'compute_resp_body_bytes' => :'Integer',
1032
+ :'imgvideo' => :'Integer',
1033
+ :'imgvideo_frames' => :'Integer',
1034
+ :'imgvideo_resp_header_bytes' => :'Integer',
1035
+ :'imgvideo_resp_body_bytes' => :'Integer',
1036
+ :'imgvideo_shield' => :'Integer',
1037
+ :'imgvideo_shield_frames' => :'Integer',
1038
+ :'imgvideo_shield_resp_header_bytes' => :'Integer',
1039
+ :'imgvideo_shield_resp_body_bytes' => :'Integer',
1040
+ :'log_bytes' => :'Integer',
1041
+ :'edge_requests' => :'Integer',
1042
+ :'edge_resp_header_bytes' => :'Integer',
1043
+ :'edge_resp_body_bytes' => :'Integer',
1044
+ :'origin_revalidations' => :'Integer',
1045
+ :'origin_fetches' => :'Integer',
1046
+ :'origin_fetch_header_bytes' => :'Integer',
1047
+ :'origin_fetch_body_bytes' => :'Integer',
1048
+ :'origin_fetch_resp_header_bytes' => :'Integer',
1049
+ :'origin_fetch_resp_body_bytes' => :'Integer',
1050
+ :'shield_revalidations' => :'Integer',
1051
+ :'shield_fetches' => :'Integer',
1052
+ :'shield_fetch_header_bytes' => :'Integer',
1053
+ :'shield_fetch_body_bytes' => :'Integer',
1054
+ :'shield_fetch_resp_header_bytes' => :'Integer',
1055
+ :'shield_fetch_resp_body_bytes' => :'Integer',
1056
+ :'segblock_origin_fetches' => :'Integer',
1057
+ :'segblock_shield_fetches' => :'Integer',
1058
+ :'compute_resp_status_1xx' => :'Integer',
1059
+ :'compute_resp_status_2xx' => :'Integer',
1060
+ :'compute_resp_status_3xx' => :'Integer',
1061
+ :'compute_resp_status_4xx' => :'Integer',
1062
+ :'compute_resp_status_5xx' => :'Integer',
1063
+ :'edge_hit_requests' => :'Integer',
1064
+ :'edge_miss_requests' => :'Integer',
1065
+ :'compute_bereq_header_bytes' => :'Integer',
1066
+ :'compute_bereq_body_bytes' => :'Integer',
1067
+ :'compute_beresp_header_bytes' => :'Integer',
1068
+ :'compute_beresp_body_bytes' => :'Integer',
1069
+ :'origin_cache_fetches' => :'Integer',
1070
+ :'shield_cache_fetches' => :'Integer',
1071
+ :'compute_bereqs' => :'Integer',
1072
+ :'compute_bereq_errors' => :'Integer',
1073
+ :'compute_resource_limit_exceeded' => :'Integer',
1074
+ :'compute_heap_limit_exceeded' => :'Integer',
1075
+ :'compute_stack_limit_exceeded' => :'Integer',
1076
+ :'compute_globals_limit_exceeded' => :'Integer',
1077
+ :'compute_guest_errors' => :'Integer',
1078
+ :'compute_runtime_errors' => :'Integer',
1079
+ :'edge_hit_resp_body_bytes' => :'Integer',
1080
+ :'edge_hit_resp_header_bytes' => :'Integer',
1081
+ :'edge_miss_resp_body_bytes' => :'Integer',
1082
+ :'edge_miss_resp_header_bytes' => :'Integer',
1083
+ :'origin_cache_fetch_resp_body_bytes' => :'Integer',
1084
+ :'origin_cache_fetch_resp_header_bytes' => :'Integer',
1085
+ :'shield_hit_requests' => :'Integer',
1086
+ :'shield_miss_requests' => :'Integer',
1087
+ :'shield_hit_resp_header_bytes' => :'Integer',
1088
+ :'shield_hit_resp_body_bytes' => :'Integer',
1089
+ :'shield_miss_resp_header_bytes' => :'Integer',
1090
+ :'shield_miss_resp_body_bytes' => :'Integer',
1091
+ :'websocket_req_header_bytes' => :'Integer',
1092
+ :'websocket_req_body_bytes' => :'Integer',
1093
+ :'websocket_resp_header_bytes' => :'Integer',
1094
+ :'websocket_bereq_header_bytes' => :'Integer',
1095
+ :'websocket_bereq_body_bytes' => :'Integer',
1096
+ :'websocket_beresp_header_bytes' => :'Integer',
1097
+ :'websocket_beresp_body_bytes' => :'Integer',
1098
+ :'websocket_conn_time_ms' => :'Integer',
1099
+ :'websocket_resp_body_bytes' => :'Integer',
1100
+ :'fanout_recv_publishes' => :'Integer',
1101
+ :'fanout_send_publishes' => :'Integer',
1102
+ :'kv_store_class_a_operations' => :'Integer',
1103
+ :'kv_store_class_b_operations' => :'Integer',
1104
+ :'object_store_class_a_operations' => :'Integer',
1105
+ :'object_store_class_b_operations' => :'Integer',
1106
+ :'fanout_req_header_bytes' => :'Integer',
1107
+ :'fanout_req_body_bytes' => :'Integer',
1108
+ :'fanout_resp_header_bytes' => :'Integer',
1109
+ :'fanout_resp_body_bytes' => :'Integer',
1110
+ :'fanout_bereq_header_bytes' => :'Integer',
1111
+ :'fanout_bereq_body_bytes' => :'Integer',
1112
+ :'fanout_beresp_header_bytes' => :'Integer',
1113
+ :'fanout_beresp_body_bytes' => :'Integer',
1114
+ :'fanout_conn_time_ms' => :'Integer',
1115
+ :'ddos_action_limit_streams_connections' => :'Integer',
1116
+ :'ddos_action_limit_streams_requests' => :'Integer',
1117
+ :'ddos_action_tarpit_accept' => :'Integer',
1118
+ :'ddos_action_tarpit' => :'Integer',
1119
+ :'ddos_action_close' => :'Integer',
1120
+ :'ddos_action_blackhole' => :'Integer'
1121
+ }
1122
+ end
1123
+
1124
+ # List of attributes with nullable: true
1125
+ def self.fastly_nullable
1126
+ Set.new([
1127
+ ])
1128
+ end
1129
+
1130
+ # List of class defined in allOf (OpenAPI v3)
1131
+ def self.fastly_all_of
1132
+ [
1133
+ :'RealtimeMeasurements'
1134
+ ]
1135
+ end
1136
+
1137
+ # Initializes the object
1138
+ # @param [Hash] attributes Model attributes in the form of hash
1139
+ def initialize(attributes = {})
1140
+ if (!attributes.is_a?(Hash))
1141
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Fastly::RealtimeEntryAggregated` initialize method"
1142
+ end
1143
+
1144
+ # check to see if the attribute exists and convert string to symbol for hash key
1145
+ attributes = attributes.each_with_object({}) { |(k, v), h|
1146
+ if (!self.class.attribute_map.key?(k.to_sym))
1147
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Fastly::RealtimeEntryAggregated`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
1148
+ end
1149
+ h[k.to_sym] = v
1150
+ }
1151
+
1152
+ if attributes.key?(:'requests')
1153
+ self.requests = attributes[:'requests']
1154
+ end
1155
+
1156
+ if attributes.key?(:'logging')
1157
+ self.logging = attributes[:'logging']
1158
+ end
1159
+
1160
+ if attributes.key?(:'log')
1161
+ self.log = attributes[:'log']
1162
+ end
1163
+
1164
+ if attributes.key?(:'resp_header_bytes')
1165
+ self.resp_header_bytes = attributes[:'resp_header_bytes']
1166
+ end
1167
+
1168
+ if attributes.key?(:'header_size')
1169
+ self.header_size = attributes[:'header_size']
1170
+ end
1171
+
1172
+ if attributes.key?(:'resp_body_bytes')
1173
+ self.resp_body_bytes = attributes[:'resp_body_bytes']
1174
+ end
1175
+
1176
+ if attributes.key?(:'body_size')
1177
+ self.body_size = attributes[:'body_size']
1178
+ end
1179
+
1180
+ if attributes.key?(:'hits')
1181
+ self.hits = attributes[:'hits']
1182
+ end
1183
+
1184
+ if attributes.key?(:'miss')
1185
+ self.miss = attributes[:'miss']
1186
+ end
1187
+
1188
+ if attributes.key?(:'pass')
1189
+ self.pass = attributes[:'pass']
1190
+ end
1191
+
1192
+ if attributes.key?(:'synth')
1193
+ self.synth = attributes[:'synth']
1194
+ end
1195
+
1196
+ if attributes.key?(:'errors')
1197
+ self.errors = attributes[:'errors']
1198
+ end
1199
+
1200
+ if attributes.key?(:'hits_time')
1201
+ self.hits_time = attributes[:'hits_time']
1202
+ end
1203
+
1204
+ if attributes.key?(:'miss_time')
1205
+ self.miss_time = attributes[:'miss_time']
1206
+ end
1207
+
1208
+ if attributes.key?(:'miss_histogram')
1209
+ if (value = attributes[:'miss_histogram']).is_a?(Hash)
1210
+ self.miss_histogram = value
1211
+ end
1212
+ end
1213
+
1214
+ if attributes.key?(:'compute_requests')
1215
+ self.compute_requests = attributes[:'compute_requests']
1216
+ end
1217
+
1218
+ if attributes.key?(:'compute_execution_time_ms')
1219
+ self.compute_execution_time_ms = attributes[:'compute_execution_time_ms']
1220
+ end
1221
+
1222
+ if attributes.key?(:'compute_ram_used')
1223
+ self.compute_ram_used = attributes[:'compute_ram_used']
1224
+ end
1225
+
1226
+ if attributes.key?(:'compute_request_time_ms')
1227
+ self.compute_request_time_ms = attributes[:'compute_request_time_ms']
1228
+ end
1229
+
1230
+ if attributes.key?(:'compute_request_time_billed_ms')
1231
+ self.compute_request_time_billed_ms = attributes[:'compute_request_time_billed_ms']
1232
+ end
1233
+
1234
+ if attributes.key?(:'shield')
1235
+ self.shield = attributes[:'shield']
1236
+ end
1237
+
1238
+ if attributes.key?(:'ipv6')
1239
+ self.ipv6 = attributes[:'ipv6']
1240
+ end
1241
+
1242
+ if attributes.key?(:'imgopto')
1243
+ self.imgopto = attributes[:'imgopto']
1244
+ end
1245
+
1246
+ if attributes.key?(:'imgopto_shield')
1247
+ self.imgopto_shield = attributes[:'imgopto_shield']
1248
+ end
1249
+
1250
+ if attributes.key?(:'imgopto_transforms')
1251
+ self.imgopto_transforms = attributes[:'imgopto_transforms']
1252
+ end
1253
+
1254
+ if attributes.key?(:'otfp')
1255
+ self.otfp = attributes[:'otfp']
1256
+ end
1257
+
1258
+ if attributes.key?(:'otfp_shield')
1259
+ self.otfp_shield = attributes[:'otfp_shield']
1260
+ end
1261
+
1262
+ if attributes.key?(:'otfp_manifests')
1263
+ self.otfp_manifests = attributes[:'otfp_manifests']
1264
+ end
1265
+
1266
+ if attributes.key?(:'video')
1267
+ self.video = attributes[:'video']
1268
+ end
1269
+
1270
+ if attributes.key?(:'pci')
1271
+ self.pci = attributes[:'pci']
1272
+ end
1273
+
1274
+ if attributes.key?(:'http2')
1275
+ self.http2 = attributes[:'http2']
1276
+ end
1277
+
1278
+ if attributes.key?(:'http3')
1279
+ self.http3 = attributes[:'http3']
1280
+ end
1281
+
1282
+ if attributes.key?(:'restarts')
1283
+ self.restarts = attributes[:'restarts']
1284
+ end
1285
+
1286
+ if attributes.key?(:'req_header_bytes')
1287
+ self.req_header_bytes = attributes[:'req_header_bytes']
1288
+ end
1289
+
1290
+ if attributes.key?(:'req_body_bytes')
1291
+ self.req_body_bytes = attributes[:'req_body_bytes']
1292
+ end
1293
+
1294
+ if attributes.key?(:'bereq_header_bytes')
1295
+ self.bereq_header_bytes = attributes[:'bereq_header_bytes']
1296
+ end
1297
+
1298
+ if attributes.key?(:'bereq_body_bytes')
1299
+ self.bereq_body_bytes = attributes[:'bereq_body_bytes']
1300
+ end
1301
+
1302
+ if attributes.key?(:'waf_blocked')
1303
+ self.waf_blocked = attributes[:'waf_blocked']
1304
+ end
1305
+
1306
+ if attributes.key?(:'waf_logged')
1307
+ self.waf_logged = attributes[:'waf_logged']
1308
+ end
1309
+
1310
+ if attributes.key?(:'waf_passed')
1311
+ self.waf_passed = attributes[:'waf_passed']
1312
+ end
1313
+
1314
+ if attributes.key?(:'attack_req_header_bytes')
1315
+ self.attack_req_header_bytes = attributes[:'attack_req_header_bytes']
1316
+ end
1317
+
1318
+ if attributes.key?(:'attack_req_body_bytes')
1319
+ self.attack_req_body_bytes = attributes[:'attack_req_body_bytes']
1320
+ end
1321
+
1322
+ if attributes.key?(:'attack_resp_synth_bytes')
1323
+ self.attack_resp_synth_bytes = attributes[:'attack_resp_synth_bytes']
1324
+ end
1325
+
1326
+ if attributes.key?(:'attack_logged_req_header_bytes')
1327
+ self.attack_logged_req_header_bytes = attributes[:'attack_logged_req_header_bytes']
1328
+ end
1329
+
1330
+ if attributes.key?(:'attack_logged_req_body_bytes')
1331
+ self.attack_logged_req_body_bytes = attributes[:'attack_logged_req_body_bytes']
1332
+ end
1333
+
1334
+ if attributes.key?(:'attack_blocked_req_header_bytes')
1335
+ self.attack_blocked_req_header_bytes = attributes[:'attack_blocked_req_header_bytes']
1336
+ end
1337
+
1338
+ if attributes.key?(:'attack_blocked_req_body_bytes')
1339
+ self.attack_blocked_req_body_bytes = attributes[:'attack_blocked_req_body_bytes']
1340
+ end
1341
+
1342
+ if attributes.key?(:'attack_passed_req_header_bytes')
1343
+ self.attack_passed_req_header_bytes = attributes[:'attack_passed_req_header_bytes']
1344
+ end
1345
+
1346
+ if attributes.key?(:'attack_passed_req_body_bytes')
1347
+ self.attack_passed_req_body_bytes = attributes[:'attack_passed_req_body_bytes']
1348
+ end
1349
+
1350
+ if attributes.key?(:'shield_resp_header_bytes')
1351
+ self.shield_resp_header_bytes = attributes[:'shield_resp_header_bytes']
1352
+ end
1353
+
1354
+ if attributes.key?(:'shield_resp_body_bytes')
1355
+ self.shield_resp_body_bytes = attributes[:'shield_resp_body_bytes']
1356
+ end
1357
+
1358
+ if attributes.key?(:'otfp_resp_header_bytes')
1359
+ self.otfp_resp_header_bytes = attributes[:'otfp_resp_header_bytes']
1360
+ end
1361
+
1362
+ if attributes.key?(:'otfp_resp_body_bytes')
1363
+ self.otfp_resp_body_bytes = attributes[:'otfp_resp_body_bytes']
1364
+ end
1365
+
1366
+ if attributes.key?(:'otfp_shield_resp_header_bytes')
1367
+ self.otfp_shield_resp_header_bytes = attributes[:'otfp_shield_resp_header_bytes']
1368
+ end
1369
+
1370
+ if attributes.key?(:'otfp_shield_resp_body_bytes')
1371
+ self.otfp_shield_resp_body_bytes = attributes[:'otfp_shield_resp_body_bytes']
1372
+ end
1373
+
1374
+ if attributes.key?(:'otfp_shield_time')
1375
+ self.otfp_shield_time = attributes[:'otfp_shield_time']
1376
+ end
1377
+
1378
+ if attributes.key?(:'otfp_deliver_time')
1379
+ self.otfp_deliver_time = attributes[:'otfp_deliver_time']
1380
+ end
1381
+
1382
+ if attributes.key?(:'imgopto_resp_header_bytes')
1383
+ self.imgopto_resp_header_bytes = attributes[:'imgopto_resp_header_bytes']
1384
+ end
1385
+
1386
+ if attributes.key?(:'imgopto_resp_body_bytes')
1387
+ self.imgopto_resp_body_bytes = attributes[:'imgopto_resp_body_bytes']
1388
+ end
1389
+
1390
+ if attributes.key?(:'imgopto_shield_resp_header_bytes')
1391
+ self.imgopto_shield_resp_header_bytes = attributes[:'imgopto_shield_resp_header_bytes']
1392
+ end
1393
+
1394
+ if attributes.key?(:'imgopto_shield_resp_body_bytes')
1395
+ self.imgopto_shield_resp_body_bytes = attributes[:'imgopto_shield_resp_body_bytes']
1396
+ end
1397
+
1398
+ if attributes.key?(:'status_1xx')
1399
+ self.status_1xx = attributes[:'status_1xx']
1400
+ end
1401
+
1402
+ if attributes.key?(:'status_2xx')
1403
+ self.status_2xx = attributes[:'status_2xx']
1404
+ end
1405
+
1406
+ if attributes.key?(:'status_3xx')
1407
+ self.status_3xx = attributes[:'status_3xx']
1408
+ end
1409
+
1410
+ if attributes.key?(:'status_4xx')
1411
+ self.status_4xx = attributes[:'status_4xx']
1412
+ end
1413
+
1414
+ if attributes.key?(:'status_5xx')
1415
+ self.status_5xx = attributes[:'status_5xx']
1416
+ end
1417
+
1418
+ if attributes.key?(:'status_200')
1419
+ self.status_200 = attributes[:'status_200']
1420
+ end
1421
+
1422
+ if attributes.key?(:'status_204')
1423
+ self.status_204 = attributes[:'status_204']
1424
+ end
1425
+
1426
+ if attributes.key?(:'status_206')
1427
+ self.status_206 = attributes[:'status_206']
1428
+ end
1429
+
1430
+ if attributes.key?(:'status_301')
1431
+ self.status_301 = attributes[:'status_301']
1432
+ end
1433
+
1434
+ if attributes.key?(:'status_302')
1435
+ self.status_302 = attributes[:'status_302']
1436
+ end
1437
+
1438
+ if attributes.key?(:'status_304')
1439
+ self.status_304 = attributes[:'status_304']
1440
+ end
1441
+
1442
+ if attributes.key?(:'status_400')
1443
+ self.status_400 = attributes[:'status_400']
1444
+ end
1445
+
1446
+ if attributes.key?(:'status_401')
1447
+ self.status_401 = attributes[:'status_401']
1448
+ end
1449
+
1450
+ if attributes.key?(:'status_403')
1451
+ self.status_403 = attributes[:'status_403']
1452
+ end
1453
+
1454
+ if attributes.key?(:'status_404')
1455
+ self.status_404 = attributes[:'status_404']
1456
+ end
1457
+
1458
+ if attributes.key?(:'status_406')
1459
+ self.status_406 = attributes[:'status_406']
1460
+ end
1461
+
1462
+ if attributes.key?(:'status_416')
1463
+ self.status_416 = attributes[:'status_416']
1464
+ end
1465
+
1466
+ if attributes.key?(:'status_429')
1467
+ self.status_429 = attributes[:'status_429']
1468
+ end
1469
+
1470
+ if attributes.key?(:'status_500')
1471
+ self.status_500 = attributes[:'status_500']
1472
+ end
1473
+
1474
+ if attributes.key?(:'status_501')
1475
+ self.status_501 = attributes[:'status_501']
1476
+ end
1477
+
1478
+ if attributes.key?(:'status_502')
1479
+ self.status_502 = attributes[:'status_502']
1480
+ end
1481
+
1482
+ if attributes.key?(:'status_503')
1483
+ self.status_503 = attributes[:'status_503']
1484
+ end
1485
+
1486
+ if attributes.key?(:'status_504')
1487
+ self.status_504 = attributes[:'status_504']
1488
+ end
1489
+
1490
+ if attributes.key?(:'status_505')
1491
+ self.status_505 = attributes[:'status_505']
1492
+ end
1493
+
1494
+ if attributes.key?(:'uncacheable')
1495
+ self.uncacheable = attributes[:'uncacheable']
1496
+ end
1497
+
1498
+ if attributes.key?(:'pass_time')
1499
+ self.pass_time = attributes[:'pass_time']
1500
+ end
1501
+
1502
+ if attributes.key?(:'tls')
1503
+ self.tls = attributes[:'tls']
1504
+ end
1505
+
1506
+ if attributes.key?(:'tls_v10')
1507
+ self.tls_v10 = attributes[:'tls_v10']
1508
+ end
1509
+
1510
+ if attributes.key?(:'tls_v11')
1511
+ self.tls_v11 = attributes[:'tls_v11']
1512
+ end
1513
+
1514
+ if attributes.key?(:'tls_v12')
1515
+ self.tls_v12 = attributes[:'tls_v12']
1516
+ end
1517
+
1518
+ if attributes.key?(:'tls_v13')
1519
+ self.tls_v13 = attributes[:'tls_v13']
1520
+ end
1521
+
1522
+ if attributes.key?(:'object_size_1k')
1523
+ self.object_size_1k = attributes[:'object_size_1k']
1524
+ end
1525
+
1526
+ if attributes.key?(:'object_size_10k')
1527
+ self.object_size_10k = attributes[:'object_size_10k']
1528
+ end
1529
+
1530
+ if attributes.key?(:'object_size_100k')
1531
+ self.object_size_100k = attributes[:'object_size_100k']
1532
+ end
1533
+
1534
+ if attributes.key?(:'object_size_1m')
1535
+ self.object_size_1m = attributes[:'object_size_1m']
1536
+ end
1537
+
1538
+ if attributes.key?(:'object_size_10m')
1539
+ self.object_size_10m = attributes[:'object_size_10m']
1540
+ end
1541
+
1542
+ if attributes.key?(:'object_size_100m')
1543
+ self.object_size_100m = attributes[:'object_size_100m']
1544
+ end
1545
+
1546
+ if attributes.key?(:'object_size_1g')
1547
+ self.object_size_1g = attributes[:'object_size_1g']
1548
+ end
1549
+
1550
+ if attributes.key?(:'object_size_other')
1551
+ self.object_size_other = attributes[:'object_size_other']
1552
+ end
1553
+
1554
+ if attributes.key?(:'recv_sub_time')
1555
+ self.recv_sub_time = attributes[:'recv_sub_time']
1556
+ end
1557
+
1558
+ if attributes.key?(:'recv_sub_count')
1559
+ self.recv_sub_count = attributes[:'recv_sub_count']
1560
+ end
1561
+
1562
+ if attributes.key?(:'hash_sub_time')
1563
+ self.hash_sub_time = attributes[:'hash_sub_time']
1564
+ end
1565
+
1566
+ if attributes.key?(:'hash_sub_count')
1567
+ self.hash_sub_count = attributes[:'hash_sub_count']
1568
+ end
1569
+
1570
+ if attributes.key?(:'miss_sub_time')
1571
+ self.miss_sub_time = attributes[:'miss_sub_time']
1572
+ end
1573
+
1574
+ if attributes.key?(:'miss_sub_count')
1575
+ self.miss_sub_count = attributes[:'miss_sub_count']
1576
+ end
1577
+
1578
+ if attributes.key?(:'fetch_sub_time')
1579
+ self.fetch_sub_time = attributes[:'fetch_sub_time']
1580
+ end
1581
+
1582
+ if attributes.key?(:'fetch_sub_count')
1583
+ self.fetch_sub_count = attributes[:'fetch_sub_count']
1584
+ end
1585
+
1586
+ if attributes.key?(:'pass_sub_time')
1587
+ self.pass_sub_time = attributes[:'pass_sub_time']
1588
+ end
1589
+
1590
+ if attributes.key?(:'pass_sub_count')
1591
+ self.pass_sub_count = attributes[:'pass_sub_count']
1592
+ end
1593
+
1594
+ if attributes.key?(:'pipe_sub_time')
1595
+ self.pipe_sub_time = attributes[:'pipe_sub_time']
1596
+ end
1597
+
1598
+ if attributes.key?(:'pipe_sub_count')
1599
+ self.pipe_sub_count = attributes[:'pipe_sub_count']
1600
+ end
1601
+
1602
+ if attributes.key?(:'deliver_sub_time')
1603
+ self.deliver_sub_time = attributes[:'deliver_sub_time']
1604
+ end
1605
+
1606
+ if attributes.key?(:'deliver_sub_count')
1607
+ self.deliver_sub_count = attributes[:'deliver_sub_count']
1608
+ end
1609
+
1610
+ if attributes.key?(:'error_sub_time')
1611
+ self.error_sub_time = attributes[:'error_sub_time']
1612
+ end
1613
+
1614
+ if attributes.key?(:'error_sub_count')
1615
+ self.error_sub_count = attributes[:'error_sub_count']
1616
+ end
1617
+
1618
+ if attributes.key?(:'hit_sub_time')
1619
+ self.hit_sub_time = attributes[:'hit_sub_time']
1620
+ end
1621
+
1622
+ if attributes.key?(:'hit_sub_count')
1623
+ self.hit_sub_count = attributes[:'hit_sub_count']
1624
+ end
1625
+
1626
+ if attributes.key?(:'prehash_sub_time')
1627
+ self.prehash_sub_time = attributes[:'prehash_sub_time']
1628
+ end
1629
+
1630
+ if attributes.key?(:'prehash_sub_count')
1631
+ self.prehash_sub_count = attributes[:'prehash_sub_count']
1632
+ end
1633
+
1634
+ if attributes.key?(:'predeliver_sub_time')
1635
+ self.predeliver_sub_time = attributes[:'predeliver_sub_time']
1636
+ end
1637
+
1638
+ if attributes.key?(:'predeliver_sub_count')
1639
+ self.predeliver_sub_count = attributes[:'predeliver_sub_count']
1640
+ end
1641
+
1642
+ if attributes.key?(:'hit_resp_body_bytes')
1643
+ self.hit_resp_body_bytes = attributes[:'hit_resp_body_bytes']
1644
+ end
1645
+
1646
+ if attributes.key?(:'miss_resp_body_bytes')
1647
+ self.miss_resp_body_bytes = attributes[:'miss_resp_body_bytes']
1648
+ end
1649
+
1650
+ if attributes.key?(:'pass_resp_body_bytes')
1651
+ self.pass_resp_body_bytes = attributes[:'pass_resp_body_bytes']
1652
+ end
1653
+
1654
+ if attributes.key?(:'compute_req_header_bytes')
1655
+ self.compute_req_header_bytes = attributes[:'compute_req_header_bytes']
1656
+ end
1657
+
1658
+ if attributes.key?(:'compute_req_body_bytes')
1659
+ self.compute_req_body_bytes = attributes[:'compute_req_body_bytes']
1660
+ end
1661
+
1662
+ if attributes.key?(:'compute_resp_header_bytes')
1663
+ self.compute_resp_header_bytes = attributes[:'compute_resp_header_bytes']
1664
+ end
1665
+
1666
+ if attributes.key?(:'compute_resp_body_bytes')
1667
+ self.compute_resp_body_bytes = attributes[:'compute_resp_body_bytes']
1668
+ end
1669
+
1670
+ if attributes.key?(:'imgvideo')
1671
+ self.imgvideo = attributes[:'imgvideo']
1672
+ end
1673
+
1674
+ if attributes.key?(:'imgvideo_frames')
1675
+ self.imgvideo_frames = attributes[:'imgvideo_frames']
1676
+ end
1677
+
1678
+ if attributes.key?(:'imgvideo_resp_header_bytes')
1679
+ self.imgvideo_resp_header_bytes = attributes[:'imgvideo_resp_header_bytes']
1680
+ end
1681
+
1682
+ if attributes.key?(:'imgvideo_resp_body_bytes')
1683
+ self.imgvideo_resp_body_bytes = attributes[:'imgvideo_resp_body_bytes']
1684
+ end
1685
+
1686
+ if attributes.key?(:'imgvideo_shield')
1687
+ self.imgvideo_shield = attributes[:'imgvideo_shield']
1688
+ end
1689
+
1690
+ if attributes.key?(:'imgvideo_shield_frames')
1691
+ self.imgvideo_shield_frames = attributes[:'imgvideo_shield_frames']
1692
+ end
1693
+
1694
+ if attributes.key?(:'imgvideo_shield_resp_header_bytes')
1695
+ self.imgvideo_shield_resp_header_bytes = attributes[:'imgvideo_shield_resp_header_bytes']
1696
+ end
1697
+
1698
+ if attributes.key?(:'imgvideo_shield_resp_body_bytes')
1699
+ self.imgvideo_shield_resp_body_bytes = attributes[:'imgvideo_shield_resp_body_bytes']
1700
+ end
1701
+
1702
+ if attributes.key?(:'log_bytes')
1703
+ self.log_bytes = attributes[:'log_bytes']
1704
+ end
1705
+
1706
+ if attributes.key?(:'edge_requests')
1707
+ self.edge_requests = attributes[:'edge_requests']
1708
+ end
1709
+
1710
+ if attributes.key?(:'edge_resp_header_bytes')
1711
+ self.edge_resp_header_bytes = attributes[:'edge_resp_header_bytes']
1712
+ end
1713
+
1714
+ if attributes.key?(:'edge_resp_body_bytes')
1715
+ self.edge_resp_body_bytes = attributes[:'edge_resp_body_bytes']
1716
+ end
1717
+
1718
+ if attributes.key?(:'origin_revalidations')
1719
+ self.origin_revalidations = attributes[:'origin_revalidations']
1720
+ end
1721
+
1722
+ if attributes.key?(:'origin_fetches')
1723
+ self.origin_fetches = attributes[:'origin_fetches']
1724
+ end
1725
+
1726
+ if attributes.key?(:'origin_fetch_header_bytes')
1727
+ self.origin_fetch_header_bytes = attributes[:'origin_fetch_header_bytes']
1728
+ end
1729
+
1730
+ if attributes.key?(:'origin_fetch_body_bytes')
1731
+ self.origin_fetch_body_bytes = attributes[:'origin_fetch_body_bytes']
1732
+ end
1733
+
1734
+ if attributes.key?(:'origin_fetch_resp_header_bytes')
1735
+ self.origin_fetch_resp_header_bytes = attributes[:'origin_fetch_resp_header_bytes']
1736
+ end
1737
+
1738
+ if attributes.key?(:'origin_fetch_resp_body_bytes')
1739
+ self.origin_fetch_resp_body_bytes = attributes[:'origin_fetch_resp_body_bytes']
1740
+ end
1741
+
1742
+ if attributes.key?(:'shield_revalidations')
1743
+ self.shield_revalidations = attributes[:'shield_revalidations']
1744
+ end
1745
+
1746
+ if attributes.key?(:'shield_fetches')
1747
+ self.shield_fetches = attributes[:'shield_fetches']
1748
+ end
1749
+
1750
+ if attributes.key?(:'shield_fetch_header_bytes')
1751
+ self.shield_fetch_header_bytes = attributes[:'shield_fetch_header_bytes']
1752
+ end
1753
+
1754
+ if attributes.key?(:'shield_fetch_body_bytes')
1755
+ self.shield_fetch_body_bytes = attributes[:'shield_fetch_body_bytes']
1756
+ end
1757
+
1758
+ if attributes.key?(:'shield_fetch_resp_header_bytes')
1759
+ self.shield_fetch_resp_header_bytes = attributes[:'shield_fetch_resp_header_bytes']
1760
+ end
1761
+
1762
+ if attributes.key?(:'shield_fetch_resp_body_bytes')
1763
+ self.shield_fetch_resp_body_bytes = attributes[:'shield_fetch_resp_body_bytes']
1764
+ end
1765
+
1766
+ if attributes.key?(:'segblock_origin_fetches')
1767
+ self.segblock_origin_fetches = attributes[:'segblock_origin_fetches']
1768
+ end
1769
+
1770
+ if attributes.key?(:'segblock_shield_fetches')
1771
+ self.segblock_shield_fetches = attributes[:'segblock_shield_fetches']
1772
+ end
1773
+
1774
+ if attributes.key?(:'compute_resp_status_1xx')
1775
+ self.compute_resp_status_1xx = attributes[:'compute_resp_status_1xx']
1776
+ end
1777
+
1778
+ if attributes.key?(:'compute_resp_status_2xx')
1779
+ self.compute_resp_status_2xx = attributes[:'compute_resp_status_2xx']
1780
+ end
1781
+
1782
+ if attributes.key?(:'compute_resp_status_3xx')
1783
+ self.compute_resp_status_3xx = attributes[:'compute_resp_status_3xx']
1784
+ end
1785
+
1786
+ if attributes.key?(:'compute_resp_status_4xx')
1787
+ self.compute_resp_status_4xx = attributes[:'compute_resp_status_4xx']
1788
+ end
1789
+
1790
+ if attributes.key?(:'compute_resp_status_5xx')
1791
+ self.compute_resp_status_5xx = attributes[:'compute_resp_status_5xx']
1792
+ end
1793
+
1794
+ if attributes.key?(:'edge_hit_requests')
1795
+ self.edge_hit_requests = attributes[:'edge_hit_requests']
1796
+ end
1797
+
1798
+ if attributes.key?(:'edge_miss_requests')
1799
+ self.edge_miss_requests = attributes[:'edge_miss_requests']
1800
+ end
1801
+
1802
+ if attributes.key?(:'compute_bereq_header_bytes')
1803
+ self.compute_bereq_header_bytes = attributes[:'compute_bereq_header_bytes']
1804
+ end
1805
+
1806
+ if attributes.key?(:'compute_bereq_body_bytes')
1807
+ self.compute_bereq_body_bytes = attributes[:'compute_bereq_body_bytes']
1808
+ end
1809
+
1810
+ if attributes.key?(:'compute_beresp_header_bytes')
1811
+ self.compute_beresp_header_bytes = attributes[:'compute_beresp_header_bytes']
1812
+ end
1813
+
1814
+ if attributes.key?(:'compute_beresp_body_bytes')
1815
+ self.compute_beresp_body_bytes = attributes[:'compute_beresp_body_bytes']
1816
+ end
1817
+
1818
+ if attributes.key?(:'origin_cache_fetches')
1819
+ self.origin_cache_fetches = attributes[:'origin_cache_fetches']
1820
+ end
1821
+
1822
+ if attributes.key?(:'shield_cache_fetches')
1823
+ self.shield_cache_fetches = attributes[:'shield_cache_fetches']
1824
+ end
1825
+
1826
+ if attributes.key?(:'compute_bereqs')
1827
+ self.compute_bereqs = attributes[:'compute_bereqs']
1828
+ end
1829
+
1830
+ if attributes.key?(:'compute_bereq_errors')
1831
+ self.compute_bereq_errors = attributes[:'compute_bereq_errors']
1832
+ end
1833
+
1834
+ if attributes.key?(:'compute_resource_limit_exceeded')
1835
+ self.compute_resource_limit_exceeded = attributes[:'compute_resource_limit_exceeded']
1836
+ end
1837
+
1838
+ if attributes.key?(:'compute_heap_limit_exceeded')
1839
+ self.compute_heap_limit_exceeded = attributes[:'compute_heap_limit_exceeded']
1840
+ end
1841
+
1842
+ if attributes.key?(:'compute_stack_limit_exceeded')
1843
+ self.compute_stack_limit_exceeded = attributes[:'compute_stack_limit_exceeded']
1844
+ end
1845
+
1846
+ if attributes.key?(:'compute_globals_limit_exceeded')
1847
+ self.compute_globals_limit_exceeded = attributes[:'compute_globals_limit_exceeded']
1848
+ end
1849
+
1850
+ if attributes.key?(:'compute_guest_errors')
1851
+ self.compute_guest_errors = attributes[:'compute_guest_errors']
1852
+ end
1853
+
1854
+ if attributes.key?(:'compute_runtime_errors')
1855
+ self.compute_runtime_errors = attributes[:'compute_runtime_errors']
1856
+ end
1857
+
1858
+ if attributes.key?(:'edge_hit_resp_body_bytes')
1859
+ self.edge_hit_resp_body_bytes = attributes[:'edge_hit_resp_body_bytes']
1860
+ end
1861
+
1862
+ if attributes.key?(:'edge_hit_resp_header_bytes')
1863
+ self.edge_hit_resp_header_bytes = attributes[:'edge_hit_resp_header_bytes']
1864
+ end
1865
+
1866
+ if attributes.key?(:'edge_miss_resp_body_bytes')
1867
+ self.edge_miss_resp_body_bytes = attributes[:'edge_miss_resp_body_bytes']
1868
+ end
1869
+
1870
+ if attributes.key?(:'edge_miss_resp_header_bytes')
1871
+ self.edge_miss_resp_header_bytes = attributes[:'edge_miss_resp_header_bytes']
1872
+ end
1873
+
1874
+ if attributes.key?(:'origin_cache_fetch_resp_body_bytes')
1875
+ self.origin_cache_fetch_resp_body_bytes = attributes[:'origin_cache_fetch_resp_body_bytes']
1876
+ end
1877
+
1878
+ if attributes.key?(:'origin_cache_fetch_resp_header_bytes')
1879
+ self.origin_cache_fetch_resp_header_bytes = attributes[:'origin_cache_fetch_resp_header_bytes']
1880
+ end
1881
+
1882
+ if attributes.key?(:'shield_hit_requests')
1883
+ self.shield_hit_requests = attributes[:'shield_hit_requests']
1884
+ end
1885
+
1886
+ if attributes.key?(:'shield_miss_requests')
1887
+ self.shield_miss_requests = attributes[:'shield_miss_requests']
1888
+ end
1889
+
1890
+ if attributes.key?(:'shield_hit_resp_header_bytes')
1891
+ self.shield_hit_resp_header_bytes = attributes[:'shield_hit_resp_header_bytes']
1892
+ end
1893
+
1894
+ if attributes.key?(:'shield_hit_resp_body_bytes')
1895
+ self.shield_hit_resp_body_bytes = attributes[:'shield_hit_resp_body_bytes']
1896
+ end
1897
+
1898
+ if attributes.key?(:'shield_miss_resp_header_bytes')
1899
+ self.shield_miss_resp_header_bytes = attributes[:'shield_miss_resp_header_bytes']
1900
+ end
1901
+
1902
+ if attributes.key?(:'shield_miss_resp_body_bytes')
1903
+ self.shield_miss_resp_body_bytes = attributes[:'shield_miss_resp_body_bytes']
1904
+ end
1905
+
1906
+ if attributes.key?(:'websocket_req_header_bytes')
1907
+ self.websocket_req_header_bytes = attributes[:'websocket_req_header_bytes']
1908
+ end
1909
+
1910
+ if attributes.key?(:'websocket_req_body_bytes')
1911
+ self.websocket_req_body_bytes = attributes[:'websocket_req_body_bytes']
1912
+ end
1913
+
1914
+ if attributes.key?(:'websocket_resp_header_bytes')
1915
+ self.websocket_resp_header_bytes = attributes[:'websocket_resp_header_bytes']
1916
+ end
1917
+
1918
+ if attributes.key?(:'websocket_bereq_header_bytes')
1919
+ self.websocket_bereq_header_bytes = attributes[:'websocket_bereq_header_bytes']
1920
+ end
1921
+
1922
+ if attributes.key?(:'websocket_bereq_body_bytes')
1923
+ self.websocket_bereq_body_bytes = attributes[:'websocket_bereq_body_bytes']
1924
+ end
1925
+
1926
+ if attributes.key?(:'websocket_beresp_header_bytes')
1927
+ self.websocket_beresp_header_bytes = attributes[:'websocket_beresp_header_bytes']
1928
+ end
1929
+
1930
+ if attributes.key?(:'websocket_beresp_body_bytes')
1931
+ self.websocket_beresp_body_bytes = attributes[:'websocket_beresp_body_bytes']
1932
+ end
1933
+
1934
+ if attributes.key?(:'websocket_conn_time_ms')
1935
+ self.websocket_conn_time_ms = attributes[:'websocket_conn_time_ms']
1936
+ end
1937
+
1938
+ if attributes.key?(:'websocket_resp_body_bytes')
1939
+ self.websocket_resp_body_bytes = attributes[:'websocket_resp_body_bytes']
1940
+ end
1941
+
1942
+ if attributes.key?(:'fanout_recv_publishes')
1943
+ self.fanout_recv_publishes = attributes[:'fanout_recv_publishes']
1944
+ end
1945
+
1946
+ if attributes.key?(:'fanout_send_publishes')
1947
+ self.fanout_send_publishes = attributes[:'fanout_send_publishes']
1948
+ end
1949
+
1950
+ if attributes.key?(:'kv_store_class_a_operations')
1951
+ self.kv_store_class_a_operations = attributes[:'kv_store_class_a_operations']
1952
+ end
1953
+
1954
+ if attributes.key?(:'kv_store_class_b_operations')
1955
+ self.kv_store_class_b_operations = attributes[:'kv_store_class_b_operations']
1956
+ end
1957
+
1958
+ if attributes.key?(:'object_store_class_a_operations')
1959
+ self.object_store_class_a_operations = attributes[:'object_store_class_a_operations']
1960
+ end
1961
+
1962
+ if attributes.key?(:'object_store_class_b_operations')
1963
+ self.object_store_class_b_operations = attributes[:'object_store_class_b_operations']
1964
+ end
1965
+
1966
+ if attributes.key?(:'fanout_req_header_bytes')
1967
+ self.fanout_req_header_bytes = attributes[:'fanout_req_header_bytes']
1968
+ end
1969
+
1970
+ if attributes.key?(:'fanout_req_body_bytes')
1971
+ self.fanout_req_body_bytes = attributes[:'fanout_req_body_bytes']
1972
+ end
1973
+
1974
+ if attributes.key?(:'fanout_resp_header_bytes')
1975
+ self.fanout_resp_header_bytes = attributes[:'fanout_resp_header_bytes']
1976
+ end
1977
+
1978
+ if attributes.key?(:'fanout_resp_body_bytes')
1979
+ self.fanout_resp_body_bytes = attributes[:'fanout_resp_body_bytes']
1980
+ end
1981
+
1982
+ if attributes.key?(:'fanout_bereq_header_bytes')
1983
+ self.fanout_bereq_header_bytes = attributes[:'fanout_bereq_header_bytes']
1984
+ end
1985
+
1986
+ if attributes.key?(:'fanout_bereq_body_bytes')
1987
+ self.fanout_bereq_body_bytes = attributes[:'fanout_bereq_body_bytes']
1988
+ end
1989
+
1990
+ if attributes.key?(:'fanout_beresp_header_bytes')
1991
+ self.fanout_beresp_header_bytes = attributes[:'fanout_beresp_header_bytes']
1992
+ end
1993
+
1994
+ if attributes.key?(:'fanout_beresp_body_bytes')
1995
+ self.fanout_beresp_body_bytes = attributes[:'fanout_beresp_body_bytes']
1996
+ end
1997
+
1998
+ if attributes.key?(:'fanout_conn_time_ms')
1999
+ self.fanout_conn_time_ms = attributes[:'fanout_conn_time_ms']
2000
+ end
2001
+
2002
+ if attributes.key?(:'ddos_action_limit_streams_connections')
2003
+ self.ddos_action_limit_streams_connections = attributes[:'ddos_action_limit_streams_connections']
2004
+ end
2005
+
2006
+ if attributes.key?(:'ddos_action_limit_streams_requests')
2007
+ self.ddos_action_limit_streams_requests = attributes[:'ddos_action_limit_streams_requests']
2008
+ end
2009
+
2010
+ if attributes.key?(:'ddos_action_tarpit_accept')
2011
+ self.ddos_action_tarpit_accept = attributes[:'ddos_action_tarpit_accept']
2012
+ end
2013
+
2014
+ if attributes.key?(:'ddos_action_tarpit')
2015
+ self.ddos_action_tarpit = attributes[:'ddos_action_tarpit']
2016
+ end
2017
+
2018
+ if attributes.key?(:'ddos_action_close')
2019
+ self.ddos_action_close = attributes[:'ddos_action_close']
2020
+ end
2021
+
2022
+ if attributes.key?(:'ddos_action_blackhole')
2023
+ self.ddos_action_blackhole = attributes[:'ddos_action_blackhole']
2024
+ end
2025
+ end
2026
+
2027
+ # Show invalid properties with the reasons. Usually used together with valid?
2028
+ # @return Array for valid properties with the reasons
2029
+ def list_invalid_properties
2030
+ invalid_properties = Array.new
2031
+ invalid_properties
2032
+ end
2033
+
2034
+ # Check to see if the all the properties in the model are valid
2035
+ # @return true if the model is valid
2036
+ def valid?
2037
+ true
2038
+ end
2039
+
2040
+ # Checks equality by comparing each attribute.
2041
+ # @param [Object] Object to be compared
2042
+ def ==(o)
2043
+ return true if self.equal?(o)
2044
+ self.class == o.class &&
2045
+ requests == o.requests &&
2046
+ logging == o.logging &&
2047
+ log == o.log &&
2048
+ resp_header_bytes == o.resp_header_bytes &&
2049
+ header_size == o.header_size &&
2050
+ resp_body_bytes == o.resp_body_bytes &&
2051
+ body_size == o.body_size &&
2052
+ hits == o.hits &&
2053
+ miss == o.miss &&
2054
+ pass == o.pass &&
2055
+ synth == o.synth &&
2056
+ errors == o.errors &&
2057
+ hits_time == o.hits_time &&
2058
+ miss_time == o.miss_time &&
2059
+ miss_histogram == o.miss_histogram &&
2060
+ compute_requests == o.compute_requests &&
2061
+ compute_execution_time_ms == o.compute_execution_time_ms &&
2062
+ compute_ram_used == o.compute_ram_used &&
2063
+ compute_request_time_ms == o.compute_request_time_ms &&
2064
+ compute_request_time_billed_ms == o.compute_request_time_billed_ms &&
2065
+ shield == o.shield &&
2066
+ ipv6 == o.ipv6 &&
2067
+ imgopto == o.imgopto &&
2068
+ imgopto_shield == o.imgopto_shield &&
2069
+ imgopto_transforms == o.imgopto_transforms &&
2070
+ otfp == o.otfp &&
2071
+ otfp_shield == o.otfp_shield &&
2072
+ otfp_manifests == o.otfp_manifests &&
2073
+ video == o.video &&
2074
+ pci == o.pci &&
2075
+ http2 == o.http2 &&
2076
+ http3 == o.http3 &&
2077
+ restarts == o.restarts &&
2078
+ req_header_bytes == o.req_header_bytes &&
2079
+ req_body_bytes == o.req_body_bytes &&
2080
+ bereq_header_bytes == o.bereq_header_bytes &&
2081
+ bereq_body_bytes == o.bereq_body_bytes &&
2082
+ waf_blocked == o.waf_blocked &&
2083
+ waf_logged == o.waf_logged &&
2084
+ waf_passed == o.waf_passed &&
2085
+ attack_req_header_bytes == o.attack_req_header_bytes &&
2086
+ attack_req_body_bytes == o.attack_req_body_bytes &&
2087
+ attack_resp_synth_bytes == o.attack_resp_synth_bytes &&
2088
+ attack_logged_req_header_bytes == o.attack_logged_req_header_bytes &&
2089
+ attack_logged_req_body_bytes == o.attack_logged_req_body_bytes &&
2090
+ attack_blocked_req_header_bytes == o.attack_blocked_req_header_bytes &&
2091
+ attack_blocked_req_body_bytes == o.attack_blocked_req_body_bytes &&
2092
+ attack_passed_req_header_bytes == o.attack_passed_req_header_bytes &&
2093
+ attack_passed_req_body_bytes == o.attack_passed_req_body_bytes &&
2094
+ shield_resp_header_bytes == o.shield_resp_header_bytes &&
2095
+ shield_resp_body_bytes == o.shield_resp_body_bytes &&
2096
+ otfp_resp_header_bytes == o.otfp_resp_header_bytes &&
2097
+ otfp_resp_body_bytes == o.otfp_resp_body_bytes &&
2098
+ otfp_shield_resp_header_bytes == o.otfp_shield_resp_header_bytes &&
2099
+ otfp_shield_resp_body_bytes == o.otfp_shield_resp_body_bytes &&
2100
+ otfp_shield_time == o.otfp_shield_time &&
2101
+ otfp_deliver_time == o.otfp_deliver_time &&
2102
+ imgopto_resp_header_bytes == o.imgopto_resp_header_bytes &&
2103
+ imgopto_resp_body_bytes == o.imgopto_resp_body_bytes &&
2104
+ imgopto_shield_resp_header_bytes == o.imgopto_shield_resp_header_bytes &&
2105
+ imgopto_shield_resp_body_bytes == o.imgopto_shield_resp_body_bytes &&
2106
+ status_1xx == o.status_1xx &&
2107
+ status_2xx == o.status_2xx &&
2108
+ status_3xx == o.status_3xx &&
2109
+ status_4xx == o.status_4xx &&
2110
+ status_5xx == o.status_5xx &&
2111
+ status_200 == o.status_200 &&
2112
+ status_204 == o.status_204 &&
2113
+ status_206 == o.status_206 &&
2114
+ status_301 == o.status_301 &&
2115
+ status_302 == o.status_302 &&
2116
+ status_304 == o.status_304 &&
2117
+ status_400 == o.status_400 &&
2118
+ status_401 == o.status_401 &&
2119
+ status_403 == o.status_403 &&
2120
+ status_404 == o.status_404 &&
2121
+ status_406 == o.status_406 &&
2122
+ status_416 == o.status_416 &&
2123
+ status_429 == o.status_429 &&
2124
+ status_500 == o.status_500 &&
2125
+ status_501 == o.status_501 &&
2126
+ status_502 == o.status_502 &&
2127
+ status_503 == o.status_503 &&
2128
+ status_504 == o.status_504 &&
2129
+ status_505 == o.status_505 &&
2130
+ uncacheable == o.uncacheable &&
2131
+ pass_time == o.pass_time &&
2132
+ tls == o.tls &&
2133
+ tls_v10 == o.tls_v10 &&
2134
+ tls_v11 == o.tls_v11 &&
2135
+ tls_v12 == o.tls_v12 &&
2136
+ tls_v13 == o.tls_v13 &&
2137
+ object_size_1k == o.object_size_1k &&
2138
+ object_size_10k == o.object_size_10k &&
2139
+ object_size_100k == o.object_size_100k &&
2140
+ object_size_1m == o.object_size_1m &&
2141
+ object_size_10m == o.object_size_10m &&
2142
+ object_size_100m == o.object_size_100m &&
2143
+ object_size_1g == o.object_size_1g &&
2144
+ object_size_other == o.object_size_other &&
2145
+ recv_sub_time == o.recv_sub_time &&
2146
+ recv_sub_count == o.recv_sub_count &&
2147
+ hash_sub_time == o.hash_sub_time &&
2148
+ hash_sub_count == o.hash_sub_count &&
2149
+ miss_sub_time == o.miss_sub_time &&
2150
+ miss_sub_count == o.miss_sub_count &&
2151
+ fetch_sub_time == o.fetch_sub_time &&
2152
+ fetch_sub_count == o.fetch_sub_count &&
2153
+ pass_sub_time == o.pass_sub_time &&
2154
+ pass_sub_count == o.pass_sub_count &&
2155
+ pipe_sub_time == o.pipe_sub_time &&
2156
+ pipe_sub_count == o.pipe_sub_count &&
2157
+ deliver_sub_time == o.deliver_sub_time &&
2158
+ deliver_sub_count == o.deliver_sub_count &&
2159
+ error_sub_time == o.error_sub_time &&
2160
+ error_sub_count == o.error_sub_count &&
2161
+ hit_sub_time == o.hit_sub_time &&
2162
+ hit_sub_count == o.hit_sub_count &&
2163
+ prehash_sub_time == o.prehash_sub_time &&
2164
+ prehash_sub_count == o.prehash_sub_count &&
2165
+ predeliver_sub_time == o.predeliver_sub_time &&
2166
+ predeliver_sub_count == o.predeliver_sub_count &&
2167
+ hit_resp_body_bytes == o.hit_resp_body_bytes &&
2168
+ miss_resp_body_bytes == o.miss_resp_body_bytes &&
2169
+ pass_resp_body_bytes == o.pass_resp_body_bytes &&
2170
+ compute_req_header_bytes == o.compute_req_header_bytes &&
2171
+ compute_req_body_bytes == o.compute_req_body_bytes &&
2172
+ compute_resp_header_bytes == o.compute_resp_header_bytes &&
2173
+ compute_resp_body_bytes == o.compute_resp_body_bytes &&
2174
+ imgvideo == o.imgvideo &&
2175
+ imgvideo_frames == o.imgvideo_frames &&
2176
+ imgvideo_resp_header_bytes == o.imgvideo_resp_header_bytes &&
2177
+ imgvideo_resp_body_bytes == o.imgvideo_resp_body_bytes &&
2178
+ imgvideo_shield == o.imgvideo_shield &&
2179
+ imgvideo_shield_frames == o.imgvideo_shield_frames &&
2180
+ imgvideo_shield_resp_header_bytes == o.imgvideo_shield_resp_header_bytes &&
2181
+ imgvideo_shield_resp_body_bytes == o.imgvideo_shield_resp_body_bytes &&
2182
+ log_bytes == o.log_bytes &&
2183
+ edge_requests == o.edge_requests &&
2184
+ edge_resp_header_bytes == o.edge_resp_header_bytes &&
2185
+ edge_resp_body_bytes == o.edge_resp_body_bytes &&
2186
+ origin_revalidations == o.origin_revalidations &&
2187
+ origin_fetches == o.origin_fetches &&
2188
+ origin_fetch_header_bytes == o.origin_fetch_header_bytes &&
2189
+ origin_fetch_body_bytes == o.origin_fetch_body_bytes &&
2190
+ origin_fetch_resp_header_bytes == o.origin_fetch_resp_header_bytes &&
2191
+ origin_fetch_resp_body_bytes == o.origin_fetch_resp_body_bytes &&
2192
+ shield_revalidations == o.shield_revalidations &&
2193
+ shield_fetches == o.shield_fetches &&
2194
+ shield_fetch_header_bytes == o.shield_fetch_header_bytes &&
2195
+ shield_fetch_body_bytes == o.shield_fetch_body_bytes &&
2196
+ shield_fetch_resp_header_bytes == o.shield_fetch_resp_header_bytes &&
2197
+ shield_fetch_resp_body_bytes == o.shield_fetch_resp_body_bytes &&
2198
+ segblock_origin_fetches == o.segblock_origin_fetches &&
2199
+ segblock_shield_fetches == o.segblock_shield_fetches &&
2200
+ compute_resp_status_1xx == o.compute_resp_status_1xx &&
2201
+ compute_resp_status_2xx == o.compute_resp_status_2xx &&
2202
+ compute_resp_status_3xx == o.compute_resp_status_3xx &&
2203
+ compute_resp_status_4xx == o.compute_resp_status_4xx &&
2204
+ compute_resp_status_5xx == o.compute_resp_status_5xx &&
2205
+ edge_hit_requests == o.edge_hit_requests &&
2206
+ edge_miss_requests == o.edge_miss_requests &&
2207
+ compute_bereq_header_bytes == o.compute_bereq_header_bytes &&
2208
+ compute_bereq_body_bytes == o.compute_bereq_body_bytes &&
2209
+ compute_beresp_header_bytes == o.compute_beresp_header_bytes &&
2210
+ compute_beresp_body_bytes == o.compute_beresp_body_bytes &&
2211
+ origin_cache_fetches == o.origin_cache_fetches &&
2212
+ shield_cache_fetches == o.shield_cache_fetches &&
2213
+ compute_bereqs == o.compute_bereqs &&
2214
+ compute_bereq_errors == o.compute_bereq_errors &&
2215
+ compute_resource_limit_exceeded == o.compute_resource_limit_exceeded &&
2216
+ compute_heap_limit_exceeded == o.compute_heap_limit_exceeded &&
2217
+ compute_stack_limit_exceeded == o.compute_stack_limit_exceeded &&
2218
+ compute_globals_limit_exceeded == o.compute_globals_limit_exceeded &&
2219
+ compute_guest_errors == o.compute_guest_errors &&
2220
+ compute_runtime_errors == o.compute_runtime_errors &&
2221
+ edge_hit_resp_body_bytes == o.edge_hit_resp_body_bytes &&
2222
+ edge_hit_resp_header_bytes == o.edge_hit_resp_header_bytes &&
2223
+ edge_miss_resp_body_bytes == o.edge_miss_resp_body_bytes &&
2224
+ edge_miss_resp_header_bytes == o.edge_miss_resp_header_bytes &&
2225
+ origin_cache_fetch_resp_body_bytes == o.origin_cache_fetch_resp_body_bytes &&
2226
+ origin_cache_fetch_resp_header_bytes == o.origin_cache_fetch_resp_header_bytes &&
2227
+ shield_hit_requests == o.shield_hit_requests &&
2228
+ shield_miss_requests == o.shield_miss_requests &&
2229
+ shield_hit_resp_header_bytes == o.shield_hit_resp_header_bytes &&
2230
+ shield_hit_resp_body_bytes == o.shield_hit_resp_body_bytes &&
2231
+ shield_miss_resp_header_bytes == o.shield_miss_resp_header_bytes &&
2232
+ shield_miss_resp_body_bytes == o.shield_miss_resp_body_bytes &&
2233
+ websocket_req_header_bytes == o.websocket_req_header_bytes &&
2234
+ websocket_req_body_bytes == o.websocket_req_body_bytes &&
2235
+ websocket_resp_header_bytes == o.websocket_resp_header_bytes &&
2236
+ websocket_bereq_header_bytes == o.websocket_bereq_header_bytes &&
2237
+ websocket_bereq_body_bytes == o.websocket_bereq_body_bytes &&
2238
+ websocket_beresp_header_bytes == o.websocket_beresp_header_bytes &&
2239
+ websocket_beresp_body_bytes == o.websocket_beresp_body_bytes &&
2240
+ websocket_conn_time_ms == o.websocket_conn_time_ms &&
2241
+ websocket_resp_body_bytes == o.websocket_resp_body_bytes &&
2242
+ fanout_recv_publishes == o.fanout_recv_publishes &&
2243
+ fanout_send_publishes == o.fanout_send_publishes &&
2244
+ kv_store_class_a_operations == o.kv_store_class_a_operations &&
2245
+ kv_store_class_b_operations == o.kv_store_class_b_operations &&
2246
+ object_store_class_a_operations == o.object_store_class_a_operations &&
2247
+ object_store_class_b_operations == o.object_store_class_b_operations &&
2248
+ fanout_req_header_bytes == o.fanout_req_header_bytes &&
2249
+ fanout_req_body_bytes == o.fanout_req_body_bytes &&
2250
+ fanout_resp_header_bytes == o.fanout_resp_header_bytes &&
2251
+ fanout_resp_body_bytes == o.fanout_resp_body_bytes &&
2252
+ fanout_bereq_header_bytes == o.fanout_bereq_header_bytes &&
2253
+ fanout_bereq_body_bytes == o.fanout_bereq_body_bytes &&
2254
+ fanout_beresp_header_bytes == o.fanout_beresp_header_bytes &&
2255
+ fanout_beresp_body_bytes == o.fanout_beresp_body_bytes &&
2256
+ fanout_conn_time_ms == o.fanout_conn_time_ms &&
2257
+ ddos_action_limit_streams_connections == o.ddos_action_limit_streams_connections &&
2258
+ ddos_action_limit_streams_requests == o.ddos_action_limit_streams_requests &&
2259
+ ddos_action_tarpit_accept == o.ddos_action_tarpit_accept &&
2260
+ ddos_action_tarpit == o.ddos_action_tarpit &&
2261
+ ddos_action_close == o.ddos_action_close &&
2262
+ ddos_action_blackhole == o.ddos_action_blackhole
2263
+ end
2264
+
2265
+ # @see the `==` method
2266
+ # @param [Object] Object to be compared
2267
+ def eql?(o)
2268
+ self == o
2269
+ end
2270
+
2271
+ # Calculates hash code according to all attributes.
2272
+ # @return [Integer] Hash code
2273
+ def hash
2274
+ [requests, logging, log, resp_header_bytes, header_size, resp_body_bytes, body_size, hits, miss, pass, synth, errors, hits_time, miss_time, miss_histogram, compute_requests, compute_execution_time_ms, compute_ram_used, compute_request_time_ms, compute_request_time_billed_ms, shield, ipv6, imgopto, imgopto_shield, imgopto_transforms, otfp, otfp_shield, otfp_manifests, video, pci, http2, http3, restarts, req_header_bytes, req_body_bytes, bereq_header_bytes, bereq_body_bytes, waf_blocked, waf_logged, waf_passed, attack_req_header_bytes, attack_req_body_bytes, attack_resp_synth_bytes, attack_logged_req_header_bytes, attack_logged_req_body_bytes, attack_blocked_req_header_bytes, attack_blocked_req_body_bytes, attack_passed_req_header_bytes, attack_passed_req_body_bytes, shield_resp_header_bytes, shield_resp_body_bytes, otfp_resp_header_bytes, otfp_resp_body_bytes, otfp_shield_resp_header_bytes, otfp_shield_resp_body_bytes, otfp_shield_time, otfp_deliver_time, imgopto_resp_header_bytes, imgopto_resp_body_bytes, imgopto_shield_resp_header_bytes, imgopto_shield_resp_body_bytes, status_1xx, status_2xx, status_3xx, status_4xx, status_5xx, status_200, status_204, status_206, status_301, status_302, status_304, status_400, status_401, status_403, status_404, status_406, status_416, status_429, status_500, status_501, status_502, status_503, status_504, status_505, uncacheable, pass_time, tls, tls_v10, tls_v11, tls_v12, tls_v13, object_size_1k, object_size_10k, object_size_100k, object_size_1m, object_size_10m, object_size_100m, object_size_1g, object_size_other, recv_sub_time, recv_sub_count, hash_sub_time, hash_sub_count, miss_sub_time, miss_sub_count, fetch_sub_time, fetch_sub_count, pass_sub_time, pass_sub_count, pipe_sub_time, pipe_sub_count, deliver_sub_time, deliver_sub_count, error_sub_time, error_sub_count, hit_sub_time, hit_sub_count, prehash_sub_time, prehash_sub_count, predeliver_sub_time, predeliver_sub_count, hit_resp_body_bytes, miss_resp_body_bytes, pass_resp_body_bytes, compute_req_header_bytes, compute_req_body_bytes, compute_resp_header_bytes, compute_resp_body_bytes, imgvideo, imgvideo_frames, imgvideo_resp_header_bytes, imgvideo_resp_body_bytes, imgvideo_shield, imgvideo_shield_frames, imgvideo_shield_resp_header_bytes, imgvideo_shield_resp_body_bytes, log_bytes, edge_requests, edge_resp_header_bytes, edge_resp_body_bytes, origin_revalidations, origin_fetches, origin_fetch_header_bytes, origin_fetch_body_bytes, origin_fetch_resp_header_bytes, origin_fetch_resp_body_bytes, shield_revalidations, shield_fetches, shield_fetch_header_bytes, shield_fetch_body_bytes, shield_fetch_resp_header_bytes, shield_fetch_resp_body_bytes, segblock_origin_fetches, segblock_shield_fetches, compute_resp_status_1xx, compute_resp_status_2xx, compute_resp_status_3xx, compute_resp_status_4xx, compute_resp_status_5xx, edge_hit_requests, edge_miss_requests, compute_bereq_header_bytes, compute_bereq_body_bytes, compute_beresp_header_bytes, compute_beresp_body_bytes, origin_cache_fetches, shield_cache_fetches, compute_bereqs, compute_bereq_errors, compute_resource_limit_exceeded, compute_heap_limit_exceeded, compute_stack_limit_exceeded, compute_globals_limit_exceeded, compute_guest_errors, compute_runtime_errors, edge_hit_resp_body_bytes, edge_hit_resp_header_bytes, edge_miss_resp_body_bytes, edge_miss_resp_header_bytes, origin_cache_fetch_resp_body_bytes, origin_cache_fetch_resp_header_bytes, shield_hit_requests, shield_miss_requests, shield_hit_resp_header_bytes, shield_hit_resp_body_bytes, shield_miss_resp_header_bytes, shield_miss_resp_body_bytes, websocket_req_header_bytes, websocket_req_body_bytes, websocket_resp_header_bytes, websocket_bereq_header_bytes, websocket_bereq_body_bytes, websocket_beresp_header_bytes, websocket_beresp_body_bytes, websocket_conn_time_ms, websocket_resp_body_bytes, fanout_recv_publishes, fanout_send_publishes, kv_store_class_a_operations, kv_store_class_b_operations, object_store_class_a_operations, object_store_class_b_operations, fanout_req_header_bytes, fanout_req_body_bytes, fanout_resp_header_bytes, fanout_resp_body_bytes, fanout_bereq_header_bytes, fanout_bereq_body_bytes, fanout_beresp_header_bytes, fanout_beresp_body_bytes, fanout_conn_time_ms, ddos_action_limit_streams_connections, ddos_action_limit_streams_requests, ddos_action_tarpit_accept, ddos_action_tarpit, ddos_action_close, ddos_action_blackhole].hash
2275
+ end
2276
+
2277
+ # Builds the object from hash
2278
+ # @param [Hash] attributes Model attributes in the form of hash
2279
+ # @return [Object] Returns the model itself
2280
+ def self.build_from_hash(attributes)
2281
+ new.build_from_hash(attributes)
2282
+ end
2283
+
2284
+ # Builds the object from hash
2285
+ # @param [Hash] attributes Model attributes in the form of hash
2286
+ # @return [Object] Returns the model itself
2287
+ def build_from_hash(attributes)
2288
+ return nil unless attributes.is_a?(Hash)
2289
+ self.class.fastly_types.each_pair do |key, type|
2290
+ if attributes[self.class.attribute_map[key]].nil? && self.class.fastly_nullable.include?(key)
2291
+ self.send("#{key}=", nil)
2292
+ elsif type =~ /\AArray<(.*)>/i
2293
+ # check to ensure the input is an array given that the attribute
2294
+ # is documented as an array but the input is not
2295
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
2296
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
2297
+ end
2298
+ elsif !attributes[self.class.attribute_map[key]].nil?
2299
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
2300
+ end
2301
+ end
2302
+
2303
+ self
2304
+ end
2305
+
2306
+ # Deserializes the data based on type
2307
+ # @param string type Data type
2308
+ # @param string value Value to be deserialized
2309
+ # @return [Object] Deserialized data
2310
+ def _deserialize(type, value)
2311
+ case type.to_sym
2312
+ when :Time
2313
+ Time.parse(value)
2314
+ when :Date
2315
+ Date.parse(value)
2316
+ when :String
2317
+ value.to_s
2318
+ when :Integer
2319
+ value.to_i
2320
+ when :Float
2321
+ value.to_f
2322
+ when :Boolean
2323
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
2324
+ true
2325
+ else
2326
+ false
2327
+ end
2328
+ when :Object
2329
+ # generic object (usually a Hash), return directly
2330
+ value
2331
+ when /\AArray<(?<inner_type>.+)>\z/
2332
+ inner_type = Regexp.last_match[:inner_type]
2333
+ value.map { |v| _deserialize(inner_type, v) }
2334
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
2335
+ k_type = Regexp.last_match[:k_type]
2336
+ v_type = Regexp.last_match[:v_type]
2337
+ {}.tap do |hash|
2338
+ value.each do |k, v|
2339
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
2340
+ end
2341
+ end
2342
+ else # model
2343
+ # models (e.g. Pet) or oneOf
2344
+ klass = Fastly.const_get(type)
2345
+ klass.respond_to?(:fastly_one_of) ? klass.build(value) : klass.build_from_hash(value)
2346
+ end
2347
+ end
2348
+
2349
+ # Returns the string representation of the object
2350
+ # @return [String] String presentation of the object
2351
+ def to_s
2352
+ to_hash.to_s
2353
+ end
2354
+
2355
+ # to_body is an alias to to_hash (backward compatibility)
2356
+ # @return [Hash] Returns the object in the form of hash
2357
+ def to_body
2358
+ to_hash
2359
+ end
2360
+
2361
+ # Returns the object in the form of hash
2362
+ # @return [Hash] Returns the object in the form of hash
2363
+ def to_hash
2364
+ hash = {}
2365
+ self.class.attribute_map.each_pair do |attr, param|
2366
+ value = self.send(attr)
2367
+ if value.nil?
2368
+ is_nullable = self.class.fastly_nullable.include?(attr)
2369
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
2370
+ end
2371
+
2372
+ hash[param] = _to_hash(value)
2373
+ end
2374
+ hash
2375
+ end
2376
+
2377
+ # Outputs non-array value in the form of hash
2378
+ # For object, use to_hash. Otherwise, just return the value
2379
+ # @param [Object] value Any valid value
2380
+ # @return [Hash] Returns the value in the form of hash
2381
+ def _to_hash(value)
2382
+ if value.is_a?(Array)
2383
+ value.compact.map { |v| _to_hash(v) }
2384
+ elsif value.is_a?(Hash)
2385
+ {}.tap do |hash|
2386
+ value.each { |k, v| hash[k] = _to_hash(v) }
2387
+ end
2388
+ elsif value.respond_to? :to_hash
2389
+ value.to_hash
2390
+ else
2391
+ value
2392
+ end
2393
+ end
2394
+
2395
+ end
2396
+
2397
+ end