gcore 0.6.0__py3-none-any.whl → 0.8.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 (185) 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 -63
  5. gcore/resources/__init__.py +14 -0
  6. gcore/resources/cloud/__init__.py +28 -0
  7. gcore/resources/cloud/cloud.py +64 -0
  8. gcore/resources/cloud/cost_reports.py +811 -0
  9. gcore/resources/cloud/file_shares/file_shares.py +10 -0
  10. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +61 -26
  11. gcore/resources/cloud/inference/registry_credentials.py +4 -6
  12. gcore/resources/cloud/usage_reports.py +337 -0
  13. gcore/resources/iam/users.py +5 -5
  14. gcore/resources/streaming/__init__.py +159 -0
  15. gcore/resources/streaming/ai_tasks.py +1288 -0
  16. gcore/resources/streaming/broadcasts.py +579 -0
  17. gcore/resources/streaming/directories.py +515 -0
  18. gcore/resources/streaming/players.py +577 -0
  19. gcore/resources/streaming/playlists.py +1059 -0
  20. gcore/resources/streaming/quality_sets.py +331 -0
  21. gcore/resources/streaming/restreams.py +484 -0
  22. gcore/resources/streaming/statistics.py +3224 -0
  23. gcore/resources/streaming/streaming.py +390 -0
  24. gcore/resources/streaming/streams/__init__.py +33 -0
  25. gcore/resources/streaming/streams/overlays.py +716 -0
  26. gcore/resources/streaming/streams/streams.py +1592 -0
  27. gcore/resources/streaming/videos/__init__.py +33 -0
  28. gcore/resources/streaming/videos/subtitles.py +623 -0
  29. gcore/resources/streaming/videos/videos.py +1553 -0
  30. gcore/resources/waap/ip_info.py +28 -10
  31. gcore/types/cloud/__init__.py +10 -0
  32. gcore/types/cloud/cost_report_aggregated.py +865 -0
  33. gcore/types/cloud/cost_report_aggregated_monthly.py +865 -0
  34. gcore/types/cloud/cost_report_detailed.py +1343 -0
  35. gcore/types/cloud/cost_report_get_aggregated_monthly_params.py +394 -0
  36. gcore/types/cloud/cost_report_get_aggregated_params.py +409 -0
  37. gcore/types/cloud/cost_report_get_detailed_params.py +435 -0
  38. gcore/types/cloud/file_share.py +37 -3
  39. gcore/types/cloud/file_share_create_params.py +16 -0
  40. gcore/types/cloud/floating_ip.py +0 -9
  41. gcore/types/cloud/floating_ip_detailed.py +0 -9
  42. gcore/types/cloud/gpu_baremetal_cluster.py +2 -2
  43. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +9 -0
  44. gcore/types/cloud/quota_get_all_response.py +24 -2
  45. gcore/types/cloud/quota_get_by_region_response.py +24 -2
  46. gcore/types/cloud/quotas/request_create_params.py +12 -1
  47. gcore/types/cloud/quotas/request_get_response.py +12 -1
  48. gcore/types/cloud/quotas/request_list_response.py +12 -1
  49. gcore/types/cloud/subnet.py +1 -1
  50. gcore/types/cloud/usage_report.py +1612 -0
  51. gcore/types/cloud/usage_report_get_params.py +432 -0
  52. gcore/types/streaming/__init__.py +143 -0
  53. gcore/types/streaming/ai_contentmoderation_casm.py +39 -0
  54. gcore/types/streaming/ai_contentmoderation_hardnudity.py +54 -0
  55. gcore/types/streaming/ai_contentmoderation_nsfw.py +39 -0
  56. gcore/types/streaming/ai_contentmoderation_softnudity.py +66 -0
  57. gcore/types/streaming/ai_contentmoderation_sport.py +39 -0
  58. gcore/types/streaming/ai_contentmoderation_weapon.py +39 -0
  59. gcore/types/streaming/ai_task.py +205 -0
  60. gcore/types/streaming/ai_task_cancel_response.py +12 -0
  61. gcore/types/streaming/ai_task_create_params.py +168 -0
  62. gcore/types/streaming/ai_task_create_response.py +10 -0
  63. gcore/types/streaming/ai_task_get_ai_settings_params.py +27 -0
  64. gcore/types/streaming/ai_task_get_ai_settings_response.py +12 -0
  65. gcore/types/streaming/ai_task_get_response.py +313 -0
  66. gcore/types/streaming/ai_task_list_params.py +50 -0
  67. gcore/types/streaming/broadcast.py +71 -0
  68. gcore/types/streaming/broadcast_create_params.py +76 -0
  69. gcore/types/streaming/broadcast_list_params.py +12 -0
  70. gcore/types/streaming/broadcast_spectators_count.py +12 -0
  71. gcore/types/streaming/broadcast_update_params.py +76 -0
  72. gcore/types/streaming/clip.py +78 -0
  73. gcore/types/streaming/create_video_param.py +214 -0
  74. gcore/types/streaming/direct_upload_parameters.py +33 -0
  75. gcore/types/streaming/directories_tree.py +19 -0
  76. gcore/types/streaming/directory_base.py +31 -0
  77. gcore/types/streaming/directory_create_params.py +15 -0
  78. gcore/types/streaming/directory_get_response.py +19 -0
  79. gcore/types/streaming/directory_item.py +13 -0
  80. gcore/types/streaming/directory_update_params.py +18 -0
  81. gcore/types/streaming/directory_video.py +13 -0
  82. gcore/types/streaming/ffprobes.py +25 -0
  83. gcore/types/streaming/max_stream_series.py +21 -0
  84. gcore/types/streaming/meet_series.py +23 -0
  85. gcore/types/streaming/player.py +114 -0
  86. gcore/types/streaming/player_create_params.py +18 -0
  87. gcore/types/streaming/player_list_params.py +12 -0
  88. gcore/types/streaming/player_param.py +114 -0
  89. gcore/types/streaming/player_update_params.py +18 -0
  90. gcore/types/streaming/playlist.py +102 -0
  91. gcore/types/streaming/playlist_create.py +12 -0
  92. gcore/types/streaming/playlist_create_params.py +102 -0
  93. gcore/types/streaming/playlist_list_params.py +12 -0
  94. gcore/types/streaming/playlist_list_videos_response.py +10 -0
  95. gcore/types/streaming/playlist_update_params.py +102 -0
  96. gcore/types/streaming/playlist_video.py +215 -0
  97. gcore/types/streaming/popular_videos.py +17 -0
  98. gcore/types/streaming/quality_set_set_default_params.py +23 -0
  99. gcore/types/streaming/quality_sets.py +57 -0
  100. gcore/types/streaming/restream.py +37 -0
  101. gcore/types/streaming/restream_create_params.py +41 -0
  102. gcore/types/streaming/restream_list_params.py +12 -0
  103. gcore/types/streaming/restream_update_params.py +41 -0
  104. gcore/types/streaming/statistic_get_ffprobes_params.py +22 -0
  105. gcore/types/streaming/statistic_get_live_unique_viewers_params.py +26 -0
  106. gcore/types/streaming/statistic_get_live_unique_viewers_response.py +25 -0
  107. gcore/types/streaming/statistic_get_live_watch_time_cdn_params.py +32 -0
  108. gcore/types/streaming/statistic_get_live_watch_time_total_cdn_params.py +30 -0
  109. gcore/types/streaming/statistic_get_max_streams_series_params.py +20 -0
  110. gcore/types/streaming/statistic_get_meet_series_params.py +20 -0
  111. gcore/types/streaming/statistic_get_popular_videos_params.py +15 -0
  112. gcore/types/streaming/statistic_get_storage_series_params.py +20 -0
  113. gcore/types/streaming/statistic_get_stream_series_params.py +20 -0
  114. gcore/types/streaming/statistic_get_unique_viewers_cdn_params.py +27 -0
  115. gcore/types/streaming/statistic_get_unique_viewers_params.py +34 -0
  116. gcore/types/streaming/statistic_get_views_by_browsers_params.py +15 -0
  117. gcore/types/streaming/statistic_get_views_by_country_params.py +15 -0
  118. gcore/types/streaming/statistic_get_views_by_hostname_params.py +15 -0
  119. gcore/types/streaming/statistic_get_views_by_operating_system_params.py +15 -0
  120. gcore/types/streaming/statistic_get_views_by_referer_params.py +15 -0
  121. gcore/types/streaming/statistic_get_views_by_region_params.py +15 -0
  122. gcore/types/streaming/statistic_get_views_heatmap_params.py +21 -0
  123. gcore/types/streaming/statistic_get_views_params.py +34 -0
  124. gcore/types/streaming/statistic_get_vod_storage_volume_params.py +17 -0
  125. gcore/types/streaming/statistic_get_vod_transcoding_duration_params.py +17 -0
  126. gcore/types/streaming/statistic_get_vod_unique_viewers_cdn_params.py +26 -0
  127. gcore/types/streaming/statistic_get_vod_watch_time_cdn_params.py +32 -0
  128. gcore/types/streaming/statistic_get_vod_watch_time_total_cdn_params.py +30 -0
  129. gcore/types/streaming/statistic_get_vod_watch_time_total_cdn_response.py +22 -0
  130. gcore/types/streaming/storage_series.py +23 -0
  131. gcore/types/streaming/stream.py +420 -0
  132. gcore/types/streaming/stream_create_clip_params.py +48 -0
  133. gcore/types/streaming/stream_create_params.py +165 -0
  134. gcore/types/streaming/stream_list_clips_response.py +10 -0
  135. gcore/types/streaming/stream_list_params.py +18 -0
  136. gcore/types/streaming/stream_series.py +21 -0
  137. gcore/types/streaming/stream_start_recording_response.py +76 -0
  138. gcore/types/streaming/stream_update_params.py +169 -0
  139. gcore/types/streaming/streams/__init__.py +11 -0
  140. gcore/types/streaming/streams/overlay.py +43 -0
  141. gcore/types/streaming/streams/overlay_create_params.py +36 -0
  142. gcore/types/streaming/streams/overlay_create_response.py +10 -0
  143. gcore/types/streaming/streams/overlay_list_response.py +10 -0
  144. gcore/types/streaming/streams/overlay_update_multiple_params.py +39 -0
  145. gcore/types/streaming/streams/overlay_update_multiple_response.py +10 -0
  146. gcore/types/streaming/streams/overlay_update_params.py +33 -0
  147. gcore/types/streaming/subtitle.py +12 -0
  148. gcore/types/streaming/subtitle_base.py +18 -0
  149. gcore/types/streaming/subtitle_base_param.py +18 -0
  150. gcore/types/streaming/unique_viewers.py +35 -0
  151. gcore/types/streaming/unique_viewers_cdn.py +17 -0
  152. gcore/types/streaming/video.py +444 -0
  153. gcore/types/streaming/video_create_multiple_params.py +28 -0
  154. gcore/types/streaming/video_create_multiple_response.py +10 -0
  155. gcore/types/streaming/video_create_params.py +13 -0
  156. gcore/types/streaming/video_create_response.py +10 -0
  157. gcore/types/streaming/video_list_names_params.py +13 -0
  158. gcore/types/streaming/video_list_params.py +59 -0
  159. gcore/types/streaming/video_update_params.py +214 -0
  160. gcore/types/streaming/videos/__init__.py +7 -0
  161. gcore/types/streaming/videos/subtitle_create_params.py +17 -0
  162. gcore/types/streaming/videos/subtitle_list_response.py +10 -0
  163. gcore/types/streaming/videos/subtitle_update_params.py +20 -0
  164. gcore/types/streaming/views.py +35 -0
  165. gcore/types/streaming/views_by_browser.py +17 -0
  166. gcore/types/streaming/views_by_country.py +19 -0
  167. gcore/types/streaming/views_by_hostname.py +17 -0
  168. gcore/types/streaming/views_by_operating_system.py +17 -0
  169. gcore/types/streaming/views_by_referer.py +17 -0
  170. gcore/types/streaming/views_by_region.py +19 -0
  171. gcore/types/streaming/views_heatmap.py +19 -0
  172. gcore/types/streaming/vod_statistics_series.py +21 -0
  173. gcore/types/streaming/vod_total_stream_duration_series.py +22 -0
  174. gcore/types/waap/domains/custom_rule_create_params.py +4 -4
  175. gcore/types/waap/domains/custom_rule_update_params.py +4 -4
  176. gcore/types/waap/ip_info_get_blocked_requests_params.py +5 -1
  177. gcore/types/waap/ip_info_get_counts_params.py +2 -1
  178. gcore/types/waap/ip_info_get_top_sessions_params.py +5 -1
  179. gcore/types/waap/ip_info_get_top_urls_params.py +5 -1
  180. gcore/types/waap/ip_info_get_top_user_agents_params.py +5 -1
  181. gcore/types/waap/waap_custom_rule.py +4 -4
  182. {gcore-0.6.0.dist-info → gcore-0.8.0.dist-info}/METADATA +1 -1
  183. {gcore-0.6.0.dist-info → gcore-0.8.0.dist-info}/RECORD +185 -37
  184. {gcore-0.6.0.dist-info → gcore-0.8.0.dist-info}/WHEEL +0 -0
  185. {gcore-0.6.0.dist-info → gcore-0.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,215 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from typing_extensions import Literal
5
+
6
+ from ..._models import BaseModel
7
+
8
+ __all__ = ["PlaylistVideo"]
9
+
10
+
11
+ class PlaylistVideo(BaseModel):
12
+ name: str
13
+ """Video name"""
14
+
15
+ auto_transcribe_audio_language: Optional[Literal["disable", "auto", "<language_code>"]] = None
16
+ """Automatic creation of subtitles by transcribing the audio track. Values:
17
+
18
+ - disable – Do not transcribe.
19
+ - auto – Automatically detects the activation of the option based on the
20
+ settings in your account. If generation is activated, then automatic language
21
+ detection while transcribing.
22
+ - \\ – Transcribe from specific language. Can be used to specify the exact
23
+ language spoken in the audio track, or when auto language detection fails.
24
+ Language is set by 3-letter language code according to ISO-639-2
25
+ (bibliographic code). List of languages is available in `audio_language`
26
+ attribute of API POST /streaming/ai/transcribe . Example:
27
+
28
+ ```
29
+ `auto_transcribe_audio_language`: "auto"
30
+ `auto_transcribe_audio_language`: "ger"
31
+ ```
32
+
33
+ More details:
34
+
35
+ - List of AI tasks – API
36
+ [GET /streaming/ai/tasks](https://api.gcore.com/docs/streaming/docs/api-reference/streaming/ai/get-ai-task-result)
37
+ - Add subtitles to an exist video – API
38
+ [POST /streaming/videos/{`video_id`}/subtitles](https://api.gcore.com/docs/streaming/docs/api-reference/streaming/subtitles/add-subtitle).
39
+ """
40
+
41
+ auto_translate_subtitles_language: Optional[Literal["disable", "default", "<language_codes,>"]] = None
42
+ """Automatic translation of auto-transcribed subtitles to the specified
43
+ language(s).
44
+
45
+ Can be used both together with `auto_transcribe_audio_language` option only. Use
46
+ it when you want to make automatic subtitles in languages other than the
47
+ original language in audio. Values:
48
+
49
+ - disable – Do not translate.
50
+ - default – There are 3 default languages: eng,fre,ger
51
+ - \\ – Explicit language to translate to, or list of languages separated by a
52
+ comma. Look at list of available languages in description of AI ASR task
53
+ creation. If several languages are specified for translation, a separate
54
+ subtitle will be generated for each language. Example:
55
+
56
+ ```
57
+ `auto_translate_subtitles_language`: default
58
+ `auto_translate_subtitles_language`: eng,fre,ger
59
+ ```
60
+
61
+ Please note that subtitle translation is done separately and after
62
+ transcription. Thus separate AI-tasks are created for translation.
63
+ """
64
+
65
+ client_user_id: Optional[int] = None
66
+ """Custom field where you can specify user ID in your system"""
67
+
68
+ clip_duration_seconds: Optional[int] = None
69
+ """
70
+ The length of the trimmed segment to transcode, instead of the entire length of
71
+ the video. Is only used in conjunction with specifying the start of a segment.
72
+ Transcoding duration is a number in seconds.
73
+ """
74
+
75
+ clip_start_seconds: Optional[int] = None
76
+ """
77
+ If you want to transcode only a trimmed segment of a video instead of entire
78
+ length if the video, then you can provide timecodes of starting point and
79
+ duration of a segment to process. Start encoding from is a number in seconds.
80
+ """
81
+
82
+ custom_iframe_url: Optional[str] = None
83
+ """
84
+ Deprecated. Custom URL of IFrame for video player to be used in share panel in
85
+ player. Auto generated IFrame URL provided by default
86
+ """
87
+
88
+ description: Optional[str] = None
89
+ """Video details; not visible to the end-users"""
90
+
91
+ directory_id: Optional[int] = None
92
+ """ID of the directory where the video should be uploaded. (beta)"""
93
+
94
+ origin_http_headers: Optional[str] = None
95
+ """Authorization HTTP request header.
96
+
97
+ Will be used as credentials to authenticate a request to download a file
98
+ (specified in "`origin_url`" parameter) on an external server. Syntax:
99
+ `Authorization: ` Examples:
100
+
101
+ - "`origin_http_headers`": "Authorization: Basic ..."
102
+ - "`origin_http_headers`": "Authorization: Bearer ..."
103
+ - "`origin_http_headers`": "Authorization: APIKey ..." Example of usage when
104
+ downloading a file from Google Drive:
105
+
106
+ ```
107
+ POST https://api.gcore.com/streaming/videos
108
+ "video": {
109
+ "name": "IBC 2024 intro.mp4",
110
+ "`origin_url`": "https://www.googleapis.com/drive/v3/files/...?alt=media",
111
+ "`origin_http_headers`": "Authorization: Bearer ABC"
112
+ }
113
+ ```
114
+ """
115
+
116
+ origin_url: Optional[str] = None
117
+ """
118
+ URL to an original file which you want to copy from external storage. If
119
+ specified, system will download the file and will use it as video source for
120
+ transcoding.
121
+ """
122
+
123
+ poster: Optional[str] = None
124
+ """
125
+ Poster is your own static image which can be displayed before the video starts.
126
+ After uploading the video, the system will automatically create several
127
+ screenshots (they will be stored in "screenshots" attribute) from which you can
128
+ select an default screenshot. This "poster" field is for uploading your own
129
+ image. Also use attribute "`screenshot_id`" to select poster as a default
130
+ screnshot. Attribute accepts single image as base64-encoded string
131
+ [(RFC 2397 – The "data" URL scheme)](https://www.rfc-editor.org/rfc/rfc2397). In
132
+ format: `data:[];base64,` MIME-types are image/jpeg, image/webp, and image/png
133
+ and file sizes up to 1Mb. Examples:
134
+
135
+ - `data:image/jpeg;base64,/9j/4AA...qf/2Q==`
136
+ - `data:image/png;base64,iVBORw0KGg...ggg==`
137
+ - `data:image/webp;base64,UklGRt.../DgAAAAA`
138
+ """
139
+
140
+ priority: Optional[int] = None
141
+ """
142
+ Priority allows you to adjust the urgency of processing some videos before
143
+ others in your account, if your algorithm requires it. For example, when there
144
+ are very urgent video and some regular ones that can wait in the queue. Value
145
+ range, integer [-10..10]. -10 is the lowest down-priority, 10 is the highest
146
+ up-priority. Default priority is 0.
147
+ """
148
+
149
+ projection: Optional[str] = None
150
+ """Deprecated. Regulates the video format:
151
+
152
+ - **regular** — plays the video as usual
153
+ - **vr360** — plays the video in 360 degree mode
154
+ - **vr180** — plays the video in 180 degree mode
155
+ - **vr360tb** — plays the video in 3D 360 degree mode Top-Bottom.
156
+
157
+ Default is regular
158
+ """
159
+
160
+ quality_set_id: Optional[int] = None
161
+ """
162
+ Custom quality set ID for transcoding, if transcoding is required according to
163
+ your conditions. Look at GET /`quality_sets` method
164
+ """
165
+
166
+ remote_poster_url: Optional[str] = None
167
+ """
168
+ Poster URL to download from external resource, instead of uploading via "poster"
169
+ attribute. It has the same restrictions as "poster" attribute.
170
+ """
171
+
172
+ remove_poster: Optional[bool] = None
173
+ """Set it to true to remove poster"""
174
+
175
+ screenshot_id: Optional[int] = None
176
+ """
177
+ Default screenshot index. Specify an ID from the "screenshots" array, so that
178
+ the URL of the required screenshot appears in the "screenshot" attribute as the
179
+ default screenshot. By default 5 static screenshots will be taken from different
180
+ places in the video after transcoding. If the video is short, there may be fewer
181
+ screenshots. Counting from 0. A value of -1 sets the default screenshot to the
182
+ URL of your own image from the "poster" attribute. Look at "screenshot"
183
+ attribute in GET /videos/{`video_id`} for details.
184
+ """
185
+
186
+ share_url: Optional[str] = None
187
+ """
188
+ Deprecated. Custom URL or iframe displayed in the link field when a user clicks
189
+ on a sharing button in player. If empty, the link field and social network
190
+ sharing is disabled
191
+ """
192
+
193
+ source_bitrate_limit: Optional[bool] = None
194
+ """
195
+ The option allows you to set the video transcoding rule so that the output
196
+ bitrate in ABR ladder is not exceeding the bitrate of the original video.
197
+
198
+ This option is for advanced users only.
199
+
200
+ By default `source_bitrate_limit: true` this option allows you to have the
201
+ output bitrate not more than in the original video, thus to transcode video
202
+ faster and to deliver it to end-viewers faster as well. At the same time, the
203
+ quality will be similar to the original. If for some reason you need more
204
+ byte-space in the output quality when encoding, you can set this option to
205
+ `source_bitrate_limit: false`. Then, when transcoding, the quality ceiling will
206
+ be raised from the bitrate of the original video to the maximum possible limit
207
+ specified in our the Product Documentation. For example, this may be needed
208
+ when:
209
+
210
+ - to improve the visual quality parameters using PSNR, SSIM, VMAF metrics,
211
+ - to improve the picture quality on dynamic scenes,
212
+ - etc. The option is applied only at the video creation stage and cannot be
213
+ changed later. If you want to re-transcode the video using new value, then you
214
+ need to create and upload a new video only.
215
+ """
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["PopularVideos", "Data"]
8
+
9
+
10
+ class Data(BaseModel):
11
+ id: str
12
+
13
+ views: int
14
+
15
+
16
+ class PopularVideos(BaseModel):
17
+ data: Optional[List[Data]] = None
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["QualitySetSetDefaultParams", "Live", "Vod"]
8
+
9
+
10
+ class QualitySetSetDefaultParams(TypedDict, total=False):
11
+ live: Live
12
+
13
+ vod: Vod
14
+
15
+
16
+ class Live(TypedDict, total=False):
17
+ id: int
18
+ """ID of the custom quality set, or "null" for the system default"""
19
+
20
+
21
+ class Vod(TypedDict, total=False):
22
+ id: int
23
+ """ID of the custom quality set, or "null" for the system default"""
@@ -0,0 +1,57 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["QualitySets", "Live", "LiveQuality", "Vod", "VodQuality"]
8
+
9
+
10
+ class LiveQuality(BaseModel):
11
+ id: Optional[int] = None
12
+ """ID of the quality"""
13
+
14
+ name: Optional[str] = None
15
+ """Name of the quality"""
16
+
17
+
18
+ class Live(BaseModel):
19
+ id: Optional[int] = None
20
+ """ID of the custom quality set"""
21
+
22
+ default: Optional[bool] = None
23
+ """States if this preset is default for a client profile"""
24
+
25
+ name: Optional[str] = None
26
+ """Human readable name of the quality set"""
27
+
28
+ qualities: Optional[List[LiveQuality]] = None
29
+ """Array of associated qualities"""
30
+
31
+
32
+ class VodQuality(BaseModel):
33
+ id: Optional[int] = None
34
+ """ID of the quality"""
35
+
36
+ name: Optional[str] = None
37
+ """Name of the quality"""
38
+
39
+
40
+ class Vod(BaseModel):
41
+ id: Optional[int] = None
42
+ """ID of the custom quality set"""
43
+
44
+ default: Optional[bool] = None
45
+ """States if this preset is default for a client profile"""
46
+
47
+ name: Optional[str] = None
48
+ """Human readable name of the quality set"""
49
+
50
+ qualities: Optional[List[VodQuality]] = None
51
+ """Array of associated qualities"""
52
+
53
+
54
+ class QualitySets(BaseModel):
55
+ live: Optional[List[Live]] = None
56
+
57
+ vod: Optional[List[Vod]] = None
@@ -0,0 +1,37 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["Restream"]
8
+
9
+
10
+ class Restream(BaseModel):
11
+ active: Optional[bool] = None
12
+ """Enables/Disables restream. Has two possible values:
13
+
14
+ - **true** — restream is enabled and can be started
15
+ - **false** — restream is disabled.
16
+
17
+ Default is true
18
+ """
19
+
20
+ client_user_id: Optional[int] = None
21
+ """Custom field where you can specify user ID in your system"""
22
+
23
+ live: Optional[bool] = None
24
+ """Indicates that the stream is being published. Has two possible values:
25
+
26
+ - **true** — stream is being published
27
+ - **false** — stream isn't published
28
+ """
29
+
30
+ name: Optional[str] = None
31
+ """Restream name"""
32
+
33
+ stream_id: Optional[int] = None
34
+ """ID of the stream to restream"""
35
+
36
+ uri: Optional[str] = None
37
+ """A URL to push the stream to"""
@@ -0,0 +1,41 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["RestreamCreateParams", "Restream"]
8
+
9
+
10
+ class RestreamCreateParams(TypedDict, total=False):
11
+ restream: Restream
12
+
13
+
14
+ class Restream(TypedDict, total=False):
15
+ active: bool
16
+ """Enables/Disables restream. Has two possible values:
17
+
18
+ - **true** — restream is enabled and can be started
19
+ - **false** — restream is disabled.
20
+
21
+ Default is true
22
+ """
23
+
24
+ client_user_id: int
25
+ """Custom field where you can specify user ID in your system"""
26
+
27
+ live: bool
28
+ """Indicates that the stream is being published. Has two possible values:
29
+
30
+ - **true** — stream is being published
31
+ - **false** — stream isn't published
32
+ """
33
+
34
+ name: str
35
+ """Restream name"""
36
+
37
+ stream_id: int
38
+ """ID of the stream to restream"""
39
+
40
+ uri: str
41
+ """A URL to push the stream to"""
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["RestreamListParams"]
8
+
9
+
10
+ class RestreamListParams(TypedDict, total=False):
11
+ page: int
12
+ """Query parameter. Use it to list the paginated content"""
@@ -0,0 +1,41 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["RestreamUpdateParams", "Restream"]
8
+
9
+
10
+ class RestreamUpdateParams(TypedDict, total=False):
11
+ restream: Restream
12
+
13
+
14
+ class Restream(TypedDict, total=False):
15
+ active: bool
16
+ """Enables/Disables restream. Has two possible values:
17
+
18
+ - **true** — restream is enabled and can be started
19
+ - **false** — restream is disabled.
20
+
21
+ Default is true
22
+ """
23
+
24
+ client_user_id: int
25
+ """Custom field where you can specify user ID in your system"""
26
+
27
+ live: bool
28
+ """Indicates that the stream is being published. Has two possible values:
29
+
30
+ - **true** — stream is being published
31
+ - **false** — stream isn't published
32
+ """
33
+
34
+ name: str
35
+ """Restream name"""
36
+
37
+ stream_id: int
38
+ """ID of the stream to restream"""
39
+
40
+ uri: str
41
+ """A URL to push the stream to"""
@@ -0,0 +1,22 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, TypedDict
6
+
7
+ __all__ = ["StatisticGetFfprobesParams"]
8
+
9
+
10
+ class StatisticGetFfprobesParams(TypedDict, total=False):
11
+ date_from: Required[str]
12
+ """Start of time frame. Format is ISO 8601."""
13
+
14
+ date_to: Required[str]
15
+ """End of time frame. Datetime in ISO 8601 format."""
16
+
17
+ stream_id: Required[str]
18
+ """Stream ID"""
19
+
20
+ interval: int
21
+
22
+ units: Literal["second", "minute", "hour", "day", "week", "month"]
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["StatisticGetLiveUniqueViewersParams"]
10
+
11
+
12
+ class StatisticGetLiveUniqueViewersParams(TypedDict, total=False):
13
+ from_: Required[Annotated[str, PropertyInfo(alias="from")]]
14
+ """Start of time frame. Format is date time in ISO 8601"""
15
+
16
+ to: Required[str]
17
+ """End of time frame. Format is date time in ISO 8601"""
18
+
19
+ client_user_id: int
20
+ """Filter by "`client_user_id`" """
21
+
22
+ granularity: Literal["1m", "5m", "15m", "1h", "1d"]
23
+ """Specifies the time interval for grouping data"""
24
+
25
+ stream_id: int
26
+ """Filter by "`stream_id`" """
@@ -0,0 +1,25 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from ..._models import BaseModel
7
+
8
+ __all__ = [
9
+ "StatisticGetLiveUniqueViewersResponse",
10
+ "StatisticGetLiveUniqueViewersResponseItem",
11
+ "StatisticGetLiveUniqueViewersResponseItemMetrics",
12
+ ]
13
+
14
+
15
+ class StatisticGetLiveUniqueViewersResponseItemMetrics(BaseModel):
16
+ streams: List[int]
17
+
18
+
19
+ class StatisticGetLiveUniqueViewersResponseItem(BaseModel):
20
+ client: int
21
+
22
+ metrics: StatisticGetLiveUniqueViewersResponseItemMetrics
23
+
24
+
25
+ StatisticGetLiveUniqueViewersResponse: TypeAlias = List[StatisticGetLiveUniqueViewersResponseItem]
@@ -0,0 +1,32 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["StatisticGetLiveWatchTimeCdnParams"]
10
+
11
+
12
+ class StatisticGetLiveWatchTimeCdnParams(TypedDict, total=False):
13
+ from_: Required[Annotated[str, PropertyInfo(alias="from")]]
14
+ """Start of the time period for counting minutes of watching.
15
+
16
+ Format is date time in ISO 8601.
17
+ """
18
+
19
+ client_user_id: int
20
+ """Filter by field "`client_user_id`" """
21
+
22
+ granularity: Literal["1m", "5m", "15m", "1h", "1d", "1mo"]
23
+ """Data is grouped by the specified time interval"""
24
+
25
+ stream_id: int
26
+ """Filter by `stream_id`"""
27
+
28
+ to: str
29
+ """End of time frame.
30
+
31
+ Datetime in ISO 8601 format. If omitted, then the current time is taken
32
+ """
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["StatisticGetLiveWatchTimeTotalCdnParams"]
10
+
11
+
12
+ class StatisticGetLiveWatchTimeTotalCdnParams(TypedDict, total=False):
13
+ client_user_id: int
14
+ """Filter by field "`client_user_id`" """
15
+
16
+ from_: Annotated[str, PropertyInfo(alias="from")]
17
+ """Start of the time period for counting minutes of watching.
18
+
19
+ Format is date time in ISO 8601. If omitted, the earliest start time for viewing
20
+ is taken
21
+ """
22
+
23
+ stream_id: int
24
+ """Filter by `stream_id`"""
25
+
26
+ to: str
27
+ """End of time frame.
28
+
29
+ Datetime in ISO 8601 format. If missed, then the current time is taken
30
+ """
@@ -0,0 +1,20 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["StatisticGetMaxStreamsSeriesParams"]
10
+
11
+
12
+ class StatisticGetMaxStreamsSeriesParams(TypedDict, total=False):
13
+ from_: Required[Annotated[str, PropertyInfo(alias="from")]]
14
+ """Start of time frame. Datetime in ISO 8601 format."""
15
+
16
+ to: Required[str]
17
+ """End of time frame. Datetime in ISO 8601 format."""
18
+
19
+ granularity: Literal["1m", "5m", "15m", "1h", "1d"]
20
+ """specifies the time interval for grouping data"""
@@ -0,0 +1,20 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["StatisticGetMeetSeriesParams"]
10
+
11
+
12
+ class StatisticGetMeetSeriesParams(TypedDict, total=False):
13
+ from_: Required[Annotated[str, PropertyInfo(alias="from")]]
14
+ """Start of time frame. Datetime in ISO 8601 format."""
15
+
16
+ to: Required[str]
17
+ """End of time frame. Datetime in ISO 8601 format."""
18
+
19
+ granularity: Literal["1m", "5m", "15m", "1h", "1d"]
20
+ """specifies the time interval for grouping data"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["StatisticGetPopularVideosParams"]
8
+
9
+
10
+ class StatisticGetPopularVideosParams(TypedDict, total=False):
11
+ date_from: Required[str]
12
+ """Start of time frame. Datetime in ISO 8601 format."""
13
+
14
+ date_to: Required[str]
15
+ """End of time frame. Datetime in ISO 8601 format."""
@@ -0,0 +1,20 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["StatisticGetStorageSeriesParams"]
10
+
11
+
12
+ class StatisticGetStorageSeriesParams(TypedDict, total=False):
13
+ from_: Required[Annotated[str, PropertyInfo(alias="from")]]
14
+ """Start of time frame. Datetime in ISO 8601 format."""
15
+
16
+ to: Required[str]
17
+ """End of time frame. Datetime in ISO 8601 format."""
18
+
19
+ granularity: Literal["1m", "5m", "15m", "1h", "1d"]
20
+ """specifies the time interval for grouping data"""