imagekitio 4.7.0 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2097 @@
1
+ # typed: strong
2
+
3
+ module Imagekitio
4
+ module Models
5
+ module Accounts
6
+ class UsageAnalyticsResponse < Imagekitio::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Imagekitio::Accounts::UsageAnalyticsResponse,
11
+ Imagekitio::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Total bandwidth, in bytes, utilized during the specified date range.
16
+ sig { returns(Float) }
17
+ attr_accessor :bandwidth_bytes
18
+
19
+ # CDN traffic grouped by browser.
20
+ sig { returns(Imagekitio::Accounts::UsageAnalyticsResponse::Browser) }
21
+ attr_reader :browser
22
+
23
+ sig do
24
+ params(
25
+ browser:
26
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::OrHash
27
+ ).void
28
+ end
29
+ attr_writer :browser
30
+
31
+ # CDN cache hit, miss and error counts for the date range.
32
+ sig { returns(Imagekitio::Accounts::UsageAnalyticsResponse::Cache) }
33
+ attr_reader :cache
34
+
35
+ sig do
36
+ params(
37
+ cache: Imagekitio::Accounts::UsageAnalyticsResponse::Cache::OrHash
38
+ ).void
39
+ end
40
+ attr_writer :cache
41
+
42
+ # CDN traffic grouped by country.
43
+ sig { returns(Imagekitio::Accounts::UsageAnalyticsResponse::Country) }
44
+ attr_reader :country
45
+
46
+ sig do
47
+ params(
48
+ country:
49
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::OrHash
50
+ ).void
51
+ end
52
+ attr_writer :country
53
+
54
+ # CDN traffic grouped by device and operating system (e.g. `Desktop - Apple Mac`,
55
+ # `Smartphone - Apple iPhone`).
56
+ sig { returns(Imagekitio::Accounts::UsageAnalyticsResponse::Device) }
57
+ attr_reader :device
58
+
59
+ sig do
60
+ params(
61
+ device: Imagekitio::Accounts::UsageAnalyticsResponse::Device::OrHash
62
+ ).void
63
+ end
64
+ attr_writer :device
65
+
66
+ # End date of the computed analytics data.
67
+ sig { returns(Date) }
68
+ attr_accessor :end_date
69
+
70
+ # Request count grouped by origin error reason. This covers failed origin fetches,
71
+ # such as an asset not found at origin or an origin timeout. It is not the HTTP
72
+ # status code returned to the client, see `statusCodes` for that.
73
+ sig do
74
+ returns(
75
+ T::Array[Imagekitio::Accounts::UsageAnalyticsResponse::ErrorReason]
76
+ )
77
+ end
78
+ attr_accessor :error_reasons
79
+
80
+ # Raw per-extension operation counts for the date range. These are raw operation
81
+ # counts, not billable extension units. For billable usage, use the
82
+ # `/v1/accounts/usage` endpoint.
83
+ sig do
84
+ returns(
85
+ T::Array[Imagekitio::Accounts::UsageAnalyticsResponse::Extension]
86
+ )
87
+ end
88
+ attr_accessor :extensions
89
+
90
+ # CDN traffic grouped by response `Content-Type`.
91
+ sig { returns(Imagekitio::Accounts::UsageAnalyticsResponse::Format) }
92
+ attr_reader :format_
93
+
94
+ sig do
95
+ params(
96
+ format_:
97
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::OrHash
98
+ ).void
99
+ end
100
+ attr_writer :format_
101
+
102
+ # Date and time when the analytics data was computed. Use this to gauge how fresh
103
+ # the returned data is. The date and time is in ISO8601 format.
104
+ sig { returns(Time) }
105
+ attr_accessor :generated_at
106
+
107
+ # Total number of requests made during the specified date range.
108
+ sig { returns(Float) }
109
+ attr_accessor :request_count
110
+
111
+ # Start date of the computed analytics data.
112
+ sig { returns(Date) }
113
+ attr_accessor :start_date
114
+
115
+ # Request count grouped by HTTP status code.
116
+ sig do
117
+ returns(
118
+ T::Array[Imagekitio::Accounts::UsageAnalyticsResponse::StatusCode]
119
+ )
120
+ end
121
+ attr_accessor :status_codes
122
+
123
+ # Top URLs that returned a 404 response.
124
+ sig do
125
+ returns(
126
+ T::Array[Imagekitio::Accounts::UsageAnalyticsResponse::Top404Asset]
127
+ )
128
+ end
129
+ attr_accessor :top404_assets
130
+
131
+ # Top image assets by traffic.
132
+ sig { returns(Imagekitio::Accounts::UsageAnalyticsResponse::TopImages) }
133
+ attr_reader :top_images
134
+
135
+ sig do
136
+ params(
137
+ top_images:
138
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::OrHash
139
+ ).void
140
+ end
141
+ attr_writer :top_images
142
+
143
+ # Top image transformation strings by traffic.
144
+ sig do
145
+ returns(
146
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms
147
+ )
148
+ end
149
+ attr_reader :top_image_transforms
150
+
151
+ sig do
152
+ params(
153
+ top_image_transforms:
154
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::OrHash
155
+ ).void
156
+ end
157
+ attr_writer :top_image_transforms
158
+
159
+ # Top non-image, non-video assets by traffic.
160
+ sig do
161
+ returns(Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets)
162
+ end
163
+ attr_reader :top_other_assets
164
+
165
+ sig do
166
+ params(
167
+ top_other_assets:
168
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::OrHash
169
+ ).void
170
+ end
171
+ attr_writer :top_other_assets
172
+
173
+ # Top HTTP referrers by traffic.
174
+ sig do
175
+ returns(Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers)
176
+ end
177
+ attr_reader :top_referrers
178
+
179
+ sig do
180
+ params(
181
+ top_referrers:
182
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::OrHash
183
+ ).void
184
+ end
185
+ attr_writer :top_referrers
186
+
187
+ # Top user agents by traffic.
188
+ sig do
189
+ returns(Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents)
190
+ end
191
+ attr_reader :top_user_agents
192
+
193
+ sig do
194
+ params(
195
+ top_user_agents:
196
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::OrHash
197
+ ).void
198
+ end
199
+ attr_writer :top_user_agents
200
+
201
+ # Top video assets by traffic.
202
+ sig { returns(Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos) }
203
+ attr_reader :top_videos
204
+
205
+ sig do
206
+ params(
207
+ top_videos:
208
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::OrHash
209
+ ).void
210
+ end
211
+ attr_writer :top_videos
212
+
213
+ # Top video transformation strings by traffic.
214
+ sig do
215
+ returns(
216
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms
217
+ )
218
+ end
219
+ attr_reader :top_video_transforms
220
+
221
+ sig do
222
+ params(
223
+ top_video_transforms:
224
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::OrHash
225
+ ).void
226
+ end
227
+ attr_writer :top_video_transforms
228
+
229
+ # CDN traffic grouped by configured URL endpoint. Traffic that does not match any
230
+ # named URL endpoint pattern is grouped under `Default`.
231
+ sig do
232
+ returns(Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints)
233
+ end
234
+ attr_reader :url_endpoints
235
+
236
+ sig do
237
+ params(
238
+ url_endpoints:
239
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::OrHash
240
+ ).void
241
+ end
242
+ attr_writer :url_endpoints
243
+
244
+ # Raw observed video transcode output duration, in seconds, grouped by resolution
245
+ # and codec. These are raw seconds, not billable Video Processing Units (VPU). For
246
+ # billable VPU totals, use the `/v1/accounts/usage` endpoint.
247
+ sig do
248
+ returns(
249
+ T::Array[
250
+ Imagekitio::Accounts::UsageAnalyticsResponse::VideoProcessing
251
+ ]
252
+ )
253
+ end
254
+ attr_accessor :video_processing
255
+
256
+ sig do
257
+ params(
258
+ bandwidth_bytes: Float,
259
+ browser:
260
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::OrHash,
261
+ cache: Imagekitio::Accounts::UsageAnalyticsResponse::Cache::OrHash,
262
+ country:
263
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::OrHash,
264
+ device:
265
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device::OrHash,
266
+ end_date: Date,
267
+ error_reasons:
268
+ T::Array[
269
+ Imagekitio::Accounts::UsageAnalyticsResponse::ErrorReason::OrHash
270
+ ],
271
+ extensions:
272
+ T::Array[
273
+ Imagekitio::Accounts::UsageAnalyticsResponse::Extension::OrHash
274
+ ],
275
+ format_:
276
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::OrHash,
277
+ generated_at: Time,
278
+ request_count: Float,
279
+ start_date: Date,
280
+ status_codes:
281
+ T::Array[
282
+ Imagekitio::Accounts::UsageAnalyticsResponse::StatusCode::OrHash
283
+ ],
284
+ top404_assets:
285
+ T::Array[
286
+ Imagekitio::Accounts::UsageAnalyticsResponse::Top404Asset::OrHash
287
+ ],
288
+ top_images:
289
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::OrHash,
290
+ top_image_transforms:
291
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::OrHash,
292
+ top_other_assets:
293
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::OrHash,
294
+ top_referrers:
295
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::OrHash,
296
+ top_user_agents:
297
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::OrHash,
298
+ top_videos:
299
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::OrHash,
300
+ top_video_transforms:
301
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::OrHash,
302
+ url_endpoints:
303
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::OrHash,
304
+ video_processing:
305
+ T::Array[
306
+ Imagekitio::Accounts::UsageAnalyticsResponse::VideoProcessing::OrHash
307
+ ]
308
+ ).returns(T.attached_class)
309
+ end
310
+ def self.new(
311
+ # Total bandwidth, in bytes, utilized during the specified date range.
312
+ bandwidth_bytes:,
313
+ # CDN traffic grouped by browser.
314
+ browser:,
315
+ # CDN cache hit, miss and error counts for the date range.
316
+ cache:,
317
+ # CDN traffic grouped by country.
318
+ country:,
319
+ # CDN traffic grouped by device and operating system (e.g. `Desktop - Apple Mac`,
320
+ # `Smartphone - Apple iPhone`).
321
+ device:,
322
+ # End date of the computed analytics data.
323
+ end_date:,
324
+ # Request count grouped by origin error reason. This covers failed origin fetches,
325
+ # such as an asset not found at origin or an origin timeout. It is not the HTTP
326
+ # status code returned to the client, see `statusCodes` for that.
327
+ error_reasons:,
328
+ # Raw per-extension operation counts for the date range. These are raw operation
329
+ # counts, not billable extension units. For billable usage, use the
330
+ # `/v1/accounts/usage` endpoint.
331
+ extensions:,
332
+ # CDN traffic grouped by response `Content-Type`.
333
+ format_:,
334
+ # Date and time when the analytics data was computed. Use this to gauge how fresh
335
+ # the returned data is. The date and time is in ISO8601 format.
336
+ generated_at:,
337
+ # Total number of requests made during the specified date range.
338
+ request_count:,
339
+ # Start date of the computed analytics data.
340
+ start_date:,
341
+ # Request count grouped by HTTP status code.
342
+ status_codes:,
343
+ # Top URLs that returned a 404 response.
344
+ top404_assets:,
345
+ # Top image assets by traffic.
346
+ top_images:,
347
+ # Top image transformation strings by traffic.
348
+ top_image_transforms:,
349
+ # Top non-image, non-video assets by traffic.
350
+ top_other_assets:,
351
+ # Top HTTP referrers by traffic.
352
+ top_referrers:,
353
+ # Top user agents by traffic.
354
+ top_user_agents:,
355
+ # Top video assets by traffic.
356
+ top_videos:,
357
+ # Top video transformation strings by traffic.
358
+ top_video_transforms:,
359
+ # CDN traffic grouped by configured URL endpoint. Traffic that does not match any
360
+ # named URL endpoint pattern is grouped under `Default`.
361
+ url_endpoints:,
362
+ # Raw observed video transcode output duration, in seconds, grouped by resolution
363
+ # and codec. These are raw seconds, not billable Video Processing Units (VPU). For
364
+ # billable VPU totals, use the `/v1/accounts/usage` endpoint.
365
+ video_processing:
366
+ )
367
+ end
368
+
369
+ sig do
370
+ override.returns(
371
+ {
372
+ bandwidth_bytes: Float,
373
+ browser: Imagekitio::Accounts::UsageAnalyticsResponse::Browser,
374
+ cache: Imagekitio::Accounts::UsageAnalyticsResponse::Cache,
375
+ country: Imagekitio::Accounts::UsageAnalyticsResponse::Country,
376
+ device: Imagekitio::Accounts::UsageAnalyticsResponse::Device,
377
+ end_date: Date,
378
+ error_reasons:
379
+ T::Array[
380
+ Imagekitio::Accounts::UsageAnalyticsResponse::ErrorReason
381
+ ],
382
+ extensions:
383
+ T::Array[
384
+ Imagekitio::Accounts::UsageAnalyticsResponse::Extension
385
+ ],
386
+ format_: Imagekitio::Accounts::UsageAnalyticsResponse::Format,
387
+ generated_at: Time,
388
+ request_count: Float,
389
+ start_date: Date,
390
+ status_codes:
391
+ T::Array[
392
+ Imagekitio::Accounts::UsageAnalyticsResponse::StatusCode
393
+ ],
394
+ top404_assets:
395
+ T::Array[
396
+ Imagekitio::Accounts::UsageAnalyticsResponse::Top404Asset
397
+ ],
398
+ top_images:
399
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages,
400
+ top_image_transforms:
401
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms,
402
+ top_other_assets:
403
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets,
404
+ top_referrers:
405
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers,
406
+ top_user_agents:
407
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents,
408
+ top_videos:
409
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos,
410
+ top_video_transforms:
411
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms,
412
+ url_endpoints:
413
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints,
414
+ video_processing:
415
+ T::Array[
416
+ Imagekitio::Accounts::UsageAnalyticsResponse::VideoProcessing
417
+ ]
418
+ }
419
+ )
420
+ end
421
+ def to_hash
422
+ end
423
+
424
+ class Browser < Imagekitio::Internal::Type::BaseModel
425
+ OrHash =
426
+ T.type_alias do
427
+ T.any(
428
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser,
429
+ Imagekitio::Internal::AnyHash
430
+ )
431
+ end
432
+
433
+ # Top browsers sorted by bandwidth utilized.
434
+ sig do
435
+ returns(
436
+ T::Array[
437
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::ByBandwidth
438
+ ]
439
+ )
440
+ end
441
+ attr_accessor :by_bandwidth
442
+
443
+ # Top browsers sorted by request count.
444
+ sig do
445
+ returns(
446
+ T::Array[
447
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::ByRequest
448
+ ]
449
+ )
450
+ end
451
+ attr_accessor :by_requests
452
+
453
+ # CDN traffic grouped by browser.
454
+ sig do
455
+ params(
456
+ by_bandwidth:
457
+ T::Array[
458
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::ByBandwidth::OrHash
459
+ ],
460
+ by_requests:
461
+ T::Array[
462
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::ByRequest::OrHash
463
+ ]
464
+ ).returns(T.attached_class)
465
+ end
466
+ def self.new(
467
+ # Top browsers sorted by bandwidth utilized.
468
+ by_bandwidth:,
469
+ # Top browsers sorted by request count.
470
+ by_requests:
471
+ )
472
+ end
473
+
474
+ sig do
475
+ override.returns(
476
+ {
477
+ by_bandwidth:
478
+ T::Array[
479
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::ByBandwidth
480
+ ],
481
+ by_requests:
482
+ T::Array[
483
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::ByRequest
484
+ ]
485
+ }
486
+ )
487
+ end
488
+ def to_hash
489
+ end
490
+
491
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
492
+ OrHash =
493
+ T.type_alias do
494
+ T.any(
495
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::ByBandwidth,
496
+ Imagekitio::Internal::AnyHash
497
+ )
498
+ end
499
+
500
+ # Browser name (e.g. `Chrome`).
501
+ sig { returns(String) }
502
+ attr_accessor :name
503
+
504
+ sig { params(name: String).returns(T.attached_class) }
505
+ def self.new(
506
+ # Browser name (e.g. `Chrome`).
507
+ name:
508
+ )
509
+ end
510
+
511
+ sig { override.returns({ name: String }) }
512
+ def to_hash
513
+ end
514
+ end
515
+
516
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
517
+ OrHash =
518
+ T.type_alias do
519
+ T.any(
520
+ Imagekitio::Accounts::UsageAnalyticsResponse::Browser::ByRequest,
521
+ Imagekitio::Internal::AnyHash
522
+ )
523
+ end
524
+
525
+ # Browser name (e.g. `Chrome`).
526
+ sig { returns(String) }
527
+ attr_accessor :name
528
+
529
+ sig { params(name: String).returns(T.attached_class) }
530
+ def self.new(
531
+ # Browser name (e.g. `Chrome`).
532
+ name:
533
+ )
534
+ end
535
+
536
+ sig { override.returns({ name: String }) }
537
+ def to_hash
538
+ end
539
+ end
540
+ end
541
+
542
+ class Cache < Imagekitio::Internal::Type::BaseModel
543
+ OrHash =
544
+ T.type_alias do
545
+ T.any(
546
+ Imagekitio::Accounts::UsageAnalyticsResponse::Cache,
547
+ Imagekitio::Internal::AnyHash
548
+ )
549
+ end
550
+
551
+ # Number of requests where the CDN encountered a cache error or exceeded capacity
552
+ # while serving the response.
553
+ sig { returns(Float) }
554
+ attr_accessor :error_count
555
+
556
+ # Number of requests served from cache, including full hits and revalidated hits.
557
+ sig { returns(Float) }
558
+ attr_accessor :hit_count
559
+
560
+ # Number of requests that were not found in cache and had to be fetched from
561
+ # origin.
562
+ sig { returns(Float) }
563
+ attr_accessor :miss_count
564
+
565
+ # CDN cache hit, miss and error counts for the date range.
566
+ sig do
567
+ params(
568
+ error_count: Float,
569
+ hit_count: Float,
570
+ miss_count: Float
571
+ ).returns(T.attached_class)
572
+ end
573
+ def self.new(
574
+ # Number of requests where the CDN encountered a cache error or exceeded capacity
575
+ # while serving the response.
576
+ error_count:,
577
+ # Number of requests served from cache, including full hits and revalidated hits.
578
+ hit_count:,
579
+ # Number of requests that were not found in cache and had to be fetched from
580
+ # origin.
581
+ miss_count:
582
+ )
583
+ end
584
+
585
+ sig do
586
+ override.returns(
587
+ { error_count: Float, hit_count: Float, miss_count: Float }
588
+ )
589
+ end
590
+ def to_hash
591
+ end
592
+ end
593
+
594
+ class Country < Imagekitio::Internal::Type::BaseModel
595
+ OrHash =
596
+ T.type_alias do
597
+ T.any(
598
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country,
599
+ Imagekitio::Internal::AnyHash
600
+ )
601
+ end
602
+
603
+ # Top requesting countries sorted by total bandwidth utilized.
604
+ sig do
605
+ returns(
606
+ T::Array[
607
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::ByBandwidth
608
+ ]
609
+ )
610
+ end
611
+ attr_accessor :by_bandwidth
612
+
613
+ # Top requesting countries sorted by request count.
614
+ sig do
615
+ returns(
616
+ T::Array[
617
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::ByRequest
618
+ ]
619
+ )
620
+ end
621
+ attr_accessor :by_requests
622
+
623
+ # CDN traffic grouped by country.
624
+ sig do
625
+ params(
626
+ by_bandwidth:
627
+ T::Array[
628
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::ByBandwidth::OrHash
629
+ ],
630
+ by_requests:
631
+ T::Array[
632
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::ByRequest::OrHash
633
+ ]
634
+ ).returns(T.attached_class)
635
+ end
636
+ def self.new(
637
+ # Top requesting countries sorted by total bandwidth utilized.
638
+ by_bandwidth:,
639
+ # Top requesting countries sorted by request count.
640
+ by_requests:
641
+ )
642
+ end
643
+
644
+ sig do
645
+ override.returns(
646
+ {
647
+ by_bandwidth:
648
+ T::Array[
649
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::ByBandwidth
650
+ ],
651
+ by_requests:
652
+ T::Array[
653
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::ByRequest
654
+ ]
655
+ }
656
+ )
657
+ end
658
+ def to_hash
659
+ end
660
+
661
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
662
+ OrHash =
663
+ T.type_alias do
664
+ T.any(
665
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::ByBandwidth,
666
+ Imagekitio::Internal::AnyHash
667
+ )
668
+ end
669
+
670
+ # ISO country code.
671
+ sig { returns(String) }
672
+ attr_accessor :code
673
+
674
+ # Country name.
675
+ sig { returns(String) }
676
+ attr_accessor :name
677
+
678
+ sig { params(code: String, name: String).returns(T.attached_class) }
679
+ def self.new(
680
+ # ISO country code.
681
+ code:,
682
+ # Country name.
683
+ name:
684
+ )
685
+ end
686
+
687
+ sig { override.returns({ code: String, name: String }) }
688
+ def to_hash
689
+ end
690
+ end
691
+
692
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
693
+ OrHash =
694
+ T.type_alias do
695
+ T.any(
696
+ Imagekitio::Accounts::UsageAnalyticsResponse::Country::ByRequest,
697
+ Imagekitio::Internal::AnyHash
698
+ )
699
+ end
700
+
701
+ # ISO country code.
702
+ sig { returns(String) }
703
+ attr_accessor :code
704
+
705
+ # Country name.
706
+ sig { returns(String) }
707
+ attr_accessor :name
708
+
709
+ sig { params(code: String, name: String).returns(T.attached_class) }
710
+ def self.new(
711
+ # ISO country code.
712
+ code:,
713
+ # Country name.
714
+ name:
715
+ )
716
+ end
717
+
718
+ sig { override.returns({ code: String, name: String }) }
719
+ def to_hash
720
+ end
721
+ end
722
+ end
723
+
724
+ class Device < Imagekitio::Internal::Type::BaseModel
725
+ OrHash =
726
+ T.type_alias do
727
+ T.any(
728
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device,
729
+ Imagekitio::Internal::AnyHash
730
+ )
731
+ end
732
+
733
+ # Top device/OS combinations sorted by bandwidth utilized.
734
+ sig do
735
+ returns(
736
+ T::Array[
737
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device::ByBandwidth
738
+ ]
739
+ )
740
+ end
741
+ attr_accessor :by_bandwidth
742
+
743
+ # Top device/OS combinations sorted by request count.
744
+ sig do
745
+ returns(
746
+ T::Array[
747
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device::ByRequest
748
+ ]
749
+ )
750
+ end
751
+ attr_accessor :by_requests
752
+
753
+ # CDN traffic grouped by device and operating system (e.g. `Desktop - Apple Mac`,
754
+ # `Smartphone - Apple iPhone`).
755
+ sig do
756
+ params(
757
+ by_bandwidth:
758
+ T::Array[
759
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device::ByBandwidth::OrHash
760
+ ],
761
+ by_requests:
762
+ T::Array[
763
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device::ByRequest::OrHash
764
+ ]
765
+ ).returns(T.attached_class)
766
+ end
767
+ def self.new(
768
+ # Top device/OS combinations sorted by bandwidth utilized.
769
+ by_bandwidth:,
770
+ # Top device/OS combinations sorted by request count.
771
+ by_requests:
772
+ )
773
+ end
774
+
775
+ sig do
776
+ override.returns(
777
+ {
778
+ by_bandwidth:
779
+ T::Array[
780
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device::ByBandwidth
781
+ ],
782
+ by_requests:
783
+ T::Array[
784
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device::ByRequest
785
+ ]
786
+ }
787
+ )
788
+ end
789
+ def to_hash
790
+ end
791
+
792
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
793
+ OrHash =
794
+ T.type_alias do
795
+ T.any(
796
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device::ByBandwidth,
797
+ Imagekitio::Internal::AnyHash
798
+ )
799
+ end
800
+
801
+ # Device category combined with operating system or vendor (e.g.
802
+ # `Desktop - Windows PC`).
803
+ sig { returns(String) }
804
+ attr_accessor :name
805
+
806
+ sig { params(name: String).returns(T.attached_class) }
807
+ def self.new(
808
+ # Device category combined with operating system or vendor (e.g.
809
+ # `Desktop - Windows PC`).
810
+ name:
811
+ )
812
+ end
813
+
814
+ sig { override.returns({ name: String }) }
815
+ def to_hash
816
+ end
817
+ end
818
+
819
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
820
+ OrHash =
821
+ T.type_alias do
822
+ T.any(
823
+ Imagekitio::Accounts::UsageAnalyticsResponse::Device::ByRequest,
824
+ Imagekitio::Internal::AnyHash
825
+ )
826
+ end
827
+
828
+ # Device category combined with operating system or vendor (e.g.
829
+ # `Desktop - Windows PC`).
830
+ sig { returns(String) }
831
+ attr_accessor :name
832
+
833
+ sig { params(name: String).returns(T.attached_class) }
834
+ def self.new(
835
+ # Device category combined with operating system or vendor (e.g.
836
+ # `Desktop - Windows PC`).
837
+ name:
838
+ )
839
+ end
840
+
841
+ sig { override.returns({ name: String }) }
842
+ def to_hash
843
+ end
844
+ end
845
+ end
846
+
847
+ class ErrorReason < Imagekitio::Internal::Type::BaseModel
848
+ OrHash =
849
+ T.type_alias do
850
+ T.any(
851
+ Imagekitio::Accounts::UsageAnalyticsResponse::ErrorReason,
852
+ Imagekitio::Internal::AnyHash
853
+ )
854
+ end
855
+
856
+ # Description of the error reason.
857
+ sig { returns(String) }
858
+ attr_accessor :name
859
+
860
+ # Number of requests that failed with this error reason.
861
+ sig { returns(Float) }
862
+ attr_accessor :request_count
863
+
864
+ sig do
865
+ params(name: String, request_count: Float).returns(T.attached_class)
866
+ end
867
+ def self.new(
868
+ # Description of the error reason.
869
+ name:,
870
+ # Number of requests that failed with this error reason.
871
+ request_count:
872
+ )
873
+ end
874
+
875
+ sig { override.returns({ name: String, request_count: Float }) }
876
+ def to_hash
877
+ end
878
+ end
879
+
880
+ class Extension < Imagekitio::Internal::Type::BaseModel
881
+ OrHash =
882
+ T.type_alias do
883
+ T.any(
884
+ Imagekitio::Accounts::UsageAnalyticsResponse::Extension,
885
+ Imagekitio::Internal::AnyHash
886
+ )
887
+ end
888
+
889
+ # Extension identifier.
890
+ sig { returns(String) }
891
+ attr_accessor :name
892
+
893
+ # Number of times this extension ran during the date range.
894
+ sig { returns(Float) }
895
+ attr_accessor :operation_count
896
+
897
+ sig do
898
+ params(name: String, operation_count: Float).returns(
899
+ T.attached_class
900
+ )
901
+ end
902
+ def self.new(
903
+ # Extension identifier.
904
+ name:,
905
+ # Number of times this extension ran during the date range.
906
+ operation_count:
907
+ )
908
+ end
909
+
910
+ sig { override.returns({ name: String, operation_count: Float }) }
911
+ def to_hash
912
+ end
913
+ end
914
+
915
+ class Format < Imagekitio::Internal::Type::BaseModel
916
+ OrHash =
917
+ T.type_alias do
918
+ T.any(
919
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format,
920
+ Imagekitio::Internal::AnyHash
921
+ )
922
+ end
923
+
924
+ # Top content types sorted by bandwidth utilized.
925
+ sig do
926
+ returns(
927
+ T::Array[
928
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::ByBandwidth
929
+ ]
930
+ )
931
+ end
932
+ attr_accessor :by_bandwidth
933
+
934
+ # Top content types sorted by request count.
935
+ sig do
936
+ returns(
937
+ T::Array[
938
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::ByRequest
939
+ ]
940
+ )
941
+ end
942
+ attr_accessor :by_requests
943
+
944
+ # CDN traffic grouped by response `Content-Type`.
945
+ sig do
946
+ params(
947
+ by_bandwidth:
948
+ T::Array[
949
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::ByBandwidth::OrHash
950
+ ],
951
+ by_requests:
952
+ T::Array[
953
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::ByRequest::OrHash
954
+ ]
955
+ ).returns(T.attached_class)
956
+ end
957
+ def self.new(
958
+ # Top content types sorted by bandwidth utilized.
959
+ by_bandwidth:,
960
+ # Top content types sorted by request count.
961
+ by_requests:
962
+ )
963
+ end
964
+
965
+ sig do
966
+ override.returns(
967
+ {
968
+ by_bandwidth:
969
+ T::Array[
970
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::ByBandwidth
971
+ ],
972
+ by_requests:
973
+ T::Array[
974
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::ByRequest
975
+ ]
976
+ }
977
+ )
978
+ end
979
+ def to_hash
980
+ end
981
+
982
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
983
+ OrHash =
984
+ T.type_alias do
985
+ T.any(
986
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::ByBandwidth,
987
+ Imagekitio::Internal::AnyHash
988
+ )
989
+ end
990
+
991
+ # MIME type (e.g. `image/webp`).
992
+ sig { returns(String) }
993
+ attr_accessor :name
994
+
995
+ sig { params(name: String).returns(T.attached_class) }
996
+ def self.new(
997
+ # MIME type (e.g. `image/webp`).
998
+ name:
999
+ )
1000
+ end
1001
+
1002
+ sig { override.returns({ name: String }) }
1003
+ def to_hash
1004
+ end
1005
+ end
1006
+
1007
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
1008
+ OrHash =
1009
+ T.type_alias do
1010
+ T.any(
1011
+ Imagekitio::Accounts::UsageAnalyticsResponse::Format::ByRequest,
1012
+ Imagekitio::Internal::AnyHash
1013
+ )
1014
+ end
1015
+
1016
+ # MIME type (e.g. `image/webp`).
1017
+ sig { returns(String) }
1018
+ attr_accessor :name
1019
+
1020
+ sig { params(name: String).returns(T.attached_class) }
1021
+ def self.new(
1022
+ # MIME type (e.g. `image/webp`).
1023
+ name:
1024
+ )
1025
+ end
1026
+
1027
+ sig { override.returns({ name: String }) }
1028
+ def to_hash
1029
+ end
1030
+ end
1031
+ end
1032
+
1033
+ class StatusCode < Imagekitio::Internal::Type::BaseModel
1034
+ OrHash =
1035
+ T.type_alias do
1036
+ T.any(
1037
+ Imagekitio::Accounts::UsageAnalyticsResponse::StatusCode,
1038
+ Imagekitio::Internal::AnyHash
1039
+ )
1040
+ end
1041
+
1042
+ # HTTP status code.
1043
+ sig { returns(String) }
1044
+ attr_accessor :name
1045
+
1046
+ # Number of requests that received this status code.
1047
+ sig { returns(Float) }
1048
+ attr_accessor :request_count
1049
+
1050
+ sig do
1051
+ params(name: String, request_count: Float).returns(T.attached_class)
1052
+ end
1053
+ def self.new(
1054
+ # HTTP status code.
1055
+ name:,
1056
+ # Number of requests that received this status code.
1057
+ request_count:
1058
+ )
1059
+ end
1060
+
1061
+ sig { override.returns({ name: String, request_count: Float }) }
1062
+ def to_hash
1063
+ end
1064
+ end
1065
+
1066
+ class Top404Asset < Imagekitio::Internal::Type::BaseModel
1067
+ OrHash =
1068
+ T.type_alias do
1069
+ T.any(
1070
+ Imagekitio::Accounts::UsageAnalyticsResponse::Top404Asset,
1071
+ Imagekitio::Internal::AnyHash
1072
+ )
1073
+ end
1074
+
1075
+ # URL that returned a 404 response.
1076
+ sig { returns(String) }
1077
+ attr_accessor :name
1078
+
1079
+ # Number of requests to this URL that returned a 404 response.
1080
+ sig { returns(Float) }
1081
+ attr_accessor :request_count
1082
+
1083
+ sig do
1084
+ params(name: String, request_count: Float).returns(T.attached_class)
1085
+ end
1086
+ def self.new(
1087
+ # URL that returned a 404 response.
1088
+ name:,
1089
+ # Number of requests to this URL that returned a 404 response.
1090
+ request_count:
1091
+ )
1092
+ end
1093
+
1094
+ sig { override.returns({ name: String, request_count: Float }) }
1095
+ def to_hash
1096
+ end
1097
+ end
1098
+
1099
+ class TopImages < Imagekitio::Internal::Type::BaseModel
1100
+ OrHash =
1101
+ T.type_alias do
1102
+ T.any(
1103
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages,
1104
+ Imagekitio::Internal::AnyHash
1105
+ )
1106
+ end
1107
+
1108
+ # Top image assets sorted by bandwidth utilized.
1109
+ sig do
1110
+ returns(
1111
+ T::Array[
1112
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::ByBandwidth
1113
+ ]
1114
+ )
1115
+ end
1116
+ attr_accessor :by_bandwidth
1117
+
1118
+ # Top image assets sorted by request count.
1119
+ sig do
1120
+ returns(
1121
+ T::Array[
1122
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::ByRequest
1123
+ ]
1124
+ )
1125
+ end
1126
+ attr_accessor :by_requests
1127
+
1128
+ # Top image assets by traffic.
1129
+ sig do
1130
+ params(
1131
+ by_bandwidth:
1132
+ T::Array[
1133
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::ByBandwidth::OrHash
1134
+ ],
1135
+ by_requests:
1136
+ T::Array[
1137
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::ByRequest::OrHash
1138
+ ]
1139
+ ).returns(T.attached_class)
1140
+ end
1141
+ def self.new(
1142
+ # Top image assets sorted by bandwidth utilized.
1143
+ by_bandwidth:,
1144
+ # Top image assets sorted by request count.
1145
+ by_requests:
1146
+ )
1147
+ end
1148
+
1149
+ sig do
1150
+ override.returns(
1151
+ {
1152
+ by_bandwidth:
1153
+ T::Array[
1154
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::ByBandwidth
1155
+ ],
1156
+ by_requests:
1157
+ T::Array[
1158
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::ByRequest
1159
+ ]
1160
+ }
1161
+ )
1162
+ end
1163
+ def to_hash
1164
+ end
1165
+
1166
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
1167
+ OrHash =
1168
+ T.type_alias do
1169
+ T.any(
1170
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::ByBandwidth,
1171
+ Imagekitio::Internal::AnyHash
1172
+ )
1173
+ end
1174
+
1175
+ # URL of the image asset.
1176
+ sig { returns(String) }
1177
+ attr_accessor :name
1178
+
1179
+ sig { params(name: String).returns(T.attached_class) }
1180
+ def self.new(
1181
+ # URL of the image asset.
1182
+ name:
1183
+ )
1184
+ end
1185
+
1186
+ sig { override.returns({ name: String }) }
1187
+ def to_hash
1188
+ end
1189
+ end
1190
+
1191
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
1192
+ OrHash =
1193
+ T.type_alias do
1194
+ T.any(
1195
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImages::ByRequest,
1196
+ Imagekitio::Internal::AnyHash
1197
+ )
1198
+ end
1199
+
1200
+ # URL of the image asset.
1201
+ sig { returns(String) }
1202
+ attr_accessor :name
1203
+
1204
+ sig { params(name: String).returns(T.attached_class) }
1205
+ def self.new(
1206
+ # URL of the image asset.
1207
+ name:
1208
+ )
1209
+ end
1210
+
1211
+ sig { override.returns({ name: String }) }
1212
+ def to_hash
1213
+ end
1214
+ end
1215
+ end
1216
+
1217
+ class TopImageTransforms < Imagekitio::Internal::Type::BaseModel
1218
+ OrHash =
1219
+ T.type_alias do
1220
+ T.any(
1221
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms,
1222
+ Imagekitio::Internal::AnyHash
1223
+ )
1224
+ end
1225
+
1226
+ # Top image transformation strings sorted by bandwidth utilized.
1227
+ sig do
1228
+ returns(
1229
+ T::Array[
1230
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::ByBandwidth
1231
+ ]
1232
+ )
1233
+ end
1234
+ attr_accessor :by_bandwidth
1235
+
1236
+ # Top image transformation strings sorted by request count.
1237
+ sig do
1238
+ returns(
1239
+ T::Array[
1240
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::ByRequest
1241
+ ]
1242
+ )
1243
+ end
1244
+ attr_accessor :by_requests
1245
+
1246
+ # Top image transformation strings by traffic.
1247
+ sig do
1248
+ params(
1249
+ by_bandwidth:
1250
+ T::Array[
1251
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::ByBandwidth::OrHash
1252
+ ],
1253
+ by_requests:
1254
+ T::Array[
1255
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::ByRequest::OrHash
1256
+ ]
1257
+ ).returns(T.attached_class)
1258
+ end
1259
+ def self.new(
1260
+ # Top image transformation strings sorted by bandwidth utilized.
1261
+ by_bandwidth:,
1262
+ # Top image transformation strings sorted by request count.
1263
+ by_requests:
1264
+ )
1265
+ end
1266
+
1267
+ sig do
1268
+ override.returns(
1269
+ {
1270
+ by_bandwidth:
1271
+ T::Array[
1272
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::ByBandwidth
1273
+ ],
1274
+ by_requests:
1275
+ T::Array[
1276
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::ByRequest
1277
+ ]
1278
+ }
1279
+ )
1280
+ end
1281
+ def to_hash
1282
+ end
1283
+
1284
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
1285
+ OrHash =
1286
+ T.type_alias do
1287
+ T.any(
1288
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::ByBandwidth,
1289
+ Imagekitio::Internal::AnyHash
1290
+ )
1291
+ end
1292
+
1293
+ # Image transformation string (e.g. `tr:w-400,h-400`).
1294
+ sig { returns(String) }
1295
+ attr_accessor :name
1296
+
1297
+ sig { params(name: String).returns(T.attached_class) }
1298
+ def self.new(
1299
+ # Image transformation string (e.g. `tr:w-400,h-400`).
1300
+ name:
1301
+ )
1302
+ end
1303
+
1304
+ sig { override.returns({ name: String }) }
1305
+ def to_hash
1306
+ end
1307
+ end
1308
+
1309
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
1310
+ OrHash =
1311
+ T.type_alias do
1312
+ T.any(
1313
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopImageTransforms::ByRequest,
1314
+ Imagekitio::Internal::AnyHash
1315
+ )
1316
+ end
1317
+
1318
+ # Image transformation string (e.g. `tr:w-400,h-400`).
1319
+ sig { returns(String) }
1320
+ attr_accessor :name
1321
+
1322
+ sig { params(name: String).returns(T.attached_class) }
1323
+ def self.new(
1324
+ # Image transformation string (e.g. `tr:w-400,h-400`).
1325
+ name:
1326
+ )
1327
+ end
1328
+
1329
+ sig { override.returns({ name: String }) }
1330
+ def to_hash
1331
+ end
1332
+ end
1333
+ end
1334
+
1335
+ class TopOtherAssets < Imagekitio::Internal::Type::BaseModel
1336
+ OrHash =
1337
+ T.type_alias do
1338
+ T.any(
1339
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets,
1340
+ Imagekitio::Internal::AnyHash
1341
+ )
1342
+ end
1343
+
1344
+ # Top non-image, non-video assets sorted by bandwidth utilized.
1345
+ sig do
1346
+ returns(
1347
+ T::Array[
1348
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::ByBandwidth
1349
+ ]
1350
+ )
1351
+ end
1352
+ attr_accessor :by_bandwidth
1353
+
1354
+ # Top non-image, non-video assets sorted by request count.
1355
+ sig do
1356
+ returns(
1357
+ T::Array[
1358
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::ByRequest
1359
+ ]
1360
+ )
1361
+ end
1362
+ attr_accessor :by_requests
1363
+
1364
+ # Top non-image, non-video assets by traffic.
1365
+ sig do
1366
+ params(
1367
+ by_bandwidth:
1368
+ T::Array[
1369
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::ByBandwidth::OrHash
1370
+ ],
1371
+ by_requests:
1372
+ T::Array[
1373
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::ByRequest::OrHash
1374
+ ]
1375
+ ).returns(T.attached_class)
1376
+ end
1377
+ def self.new(
1378
+ # Top non-image, non-video assets sorted by bandwidth utilized.
1379
+ by_bandwidth:,
1380
+ # Top non-image, non-video assets sorted by request count.
1381
+ by_requests:
1382
+ )
1383
+ end
1384
+
1385
+ sig do
1386
+ override.returns(
1387
+ {
1388
+ by_bandwidth:
1389
+ T::Array[
1390
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::ByBandwidth
1391
+ ],
1392
+ by_requests:
1393
+ T::Array[
1394
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::ByRequest
1395
+ ]
1396
+ }
1397
+ )
1398
+ end
1399
+ def to_hash
1400
+ end
1401
+
1402
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
1403
+ OrHash =
1404
+ T.type_alias do
1405
+ T.any(
1406
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::ByBandwidth,
1407
+ Imagekitio::Internal::AnyHash
1408
+ )
1409
+ end
1410
+
1411
+ # URL of the non-image, non-video asset.
1412
+ sig { returns(String) }
1413
+ attr_accessor :name
1414
+
1415
+ sig { params(name: String).returns(T.attached_class) }
1416
+ def self.new(
1417
+ # URL of the non-image, non-video asset.
1418
+ name:
1419
+ )
1420
+ end
1421
+
1422
+ sig { override.returns({ name: String }) }
1423
+ def to_hash
1424
+ end
1425
+ end
1426
+
1427
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
1428
+ OrHash =
1429
+ T.type_alias do
1430
+ T.any(
1431
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopOtherAssets::ByRequest,
1432
+ Imagekitio::Internal::AnyHash
1433
+ )
1434
+ end
1435
+
1436
+ # URL of the non-image, non-video asset.
1437
+ sig { returns(String) }
1438
+ attr_accessor :name
1439
+
1440
+ sig { params(name: String).returns(T.attached_class) }
1441
+ def self.new(
1442
+ # URL of the non-image, non-video asset.
1443
+ name:
1444
+ )
1445
+ end
1446
+
1447
+ sig { override.returns({ name: String }) }
1448
+ def to_hash
1449
+ end
1450
+ end
1451
+ end
1452
+
1453
+ class TopReferrers < Imagekitio::Internal::Type::BaseModel
1454
+ OrHash =
1455
+ T.type_alias do
1456
+ T.any(
1457
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers,
1458
+ Imagekitio::Internal::AnyHash
1459
+ )
1460
+ end
1461
+
1462
+ # Top HTTP referrers sorted by bandwidth utilized.
1463
+ sig do
1464
+ returns(
1465
+ T::Array[
1466
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::ByBandwidth
1467
+ ]
1468
+ )
1469
+ end
1470
+ attr_accessor :by_bandwidth
1471
+
1472
+ # Top HTTP referrers sorted by request count.
1473
+ sig do
1474
+ returns(
1475
+ T::Array[
1476
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::ByRequest
1477
+ ]
1478
+ )
1479
+ end
1480
+ attr_accessor :by_requests
1481
+
1482
+ # Top HTTP referrers by traffic.
1483
+ sig do
1484
+ params(
1485
+ by_bandwidth:
1486
+ T::Array[
1487
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::ByBandwidth::OrHash
1488
+ ],
1489
+ by_requests:
1490
+ T::Array[
1491
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::ByRequest::OrHash
1492
+ ]
1493
+ ).returns(T.attached_class)
1494
+ end
1495
+ def self.new(
1496
+ # Top HTTP referrers sorted by bandwidth utilized.
1497
+ by_bandwidth:,
1498
+ # Top HTTP referrers sorted by request count.
1499
+ by_requests:
1500
+ )
1501
+ end
1502
+
1503
+ sig do
1504
+ override.returns(
1505
+ {
1506
+ by_bandwidth:
1507
+ T::Array[
1508
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::ByBandwidth
1509
+ ],
1510
+ by_requests:
1511
+ T::Array[
1512
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::ByRequest
1513
+ ]
1514
+ }
1515
+ )
1516
+ end
1517
+ def to_hash
1518
+ end
1519
+
1520
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
1521
+ OrHash =
1522
+ T.type_alias do
1523
+ T.any(
1524
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::ByBandwidth,
1525
+ Imagekitio::Internal::AnyHash
1526
+ )
1527
+ end
1528
+
1529
+ # Referrer URL.
1530
+ sig { returns(String) }
1531
+ attr_accessor :name
1532
+
1533
+ sig { params(name: String).returns(T.attached_class) }
1534
+ def self.new(
1535
+ # Referrer URL.
1536
+ name:
1537
+ )
1538
+ end
1539
+
1540
+ sig { override.returns({ name: String }) }
1541
+ def to_hash
1542
+ end
1543
+ end
1544
+
1545
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
1546
+ OrHash =
1547
+ T.type_alias do
1548
+ T.any(
1549
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopReferrers::ByRequest,
1550
+ Imagekitio::Internal::AnyHash
1551
+ )
1552
+ end
1553
+
1554
+ # Referrer URL.
1555
+ sig { returns(String) }
1556
+ attr_accessor :name
1557
+
1558
+ sig { params(name: String).returns(T.attached_class) }
1559
+ def self.new(
1560
+ # Referrer URL.
1561
+ name:
1562
+ )
1563
+ end
1564
+
1565
+ sig { override.returns({ name: String }) }
1566
+ def to_hash
1567
+ end
1568
+ end
1569
+ end
1570
+
1571
+ class TopUserAgents < Imagekitio::Internal::Type::BaseModel
1572
+ OrHash =
1573
+ T.type_alias do
1574
+ T.any(
1575
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents,
1576
+ Imagekitio::Internal::AnyHash
1577
+ )
1578
+ end
1579
+
1580
+ # Top user agents sorted by bandwidth utilized.
1581
+ sig do
1582
+ returns(
1583
+ T::Array[
1584
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::ByBandwidth
1585
+ ]
1586
+ )
1587
+ end
1588
+ attr_accessor :by_bandwidth
1589
+
1590
+ # Top user agents sorted by request count.
1591
+ sig do
1592
+ returns(
1593
+ T::Array[
1594
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::ByRequest
1595
+ ]
1596
+ )
1597
+ end
1598
+ attr_accessor :by_requests
1599
+
1600
+ # Top user agents by traffic.
1601
+ sig do
1602
+ params(
1603
+ by_bandwidth:
1604
+ T::Array[
1605
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::ByBandwidth::OrHash
1606
+ ],
1607
+ by_requests:
1608
+ T::Array[
1609
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::ByRequest::OrHash
1610
+ ]
1611
+ ).returns(T.attached_class)
1612
+ end
1613
+ def self.new(
1614
+ # Top user agents sorted by bandwidth utilized.
1615
+ by_bandwidth:,
1616
+ # Top user agents sorted by request count.
1617
+ by_requests:
1618
+ )
1619
+ end
1620
+
1621
+ sig do
1622
+ override.returns(
1623
+ {
1624
+ by_bandwidth:
1625
+ T::Array[
1626
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::ByBandwidth
1627
+ ],
1628
+ by_requests:
1629
+ T::Array[
1630
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::ByRequest
1631
+ ]
1632
+ }
1633
+ )
1634
+ end
1635
+ def to_hash
1636
+ end
1637
+
1638
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
1639
+ OrHash =
1640
+ T.type_alias do
1641
+ T.any(
1642
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::ByBandwidth,
1643
+ Imagekitio::Internal::AnyHash
1644
+ )
1645
+ end
1646
+
1647
+ # User agent string.
1648
+ sig { returns(String) }
1649
+ attr_accessor :name
1650
+
1651
+ sig { params(name: String).returns(T.attached_class) }
1652
+ def self.new(
1653
+ # User agent string.
1654
+ name:
1655
+ )
1656
+ end
1657
+
1658
+ sig { override.returns({ name: String }) }
1659
+ def to_hash
1660
+ end
1661
+ end
1662
+
1663
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
1664
+ OrHash =
1665
+ T.type_alias do
1666
+ T.any(
1667
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopUserAgents::ByRequest,
1668
+ Imagekitio::Internal::AnyHash
1669
+ )
1670
+ end
1671
+
1672
+ # User agent string.
1673
+ sig { returns(String) }
1674
+ attr_accessor :name
1675
+
1676
+ sig { params(name: String).returns(T.attached_class) }
1677
+ def self.new(
1678
+ # User agent string.
1679
+ name:
1680
+ )
1681
+ end
1682
+
1683
+ sig { override.returns({ name: String }) }
1684
+ def to_hash
1685
+ end
1686
+ end
1687
+ end
1688
+
1689
+ class TopVideos < Imagekitio::Internal::Type::BaseModel
1690
+ OrHash =
1691
+ T.type_alias do
1692
+ T.any(
1693
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos,
1694
+ Imagekitio::Internal::AnyHash
1695
+ )
1696
+ end
1697
+
1698
+ # Top video assets sorted by bandwidth utilized.
1699
+ sig do
1700
+ returns(
1701
+ T::Array[
1702
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::ByBandwidth
1703
+ ]
1704
+ )
1705
+ end
1706
+ attr_accessor :by_bandwidth
1707
+
1708
+ # Top video assets sorted by request count.
1709
+ sig do
1710
+ returns(
1711
+ T::Array[
1712
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::ByRequest
1713
+ ]
1714
+ )
1715
+ end
1716
+ attr_accessor :by_requests
1717
+
1718
+ # Top video assets by traffic.
1719
+ sig do
1720
+ params(
1721
+ by_bandwidth:
1722
+ T::Array[
1723
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::ByBandwidth::OrHash
1724
+ ],
1725
+ by_requests:
1726
+ T::Array[
1727
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::ByRequest::OrHash
1728
+ ]
1729
+ ).returns(T.attached_class)
1730
+ end
1731
+ def self.new(
1732
+ # Top video assets sorted by bandwidth utilized.
1733
+ by_bandwidth:,
1734
+ # Top video assets sorted by request count.
1735
+ by_requests:
1736
+ )
1737
+ end
1738
+
1739
+ sig do
1740
+ override.returns(
1741
+ {
1742
+ by_bandwidth:
1743
+ T::Array[
1744
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::ByBandwidth
1745
+ ],
1746
+ by_requests:
1747
+ T::Array[
1748
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::ByRequest
1749
+ ]
1750
+ }
1751
+ )
1752
+ end
1753
+ def to_hash
1754
+ end
1755
+
1756
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
1757
+ OrHash =
1758
+ T.type_alias do
1759
+ T.any(
1760
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::ByBandwidth,
1761
+ Imagekitio::Internal::AnyHash
1762
+ )
1763
+ end
1764
+
1765
+ # URL of the video asset.
1766
+ sig { returns(String) }
1767
+ attr_accessor :name
1768
+
1769
+ sig { params(name: String).returns(T.attached_class) }
1770
+ def self.new(
1771
+ # URL of the video asset.
1772
+ name:
1773
+ )
1774
+ end
1775
+
1776
+ sig { override.returns({ name: String }) }
1777
+ def to_hash
1778
+ end
1779
+ end
1780
+
1781
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
1782
+ OrHash =
1783
+ T.type_alias do
1784
+ T.any(
1785
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideos::ByRequest,
1786
+ Imagekitio::Internal::AnyHash
1787
+ )
1788
+ end
1789
+
1790
+ # Full URL of the video asset (e.g. `https://ik.imagekit.io/demo/clip.mp4`).
1791
+ sig { returns(String) }
1792
+ attr_accessor :name
1793
+
1794
+ sig { params(name: String).returns(T.attached_class) }
1795
+ def self.new(
1796
+ # Full URL of the video asset (e.g. `https://ik.imagekit.io/demo/clip.mp4`).
1797
+ name:
1798
+ )
1799
+ end
1800
+
1801
+ sig { override.returns({ name: String }) }
1802
+ def to_hash
1803
+ end
1804
+ end
1805
+ end
1806
+
1807
+ class TopVideoTransforms < Imagekitio::Internal::Type::BaseModel
1808
+ OrHash =
1809
+ T.type_alias do
1810
+ T.any(
1811
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms,
1812
+ Imagekitio::Internal::AnyHash
1813
+ )
1814
+ end
1815
+
1816
+ # Top video transformation strings sorted by bandwidth utilized.
1817
+ sig do
1818
+ returns(
1819
+ T::Array[
1820
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::ByBandwidth
1821
+ ]
1822
+ )
1823
+ end
1824
+ attr_accessor :by_bandwidth
1825
+
1826
+ # Top video transformation strings sorted by request count.
1827
+ sig do
1828
+ returns(
1829
+ T::Array[
1830
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::ByRequest
1831
+ ]
1832
+ )
1833
+ end
1834
+ attr_accessor :by_requests
1835
+
1836
+ # Top video transformation strings by traffic.
1837
+ sig do
1838
+ params(
1839
+ by_bandwidth:
1840
+ T::Array[
1841
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::ByBandwidth::OrHash
1842
+ ],
1843
+ by_requests:
1844
+ T::Array[
1845
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::ByRequest::OrHash
1846
+ ]
1847
+ ).returns(T.attached_class)
1848
+ end
1849
+ def self.new(
1850
+ # Top video transformation strings sorted by bandwidth utilized.
1851
+ by_bandwidth:,
1852
+ # Top video transformation strings sorted by request count.
1853
+ by_requests:
1854
+ )
1855
+ end
1856
+
1857
+ sig do
1858
+ override.returns(
1859
+ {
1860
+ by_bandwidth:
1861
+ T::Array[
1862
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::ByBandwidth
1863
+ ],
1864
+ by_requests:
1865
+ T::Array[
1866
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::ByRequest
1867
+ ]
1868
+ }
1869
+ )
1870
+ end
1871
+ def to_hash
1872
+ end
1873
+
1874
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
1875
+ OrHash =
1876
+ T.type_alias do
1877
+ T.any(
1878
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::ByBandwidth,
1879
+ Imagekitio::Internal::AnyHash
1880
+ )
1881
+ end
1882
+
1883
+ # Video transformation string (e.g. `tr:h-720,f-mp4`).
1884
+ sig { returns(String) }
1885
+ attr_accessor :name
1886
+
1887
+ sig { params(name: String).returns(T.attached_class) }
1888
+ def self.new(
1889
+ # Video transformation string (e.g. `tr:h-720,f-mp4`).
1890
+ name:
1891
+ )
1892
+ end
1893
+
1894
+ sig { override.returns({ name: String }) }
1895
+ def to_hash
1896
+ end
1897
+ end
1898
+
1899
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
1900
+ OrHash =
1901
+ T.type_alias do
1902
+ T.any(
1903
+ Imagekitio::Accounts::UsageAnalyticsResponse::TopVideoTransforms::ByRequest,
1904
+ Imagekitio::Internal::AnyHash
1905
+ )
1906
+ end
1907
+
1908
+ # Video transformation string (e.g. `tr:h-720,f-mp4`).
1909
+ sig { returns(String) }
1910
+ attr_accessor :name
1911
+
1912
+ sig { params(name: String).returns(T.attached_class) }
1913
+ def self.new(
1914
+ # Video transformation string (e.g. `tr:h-720,f-mp4`).
1915
+ name:
1916
+ )
1917
+ end
1918
+
1919
+ sig { override.returns({ name: String }) }
1920
+ def to_hash
1921
+ end
1922
+ end
1923
+ end
1924
+
1925
+ class URLEndpoints < Imagekitio::Internal::Type::BaseModel
1926
+ OrHash =
1927
+ T.type_alias do
1928
+ T.any(
1929
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints,
1930
+ Imagekitio::Internal::AnyHash
1931
+ )
1932
+ end
1933
+
1934
+ # Top URL endpoints sorted by bandwidth utilized.
1935
+ sig do
1936
+ returns(
1937
+ T::Array[
1938
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::ByBandwidth
1939
+ ]
1940
+ )
1941
+ end
1942
+ attr_accessor :by_bandwidth
1943
+
1944
+ # Top URL endpoints sorted by request count.
1945
+ sig do
1946
+ returns(
1947
+ T::Array[
1948
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::ByRequest
1949
+ ]
1950
+ )
1951
+ end
1952
+ attr_accessor :by_requests
1953
+
1954
+ # CDN traffic grouped by configured URL endpoint. Traffic that does not match any
1955
+ # named URL endpoint pattern is grouped under `Default`.
1956
+ sig do
1957
+ params(
1958
+ by_bandwidth:
1959
+ T::Array[
1960
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::ByBandwidth::OrHash
1961
+ ],
1962
+ by_requests:
1963
+ T::Array[
1964
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::ByRequest::OrHash
1965
+ ]
1966
+ ).returns(T.attached_class)
1967
+ end
1968
+ def self.new(
1969
+ # Top URL endpoints sorted by bandwidth utilized.
1970
+ by_bandwidth:,
1971
+ # Top URL endpoints sorted by request count.
1972
+ by_requests:
1973
+ )
1974
+ end
1975
+
1976
+ sig do
1977
+ override.returns(
1978
+ {
1979
+ by_bandwidth:
1980
+ T::Array[
1981
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::ByBandwidth
1982
+ ],
1983
+ by_requests:
1984
+ T::Array[
1985
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::ByRequest
1986
+ ]
1987
+ }
1988
+ )
1989
+ end
1990
+ def to_hash
1991
+ end
1992
+
1993
+ class ByBandwidth < Imagekitio::Models::Accounts::RequestBandwidthEntry
1994
+ OrHash =
1995
+ T.type_alias do
1996
+ T.any(
1997
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::ByBandwidth,
1998
+ Imagekitio::Internal::AnyHash
1999
+ )
2000
+ end
2001
+
2002
+ # URL endpoint name, or `Default` for traffic that does not match a named
2003
+ # endpoint.
2004
+ sig { returns(String) }
2005
+ attr_accessor :name
2006
+
2007
+ sig { params(name: String).returns(T.attached_class) }
2008
+ def self.new(
2009
+ # URL endpoint name, or `Default` for traffic that does not match a named
2010
+ # endpoint.
2011
+ name:
2012
+ )
2013
+ end
2014
+
2015
+ sig { override.returns({ name: String }) }
2016
+ def to_hash
2017
+ end
2018
+ end
2019
+
2020
+ class ByRequest < Imagekitio::Models::Accounts::RequestBandwidthEntry
2021
+ OrHash =
2022
+ T.type_alias do
2023
+ T.any(
2024
+ Imagekitio::Accounts::UsageAnalyticsResponse::URLEndpoints::ByRequest,
2025
+ Imagekitio::Internal::AnyHash
2026
+ )
2027
+ end
2028
+
2029
+ # URL endpoint name, or `Default` for traffic that does not match a named
2030
+ # endpoint.
2031
+ sig { returns(String) }
2032
+ attr_accessor :name
2033
+
2034
+ sig { params(name: String).returns(T.attached_class) }
2035
+ def self.new(
2036
+ # URL endpoint name, or `Default` for traffic that does not match a named
2037
+ # endpoint.
2038
+ name:
2039
+ )
2040
+ end
2041
+
2042
+ sig { override.returns({ name: String }) }
2043
+ def to_hash
2044
+ end
2045
+ end
2046
+ end
2047
+
2048
+ class VideoProcessing < Imagekitio::Internal::Type::BaseModel
2049
+ OrHash =
2050
+ T.type_alias do
2051
+ T.any(
2052
+ Imagekitio::Accounts::UsageAnalyticsResponse::VideoProcessing,
2053
+ Imagekitio::Internal::AnyHash
2054
+ )
2055
+ end
2056
+
2057
+ # Video codec used for the output (e.g. `h264`, `av1`).
2058
+ sig { returns(String) }
2059
+ attr_accessor :codec
2060
+
2061
+ # Total output duration, in seconds, for this resolution and codec combination.
2062
+ sig { returns(Float) }
2063
+ attr_accessor :duration_seconds
2064
+
2065
+ # Output resolution tier (e.g. `SD`, `HD`, `4K`).
2066
+ sig { returns(String) }
2067
+ attr_accessor :resolution
2068
+
2069
+ sig do
2070
+ params(
2071
+ codec: String,
2072
+ duration_seconds: Float,
2073
+ resolution: String
2074
+ ).returns(T.attached_class)
2075
+ end
2076
+ def self.new(
2077
+ # Video codec used for the output (e.g. `h264`, `av1`).
2078
+ codec:,
2079
+ # Total output duration, in seconds, for this resolution and codec combination.
2080
+ duration_seconds:,
2081
+ # Output resolution tier (e.g. `SD`, `HD`, `4K`).
2082
+ resolution:
2083
+ )
2084
+ end
2085
+
2086
+ sig do
2087
+ override.returns(
2088
+ { codec: String, duration_seconds: Float, resolution: String }
2089
+ )
2090
+ end
2091
+ def to_hash
2092
+ end
2093
+ end
2094
+ end
2095
+ end
2096
+ end
2097
+ end