fastly 16.1.0 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +77 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +102 -58
  5. data/docs/Action.md +11 -0
  6. data/docs/ActionType.md +9 -0
  7. data/docs/AgentKey.md +14 -0
  8. data/docs/AgentKeyMeta.md +10 -0
  9. data/docs/Backend.md +3 -1
  10. data/docs/BackendApi.md +12 -4
  11. data/docs/BackendResponse.md +3 -1
  12. data/docs/BotManagementRequestUpdateConfiguration.md +10 -0
  13. data/docs/BotManagementResponseConfiguration.md +10 -0
  14. data/docs/BotManagementResponseConfigurationConfiguration.md +10 -0
  15. data/docs/BotManagementResponseConfigure.md +13 -0
  16. data/docs/ClientSideProtectionApi.md +821 -0
  17. data/docs/ConditionOperator.md +9 -0
  18. data/docs/ConditionType.md +9 -0
  19. data/docs/DdosProtectionApi.md +4 -4
  20. data/docs/Directive.md +11 -0
  21. data/docs/DmDomainsApi.md +2 -2
  22. data/docs/DmRoutingConfigsApi.md +912 -0
  23. data/docs/DomainInspectorMeasurements.md +6 -0
  24. data/docs/DomainOwnershipsApi.md +2 -2
  25. data/docs/DomainResearchApi.md +2 -2
  26. data/docs/DraftDiff.md +12 -0
  27. data/docs/DraftUpdate.md +10 -0
  28. data/docs/ErrorResponse.md +13 -0
  29. data/docs/ErrorResponseErrors.md +12 -0
  30. data/docs/EventsResponse.md +1 -1
  31. data/docs/HeaderEvent.md +14 -0
  32. data/docs/InitialVersion.md +12 -0
  33. data/docs/InitialVersionPath.md +11 -0
  34. data/docs/InlineResponse20010.md +2 -2
  35. data/docs/InlineResponse20011.md +2 -2
  36. data/docs/InlineResponse20012.md +1 -1
  37. data/docs/InlineResponse20013.md +2 -2
  38. data/docs/InlineResponse20014.md +2 -1
  39. data/docs/InlineResponse20015.md +10 -0
  40. data/docs/InlineResponse20016.md +10 -0
  41. data/docs/InlineResponse20017.md +11 -0
  42. data/docs/InlineResponse20018.md +11 -0
  43. data/docs/InlineResponse20019.md +11 -0
  44. data/docs/InlineResponse20020.md +11 -0
  45. data/docs/InlineResponse20021.md +11 -0
  46. data/docs/InlineResponse20022.md +10 -0
  47. data/docs/InlineResponse2005.md +2 -2
  48. data/docs/InlineResponse2006.md +2 -2
  49. data/docs/InlineResponse2007.md +2 -2
  50. data/docs/InlineResponse2008.md +2 -1
  51. data/docs/InlineResponse2009.md +2 -1
  52. data/docs/InvitationsResponse.md +1 -1
  53. data/docs/KvStoreApi.md +2 -2
  54. data/docs/KvStoreItemApi.md +2 -2
  55. data/docs/KvStoreResponseBodyEnable.md +12 -0
  56. data/docs/KvStoreResponseCustomer.md +10 -0
  57. data/docs/KvStoreResponseLinks.md +10 -0
  58. data/docs/KvStoreResponseLinksLinks.md +10 -0
  59. data/docs/KvStoreResponseProduct.md +10 -0
  60. data/docs/KvStoreResponseProductProduct.md +11 -0
  61. data/docs/LogError.md +15 -0
  62. data/docs/LogErrorBatch.md +11 -0
  63. data/docs/LoggingAzureblobApi.md +4 -4
  64. data/docs/LoggingAzureblobResponse.md +1 -1
  65. data/docs/LoggingCloudfilesApi.md +4 -4
  66. data/docs/LoggingCloudfilesResponse.md +1 -1
  67. data/docs/LoggingDigitaloceanApi.md +4 -4
  68. data/docs/LoggingDigitaloceanResponse.md +1 -1
  69. data/docs/LoggingEndpointErrorsApi.md +61 -0
  70. data/docs/LoggingFtpApi.md +4 -4
  71. data/docs/LoggingFtpResponse.md +1 -1
  72. data/docs/LoggingGcsApi.md +4 -4
  73. data/docs/LoggingGcsResponse.md +1 -1
  74. data/docs/LoggingGenericCommon.md +1 -1
  75. data/docs/LoggingGenericCommonResponse.md +1 -1
  76. data/docs/LoggingGenericCommonResponseAllOf.md +1 -1
  77. data/docs/LoggingHttpsAdditional.md +1 -1
  78. data/docs/LoggingHttpsApi.md +4 -4
  79. data/docs/LoggingHttpsResponse.md +1 -1
  80. data/docs/LoggingOpenstackApi.md +4 -4
  81. data/docs/LoggingOpenstackResponse.md +1 -1
  82. data/docs/LoggingS3Api.md +4 -4
  83. data/docs/LoggingS3Response.md +1 -1
  84. data/docs/LoggingSftpApi.md +4 -4
  85. data/docs/LoggingSftpResponse.md +1 -1
  86. data/docs/LoggingSumologicAdditional.md +1 -1
  87. data/docs/LoggingSumologicApi.md +4 -4
  88. data/docs/LoggingSumologicResponse.md +1 -1
  89. data/docs/LoggingSyslogAdditional.md +1 -1
  90. data/docs/LoggingSyslogApi.md +4 -4
  91. data/docs/LoggingSyslogResponse.md +1 -1
  92. data/docs/MutualAuthenticationsResponse.md +1 -1
  93. data/docs/NgwafAgentKeysApi.md +55 -0
  94. data/docs/NgwafSimulateApi.md +61 -0
  95. data/docs/Notification.md +11 -0
  96. data/docs/NotificationConfig.md +10 -0
  97. data/docs/Page.md +17 -0
  98. data/docs/PageCreate.md +14 -0
  99. data/docs/PageUpdate.md +14 -0
  100. data/docs/Pagination.md +1 -1
  101. data/docs/PaginationMeta.md +4 -4
  102. data/docs/PaginationMeta1.md +13 -0
  103. data/docs/PathChange.md +15 -0
  104. data/docs/PathCreate.md +10 -0
  105. data/docs/PathResponse.md +14 -0
  106. data/docs/PathResponseAllOf.md +12 -0
  107. data/docs/PathUpdate.md +10 -0
  108. data/docs/PathWithRules.md +11 -0
  109. data/docs/PathsResponse.md +11 -0
  110. data/docs/Policy.md +17 -0
  111. data/docs/PolicyCreate.md +13 -0
  112. data/docs/PolicyUpdate.md +13 -0
  113. data/docs/Position.md +11 -0
  114. data/docs/ProductBotManagementApi.md +78 -0
  115. data/docs/ProductKvStoreApi.md +115 -0
  116. data/docs/RealtimeEntry.md +1 -1
  117. data/docs/RealtimeEntryAggregated.md +36 -3
  118. data/docs/RealtimeEntryDatacenter.md +347 -0
  119. data/docs/RealtimeMeasurements.md +36 -3
  120. data/docs/Report.md +15 -0
  121. data/docs/RequestBodyForCreate.md +1 -0
  122. data/docs/RequestBodyForUpdate.md +1 -0
  123. data/docs/Results.md +36 -3
  124. data/docs/RoutingConfig.md +11 -0
  125. data/docs/RoutingConfigCondition.md +13 -0
  126. data/docs/RoutingConfigResponse.md +16 -0
  127. data/docs/RoutingConfigResponseAllOf.md +14 -0
  128. data/docs/RoutingConfigState.md +9 -0
  129. data/docs/RoutingConfigVersionResponse.md +13 -0
  130. data/docs/RoutingConfigsResponse.md +11 -0
  131. data/docs/RuleChange.md +12 -0
  132. data/docs/RuleCreate.md +12 -0
  133. data/docs/RuleResponse.md +15 -0
  134. data/docs/RuleResponseAllOf.md +13 -0
  135. data/docs/RuleUpdate.md +12 -0
  136. data/docs/RulesResponse.md +11 -0
  137. data/docs/Script.md +20 -0
  138. data/docs/ScriptUpdate.md +12 -0
  139. data/docs/SecretStoreApi.md +2 -2
  140. data/docs/SecretStoreItemApi.md +2 -2
  141. data/docs/SecurityHeader.md +12 -0
  142. data/docs/ServiceAuthorizationsApi.md +2 -2
  143. data/docs/ServiceAuthorizationsResponse.md +1 -1
  144. data/docs/SuccessfulResponseAsObject.md +1 -0
  145. data/docs/SuccessfulResponseAsObjectAllOf.md +1 -0
  146. data/docs/TlsActivationsResponse.md +1 -1
  147. data/docs/TlsBulkCertificatesResponse.md +1 -1
  148. data/docs/TlsCertificatesResponse.md +1 -1
  149. data/docs/TlsConfigurationsResponse.md +1 -1
  150. data/docs/TlsDomainsResponse.md +1 -1
  151. data/docs/TlsPrivateKeysResponse.md +1 -1
  152. data/docs/TlsSubscriptionsResponse.md +1 -1
  153. data/docs/Values.md +6 -0
  154. data/docs/VersionsResponse.md +11 -0
  155. data/docs/WafSimulateRequest.md +11 -0
  156. data/docs/WafSimulateResponse.md +11 -0
  157. data/docs/WafSimulateSignal.md +16 -0
  158. data/docs/Website.md +14 -0
  159. data/docs/WebsiteCreate.md +10 -0
  160. data/docs/WebsiteUpdate.md +10 -0
  161. data/lib/fastly/api/backend_api.rb +16 -4
  162. data/lib/fastly/api/client_side_protection_api.rb +1465 -0
  163. data/lib/fastly/api/ddos_protection_api.rb +6 -6
  164. data/lib/fastly/api/dm_domains_api.rb +3 -3
  165. data/lib/fastly/api/dm_routing_configs_api.rb +1596 -0
  166. data/lib/fastly/api/domain_ownerships_api.rb +3 -3
  167. data/lib/fastly/api/domain_research_api.rb +3 -3
  168. data/lib/fastly/api/kv_store_api.rb +3 -3
  169. data/lib/fastly/api/kv_store_item_api.rb +3 -3
  170. data/lib/fastly/api/logging_azureblob_api.rb +6 -6
  171. data/lib/fastly/api/logging_cloudfiles_api.rb +6 -6
  172. data/lib/fastly/api/logging_digitalocean_api.rb +6 -6
  173. data/lib/fastly/api/logging_endpoint_errors_api.rb +92 -0
  174. data/lib/fastly/api/logging_ftp_api.rb +6 -6
  175. data/lib/fastly/api/logging_gcs_api.rb +6 -6
  176. data/lib/fastly/api/logging_https_api.rb +4 -4
  177. data/lib/fastly/api/logging_openstack_api.rb +6 -6
  178. data/lib/fastly/api/logging_s3_api.rb +6 -6
  179. data/lib/fastly/api/logging_sftp_api.rb +6 -6
  180. data/lib/fastly/api/logging_sumologic_api.rb +4 -4
  181. data/lib/fastly/api/logging_syslog_api.rb +4 -4
  182. data/lib/fastly/api/ngwaf_agent_keys_api.rb +83 -0
  183. data/lib/fastly/api/ngwaf_simulate_api.rb +95 -0
  184. data/lib/fastly/api/product_bot_management_api.rb +133 -0
  185. data/lib/fastly/api/product_kv_store_api.rb +186 -0
  186. data/lib/fastly/api/secret_store_api.rb +3 -3
  187. data/lib/fastly/api/secret_store_item_api.rb +3 -3
  188. data/lib/fastly/api/service_authorizations_api.rb +3 -3
  189. data/lib/fastly/configuration.rb +300 -0
  190. data/lib/fastly/models/action.rb +237 -0
  191. data/lib/fastly/models/action_type.rb +34 -0
  192. data/lib/fastly/models/agent_key.rb +283 -0
  193. data/lib/fastly/models/agent_key_meta.rb +223 -0
  194. data/lib/fastly/models/backend.rb +24 -2
  195. data/lib/fastly/models/backend_response.rb +24 -2
  196. data/lib/fastly/models/bot_management_request_update_configuration.rb +256 -0
  197. data/lib/fastly/models/bot_management_response_configuration.rb +216 -0
  198. data/lib/fastly/models/bot_management_response_configuration_configuration.rb +217 -0
  199. data/lib/fastly/models/bot_management_response_configure.rb +253 -0
  200. data/lib/fastly/models/condition_operator.rb +37 -0
  201. data/lib/fastly/models/condition_type.rb +34 -0
  202. data/lib/fastly/models/directive.rb +229 -0
  203. data/lib/fastly/models/domain_inspector_measurements.rb +64 -4
  204. data/lib/fastly/models/draft_diff.rb +244 -0
  205. data/lib/fastly/models/draft_update.rb +218 -0
  206. data/lib/fastly/models/error_response.rb +248 -0
  207. data/lib/fastly/models/error_response_errors.rb +234 -0
  208. data/lib/fastly/models/events_response.rb +1 -1
  209. data/lib/fastly/models/header_event.rb +252 -0
  210. data/lib/fastly/models/initial_version.rb +242 -0
  211. data/lib/fastly/models/initial_version_path.rb +254 -0
  212. data/lib/fastly/models/inline_response20010.rb +2 -2
  213. data/lib/fastly/models/inline_response20011.rb +2 -2
  214. data/lib/fastly/models/inline_response20012.rb +1 -1
  215. data/lib/fastly/models/inline_response20013.rb +11 -1
  216. data/lib/fastly/models/inline_response20014.rb +15 -4
  217. data/lib/fastly/models/inline_response20015.rb +217 -0
  218. data/lib/fastly/models/inline_response20016.rb +218 -0
  219. data/lib/fastly/models/inline_response20017.rb +227 -0
  220. data/lib/fastly/models/inline_response20018.rb +227 -0
  221. data/lib/fastly/models/inline_response20019.rb +228 -0
  222. data/lib/fastly/models/inline_response20020.rb +227 -0
  223. data/lib/fastly/models/inline_response20021.rb +227 -0
  224. data/lib/fastly/models/inline_response20022.rb +218 -0
  225. data/lib/fastly/models/inline_response2005.rb +2 -2
  226. data/lib/fastly/models/inline_response2006.rb +2 -12
  227. data/lib/fastly/models/inline_response2007.rb +2 -4
  228. data/lib/fastly/models/inline_response2008.rb +18 -8
  229. data/lib/fastly/models/inline_response2009.rb +17 -8
  230. data/lib/fastly/models/invitations_response.rb +1 -1
  231. data/lib/fastly/models/kv_store_response_body_enable.rb +243 -0
  232. data/lib/fastly/models/kv_store_response_customer.rb +216 -0
  233. data/lib/fastly/models/kv_store_response_links.rb +216 -0
  234. data/lib/fastly/models/kv_store_response_links_links.rb +217 -0
  235. data/lib/fastly/models/kv_store_response_product.rb +216 -0
  236. data/lib/fastly/models/kv_store_response_product_product.rb +227 -0
  237. data/lib/fastly/models/log_error.rb +267 -0
  238. data/lib/fastly/models/log_error_batch.rb +228 -0
  239. data/lib/fastly/models/logging_azureblob_response.rb +3 -3
  240. data/lib/fastly/models/logging_cloudfiles_response.rb +3 -3
  241. data/lib/fastly/models/logging_digitalocean_response.rb +3 -3
  242. data/lib/fastly/models/logging_ftp_response.rb +3 -3
  243. data/lib/fastly/models/logging_gcs_response.rb +3 -3
  244. data/lib/fastly/models/logging_generic_common.rb +3 -3
  245. data/lib/fastly/models/logging_generic_common_response.rb +3 -3
  246. data/lib/fastly/models/logging_generic_common_response_all_of.rb +3 -3
  247. data/lib/fastly/models/logging_https_additional.rb +1 -1
  248. data/lib/fastly/models/logging_https_response.rb +1 -1
  249. data/lib/fastly/models/logging_message_type.rb +1 -1
  250. data/lib/fastly/models/logging_openstack_response.rb +3 -3
  251. data/lib/fastly/models/logging_s3_response.rb +3 -3
  252. data/lib/fastly/models/logging_sftp_response.rb +3 -3
  253. data/lib/fastly/models/logging_sumologic_additional.rb +1 -1
  254. data/lib/fastly/models/logging_sumologic_response.rb +1 -1
  255. data/lib/fastly/models/logging_syslog_additional.rb +1 -1
  256. data/lib/fastly/models/logging_syslog_response.rb +1 -1
  257. data/lib/fastly/models/mutual_authentications_response.rb +1 -1
  258. data/lib/fastly/models/notification.rb +270 -0
  259. data/lib/fastly/models/notification_config.rb +218 -0
  260. data/lib/fastly/models/page.rb +289 -0
  261. data/lib/fastly/models/page_create.rb +266 -0
  262. data/lib/fastly/models/page_update.rb +256 -0
  263. data/lib/fastly/models/pagination.rb +1 -1
  264. data/lib/fastly/models/pagination_meta.rb +30 -55
  265. data/lib/fastly/models/pagination_meta1.rb +273 -0
  266. data/lib/fastly/models/path_change.rb +274 -0
  267. data/lib/fastly/models/path_create.rb +242 -0
  268. data/lib/fastly/models/path_response.rb +285 -0
  269. data/lib/fastly/models/path_response_all_of.rb +254 -0
  270. data/lib/fastly/models/path_update.rb +233 -0
  271. data/lib/fastly/models/path_with_rules.rb +228 -0
  272. data/lib/fastly/models/paths_response.rb +228 -0
  273. data/lib/fastly/models/policy.rb +315 -0
  274. data/lib/fastly/models/policy_create.rb +289 -0
  275. data/lib/fastly/models/policy_update.rb +279 -0
  276. data/lib/fastly/models/position.rb +228 -0
  277. data/lib/fastly/models/realtime_entry.rb +2 -5
  278. data/lib/fastly/models/realtime_entry_aggregated.rb +364 -34
  279. data/lib/fastly/models/realtime_entry_datacenter.rb +3597 -0
  280. data/lib/fastly/models/realtime_measurements.rb +364 -34
  281. data/lib/fastly/models/report.rb +261 -0
  282. data/lib/fastly/models/request_body_for_create.rb +12 -1
  283. data/lib/fastly/models/request_body_for_update.rb +12 -1
  284. data/lib/fastly/models/results.rb +361 -31
  285. data/lib/fastly/models/routing_config.rb +251 -0
  286. data/lib/fastly/models/routing_config_condition.rb +261 -0
  287. data/lib/fastly/models/routing_config_response.rb +305 -0
  288. data/lib/fastly/models/routing_config_response_all_of.rb +274 -0
  289. data/lib/fastly/models/routing_config_state.rb +36 -0
  290. data/lib/fastly/models/routing_config_version_response.rb +250 -0
  291. data/lib/fastly/models/routing_configs_response.rb +228 -0
  292. data/lib/fastly/models/rule_change.rb +236 -0
  293. data/lib/fastly/models/rule_create.rb +267 -0
  294. data/lib/fastly/models/rule_response.rb +279 -0
  295. data/lib/fastly/models/rule_response_all_of.rb +248 -0
  296. data/lib/fastly/models/rule_update.rb +252 -0
  297. data/lib/fastly/models/rules_response.rb +228 -0
  298. data/lib/fastly/models/script.rb +350 -0
  299. data/lib/fastly/models/script_update.rb +271 -0
  300. data/lib/fastly/models/security_header.rb +234 -0
  301. data/lib/fastly/models/service_authorizations_response.rb +1 -1
  302. data/lib/fastly/models/successful_response_as_object.rb +12 -1
  303. data/lib/fastly/models/successful_response_as_object_all_of.rb +12 -1
  304. data/lib/fastly/models/tls_activations_response.rb +1 -1
  305. data/lib/fastly/models/tls_bulk_certificates_response.rb +1 -1
  306. data/lib/fastly/models/tls_certificates_response.rb +1 -1
  307. data/lib/fastly/models/tls_configurations_response.rb +1 -1
  308. data/lib/fastly/models/tls_domains_response.rb +1 -1
  309. data/lib/fastly/models/tls_private_keys_response.rb +1 -1
  310. data/lib/fastly/models/tls_subscriptions_response.rb +1 -1
  311. data/lib/fastly/models/values.rb +64 -4
  312. data/lib/fastly/models/versions_response.rb +228 -0
  313. data/lib/fastly/models/waf_simulate_request.rb +233 -0
  314. data/lib/fastly/models/waf_simulate_response.rb +240 -0
  315. data/lib/fastly/models/waf_simulate_signal.rb +344 -0
  316. data/lib/fastly/models/website.rb +257 -0
  317. data/lib/fastly/models/website_create.rb +222 -0
  318. data/lib/fastly/models/website_update.rb +217 -0
  319. data/lib/fastly/version.rb +1 -1
  320. data/lib/fastly.rb +82 -0
  321. data/sig.json +1 -1
  322. metadata +166 -2
@@ -0,0 +1,3597 @@
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://www.fastly.com/documentation/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
+ # Groups [measurements](#measurements-data-model) by POP. See the [POPs API](https://www.fastly.com/documentation/reference/api/utils/pops/) for details of POP identifiers.
16
+ class RealtimeEntryDatacenter
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. The value in each bucket is the number of requests to the origin whose responses arrived during the time period represented by the bucket. The key of each bucket represents the upper bound (in response time) of that bucket. The buckets vary in width and cover the time periods 0-10ms (in 1ms increments), 10-250ms (in 10ms increments), 250-1,000ms (in 50ms increments), 1,000-3,000ms (in 100ms increments), 3,000-10,000ms (in 500 ms increments), 10,000-20,000ms (in 1,000ms increments), 20,000-60,000ms (in 5,000ms increments), and 60,000ms through infinity (in a single 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
+ # Total header bytes received from requests that triggered a WAF rule.
129
+ attr_accessor :attack_req_header_bytes
130
+
131
+ # Total body bytes received from requests that triggered a WAF rule.
132
+ attr_accessor :attack_req_body_bytes
133
+
134
+ # Total bytes delivered for requests that triggered a WAF rule and returned a synthetic response.
135
+ attr_accessor :attack_resp_synth_bytes
136
+
137
+ # Total header bytes received from requests that triggered a WAF rule that was logged.
138
+ attr_accessor :attack_logged_req_header_bytes
139
+
140
+ # Total body bytes received from requests that triggered a WAF rule that was logged.
141
+ attr_accessor :attack_logged_req_body_bytes
142
+
143
+ # Total header bytes received from requests that triggered a WAF rule that was blocked.
144
+ attr_accessor :attack_blocked_req_header_bytes
145
+
146
+ # Total body bytes received from requests that triggered a WAF rule that was blocked.
147
+ attr_accessor :attack_blocked_req_body_bytes
148
+
149
+ # Total header bytes received from requests that triggered a WAF rule that was passed.
150
+ attr_accessor :attack_passed_req_header_bytes
151
+
152
+ # Total body bytes received from requests that triggered a WAF rule that was passed.
153
+ attr_accessor :attack_passed_req_body_bytes
154
+
155
+ # Total header bytes delivered via a shield.
156
+ attr_accessor :shield_resp_header_bytes
157
+
158
+ # Total body bytes delivered via a shield.
159
+ attr_accessor :shield_resp_body_bytes
160
+
161
+ # Total header bytes delivered from the Fastly On-the-Fly Packaging service for video-on-demand.
162
+ attr_accessor :otfp_resp_header_bytes
163
+
164
+ # Total body bytes delivered from the Fastly On-the-Fly Packaging service for video-on-demand.
165
+ attr_accessor :otfp_resp_body_bytes
166
+
167
+ # Total header bytes delivered via a shield for the Fastly On-the-Fly Packaging service for video-on-demand.
168
+ attr_accessor :otfp_shield_resp_header_bytes
169
+
170
+ # Total body bytes delivered via a shield for the Fastly On-the-Fly Packaging service for video-on-demand.
171
+ attr_accessor :otfp_shield_resp_body_bytes
172
+
173
+ # 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).
174
+ attr_accessor :otfp_shield_time
175
+
176
+ # Total amount of time spent delivering a response from the Fastly On-the-Fly Packaging service for video-on-demand (in seconds).
177
+ attr_accessor :otfp_deliver_time
178
+
179
+ # Total header bytes delivered from the Fastly Image Optimizer service, including shield traffic.
180
+ attr_accessor :imgopto_resp_header_bytes
181
+
182
+ # Total body bytes delivered from the Fastly Image Optimizer service, including shield traffic.
183
+ attr_accessor :imgopto_resp_body_bytes
184
+
185
+ # Total header bytes delivered via a shield from the Fastly Image Optimizer service.
186
+ attr_accessor :imgopto_shield_resp_header_bytes
187
+
188
+ # Total body bytes delivered via a shield from the Fastly Image Optimizer service.
189
+ attr_accessor :imgopto_shield_resp_body_bytes
190
+
191
+ # Number of \"Informational\" category status codes delivered.
192
+ attr_accessor :status_1xx
193
+
194
+ # Number of \"Success\" status codes delivered.
195
+ attr_accessor :status_2xx
196
+
197
+ # Number of \"Redirection\" codes delivered.
198
+ attr_accessor :status_3xx
199
+
200
+ # Number of \"Client Error\" codes delivered.
201
+ attr_accessor :status_4xx
202
+
203
+ # Number of \"Server Error\" codes delivered.
204
+ attr_accessor :status_5xx
205
+
206
+ # Number of responses sent with status code 200 (Success).
207
+ attr_accessor :status_200
208
+
209
+ # Number of responses sent with status code 204 (No Content).
210
+ attr_accessor :status_204
211
+
212
+ # Number of responses sent with status code 206 (Partial Content).
213
+ attr_accessor :status_206
214
+
215
+ # Number of responses sent with status code 301 (Moved Permanently).
216
+ attr_accessor :status_301
217
+
218
+ # Number of responses sent with status code 302 (Found).
219
+ attr_accessor :status_302
220
+
221
+ # Number of responses sent with status code 304 (Not Modified).
222
+ attr_accessor :status_304
223
+
224
+ # Number of responses sent with status code 400 (Bad Request).
225
+ attr_accessor :status_400
226
+
227
+ # Number of responses sent with status code 401 (Unauthorized).
228
+ attr_accessor :status_401
229
+
230
+ # Number of responses sent with status code 403 (Forbidden).
231
+ attr_accessor :status_403
232
+
233
+ # Number of responses sent with status code 404 (Not Found).
234
+ attr_accessor :status_404
235
+
236
+ # Number of responses sent with status code 406 (Not Acceptable).
237
+ attr_accessor :status_406
238
+
239
+ # Number of responses sent with status code 416 (Range Not Satisfiable).
240
+ attr_accessor :status_416
241
+
242
+ # Number of responses sent with status code 429 (Too Many Requests).
243
+ attr_accessor :status_429
244
+
245
+ # Number of responses sent with status code 500 (Internal Server Error).
246
+ attr_accessor :status_500
247
+
248
+ # Number of responses sent with status code 501 (Not Implemented).
249
+ attr_accessor :status_501
250
+
251
+ # Number of responses sent with status code 502 (Bad Gateway).
252
+ attr_accessor :status_502
253
+
254
+ # Number of responses sent with status code 503 (Service Unavailable).
255
+ attr_accessor :status_503
256
+
257
+ # Number of responses sent with status code 504 (Gateway Timeout).
258
+ attr_accessor :status_504
259
+
260
+ # Number of responses sent with status code 505 (HTTP Version Not Supported).
261
+ attr_accessor :status_505
262
+
263
+ # Number of responses sent with status code 530.
264
+ attr_accessor :status_530
265
+
266
+ # Number of requests that were designated uncachable.
267
+ attr_accessor :uncacheable
268
+
269
+ # Total amount of time spent processing cache passes (in seconds).
270
+ attr_accessor :pass_time
271
+
272
+ # Number of requests that were received over TLS.
273
+ attr_accessor :tls
274
+
275
+ # Number of requests received over TLS 1.0.
276
+ attr_accessor :tls_v10
277
+
278
+ # Number of requests received over TLS 1.1.
279
+ attr_accessor :tls_v11
280
+
281
+ # Number of requests received over TLS 1.2.
282
+ attr_accessor :tls_v12
283
+
284
+ # Number of requests received over TLS 1.3.
285
+ attr_accessor :tls_v13
286
+
287
+ # Number of objects served that were under 1KB in size.
288
+ attr_accessor :object_size_1k
289
+
290
+ # Number of objects served that were between 1KB and 10KB in size.
291
+ attr_accessor :object_size_10k
292
+
293
+ # Number of objects served that were between 10KB and 100KB in size.
294
+ attr_accessor :object_size_100k
295
+
296
+ # Number of objects served that were between 100KB and 1MB in size.
297
+ attr_accessor :object_size_1m
298
+
299
+ # Number of objects served that were between 1MB and 10MB in size.
300
+ attr_accessor :object_size_10m
301
+
302
+ # Number of objects served that were between 10MB and 100MB in size.
303
+ attr_accessor :object_size_100m
304
+
305
+ # Number of objects served that were between 100MB and 1GB in size.
306
+ attr_accessor :object_size_1g
307
+
308
+ # Number of objects served that were larger than 1GB in size.
309
+ attr_accessor :object_size_other
310
+
311
+ # Time spent inside the `vcl_recv` Varnish subroutine (in nanoseconds).
312
+ attr_accessor :recv_sub_time
313
+
314
+ # Number of executions of the `vcl_recv` Varnish subroutine.
315
+ attr_accessor :recv_sub_count
316
+
317
+ # Time spent inside the `vcl_hash` Varnish subroutine (in nanoseconds).
318
+ attr_accessor :hash_sub_time
319
+
320
+ # Number of executions of the `vcl_hash` Varnish subroutine.
321
+ attr_accessor :hash_sub_count
322
+
323
+ # Time spent inside the `vcl_miss` Varnish subroutine (in nanoseconds).
324
+ attr_accessor :miss_sub_time
325
+
326
+ # Number of executions of the `vcl_miss` Varnish subroutine.
327
+ attr_accessor :miss_sub_count
328
+
329
+ # Time spent inside the `vcl_fetch` Varnish subroutine (in nanoseconds).
330
+ attr_accessor :fetch_sub_time
331
+
332
+ # Number of executions of the `vcl_fetch` Varnish subroutine.
333
+ attr_accessor :fetch_sub_count
334
+
335
+ # Time spent inside the `vcl_pass` Varnish subroutine (in nanoseconds).
336
+ attr_accessor :pass_sub_time
337
+
338
+ # Number of executions of the `vcl_pass` Varnish subroutine.
339
+ attr_accessor :pass_sub_count
340
+
341
+ # Time spent inside the `vcl_pipe` Varnish subroutine (in nanoseconds).
342
+ attr_accessor :pipe_sub_time
343
+
344
+ # Number of executions of the `vcl_pipe` Varnish subroutine.
345
+ attr_accessor :pipe_sub_count
346
+
347
+ # Time spent inside the `vcl_deliver` Varnish subroutine (in nanoseconds).
348
+ attr_accessor :deliver_sub_time
349
+
350
+ # Number of executions of the `vcl_deliver` Varnish subroutine.
351
+ attr_accessor :deliver_sub_count
352
+
353
+ # Time spent inside the `vcl_error` Varnish subroutine (in nanoseconds).
354
+ attr_accessor :error_sub_time
355
+
356
+ # Number of executions of the `vcl_error` Varnish subroutine.
357
+ attr_accessor :error_sub_count
358
+
359
+ # Time spent inside the `vcl_hit` Varnish subroutine (in nanoseconds).
360
+ attr_accessor :hit_sub_time
361
+
362
+ # Number of executions of the `vcl_hit` Varnish subroutine.
363
+ attr_accessor :hit_sub_count
364
+
365
+ # Time spent inside the `vcl_prehash` Varnish subroutine (in nanoseconds).
366
+ attr_accessor :prehash_sub_time
367
+
368
+ # Number of executions of the `vcl_prehash` Varnish subroutine.
369
+ attr_accessor :prehash_sub_count
370
+
371
+ # Time spent inside the `vcl_predeliver` Varnish subroutine (in nanoseconds).
372
+ attr_accessor :predeliver_sub_time
373
+
374
+ # Number of executions of the `vcl_predeliver` Varnish subroutine.
375
+ attr_accessor :predeliver_sub_count
376
+
377
+ # Total body bytes delivered for cache hits.
378
+ attr_accessor :hit_resp_body_bytes
379
+
380
+ # Total body bytes delivered for cache misses.
381
+ attr_accessor :miss_resp_body_bytes
382
+
383
+ # Total body bytes delivered for cache passes.
384
+ attr_accessor :pass_resp_body_bytes
385
+
386
+ # Total header bytes received by the Compute platform.
387
+ attr_accessor :compute_req_header_bytes
388
+
389
+ # Total body bytes received by the Compute platform.
390
+ attr_accessor :compute_req_body_bytes
391
+
392
+ # Total header bytes sent from Compute to end user.
393
+ attr_accessor :compute_resp_header_bytes
394
+
395
+ # Total body bytes sent from Compute to end user.
396
+ attr_accessor :compute_resp_body_bytes
397
+
398
+ # Number of video responses that came from the Fastly Image Optimizer service.
399
+ attr_accessor :imgvideo
400
+
401
+ # Number of video frames that came from the Fastly Image Optimizer service. A video frame is an individual image within a sequence of video.
402
+ attr_accessor :imgvideo_frames
403
+
404
+ # Total header bytes of video delivered from the Fastly Image Optimizer service.
405
+ attr_accessor :imgvideo_resp_header_bytes
406
+
407
+ # Total body bytes of video delivered from the Fastly Image Optimizer service.
408
+ attr_accessor :imgvideo_resp_body_bytes
409
+
410
+ # Number of video responses delivered via a shield that came from the Fastly Image Optimizer service.
411
+ attr_accessor :imgvideo_shield
412
+
413
+ # 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.
414
+ attr_accessor :imgvideo_shield_frames
415
+
416
+ # Total header bytes of video delivered via a shield from the Fastly Image Optimizer service.
417
+ attr_accessor :imgvideo_shield_resp_header_bytes
418
+
419
+ # Total body bytes of video delivered via a shield from the Fastly Image Optimizer service.
420
+ attr_accessor :imgvideo_shield_resp_body_bytes
421
+
422
+ # Total log bytes sent.
423
+ attr_accessor :log_bytes
424
+
425
+ # Number of requests sent by end users to Fastly.
426
+ attr_accessor :edge_requests
427
+
428
+ # Total header bytes delivered from Fastly to the end user.
429
+ attr_accessor :edge_resp_header_bytes
430
+
431
+ # Total body bytes delivered from Fastly to the end user.
432
+ attr_accessor :edge_resp_body_bytes
433
+
434
+ # 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.
435
+ attr_accessor :origin_revalidations
436
+
437
+ # Number of requests sent to origin.
438
+ attr_accessor :origin_fetches
439
+
440
+ # Total request header bytes sent to origin.
441
+ attr_accessor :origin_fetch_header_bytes
442
+
443
+ # Total request body bytes sent to origin.
444
+ attr_accessor :origin_fetch_body_bytes
445
+
446
+ # Total header bytes received from origin.
447
+ attr_accessor :origin_fetch_resp_header_bytes
448
+
449
+ # Total body bytes received from origin.
450
+ attr_accessor :origin_fetch_resp_body_bytes
451
+
452
+ # 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.
453
+ attr_accessor :shield_revalidations
454
+
455
+ # Number of requests made from one Fastly POP to another, as part of shielding.
456
+ attr_accessor :shield_fetches
457
+
458
+ # Total request header bytes sent to a shield.
459
+ attr_accessor :shield_fetch_header_bytes
460
+
461
+ # Total request body bytes sent to a shield.
462
+ attr_accessor :shield_fetch_body_bytes
463
+
464
+ # Total response header bytes sent from a shield to the edge.
465
+ attr_accessor :shield_fetch_resp_header_bytes
466
+
467
+ # Total response body bytes sent from a shield to the edge.
468
+ attr_accessor :shield_fetch_resp_body_bytes
469
+
470
+ # Number of `Range` requests to origin for segments of resources when using segmented caching.
471
+ attr_accessor :segblock_origin_fetches
472
+
473
+ # Number of `Range` requests to a shield for segments of resources when using segmented caching.
474
+ attr_accessor :segblock_shield_fetches
475
+
476
+ # Number of \"Informational\" category status codes delivered by the Compute platform.
477
+ attr_accessor :compute_resp_status_1xx
478
+
479
+ # Number of \"Success\" category status codes delivered by the Compute platform.
480
+ attr_accessor :compute_resp_status_2xx
481
+
482
+ # Number of \"Redirection\" category status codes delivered by the Compute platform.
483
+ attr_accessor :compute_resp_status_3xx
484
+
485
+ # Number of \"Client Error\" category status codes delivered by the Compute platform.
486
+ attr_accessor :compute_resp_status_4xx
487
+
488
+ # Number of \"Server Error\" category status codes delivered by the Compute platform.
489
+ attr_accessor :compute_resp_status_5xx
490
+
491
+ # Number of requests sent by end users to Fastly that resulted in a hit at the edge.
492
+ attr_accessor :edge_hit_requests
493
+
494
+ # Number of requests sent by end users to Fastly that resulted in a miss at the edge.
495
+ attr_accessor :edge_miss_requests
496
+
497
+ # Total header bytes sent to backends (origins) by the Compute platform.
498
+ attr_accessor :compute_bereq_header_bytes
499
+
500
+ # Total body bytes sent to backends (origins) by the Compute platform.
501
+ attr_accessor :compute_bereq_body_bytes
502
+
503
+ # Total header bytes received from backends (origins) by the Compute platform.
504
+ attr_accessor :compute_beresp_header_bytes
505
+
506
+ # Total body bytes received from backends (origins) by the Compute platform.
507
+ attr_accessor :compute_beresp_body_bytes
508
+
509
+ # The total number of completed requests made to backends (origins) that returned cacheable content.
510
+ attr_accessor :origin_cache_fetches
511
+
512
+ # The total number of completed requests made to shields that returned cacheable content.
513
+ attr_accessor :shield_cache_fetches
514
+
515
+ # Number of backend requests started.
516
+ attr_accessor :compute_bereqs
517
+
518
+ # Number of backend request errors, including timeouts.
519
+ attr_accessor :compute_bereq_errors
520
+
521
+ # Number of backend request errors, including timeouts.
522
+ attr_accessor :compute_service_bereq_error
523
+
524
+ # Number of times a guest exceeded its resource limit, includes heap, stack, globals, and code execution timeout.
525
+ attr_accessor :compute_resource_limit_exceeded
526
+
527
+ # Number of times a guest exceeded its heap limit.
528
+ attr_accessor :compute_heap_limit_exceeded
529
+
530
+ # Number of times a guest exceeded its heap limit.
531
+ attr_accessor :compute_service_memory_exceeded_error
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
+ # The number of challenge-start tokens created.
672
+ attr_accessor :bot_challenge_starts
673
+
674
+ # The number of challenge-complete tokens that passed validation.
675
+ attr_accessor :bot_challenge_complete_tokens_passed
676
+
677
+ # The number of challenge-complete tokens that failed validation.
678
+ attr_accessor :bot_challenge_complete_tokens_failed
679
+
680
+ # The number of challenge-complete tokens checked.
681
+ attr_accessor :bot_challenge_complete_tokens_checked
682
+
683
+ # The number of challenge-complete tokens not checked because the feature was disabled.
684
+ attr_accessor :bot_challenge_complete_tokens_disabled
685
+
686
+ # The number of challenges issued. For example, the issuance of a CAPTCHA challenge.
687
+ attr_accessor :bot_challenges_issued
688
+
689
+ # The number of successful challenge solutions processed. For example, a correct CAPTCHA solution.
690
+ attr_accessor :bot_challenges_succeeded
691
+
692
+ # The number of failed challenge solutions processed. For example, an incorrect CAPTCHA solution.
693
+ attr_accessor :bot_challenges_failed
694
+
695
+ # The number of challenge-complete tokens issued. For example, issuing a challenge-complete token after a series of CAPTCHA challenges ending in success.
696
+ attr_accessor :bot_challenge_complete_tokens_issued
697
+
698
+ # The number of times the downgrade action was taken. The downgrade action restricts the client to http1.
699
+ attr_accessor :ddos_action_downgrade
700
+
701
+ # The number of connections the downgrade action was applied to. The downgrade action restricts the connection to http1.
702
+ attr_accessor :ddos_action_downgraded_connections
703
+
704
+ # Number of cache hits for a VCL service.
705
+ attr_accessor :all_hit_requests
706
+
707
+ # Number of cache misses for a VCL service.
708
+ attr_accessor :all_miss_requests
709
+
710
+ # Number of requests that passed through the CDN without being cached for a VCL service.
711
+ attr_accessor :all_pass_requests
712
+
713
+ # Number of cache errors for a VCL service.
714
+ attr_accessor :all_error_requests
715
+
716
+ # Number of requests that returned a synthetic response (i.e., response objects created with the `synthetic` VCL statement) for a VCL service.
717
+ attr_accessor :all_synth_requests
718
+
719
+ # Number of requests sent by end users to Fastly that resulted in a hit at the edge for a VCL service.
720
+ attr_accessor :all_edge_hit_requests
721
+
722
+ # Number of requests sent by end users to Fastly that resulted in a miss at the edge for a VCL service.
723
+ attr_accessor :all_edge_miss_requests
724
+
725
+ # Number of \"Informational\" category status codes delivered for all sources.
726
+ attr_accessor :all_status_1xx
727
+
728
+ # Number of \"Success\" status codes delivered for all sources.
729
+ attr_accessor :all_status_2xx
730
+
731
+ # Number of \"Redirection\" codes delivered for all sources.
732
+ attr_accessor :all_status_3xx
733
+
734
+ # Number of \"Client Error\" codes delivered for all sources.
735
+ attr_accessor :all_status_4xx
736
+
737
+ # Number of \"Server Error\" codes delivered for all sources.
738
+ attr_accessor :all_status_5xx
739
+
740
+ # Origin Offload measures the ratio of bytes served to end users that were cached by Fastly, over the bytes served to end users, between 0 and 1. ((`edge_resp_body_bytes` + `edge_resp_header_bytes`) - (`origin_fetch_resp_body_bytes` + `origin_fetch_resp_header_bytes`)) / (`edge_resp_body_bytes` + `edge_resp_header_bytes`).
741
+ attr_accessor :origin_offload
742
+
743
+ # Number of requests where Fastly responded with 400 due to the request being a GET or HEAD request containing a body.
744
+ attr_accessor :request_denied_get_head_body
745
+
746
+ # Number of requests classified as a DDoS attack against a customer origin or service.
747
+ attr_accessor :ddos_protection_requests_detect_count
748
+
749
+ # Number of requests classified as a DDoS attack against a customer origin or service that were mitigated by the Fastly platform.
750
+ attr_accessor :ddos_protection_requests_mitigate_count
751
+
752
+ # Number of requests analyzed for DDoS attacks against a customer origin or service, but with no DDoS detected.
753
+ attr_accessor :ddos_protection_requests_allow_count
754
+
755
+ # A count of the number of Class A Object Storage operations.
756
+ attr_accessor :object_storage_class_a_operations_count
757
+
758
+ # A count of the number of Class B Object Storage operations.
759
+ attr_accessor :object_storage_class_b_operations_count
760
+
761
+ # Number of requests received by AI Accelerator.
762
+ attr_accessor :aia_requests
763
+
764
+ # Number of \"Informational\" category status codes received from AI provider.
765
+ attr_accessor :aia_status_1xx
766
+
767
+ # Number of \"Success\" status codes received from AI provider.
768
+ attr_accessor :aia_status_2xx
769
+
770
+ # Number of \"Redirection\" received from AI provider.
771
+ attr_accessor :aia_status_3xx
772
+
773
+ # Number of \"Client Error\" received from AI provider.
774
+ attr_accessor :aia_status_4xx
775
+
776
+ # Number of \"Server Error\" received from AI provider.
777
+ attr_accessor :aia_status_5xx
778
+
779
+ # The usage tokens associated with the response returned from the AI Accelerator cache.
780
+ attr_accessor :aia_response_usage_tokens
781
+
782
+ # The number of usage tokens reported by the request to the origin from AI Accelerator.
783
+ attr_accessor :aia_origin_usage_tokens
784
+
785
+ # The estimated amount of time saved by responses served from the AI Accelerator semantic cache.
786
+ attr_accessor :aia_estimated_time_saved_ms
787
+
788
+ # Number of requests that were collapsed and satisfied by a usable cache object.
789
+ attr_accessor :request_collapse_usable_count
790
+
791
+ # Number of requests that were collapsed and unable to be satisfied by the resulting cache object.
792
+ attr_accessor :request_collapse_unusable_count
793
+
794
+ # Number of cache operations executed by the Compute platform.
795
+ attr_accessor :compute_cache_operations_count
796
+
797
+ # Number of requests processed by the API Discovery engine.
798
+ attr_accessor :api_discovery_requests_count
799
+
800
+ # Number of responses delivered with status code 103 (Early Hints) by the Compute platform.
801
+ attr_accessor :compute_resp_status_103
802
+
803
+ # Number of responses delivered with status code 200 (Success) by the Compute platform.
804
+ attr_accessor :compute_resp_status_200
805
+
806
+ # Number of responses delivered with status code 204 (No Content) by the Compute platform.
807
+ attr_accessor :compute_resp_status_204
808
+
809
+ # Number of responses delivered with status code 206 (Partial Content) by the Compute platform.
810
+ attr_accessor :compute_resp_status_206
811
+
812
+ # Number of responses delivered with status code 301 (Moved Permanently) by the Compute platform.
813
+ attr_accessor :compute_resp_status_301
814
+
815
+ # Number of responses delivered with status code 302 (Found) by the Compute platform.
816
+ attr_accessor :compute_resp_status_302
817
+
818
+ # Number of responses delivered with status code 304 (Not Modified) by the Compute platform.
819
+ attr_accessor :compute_resp_status_304
820
+
821
+ # Number of responses delivered with status code 400 (Bad Request) by the Compute platform.
822
+ attr_accessor :compute_resp_status_400
823
+
824
+ # Number of responses delivered with status code 401 (Unauthorized) by the Compute platform.
825
+ attr_accessor :compute_resp_status_401
826
+
827
+ # Number of responses delivered with status code 403 (Forbidden) by the Compute platform.
828
+ attr_accessor :compute_resp_status_403
829
+
830
+ # Number of responses delivered with status code 404 (Not Found) by the Compute platform.
831
+ attr_accessor :compute_resp_status_404
832
+
833
+ # Number of responses delivered with status code 416 (Range Not Satisfiable) by the Compute platform.
834
+ attr_accessor :compute_resp_status_416
835
+
836
+ # Number of responses delivered with status code 429 (Too Many Requests) by the Compute platform.
837
+ attr_accessor :compute_resp_status_429
838
+
839
+ # Number of responses delivered with status code 500 (Internal Server Error) by the Compute platform.
840
+ attr_accessor :compute_resp_status_500
841
+
842
+ # Number of responses delivered with status code 501 (Not Implemented) by the Compute platform.
843
+ attr_accessor :compute_resp_status_501
844
+
845
+ # Number of responses delivered with status code 502 (Bad Gateway) by the Compute platform.
846
+ attr_accessor :compute_resp_status_502
847
+
848
+ # Number of responses delivered with status code 503 (Service Unavailable) by the Compute platform.
849
+ attr_accessor :compute_resp_status_503
850
+
851
+ # Number of responses delivered with status code 504 (Gateway Timeout) by the Compute platform.
852
+ attr_accessor :compute_resp_status_504
853
+
854
+ # Number of responses delivered with status code 505 (HTTP Version Not Supported) by the Compute platform.
855
+ attr_accessor :compute_resp_status_505
856
+
857
+ # Number of responses delivered with status code 530 by the Compute platform.
858
+ attr_accessor :compute_resp_status_530
859
+
860
+ # The number of Image Optimizer requests made from Compute services.
861
+ attr_accessor :imgopto_compute_requests
862
+
863
+ # Number of billable DNS responses (e.g., A, CNAME).
864
+ attr_accessor :dns_billable_responses_count
865
+
866
+ # Number of non-billable DNS responses (e.g., NODATA, NXDOMAIN).
867
+ attr_accessor :dns_nonbillable_responses_count
868
+
869
+ # Number of requests that resulted in a WebSocket upgrade.
870
+ attr_accessor :upgrade
871
+
872
+ # Count of Next-Gen WAF Bot Management requests.
873
+ attr_accessor :ngwaf_bot_analysis_request_count
874
+
875
+ # Count of AVIF images delivered to end user by Image Optimizer.
876
+ attr_accessor :imgopto_avif_count
877
+
878
+ # Count of JPEG images delivered to end user by Image Optimizer.
879
+ attr_accessor :imgopto_jpeg_count
880
+
881
+ # Count of PNG images delivered to end user by Image Optimizer.
882
+ attr_accessor :imgopto_png_count
883
+
884
+ # Count of GIF images delivered to end user by Image Optimizer.
885
+ attr_accessor :imgopto_gif_count
886
+
887
+ # Count of WebP images delivered to end user by Image Optimizer.
888
+ attr_accessor :imgopto_webp_count
889
+
890
+ # Count of JPEGXL images delivered to end user by Image Optimizer.
891
+ attr_accessor :imgopto_jpegxl_count
892
+
893
+ # Count of SVG images delivered to end user by Image Optimizer.
894
+ attr_accessor :imgopto_svg_count
895
+
896
+ # Count of MP4s delivered to end user by Image Optimizer.
897
+ attr_accessor :imgopto_mp4_count
898
+
899
+ # Aggregate of fatal errors caused by exceeding allocated resource limits, specifically runtime duration, vCPU usage, and heap memory limits.
900
+ attr_accessor :compute_service_resource_limits_error
901
+
902
+ # Fatal errors caused by service logic faults, including stack overflows, unreachable code traps, illegal memory access, or attempts to send multiple responses.
903
+ attr_accessor :compute_service_runtime_error
904
+
905
+ # Fatal errors caused by the service path exceeding hop or service limits, or where a forwarding loop is detected via CDN-Loop headers.
906
+ attr_accessor :compute_service_chain_error
907
+
908
+ # Fatal errors caused by internal errors in Fastly’s Compute platform.
909
+ attr_accessor :compute_platform_internal_error
910
+
911
+ # Fatal errors caused by exceeding the per-request runtime limit.
912
+ attr_accessor :compute_service_timeout_error
913
+
914
+ # Fatal errors caused by exceeding the per-request vCPU time limit.
915
+ attr_accessor :compute_service_vcpu_exceeded_error
916
+
917
+ # Non-fatal errors caused by attempts to exceed defined operational limits, such as simultaneous backend requests or cache transactions.
918
+ attr_accessor :compute_service_limits_error
919
+
920
+ # Fatal errors caused by unprocessable requests to the service, such as requests with malformed CDN-Loop headers or invalid purge credentials.
921
+ attr_accessor :compute_platform_invalid_request_error
922
+
923
+ # Number of WebAssembly (Wasm) sandboxes created.
924
+ attr_accessor :compute_sandboxes
925
+
926
+ # Total number of Bot Management requests across all deployments.
927
+ attr_accessor :bot_requests_total_count
928
+
929
+ # Count of edge requests where bot detection analysis was performed.
930
+ attr_accessor :bot_edge_requests_analyzed_count
931
+
932
+ # Count of edge requests where a bot was detected.
933
+ attr_accessor :bot_edge_requests_detected_count
934
+
935
+ # Count of edge requests where a verified bot was detected.
936
+ attr_accessor :bot_edge_requests_verified_count
937
+
938
+ # Count of edge requests where an AI crawler was detected.
939
+ attr_accessor :bot_edge_requests_ai_crawler_count
940
+
941
+ # Count of edge requests where an AI fetcher was detected.
942
+ attr_accessor :bot_edge_requests_ai_fetcher_count
943
+
944
+ # Count of edge requests where an accessibility bot was detected.
945
+ attr_accessor :bot_edge_requests_accessibility_count
946
+
947
+ # Count of edge requests where a content fetcher was detected.
948
+ attr_accessor :bot_edge_requests_content_fetcher_count
949
+
950
+ # Count of edge requests where a monitoring and site tool was detected.
951
+ attr_accessor :bot_edge_requests_monitoring_count
952
+
953
+ # Count of edge requests where an online marketing bot was detected.
954
+ attr_accessor :bot_edge_requests_online_marketing_count
955
+
956
+ # Count of edge requests where a page preview bot was detected.
957
+ attr_accessor :bot_edge_requests_page_preview_count
958
+
959
+ # Count of edge requests where a platform integration was detected.
960
+ attr_accessor :bot_edge_requests_platform_integrations_count
961
+
962
+ # Count of edge requests where a research bot was detected.
963
+ attr_accessor :bot_edge_requests_research_count
964
+
965
+ # Count of edge requests where a search engine crawler was detected.
966
+ attr_accessor :bot_edge_requests_search_engine_crawler_count
967
+
968
+ # Count of edge requests where a search engine optimization bot was detected.
969
+ attr_accessor :bot_edge_requests_search_engine_optimization_count
970
+
971
+ # Count of edge requests where a security tool was detected.
972
+ attr_accessor :bot_edge_requests_security_tools_count
973
+
974
+ # The number of times Compute has handed off a request to the Fanout proxy or WebSocket proxy.
975
+ attr_accessor :compute_handoff
976
+
977
+ # Number of backend requests from a Compute service that failed during DNS resolution.
978
+ attr_accessor :compute_service_bereq_dns_error
979
+
980
+ # Number of backend requests from a Compute service where the connection to the origin timed out before being established.
981
+ attr_accessor :compute_service_bereq_conn_timeout_error
982
+
983
+ # Number of backend requests from a Compute service where the origin actively refused the connection.
984
+ attr_accessor :compute_service_bereq_conn_refused_error
985
+
986
+ # Number of backend requests from a Compute service that failed due to a connection error not classified as a timeout or refusal.
987
+ attr_accessor :compute_service_bereq_conn_other_error
988
+
989
+ # Number of backend requests from a Compute service that failed due to a TLS certificate validation error (e.g., expired, untrusted CA, hostname mismatch).
990
+ attr_accessor :compute_service_bereq_tls_server_cert_error
991
+
992
+ # Number of backend requests from a Compute service that failed due to a TLS error not classified as a certificate error.
993
+ attr_accessor :compute_service_bereq_tls_other_error
994
+
995
+ # Number of backend requests from a Compute service that failed due to an HTTP/1.x protocol violation after the request was transmitted.
996
+ attr_accessor :compute_service_bereq_http_proto_v1_error
997
+
998
+ # Number of backend requests from a Compute service that failed due to an HTTP/2 protocol error, typically a `RST_STREAM` or `GO_AWAY` from the origin.
999
+ attr_accessor :compute_service_bereq_http_proto_v2_error
1000
+
1001
+ # Number of backend requests from a Compute service where the origin sent an incomplete HTTP response.
1002
+ attr_accessor :compute_service_bereq_http_incomplete_error
1003
+
1004
+ # Number of backend requests from a Compute service where the origin did not respond within the configured timeout period.
1005
+ attr_accessor :compute_service_bereq_http_timeout_error
1006
+
1007
+ # Number of backend requests from a Compute service that failed due to an HTTP-level error not classified in any category.
1008
+ attr_accessor :compute_service_bereq_http_other_error
1009
+
1010
+ # Number of backend requests from a Compute service that failed due to an error not classified into the DNS, connection, TLS, or HTTP categories.
1011
+ attr_accessor :compute_service_bereq_other_error
1012
+
1013
+ # Number of backend requests from a Compute service where the origin returned a 5xx status code.
1014
+ attr_accessor :compute_service_bereq_5xx_error
1015
+
1016
+ # Number of backend requests from a Compute service that failed at the TCP connection level. Sum of `compute_service_bereq_conn_timeout_error`, `compute_service_bereq_conn_refused_error`, and `compute_service_bereq_conn_other_error`.
1017
+ attr_accessor :compute_service_bereq_conn_error
1018
+
1019
+ # Number of backend requests from a Compute service that failed during the TLS handshake or session with the origin. Sum of `compute_service_bereq_tls_server_cert_error` and `compute_service_bereq_tls_other_error`.
1020
+ attr_accessor :compute_service_bereq_tls_error
1021
+
1022
+ # Number of backend requests from a Compute service that failed at the HTTP protocol level. Sum of `compute_service_bereq_http_proto_v1_error`, `compute_service_bereq_http_proto_v2_error`, `compute_service_bereq_http_incomplete_error`, `compute_service_bereq_http_timeout_error`, and `compute_service_bereq_http_other_error`.
1023
+ attr_accessor :compute_service_bereq_http_error
1024
+
1025
+ # Number of Private Access Token challenges issued.
1026
+ attr_accessor :bot_challenges_pats_issued
1027
+
1028
+ # Number of successful Private Access Token challenge solutions processed.
1029
+ attr_accessor :bot_challenges_pats_succeeded
1030
+
1031
+ # Attribute mapping from ruby-style variable name to JSON key.
1032
+ def self.attribute_map
1033
+ {
1034
+ :'requests' => :'requests',
1035
+ :'logging' => :'logging',
1036
+ :'log' => :'log',
1037
+ :'resp_header_bytes' => :'resp_header_bytes',
1038
+ :'header_size' => :'header_size',
1039
+ :'resp_body_bytes' => :'resp_body_bytes',
1040
+ :'body_size' => :'body_size',
1041
+ :'hits' => :'hits',
1042
+ :'miss' => :'miss',
1043
+ :'pass' => :'pass',
1044
+ :'synth' => :'synth',
1045
+ :'errors' => :'errors',
1046
+ :'hits_time' => :'hits_time',
1047
+ :'miss_time' => :'miss_time',
1048
+ :'miss_histogram' => :'miss_histogram',
1049
+ :'compute_requests' => :'compute_requests',
1050
+ :'compute_execution_time_ms' => :'compute_execution_time_ms',
1051
+ :'compute_ram_used' => :'compute_ram_used',
1052
+ :'compute_request_time_ms' => :'compute_request_time_ms',
1053
+ :'compute_request_time_billed_ms' => :'compute_request_time_billed_ms',
1054
+ :'shield' => :'shield',
1055
+ :'ipv6' => :'ipv6',
1056
+ :'imgopto' => :'imgopto',
1057
+ :'imgopto_shield' => :'imgopto_shield',
1058
+ :'imgopto_transforms' => :'imgopto_transforms',
1059
+ :'otfp' => :'otfp',
1060
+ :'otfp_shield' => :'otfp_shield',
1061
+ :'otfp_manifests' => :'otfp_manifests',
1062
+ :'video' => :'video',
1063
+ :'pci' => :'pci',
1064
+ :'http2' => :'http2',
1065
+ :'http3' => :'http3',
1066
+ :'restarts' => :'restarts',
1067
+ :'req_header_bytes' => :'req_header_bytes',
1068
+ :'req_body_bytes' => :'req_body_bytes',
1069
+ :'bereq_header_bytes' => :'bereq_header_bytes',
1070
+ :'bereq_body_bytes' => :'bereq_body_bytes',
1071
+ :'attack_req_header_bytes' => :'attack_req_header_bytes',
1072
+ :'attack_req_body_bytes' => :'attack_req_body_bytes',
1073
+ :'attack_resp_synth_bytes' => :'attack_resp_synth_bytes',
1074
+ :'attack_logged_req_header_bytes' => :'attack_logged_req_header_bytes',
1075
+ :'attack_logged_req_body_bytes' => :'attack_logged_req_body_bytes',
1076
+ :'attack_blocked_req_header_bytes' => :'attack_blocked_req_header_bytes',
1077
+ :'attack_blocked_req_body_bytes' => :'attack_blocked_req_body_bytes',
1078
+ :'attack_passed_req_header_bytes' => :'attack_passed_req_header_bytes',
1079
+ :'attack_passed_req_body_bytes' => :'attack_passed_req_body_bytes',
1080
+ :'shield_resp_header_bytes' => :'shield_resp_header_bytes',
1081
+ :'shield_resp_body_bytes' => :'shield_resp_body_bytes',
1082
+ :'otfp_resp_header_bytes' => :'otfp_resp_header_bytes',
1083
+ :'otfp_resp_body_bytes' => :'otfp_resp_body_bytes',
1084
+ :'otfp_shield_resp_header_bytes' => :'otfp_shield_resp_header_bytes',
1085
+ :'otfp_shield_resp_body_bytes' => :'otfp_shield_resp_body_bytes',
1086
+ :'otfp_shield_time' => :'otfp_shield_time',
1087
+ :'otfp_deliver_time' => :'otfp_deliver_time',
1088
+ :'imgopto_resp_header_bytes' => :'imgopto_resp_header_bytes',
1089
+ :'imgopto_resp_body_bytes' => :'imgopto_resp_body_bytes',
1090
+ :'imgopto_shield_resp_header_bytes' => :'imgopto_shield_resp_header_bytes',
1091
+ :'imgopto_shield_resp_body_bytes' => :'imgopto_shield_resp_body_bytes',
1092
+ :'status_1xx' => :'status_1xx',
1093
+ :'status_2xx' => :'status_2xx',
1094
+ :'status_3xx' => :'status_3xx',
1095
+ :'status_4xx' => :'status_4xx',
1096
+ :'status_5xx' => :'status_5xx',
1097
+ :'status_200' => :'status_200',
1098
+ :'status_204' => :'status_204',
1099
+ :'status_206' => :'status_206',
1100
+ :'status_301' => :'status_301',
1101
+ :'status_302' => :'status_302',
1102
+ :'status_304' => :'status_304',
1103
+ :'status_400' => :'status_400',
1104
+ :'status_401' => :'status_401',
1105
+ :'status_403' => :'status_403',
1106
+ :'status_404' => :'status_404',
1107
+ :'status_406' => :'status_406',
1108
+ :'status_416' => :'status_416',
1109
+ :'status_429' => :'status_429',
1110
+ :'status_500' => :'status_500',
1111
+ :'status_501' => :'status_501',
1112
+ :'status_502' => :'status_502',
1113
+ :'status_503' => :'status_503',
1114
+ :'status_504' => :'status_504',
1115
+ :'status_505' => :'status_505',
1116
+ :'status_530' => :'status_530',
1117
+ :'uncacheable' => :'uncacheable',
1118
+ :'pass_time' => :'pass_time',
1119
+ :'tls' => :'tls',
1120
+ :'tls_v10' => :'tls_v10',
1121
+ :'tls_v11' => :'tls_v11',
1122
+ :'tls_v12' => :'tls_v12',
1123
+ :'tls_v13' => :'tls_v13',
1124
+ :'object_size_1k' => :'object_size_1k',
1125
+ :'object_size_10k' => :'object_size_10k',
1126
+ :'object_size_100k' => :'object_size_100k',
1127
+ :'object_size_1m' => :'object_size_1m',
1128
+ :'object_size_10m' => :'object_size_10m',
1129
+ :'object_size_100m' => :'object_size_100m',
1130
+ :'object_size_1g' => :'object_size_1g',
1131
+ :'object_size_other' => :'object_size_other',
1132
+ :'recv_sub_time' => :'recv_sub_time',
1133
+ :'recv_sub_count' => :'recv_sub_count',
1134
+ :'hash_sub_time' => :'hash_sub_time',
1135
+ :'hash_sub_count' => :'hash_sub_count',
1136
+ :'miss_sub_time' => :'miss_sub_time',
1137
+ :'miss_sub_count' => :'miss_sub_count',
1138
+ :'fetch_sub_time' => :'fetch_sub_time',
1139
+ :'fetch_sub_count' => :'fetch_sub_count',
1140
+ :'pass_sub_time' => :'pass_sub_time',
1141
+ :'pass_sub_count' => :'pass_sub_count',
1142
+ :'pipe_sub_time' => :'pipe_sub_time',
1143
+ :'pipe_sub_count' => :'pipe_sub_count',
1144
+ :'deliver_sub_time' => :'deliver_sub_time',
1145
+ :'deliver_sub_count' => :'deliver_sub_count',
1146
+ :'error_sub_time' => :'error_sub_time',
1147
+ :'error_sub_count' => :'error_sub_count',
1148
+ :'hit_sub_time' => :'hit_sub_time',
1149
+ :'hit_sub_count' => :'hit_sub_count',
1150
+ :'prehash_sub_time' => :'prehash_sub_time',
1151
+ :'prehash_sub_count' => :'prehash_sub_count',
1152
+ :'predeliver_sub_time' => :'predeliver_sub_time',
1153
+ :'predeliver_sub_count' => :'predeliver_sub_count',
1154
+ :'hit_resp_body_bytes' => :'hit_resp_body_bytes',
1155
+ :'miss_resp_body_bytes' => :'miss_resp_body_bytes',
1156
+ :'pass_resp_body_bytes' => :'pass_resp_body_bytes',
1157
+ :'compute_req_header_bytes' => :'compute_req_header_bytes',
1158
+ :'compute_req_body_bytes' => :'compute_req_body_bytes',
1159
+ :'compute_resp_header_bytes' => :'compute_resp_header_bytes',
1160
+ :'compute_resp_body_bytes' => :'compute_resp_body_bytes',
1161
+ :'imgvideo' => :'imgvideo',
1162
+ :'imgvideo_frames' => :'imgvideo_frames',
1163
+ :'imgvideo_resp_header_bytes' => :'imgvideo_resp_header_bytes',
1164
+ :'imgvideo_resp_body_bytes' => :'imgvideo_resp_body_bytes',
1165
+ :'imgvideo_shield' => :'imgvideo_shield',
1166
+ :'imgvideo_shield_frames' => :'imgvideo_shield_frames',
1167
+ :'imgvideo_shield_resp_header_bytes' => :'imgvideo_shield_resp_header_bytes',
1168
+ :'imgvideo_shield_resp_body_bytes' => :'imgvideo_shield_resp_body_bytes',
1169
+ :'log_bytes' => :'log_bytes',
1170
+ :'edge_requests' => :'edge_requests',
1171
+ :'edge_resp_header_bytes' => :'edge_resp_header_bytes',
1172
+ :'edge_resp_body_bytes' => :'edge_resp_body_bytes',
1173
+ :'origin_revalidations' => :'origin_revalidations',
1174
+ :'origin_fetches' => :'origin_fetches',
1175
+ :'origin_fetch_header_bytes' => :'origin_fetch_header_bytes',
1176
+ :'origin_fetch_body_bytes' => :'origin_fetch_body_bytes',
1177
+ :'origin_fetch_resp_header_bytes' => :'origin_fetch_resp_header_bytes',
1178
+ :'origin_fetch_resp_body_bytes' => :'origin_fetch_resp_body_bytes',
1179
+ :'shield_revalidations' => :'shield_revalidations',
1180
+ :'shield_fetches' => :'shield_fetches',
1181
+ :'shield_fetch_header_bytes' => :'shield_fetch_header_bytes',
1182
+ :'shield_fetch_body_bytes' => :'shield_fetch_body_bytes',
1183
+ :'shield_fetch_resp_header_bytes' => :'shield_fetch_resp_header_bytes',
1184
+ :'shield_fetch_resp_body_bytes' => :'shield_fetch_resp_body_bytes',
1185
+ :'segblock_origin_fetches' => :'segblock_origin_fetches',
1186
+ :'segblock_shield_fetches' => :'segblock_shield_fetches',
1187
+ :'compute_resp_status_1xx' => :'compute_resp_status_1xx',
1188
+ :'compute_resp_status_2xx' => :'compute_resp_status_2xx',
1189
+ :'compute_resp_status_3xx' => :'compute_resp_status_3xx',
1190
+ :'compute_resp_status_4xx' => :'compute_resp_status_4xx',
1191
+ :'compute_resp_status_5xx' => :'compute_resp_status_5xx',
1192
+ :'edge_hit_requests' => :'edge_hit_requests',
1193
+ :'edge_miss_requests' => :'edge_miss_requests',
1194
+ :'compute_bereq_header_bytes' => :'compute_bereq_header_bytes',
1195
+ :'compute_bereq_body_bytes' => :'compute_bereq_body_bytes',
1196
+ :'compute_beresp_header_bytes' => :'compute_beresp_header_bytes',
1197
+ :'compute_beresp_body_bytes' => :'compute_beresp_body_bytes',
1198
+ :'origin_cache_fetches' => :'origin_cache_fetches',
1199
+ :'shield_cache_fetches' => :'shield_cache_fetches',
1200
+ :'compute_bereqs' => :'compute_bereqs',
1201
+ :'compute_bereq_errors' => :'compute_bereq_errors',
1202
+ :'compute_service_bereq_error' => :'compute_service_bereq_error',
1203
+ :'compute_resource_limit_exceeded' => :'compute_resource_limit_exceeded',
1204
+ :'compute_heap_limit_exceeded' => :'compute_heap_limit_exceeded',
1205
+ :'compute_service_memory_exceeded_error' => :'compute_service_memory_exceeded_error',
1206
+ :'compute_stack_limit_exceeded' => :'compute_stack_limit_exceeded',
1207
+ :'compute_globals_limit_exceeded' => :'compute_globals_limit_exceeded',
1208
+ :'compute_guest_errors' => :'compute_guest_errors',
1209
+ :'compute_runtime_errors' => :'compute_runtime_errors',
1210
+ :'edge_hit_resp_body_bytes' => :'edge_hit_resp_body_bytes',
1211
+ :'edge_hit_resp_header_bytes' => :'edge_hit_resp_header_bytes',
1212
+ :'edge_miss_resp_body_bytes' => :'edge_miss_resp_body_bytes',
1213
+ :'edge_miss_resp_header_bytes' => :'edge_miss_resp_header_bytes',
1214
+ :'origin_cache_fetch_resp_body_bytes' => :'origin_cache_fetch_resp_body_bytes',
1215
+ :'origin_cache_fetch_resp_header_bytes' => :'origin_cache_fetch_resp_header_bytes',
1216
+ :'shield_hit_requests' => :'shield_hit_requests',
1217
+ :'shield_miss_requests' => :'shield_miss_requests',
1218
+ :'shield_hit_resp_header_bytes' => :'shield_hit_resp_header_bytes',
1219
+ :'shield_hit_resp_body_bytes' => :'shield_hit_resp_body_bytes',
1220
+ :'shield_miss_resp_header_bytes' => :'shield_miss_resp_header_bytes',
1221
+ :'shield_miss_resp_body_bytes' => :'shield_miss_resp_body_bytes',
1222
+ :'websocket_req_header_bytes' => :'websocket_req_header_bytes',
1223
+ :'websocket_req_body_bytes' => :'websocket_req_body_bytes',
1224
+ :'websocket_resp_header_bytes' => :'websocket_resp_header_bytes',
1225
+ :'websocket_bereq_header_bytes' => :'websocket_bereq_header_bytes',
1226
+ :'websocket_bereq_body_bytes' => :'websocket_bereq_body_bytes',
1227
+ :'websocket_beresp_header_bytes' => :'websocket_beresp_header_bytes',
1228
+ :'websocket_beresp_body_bytes' => :'websocket_beresp_body_bytes',
1229
+ :'websocket_conn_time_ms' => :'websocket_conn_time_ms',
1230
+ :'websocket_resp_body_bytes' => :'websocket_resp_body_bytes',
1231
+ :'fanout_recv_publishes' => :'fanout_recv_publishes',
1232
+ :'fanout_send_publishes' => :'fanout_send_publishes',
1233
+ :'kv_store_class_a_operations' => :'kv_store_class_a_operations',
1234
+ :'kv_store_class_b_operations' => :'kv_store_class_b_operations',
1235
+ :'object_store_class_a_operations' => :'object_store_class_a_operations',
1236
+ :'object_store_class_b_operations' => :'object_store_class_b_operations',
1237
+ :'fanout_req_header_bytes' => :'fanout_req_header_bytes',
1238
+ :'fanout_req_body_bytes' => :'fanout_req_body_bytes',
1239
+ :'fanout_resp_header_bytes' => :'fanout_resp_header_bytes',
1240
+ :'fanout_resp_body_bytes' => :'fanout_resp_body_bytes',
1241
+ :'fanout_bereq_header_bytes' => :'fanout_bereq_header_bytes',
1242
+ :'fanout_bereq_body_bytes' => :'fanout_bereq_body_bytes',
1243
+ :'fanout_beresp_header_bytes' => :'fanout_beresp_header_bytes',
1244
+ :'fanout_beresp_body_bytes' => :'fanout_beresp_body_bytes',
1245
+ :'fanout_conn_time_ms' => :'fanout_conn_time_ms',
1246
+ :'ddos_action_limit_streams_connections' => :'ddos_action_limit_streams_connections',
1247
+ :'ddos_action_limit_streams_requests' => :'ddos_action_limit_streams_requests',
1248
+ :'ddos_action_tarpit_accept' => :'ddos_action_tarpit_accept',
1249
+ :'ddos_action_tarpit' => :'ddos_action_tarpit',
1250
+ :'ddos_action_close' => :'ddos_action_close',
1251
+ :'ddos_action_blackhole' => :'ddos_action_blackhole',
1252
+ :'bot_challenge_starts' => :'bot_challenge_starts',
1253
+ :'bot_challenge_complete_tokens_passed' => :'bot_challenge_complete_tokens_passed',
1254
+ :'bot_challenge_complete_tokens_failed' => :'bot_challenge_complete_tokens_failed',
1255
+ :'bot_challenge_complete_tokens_checked' => :'bot_challenge_complete_tokens_checked',
1256
+ :'bot_challenge_complete_tokens_disabled' => :'bot_challenge_complete_tokens_disabled',
1257
+ :'bot_challenges_issued' => :'bot_challenges_issued',
1258
+ :'bot_challenges_succeeded' => :'bot_challenges_succeeded',
1259
+ :'bot_challenges_failed' => :'bot_challenges_failed',
1260
+ :'bot_challenge_complete_tokens_issued' => :'bot_challenge_complete_tokens_issued',
1261
+ :'ddos_action_downgrade' => :'ddos_action_downgrade',
1262
+ :'ddos_action_downgraded_connections' => :'ddos_action_downgraded_connections',
1263
+ :'all_hit_requests' => :'all_hit_requests',
1264
+ :'all_miss_requests' => :'all_miss_requests',
1265
+ :'all_pass_requests' => :'all_pass_requests',
1266
+ :'all_error_requests' => :'all_error_requests',
1267
+ :'all_synth_requests' => :'all_synth_requests',
1268
+ :'all_edge_hit_requests' => :'all_edge_hit_requests',
1269
+ :'all_edge_miss_requests' => :'all_edge_miss_requests',
1270
+ :'all_status_1xx' => :'all_status_1xx',
1271
+ :'all_status_2xx' => :'all_status_2xx',
1272
+ :'all_status_3xx' => :'all_status_3xx',
1273
+ :'all_status_4xx' => :'all_status_4xx',
1274
+ :'all_status_5xx' => :'all_status_5xx',
1275
+ :'origin_offload' => :'origin_offload',
1276
+ :'request_denied_get_head_body' => :'request_denied_get_head_body',
1277
+ :'ddos_protection_requests_detect_count' => :'ddos_protection_requests_detect_count',
1278
+ :'ddos_protection_requests_mitigate_count' => :'ddos_protection_requests_mitigate_count',
1279
+ :'ddos_protection_requests_allow_count' => :'ddos_protection_requests_allow_count',
1280
+ :'object_storage_class_a_operations_count' => :'object_storage_class_a_operations_count',
1281
+ :'object_storage_class_b_operations_count' => :'object_storage_class_b_operations_count',
1282
+ :'aia_requests' => :'aia_requests',
1283
+ :'aia_status_1xx' => :'aia_status_1xx',
1284
+ :'aia_status_2xx' => :'aia_status_2xx',
1285
+ :'aia_status_3xx' => :'aia_status_3xx',
1286
+ :'aia_status_4xx' => :'aia_status_4xx',
1287
+ :'aia_status_5xx' => :'aia_status_5xx',
1288
+ :'aia_response_usage_tokens' => :'aia_response_usage_tokens',
1289
+ :'aia_origin_usage_tokens' => :'aia_origin_usage_tokens',
1290
+ :'aia_estimated_time_saved_ms' => :'aia_estimated_time_saved_ms',
1291
+ :'request_collapse_usable_count' => :'request_collapse_usable_count',
1292
+ :'request_collapse_unusable_count' => :'request_collapse_unusable_count',
1293
+ :'compute_cache_operations_count' => :'compute_cache_operations_count',
1294
+ :'api_discovery_requests_count' => :'api_discovery_requests_count',
1295
+ :'compute_resp_status_103' => :'compute_resp_status_103',
1296
+ :'compute_resp_status_200' => :'compute_resp_status_200',
1297
+ :'compute_resp_status_204' => :'compute_resp_status_204',
1298
+ :'compute_resp_status_206' => :'compute_resp_status_206',
1299
+ :'compute_resp_status_301' => :'compute_resp_status_301',
1300
+ :'compute_resp_status_302' => :'compute_resp_status_302',
1301
+ :'compute_resp_status_304' => :'compute_resp_status_304',
1302
+ :'compute_resp_status_400' => :'compute_resp_status_400',
1303
+ :'compute_resp_status_401' => :'compute_resp_status_401',
1304
+ :'compute_resp_status_403' => :'compute_resp_status_403',
1305
+ :'compute_resp_status_404' => :'compute_resp_status_404',
1306
+ :'compute_resp_status_416' => :'compute_resp_status_416',
1307
+ :'compute_resp_status_429' => :'compute_resp_status_429',
1308
+ :'compute_resp_status_500' => :'compute_resp_status_500',
1309
+ :'compute_resp_status_501' => :'compute_resp_status_501',
1310
+ :'compute_resp_status_502' => :'compute_resp_status_502',
1311
+ :'compute_resp_status_503' => :'compute_resp_status_503',
1312
+ :'compute_resp_status_504' => :'compute_resp_status_504',
1313
+ :'compute_resp_status_505' => :'compute_resp_status_505',
1314
+ :'compute_resp_status_530' => :'compute_resp_status_530',
1315
+ :'imgopto_compute_requests' => :'imgopto_compute_requests',
1316
+ :'dns_billable_responses_count' => :'dns_billable_responses_count',
1317
+ :'dns_nonbillable_responses_count' => :'dns_nonbillable_responses_count',
1318
+ :'upgrade' => :'upgrade',
1319
+ :'ngwaf_bot_analysis_request_count' => :'ngwaf_bot_analysis_request_count',
1320
+ :'imgopto_avif_count' => :'imgopto_avif_count',
1321
+ :'imgopto_jpeg_count' => :'imgopto_jpeg_count',
1322
+ :'imgopto_png_count' => :'imgopto_png_count',
1323
+ :'imgopto_gif_count' => :'imgopto_gif_count',
1324
+ :'imgopto_webp_count' => :'imgopto_webp_count',
1325
+ :'imgopto_jpegxl_count' => :'imgopto_jpegxl_count',
1326
+ :'imgopto_svg_count' => :'imgopto_svg_count',
1327
+ :'imgopto_mp4_count' => :'imgopto_mp4_count',
1328
+ :'compute_service_resource_limits_error' => :'compute_service_resource_limits_error',
1329
+ :'compute_service_runtime_error' => :'compute_service_runtime_error',
1330
+ :'compute_service_chain_error' => :'compute_service_chain_error',
1331
+ :'compute_platform_internal_error' => :'compute_platform_internal_error',
1332
+ :'compute_service_timeout_error' => :'compute_service_timeout_error',
1333
+ :'compute_service_vcpu_exceeded_error' => :'compute_service_vcpu_exceeded_error',
1334
+ :'compute_service_limits_error' => :'compute_service_limits_error',
1335
+ :'compute_platform_invalid_request_error' => :'compute_platform_invalid_request_error',
1336
+ :'compute_sandboxes' => :'compute_sandboxes',
1337
+ :'bot_requests_total_count' => :'bot_requests_total_count',
1338
+ :'bot_edge_requests_analyzed_count' => :'bot_edge_requests_analyzed_count',
1339
+ :'bot_edge_requests_detected_count' => :'bot_edge_requests_detected_count',
1340
+ :'bot_edge_requests_verified_count' => :'bot_edge_requests_verified_count',
1341
+ :'bot_edge_requests_ai_crawler_count' => :'bot_edge_requests_ai_crawler_count',
1342
+ :'bot_edge_requests_ai_fetcher_count' => :'bot_edge_requests_ai_fetcher_count',
1343
+ :'bot_edge_requests_accessibility_count' => :'bot_edge_requests_accessibility_count',
1344
+ :'bot_edge_requests_content_fetcher_count' => :'bot_edge_requests_content_fetcher_count',
1345
+ :'bot_edge_requests_monitoring_count' => :'bot_edge_requests_monitoring_count',
1346
+ :'bot_edge_requests_online_marketing_count' => :'bot_edge_requests_online_marketing_count',
1347
+ :'bot_edge_requests_page_preview_count' => :'bot_edge_requests_page_preview_count',
1348
+ :'bot_edge_requests_platform_integrations_count' => :'bot_edge_requests_platform_integrations_count',
1349
+ :'bot_edge_requests_research_count' => :'bot_edge_requests_research_count',
1350
+ :'bot_edge_requests_search_engine_crawler_count' => :'bot_edge_requests_search_engine_crawler_count',
1351
+ :'bot_edge_requests_search_engine_optimization_count' => :'bot_edge_requests_search_engine_optimization_count',
1352
+ :'bot_edge_requests_security_tools_count' => :'bot_edge_requests_security_tools_count',
1353
+ :'compute_handoff' => :'compute_handoff',
1354
+ :'compute_service_bereq_dns_error' => :'compute_service_bereq_dns_error',
1355
+ :'compute_service_bereq_conn_timeout_error' => :'compute_service_bereq_conn_timeout_error',
1356
+ :'compute_service_bereq_conn_refused_error' => :'compute_service_bereq_conn_refused_error',
1357
+ :'compute_service_bereq_conn_other_error' => :'compute_service_bereq_conn_other_error',
1358
+ :'compute_service_bereq_tls_server_cert_error' => :'compute_service_bereq_tls_server_cert_error',
1359
+ :'compute_service_bereq_tls_other_error' => :'compute_service_bereq_tls_other_error',
1360
+ :'compute_service_bereq_http_proto_v1_error' => :'compute_service_bereq_http_proto_v1_error',
1361
+ :'compute_service_bereq_http_proto_v2_error' => :'compute_service_bereq_http_proto_v2_error',
1362
+ :'compute_service_bereq_http_incomplete_error' => :'compute_service_bereq_http_incomplete_error',
1363
+ :'compute_service_bereq_http_timeout_error' => :'compute_service_bereq_http_timeout_error',
1364
+ :'compute_service_bereq_http_other_error' => :'compute_service_bereq_http_other_error',
1365
+ :'compute_service_bereq_other_error' => :'compute_service_bereq_other_error',
1366
+ :'compute_service_bereq_5xx_error' => :'compute_service_bereq_5xx_error',
1367
+ :'compute_service_bereq_conn_error' => :'compute_service_bereq_conn_error',
1368
+ :'compute_service_bereq_tls_error' => :'compute_service_bereq_tls_error',
1369
+ :'compute_service_bereq_http_error' => :'compute_service_bereq_http_error',
1370
+ :'bot_challenges_pats_issued' => :'bot_challenges_pats_issued',
1371
+ :'bot_challenges_pats_succeeded' => :'bot_challenges_pats_succeeded'
1372
+ }
1373
+ end
1374
+
1375
+ # Returns all the JSON keys this model knows about
1376
+ def self.acceptable_attributes
1377
+ attribute_map.values
1378
+ end
1379
+
1380
+ # Attribute type mapping.
1381
+ def self.fastly_types
1382
+ {
1383
+ :'requests' => :'Integer',
1384
+ :'logging' => :'Integer',
1385
+ :'log' => :'Integer',
1386
+ :'resp_header_bytes' => :'Integer',
1387
+ :'header_size' => :'Integer',
1388
+ :'resp_body_bytes' => :'Integer',
1389
+ :'body_size' => :'Integer',
1390
+ :'hits' => :'Integer',
1391
+ :'miss' => :'Integer',
1392
+ :'pass' => :'Integer',
1393
+ :'synth' => :'Integer',
1394
+ :'errors' => :'Integer',
1395
+ :'hits_time' => :'Float',
1396
+ :'miss_time' => :'Float',
1397
+ :'miss_histogram' => :'Hash<String, Object>',
1398
+ :'compute_requests' => :'Integer',
1399
+ :'compute_execution_time_ms' => :'Float',
1400
+ :'compute_ram_used' => :'Integer',
1401
+ :'compute_request_time_ms' => :'Float',
1402
+ :'compute_request_time_billed_ms' => :'Float',
1403
+ :'shield' => :'Integer',
1404
+ :'ipv6' => :'Integer',
1405
+ :'imgopto' => :'Integer',
1406
+ :'imgopto_shield' => :'Integer',
1407
+ :'imgopto_transforms' => :'Integer',
1408
+ :'otfp' => :'Integer',
1409
+ :'otfp_shield' => :'Integer',
1410
+ :'otfp_manifests' => :'Integer',
1411
+ :'video' => :'Integer',
1412
+ :'pci' => :'Integer',
1413
+ :'http2' => :'Integer',
1414
+ :'http3' => :'Integer',
1415
+ :'restarts' => :'Integer',
1416
+ :'req_header_bytes' => :'Integer',
1417
+ :'req_body_bytes' => :'Integer',
1418
+ :'bereq_header_bytes' => :'Integer',
1419
+ :'bereq_body_bytes' => :'Integer',
1420
+ :'attack_req_header_bytes' => :'Integer',
1421
+ :'attack_req_body_bytes' => :'Integer',
1422
+ :'attack_resp_synth_bytes' => :'Integer',
1423
+ :'attack_logged_req_header_bytes' => :'Integer',
1424
+ :'attack_logged_req_body_bytes' => :'Integer',
1425
+ :'attack_blocked_req_header_bytes' => :'Integer',
1426
+ :'attack_blocked_req_body_bytes' => :'Integer',
1427
+ :'attack_passed_req_header_bytes' => :'Integer',
1428
+ :'attack_passed_req_body_bytes' => :'Integer',
1429
+ :'shield_resp_header_bytes' => :'Integer',
1430
+ :'shield_resp_body_bytes' => :'Integer',
1431
+ :'otfp_resp_header_bytes' => :'Integer',
1432
+ :'otfp_resp_body_bytes' => :'Integer',
1433
+ :'otfp_shield_resp_header_bytes' => :'Integer',
1434
+ :'otfp_shield_resp_body_bytes' => :'Integer',
1435
+ :'otfp_shield_time' => :'Float',
1436
+ :'otfp_deliver_time' => :'Float',
1437
+ :'imgopto_resp_header_bytes' => :'Integer',
1438
+ :'imgopto_resp_body_bytes' => :'Integer',
1439
+ :'imgopto_shield_resp_header_bytes' => :'Integer',
1440
+ :'imgopto_shield_resp_body_bytes' => :'Integer',
1441
+ :'status_1xx' => :'Integer',
1442
+ :'status_2xx' => :'Integer',
1443
+ :'status_3xx' => :'Integer',
1444
+ :'status_4xx' => :'Integer',
1445
+ :'status_5xx' => :'Integer',
1446
+ :'status_200' => :'Integer',
1447
+ :'status_204' => :'Integer',
1448
+ :'status_206' => :'Integer',
1449
+ :'status_301' => :'Integer',
1450
+ :'status_302' => :'Integer',
1451
+ :'status_304' => :'Integer',
1452
+ :'status_400' => :'Integer',
1453
+ :'status_401' => :'Integer',
1454
+ :'status_403' => :'Integer',
1455
+ :'status_404' => :'Integer',
1456
+ :'status_406' => :'Integer',
1457
+ :'status_416' => :'Integer',
1458
+ :'status_429' => :'Integer',
1459
+ :'status_500' => :'Integer',
1460
+ :'status_501' => :'Integer',
1461
+ :'status_502' => :'Integer',
1462
+ :'status_503' => :'Integer',
1463
+ :'status_504' => :'Integer',
1464
+ :'status_505' => :'Integer',
1465
+ :'status_530' => :'Integer',
1466
+ :'uncacheable' => :'Integer',
1467
+ :'pass_time' => :'Float',
1468
+ :'tls' => :'Integer',
1469
+ :'tls_v10' => :'Integer',
1470
+ :'tls_v11' => :'Integer',
1471
+ :'tls_v12' => :'Integer',
1472
+ :'tls_v13' => :'Integer',
1473
+ :'object_size_1k' => :'Integer',
1474
+ :'object_size_10k' => :'Integer',
1475
+ :'object_size_100k' => :'Integer',
1476
+ :'object_size_1m' => :'Integer',
1477
+ :'object_size_10m' => :'Integer',
1478
+ :'object_size_100m' => :'Integer',
1479
+ :'object_size_1g' => :'Integer',
1480
+ :'object_size_other' => :'Integer',
1481
+ :'recv_sub_time' => :'Float',
1482
+ :'recv_sub_count' => :'Integer',
1483
+ :'hash_sub_time' => :'Float',
1484
+ :'hash_sub_count' => :'Integer',
1485
+ :'miss_sub_time' => :'Float',
1486
+ :'miss_sub_count' => :'Integer',
1487
+ :'fetch_sub_time' => :'Float',
1488
+ :'fetch_sub_count' => :'Integer',
1489
+ :'pass_sub_time' => :'Float',
1490
+ :'pass_sub_count' => :'Integer',
1491
+ :'pipe_sub_time' => :'Float',
1492
+ :'pipe_sub_count' => :'Integer',
1493
+ :'deliver_sub_time' => :'Float',
1494
+ :'deliver_sub_count' => :'Integer',
1495
+ :'error_sub_time' => :'Float',
1496
+ :'error_sub_count' => :'Integer',
1497
+ :'hit_sub_time' => :'Float',
1498
+ :'hit_sub_count' => :'Integer',
1499
+ :'prehash_sub_time' => :'Float',
1500
+ :'prehash_sub_count' => :'Integer',
1501
+ :'predeliver_sub_time' => :'Float',
1502
+ :'predeliver_sub_count' => :'Integer',
1503
+ :'hit_resp_body_bytes' => :'Integer',
1504
+ :'miss_resp_body_bytes' => :'Integer',
1505
+ :'pass_resp_body_bytes' => :'Integer',
1506
+ :'compute_req_header_bytes' => :'Integer',
1507
+ :'compute_req_body_bytes' => :'Integer',
1508
+ :'compute_resp_header_bytes' => :'Integer',
1509
+ :'compute_resp_body_bytes' => :'Integer',
1510
+ :'imgvideo' => :'Integer',
1511
+ :'imgvideo_frames' => :'Integer',
1512
+ :'imgvideo_resp_header_bytes' => :'Integer',
1513
+ :'imgvideo_resp_body_bytes' => :'Integer',
1514
+ :'imgvideo_shield' => :'Integer',
1515
+ :'imgvideo_shield_frames' => :'Integer',
1516
+ :'imgvideo_shield_resp_header_bytes' => :'Integer',
1517
+ :'imgvideo_shield_resp_body_bytes' => :'Integer',
1518
+ :'log_bytes' => :'Integer',
1519
+ :'edge_requests' => :'Integer',
1520
+ :'edge_resp_header_bytes' => :'Integer',
1521
+ :'edge_resp_body_bytes' => :'Integer',
1522
+ :'origin_revalidations' => :'Integer',
1523
+ :'origin_fetches' => :'Integer',
1524
+ :'origin_fetch_header_bytes' => :'Integer',
1525
+ :'origin_fetch_body_bytes' => :'Integer',
1526
+ :'origin_fetch_resp_header_bytes' => :'Integer',
1527
+ :'origin_fetch_resp_body_bytes' => :'Integer',
1528
+ :'shield_revalidations' => :'Integer',
1529
+ :'shield_fetches' => :'Integer',
1530
+ :'shield_fetch_header_bytes' => :'Integer',
1531
+ :'shield_fetch_body_bytes' => :'Integer',
1532
+ :'shield_fetch_resp_header_bytes' => :'Integer',
1533
+ :'shield_fetch_resp_body_bytes' => :'Integer',
1534
+ :'segblock_origin_fetches' => :'Integer',
1535
+ :'segblock_shield_fetches' => :'Integer',
1536
+ :'compute_resp_status_1xx' => :'Integer',
1537
+ :'compute_resp_status_2xx' => :'Integer',
1538
+ :'compute_resp_status_3xx' => :'Integer',
1539
+ :'compute_resp_status_4xx' => :'Integer',
1540
+ :'compute_resp_status_5xx' => :'Integer',
1541
+ :'edge_hit_requests' => :'Integer',
1542
+ :'edge_miss_requests' => :'Integer',
1543
+ :'compute_bereq_header_bytes' => :'Integer',
1544
+ :'compute_bereq_body_bytes' => :'Integer',
1545
+ :'compute_beresp_header_bytes' => :'Integer',
1546
+ :'compute_beresp_body_bytes' => :'Integer',
1547
+ :'origin_cache_fetches' => :'Integer',
1548
+ :'shield_cache_fetches' => :'Integer',
1549
+ :'compute_bereqs' => :'Integer',
1550
+ :'compute_bereq_errors' => :'Integer',
1551
+ :'compute_service_bereq_error' => :'Integer',
1552
+ :'compute_resource_limit_exceeded' => :'Integer',
1553
+ :'compute_heap_limit_exceeded' => :'Integer',
1554
+ :'compute_service_memory_exceeded_error' => :'Integer',
1555
+ :'compute_stack_limit_exceeded' => :'Integer',
1556
+ :'compute_globals_limit_exceeded' => :'Integer',
1557
+ :'compute_guest_errors' => :'Integer',
1558
+ :'compute_runtime_errors' => :'Integer',
1559
+ :'edge_hit_resp_body_bytes' => :'Integer',
1560
+ :'edge_hit_resp_header_bytes' => :'Integer',
1561
+ :'edge_miss_resp_body_bytes' => :'Integer',
1562
+ :'edge_miss_resp_header_bytes' => :'Integer',
1563
+ :'origin_cache_fetch_resp_body_bytes' => :'Integer',
1564
+ :'origin_cache_fetch_resp_header_bytes' => :'Integer',
1565
+ :'shield_hit_requests' => :'Integer',
1566
+ :'shield_miss_requests' => :'Integer',
1567
+ :'shield_hit_resp_header_bytes' => :'Integer',
1568
+ :'shield_hit_resp_body_bytes' => :'Integer',
1569
+ :'shield_miss_resp_header_bytes' => :'Integer',
1570
+ :'shield_miss_resp_body_bytes' => :'Integer',
1571
+ :'websocket_req_header_bytes' => :'Integer',
1572
+ :'websocket_req_body_bytes' => :'Integer',
1573
+ :'websocket_resp_header_bytes' => :'Integer',
1574
+ :'websocket_bereq_header_bytes' => :'Integer',
1575
+ :'websocket_bereq_body_bytes' => :'Integer',
1576
+ :'websocket_beresp_header_bytes' => :'Integer',
1577
+ :'websocket_beresp_body_bytes' => :'Integer',
1578
+ :'websocket_conn_time_ms' => :'Integer',
1579
+ :'websocket_resp_body_bytes' => :'Integer',
1580
+ :'fanout_recv_publishes' => :'Integer',
1581
+ :'fanout_send_publishes' => :'Integer',
1582
+ :'kv_store_class_a_operations' => :'Integer',
1583
+ :'kv_store_class_b_operations' => :'Integer',
1584
+ :'object_store_class_a_operations' => :'Integer',
1585
+ :'object_store_class_b_operations' => :'Integer',
1586
+ :'fanout_req_header_bytes' => :'Integer',
1587
+ :'fanout_req_body_bytes' => :'Integer',
1588
+ :'fanout_resp_header_bytes' => :'Integer',
1589
+ :'fanout_resp_body_bytes' => :'Integer',
1590
+ :'fanout_bereq_header_bytes' => :'Integer',
1591
+ :'fanout_bereq_body_bytes' => :'Integer',
1592
+ :'fanout_beresp_header_bytes' => :'Integer',
1593
+ :'fanout_beresp_body_bytes' => :'Integer',
1594
+ :'fanout_conn_time_ms' => :'Integer',
1595
+ :'ddos_action_limit_streams_connections' => :'Integer',
1596
+ :'ddos_action_limit_streams_requests' => :'Integer',
1597
+ :'ddos_action_tarpit_accept' => :'Integer',
1598
+ :'ddos_action_tarpit' => :'Integer',
1599
+ :'ddos_action_close' => :'Integer',
1600
+ :'ddos_action_blackhole' => :'Integer',
1601
+ :'bot_challenge_starts' => :'Integer',
1602
+ :'bot_challenge_complete_tokens_passed' => :'Integer',
1603
+ :'bot_challenge_complete_tokens_failed' => :'Integer',
1604
+ :'bot_challenge_complete_tokens_checked' => :'Integer',
1605
+ :'bot_challenge_complete_tokens_disabled' => :'Integer',
1606
+ :'bot_challenges_issued' => :'Integer',
1607
+ :'bot_challenges_succeeded' => :'Integer',
1608
+ :'bot_challenges_failed' => :'Integer',
1609
+ :'bot_challenge_complete_tokens_issued' => :'Integer',
1610
+ :'ddos_action_downgrade' => :'Integer',
1611
+ :'ddos_action_downgraded_connections' => :'Integer',
1612
+ :'all_hit_requests' => :'Integer',
1613
+ :'all_miss_requests' => :'Integer',
1614
+ :'all_pass_requests' => :'Integer',
1615
+ :'all_error_requests' => :'Integer',
1616
+ :'all_synth_requests' => :'Integer',
1617
+ :'all_edge_hit_requests' => :'Integer',
1618
+ :'all_edge_miss_requests' => :'Integer',
1619
+ :'all_status_1xx' => :'Integer',
1620
+ :'all_status_2xx' => :'Integer',
1621
+ :'all_status_3xx' => :'Integer',
1622
+ :'all_status_4xx' => :'Integer',
1623
+ :'all_status_5xx' => :'Integer',
1624
+ :'origin_offload' => :'Float',
1625
+ :'request_denied_get_head_body' => :'Integer',
1626
+ :'ddos_protection_requests_detect_count' => :'Integer',
1627
+ :'ddos_protection_requests_mitigate_count' => :'Integer',
1628
+ :'ddos_protection_requests_allow_count' => :'Integer',
1629
+ :'object_storage_class_a_operations_count' => :'Integer',
1630
+ :'object_storage_class_b_operations_count' => :'Integer',
1631
+ :'aia_requests' => :'Integer',
1632
+ :'aia_status_1xx' => :'Integer',
1633
+ :'aia_status_2xx' => :'Integer',
1634
+ :'aia_status_3xx' => :'Integer',
1635
+ :'aia_status_4xx' => :'Integer',
1636
+ :'aia_status_5xx' => :'Integer',
1637
+ :'aia_response_usage_tokens' => :'Integer',
1638
+ :'aia_origin_usage_tokens' => :'Integer',
1639
+ :'aia_estimated_time_saved_ms' => :'Integer',
1640
+ :'request_collapse_usable_count' => :'Integer',
1641
+ :'request_collapse_unusable_count' => :'Integer',
1642
+ :'compute_cache_operations_count' => :'Integer',
1643
+ :'api_discovery_requests_count' => :'Integer',
1644
+ :'compute_resp_status_103' => :'Integer',
1645
+ :'compute_resp_status_200' => :'Integer',
1646
+ :'compute_resp_status_204' => :'Integer',
1647
+ :'compute_resp_status_206' => :'Integer',
1648
+ :'compute_resp_status_301' => :'Integer',
1649
+ :'compute_resp_status_302' => :'Integer',
1650
+ :'compute_resp_status_304' => :'Integer',
1651
+ :'compute_resp_status_400' => :'Integer',
1652
+ :'compute_resp_status_401' => :'Integer',
1653
+ :'compute_resp_status_403' => :'Integer',
1654
+ :'compute_resp_status_404' => :'Integer',
1655
+ :'compute_resp_status_416' => :'Integer',
1656
+ :'compute_resp_status_429' => :'Integer',
1657
+ :'compute_resp_status_500' => :'Integer',
1658
+ :'compute_resp_status_501' => :'Integer',
1659
+ :'compute_resp_status_502' => :'Integer',
1660
+ :'compute_resp_status_503' => :'Integer',
1661
+ :'compute_resp_status_504' => :'Integer',
1662
+ :'compute_resp_status_505' => :'Integer',
1663
+ :'compute_resp_status_530' => :'Integer',
1664
+ :'imgopto_compute_requests' => :'Integer',
1665
+ :'dns_billable_responses_count' => :'Integer',
1666
+ :'dns_nonbillable_responses_count' => :'Integer',
1667
+ :'upgrade' => :'Integer',
1668
+ :'ngwaf_bot_analysis_request_count' => :'Integer',
1669
+ :'imgopto_avif_count' => :'Integer',
1670
+ :'imgopto_jpeg_count' => :'Integer',
1671
+ :'imgopto_png_count' => :'Integer',
1672
+ :'imgopto_gif_count' => :'Integer',
1673
+ :'imgopto_webp_count' => :'Integer',
1674
+ :'imgopto_jpegxl_count' => :'Integer',
1675
+ :'imgopto_svg_count' => :'Integer',
1676
+ :'imgopto_mp4_count' => :'Integer',
1677
+ :'compute_service_resource_limits_error' => :'Integer',
1678
+ :'compute_service_runtime_error' => :'Integer',
1679
+ :'compute_service_chain_error' => :'Integer',
1680
+ :'compute_platform_internal_error' => :'Integer',
1681
+ :'compute_service_timeout_error' => :'Integer',
1682
+ :'compute_service_vcpu_exceeded_error' => :'Integer',
1683
+ :'compute_service_limits_error' => :'Integer',
1684
+ :'compute_platform_invalid_request_error' => :'Integer',
1685
+ :'compute_sandboxes' => :'Integer',
1686
+ :'bot_requests_total_count' => :'Integer',
1687
+ :'bot_edge_requests_analyzed_count' => :'Integer',
1688
+ :'bot_edge_requests_detected_count' => :'Integer',
1689
+ :'bot_edge_requests_verified_count' => :'Integer',
1690
+ :'bot_edge_requests_ai_crawler_count' => :'Integer',
1691
+ :'bot_edge_requests_ai_fetcher_count' => :'Integer',
1692
+ :'bot_edge_requests_accessibility_count' => :'Integer',
1693
+ :'bot_edge_requests_content_fetcher_count' => :'Integer',
1694
+ :'bot_edge_requests_monitoring_count' => :'Integer',
1695
+ :'bot_edge_requests_online_marketing_count' => :'Integer',
1696
+ :'bot_edge_requests_page_preview_count' => :'Integer',
1697
+ :'bot_edge_requests_platform_integrations_count' => :'Integer',
1698
+ :'bot_edge_requests_research_count' => :'Integer',
1699
+ :'bot_edge_requests_search_engine_crawler_count' => :'Integer',
1700
+ :'bot_edge_requests_search_engine_optimization_count' => :'Integer',
1701
+ :'bot_edge_requests_security_tools_count' => :'Integer',
1702
+ :'compute_handoff' => :'Integer',
1703
+ :'compute_service_bereq_dns_error' => :'Integer',
1704
+ :'compute_service_bereq_conn_timeout_error' => :'Integer',
1705
+ :'compute_service_bereq_conn_refused_error' => :'Integer',
1706
+ :'compute_service_bereq_conn_other_error' => :'Integer',
1707
+ :'compute_service_bereq_tls_server_cert_error' => :'Integer',
1708
+ :'compute_service_bereq_tls_other_error' => :'Integer',
1709
+ :'compute_service_bereq_http_proto_v1_error' => :'Integer',
1710
+ :'compute_service_bereq_http_proto_v2_error' => :'Integer',
1711
+ :'compute_service_bereq_http_incomplete_error' => :'Integer',
1712
+ :'compute_service_bereq_http_timeout_error' => :'Integer',
1713
+ :'compute_service_bereq_http_other_error' => :'Integer',
1714
+ :'compute_service_bereq_other_error' => :'Integer',
1715
+ :'compute_service_bereq_5xx_error' => :'Integer',
1716
+ :'compute_service_bereq_conn_error' => :'Integer',
1717
+ :'compute_service_bereq_tls_error' => :'Integer',
1718
+ :'compute_service_bereq_http_error' => :'Integer',
1719
+ :'bot_challenges_pats_issued' => :'Integer',
1720
+ :'bot_challenges_pats_succeeded' => :'Integer'
1721
+ }
1722
+ end
1723
+
1724
+ # List of attributes with nullable: true
1725
+ def self.fastly_nullable
1726
+ Set.new([
1727
+ ])
1728
+ end
1729
+
1730
+ # List of class defined in allOf (OpenAPI v3)
1731
+ def self.fastly_all_of
1732
+ [
1733
+ :'RealtimeMeasurements'
1734
+ ]
1735
+ end
1736
+
1737
+ # Initializes the object
1738
+ # @param [Hash] attributes Model attributes in the form of hash
1739
+ def initialize(attributes = {})
1740
+ if (!attributes.is_a?(Hash))
1741
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Fastly::RealtimeEntryDatacenter` initialize method"
1742
+ end
1743
+
1744
+ # check to see if the attribute exists and convert string to symbol for hash key
1745
+ attributes = attributes.each_with_object({}) { |(k, v), h|
1746
+ if (!self.class.attribute_map.key?(k.to_sym))
1747
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Fastly::RealtimeEntryDatacenter`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
1748
+ end
1749
+ h[k.to_sym] = v
1750
+ }
1751
+
1752
+ if attributes.key?(:'requests')
1753
+ self.requests = attributes[:'requests']
1754
+ end
1755
+
1756
+ if attributes.key?(:'logging')
1757
+ self.logging = attributes[:'logging']
1758
+ end
1759
+
1760
+ if attributes.key?(:'log')
1761
+ self.log = attributes[:'log']
1762
+ end
1763
+
1764
+ if attributes.key?(:'resp_header_bytes')
1765
+ self.resp_header_bytes = attributes[:'resp_header_bytes']
1766
+ end
1767
+
1768
+ if attributes.key?(:'header_size')
1769
+ self.header_size = attributes[:'header_size']
1770
+ end
1771
+
1772
+ if attributes.key?(:'resp_body_bytes')
1773
+ self.resp_body_bytes = attributes[:'resp_body_bytes']
1774
+ end
1775
+
1776
+ if attributes.key?(:'body_size')
1777
+ self.body_size = attributes[:'body_size']
1778
+ end
1779
+
1780
+ if attributes.key?(:'hits')
1781
+ self.hits = attributes[:'hits']
1782
+ end
1783
+
1784
+ if attributes.key?(:'miss')
1785
+ self.miss = attributes[:'miss']
1786
+ end
1787
+
1788
+ if attributes.key?(:'pass')
1789
+ self.pass = attributes[:'pass']
1790
+ end
1791
+
1792
+ if attributes.key?(:'synth')
1793
+ self.synth = attributes[:'synth']
1794
+ end
1795
+
1796
+ if attributes.key?(:'errors')
1797
+ self.errors = attributes[:'errors']
1798
+ end
1799
+
1800
+ if attributes.key?(:'hits_time')
1801
+ self.hits_time = attributes[:'hits_time']
1802
+ end
1803
+
1804
+ if attributes.key?(:'miss_time')
1805
+ self.miss_time = attributes[:'miss_time']
1806
+ end
1807
+
1808
+ if attributes.key?(:'miss_histogram')
1809
+ if (value = attributes[:'miss_histogram']).is_a?(Hash)
1810
+ self.miss_histogram = value
1811
+ end
1812
+ end
1813
+
1814
+ if attributes.key?(:'compute_requests')
1815
+ self.compute_requests = attributes[:'compute_requests']
1816
+ end
1817
+
1818
+ if attributes.key?(:'compute_execution_time_ms')
1819
+ self.compute_execution_time_ms = attributes[:'compute_execution_time_ms']
1820
+ end
1821
+
1822
+ if attributes.key?(:'compute_ram_used')
1823
+ self.compute_ram_used = attributes[:'compute_ram_used']
1824
+ end
1825
+
1826
+ if attributes.key?(:'compute_request_time_ms')
1827
+ self.compute_request_time_ms = attributes[:'compute_request_time_ms']
1828
+ end
1829
+
1830
+ if attributes.key?(:'compute_request_time_billed_ms')
1831
+ self.compute_request_time_billed_ms = attributes[:'compute_request_time_billed_ms']
1832
+ end
1833
+
1834
+ if attributes.key?(:'shield')
1835
+ self.shield = attributes[:'shield']
1836
+ end
1837
+
1838
+ if attributes.key?(:'ipv6')
1839
+ self.ipv6 = attributes[:'ipv6']
1840
+ end
1841
+
1842
+ if attributes.key?(:'imgopto')
1843
+ self.imgopto = attributes[:'imgopto']
1844
+ end
1845
+
1846
+ if attributes.key?(:'imgopto_shield')
1847
+ self.imgopto_shield = attributes[:'imgopto_shield']
1848
+ end
1849
+
1850
+ if attributes.key?(:'imgopto_transforms')
1851
+ self.imgopto_transforms = attributes[:'imgopto_transforms']
1852
+ end
1853
+
1854
+ if attributes.key?(:'otfp')
1855
+ self.otfp = attributes[:'otfp']
1856
+ end
1857
+
1858
+ if attributes.key?(:'otfp_shield')
1859
+ self.otfp_shield = attributes[:'otfp_shield']
1860
+ end
1861
+
1862
+ if attributes.key?(:'otfp_manifests')
1863
+ self.otfp_manifests = attributes[:'otfp_manifests']
1864
+ end
1865
+
1866
+ if attributes.key?(:'video')
1867
+ self.video = attributes[:'video']
1868
+ end
1869
+
1870
+ if attributes.key?(:'pci')
1871
+ self.pci = attributes[:'pci']
1872
+ end
1873
+
1874
+ if attributes.key?(:'http2')
1875
+ self.http2 = attributes[:'http2']
1876
+ end
1877
+
1878
+ if attributes.key?(:'http3')
1879
+ self.http3 = attributes[:'http3']
1880
+ end
1881
+
1882
+ if attributes.key?(:'restarts')
1883
+ self.restarts = attributes[:'restarts']
1884
+ end
1885
+
1886
+ if attributes.key?(:'req_header_bytes')
1887
+ self.req_header_bytes = attributes[:'req_header_bytes']
1888
+ end
1889
+
1890
+ if attributes.key?(:'req_body_bytes')
1891
+ self.req_body_bytes = attributes[:'req_body_bytes']
1892
+ end
1893
+
1894
+ if attributes.key?(:'bereq_header_bytes')
1895
+ self.bereq_header_bytes = attributes[:'bereq_header_bytes']
1896
+ end
1897
+
1898
+ if attributes.key?(:'bereq_body_bytes')
1899
+ self.bereq_body_bytes = attributes[:'bereq_body_bytes']
1900
+ end
1901
+
1902
+ if attributes.key?(:'attack_req_header_bytes')
1903
+ self.attack_req_header_bytes = attributes[:'attack_req_header_bytes']
1904
+ end
1905
+
1906
+ if attributes.key?(:'attack_req_body_bytes')
1907
+ self.attack_req_body_bytes = attributes[:'attack_req_body_bytes']
1908
+ end
1909
+
1910
+ if attributes.key?(:'attack_resp_synth_bytes')
1911
+ self.attack_resp_synth_bytes = attributes[:'attack_resp_synth_bytes']
1912
+ end
1913
+
1914
+ if attributes.key?(:'attack_logged_req_header_bytes')
1915
+ self.attack_logged_req_header_bytes = attributes[:'attack_logged_req_header_bytes']
1916
+ end
1917
+
1918
+ if attributes.key?(:'attack_logged_req_body_bytes')
1919
+ self.attack_logged_req_body_bytes = attributes[:'attack_logged_req_body_bytes']
1920
+ end
1921
+
1922
+ if attributes.key?(:'attack_blocked_req_header_bytes')
1923
+ self.attack_blocked_req_header_bytes = attributes[:'attack_blocked_req_header_bytes']
1924
+ end
1925
+
1926
+ if attributes.key?(:'attack_blocked_req_body_bytes')
1927
+ self.attack_blocked_req_body_bytes = attributes[:'attack_blocked_req_body_bytes']
1928
+ end
1929
+
1930
+ if attributes.key?(:'attack_passed_req_header_bytes')
1931
+ self.attack_passed_req_header_bytes = attributes[:'attack_passed_req_header_bytes']
1932
+ end
1933
+
1934
+ if attributes.key?(:'attack_passed_req_body_bytes')
1935
+ self.attack_passed_req_body_bytes = attributes[:'attack_passed_req_body_bytes']
1936
+ end
1937
+
1938
+ if attributes.key?(:'shield_resp_header_bytes')
1939
+ self.shield_resp_header_bytes = attributes[:'shield_resp_header_bytes']
1940
+ end
1941
+
1942
+ if attributes.key?(:'shield_resp_body_bytes')
1943
+ self.shield_resp_body_bytes = attributes[:'shield_resp_body_bytes']
1944
+ end
1945
+
1946
+ if attributes.key?(:'otfp_resp_header_bytes')
1947
+ self.otfp_resp_header_bytes = attributes[:'otfp_resp_header_bytes']
1948
+ end
1949
+
1950
+ if attributes.key?(:'otfp_resp_body_bytes')
1951
+ self.otfp_resp_body_bytes = attributes[:'otfp_resp_body_bytes']
1952
+ end
1953
+
1954
+ if attributes.key?(:'otfp_shield_resp_header_bytes')
1955
+ self.otfp_shield_resp_header_bytes = attributes[:'otfp_shield_resp_header_bytes']
1956
+ end
1957
+
1958
+ if attributes.key?(:'otfp_shield_resp_body_bytes')
1959
+ self.otfp_shield_resp_body_bytes = attributes[:'otfp_shield_resp_body_bytes']
1960
+ end
1961
+
1962
+ if attributes.key?(:'otfp_shield_time')
1963
+ self.otfp_shield_time = attributes[:'otfp_shield_time']
1964
+ end
1965
+
1966
+ if attributes.key?(:'otfp_deliver_time')
1967
+ self.otfp_deliver_time = attributes[:'otfp_deliver_time']
1968
+ end
1969
+
1970
+ if attributes.key?(:'imgopto_resp_header_bytes')
1971
+ self.imgopto_resp_header_bytes = attributes[:'imgopto_resp_header_bytes']
1972
+ end
1973
+
1974
+ if attributes.key?(:'imgopto_resp_body_bytes')
1975
+ self.imgopto_resp_body_bytes = attributes[:'imgopto_resp_body_bytes']
1976
+ end
1977
+
1978
+ if attributes.key?(:'imgopto_shield_resp_header_bytes')
1979
+ self.imgopto_shield_resp_header_bytes = attributes[:'imgopto_shield_resp_header_bytes']
1980
+ end
1981
+
1982
+ if attributes.key?(:'imgopto_shield_resp_body_bytes')
1983
+ self.imgopto_shield_resp_body_bytes = attributes[:'imgopto_shield_resp_body_bytes']
1984
+ end
1985
+
1986
+ if attributes.key?(:'status_1xx')
1987
+ self.status_1xx = attributes[:'status_1xx']
1988
+ end
1989
+
1990
+ if attributes.key?(:'status_2xx')
1991
+ self.status_2xx = attributes[:'status_2xx']
1992
+ end
1993
+
1994
+ if attributes.key?(:'status_3xx')
1995
+ self.status_3xx = attributes[:'status_3xx']
1996
+ end
1997
+
1998
+ if attributes.key?(:'status_4xx')
1999
+ self.status_4xx = attributes[:'status_4xx']
2000
+ end
2001
+
2002
+ if attributes.key?(:'status_5xx')
2003
+ self.status_5xx = attributes[:'status_5xx']
2004
+ end
2005
+
2006
+ if attributes.key?(:'status_200')
2007
+ self.status_200 = attributes[:'status_200']
2008
+ end
2009
+
2010
+ if attributes.key?(:'status_204')
2011
+ self.status_204 = attributes[:'status_204']
2012
+ end
2013
+
2014
+ if attributes.key?(:'status_206')
2015
+ self.status_206 = attributes[:'status_206']
2016
+ end
2017
+
2018
+ if attributes.key?(:'status_301')
2019
+ self.status_301 = attributes[:'status_301']
2020
+ end
2021
+
2022
+ if attributes.key?(:'status_302')
2023
+ self.status_302 = attributes[:'status_302']
2024
+ end
2025
+
2026
+ if attributes.key?(:'status_304')
2027
+ self.status_304 = attributes[:'status_304']
2028
+ end
2029
+
2030
+ if attributes.key?(:'status_400')
2031
+ self.status_400 = attributes[:'status_400']
2032
+ end
2033
+
2034
+ if attributes.key?(:'status_401')
2035
+ self.status_401 = attributes[:'status_401']
2036
+ end
2037
+
2038
+ if attributes.key?(:'status_403')
2039
+ self.status_403 = attributes[:'status_403']
2040
+ end
2041
+
2042
+ if attributes.key?(:'status_404')
2043
+ self.status_404 = attributes[:'status_404']
2044
+ end
2045
+
2046
+ if attributes.key?(:'status_406')
2047
+ self.status_406 = attributes[:'status_406']
2048
+ end
2049
+
2050
+ if attributes.key?(:'status_416')
2051
+ self.status_416 = attributes[:'status_416']
2052
+ end
2053
+
2054
+ if attributes.key?(:'status_429')
2055
+ self.status_429 = attributes[:'status_429']
2056
+ end
2057
+
2058
+ if attributes.key?(:'status_500')
2059
+ self.status_500 = attributes[:'status_500']
2060
+ end
2061
+
2062
+ if attributes.key?(:'status_501')
2063
+ self.status_501 = attributes[:'status_501']
2064
+ end
2065
+
2066
+ if attributes.key?(:'status_502')
2067
+ self.status_502 = attributes[:'status_502']
2068
+ end
2069
+
2070
+ if attributes.key?(:'status_503')
2071
+ self.status_503 = attributes[:'status_503']
2072
+ end
2073
+
2074
+ if attributes.key?(:'status_504')
2075
+ self.status_504 = attributes[:'status_504']
2076
+ end
2077
+
2078
+ if attributes.key?(:'status_505')
2079
+ self.status_505 = attributes[:'status_505']
2080
+ end
2081
+
2082
+ if attributes.key?(:'status_530')
2083
+ self.status_530 = attributes[:'status_530']
2084
+ end
2085
+
2086
+ if attributes.key?(:'uncacheable')
2087
+ self.uncacheable = attributes[:'uncacheable']
2088
+ end
2089
+
2090
+ if attributes.key?(:'pass_time')
2091
+ self.pass_time = attributes[:'pass_time']
2092
+ end
2093
+
2094
+ if attributes.key?(:'tls')
2095
+ self.tls = attributes[:'tls']
2096
+ end
2097
+
2098
+ if attributes.key?(:'tls_v10')
2099
+ self.tls_v10 = attributes[:'tls_v10']
2100
+ end
2101
+
2102
+ if attributes.key?(:'tls_v11')
2103
+ self.tls_v11 = attributes[:'tls_v11']
2104
+ end
2105
+
2106
+ if attributes.key?(:'tls_v12')
2107
+ self.tls_v12 = attributes[:'tls_v12']
2108
+ end
2109
+
2110
+ if attributes.key?(:'tls_v13')
2111
+ self.tls_v13 = attributes[:'tls_v13']
2112
+ end
2113
+
2114
+ if attributes.key?(:'object_size_1k')
2115
+ self.object_size_1k = attributes[:'object_size_1k']
2116
+ end
2117
+
2118
+ if attributes.key?(:'object_size_10k')
2119
+ self.object_size_10k = attributes[:'object_size_10k']
2120
+ end
2121
+
2122
+ if attributes.key?(:'object_size_100k')
2123
+ self.object_size_100k = attributes[:'object_size_100k']
2124
+ end
2125
+
2126
+ if attributes.key?(:'object_size_1m')
2127
+ self.object_size_1m = attributes[:'object_size_1m']
2128
+ end
2129
+
2130
+ if attributes.key?(:'object_size_10m')
2131
+ self.object_size_10m = attributes[:'object_size_10m']
2132
+ end
2133
+
2134
+ if attributes.key?(:'object_size_100m')
2135
+ self.object_size_100m = attributes[:'object_size_100m']
2136
+ end
2137
+
2138
+ if attributes.key?(:'object_size_1g')
2139
+ self.object_size_1g = attributes[:'object_size_1g']
2140
+ end
2141
+
2142
+ if attributes.key?(:'object_size_other')
2143
+ self.object_size_other = attributes[:'object_size_other']
2144
+ end
2145
+
2146
+ if attributes.key?(:'recv_sub_time')
2147
+ self.recv_sub_time = attributes[:'recv_sub_time']
2148
+ end
2149
+
2150
+ if attributes.key?(:'recv_sub_count')
2151
+ self.recv_sub_count = attributes[:'recv_sub_count']
2152
+ end
2153
+
2154
+ if attributes.key?(:'hash_sub_time')
2155
+ self.hash_sub_time = attributes[:'hash_sub_time']
2156
+ end
2157
+
2158
+ if attributes.key?(:'hash_sub_count')
2159
+ self.hash_sub_count = attributes[:'hash_sub_count']
2160
+ end
2161
+
2162
+ if attributes.key?(:'miss_sub_time')
2163
+ self.miss_sub_time = attributes[:'miss_sub_time']
2164
+ end
2165
+
2166
+ if attributes.key?(:'miss_sub_count')
2167
+ self.miss_sub_count = attributes[:'miss_sub_count']
2168
+ end
2169
+
2170
+ if attributes.key?(:'fetch_sub_time')
2171
+ self.fetch_sub_time = attributes[:'fetch_sub_time']
2172
+ end
2173
+
2174
+ if attributes.key?(:'fetch_sub_count')
2175
+ self.fetch_sub_count = attributes[:'fetch_sub_count']
2176
+ end
2177
+
2178
+ if attributes.key?(:'pass_sub_time')
2179
+ self.pass_sub_time = attributes[:'pass_sub_time']
2180
+ end
2181
+
2182
+ if attributes.key?(:'pass_sub_count')
2183
+ self.pass_sub_count = attributes[:'pass_sub_count']
2184
+ end
2185
+
2186
+ if attributes.key?(:'pipe_sub_time')
2187
+ self.pipe_sub_time = attributes[:'pipe_sub_time']
2188
+ end
2189
+
2190
+ if attributes.key?(:'pipe_sub_count')
2191
+ self.pipe_sub_count = attributes[:'pipe_sub_count']
2192
+ end
2193
+
2194
+ if attributes.key?(:'deliver_sub_time')
2195
+ self.deliver_sub_time = attributes[:'deliver_sub_time']
2196
+ end
2197
+
2198
+ if attributes.key?(:'deliver_sub_count')
2199
+ self.deliver_sub_count = attributes[:'deliver_sub_count']
2200
+ end
2201
+
2202
+ if attributes.key?(:'error_sub_time')
2203
+ self.error_sub_time = attributes[:'error_sub_time']
2204
+ end
2205
+
2206
+ if attributes.key?(:'error_sub_count')
2207
+ self.error_sub_count = attributes[:'error_sub_count']
2208
+ end
2209
+
2210
+ if attributes.key?(:'hit_sub_time')
2211
+ self.hit_sub_time = attributes[:'hit_sub_time']
2212
+ end
2213
+
2214
+ if attributes.key?(:'hit_sub_count')
2215
+ self.hit_sub_count = attributes[:'hit_sub_count']
2216
+ end
2217
+
2218
+ if attributes.key?(:'prehash_sub_time')
2219
+ self.prehash_sub_time = attributes[:'prehash_sub_time']
2220
+ end
2221
+
2222
+ if attributes.key?(:'prehash_sub_count')
2223
+ self.prehash_sub_count = attributes[:'prehash_sub_count']
2224
+ end
2225
+
2226
+ if attributes.key?(:'predeliver_sub_time')
2227
+ self.predeliver_sub_time = attributes[:'predeliver_sub_time']
2228
+ end
2229
+
2230
+ if attributes.key?(:'predeliver_sub_count')
2231
+ self.predeliver_sub_count = attributes[:'predeliver_sub_count']
2232
+ end
2233
+
2234
+ if attributes.key?(:'hit_resp_body_bytes')
2235
+ self.hit_resp_body_bytes = attributes[:'hit_resp_body_bytes']
2236
+ end
2237
+
2238
+ if attributes.key?(:'miss_resp_body_bytes')
2239
+ self.miss_resp_body_bytes = attributes[:'miss_resp_body_bytes']
2240
+ end
2241
+
2242
+ if attributes.key?(:'pass_resp_body_bytes')
2243
+ self.pass_resp_body_bytes = attributes[:'pass_resp_body_bytes']
2244
+ end
2245
+
2246
+ if attributes.key?(:'compute_req_header_bytes')
2247
+ self.compute_req_header_bytes = attributes[:'compute_req_header_bytes']
2248
+ end
2249
+
2250
+ if attributes.key?(:'compute_req_body_bytes')
2251
+ self.compute_req_body_bytes = attributes[:'compute_req_body_bytes']
2252
+ end
2253
+
2254
+ if attributes.key?(:'compute_resp_header_bytes')
2255
+ self.compute_resp_header_bytes = attributes[:'compute_resp_header_bytes']
2256
+ end
2257
+
2258
+ if attributes.key?(:'compute_resp_body_bytes')
2259
+ self.compute_resp_body_bytes = attributes[:'compute_resp_body_bytes']
2260
+ end
2261
+
2262
+ if attributes.key?(:'imgvideo')
2263
+ self.imgvideo = attributes[:'imgvideo']
2264
+ end
2265
+
2266
+ if attributes.key?(:'imgvideo_frames')
2267
+ self.imgvideo_frames = attributes[:'imgvideo_frames']
2268
+ end
2269
+
2270
+ if attributes.key?(:'imgvideo_resp_header_bytes')
2271
+ self.imgvideo_resp_header_bytes = attributes[:'imgvideo_resp_header_bytes']
2272
+ end
2273
+
2274
+ if attributes.key?(:'imgvideo_resp_body_bytes')
2275
+ self.imgvideo_resp_body_bytes = attributes[:'imgvideo_resp_body_bytes']
2276
+ end
2277
+
2278
+ if attributes.key?(:'imgvideo_shield')
2279
+ self.imgvideo_shield = attributes[:'imgvideo_shield']
2280
+ end
2281
+
2282
+ if attributes.key?(:'imgvideo_shield_frames')
2283
+ self.imgvideo_shield_frames = attributes[:'imgvideo_shield_frames']
2284
+ end
2285
+
2286
+ if attributes.key?(:'imgvideo_shield_resp_header_bytes')
2287
+ self.imgvideo_shield_resp_header_bytes = attributes[:'imgvideo_shield_resp_header_bytes']
2288
+ end
2289
+
2290
+ if attributes.key?(:'imgvideo_shield_resp_body_bytes')
2291
+ self.imgvideo_shield_resp_body_bytes = attributes[:'imgvideo_shield_resp_body_bytes']
2292
+ end
2293
+
2294
+ if attributes.key?(:'log_bytes')
2295
+ self.log_bytes = attributes[:'log_bytes']
2296
+ end
2297
+
2298
+ if attributes.key?(:'edge_requests')
2299
+ self.edge_requests = attributes[:'edge_requests']
2300
+ end
2301
+
2302
+ if attributes.key?(:'edge_resp_header_bytes')
2303
+ self.edge_resp_header_bytes = attributes[:'edge_resp_header_bytes']
2304
+ end
2305
+
2306
+ if attributes.key?(:'edge_resp_body_bytes')
2307
+ self.edge_resp_body_bytes = attributes[:'edge_resp_body_bytes']
2308
+ end
2309
+
2310
+ if attributes.key?(:'origin_revalidations')
2311
+ self.origin_revalidations = attributes[:'origin_revalidations']
2312
+ end
2313
+
2314
+ if attributes.key?(:'origin_fetches')
2315
+ self.origin_fetches = attributes[:'origin_fetches']
2316
+ end
2317
+
2318
+ if attributes.key?(:'origin_fetch_header_bytes')
2319
+ self.origin_fetch_header_bytes = attributes[:'origin_fetch_header_bytes']
2320
+ end
2321
+
2322
+ if attributes.key?(:'origin_fetch_body_bytes')
2323
+ self.origin_fetch_body_bytes = attributes[:'origin_fetch_body_bytes']
2324
+ end
2325
+
2326
+ if attributes.key?(:'origin_fetch_resp_header_bytes')
2327
+ self.origin_fetch_resp_header_bytes = attributes[:'origin_fetch_resp_header_bytes']
2328
+ end
2329
+
2330
+ if attributes.key?(:'origin_fetch_resp_body_bytes')
2331
+ self.origin_fetch_resp_body_bytes = attributes[:'origin_fetch_resp_body_bytes']
2332
+ end
2333
+
2334
+ if attributes.key?(:'shield_revalidations')
2335
+ self.shield_revalidations = attributes[:'shield_revalidations']
2336
+ end
2337
+
2338
+ if attributes.key?(:'shield_fetches')
2339
+ self.shield_fetches = attributes[:'shield_fetches']
2340
+ end
2341
+
2342
+ if attributes.key?(:'shield_fetch_header_bytes')
2343
+ self.shield_fetch_header_bytes = attributes[:'shield_fetch_header_bytes']
2344
+ end
2345
+
2346
+ if attributes.key?(:'shield_fetch_body_bytes')
2347
+ self.shield_fetch_body_bytes = attributes[:'shield_fetch_body_bytes']
2348
+ end
2349
+
2350
+ if attributes.key?(:'shield_fetch_resp_header_bytes')
2351
+ self.shield_fetch_resp_header_bytes = attributes[:'shield_fetch_resp_header_bytes']
2352
+ end
2353
+
2354
+ if attributes.key?(:'shield_fetch_resp_body_bytes')
2355
+ self.shield_fetch_resp_body_bytes = attributes[:'shield_fetch_resp_body_bytes']
2356
+ end
2357
+
2358
+ if attributes.key?(:'segblock_origin_fetches')
2359
+ self.segblock_origin_fetches = attributes[:'segblock_origin_fetches']
2360
+ end
2361
+
2362
+ if attributes.key?(:'segblock_shield_fetches')
2363
+ self.segblock_shield_fetches = attributes[:'segblock_shield_fetches']
2364
+ end
2365
+
2366
+ if attributes.key?(:'compute_resp_status_1xx')
2367
+ self.compute_resp_status_1xx = attributes[:'compute_resp_status_1xx']
2368
+ end
2369
+
2370
+ if attributes.key?(:'compute_resp_status_2xx')
2371
+ self.compute_resp_status_2xx = attributes[:'compute_resp_status_2xx']
2372
+ end
2373
+
2374
+ if attributes.key?(:'compute_resp_status_3xx')
2375
+ self.compute_resp_status_3xx = attributes[:'compute_resp_status_3xx']
2376
+ end
2377
+
2378
+ if attributes.key?(:'compute_resp_status_4xx')
2379
+ self.compute_resp_status_4xx = attributes[:'compute_resp_status_4xx']
2380
+ end
2381
+
2382
+ if attributes.key?(:'compute_resp_status_5xx')
2383
+ self.compute_resp_status_5xx = attributes[:'compute_resp_status_5xx']
2384
+ end
2385
+
2386
+ if attributes.key?(:'edge_hit_requests')
2387
+ self.edge_hit_requests = attributes[:'edge_hit_requests']
2388
+ end
2389
+
2390
+ if attributes.key?(:'edge_miss_requests')
2391
+ self.edge_miss_requests = attributes[:'edge_miss_requests']
2392
+ end
2393
+
2394
+ if attributes.key?(:'compute_bereq_header_bytes')
2395
+ self.compute_bereq_header_bytes = attributes[:'compute_bereq_header_bytes']
2396
+ end
2397
+
2398
+ if attributes.key?(:'compute_bereq_body_bytes')
2399
+ self.compute_bereq_body_bytes = attributes[:'compute_bereq_body_bytes']
2400
+ end
2401
+
2402
+ if attributes.key?(:'compute_beresp_header_bytes')
2403
+ self.compute_beresp_header_bytes = attributes[:'compute_beresp_header_bytes']
2404
+ end
2405
+
2406
+ if attributes.key?(:'compute_beresp_body_bytes')
2407
+ self.compute_beresp_body_bytes = attributes[:'compute_beresp_body_bytes']
2408
+ end
2409
+
2410
+ if attributes.key?(:'origin_cache_fetches')
2411
+ self.origin_cache_fetches = attributes[:'origin_cache_fetches']
2412
+ end
2413
+
2414
+ if attributes.key?(:'shield_cache_fetches')
2415
+ self.shield_cache_fetches = attributes[:'shield_cache_fetches']
2416
+ end
2417
+
2418
+ if attributes.key?(:'compute_bereqs')
2419
+ self.compute_bereqs = attributes[:'compute_bereqs']
2420
+ end
2421
+
2422
+ if attributes.key?(:'compute_bereq_errors')
2423
+ self.compute_bereq_errors = attributes[:'compute_bereq_errors']
2424
+ end
2425
+
2426
+ if attributes.key?(:'compute_service_bereq_error')
2427
+ self.compute_service_bereq_error = attributes[:'compute_service_bereq_error']
2428
+ end
2429
+
2430
+ if attributes.key?(:'compute_resource_limit_exceeded')
2431
+ self.compute_resource_limit_exceeded = attributes[:'compute_resource_limit_exceeded']
2432
+ end
2433
+
2434
+ if attributes.key?(:'compute_heap_limit_exceeded')
2435
+ self.compute_heap_limit_exceeded = attributes[:'compute_heap_limit_exceeded']
2436
+ end
2437
+
2438
+ if attributes.key?(:'compute_service_memory_exceeded_error')
2439
+ self.compute_service_memory_exceeded_error = attributes[:'compute_service_memory_exceeded_error']
2440
+ end
2441
+
2442
+ if attributes.key?(:'compute_stack_limit_exceeded')
2443
+ self.compute_stack_limit_exceeded = attributes[:'compute_stack_limit_exceeded']
2444
+ end
2445
+
2446
+ if attributes.key?(:'compute_globals_limit_exceeded')
2447
+ self.compute_globals_limit_exceeded = attributes[:'compute_globals_limit_exceeded']
2448
+ end
2449
+
2450
+ if attributes.key?(:'compute_guest_errors')
2451
+ self.compute_guest_errors = attributes[:'compute_guest_errors']
2452
+ end
2453
+
2454
+ if attributes.key?(:'compute_runtime_errors')
2455
+ self.compute_runtime_errors = attributes[:'compute_runtime_errors']
2456
+ end
2457
+
2458
+ if attributes.key?(:'edge_hit_resp_body_bytes')
2459
+ self.edge_hit_resp_body_bytes = attributes[:'edge_hit_resp_body_bytes']
2460
+ end
2461
+
2462
+ if attributes.key?(:'edge_hit_resp_header_bytes')
2463
+ self.edge_hit_resp_header_bytes = attributes[:'edge_hit_resp_header_bytes']
2464
+ end
2465
+
2466
+ if attributes.key?(:'edge_miss_resp_body_bytes')
2467
+ self.edge_miss_resp_body_bytes = attributes[:'edge_miss_resp_body_bytes']
2468
+ end
2469
+
2470
+ if attributes.key?(:'edge_miss_resp_header_bytes')
2471
+ self.edge_miss_resp_header_bytes = attributes[:'edge_miss_resp_header_bytes']
2472
+ end
2473
+
2474
+ if attributes.key?(:'origin_cache_fetch_resp_body_bytes')
2475
+ self.origin_cache_fetch_resp_body_bytes = attributes[:'origin_cache_fetch_resp_body_bytes']
2476
+ end
2477
+
2478
+ if attributes.key?(:'origin_cache_fetch_resp_header_bytes')
2479
+ self.origin_cache_fetch_resp_header_bytes = attributes[:'origin_cache_fetch_resp_header_bytes']
2480
+ end
2481
+
2482
+ if attributes.key?(:'shield_hit_requests')
2483
+ self.shield_hit_requests = attributes[:'shield_hit_requests']
2484
+ end
2485
+
2486
+ if attributes.key?(:'shield_miss_requests')
2487
+ self.shield_miss_requests = attributes[:'shield_miss_requests']
2488
+ end
2489
+
2490
+ if attributes.key?(:'shield_hit_resp_header_bytes')
2491
+ self.shield_hit_resp_header_bytes = attributes[:'shield_hit_resp_header_bytes']
2492
+ end
2493
+
2494
+ if attributes.key?(:'shield_hit_resp_body_bytes')
2495
+ self.shield_hit_resp_body_bytes = attributes[:'shield_hit_resp_body_bytes']
2496
+ end
2497
+
2498
+ if attributes.key?(:'shield_miss_resp_header_bytes')
2499
+ self.shield_miss_resp_header_bytes = attributes[:'shield_miss_resp_header_bytes']
2500
+ end
2501
+
2502
+ if attributes.key?(:'shield_miss_resp_body_bytes')
2503
+ self.shield_miss_resp_body_bytes = attributes[:'shield_miss_resp_body_bytes']
2504
+ end
2505
+
2506
+ if attributes.key?(:'websocket_req_header_bytes')
2507
+ self.websocket_req_header_bytes = attributes[:'websocket_req_header_bytes']
2508
+ end
2509
+
2510
+ if attributes.key?(:'websocket_req_body_bytes')
2511
+ self.websocket_req_body_bytes = attributes[:'websocket_req_body_bytes']
2512
+ end
2513
+
2514
+ if attributes.key?(:'websocket_resp_header_bytes')
2515
+ self.websocket_resp_header_bytes = attributes[:'websocket_resp_header_bytes']
2516
+ end
2517
+
2518
+ if attributes.key?(:'websocket_bereq_header_bytes')
2519
+ self.websocket_bereq_header_bytes = attributes[:'websocket_bereq_header_bytes']
2520
+ end
2521
+
2522
+ if attributes.key?(:'websocket_bereq_body_bytes')
2523
+ self.websocket_bereq_body_bytes = attributes[:'websocket_bereq_body_bytes']
2524
+ end
2525
+
2526
+ if attributes.key?(:'websocket_beresp_header_bytes')
2527
+ self.websocket_beresp_header_bytes = attributes[:'websocket_beresp_header_bytes']
2528
+ end
2529
+
2530
+ if attributes.key?(:'websocket_beresp_body_bytes')
2531
+ self.websocket_beresp_body_bytes = attributes[:'websocket_beresp_body_bytes']
2532
+ end
2533
+
2534
+ if attributes.key?(:'websocket_conn_time_ms')
2535
+ self.websocket_conn_time_ms = attributes[:'websocket_conn_time_ms']
2536
+ end
2537
+
2538
+ if attributes.key?(:'websocket_resp_body_bytes')
2539
+ self.websocket_resp_body_bytes = attributes[:'websocket_resp_body_bytes']
2540
+ end
2541
+
2542
+ if attributes.key?(:'fanout_recv_publishes')
2543
+ self.fanout_recv_publishes = attributes[:'fanout_recv_publishes']
2544
+ end
2545
+
2546
+ if attributes.key?(:'fanout_send_publishes')
2547
+ self.fanout_send_publishes = attributes[:'fanout_send_publishes']
2548
+ end
2549
+
2550
+ if attributes.key?(:'kv_store_class_a_operations')
2551
+ self.kv_store_class_a_operations = attributes[:'kv_store_class_a_operations']
2552
+ end
2553
+
2554
+ if attributes.key?(:'kv_store_class_b_operations')
2555
+ self.kv_store_class_b_operations = attributes[:'kv_store_class_b_operations']
2556
+ end
2557
+
2558
+ if attributes.key?(:'object_store_class_a_operations')
2559
+ self.object_store_class_a_operations = attributes[:'object_store_class_a_operations']
2560
+ end
2561
+
2562
+ if attributes.key?(:'object_store_class_b_operations')
2563
+ self.object_store_class_b_operations = attributes[:'object_store_class_b_operations']
2564
+ end
2565
+
2566
+ if attributes.key?(:'fanout_req_header_bytes')
2567
+ self.fanout_req_header_bytes = attributes[:'fanout_req_header_bytes']
2568
+ end
2569
+
2570
+ if attributes.key?(:'fanout_req_body_bytes')
2571
+ self.fanout_req_body_bytes = attributes[:'fanout_req_body_bytes']
2572
+ end
2573
+
2574
+ if attributes.key?(:'fanout_resp_header_bytes')
2575
+ self.fanout_resp_header_bytes = attributes[:'fanout_resp_header_bytes']
2576
+ end
2577
+
2578
+ if attributes.key?(:'fanout_resp_body_bytes')
2579
+ self.fanout_resp_body_bytes = attributes[:'fanout_resp_body_bytes']
2580
+ end
2581
+
2582
+ if attributes.key?(:'fanout_bereq_header_bytes')
2583
+ self.fanout_bereq_header_bytes = attributes[:'fanout_bereq_header_bytes']
2584
+ end
2585
+
2586
+ if attributes.key?(:'fanout_bereq_body_bytes')
2587
+ self.fanout_bereq_body_bytes = attributes[:'fanout_bereq_body_bytes']
2588
+ end
2589
+
2590
+ if attributes.key?(:'fanout_beresp_header_bytes')
2591
+ self.fanout_beresp_header_bytes = attributes[:'fanout_beresp_header_bytes']
2592
+ end
2593
+
2594
+ if attributes.key?(:'fanout_beresp_body_bytes')
2595
+ self.fanout_beresp_body_bytes = attributes[:'fanout_beresp_body_bytes']
2596
+ end
2597
+
2598
+ if attributes.key?(:'fanout_conn_time_ms')
2599
+ self.fanout_conn_time_ms = attributes[:'fanout_conn_time_ms']
2600
+ end
2601
+
2602
+ if attributes.key?(:'ddos_action_limit_streams_connections')
2603
+ self.ddos_action_limit_streams_connections = attributes[:'ddos_action_limit_streams_connections']
2604
+ end
2605
+
2606
+ if attributes.key?(:'ddos_action_limit_streams_requests')
2607
+ self.ddos_action_limit_streams_requests = attributes[:'ddos_action_limit_streams_requests']
2608
+ end
2609
+
2610
+ if attributes.key?(:'ddos_action_tarpit_accept')
2611
+ self.ddos_action_tarpit_accept = attributes[:'ddos_action_tarpit_accept']
2612
+ end
2613
+
2614
+ if attributes.key?(:'ddos_action_tarpit')
2615
+ self.ddos_action_tarpit = attributes[:'ddos_action_tarpit']
2616
+ end
2617
+
2618
+ if attributes.key?(:'ddos_action_close')
2619
+ self.ddos_action_close = attributes[:'ddos_action_close']
2620
+ end
2621
+
2622
+ if attributes.key?(:'ddos_action_blackhole')
2623
+ self.ddos_action_blackhole = attributes[:'ddos_action_blackhole']
2624
+ end
2625
+
2626
+ if attributes.key?(:'bot_challenge_starts')
2627
+ self.bot_challenge_starts = attributes[:'bot_challenge_starts']
2628
+ end
2629
+
2630
+ if attributes.key?(:'bot_challenge_complete_tokens_passed')
2631
+ self.bot_challenge_complete_tokens_passed = attributes[:'bot_challenge_complete_tokens_passed']
2632
+ end
2633
+
2634
+ if attributes.key?(:'bot_challenge_complete_tokens_failed')
2635
+ self.bot_challenge_complete_tokens_failed = attributes[:'bot_challenge_complete_tokens_failed']
2636
+ end
2637
+
2638
+ if attributes.key?(:'bot_challenge_complete_tokens_checked')
2639
+ self.bot_challenge_complete_tokens_checked = attributes[:'bot_challenge_complete_tokens_checked']
2640
+ end
2641
+
2642
+ if attributes.key?(:'bot_challenge_complete_tokens_disabled')
2643
+ self.bot_challenge_complete_tokens_disabled = attributes[:'bot_challenge_complete_tokens_disabled']
2644
+ end
2645
+
2646
+ if attributes.key?(:'bot_challenges_issued')
2647
+ self.bot_challenges_issued = attributes[:'bot_challenges_issued']
2648
+ end
2649
+
2650
+ if attributes.key?(:'bot_challenges_succeeded')
2651
+ self.bot_challenges_succeeded = attributes[:'bot_challenges_succeeded']
2652
+ end
2653
+
2654
+ if attributes.key?(:'bot_challenges_failed')
2655
+ self.bot_challenges_failed = attributes[:'bot_challenges_failed']
2656
+ end
2657
+
2658
+ if attributes.key?(:'bot_challenge_complete_tokens_issued')
2659
+ self.bot_challenge_complete_tokens_issued = attributes[:'bot_challenge_complete_tokens_issued']
2660
+ end
2661
+
2662
+ if attributes.key?(:'ddos_action_downgrade')
2663
+ self.ddos_action_downgrade = attributes[:'ddos_action_downgrade']
2664
+ end
2665
+
2666
+ if attributes.key?(:'ddos_action_downgraded_connections')
2667
+ self.ddos_action_downgraded_connections = attributes[:'ddos_action_downgraded_connections']
2668
+ end
2669
+
2670
+ if attributes.key?(:'all_hit_requests')
2671
+ self.all_hit_requests = attributes[:'all_hit_requests']
2672
+ end
2673
+
2674
+ if attributes.key?(:'all_miss_requests')
2675
+ self.all_miss_requests = attributes[:'all_miss_requests']
2676
+ end
2677
+
2678
+ if attributes.key?(:'all_pass_requests')
2679
+ self.all_pass_requests = attributes[:'all_pass_requests']
2680
+ end
2681
+
2682
+ if attributes.key?(:'all_error_requests')
2683
+ self.all_error_requests = attributes[:'all_error_requests']
2684
+ end
2685
+
2686
+ if attributes.key?(:'all_synth_requests')
2687
+ self.all_synth_requests = attributes[:'all_synth_requests']
2688
+ end
2689
+
2690
+ if attributes.key?(:'all_edge_hit_requests')
2691
+ self.all_edge_hit_requests = attributes[:'all_edge_hit_requests']
2692
+ end
2693
+
2694
+ if attributes.key?(:'all_edge_miss_requests')
2695
+ self.all_edge_miss_requests = attributes[:'all_edge_miss_requests']
2696
+ end
2697
+
2698
+ if attributes.key?(:'all_status_1xx')
2699
+ self.all_status_1xx = attributes[:'all_status_1xx']
2700
+ end
2701
+
2702
+ if attributes.key?(:'all_status_2xx')
2703
+ self.all_status_2xx = attributes[:'all_status_2xx']
2704
+ end
2705
+
2706
+ if attributes.key?(:'all_status_3xx')
2707
+ self.all_status_3xx = attributes[:'all_status_3xx']
2708
+ end
2709
+
2710
+ if attributes.key?(:'all_status_4xx')
2711
+ self.all_status_4xx = attributes[:'all_status_4xx']
2712
+ end
2713
+
2714
+ if attributes.key?(:'all_status_5xx')
2715
+ self.all_status_5xx = attributes[:'all_status_5xx']
2716
+ end
2717
+
2718
+ if attributes.key?(:'origin_offload')
2719
+ self.origin_offload = attributes[:'origin_offload']
2720
+ end
2721
+
2722
+ if attributes.key?(:'request_denied_get_head_body')
2723
+ self.request_denied_get_head_body = attributes[:'request_denied_get_head_body']
2724
+ end
2725
+
2726
+ if attributes.key?(:'ddos_protection_requests_detect_count')
2727
+ self.ddos_protection_requests_detect_count = attributes[:'ddos_protection_requests_detect_count']
2728
+ end
2729
+
2730
+ if attributes.key?(:'ddos_protection_requests_mitigate_count')
2731
+ self.ddos_protection_requests_mitigate_count = attributes[:'ddos_protection_requests_mitigate_count']
2732
+ end
2733
+
2734
+ if attributes.key?(:'ddos_protection_requests_allow_count')
2735
+ self.ddos_protection_requests_allow_count = attributes[:'ddos_protection_requests_allow_count']
2736
+ end
2737
+
2738
+ if attributes.key?(:'object_storage_class_a_operations_count')
2739
+ self.object_storage_class_a_operations_count = attributes[:'object_storage_class_a_operations_count']
2740
+ end
2741
+
2742
+ if attributes.key?(:'object_storage_class_b_operations_count')
2743
+ self.object_storage_class_b_operations_count = attributes[:'object_storage_class_b_operations_count']
2744
+ end
2745
+
2746
+ if attributes.key?(:'aia_requests')
2747
+ self.aia_requests = attributes[:'aia_requests']
2748
+ end
2749
+
2750
+ if attributes.key?(:'aia_status_1xx')
2751
+ self.aia_status_1xx = attributes[:'aia_status_1xx']
2752
+ end
2753
+
2754
+ if attributes.key?(:'aia_status_2xx')
2755
+ self.aia_status_2xx = attributes[:'aia_status_2xx']
2756
+ end
2757
+
2758
+ if attributes.key?(:'aia_status_3xx')
2759
+ self.aia_status_3xx = attributes[:'aia_status_3xx']
2760
+ end
2761
+
2762
+ if attributes.key?(:'aia_status_4xx')
2763
+ self.aia_status_4xx = attributes[:'aia_status_4xx']
2764
+ end
2765
+
2766
+ if attributes.key?(:'aia_status_5xx')
2767
+ self.aia_status_5xx = attributes[:'aia_status_5xx']
2768
+ end
2769
+
2770
+ if attributes.key?(:'aia_response_usage_tokens')
2771
+ self.aia_response_usage_tokens = attributes[:'aia_response_usage_tokens']
2772
+ end
2773
+
2774
+ if attributes.key?(:'aia_origin_usage_tokens')
2775
+ self.aia_origin_usage_tokens = attributes[:'aia_origin_usage_tokens']
2776
+ end
2777
+
2778
+ if attributes.key?(:'aia_estimated_time_saved_ms')
2779
+ self.aia_estimated_time_saved_ms = attributes[:'aia_estimated_time_saved_ms']
2780
+ end
2781
+
2782
+ if attributes.key?(:'request_collapse_usable_count')
2783
+ self.request_collapse_usable_count = attributes[:'request_collapse_usable_count']
2784
+ end
2785
+
2786
+ if attributes.key?(:'request_collapse_unusable_count')
2787
+ self.request_collapse_unusable_count = attributes[:'request_collapse_unusable_count']
2788
+ end
2789
+
2790
+ if attributes.key?(:'compute_cache_operations_count')
2791
+ self.compute_cache_operations_count = attributes[:'compute_cache_operations_count']
2792
+ end
2793
+
2794
+ if attributes.key?(:'api_discovery_requests_count')
2795
+ self.api_discovery_requests_count = attributes[:'api_discovery_requests_count']
2796
+ end
2797
+
2798
+ if attributes.key?(:'compute_resp_status_103')
2799
+ self.compute_resp_status_103 = attributes[:'compute_resp_status_103']
2800
+ end
2801
+
2802
+ if attributes.key?(:'compute_resp_status_200')
2803
+ self.compute_resp_status_200 = attributes[:'compute_resp_status_200']
2804
+ end
2805
+
2806
+ if attributes.key?(:'compute_resp_status_204')
2807
+ self.compute_resp_status_204 = attributes[:'compute_resp_status_204']
2808
+ end
2809
+
2810
+ if attributes.key?(:'compute_resp_status_206')
2811
+ self.compute_resp_status_206 = attributes[:'compute_resp_status_206']
2812
+ end
2813
+
2814
+ if attributes.key?(:'compute_resp_status_301')
2815
+ self.compute_resp_status_301 = attributes[:'compute_resp_status_301']
2816
+ end
2817
+
2818
+ if attributes.key?(:'compute_resp_status_302')
2819
+ self.compute_resp_status_302 = attributes[:'compute_resp_status_302']
2820
+ end
2821
+
2822
+ if attributes.key?(:'compute_resp_status_304')
2823
+ self.compute_resp_status_304 = attributes[:'compute_resp_status_304']
2824
+ end
2825
+
2826
+ if attributes.key?(:'compute_resp_status_400')
2827
+ self.compute_resp_status_400 = attributes[:'compute_resp_status_400']
2828
+ end
2829
+
2830
+ if attributes.key?(:'compute_resp_status_401')
2831
+ self.compute_resp_status_401 = attributes[:'compute_resp_status_401']
2832
+ end
2833
+
2834
+ if attributes.key?(:'compute_resp_status_403')
2835
+ self.compute_resp_status_403 = attributes[:'compute_resp_status_403']
2836
+ end
2837
+
2838
+ if attributes.key?(:'compute_resp_status_404')
2839
+ self.compute_resp_status_404 = attributes[:'compute_resp_status_404']
2840
+ end
2841
+
2842
+ if attributes.key?(:'compute_resp_status_416')
2843
+ self.compute_resp_status_416 = attributes[:'compute_resp_status_416']
2844
+ end
2845
+
2846
+ if attributes.key?(:'compute_resp_status_429')
2847
+ self.compute_resp_status_429 = attributes[:'compute_resp_status_429']
2848
+ end
2849
+
2850
+ if attributes.key?(:'compute_resp_status_500')
2851
+ self.compute_resp_status_500 = attributes[:'compute_resp_status_500']
2852
+ end
2853
+
2854
+ if attributes.key?(:'compute_resp_status_501')
2855
+ self.compute_resp_status_501 = attributes[:'compute_resp_status_501']
2856
+ end
2857
+
2858
+ if attributes.key?(:'compute_resp_status_502')
2859
+ self.compute_resp_status_502 = attributes[:'compute_resp_status_502']
2860
+ end
2861
+
2862
+ if attributes.key?(:'compute_resp_status_503')
2863
+ self.compute_resp_status_503 = attributes[:'compute_resp_status_503']
2864
+ end
2865
+
2866
+ if attributes.key?(:'compute_resp_status_504')
2867
+ self.compute_resp_status_504 = attributes[:'compute_resp_status_504']
2868
+ end
2869
+
2870
+ if attributes.key?(:'compute_resp_status_505')
2871
+ self.compute_resp_status_505 = attributes[:'compute_resp_status_505']
2872
+ end
2873
+
2874
+ if attributes.key?(:'compute_resp_status_530')
2875
+ self.compute_resp_status_530 = attributes[:'compute_resp_status_530']
2876
+ end
2877
+
2878
+ if attributes.key?(:'imgopto_compute_requests')
2879
+ self.imgopto_compute_requests = attributes[:'imgopto_compute_requests']
2880
+ end
2881
+
2882
+ if attributes.key?(:'dns_billable_responses_count')
2883
+ self.dns_billable_responses_count = attributes[:'dns_billable_responses_count']
2884
+ end
2885
+
2886
+ if attributes.key?(:'dns_nonbillable_responses_count')
2887
+ self.dns_nonbillable_responses_count = attributes[:'dns_nonbillable_responses_count']
2888
+ end
2889
+
2890
+ if attributes.key?(:'upgrade')
2891
+ self.upgrade = attributes[:'upgrade']
2892
+ end
2893
+
2894
+ if attributes.key?(:'ngwaf_bot_analysis_request_count')
2895
+ self.ngwaf_bot_analysis_request_count = attributes[:'ngwaf_bot_analysis_request_count']
2896
+ end
2897
+
2898
+ if attributes.key?(:'imgopto_avif_count')
2899
+ self.imgopto_avif_count = attributes[:'imgopto_avif_count']
2900
+ end
2901
+
2902
+ if attributes.key?(:'imgopto_jpeg_count')
2903
+ self.imgopto_jpeg_count = attributes[:'imgopto_jpeg_count']
2904
+ end
2905
+
2906
+ if attributes.key?(:'imgopto_png_count')
2907
+ self.imgopto_png_count = attributes[:'imgopto_png_count']
2908
+ end
2909
+
2910
+ if attributes.key?(:'imgopto_gif_count')
2911
+ self.imgopto_gif_count = attributes[:'imgopto_gif_count']
2912
+ end
2913
+
2914
+ if attributes.key?(:'imgopto_webp_count')
2915
+ self.imgopto_webp_count = attributes[:'imgopto_webp_count']
2916
+ end
2917
+
2918
+ if attributes.key?(:'imgopto_jpegxl_count')
2919
+ self.imgopto_jpegxl_count = attributes[:'imgopto_jpegxl_count']
2920
+ end
2921
+
2922
+ if attributes.key?(:'imgopto_svg_count')
2923
+ self.imgopto_svg_count = attributes[:'imgopto_svg_count']
2924
+ end
2925
+
2926
+ if attributes.key?(:'imgopto_mp4_count')
2927
+ self.imgopto_mp4_count = attributes[:'imgopto_mp4_count']
2928
+ end
2929
+
2930
+ if attributes.key?(:'compute_service_resource_limits_error')
2931
+ self.compute_service_resource_limits_error = attributes[:'compute_service_resource_limits_error']
2932
+ end
2933
+
2934
+ if attributes.key?(:'compute_service_runtime_error')
2935
+ self.compute_service_runtime_error = attributes[:'compute_service_runtime_error']
2936
+ end
2937
+
2938
+ if attributes.key?(:'compute_service_chain_error')
2939
+ self.compute_service_chain_error = attributes[:'compute_service_chain_error']
2940
+ end
2941
+
2942
+ if attributes.key?(:'compute_platform_internal_error')
2943
+ self.compute_platform_internal_error = attributes[:'compute_platform_internal_error']
2944
+ end
2945
+
2946
+ if attributes.key?(:'compute_service_timeout_error')
2947
+ self.compute_service_timeout_error = attributes[:'compute_service_timeout_error']
2948
+ end
2949
+
2950
+ if attributes.key?(:'compute_service_vcpu_exceeded_error')
2951
+ self.compute_service_vcpu_exceeded_error = attributes[:'compute_service_vcpu_exceeded_error']
2952
+ end
2953
+
2954
+ if attributes.key?(:'compute_service_limits_error')
2955
+ self.compute_service_limits_error = attributes[:'compute_service_limits_error']
2956
+ end
2957
+
2958
+ if attributes.key?(:'compute_platform_invalid_request_error')
2959
+ self.compute_platform_invalid_request_error = attributes[:'compute_platform_invalid_request_error']
2960
+ end
2961
+
2962
+ if attributes.key?(:'compute_sandboxes')
2963
+ self.compute_sandboxes = attributes[:'compute_sandboxes']
2964
+ end
2965
+
2966
+ if attributes.key?(:'bot_requests_total_count')
2967
+ self.bot_requests_total_count = attributes[:'bot_requests_total_count']
2968
+ end
2969
+
2970
+ if attributes.key?(:'bot_edge_requests_analyzed_count')
2971
+ self.bot_edge_requests_analyzed_count = attributes[:'bot_edge_requests_analyzed_count']
2972
+ end
2973
+
2974
+ if attributes.key?(:'bot_edge_requests_detected_count')
2975
+ self.bot_edge_requests_detected_count = attributes[:'bot_edge_requests_detected_count']
2976
+ end
2977
+
2978
+ if attributes.key?(:'bot_edge_requests_verified_count')
2979
+ self.bot_edge_requests_verified_count = attributes[:'bot_edge_requests_verified_count']
2980
+ end
2981
+
2982
+ if attributes.key?(:'bot_edge_requests_ai_crawler_count')
2983
+ self.bot_edge_requests_ai_crawler_count = attributes[:'bot_edge_requests_ai_crawler_count']
2984
+ end
2985
+
2986
+ if attributes.key?(:'bot_edge_requests_ai_fetcher_count')
2987
+ self.bot_edge_requests_ai_fetcher_count = attributes[:'bot_edge_requests_ai_fetcher_count']
2988
+ end
2989
+
2990
+ if attributes.key?(:'bot_edge_requests_accessibility_count')
2991
+ self.bot_edge_requests_accessibility_count = attributes[:'bot_edge_requests_accessibility_count']
2992
+ end
2993
+
2994
+ if attributes.key?(:'bot_edge_requests_content_fetcher_count')
2995
+ self.bot_edge_requests_content_fetcher_count = attributes[:'bot_edge_requests_content_fetcher_count']
2996
+ end
2997
+
2998
+ if attributes.key?(:'bot_edge_requests_monitoring_count')
2999
+ self.bot_edge_requests_monitoring_count = attributes[:'bot_edge_requests_monitoring_count']
3000
+ end
3001
+
3002
+ if attributes.key?(:'bot_edge_requests_online_marketing_count')
3003
+ self.bot_edge_requests_online_marketing_count = attributes[:'bot_edge_requests_online_marketing_count']
3004
+ end
3005
+
3006
+ if attributes.key?(:'bot_edge_requests_page_preview_count')
3007
+ self.bot_edge_requests_page_preview_count = attributes[:'bot_edge_requests_page_preview_count']
3008
+ end
3009
+
3010
+ if attributes.key?(:'bot_edge_requests_platform_integrations_count')
3011
+ self.bot_edge_requests_platform_integrations_count = attributes[:'bot_edge_requests_platform_integrations_count']
3012
+ end
3013
+
3014
+ if attributes.key?(:'bot_edge_requests_research_count')
3015
+ self.bot_edge_requests_research_count = attributes[:'bot_edge_requests_research_count']
3016
+ end
3017
+
3018
+ if attributes.key?(:'bot_edge_requests_search_engine_crawler_count')
3019
+ self.bot_edge_requests_search_engine_crawler_count = attributes[:'bot_edge_requests_search_engine_crawler_count']
3020
+ end
3021
+
3022
+ if attributes.key?(:'bot_edge_requests_search_engine_optimization_count')
3023
+ self.bot_edge_requests_search_engine_optimization_count = attributes[:'bot_edge_requests_search_engine_optimization_count']
3024
+ end
3025
+
3026
+ if attributes.key?(:'bot_edge_requests_security_tools_count')
3027
+ self.bot_edge_requests_security_tools_count = attributes[:'bot_edge_requests_security_tools_count']
3028
+ end
3029
+
3030
+ if attributes.key?(:'compute_handoff')
3031
+ self.compute_handoff = attributes[:'compute_handoff']
3032
+ end
3033
+
3034
+ if attributes.key?(:'compute_service_bereq_dns_error')
3035
+ self.compute_service_bereq_dns_error = attributes[:'compute_service_bereq_dns_error']
3036
+ end
3037
+
3038
+ if attributes.key?(:'compute_service_bereq_conn_timeout_error')
3039
+ self.compute_service_bereq_conn_timeout_error = attributes[:'compute_service_bereq_conn_timeout_error']
3040
+ end
3041
+
3042
+ if attributes.key?(:'compute_service_bereq_conn_refused_error')
3043
+ self.compute_service_bereq_conn_refused_error = attributes[:'compute_service_bereq_conn_refused_error']
3044
+ end
3045
+
3046
+ if attributes.key?(:'compute_service_bereq_conn_other_error')
3047
+ self.compute_service_bereq_conn_other_error = attributes[:'compute_service_bereq_conn_other_error']
3048
+ end
3049
+
3050
+ if attributes.key?(:'compute_service_bereq_tls_server_cert_error')
3051
+ self.compute_service_bereq_tls_server_cert_error = attributes[:'compute_service_bereq_tls_server_cert_error']
3052
+ end
3053
+
3054
+ if attributes.key?(:'compute_service_bereq_tls_other_error')
3055
+ self.compute_service_bereq_tls_other_error = attributes[:'compute_service_bereq_tls_other_error']
3056
+ end
3057
+
3058
+ if attributes.key?(:'compute_service_bereq_http_proto_v1_error')
3059
+ self.compute_service_bereq_http_proto_v1_error = attributes[:'compute_service_bereq_http_proto_v1_error']
3060
+ end
3061
+
3062
+ if attributes.key?(:'compute_service_bereq_http_proto_v2_error')
3063
+ self.compute_service_bereq_http_proto_v2_error = attributes[:'compute_service_bereq_http_proto_v2_error']
3064
+ end
3065
+
3066
+ if attributes.key?(:'compute_service_bereq_http_incomplete_error')
3067
+ self.compute_service_bereq_http_incomplete_error = attributes[:'compute_service_bereq_http_incomplete_error']
3068
+ end
3069
+
3070
+ if attributes.key?(:'compute_service_bereq_http_timeout_error')
3071
+ self.compute_service_bereq_http_timeout_error = attributes[:'compute_service_bereq_http_timeout_error']
3072
+ end
3073
+
3074
+ if attributes.key?(:'compute_service_bereq_http_other_error')
3075
+ self.compute_service_bereq_http_other_error = attributes[:'compute_service_bereq_http_other_error']
3076
+ end
3077
+
3078
+ if attributes.key?(:'compute_service_bereq_other_error')
3079
+ self.compute_service_bereq_other_error = attributes[:'compute_service_bereq_other_error']
3080
+ end
3081
+
3082
+ if attributes.key?(:'compute_service_bereq_5xx_error')
3083
+ self.compute_service_bereq_5xx_error = attributes[:'compute_service_bereq_5xx_error']
3084
+ end
3085
+
3086
+ if attributes.key?(:'compute_service_bereq_conn_error')
3087
+ self.compute_service_bereq_conn_error = attributes[:'compute_service_bereq_conn_error']
3088
+ end
3089
+
3090
+ if attributes.key?(:'compute_service_bereq_tls_error')
3091
+ self.compute_service_bereq_tls_error = attributes[:'compute_service_bereq_tls_error']
3092
+ end
3093
+
3094
+ if attributes.key?(:'compute_service_bereq_http_error')
3095
+ self.compute_service_bereq_http_error = attributes[:'compute_service_bereq_http_error']
3096
+ end
3097
+
3098
+ if attributes.key?(:'bot_challenges_pats_issued')
3099
+ self.bot_challenges_pats_issued = attributes[:'bot_challenges_pats_issued']
3100
+ end
3101
+
3102
+ if attributes.key?(:'bot_challenges_pats_succeeded')
3103
+ self.bot_challenges_pats_succeeded = attributes[:'bot_challenges_pats_succeeded']
3104
+ end
3105
+ end
3106
+
3107
+ # Show invalid properties with the reasons. Usually used together with valid?
3108
+ # @return Array for valid properties with the reasons
3109
+ def list_invalid_properties
3110
+ invalid_properties = Array.new
3111
+ invalid_properties
3112
+ end
3113
+
3114
+ # Check to see if the all the properties in the model are valid
3115
+ # @return true if the model is valid
3116
+ def valid?
3117
+ true
3118
+ end
3119
+
3120
+ # Checks equality by comparing each attribute.
3121
+ # @param [Object] Object to be compared
3122
+ def ==(o)
3123
+ return true if self.equal?(o)
3124
+ self.class == o.class &&
3125
+ requests == o.requests &&
3126
+ logging == o.logging &&
3127
+ log == o.log &&
3128
+ resp_header_bytes == o.resp_header_bytes &&
3129
+ header_size == o.header_size &&
3130
+ resp_body_bytes == o.resp_body_bytes &&
3131
+ body_size == o.body_size &&
3132
+ hits == o.hits &&
3133
+ miss == o.miss &&
3134
+ pass == o.pass &&
3135
+ synth == o.synth &&
3136
+ errors == o.errors &&
3137
+ hits_time == o.hits_time &&
3138
+ miss_time == o.miss_time &&
3139
+ miss_histogram == o.miss_histogram &&
3140
+ compute_requests == o.compute_requests &&
3141
+ compute_execution_time_ms == o.compute_execution_time_ms &&
3142
+ compute_ram_used == o.compute_ram_used &&
3143
+ compute_request_time_ms == o.compute_request_time_ms &&
3144
+ compute_request_time_billed_ms == o.compute_request_time_billed_ms &&
3145
+ shield == o.shield &&
3146
+ ipv6 == o.ipv6 &&
3147
+ imgopto == o.imgopto &&
3148
+ imgopto_shield == o.imgopto_shield &&
3149
+ imgopto_transforms == o.imgopto_transforms &&
3150
+ otfp == o.otfp &&
3151
+ otfp_shield == o.otfp_shield &&
3152
+ otfp_manifests == o.otfp_manifests &&
3153
+ video == o.video &&
3154
+ pci == o.pci &&
3155
+ http2 == o.http2 &&
3156
+ http3 == o.http3 &&
3157
+ restarts == o.restarts &&
3158
+ req_header_bytes == o.req_header_bytes &&
3159
+ req_body_bytes == o.req_body_bytes &&
3160
+ bereq_header_bytes == o.bereq_header_bytes &&
3161
+ bereq_body_bytes == o.bereq_body_bytes &&
3162
+ attack_req_header_bytes == o.attack_req_header_bytes &&
3163
+ attack_req_body_bytes == o.attack_req_body_bytes &&
3164
+ attack_resp_synth_bytes == o.attack_resp_synth_bytes &&
3165
+ attack_logged_req_header_bytes == o.attack_logged_req_header_bytes &&
3166
+ attack_logged_req_body_bytes == o.attack_logged_req_body_bytes &&
3167
+ attack_blocked_req_header_bytes == o.attack_blocked_req_header_bytes &&
3168
+ attack_blocked_req_body_bytes == o.attack_blocked_req_body_bytes &&
3169
+ attack_passed_req_header_bytes == o.attack_passed_req_header_bytes &&
3170
+ attack_passed_req_body_bytes == o.attack_passed_req_body_bytes &&
3171
+ shield_resp_header_bytes == o.shield_resp_header_bytes &&
3172
+ shield_resp_body_bytes == o.shield_resp_body_bytes &&
3173
+ otfp_resp_header_bytes == o.otfp_resp_header_bytes &&
3174
+ otfp_resp_body_bytes == o.otfp_resp_body_bytes &&
3175
+ otfp_shield_resp_header_bytes == o.otfp_shield_resp_header_bytes &&
3176
+ otfp_shield_resp_body_bytes == o.otfp_shield_resp_body_bytes &&
3177
+ otfp_shield_time == o.otfp_shield_time &&
3178
+ otfp_deliver_time == o.otfp_deliver_time &&
3179
+ imgopto_resp_header_bytes == o.imgopto_resp_header_bytes &&
3180
+ imgopto_resp_body_bytes == o.imgopto_resp_body_bytes &&
3181
+ imgopto_shield_resp_header_bytes == o.imgopto_shield_resp_header_bytes &&
3182
+ imgopto_shield_resp_body_bytes == o.imgopto_shield_resp_body_bytes &&
3183
+ status_1xx == o.status_1xx &&
3184
+ status_2xx == o.status_2xx &&
3185
+ status_3xx == o.status_3xx &&
3186
+ status_4xx == o.status_4xx &&
3187
+ status_5xx == o.status_5xx &&
3188
+ status_200 == o.status_200 &&
3189
+ status_204 == o.status_204 &&
3190
+ status_206 == o.status_206 &&
3191
+ status_301 == o.status_301 &&
3192
+ status_302 == o.status_302 &&
3193
+ status_304 == o.status_304 &&
3194
+ status_400 == o.status_400 &&
3195
+ status_401 == o.status_401 &&
3196
+ status_403 == o.status_403 &&
3197
+ status_404 == o.status_404 &&
3198
+ status_406 == o.status_406 &&
3199
+ status_416 == o.status_416 &&
3200
+ status_429 == o.status_429 &&
3201
+ status_500 == o.status_500 &&
3202
+ status_501 == o.status_501 &&
3203
+ status_502 == o.status_502 &&
3204
+ status_503 == o.status_503 &&
3205
+ status_504 == o.status_504 &&
3206
+ status_505 == o.status_505 &&
3207
+ status_530 == o.status_530 &&
3208
+ uncacheable == o.uncacheable &&
3209
+ pass_time == o.pass_time &&
3210
+ tls == o.tls &&
3211
+ tls_v10 == o.tls_v10 &&
3212
+ tls_v11 == o.tls_v11 &&
3213
+ tls_v12 == o.tls_v12 &&
3214
+ tls_v13 == o.tls_v13 &&
3215
+ object_size_1k == o.object_size_1k &&
3216
+ object_size_10k == o.object_size_10k &&
3217
+ object_size_100k == o.object_size_100k &&
3218
+ object_size_1m == o.object_size_1m &&
3219
+ object_size_10m == o.object_size_10m &&
3220
+ object_size_100m == o.object_size_100m &&
3221
+ object_size_1g == o.object_size_1g &&
3222
+ object_size_other == o.object_size_other &&
3223
+ recv_sub_time == o.recv_sub_time &&
3224
+ recv_sub_count == o.recv_sub_count &&
3225
+ hash_sub_time == o.hash_sub_time &&
3226
+ hash_sub_count == o.hash_sub_count &&
3227
+ miss_sub_time == o.miss_sub_time &&
3228
+ miss_sub_count == o.miss_sub_count &&
3229
+ fetch_sub_time == o.fetch_sub_time &&
3230
+ fetch_sub_count == o.fetch_sub_count &&
3231
+ pass_sub_time == o.pass_sub_time &&
3232
+ pass_sub_count == o.pass_sub_count &&
3233
+ pipe_sub_time == o.pipe_sub_time &&
3234
+ pipe_sub_count == o.pipe_sub_count &&
3235
+ deliver_sub_time == o.deliver_sub_time &&
3236
+ deliver_sub_count == o.deliver_sub_count &&
3237
+ error_sub_time == o.error_sub_time &&
3238
+ error_sub_count == o.error_sub_count &&
3239
+ hit_sub_time == o.hit_sub_time &&
3240
+ hit_sub_count == o.hit_sub_count &&
3241
+ prehash_sub_time == o.prehash_sub_time &&
3242
+ prehash_sub_count == o.prehash_sub_count &&
3243
+ predeliver_sub_time == o.predeliver_sub_time &&
3244
+ predeliver_sub_count == o.predeliver_sub_count &&
3245
+ hit_resp_body_bytes == o.hit_resp_body_bytes &&
3246
+ miss_resp_body_bytes == o.miss_resp_body_bytes &&
3247
+ pass_resp_body_bytes == o.pass_resp_body_bytes &&
3248
+ compute_req_header_bytes == o.compute_req_header_bytes &&
3249
+ compute_req_body_bytes == o.compute_req_body_bytes &&
3250
+ compute_resp_header_bytes == o.compute_resp_header_bytes &&
3251
+ compute_resp_body_bytes == o.compute_resp_body_bytes &&
3252
+ imgvideo == o.imgvideo &&
3253
+ imgvideo_frames == o.imgvideo_frames &&
3254
+ imgvideo_resp_header_bytes == o.imgvideo_resp_header_bytes &&
3255
+ imgvideo_resp_body_bytes == o.imgvideo_resp_body_bytes &&
3256
+ imgvideo_shield == o.imgvideo_shield &&
3257
+ imgvideo_shield_frames == o.imgvideo_shield_frames &&
3258
+ imgvideo_shield_resp_header_bytes == o.imgvideo_shield_resp_header_bytes &&
3259
+ imgvideo_shield_resp_body_bytes == o.imgvideo_shield_resp_body_bytes &&
3260
+ log_bytes == o.log_bytes &&
3261
+ edge_requests == o.edge_requests &&
3262
+ edge_resp_header_bytes == o.edge_resp_header_bytes &&
3263
+ edge_resp_body_bytes == o.edge_resp_body_bytes &&
3264
+ origin_revalidations == o.origin_revalidations &&
3265
+ origin_fetches == o.origin_fetches &&
3266
+ origin_fetch_header_bytes == o.origin_fetch_header_bytes &&
3267
+ origin_fetch_body_bytes == o.origin_fetch_body_bytes &&
3268
+ origin_fetch_resp_header_bytes == o.origin_fetch_resp_header_bytes &&
3269
+ origin_fetch_resp_body_bytes == o.origin_fetch_resp_body_bytes &&
3270
+ shield_revalidations == o.shield_revalidations &&
3271
+ shield_fetches == o.shield_fetches &&
3272
+ shield_fetch_header_bytes == o.shield_fetch_header_bytes &&
3273
+ shield_fetch_body_bytes == o.shield_fetch_body_bytes &&
3274
+ shield_fetch_resp_header_bytes == o.shield_fetch_resp_header_bytes &&
3275
+ shield_fetch_resp_body_bytes == o.shield_fetch_resp_body_bytes &&
3276
+ segblock_origin_fetches == o.segblock_origin_fetches &&
3277
+ segblock_shield_fetches == o.segblock_shield_fetches &&
3278
+ compute_resp_status_1xx == o.compute_resp_status_1xx &&
3279
+ compute_resp_status_2xx == o.compute_resp_status_2xx &&
3280
+ compute_resp_status_3xx == o.compute_resp_status_3xx &&
3281
+ compute_resp_status_4xx == o.compute_resp_status_4xx &&
3282
+ compute_resp_status_5xx == o.compute_resp_status_5xx &&
3283
+ edge_hit_requests == o.edge_hit_requests &&
3284
+ edge_miss_requests == o.edge_miss_requests &&
3285
+ compute_bereq_header_bytes == o.compute_bereq_header_bytes &&
3286
+ compute_bereq_body_bytes == o.compute_bereq_body_bytes &&
3287
+ compute_beresp_header_bytes == o.compute_beresp_header_bytes &&
3288
+ compute_beresp_body_bytes == o.compute_beresp_body_bytes &&
3289
+ origin_cache_fetches == o.origin_cache_fetches &&
3290
+ shield_cache_fetches == o.shield_cache_fetches &&
3291
+ compute_bereqs == o.compute_bereqs &&
3292
+ compute_bereq_errors == o.compute_bereq_errors &&
3293
+ compute_service_bereq_error == o.compute_service_bereq_error &&
3294
+ compute_resource_limit_exceeded == o.compute_resource_limit_exceeded &&
3295
+ compute_heap_limit_exceeded == o.compute_heap_limit_exceeded &&
3296
+ compute_service_memory_exceeded_error == o.compute_service_memory_exceeded_error &&
3297
+ compute_stack_limit_exceeded == o.compute_stack_limit_exceeded &&
3298
+ compute_globals_limit_exceeded == o.compute_globals_limit_exceeded &&
3299
+ compute_guest_errors == o.compute_guest_errors &&
3300
+ compute_runtime_errors == o.compute_runtime_errors &&
3301
+ edge_hit_resp_body_bytes == o.edge_hit_resp_body_bytes &&
3302
+ edge_hit_resp_header_bytes == o.edge_hit_resp_header_bytes &&
3303
+ edge_miss_resp_body_bytes == o.edge_miss_resp_body_bytes &&
3304
+ edge_miss_resp_header_bytes == o.edge_miss_resp_header_bytes &&
3305
+ origin_cache_fetch_resp_body_bytes == o.origin_cache_fetch_resp_body_bytes &&
3306
+ origin_cache_fetch_resp_header_bytes == o.origin_cache_fetch_resp_header_bytes &&
3307
+ shield_hit_requests == o.shield_hit_requests &&
3308
+ shield_miss_requests == o.shield_miss_requests &&
3309
+ shield_hit_resp_header_bytes == o.shield_hit_resp_header_bytes &&
3310
+ shield_hit_resp_body_bytes == o.shield_hit_resp_body_bytes &&
3311
+ shield_miss_resp_header_bytes == o.shield_miss_resp_header_bytes &&
3312
+ shield_miss_resp_body_bytes == o.shield_miss_resp_body_bytes &&
3313
+ websocket_req_header_bytes == o.websocket_req_header_bytes &&
3314
+ websocket_req_body_bytes == o.websocket_req_body_bytes &&
3315
+ websocket_resp_header_bytes == o.websocket_resp_header_bytes &&
3316
+ websocket_bereq_header_bytes == o.websocket_bereq_header_bytes &&
3317
+ websocket_bereq_body_bytes == o.websocket_bereq_body_bytes &&
3318
+ websocket_beresp_header_bytes == o.websocket_beresp_header_bytes &&
3319
+ websocket_beresp_body_bytes == o.websocket_beresp_body_bytes &&
3320
+ websocket_conn_time_ms == o.websocket_conn_time_ms &&
3321
+ websocket_resp_body_bytes == o.websocket_resp_body_bytes &&
3322
+ fanout_recv_publishes == o.fanout_recv_publishes &&
3323
+ fanout_send_publishes == o.fanout_send_publishes &&
3324
+ kv_store_class_a_operations == o.kv_store_class_a_operations &&
3325
+ kv_store_class_b_operations == o.kv_store_class_b_operations &&
3326
+ object_store_class_a_operations == o.object_store_class_a_operations &&
3327
+ object_store_class_b_operations == o.object_store_class_b_operations &&
3328
+ fanout_req_header_bytes == o.fanout_req_header_bytes &&
3329
+ fanout_req_body_bytes == o.fanout_req_body_bytes &&
3330
+ fanout_resp_header_bytes == o.fanout_resp_header_bytes &&
3331
+ fanout_resp_body_bytes == o.fanout_resp_body_bytes &&
3332
+ fanout_bereq_header_bytes == o.fanout_bereq_header_bytes &&
3333
+ fanout_bereq_body_bytes == o.fanout_bereq_body_bytes &&
3334
+ fanout_beresp_header_bytes == o.fanout_beresp_header_bytes &&
3335
+ fanout_beresp_body_bytes == o.fanout_beresp_body_bytes &&
3336
+ fanout_conn_time_ms == o.fanout_conn_time_ms &&
3337
+ ddos_action_limit_streams_connections == o.ddos_action_limit_streams_connections &&
3338
+ ddos_action_limit_streams_requests == o.ddos_action_limit_streams_requests &&
3339
+ ddos_action_tarpit_accept == o.ddos_action_tarpit_accept &&
3340
+ ddos_action_tarpit == o.ddos_action_tarpit &&
3341
+ ddos_action_close == o.ddos_action_close &&
3342
+ ddos_action_blackhole == o.ddos_action_blackhole &&
3343
+ bot_challenge_starts == o.bot_challenge_starts &&
3344
+ bot_challenge_complete_tokens_passed == o.bot_challenge_complete_tokens_passed &&
3345
+ bot_challenge_complete_tokens_failed == o.bot_challenge_complete_tokens_failed &&
3346
+ bot_challenge_complete_tokens_checked == o.bot_challenge_complete_tokens_checked &&
3347
+ bot_challenge_complete_tokens_disabled == o.bot_challenge_complete_tokens_disabled &&
3348
+ bot_challenges_issued == o.bot_challenges_issued &&
3349
+ bot_challenges_succeeded == o.bot_challenges_succeeded &&
3350
+ bot_challenges_failed == o.bot_challenges_failed &&
3351
+ bot_challenge_complete_tokens_issued == o.bot_challenge_complete_tokens_issued &&
3352
+ ddos_action_downgrade == o.ddos_action_downgrade &&
3353
+ ddos_action_downgraded_connections == o.ddos_action_downgraded_connections &&
3354
+ all_hit_requests == o.all_hit_requests &&
3355
+ all_miss_requests == o.all_miss_requests &&
3356
+ all_pass_requests == o.all_pass_requests &&
3357
+ all_error_requests == o.all_error_requests &&
3358
+ all_synth_requests == o.all_synth_requests &&
3359
+ all_edge_hit_requests == o.all_edge_hit_requests &&
3360
+ all_edge_miss_requests == o.all_edge_miss_requests &&
3361
+ all_status_1xx == o.all_status_1xx &&
3362
+ all_status_2xx == o.all_status_2xx &&
3363
+ all_status_3xx == o.all_status_3xx &&
3364
+ all_status_4xx == o.all_status_4xx &&
3365
+ all_status_5xx == o.all_status_5xx &&
3366
+ origin_offload == o.origin_offload &&
3367
+ request_denied_get_head_body == o.request_denied_get_head_body &&
3368
+ ddos_protection_requests_detect_count == o.ddos_protection_requests_detect_count &&
3369
+ ddos_protection_requests_mitigate_count == o.ddos_protection_requests_mitigate_count &&
3370
+ ddos_protection_requests_allow_count == o.ddos_protection_requests_allow_count &&
3371
+ object_storage_class_a_operations_count == o.object_storage_class_a_operations_count &&
3372
+ object_storage_class_b_operations_count == o.object_storage_class_b_operations_count &&
3373
+ aia_requests == o.aia_requests &&
3374
+ aia_status_1xx == o.aia_status_1xx &&
3375
+ aia_status_2xx == o.aia_status_2xx &&
3376
+ aia_status_3xx == o.aia_status_3xx &&
3377
+ aia_status_4xx == o.aia_status_4xx &&
3378
+ aia_status_5xx == o.aia_status_5xx &&
3379
+ aia_response_usage_tokens == o.aia_response_usage_tokens &&
3380
+ aia_origin_usage_tokens == o.aia_origin_usage_tokens &&
3381
+ aia_estimated_time_saved_ms == o.aia_estimated_time_saved_ms &&
3382
+ request_collapse_usable_count == o.request_collapse_usable_count &&
3383
+ request_collapse_unusable_count == o.request_collapse_unusable_count &&
3384
+ compute_cache_operations_count == o.compute_cache_operations_count &&
3385
+ api_discovery_requests_count == o.api_discovery_requests_count &&
3386
+ compute_resp_status_103 == o.compute_resp_status_103 &&
3387
+ compute_resp_status_200 == o.compute_resp_status_200 &&
3388
+ compute_resp_status_204 == o.compute_resp_status_204 &&
3389
+ compute_resp_status_206 == o.compute_resp_status_206 &&
3390
+ compute_resp_status_301 == o.compute_resp_status_301 &&
3391
+ compute_resp_status_302 == o.compute_resp_status_302 &&
3392
+ compute_resp_status_304 == o.compute_resp_status_304 &&
3393
+ compute_resp_status_400 == o.compute_resp_status_400 &&
3394
+ compute_resp_status_401 == o.compute_resp_status_401 &&
3395
+ compute_resp_status_403 == o.compute_resp_status_403 &&
3396
+ compute_resp_status_404 == o.compute_resp_status_404 &&
3397
+ compute_resp_status_416 == o.compute_resp_status_416 &&
3398
+ compute_resp_status_429 == o.compute_resp_status_429 &&
3399
+ compute_resp_status_500 == o.compute_resp_status_500 &&
3400
+ compute_resp_status_501 == o.compute_resp_status_501 &&
3401
+ compute_resp_status_502 == o.compute_resp_status_502 &&
3402
+ compute_resp_status_503 == o.compute_resp_status_503 &&
3403
+ compute_resp_status_504 == o.compute_resp_status_504 &&
3404
+ compute_resp_status_505 == o.compute_resp_status_505 &&
3405
+ compute_resp_status_530 == o.compute_resp_status_530 &&
3406
+ imgopto_compute_requests == o.imgopto_compute_requests &&
3407
+ dns_billable_responses_count == o.dns_billable_responses_count &&
3408
+ dns_nonbillable_responses_count == o.dns_nonbillable_responses_count &&
3409
+ upgrade == o.upgrade &&
3410
+ ngwaf_bot_analysis_request_count == o.ngwaf_bot_analysis_request_count &&
3411
+ imgopto_avif_count == o.imgopto_avif_count &&
3412
+ imgopto_jpeg_count == o.imgopto_jpeg_count &&
3413
+ imgopto_png_count == o.imgopto_png_count &&
3414
+ imgopto_gif_count == o.imgopto_gif_count &&
3415
+ imgopto_webp_count == o.imgopto_webp_count &&
3416
+ imgopto_jpegxl_count == o.imgopto_jpegxl_count &&
3417
+ imgopto_svg_count == o.imgopto_svg_count &&
3418
+ imgopto_mp4_count == o.imgopto_mp4_count &&
3419
+ compute_service_resource_limits_error == o.compute_service_resource_limits_error &&
3420
+ compute_service_runtime_error == o.compute_service_runtime_error &&
3421
+ compute_service_chain_error == o.compute_service_chain_error &&
3422
+ compute_platform_internal_error == o.compute_platform_internal_error &&
3423
+ compute_service_timeout_error == o.compute_service_timeout_error &&
3424
+ compute_service_vcpu_exceeded_error == o.compute_service_vcpu_exceeded_error &&
3425
+ compute_service_limits_error == o.compute_service_limits_error &&
3426
+ compute_platform_invalid_request_error == o.compute_platform_invalid_request_error &&
3427
+ compute_sandboxes == o.compute_sandboxes &&
3428
+ bot_requests_total_count == o.bot_requests_total_count &&
3429
+ bot_edge_requests_analyzed_count == o.bot_edge_requests_analyzed_count &&
3430
+ bot_edge_requests_detected_count == o.bot_edge_requests_detected_count &&
3431
+ bot_edge_requests_verified_count == o.bot_edge_requests_verified_count &&
3432
+ bot_edge_requests_ai_crawler_count == o.bot_edge_requests_ai_crawler_count &&
3433
+ bot_edge_requests_ai_fetcher_count == o.bot_edge_requests_ai_fetcher_count &&
3434
+ bot_edge_requests_accessibility_count == o.bot_edge_requests_accessibility_count &&
3435
+ bot_edge_requests_content_fetcher_count == o.bot_edge_requests_content_fetcher_count &&
3436
+ bot_edge_requests_monitoring_count == o.bot_edge_requests_monitoring_count &&
3437
+ bot_edge_requests_online_marketing_count == o.bot_edge_requests_online_marketing_count &&
3438
+ bot_edge_requests_page_preview_count == o.bot_edge_requests_page_preview_count &&
3439
+ bot_edge_requests_platform_integrations_count == o.bot_edge_requests_platform_integrations_count &&
3440
+ bot_edge_requests_research_count == o.bot_edge_requests_research_count &&
3441
+ bot_edge_requests_search_engine_crawler_count == o.bot_edge_requests_search_engine_crawler_count &&
3442
+ bot_edge_requests_search_engine_optimization_count == o.bot_edge_requests_search_engine_optimization_count &&
3443
+ bot_edge_requests_security_tools_count == o.bot_edge_requests_security_tools_count &&
3444
+ compute_handoff == o.compute_handoff &&
3445
+ compute_service_bereq_dns_error == o.compute_service_bereq_dns_error &&
3446
+ compute_service_bereq_conn_timeout_error == o.compute_service_bereq_conn_timeout_error &&
3447
+ compute_service_bereq_conn_refused_error == o.compute_service_bereq_conn_refused_error &&
3448
+ compute_service_bereq_conn_other_error == o.compute_service_bereq_conn_other_error &&
3449
+ compute_service_bereq_tls_server_cert_error == o.compute_service_bereq_tls_server_cert_error &&
3450
+ compute_service_bereq_tls_other_error == o.compute_service_bereq_tls_other_error &&
3451
+ compute_service_bereq_http_proto_v1_error == o.compute_service_bereq_http_proto_v1_error &&
3452
+ compute_service_bereq_http_proto_v2_error == o.compute_service_bereq_http_proto_v2_error &&
3453
+ compute_service_bereq_http_incomplete_error == o.compute_service_bereq_http_incomplete_error &&
3454
+ compute_service_bereq_http_timeout_error == o.compute_service_bereq_http_timeout_error &&
3455
+ compute_service_bereq_http_other_error == o.compute_service_bereq_http_other_error &&
3456
+ compute_service_bereq_other_error == o.compute_service_bereq_other_error &&
3457
+ compute_service_bereq_5xx_error == o.compute_service_bereq_5xx_error &&
3458
+ compute_service_bereq_conn_error == o.compute_service_bereq_conn_error &&
3459
+ compute_service_bereq_tls_error == o.compute_service_bereq_tls_error &&
3460
+ compute_service_bereq_http_error == o.compute_service_bereq_http_error &&
3461
+ bot_challenges_pats_issued == o.bot_challenges_pats_issued &&
3462
+ bot_challenges_pats_succeeded == o.bot_challenges_pats_succeeded
3463
+ end
3464
+
3465
+ # @see the `==` method
3466
+ # @param [Object] Object to be compared
3467
+ def eql?(o)
3468
+ self == o
3469
+ end
3470
+
3471
+ # Calculates hash code according to all attributes.
3472
+ # @return [Integer] Hash code
3473
+ def hash
3474
+ [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, 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, status_530, 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_service_bereq_error, compute_resource_limit_exceeded, compute_heap_limit_exceeded, compute_service_memory_exceeded_error, 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, bot_challenge_starts, bot_challenge_complete_tokens_passed, bot_challenge_complete_tokens_failed, bot_challenge_complete_tokens_checked, bot_challenge_complete_tokens_disabled, bot_challenges_issued, bot_challenges_succeeded, bot_challenges_failed, bot_challenge_complete_tokens_issued, ddos_action_downgrade, ddos_action_downgraded_connections, all_hit_requests, all_miss_requests, all_pass_requests, all_error_requests, all_synth_requests, all_edge_hit_requests, all_edge_miss_requests, all_status_1xx, all_status_2xx, all_status_3xx, all_status_4xx, all_status_5xx, origin_offload, request_denied_get_head_body, ddos_protection_requests_detect_count, ddos_protection_requests_mitigate_count, ddos_protection_requests_allow_count, object_storage_class_a_operations_count, object_storage_class_b_operations_count, aia_requests, aia_status_1xx, aia_status_2xx, aia_status_3xx, aia_status_4xx, aia_status_5xx, aia_response_usage_tokens, aia_origin_usage_tokens, aia_estimated_time_saved_ms, request_collapse_usable_count, request_collapse_unusable_count, compute_cache_operations_count, api_discovery_requests_count, compute_resp_status_103, compute_resp_status_200, compute_resp_status_204, compute_resp_status_206, compute_resp_status_301, compute_resp_status_302, compute_resp_status_304, compute_resp_status_400, compute_resp_status_401, compute_resp_status_403, compute_resp_status_404, compute_resp_status_416, compute_resp_status_429, compute_resp_status_500, compute_resp_status_501, compute_resp_status_502, compute_resp_status_503, compute_resp_status_504, compute_resp_status_505, compute_resp_status_530, imgopto_compute_requests, dns_billable_responses_count, dns_nonbillable_responses_count, upgrade, ngwaf_bot_analysis_request_count, imgopto_avif_count, imgopto_jpeg_count, imgopto_png_count, imgopto_gif_count, imgopto_webp_count, imgopto_jpegxl_count, imgopto_svg_count, imgopto_mp4_count, compute_service_resource_limits_error, compute_service_runtime_error, compute_service_chain_error, compute_platform_internal_error, compute_service_timeout_error, compute_service_vcpu_exceeded_error, compute_service_limits_error, compute_platform_invalid_request_error, compute_sandboxes, bot_requests_total_count, bot_edge_requests_analyzed_count, bot_edge_requests_detected_count, bot_edge_requests_verified_count, bot_edge_requests_ai_crawler_count, bot_edge_requests_ai_fetcher_count, bot_edge_requests_accessibility_count, bot_edge_requests_content_fetcher_count, bot_edge_requests_monitoring_count, bot_edge_requests_online_marketing_count, bot_edge_requests_page_preview_count, bot_edge_requests_platform_integrations_count, bot_edge_requests_research_count, bot_edge_requests_search_engine_crawler_count, bot_edge_requests_search_engine_optimization_count, bot_edge_requests_security_tools_count, compute_handoff, compute_service_bereq_dns_error, compute_service_bereq_conn_timeout_error, compute_service_bereq_conn_refused_error, compute_service_bereq_conn_other_error, compute_service_bereq_tls_server_cert_error, compute_service_bereq_tls_other_error, compute_service_bereq_http_proto_v1_error, compute_service_bereq_http_proto_v2_error, compute_service_bereq_http_incomplete_error, compute_service_bereq_http_timeout_error, compute_service_bereq_http_other_error, compute_service_bereq_other_error, compute_service_bereq_5xx_error, compute_service_bereq_conn_error, compute_service_bereq_tls_error, compute_service_bereq_http_error, bot_challenges_pats_issued, bot_challenges_pats_succeeded].hash
3475
+ end
3476
+
3477
+ # Builds the object from hash
3478
+ # @param [Hash] attributes Model attributes in the form of hash
3479
+ # @return [Object] Returns the model itself
3480
+ def self.build_from_hash(attributes)
3481
+ new.build_from_hash(attributes)
3482
+ end
3483
+
3484
+ # Builds the object from hash
3485
+ # @param [Hash] attributes Model attributes in the form of hash
3486
+ # @return [Object] Returns the model itself
3487
+ def build_from_hash(attributes)
3488
+ return nil unless attributes.is_a?(Hash)
3489
+ self.class.fastly_types.each_pair do |key, type|
3490
+ if attributes[self.class.attribute_map[key]].nil? && self.class.fastly_nullable.include?(key)
3491
+ self.send("#{key}=", nil)
3492
+ elsif type =~ /\AArray<(.*)>/i
3493
+ # check to ensure the input is an array given that the attribute
3494
+ # is documented as an array but the input is not
3495
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
3496
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
3497
+ end
3498
+ elsif !attributes[self.class.attribute_map[key]].nil?
3499
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
3500
+ end
3501
+ end
3502
+
3503
+ self
3504
+ end
3505
+
3506
+ # Deserializes the data based on type
3507
+ # @param string type Data type
3508
+ # @param string value Value to be deserialized
3509
+ # @return [Object] Deserialized data
3510
+ def _deserialize(type, value)
3511
+ case type.to_sym
3512
+ when :Time
3513
+ Time.parse(value)
3514
+ when :Date
3515
+ Date.parse(value)
3516
+ when :String
3517
+ value.to_s
3518
+ when :Integer
3519
+ value.to_i
3520
+ when :Float
3521
+ value.to_f
3522
+ when :Boolean
3523
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
3524
+ true
3525
+ else
3526
+ false
3527
+ end
3528
+ when :Object
3529
+ # generic object (usually a Hash), return directly
3530
+ value
3531
+ when /\AArray<(?<inner_type>.+)>\z/
3532
+ inner_type = Regexp.last_match[:inner_type]
3533
+ value.map { |v| _deserialize(inner_type, v) }
3534
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
3535
+ k_type = Regexp.last_match[:k_type]
3536
+ v_type = Regexp.last_match[:v_type]
3537
+ {}.tap do |hash|
3538
+ value.each do |k, v|
3539
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
3540
+ end
3541
+ end
3542
+ else # model
3543
+ # models (e.g. Pet) or oneOf
3544
+ klass = Fastly.const_get(type)
3545
+ klass.respond_to?(:fastly_one_of) ? klass.build(value) : klass.build_from_hash(value)
3546
+ end
3547
+ end
3548
+
3549
+ # Returns the string representation of the object
3550
+ # @return [String] String presentation of the object
3551
+ def to_s
3552
+ to_hash.to_s
3553
+ end
3554
+
3555
+ # to_body is an alias to to_hash (backward compatibility)
3556
+ # @return [Hash] Returns the object in the form of hash
3557
+ def to_body
3558
+ to_hash
3559
+ end
3560
+
3561
+ # Returns the object in the form of hash
3562
+ # @return [Hash] Returns the object in the form of hash
3563
+ def to_hash
3564
+ hash = {}
3565
+ self.class.attribute_map.each_pair do |attr, param|
3566
+ value = self.send(attr)
3567
+ if value.nil?
3568
+ is_nullable = self.class.fastly_nullable.include?(attr)
3569
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
3570
+ end
3571
+
3572
+ hash[param] = _to_hash(value)
3573
+ end
3574
+ hash
3575
+ end
3576
+
3577
+ # Outputs non-array value in the form of hash
3578
+ # For object, use to_hash. Otherwise, just return the value
3579
+ # @param [Object] value Any valid value
3580
+ # @return [Hash] Returns the value in the form of hash
3581
+ def _to_hash(value)
3582
+ if value.is_a?(Array)
3583
+ value.compact.map { |v| _to_hash(v) }
3584
+ elsif value.is_a?(Hash)
3585
+ {}.tap do |hash|
3586
+ value.each { |k, v| hash[k] = _to_hash(v) }
3587
+ end
3588
+ elsif value.respond_to? :to_hash
3589
+ value.to_hash
3590
+ else
3591
+ value
3592
+ end
3593
+ end
3594
+
3595
+ end
3596
+
3597
+ end