fastly 5.1.1 → 5.2.0

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