gcore 0.5.0__py3-none-any.whl → 0.7.0__py3-none-any.whl

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.

Potentially problematic release.


This version of gcore might be problematic. Click here for more details.

Files changed (200) hide show
  1. gcore/_client.py +9 -0
  2. gcore/_models.py +24 -3
  3. gcore/_version.py +1 -1
  4. gcore/pagination.py +101 -1
  5. gcore/resources/__init__.py +14 -0
  6. gcore/resources/cloud/__init__.py +42 -0
  7. gcore/resources/cloud/audit_logs.py +480 -0
  8. gcore/resources/cloud/cloud.py +96 -0
  9. gcore/resources/cloud/cost_reports.py +811 -0
  10. gcore/resources/cloud/file_shares/file_shares.py +74 -9
  11. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +61 -26
  12. gcore/resources/cloud/inference/__init__.py +14 -0
  13. gcore/resources/cloud/inference/api_keys.py +621 -0
  14. gcore/resources/cloud/inference/inference.py +32 -0
  15. gcore/resources/cloud/inference/registry_credentials.py +4 -6
  16. gcore/resources/cloud/load_balancers/pools/members.py +22 -6
  17. gcore/resources/cloud/usage_reports.py +337 -0
  18. gcore/resources/streaming/__init__.py +159 -0
  19. gcore/resources/streaming/ai_tasks.py +1288 -0
  20. gcore/resources/streaming/broadcasts.py +579 -0
  21. gcore/resources/streaming/directories.py +515 -0
  22. gcore/resources/streaming/players.py +577 -0
  23. gcore/resources/streaming/playlists.py +1059 -0
  24. gcore/resources/streaming/quality_sets.py +331 -0
  25. gcore/resources/streaming/restreams.py +484 -0
  26. gcore/resources/streaming/statistics.py +3224 -0
  27. gcore/resources/streaming/streaming.py +390 -0
  28. gcore/resources/streaming/streams/__init__.py +33 -0
  29. gcore/resources/streaming/streams/overlays.py +716 -0
  30. gcore/resources/streaming/streams/streams.py +1592 -0
  31. gcore/resources/streaming/videos/__init__.py +33 -0
  32. gcore/resources/streaming/videos/subtitles.py +623 -0
  33. gcore/resources/streaming/videos/videos.py +1553 -0
  34. gcore/resources/waap/ip_info.py +28 -10
  35. gcore/types/cloud/__init__.py +12 -0
  36. gcore/types/cloud/audit_log_entry.py +254 -0
  37. gcore/types/cloud/audit_log_list_params.py +158 -0
  38. gcore/types/cloud/cost_report_aggregated.py +865 -0
  39. gcore/types/cloud/cost_report_aggregated_monthly.py +865 -0
  40. gcore/types/cloud/cost_report_detailed.py +1343 -0
  41. gcore/types/cloud/cost_report_get_aggregated_monthly_params.py +394 -0
  42. gcore/types/cloud/cost_report_get_aggregated_params.py +409 -0
  43. gcore/types/cloud/cost_report_get_detailed_params.py +435 -0
  44. gcore/types/cloud/file_share.py +37 -3
  45. gcore/types/cloud/file_share_create_params.py +16 -0
  46. gcore/types/cloud/file_share_update_params.py +29 -3
  47. gcore/types/cloud/gpu_baremetal_cluster.py +2 -2
  48. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +9 -0
  49. gcore/types/cloud/inference/__init__.py +5 -0
  50. gcore/types/cloud/inference/api_key_create_params.py +21 -0
  51. gcore/types/cloud/inference/api_key_list_params.py +21 -0
  52. gcore/types/cloud/inference/api_key_update_params.py +16 -0
  53. gcore/types/cloud/inference/inference_api_key.py +24 -0
  54. gcore/types/cloud/inference/inference_api_key_create.py +27 -0
  55. gcore/types/cloud/load_balancer_create_params.py +14 -3
  56. gcore/types/cloud/load_balancers/pool_create_params.py +14 -3
  57. gcore/types/cloud/load_balancers/pool_update_params.py +14 -3
  58. gcore/types/cloud/load_balancers/pools/member_add_params.py +14 -3
  59. gcore/types/cloud/member.py +12 -4
  60. gcore/types/cloud/quota_get_all_response.py +24 -2
  61. gcore/types/cloud/quota_get_by_region_response.py +24 -2
  62. gcore/types/cloud/quotas/request_create_params.py +12 -1
  63. gcore/types/cloud/quotas/request_get_response.py +12 -1
  64. gcore/types/cloud/quotas/request_list_response.py +12 -1
  65. gcore/types/cloud/usage_report.py +1612 -0
  66. gcore/types/cloud/usage_report_get_params.py +432 -0
  67. gcore/types/streaming/__init__.py +143 -0
  68. gcore/types/streaming/ai_contentmoderation_casm.py +39 -0
  69. gcore/types/streaming/ai_contentmoderation_hardnudity.py +54 -0
  70. gcore/types/streaming/ai_contentmoderation_nsfw.py +39 -0
  71. gcore/types/streaming/ai_contentmoderation_softnudity.py +66 -0
  72. gcore/types/streaming/ai_contentmoderation_sport.py +39 -0
  73. gcore/types/streaming/ai_contentmoderation_weapon.py +39 -0
  74. gcore/types/streaming/ai_task.py +205 -0
  75. gcore/types/streaming/ai_task_cancel_response.py +12 -0
  76. gcore/types/streaming/ai_task_create_params.py +168 -0
  77. gcore/types/streaming/ai_task_create_response.py +10 -0
  78. gcore/types/streaming/ai_task_get_ai_settings_params.py +27 -0
  79. gcore/types/streaming/ai_task_get_ai_settings_response.py +12 -0
  80. gcore/types/streaming/ai_task_get_response.py +313 -0
  81. gcore/types/streaming/ai_task_list_params.py +50 -0
  82. gcore/types/streaming/broadcast.py +71 -0
  83. gcore/types/streaming/broadcast_create_params.py +76 -0
  84. gcore/types/streaming/broadcast_list_params.py +12 -0
  85. gcore/types/streaming/broadcast_spectators_count.py +12 -0
  86. gcore/types/streaming/broadcast_update_params.py +76 -0
  87. gcore/types/streaming/clip.py +78 -0
  88. gcore/types/streaming/create_video_param.py +214 -0
  89. gcore/types/streaming/direct_upload_parameters.py +33 -0
  90. gcore/types/streaming/directories_tree.py +19 -0
  91. gcore/types/streaming/directory_base.py +31 -0
  92. gcore/types/streaming/directory_create_params.py +15 -0
  93. gcore/types/streaming/directory_get_response.py +19 -0
  94. gcore/types/streaming/directory_item.py +13 -0
  95. gcore/types/streaming/directory_update_params.py +18 -0
  96. gcore/types/streaming/directory_video.py +13 -0
  97. gcore/types/streaming/ffprobes.py +25 -0
  98. gcore/types/streaming/max_stream_series.py +21 -0
  99. gcore/types/streaming/meet_series.py +23 -0
  100. gcore/types/streaming/player.py +114 -0
  101. gcore/types/streaming/player_create_params.py +18 -0
  102. gcore/types/streaming/player_list_params.py +12 -0
  103. gcore/types/streaming/player_param.py +114 -0
  104. gcore/types/streaming/player_update_params.py +18 -0
  105. gcore/types/streaming/playlist.py +102 -0
  106. gcore/types/streaming/playlist_create.py +12 -0
  107. gcore/types/streaming/playlist_create_params.py +102 -0
  108. gcore/types/streaming/playlist_list_params.py +12 -0
  109. gcore/types/streaming/playlist_list_videos_response.py +10 -0
  110. gcore/types/streaming/playlist_update_params.py +102 -0
  111. gcore/types/streaming/playlist_video.py +215 -0
  112. gcore/types/streaming/popular_videos.py +17 -0
  113. gcore/types/streaming/quality_set_set_default_params.py +23 -0
  114. gcore/types/streaming/quality_sets.py +57 -0
  115. gcore/types/streaming/restream.py +37 -0
  116. gcore/types/streaming/restream_create_params.py +41 -0
  117. gcore/types/streaming/restream_list_params.py +12 -0
  118. gcore/types/streaming/restream_update_params.py +41 -0
  119. gcore/types/streaming/statistic_get_ffprobes_params.py +22 -0
  120. gcore/types/streaming/statistic_get_live_unique_viewers_params.py +26 -0
  121. gcore/types/streaming/statistic_get_live_unique_viewers_response.py +25 -0
  122. gcore/types/streaming/statistic_get_live_watch_time_cdn_params.py +32 -0
  123. gcore/types/streaming/statistic_get_live_watch_time_total_cdn_params.py +30 -0
  124. gcore/types/streaming/statistic_get_max_streams_series_params.py +20 -0
  125. gcore/types/streaming/statistic_get_meet_series_params.py +20 -0
  126. gcore/types/streaming/statistic_get_popular_videos_params.py +15 -0
  127. gcore/types/streaming/statistic_get_storage_series_params.py +20 -0
  128. gcore/types/streaming/statistic_get_stream_series_params.py +20 -0
  129. gcore/types/streaming/statistic_get_unique_viewers_cdn_params.py +27 -0
  130. gcore/types/streaming/statistic_get_unique_viewers_params.py +34 -0
  131. gcore/types/streaming/statistic_get_views_by_browsers_params.py +15 -0
  132. gcore/types/streaming/statistic_get_views_by_country_params.py +15 -0
  133. gcore/types/streaming/statistic_get_views_by_hostname_params.py +15 -0
  134. gcore/types/streaming/statistic_get_views_by_operating_system_params.py +15 -0
  135. gcore/types/streaming/statistic_get_views_by_referer_params.py +15 -0
  136. gcore/types/streaming/statistic_get_views_by_region_params.py +15 -0
  137. gcore/types/streaming/statistic_get_views_heatmap_params.py +21 -0
  138. gcore/types/streaming/statistic_get_views_params.py +34 -0
  139. gcore/types/streaming/statistic_get_vod_storage_volume_params.py +17 -0
  140. gcore/types/streaming/statistic_get_vod_transcoding_duration_params.py +17 -0
  141. gcore/types/streaming/statistic_get_vod_unique_viewers_cdn_params.py +26 -0
  142. gcore/types/streaming/statistic_get_vod_watch_time_cdn_params.py +32 -0
  143. gcore/types/streaming/statistic_get_vod_watch_time_total_cdn_params.py +30 -0
  144. gcore/types/streaming/statistic_get_vod_watch_time_total_cdn_response.py +22 -0
  145. gcore/types/streaming/storage_series.py +23 -0
  146. gcore/types/streaming/stream.py +420 -0
  147. gcore/types/streaming/stream_create_clip_params.py +48 -0
  148. gcore/types/streaming/stream_create_params.py +165 -0
  149. gcore/types/streaming/stream_list_clips_response.py +10 -0
  150. gcore/types/streaming/stream_list_params.py +18 -0
  151. gcore/types/streaming/stream_series.py +21 -0
  152. gcore/types/streaming/stream_start_recording_response.py +76 -0
  153. gcore/types/streaming/stream_update_params.py +169 -0
  154. gcore/types/streaming/streams/__init__.py +11 -0
  155. gcore/types/streaming/streams/overlay.py +43 -0
  156. gcore/types/streaming/streams/overlay_create_params.py +36 -0
  157. gcore/types/streaming/streams/overlay_create_response.py +10 -0
  158. gcore/types/streaming/streams/overlay_list_response.py +10 -0
  159. gcore/types/streaming/streams/overlay_update_multiple_params.py +39 -0
  160. gcore/types/streaming/streams/overlay_update_multiple_response.py +10 -0
  161. gcore/types/streaming/streams/overlay_update_params.py +33 -0
  162. gcore/types/streaming/subtitle.py +12 -0
  163. gcore/types/streaming/subtitle_base.py +18 -0
  164. gcore/types/streaming/subtitle_base_param.py +18 -0
  165. gcore/types/streaming/unique_viewers.py +35 -0
  166. gcore/types/streaming/unique_viewers_cdn.py +17 -0
  167. gcore/types/streaming/video.py +444 -0
  168. gcore/types/streaming/video_create_multiple_params.py +28 -0
  169. gcore/types/streaming/video_create_multiple_response.py +10 -0
  170. gcore/types/streaming/video_create_params.py +13 -0
  171. gcore/types/streaming/video_create_response.py +10 -0
  172. gcore/types/streaming/video_list_names_params.py +13 -0
  173. gcore/types/streaming/video_list_params.py +59 -0
  174. gcore/types/streaming/video_update_params.py +214 -0
  175. gcore/types/streaming/videos/__init__.py +7 -0
  176. gcore/types/streaming/videos/subtitle_create_params.py +17 -0
  177. gcore/types/streaming/videos/subtitle_list_response.py +10 -0
  178. gcore/types/streaming/videos/subtitle_update_params.py +20 -0
  179. gcore/types/streaming/views.py +35 -0
  180. gcore/types/streaming/views_by_browser.py +17 -0
  181. gcore/types/streaming/views_by_country.py +19 -0
  182. gcore/types/streaming/views_by_hostname.py +17 -0
  183. gcore/types/streaming/views_by_operating_system.py +17 -0
  184. gcore/types/streaming/views_by_referer.py +17 -0
  185. gcore/types/streaming/views_by_region.py +19 -0
  186. gcore/types/streaming/views_heatmap.py +19 -0
  187. gcore/types/streaming/vod_statistics_series.py +21 -0
  188. gcore/types/streaming/vod_total_stream_duration_series.py +22 -0
  189. gcore/types/waap/domains/custom_rule_create_params.py +4 -4
  190. gcore/types/waap/domains/custom_rule_update_params.py +4 -4
  191. gcore/types/waap/ip_info_get_blocked_requests_params.py +5 -1
  192. gcore/types/waap/ip_info_get_counts_params.py +2 -1
  193. gcore/types/waap/ip_info_get_top_sessions_params.py +5 -1
  194. gcore/types/waap/ip_info_get_top_urls_params.py +5 -1
  195. gcore/types/waap/ip_info_get_top_user_agents_params.py +5 -1
  196. gcore/types/waap/waap_custom_rule.py +4 -4
  197. {gcore-0.5.0.dist-info → gcore-0.7.0.dist-info}/METADATA +2 -3
  198. {gcore-0.5.0.dist-info → gcore-0.7.0.dist-info}/RECORD +200 -43
  199. {gcore-0.5.0.dist-info → gcore-0.7.0.dist-info}/WHEEL +0 -0
  200. {gcore-0.5.0.dist-info → gcore-0.7.0.dist-info}/licenses/LICENSE +0 -0
gcore/_client.py CHANGED
@@ -32,6 +32,7 @@ from .resources.iam import iam
32
32
  from .resources.waap import waap
33
33
  from .resources.cloud import cloud
34
34
  from .resources.fastedge import fastedge
35
+ from .resources.streaming import streaming
35
36
 
36
37
  __all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Gcore", "AsyncGcore", "Client", "AsyncClient"]
37
38
 
@@ -41,6 +42,7 @@ class Gcore(SyncAPIClient):
41
42
  waap: waap.WaapResource
42
43
  iam: iam.IamResource
43
44
  fastedge: fastedge.FastedgeResource
45
+ streaming: streaming.StreamingResource
44
46
  with_raw_response: GcoreWithRawResponse
45
47
  with_streaming_response: GcoreWithStreamedResponse
46
48
 
@@ -123,6 +125,7 @@ class Gcore(SyncAPIClient):
123
125
  self.waap = waap.WaapResource(self)
124
126
  self.iam = iam.IamResource(self)
125
127
  self.fastedge = fastedge.FastedgeResource(self)
128
+ self.streaming = streaming.StreamingResource(self)
126
129
  self.with_raw_response = GcoreWithRawResponse(self)
127
130
  self.with_streaming_response = GcoreWithStreamedResponse(self)
128
131
 
@@ -260,6 +263,7 @@ class AsyncGcore(AsyncAPIClient):
260
263
  waap: waap.AsyncWaapResource
261
264
  iam: iam.AsyncIamResource
262
265
  fastedge: fastedge.AsyncFastedgeResource
266
+ streaming: streaming.AsyncStreamingResource
263
267
  with_raw_response: AsyncGcoreWithRawResponse
264
268
  with_streaming_response: AsyncGcoreWithStreamedResponse
265
269
 
@@ -342,6 +346,7 @@ class AsyncGcore(AsyncAPIClient):
342
346
  self.waap = waap.AsyncWaapResource(self)
343
347
  self.iam = iam.AsyncIamResource(self)
344
348
  self.fastedge = fastedge.AsyncFastedgeResource(self)
349
+ self.streaming = streaming.AsyncStreamingResource(self)
345
350
  self.with_raw_response = AsyncGcoreWithRawResponse(self)
346
351
  self.with_streaming_response = AsyncGcoreWithStreamedResponse(self)
347
352
 
@@ -480,6 +485,7 @@ class GcoreWithRawResponse:
480
485
  self.waap = waap.WaapResourceWithRawResponse(client.waap)
481
486
  self.iam = iam.IamResourceWithRawResponse(client.iam)
482
487
  self.fastedge = fastedge.FastedgeResourceWithRawResponse(client.fastedge)
488
+ self.streaming = streaming.StreamingResourceWithRawResponse(client.streaming)
483
489
 
484
490
 
485
491
  class AsyncGcoreWithRawResponse:
@@ -488,6 +494,7 @@ class AsyncGcoreWithRawResponse:
488
494
  self.waap = waap.AsyncWaapResourceWithRawResponse(client.waap)
489
495
  self.iam = iam.AsyncIamResourceWithRawResponse(client.iam)
490
496
  self.fastedge = fastedge.AsyncFastedgeResourceWithRawResponse(client.fastedge)
497
+ self.streaming = streaming.AsyncStreamingResourceWithRawResponse(client.streaming)
491
498
 
492
499
 
493
500
  class GcoreWithStreamedResponse:
@@ -496,6 +503,7 @@ class GcoreWithStreamedResponse:
496
503
  self.waap = waap.WaapResourceWithStreamingResponse(client.waap)
497
504
  self.iam = iam.IamResourceWithStreamingResponse(client.iam)
498
505
  self.fastedge = fastedge.FastedgeResourceWithStreamingResponse(client.fastedge)
506
+ self.streaming = streaming.StreamingResourceWithStreamingResponse(client.streaming)
499
507
 
500
508
 
501
509
  class AsyncGcoreWithStreamedResponse:
@@ -504,6 +512,7 @@ class AsyncGcoreWithStreamedResponse:
504
512
  self.waap = waap.AsyncWaapResourceWithStreamingResponse(client.waap)
505
513
  self.iam = iam.AsyncIamResourceWithStreamingResponse(client.iam)
506
514
  self.fastedge = fastedge.AsyncFastedgeResourceWithStreamingResponse(client.fastedge)
515
+ self.streaming = streaming.AsyncStreamingResourceWithStreamingResponse(client.streaming)
507
516
 
508
517
 
509
518
  Client = Gcore
gcore/_models.py CHANGED
@@ -208,14 +208,18 @@ class BaseModel(pydantic.BaseModel):
208
208
  else:
209
209
  fields_values[name] = field_get_default(field)
210
210
 
211
+ extra_field_type = _get_extra_fields_type(__cls)
212
+
211
213
  _extra = {}
212
214
  for key, value in values.items():
213
215
  if key not in model_fields:
216
+ parsed = construct_type(value=value, type_=extra_field_type) if extra_field_type is not None else value
217
+
214
218
  if PYDANTIC_V2:
215
- _extra[key] = value
219
+ _extra[key] = parsed
216
220
  else:
217
221
  _fields_set.add(key)
218
- fields_values[key] = value
222
+ fields_values[key] = parsed
219
223
 
220
224
  object.__setattr__(m, "__dict__", fields_values)
221
225
 
@@ -370,6 +374,23 @@ def _construct_field(value: object, field: FieldInfo, key: str) -> object:
370
374
  return construct_type(value=value, type_=type_, metadata=getattr(field, "metadata", None))
371
375
 
372
376
 
377
+ def _get_extra_fields_type(cls: type[pydantic.BaseModel]) -> type | None:
378
+ if not PYDANTIC_V2:
379
+ # TODO
380
+ return None
381
+
382
+ schema = cls.__pydantic_core_schema__
383
+ if schema["type"] == "model":
384
+ fields = schema["schema"]
385
+ if fields["type"] == "model-fields":
386
+ extras = fields.get("extras_schema")
387
+ if extras and "cls" in extras:
388
+ # mypy can't narrow the type
389
+ return extras["cls"] # type: ignore[no-any-return]
390
+
391
+ return None
392
+
393
+
373
394
  def is_basemodel(type_: type) -> bool:
374
395
  """Returns whether or not the given type is either a `BaseModel` or a union of `BaseModel`"""
375
396
  if is_union(type_):
@@ -439,7 +460,7 @@ def construct_type(*, value: object, type_: object, metadata: Optional[List[Any]
439
460
  type_ = type_.__value__ # type: ignore[unreachable]
440
461
 
441
462
  # unwrap `Annotated[T, ...]` -> `T`
442
- if metadata is not None:
463
+ if metadata is not None and len(metadata) > 0:
443
464
  meta: tuple[Any, ...] = tuple(metadata)
444
465
  elif is_annotated_type(type_):
445
466
  meta = get_args(type_)[1:]
gcore/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "gcore"
4
- __version__ = "0.5.0" # x-release-please-version
4
+ __version__ = "0.7.0" # x-release-please-version
gcore/pagination.py CHANGED
@@ -1,8 +1,12 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import List, Generic, TypeVar, Optional
3
+ from typing import Any, List, Type, Generic, Mapping, TypeVar, Optional, cast
4
4
  from typing_extensions import override
5
5
 
6
+ from httpx import Response
7
+
8
+ from ._utils import is_mapping
9
+ from ._models import BaseModel
6
10
  from ._base_client import BasePage, PageInfo, BaseSyncPage, BaseAsyncPage
7
11
 
8
12
  __all__ = [
@@ -16,8 +20,14 @@ __all__ = [
16
20
  "AsyncOffsetPageFastedgeTemplates",
17
21
  "SyncOffsetPageFastedgeAppLogs",
18
22
  "AsyncOffsetPageFastedgeAppLogs",
23
+ "SyncPageStreamingAI",
24
+ "AsyncPageStreamingAI",
25
+ "SyncPageStreaming",
26
+ "AsyncPageStreaming",
19
27
  ]
20
28
 
29
+ _BaseModelT = TypeVar("_BaseModelT", bound=BaseModel)
30
+
21
31
  _T = TypeVar("_T")
22
32
 
23
33
 
@@ -319,3 +329,93 @@ class AsyncOffsetPageFastedgeAppLogs(BaseAsyncPage[_T], BasePage[_T], Generic[_T
319
329
  return PageInfo(params={"offset": current_count})
320
330
 
321
331
  return None
332
+
333
+
334
+ class SyncPageStreamingAI(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
335
+ results: List[_T]
336
+
337
+ @override
338
+ def _get_page_items(self) -> List[_T]:
339
+ results = self.results
340
+ if not results:
341
+ return []
342
+ return results
343
+
344
+ @override
345
+ def next_page_info(self) -> Optional[PageInfo]:
346
+ last_page = cast("int | None", self._options.params.get("page")) or 1
347
+
348
+ return PageInfo(params={"page": last_page + 1})
349
+
350
+
351
+ class AsyncPageStreamingAI(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
352
+ results: List[_T]
353
+
354
+ @override
355
+ def _get_page_items(self) -> List[_T]:
356
+ results = self.results
357
+ if not results:
358
+ return []
359
+ return results
360
+
361
+ @override
362
+ def next_page_info(self) -> Optional[PageInfo]:
363
+ last_page = cast("int | None", self._options.params.get("page")) or 1
364
+
365
+ return PageInfo(params={"page": last_page + 1})
366
+
367
+
368
+ class SyncPageStreaming(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
369
+ items: List[_T]
370
+
371
+ @override
372
+ def _get_page_items(self) -> List[_T]:
373
+ items = self.items
374
+ if not items:
375
+ return []
376
+ return items
377
+
378
+ @override
379
+ def next_page_info(self) -> None:
380
+ """
381
+ This page represents a response that isn't actually paginated at the API level
382
+ so there will never be a next page.
383
+ """
384
+ return None
385
+
386
+ @classmethod
387
+ def build(cls: Type[_BaseModelT], *, response: Response, data: object) -> _BaseModelT: # noqa: ARG003
388
+ return cls.construct(
389
+ None,
390
+ **{
391
+ **(cast(Mapping[str, Any], data) if is_mapping(data) else {"items": data}),
392
+ },
393
+ )
394
+
395
+
396
+ class AsyncPageStreaming(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
397
+ items: List[_T]
398
+
399
+ @override
400
+ def _get_page_items(self) -> List[_T]:
401
+ items = self.items
402
+ if not items:
403
+ return []
404
+ return items
405
+
406
+ @override
407
+ def next_page_info(self) -> None:
408
+ """
409
+ This page represents a response that isn't actually paginated at the API level
410
+ so there will never be a next page.
411
+ """
412
+ return None
413
+
414
+ @classmethod
415
+ def build(cls: Type[_BaseModelT], *, response: Response, data: object) -> _BaseModelT: # noqa: ARG003
416
+ return cls.construct(
417
+ None,
418
+ **{
419
+ **(cast(Mapping[str, Any], data) if is_mapping(data) else {"items": data}),
420
+ },
421
+ )
@@ -32,6 +32,14 @@ from .fastedge import (
32
32
  FastedgeResourceWithStreamingResponse,
33
33
  AsyncFastedgeResourceWithStreamingResponse,
34
34
  )
35
+ from .streaming import (
36
+ StreamingResource,
37
+ AsyncStreamingResource,
38
+ StreamingResourceWithRawResponse,
39
+ AsyncStreamingResourceWithRawResponse,
40
+ StreamingResourceWithStreamingResponse,
41
+ AsyncStreamingResourceWithStreamingResponse,
42
+ )
35
43
 
36
44
  __all__ = [
37
45
  "CloudResource",
@@ -58,4 +66,10 @@ __all__ = [
58
66
  "AsyncFastedgeResourceWithRawResponse",
59
67
  "FastedgeResourceWithStreamingResponse",
60
68
  "AsyncFastedgeResourceWithStreamingResponse",
69
+ "StreamingResource",
70
+ "AsyncStreamingResource",
71
+ "StreamingResourceWithRawResponse",
72
+ "AsyncStreamingResourceWithRawResponse",
73
+ "StreamingResourceWithStreamingResponse",
74
+ "AsyncStreamingResourceWithStreamingResponse",
61
75
  ]
@@ -112,6 +112,14 @@ from .ip_ranges import (
112
112
  IPRangesResourceWithStreamingResponse,
113
113
  AsyncIPRangesResourceWithStreamingResponse,
114
114
  )
115
+ from .audit_logs import (
116
+ AuditLogsResource,
117
+ AsyncAuditLogsResource,
118
+ AuditLogsResourceWithRawResponse,
119
+ AsyncAuditLogsResourceWithRawResponse,
120
+ AuditLogsResourceWithStreamingResponse,
121
+ AsyncAuditLogsResourceWithStreamingResponse,
122
+ )
115
123
  from .registries import (
116
124
  RegistriesResource,
117
125
  AsyncRegistriesResource,
@@ -128,6 +136,14 @@ from .file_shares import (
128
136
  FileSharesResourceWithStreamingResponse,
129
137
  AsyncFileSharesResourceWithStreamingResponse,
130
138
  )
139
+ from .cost_reports import (
140
+ CostReportsResource,
141
+ AsyncCostReportsResource,
142
+ CostReportsResourceWithRawResponse,
143
+ AsyncCostReportsResourceWithRawResponse,
144
+ CostReportsResourceWithStreamingResponse,
145
+ AsyncCostReportsResourceWithStreamingResponse,
146
+ )
131
147
  from .floating_ips import (
132
148
  FloatingIPsResource,
133
149
  AsyncFloatingIPsResource,
@@ -136,6 +152,14 @@ from .floating_ips import (
136
152
  FloatingIPsResourceWithStreamingResponse,
137
153
  AsyncFloatingIPsResourceWithStreamingResponse,
138
154
  )
155
+ from .usage_reports import (
156
+ UsageReportsResource,
157
+ AsyncUsageReportsResource,
158
+ UsageReportsResourceWithRawResponse,
159
+ AsyncUsageReportsResourceWithRawResponse,
160
+ UsageReportsResourceWithStreamingResponse,
161
+ AsyncUsageReportsResourceWithStreamingResponse,
162
+ )
139
163
  from .load_balancers import (
140
164
  LoadBalancersResource,
141
165
  AsyncLoadBalancersResource,
@@ -318,6 +342,24 @@ __all__ = [
318
342
  "AsyncInstancesResourceWithRawResponse",
319
343
  "InstancesResourceWithStreamingResponse",
320
344
  "AsyncInstancesResourceWithStreamingResponse",
345
+ "AuditLogsResource",
346
+ "AsyncAuditLogsResource",
347
+ "AuditLogsResourceWithRawResponse",
348
+ "AsyncAuditLogsResourceWithRawResponse",
349
+ "AuditLogsResourceWithStreamingResponse",
350
+ "AsyncAuditLogsResourceWithStreamingResponse",
351
+ "CostReportsResource",
352
+ "AsyncCostReportsResource",
353
+ "CostReportsResourceWithRawResponse",
354
+ "AsyncCostReportsResourceWithRawResponse",
355
+ "CostReportsResourceWithStreamingResponse",
356
+ "AsyncCostReportsResourceWithStreamingResponse",
357
+ "UsageReportsResource",
358
+ "AsyncUsageReportsResource",
359
+ "UsageReportsResourceWithRawResponse",
360
+ "AsyncUsageReportsResourceWithRawResponse",
361
+ "UsageReportsResourceWithStreamingResponse",
362
+ "AsyncUsageReportsResourceWithStreamingResponse",
321
363
  "CloudResource",
322
364
  "AsyncCloudResource",
323
365
  "CloudResourceWithRawResponse",