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.
- gcore/_client.py +9 -0
- gcore/_models.py +24 -3
- gcore/_version.py +1 -1
- gcore/pagination.py +101 -1
- gcore/resources/__init__.py +14 -0
- gcore/resources/cloud/__init__.py +42 -0
- gcore/resources/cloud/audit_logs.py +480 -0
- gcore/resources/cloud/cloud.py +96 -0
- gcore/resources/cloud/cost_reports.py +811 -0
- gcore/resources/cloud/file_shares/file_shares.py +74 -9
- gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +61 -26
- gcore/resources/cloud/inference/__init__.py +14 -0
- gcore/resources/cloud/inference/api_keys.py +621 -0
- gcore/resources/cloud/inference/inference.py +32 -0
- gcore/resources/cloud/inference/registry_credentials.py +4 -6
- gcore/resources/cloud/load_balancers/pools/members.py +22 -6
- gcore/resources/cloud/usage_reports.py +337 -0
- gcore/resources/streaming/__init__.py +159 -0
- gcore/resources/streaming/ai_tasks.py +1288 -0
- gcore/resources/streaming/broadcasts.py +579 -0
- gcore/resources/streaming/directories.py +515 -0
- gcore/resources/streaming/players.py +577 -0
- gcore/resources/streaming/playlists.py +1059 -0
- gcore/resources/streaming/quality_sets.py +331 -0
- gcore/resources/streaming/restreams.py +484 -0
- gcore/resources/streaming/statistics.py +3224 -0
- gcore/resources/streaming/streaming.py +390 -0
- gcore/resources/streaming/streams/__init__.py +33 -0
- gcore/resources/streaming/streams/overlays.py +716 -0
- gcore/resources/streaming/streams/streams.py +1592 -0
- gcore/resources/streaming/videos/__init__.py +33 -0
- gcore/resources/streaming/videos/subtitles.py +623 -0
- gcore/resources/streaming/videos/videos.py +1553 -0
- gcore/resources/waap/ip_info.py +28 -10
- gcore/types/cloud/__init__.py +12 -0
- gcore/types/cloud/audit_log_entry.py +254 -0
- gcore/types/cloud/audit_log_list_params.py +158 -0
- gcore/types/cloud/cost_report_aggregated.py +865 -0
- gcore/types/cloud/cost_report_aggregated_monthly.py +865 -0
- gcore/types/cloud/cost_report_detailed.py +1343 -0
- gcore/types/cloud/cost_report_get_aggregated_monthly_params.py +394 -0
- gcore/types/cloud/cost_report_get_aggregated_params.py +409 -0
- gcore/types/cloud/cost_report_get_detailed_params.py +435 -0
- gcore/types/cloud/file_share.py +37 -3
- gcore/types/cloud/file_share_create_params.py +16 -0
- gcore/types/cloud/file_share_update_params.py +29 -3
- gcore/types/cloud/gpu_baremetal_cluster.py +2 -2
- gcore/types/cloud/gpu_baremetal_cluster_create_params.py +9 -0
- gcore/types/cloud/inference/__init__.py +5 -0
- gcore/types/cloud/inference/api_key_create_params.py +21 -0
- gcore/types/cloud/inference/api_key_list_params.py +21 -0
- gcore/types/cloud/inference/api_key_update_params.py +16 -0
- gcore/types/cloud/inference/inference_api_key.py +24 -0
- gcore/types/cloud/inference/inference_api_key_create.py +27 -0
- gcore/types/cloud/load_balancer_create_params.py +14 -3
- gcore/types/cloud/load_balancers/pool_create_params.py +14 -3
- gcore/types/cloud/load_balancers/pool_update_params.py +14 -3
- gcore/types/cloud/load_balancers/pools/member_add_params.py +14 -3
- gcore/types/cloud/member.py +12 -4
- gcore/types/cloud/quota_get_all_response.py +24 -2
- gcore/types/cloud/quota_get_by_region_response.py +24 -2
- gcore/types/cloud/quotas/request_create_params.py +12 -1
- gcore/types/cloud/quotas/request_get_response.py +12 -1
- gcore/types/cloud/quotas/request_list_response.py +12 -1
- gcore/types/cloud/usage_report.py +1612 -0
- gcore/types/cloud/usage_report_get_params.py +432 -0
- gcore/types/streaming/__init__.py +143 -0
- gcore/types/streaming/ai_contentmoderation_casm.py +39 -0
- gcore/types/streaming/ai_contentmoderation_hardnudity.py +54 -0
- gcore/types/streaming/ai_contentmoderation_nsfw.py +39 -0
- gcore/types/streaming/ai_contentmoderation_softnudity.py +66 -0
- gcore/types/streaming/ai_contentmoderation_sport.py +39 -0
- gcore/types/streaming/ai_contentmoderation_weapon.py +39 -0
- gcore/types/streaming/ai_task.py +205 -0
- gcore/types/streaming/ai_task_cancel_response.py +12 -0
- gcore/types/streaming/ai_task_create_params.py +168 -0
- gcore/types/streaming/ai_task_create_response.py +10 -0
- gcore/types/streaming/ai_task_get_ai_settings_params.py +27 -0
- gcore/types/streaming/ai_task_get_ai_settings_response.py +12 -0
- gcore/types/streaming/ai_task_get_response.py +313 -0
- gcore/types/streaming/ai_task_list_params.py +50 -0
- gcore/types/streaming/broadcast.py +71 -0
- gcore/types/streaming/broadcast_create_params.py +76 -0
- gcore/types/streaming/broadcast_list_params.py +12 -0
- gcore/types/streaming/broadcast_spectators_count.py +12 -0
- gcore/types/streaming/broadcast_update_params.py +76 -0
- gcore/types/streaming/clip.py +78 -0
- gcore/types/streaming/create_video_param.py +214 -0
- gcore/types/streaming/direct_upload_parameters.py +33 -0
- gcore/types/streaming/directories_tree.py +19 -0
- gcore/types/streaming/directory_base.py +31 -0
- gcore/types/streaming/directory_create_params.py +15 -0
- gcore/types/streaming/directory_get_response.py +19 -0
- gcore/types/streaming/directory_item.py +13 -0
- gcore/types/streaming/directory_update_params.py +18 -0
- gcore/types/streaming/directory_video.py +13 -0
- gcore/types/streaming/ffprobes.py +25 -0
- gcore/types/streaming/max_stream_series.py +21 -0
- gcore/types/streaming/meet_series.py +23 -0
- gcore/types/streaming/player.py +114 -0
- gcore/types/streaming/player_create_params.py +18 -0
- gcore/types/streaming/player_list_params.py +12 -0
- gcore/types/streaming/player_param.py +114 -0
- gcore/types/streaming/player_update_params.py +18 -0
- gcore/types/streaming/playlist.py +102 -0
- gcore/types/streaming/playlist_create.py +12 -0
- gcore/types/streaming/playlist_create_params.py +102 -0
- gcore/types/streaming/playlist_list_params.py +12 -0
- gcore/types/streaming/playlist_list_videos_response.py +10 -0
- gcore/types/streaming/playlist_update_params.py +102 -0
- gcore/types/streaming/playlist_video.py +215 -0
- gcore/types/streaming/popular_videos.py +17 -0
- gcore/types/streaming/quality_set_set_default_params.py +23 -0
- gcore/types/streaming/quality_sets.py +57 -0
- gcore/types/streaming/restream.py +37 -0
- gcore/types/streaming/restream_create_params.py +41 -0
- gcore/types/streaming/restream_list_params.py +12 -0
- gcore/types/streaming/restream_update_params.py +41 -0
- gcore/types/streaming/statistic_get_ffprobes_params.py +22 -0
- gcore/types/streaming/statistic_get_live_unique_viewers_params.py +26 -0
- gcore/types/streaming/statistic_get_live_unique_viewers_response.py +25 -0
- gcore/types/streaming/statistic_get_live_watch_time_cdn_params.py +32 -0
- gcore/types/streaming/statistic_get_live_watch_time_total_cdn_params.py +30 -0
- gcore/types/streaming/statistic_get_max_streams_series_params.py +20 -0
- gcore/types/streaming/statistic_get_meet_series_params.py +20 -0
- gcore/types/streaming/statistic_get_popular_videos_params.py +15 -0
- gcore/types/streaming/statistic_get_storage_series_params.py +20 -0
- gcore/types/streaming/statistic_get_stream_series_params.py +20 -0
- gcore/types/streaming/statistic_get_unique_viewers_cdn_params.py +27 -0
- gcore/types/streaming/statistic_get_unique_viewers_params.py +34 -0
- gcore/types/streaming/statistic_get_views_by_browsers_params.py +15 -0
- gcore/types/streaming/statistic_get_views_by_country_params.py +15 -0
- gcore/types/streaming/statistic_get_views_by_hostname_params.py +15 -0
- gcore/types/streaming/statistic_get_views_by_operating_system_params.py +15 -0
- gcore/types/streaming/statistic_get_views_by_referer_params.py +15 -0
- gcore/types/streaming/statistic_get_views_by_region_params.py +15 -0
- gcore/types/streaming/statistic_get_views_heatmap_params.py +21 -0
- gcore/types/streaming/statistic_get_views_params.py +34 -0
- gcore/types/streaming/statistic_get_vod_storage_volume_params.py +17 -0
- gcore/types/streaming/statistic_get_vod_transcoding_duration_params.py +17 -0
- gcore/types/streaming/statistic_get_vod_unique_viewers_cdn_params.py +26 -0
- gcore/types/streaming/statistic_get_vod_watch_time_cdn_params.py +32 -0
- gcore/types/streaming/statistic_get_vod_watch_time_total_cdn_params.py +30 -0
- gcore/types/streaming/statistic_get_vod_watch_time_total_cdn_response.py +22 -0
- gcore/types/streaming/storage_series.py +23 -0
- gcore/types/streaming/stream.py +420 -0
- gcore/types/streaming/stream_create_clip_params.py +48 -0
- gcore/types/streaming/stream_create_params.py +165 -0
- gcore/types/streaming/stream_list_clips_response.py +10 -0
- gcore/types/streaming/stream_list_params.py +18 -0
- gcore/types/streaming/stream_series.py +21 -0
- gcore/types/streaming/stream_start_recording_response.py +76 -0
- gcore/types/streaming/stream_update_params.py +169 -0
- gcore/types/streaming/streams/__init__.py +11 -0
- gcore/types/streaming/streams/overlay.py +43 -0
- gcore/types/streaming/streams/overlay_create_params.py +36 -0
- gcore/types/streaming/streams/overlay_create_response.py +10 -0
- gcore/types/streaming/streams/overlay_list_response.py +10 -0
- gcore/types/streaming/streams/overlay_update_multiple_params.py +39 -0
- gcore/types/streaming/streams/overlay_update_multiple_response.py +10 -0
- gcore/types/streaming/streams/overlay_update_params.py +33 -0
- gcore/types/streaming/subtitle.py +12 -0
- gcore/types/streaming/subtitle_base.py +18 -0
- gcore/types/streaming/subtitle_base_param.py +18 -0
- gcore/types/streaming/unique_viewers.py +35 -0
- gcore/types/streaming/unique_viewers_cdn.py +17 -0
- gcore/types/streaming/video.py +444 -0
- gcore/types/streaming/video_create_multiple_params.py +28 -0
- gcore/types/streaming/video_create_multiple_response.py +10 -0
- gcore/types/streaming/video_create_params.py +13 -0
- gcore/types/streaming/video_create_response.py +10 -0
- gcore/types/streaming/video_list_names_params.py +13 -0
- gcore/types/streaming/video_list_params.py +59 -0
- gcore/types/streaming/video_update_params.py +214 -0
- gcore/types/streaming/videos/__init__.py +7 -0
- gcore/types/streaming/videos/subtitle_create_params.py +17 -0
- gcore/types/streaming/videos/subtitle_list_response.py +10 -0
- gcore/types/streaming/videos/subtitle_update_params.py +20 -0
- gcore/types/streaming/views.py +35 -0
- gcore/types/streaming/views_by_browser.py +17 -0
- gcore/types/streaming/views_by_country.py +19 -0
- gcore/types/streaming/views_by_hostname.py +17 -0
- gcore/types/streaming/views_by_operating_system.py +17 -0
- gcore/types/streaming/views_by_referer.py +17 -0
- gcore/types/streaming/views_by_region.py +19 -0
- gcore/types/streaming/views_heatmap.py +19 -0
- gcore/types/streaming/vod_statistics_series.py +21 -0
- gcore/types/streaming/vod_total_stream_duration_series.py +22 -0
- gcore/types/waap/domains/custom_rule_create_params.py +4 -4
- gcore/types/waap/domains/custom_rule_update_params.py +4 -4
- gcore/types/waap/ip_info_get_blocked_requests_params.py +5 -1
- gcore/types/waap/ip_info_get_counts_params.py +2 -1
- gcore/types/waap/ip_info_get_top_sessions_params.py +5 -1
- gcore/types/waap/ip_info_get_top_urls_params.py +5 -1
- gcore/types/waap/ip_info_get_top_user_agents_params.py +5 -1
- gcore/types/waap/waap_custom_rule.py +4 -4
- {gcore-0.5.0.dist-info → gcore-0.7.0.dist-info}/METADATA +2 -3
- {gcore-0.5.0.dist-info → gcore-0.7.0.dist-info}/RECORD +200 -43
- {gcore-0.5.0.dist-info → gcore-0.7.0.dist-info}/WHEEL +0 -0
- {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] =
|
|
219
|
+
_extra[key] = parsed
|
|
216
220
|
else:
|
|
217
221
|
_fields_set.add(key)
|
|
218
|
-
fields_values[key] =
|
|
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
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
|
+
)
|
gcore/resources/__init__.py
CHANGED
|
@@ -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",
|