gcore 0.10.0__py3-none-any.whl → 0.12.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 (320) hide show
  1. gcore/_base_client.py +3 -3
  2. gcore/_client.py +18 -0
  3. gcore/_compat.py +48 -48
  4. gcore/_models.py +41 -41
  5. gcore/_types.py +35 -1
  6. gcore/_utils/__init__.py +9 -2
  7. gcore/_utils/_compat.py +45 -0
  8. gcore/_utils/_datetime_parse.py +136 -0
  9. gcore/_utils/_transform.py +11 -1
  10. gcore/_utils/_typing.py +6 -1
  11. gcore/_utils/_utils.py +0 -1
  12. gcore/_version.py +1 -1
  13. gcore/resources/__init__.py +28 -0
  14. gcore/resources/cloud/__init__.py +14 -0
  15. gcore/resources/cloud/audit_logs.py +3 -3
  16. gcore/resources/cloud/baremetal/images.py +3 -4
  17. gcore/resources/cloud/baremetal/servers.py +16 -4
  18. gcore/resources/cloud/cloud.py +32 -0
  19. gcore/resources/cloud/cost_reports.py +24 -16
  20. gcore/resources/cloud/file_shares/access_rules.py +2 -2
  21. gcore/resources/cloud/file_shares/file_shares.py +30 -14
  22. gcore/resources/cloud/floating_ips.py +196 -4
  23. gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +1 -1
  24. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +166 -190
  25. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +268 -12
  26. gcore/resources/cloud/inference/__init__.py +14 -14
  27. gcore/resources/cloud/inference/applications/__init__.py +47 -0
  28. gcore/resources/cloud/inference/applications/applications.py +134 -0
  29. gcore/resources/cloud/inference/applications/deployments.py +649 -0
  30. gcore/resources/cloud/inference/applications/templates.py +238 -0
  31. gcore/resources/cloud/inference/deployments/deployments.py +41 -22
  32. gcore/resources/cloud/inference/inference.py +32 -32
  33. gcore/resources/cloud/inference/registry_credentials.py +8 -9
  34. gcore/resources/cloud/instances/images.py +4 -4
  35. gcore/resources/cloud/instances/instances.py +254 -4
  36. gcore/resources/cloud/instances/interfaces.py +544 -0
  37. gcore/resources/cloud/k8s/__init__.py +47 -0
  38. gcore/resources/cloud/k8s/clusters/__init__.py +47 -0
  39. gcore/resources/cloud/k8s/clusters/clusters.py +1391 -0
  40. gcore/resources/cloud/k8s/clusters/nodes.py +291 -0
  41. gcore/resources/cloud/k8s/clusters/pools/__init__.py +33 -0
  42. gcore/resources/cloud/k8s/clusters/pools/nodes.py +303 -0
  43. gcore/resources/cloud/k8s/clusters/pools/pools.py +870 -0
  44. gcore/resources/cloud/k8s/flavors.py +209 -0
  45. gcore/resources/cloud/k8s/k8s.py +233 -0
  46. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +11 -12
  47. gcore/resources/cloud/load_balancers/l7_policies/rules.py +9 -10
  48. gcore/resources/cloud/load_balancers/listeners.py +18 -18
  49. gcore/resources/cloud/load_balancers/load_balancers.py +4 -4
  50. gcore/resources/cloud/load_balancers/pools/health_monitors.py +18 -6
  51. gcore/resources/cloud/load_balancers/pools/members.py +32 -2
  52. gcore/resources/cloud/load_balancers/pools/pools.py +32 -8
  53. gcore/resources/cloud/networks/networks.py +192 -4
  54. gcore/resources/cloud/networks/subnets.py +140 -8
  55. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +608 -0
  56. gcore/resources/cloud/reserved_fixed_ips/vip.py +5 -7
  57. gcore/resources/cloud/security_groups/security_groups.py +6 -6
  58. gcore/resources/cloud/tasks.py +46 -46
  59. gcore/resources/cloud/users/role_assignments.py +5 -4
  60. gcore/resources/cloud/volumes.py +1125 -223
  61. gcore/resources/dns/__init__.py +75 -0
  62. gcore/resources/dns/dns.py +374 -0
  63. gcore/resources/dns/locations.py +288 -0
  64. gcore/resources/dns/metrics.py +214 -0
  65. gcore/resources/dns/pickers/__init__.py +33 -0
  66. gcore/resources/dns/pickers/pickers.py +167 -0
  67. gcore/resources/dns/pickers/presets.py +135 -0
  68. gcore/resources/dns/zones/__init__.py +47 -0
  69. gcore/resources/{cloud/inference/models.py → dns/zones/dnssec.py} +80 -122
  70. gcore/resources/dns/zones/rrsets.py +1005 -0
  71. gcore/resources/dns/zones/zones.py +1493 -0
  72. gcore/resources/storage/__init__.py +75 -0
  73. gcore/resources/storage/buckets/__init__.py +61 -0
  74. gcore/resources/storage/buckets/buckets.py +470 -0
  75. gcore/resources/storage/buckets/cors.py +265 -0
  76. gcore/resources/storage/buckets/lifecycle.py +276 -0
  77. gcore/resources/storage/buckets/policy.py +345 -0
  78. gcore/resources/storage/credentials.py +221 -0
  79. gcore/resources/storage/locations.py +190 -0
  80. gcore/resources/storage/statistics.py +364 -0
  81. gcore/resources/storage/storage.py +1046 -0
  82. gcore/resources/streaming/ai_tasks.py +56 -70
  83. gcore/resources/streaming/playlists.py +18 -18
  84. gcore/resources/streaming/quality_sets.py +8 -8
  85. gcore/resources/streaming/statistics.py +4 -122
  86. gcore/resources/streaming/streams/overlays.py +6 -6
  87. gcore/resources/streaming/streams/streams.py +40 -64
  88. gcore/resources/streaming/videos/subtitles.py +32 -30
  89. gcore/resources/streaming/videos/videos.py +78 -72
  90. gcore/resources/waap/domains/advanced_rules.py +2 -2
  91. gcore/resources/waap/domains/api_paths.py +13 -13
  92. gcore/resources/waap/domains/custom_rules.py +2 -2
  93. gcore/resources/waap/domains/domains.py +4 -4
  94. gcore/resources/waap/domains/firewall_rules.py +2 -2
  95. gcore/resources/waap/domains/insight_silences.py +6 -6
  96. gcore/resources/waap/domains/insights.py +7 -7
  97. gcore/resources/waap/domains/statistics.py +47 -47
  98. gcore/types/cloud/__init__.py +2 -4
  99. gcore/types/cloud/audit_log_list_params.py +2 -1
  100. gcore/types/cloud/baremetal/image_list_params.py +3 -2
  101. gcore/types/cloud/baremetal/server_create_params.py +8 -6
  102. gcore/types/cloud/baremetal/server_list_params.py +3 -2
  103. gcore/types/cloud/baremetal/server_rebuild_params.py +2 -0
  104. gcore/types/cloud/cost_report_get_aggregated_monthly_params.py +35 -31
  105. gcore/types/cloud/cost_report_get_aggregated_params.py +26 -25
  106. gcore/types/cloud/cost_report_get_detailed_params.py +26 -25
  107. gcore/types/cloud/ddos_profile.py +13 -7
  108. gcore/types/cloud/ddos_profile_field.py +21 -8
  109. gcore/types/cloud/ddos_profile_option_list.py +7 -6
  110. gcore/types/cloud/ddos_profile_status.py +2 -2
  111. gcore/types/cloud/ddos_profile_template.py +7 -3
  112. gcore/types/cloud/ddos_profile_template_field.py +12 -3
  113. gcore/types/cloud/file_share.py +2 -2
  114. gcore/types/cloud/file_share_create_params.py +12 -6
  115. gcore/types/cloud/floating_ip_list_params.py +3 -2
  116. gcore/types/cloud/gpu_baremetal_cluster.py +101 -74
  117. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +76 -93
  118. gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +17 -10
  119. gcore/types/cloud/gpu_baremetal_cluster_list_params.py +14 -3
  120. gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +4 -2
  121. gcore/types/cloud/gpu_baremetal_clusters/__init__.py +6 -0
  122. gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_cluster_server.py +74 -0
  123. gcore/types/cloud/{gpu_baremetal_cluster_server.py → gpu_baremetal_clusters/gpu_baremetal_cluster_server_v1.py} +10 -10
  124. gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_cluster_server_v1_list.py +16 -0
  125. gcore/types/cloud/{gpu_baremetal_flavor.py → gpu_baremetal_clusters/gpu_baremetal_flavor.py} +1 -1
  126. gcore/types/cloud/{gpu_baremetal_flavor_list.py → gpu_baremetal_clusters/gpu_baremetal_flavor_list.py} +1 -1
  127. gcore/types/cloud/gpu_baremetal_clusters/server_list_params.py +75 -0
  128. gcore/types/cloud/inference/__init__.py +0 -5
  129. gcore/types/cloud/inference/applications/__init__.py +12 -0
  130. gcore/types/cloud/inference/applications/deployment_create_params.py +68 -0
  131. gcore/types/cloud/inference/applications/deployment_patch_params.py +62 -0
  132. gcore/types/cloud/inference/applications/inference_application_deployment.py +111 -0
  133. gcore/types/cloud/inference/applications/inference_application_deployment_list.py +16 -0
  134. gcore/types/cloud/inference/applications/inference_application_template.py +94 -0
  135. gcore/types/cloud/inference/applications/inference_application_template_list.py +16 -0
  136. gcore/types/cloud/inference/deployment_create_params.py +7 -6
  137. gcore/types/cloud/inference/deployment_update_params.py +7 -6
  138. gcore/types/cloud/instance_assign_security_group_params.py +4 -2
  139. gcore/types/cloud/instance_list_params.py +3 -2
  140. gcore/types/cloud/instance_unassign_security_group_params.py +4 -2
  141. gcore/types/cloud/instances/image_list_params.py +3 -2
  142. gcore/types/cloud/k8s/__init__.py +13 -0
  143. gcore/types/cloud/k8s/cluster_create_params.py +299 -0
  144. gcore/types/cloud/k8s/cluster_delete_params.py +16 -0
  145. gcore/types/cloud/k8s/cluster_update_params.py +203 -0
  146. gcore/types/cloud/k8s/cluster_upgrade_params.py +16 -0
  147. gcore/types/cloud/k8s/clusters/__init__.py +10 -0
  148. gcore/types/cloud/k8s/clusters/k8s_cluster_pool.py +66 -0
  149. gcore/types/cloud/k8s/clusters/k8s_cluster_pool_list.py +16 -0
  150. gcore/types/cloud/k8s/clusters/node_list_params.py +16 -0
  151. gcore/types/cloud/k8s/clusters/pool_create_params.py +53 -0
  152. gcore/types/cloud/k8s/clusters/pool_resize_params.py +18 -0
  153. gcore/types/cloud/k8s/clusters/pool_update_params.py +34 -0
  154. gcore/types/cloud/k8s/clusters/pools/__init__.py +5 -0
  155. gcore/types/cloud/k8s/clusters/pools/node_list_params.py +18 -0
  156. gcore/types/cloud/k8s/flavor_list_params.py +19 -0
  157. gcore/types/cloud/k8s/k8s_cluster.py +209 -0
  158. gcore/types/cloud/k8s/k8s_cluster_certificate.py +13 -0
  159. gcore/types/cloud/k8s/k8s_cluster_kubeconfig.py +19 -0
  160. gcore/types/cloud/k8s/k8s_cluster_list.py +16 -0
  161. gcore/types/cloud/k8s_cluster_version.py +10 -0
  162. gcore/types/cloud/{gpu_baremetal_cluster_server_list.py → k8s_cluster_version_list.py} +4 -4
  163. gcore/types/cloud/load_balancer_create_params.py +23 -4
  164. gcore/types/cloud/load_balancer_list_params.py +3 -2
  165. gcore/types/cloud/load_balancers/l7_policies/rule_create_params.py +3 -2
  166. gcore/types/cloud/load_balancers/l7_policies/rule_replace_params.py +3 -2
  167. gcore/types/cloud/load_balancers/l7_policy_create_params.py +3 -2
  168. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +3 -2
  169. gcore/types/cloud/load_balancers/listener_create_params.py +4 -3
  170. gcore/types/cloud/load_balancers/listener_update_params.py +5 -3
  171. gcore/types/cloud/load_balancers/pool_create_params.py +19 -1
  172. gcore/types/cloud/load_balancers/pool_update_params.py +19 -1
  173. gcore/types/cloud/load_balancers/pools/member_add_params.py +19 -1
  174. gcore/types/cloud/member.py +19 -1
  175. gcore/types/cloud/network_list_params.py +3 -2
  176. gcore/types/cloud/networks/subnet_create_params.py +3 -2
  177. gcore/types/cloud/networks/subnet_list_params.py +3 -2
  178. gcore/types/cloud/networks/subnet_update_params.py +3 -2
  179. gcore/types/cloud/project.py +9 -9
  180. gcore/types/cloud/reserved_fixed_ips/vip_replace_connected_ports_params.py +3 -2
  181. gcore/types/cloud/reserved_fixed_ips/vip_update_connected_ports_params.py +3 -2
  182. gcore/types/cloud/security_group_create_params.py +4 -2
  183. gcore/types/cloud/security_group_list_params.py +3 -2
  184. gcore/types/cloud/task_id_list.py +8 -1
  185. gcore/types/cloud/task_list_params.py +23 -23
  186. gcore/types/cloud/usage_report_get_params.py +26 -25
  187. gcore/types/cloud/users/role_assignment.py +2 -1
  188. gcore/types/cloud/users/role_assignment_create_params.py +4 -2
  189. gcore/types/cloud/users/role_assignment_update_params.py +4 -2
  190. gcore/types/cloud/volume_list_params.py +3 -2
  191. gcore/types/dns/__init__.py +31 -0
  192. gcore/types/dns/dns_get_account_overview_response.py +21 -0
  193. gcore/types/dns/dns_label_name.py +13 -0
  194. gcore/types/dns/dns_location_translations.py +11 -0
  195. gcore/types/dns/dns_lookup_params.py +15 -0
  196. gcore/types/dns/dns_lookup_response.py +21 -0
  197. gcore/types/dns/dns_name_server.py +17 -0
  198. gcore/types/dns/location_list_continents_response.py +10 -0
  199. gcore/types/dns/location_list_countries_response.py +10 -0
  200. gcore/types/dns/location_list_regions_response.py +10 -0
  201. gcore/types/dns/location_list_response.py +16 -0
  202. gcore/types/dns/metric_list_params.py +24 -0
  203. gcore/types/dns/metric_list_response.py +7 -0
  204. gcore/types/dns/picker_list_response.py +10 -0
  205. gcore/types/dns/pickers/__init__.py +5 -0
  206. gcore/types/dns/pickers/preset_list_response.py +10 -0
  207. gcore/types/dns/zone_check_delegation_status_response.py +20 -0
  208. gcore/types/dns/zone_create_params.py +59 -0
  209. gcore/types/dns/zone_create_response.py +13 -0
  210. gcore/types/dns/zone_export_response.py +11 -0
  211. gcore/types/dns/zone_get_response.py +106 -0
  212. gcore/types/dns/zone_get_statistics_params.py +43 -0
  213. gcore/types/dns/zone_get_statistics_response.py +19 -0
  214. gcore/types/dns/zone_import_params.py +32 -0
  215. gcore/types/dns/zone_import_response.py +26 -0
  216. gcore/types/dns/zone_list_params.py +57 -0
  217. gcore/types/dns/zone_list_response.py +105 -0
  218. gcore/types/dns/zone_replace_params.py +61 -0
  219. gcore/types/dns/zones/__init__.py +15 -0
  220. gcore/types/dns/zones/dns_failover_log.py +19 -0
  221. gcore/types/dns/zones/dns_output_rrset.py +123 -0
  222. gcore/types/dns/zones/dnssec_get_response.py +38 -0
  223. gcore/types/dns/zones/dnssec_update_params.py +11 -0
  224. gcore/types/dns/zones/dnssec_update_response.py +38 -0
  225. gcore/types/dns/zones/rrset_create_params.py +82 -0
  226. gcore/types/dns/zones/rrset_get_failover_logs_params.py +21 -0
  227. gcore/types/dns/zones/rrset_get_failover_logs_response.py +15 -0
  228. gcore/types/dns/zones/rrset_list_params.py +21 -0
  229. gcore/types/dns/zones/rrset_list_response.py +14 -0
  230. gcore/types/dns/zones/rrset_replace_params.py +82 -0
  231. gcore/types/security/client_profile.py +1 -1
  232. gcore/types/security/profile_create_params.py +2 -2
  233. gcore/types/security/profile_recreate_params.py +2 -2
  234. gcore/types/security/profile_replace_params.py +2 -2
  235. gcore/types/storage/__init__.py +21 -0
  236. gcore/types/storage/bucket.py +15 -0
  237. gcore/types/storage/bucket_list_params.py +15 -0
  238. gcore/types/storage/buckets/__init__.py +9 -0
  239. gcore/types/storage/buckets/bucket_cors.py +18 -0
  240. gcore/types/storage/buckets/bucket_policy.py +7 -0
  241. gcore/types/storage/buckets/cor_create_params.py +17 -0
  242. gcore/types/storage/buckets/lifecycle_create_params.py +18 -0
  243. gcore/types/storage/buckets/policy_get_response.py +7 -0
  244. gcore/types/storage/credential_recreate_params.py +36 -0
  245. gcore/types/storage/location.py +24 -0
  246. gcore/types/storage/location_list_params.py +13 -0
  247. gcore/types/storage/statistic_get_usage_aggregated_params.py +24 -0
  248. gcore/types/storage/statistic_get_usage_series_params.py +38 -0
  249. gcore/types/storage/statistic_get_usage_series_response.py +12 -0
  250. gcore/types/storage/storage.py +101 -0
  251. gcore/types/storage/storage_create_params.py +44 -0
  252. gcore/types/storage/storage_list_params.py +39 -0
  253. gcore/types/storage/storage_restore_params.py +11 -0
  254. gcore/types/storage/storage_update_params.py +18 -0
  255. gcore/types/storage/usage_series.py +201 -0
  256. gcore/types/storage/usage_total.py +54 -0
  257. gcore/types/streaming/__init__.py +0 -4
  258. gcore/types/streaming/ai_contentmoderation_hardnudity.py +1 -1
  259. gcore/types/streaming/ai_contentmoderation_nsfw.py +1 -1
  260. gcore/types/streaming/ai_contentmoderation_softnudity.py +1 -1
  261. gcore/types/streaming/ai_contentmoderation_sport.py +1 -1
  262. gcore/types/streaming/ai_task.py +1 -5
  263. gcore/types/streaming/ai_task_create_params.py +2 -2
  264. gcore/types/streaming/ai_task_get_response.py +0 -46
  265. gcore/types/streaming/clip.py +2 -1
  266. gcore/types/streaming/create_video_param.py +13 -12
  267. gcore/types/streaming/max_stream_series.py +5 -5
  268. gcore/types/streaming/playlist.py +1 -1
  269. gcore/types/streaming/playlist_create_params.py +1 -1
  270. gcore/types/streaming/playlist_update_params.py +1 -1
  271. gcore/types/streaming/playlist_video.py +13 -12
  272. gcore/types/streaming/storage_series.py +5 -5
  273. gcore/types/streaming/stream.py +86 -49
  274. gcore/types/streaming/stream_create_clip_params.py +2 -1
  275. gcore/types/streaming/stream_create_params.py +9 -23
  276. gcore/types/streaming/stream_series.py +5 -5
  277. gcore/types/streaming/stream_update_params.py +9 -23
  278. gcore/types/streaming/video.py +53 -42
  279. gcore/types/streaming/video_update_params.py +13 -12
  280. gcore/types/streaming/vod_statistics_series.py +5 -5
  281. gcore/types/streaming/vod_total_stream_duration_series.py +3 -3
  282. gcore/types/waap/domain_list_params.py +1 -1
  283. gcore/types/waap/domain_update_params.py +1 -1
  284. gcore/types/waap/domains/advanced_rule_create_params.py +7 -4
  285. gcore/types/waap/domains/advanced_rule_update_params.py +6 -3
  286. gcore/types/waap/domains/api_path_create_params.py +4 -3
  287. gcore/types/waap/domains/api_path_list_params.py +3 -1
  288. gcore/types/waap/domains/api_path_update_params.py +5 -4
  289. gcore/types/waap/domains/custom_rule_create_params.py +13 -14
  290. gcore/types/waap/domains/custom_rule_update_params.py +12 -13
  291. gcore/types/waap/domains/firewall_rule_create_params.py +3 -2
  292. gcore/types/waap/domains/firewall_rule_update_params.py +2 -1
  293. gcore/types/waap/domains/insight_list_params.py +4 -2
  294. gcore/types/waap/domains/insight_replace_params.py +1 -1
  295. gcore/types/waap/domains/insight_silence_list_params.py +5 -3
  296. gcore/types/waap/domains/setting_update_params.py +3 -2
  297. gcore/types/waap/domains/statistic_get_ddos_info_params.py +6 -9
  298. gcore/types/waap/domains/statistic_get_events_aggregated_params.py +9 -10
  299. gcore/types/waap/domains/statistic_get_requests_series_params.py +8 -9
  300. gcore/types/waap/domains/statistic_get_traffic_series_params.py +6 -9
  301. gcore/types/waap/domains/waap_advanced_rule.py +3 -2
  302. gcore/types/waap/domains/waap_api_path.py +4 -4
  303. gcore/types/waap/domains/waap_api_scan_result.py +2 -2
  304. gcore/types/waap/domains/waap_custom_rule.py +4 -7
  305. gcore/types/waap/domains/waap_firewall_rule.py +3 -2
  306. gcore/types/waap/domains/waap_insight.py +1 -1
  307. gcore/types/waap/domains/waap_request_details.py +5 -4
  308. gcore/types/waap/waap_ip_ddos_info_model.py +3 -3
  309. gcore/types/waap/waap_rule_set.py +1 -1
  310. {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/METADATA +7 -2
  311. {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/RECORD +313 -193
  312. gcore/types/cloud/inference/inference_model.py +0 -65
  313. gcore/types/cloud/inference/inference_registry_credentials_create.py +0 -22
  314. gcore/types/cloud/inference/model_list_params.py +0 -21
  315. gcore/types/streaming/ai_contentmoderation_casm.py +0 -39
  316. gcore/types/streaming/ai_contentmoderation_weapon.py +0 -39
  317. gcore/types/streaming/meet_series.py +0 -23
  318. gcore/types/streaming/statistic_get_meet_series_params.py +0 -20
  319. {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/WHEEL +0 -0
  320. {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/licenses/LICENSE +0 -0
@@ -16,16 +16,12 @@ __all__ = [
16
16
  "AITaskGetResponseResultAIResultsTranscribeSubtitle",
17
17
  "AITaskGetResponseResultAIResultsContentmoderationSport",
18
18
  "AITaskGetResponseResultAIResultsContentmoderationSportFrame",
19
- "AITaskGetResponseResultAIResultsContentmoderationWeapon",
20
- "AITaskGetResponseResultAIResultsContentmoderationWeaponFrame",
21
19
  "AITaskGetResponseResultAIResultsContentmoderationNsfw",
22
20
  "AITaskGetResponseResultAIResultsContentmoderationNsfwFrame",
23
21
  "AITaskGetResponseResultAIResultsContentmoderationHardnudity",
24
22
  "AITaskGetResponseResultAIResultsContentmoderationHardnudityFrame",
25
23
  "AITaskGetResponseResultAIResultsContentmoderationSoftnudity",
26
24
  "AITaskGetResponseResultAIResultsContentmoderationSoftnudityFrame",
27
- "AITaskGetResponseResultAIResultsContentmoderationCasm",
28
- "AITaskGetResponseResultAIResultsContentmoderationCasmFrame",
29
25
  "AITaskGetResponseResultAIResultsFailure",
30
26
  ]
31
27
 
@@ -157,26 +153,6 @@ class AITaskGetResponseResultAIResultsContentmoderationSport(BaseModel):
157
153
  """A boolean value whether any sports were detected"""
158
154
 
159
155
 
160
- class AITaskGetResponseResultAIResultsContentmoderationWeaponFrame(BaseModel):
161
- confidence: Optional[float] = None
162
- """Percentage of probability of identifying the object"""
163
-
164
- frame_number: Optional[int] = FieldInfo(alias="frame-number", default=None)
165
- """Video frame number where object was found"""
166
-
167
- label: Optional[str] = None
168
- """Type of detected object"""
169
-
170
-
171
- class AITaskGetResponseResultAIResultsContentmoderationWeapon(BaseModel):
172
- detection_results: Optional[List[Literal["gun", "heavy weapon", "knife"]]] = None
173
-
174
- frames: Optional[List[AITaskGetResponseResultAIResultsContentmoderationWeaponFrame]] = None
175
-
176
- weapon_detected: Optional[bool] = None
177
- """A boolean value whether any weapon was detected"""
178
-
179
-
180
156
  class AITaskGetResponseResultAIResultsContentmoderationNsfwFrame(BaseModel):
181
157
  confidence: Optional[float] = None
182
158
  """Percentage of probability of identifying the object"""
@@ -271,26 +247,6 @@ class AITaskGetResponseResultAIResultsContentmoderationSoftnudity(BaseModel):
271
247
  """A boolean value whether any nudity and other body part was detected"""
272
248
 
273
249
 
274
- class AITaskGetResponseResultAIResultsContentmoderationCasmFrame(BaseModel):
275
- confidence: Optional[float] = None
276
- """Percentage of probability of identifying the object"""
277
-
278
- frame_number: Optional[int] = FieldInfo(alias="frame-number", default=None)
279
- """Video frame number where object was found"""
280
-
281
- label: Optional[str] = None
282
- """Type of detected object"""
283
-
284
-
285
- class AITaskGetResponseResultAIResultsContentmoderationCasm(BaseModel):
286
- child_pornography_detected: Optional[bool] = None
287
- """A boolean value whether child pornography was detected"""
288
-
289
- detection_results: Optional[List[Literal["0-2", "3-9", "10-19"]]] = None
290
-
291
- frames: Optional[List[AITaskGetResponseResultAIResultsContentmoderationCasmFrame]] = None
292
-
293
-
294
250
  class AITaskGetResponseResultAIResultsFailure(BaseModel):
295
251
  error: str
296
252
 
@@ -298,11 +254,9 @@ class AITaskGetResponseResultAIResultsFailure(BaseModel):
298
254
  AITaskGetResponseResult: TypeAlias = Union[
299
255
  AITaskGetResponseResultAIResultsTranscribe,
300
256
  AITaskGetResponseResultAIResultsContentmoderationSport,
301
- AITaskGetResponseResultAIResultsContentmoderationWeapon,
302
257
  AITaskGetResponseResultAIResultsContentmoderationNsfw,
303
258
  AITaskGetResponseResultAIResultsContentmoderationHardnudity,
304
259
  AITaskGetResponseResultAIResultsContentmoderationSoftnudity,
305
- AITaskGetResponseResultAIResultsContentmoderationCasm,
306
260
  AITaskGetResponseResultAIResultsFailure,
307
261
  ]
308
262
 
@@ -38,7 +38,8 @@ class Clip(BaseModel):
38
38
  deleted from memory and is no longer available via the link. You need to create
39
39
  a new segment, or use `vod_required: true` attribute. If value is omitted, then
40
40
  expiration is counted as +3600 seconds (1 hour) to the end of the clip (i.e.
41
- `unix timestamp = + + 3600`). Allowed range: 1m <= expiration <= 4h. Example:
41
+ `unix timestamp = <start> + <duration> + 3600`). Allowed range: 1m <= expiration
42
+ <= 4h. Example:
42
43
  `24.05.2024 14:00:00 (GMT) + 60 seconds of duration + 3600 seconds of expiration = 24.05.2024 15:01:00 (GMT) is Unix timestamp = 1716562860`
43
44
  """
44
45
 
@@ -25,16 +25,16 @@ class CreateVideoParam(TypedDict, total=False):
25
25
  attribute of API POST /streaming/ai/transcribe . Example:
26
26
 
27
27
  ```
28
- `auto_transcribe_audio_language`: "auto"
29
- `auto_transcribe_audio_language`: "ger"
28
+ auto_transcribe_audio_language: "auto"
29
+ auto_transcribe_audio_language: "ger"
30
30
  ```
31
31
 
32
32
  More details:
33
33
 
34
34
  - List of AI tasks – API
35
- [GET /streaming/ai/tasks](https://api.gcore.com/docs/streaming/docs/api-reference/streaming/ai/get-ai-task-result)
35
+ [GET /streaming/ai/tasks](/docs/api-reference/streaming/ai/get-list-of-ai-tasks)
36
36
  - Add subtitles to an exist video – API
37
- [POST /streaming/videos/{`video_id`}/subtitles](https://api.gcore.com/docs/streaming/docs/api-reference/streaming/subtitles/add-subtitle).
37
+ [POST /streaming/videos/{`video_id`}/subtitles](/docs/api-reference/streaming/subtitles/add-subtitle).
38
38
  """
39
39
 
40
40
  auto_translate_subtitles_language: Literal["disable", "default", "<language_codes,>"]
@@ -53,8 +53,8 @@ class CreateVideoParam(TypedDict, total=False):
53
53
  subtitle will be generated for each language. Example:
54
54
 
55
55
  ```
56
- `auto_translate_subtitles_language`: default
57
- `auto_translate_subtitles_language`: eng,fre,ger
56
+ auto_translate_subtitles_language: default
57
+ auto_translate_subtitles_language: eng,fre,ger
58
58
  ```
59
59
 
60
60
  Please note that subtitle translation is done separately and after
@@ -95,7 +95,7 @@ class CreateVideoParam(TypedDict, total=False):
95
95
 
96
96
  Will be used as credentials to authenticate a request to download a file
97
97
  (specified in "`origin_url`" parameter) on an external server. Syntax:
98
- `Authorization: ` Examples:
98
+ `Authorization: <auth-scheme> <authorization-parameters>` Examples:
99
99
 
100
100
  - "`origin_http_headers`": "Authorization: Basic ..."
101
101
  - "`origin_http_headers`": "Authorization: Bearer ..."
@@ -104,10 +104,11 @@ class CreateVideoParam(TypedDict, total=False):
104
104
 
105
105
  ```
106
106
  POST https://api.gcore.com/streaming/videos
107
+
107
108
  "video": {
108
- "name": "IBC 2024 intro.mp4",
109
- "`origin_url`": "https://www.googleapis.com/drive/v3/files/...?alt=media",
110
- "`origin_http_headers`": "Authorization: Bearer ABC"
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"
111
112
  }
112
113
  ```
113
114
  """
@@ -128,8 +129,8 @@ class CreateVideoParam(TypedDict, total=False):
128
129
  image. Also use attribute "`screenshot_id`" to select poster as a default
129
130
  screnshot. Attribute accepts single image as base64-encoded string
130
131
  [(RFC 2397 – The "data" URL scheme)](https://www.rfc-editor.org/rfc/rfc2397). In
131
- format: `data:[];base64,` MIME-types are image/jpeg, image/webp, and image/png
132
- and file sizes up to 1Mb. Examples:
132
+ format: `data:[<mediatype>];base64,<data>` MIME-types are image/jpeg,
133
+ image/webp, and image/png and file sizes up to 1Mb. Examples:
133
134
 
134
135
  - `data:image/jpeg;base64,/9j/4AA...qf/2Q==`
135
136
  - `data:image/png;base64,iVBORw0KGg...ggg==`
@@ -5,17 +5,17 @@ from typing_extensions import TypeAlias
5
5
 
6
6
  from ..._models import BaseModel
7
7
 
8
- __all__ = ["MaxStreamSeries", "MaxStreamSeryItem", "MaxStreamSeryItemMetrics"]
8
+ __all__ = ["MaxStreamSeries", "MaxStreamSeriesItem", "MaxStreamSeriesItemMetrics"]
9
9
 
10
10
 
11
- class MaxStreamSeryItemMetrics(BaseModel):
11
+ class MaxStreamSeriesItemMetrics(BaseModel):
12
12
  streams: List[int]
13
13
 
14
14
 
15
- class MaxStreamSeryItem(BaseModel):
15
+ class MaxStreamSeriesItem(BaseModel):
16
16
  client: int
17
17
 
18
- metrics: MaxStreamSeryItemMetrics
18
+ metrics: MaxStreamSeriesItemMetrics
19
19
 
20
20
 
21
- MaxStreamSeries: TypeAlias = List[MaxStreamSeryItem]
21
+ MaxStreamSeries: TypeAlias = List[MaxStreamSeriesItem]
@@ -49,7 +49,7 @@ class Playlist(BaseModel):
49
49
 
50
50
  This URL is a link to the main manifest. But you can also manually specify
51
51
  suffix-options that will allow you to change the manifest to your request:
52
- `` /playlists/{`client_id`}_{`playlist_id`}/master[-cmaf][-min-N][-max-N][-img][-(h264|hevc|av1)].m3u8 ``
52
+ `/playlists/{client_id}_{playlist_id}/master[-cmaf][-min-N][-max-N][-img][-(h264|hevc|av1)].m3u8`
53
53
  Please see the details in `hls_url` attribute of /videos/{id} method.
54
54
 
55
55
  Caution. Solely master.m3u8 (and master[-options].m3u8) is officially documented
@@ -49,7 +49,7 @@ class PlaylistCreateParams(TypedDict, total=False):
49
49
 
50
50
  This URL is a link to the main manifest. But you can also manually specify
51
51
  suffix-options that will allow you to change the manifest to your request:
52
- `` /playlists/{`client_id`}_{`playlist_id`}/master[-cmaf][-min-N][-max-N][-img][-(h264|hevc|av1)].m3u8 ``
52
+ `/playlists/{client_id}_{playlist_id}/master[-cmaf][-min-N][-max-N][-img][-(h264|hevc|av1)].m3u8`
53
53
  Please see the details in `hls_url` attribute of /videos/{id} method.
54
54
 
55
55
  Caution. Solely master.m3u8 (and master[-options].m3u8) is officially documented
@@ -49,7 +49,7 @@ class PlaylistUpdateParams(TypedDict, total=False):
49
49
 
50
50
  This URL is a link to the main manifest. But you can also manually specify
51
51
  suffix-options that will allow you to change the manifest to your request:
52
- `` /playlists/{`client_id`}_{`playlist_id`}/master[-cmaf][-min-N][-max-N][-img][-(h264|hevc|av1)].m3u8 ``
52
+ `/playlists/{client_id}_{playlist_id}/master[-cmaf][-min-N][-max-N][-img][-(h264|hevc|av1)].m3u8`
53
53
  Please see the details in `hls_url` attribute of /videos/{id} method.
54
54
 
55
55
  Caution. Solely master.m3u8 (and master[-options].m3u8) is officially documented
@@ -26,16 +26,16 @@ class PlaylistVideo(BaseModel):
26
26
  attribute of API POST /streaming/ai/transcribe . Example:
27
27
 
28
28
  ```
29
- `auto_transcribe_audio_language`: "auto"
30
- `auto_transcribe_audio_language`: "ger"
29
+ auto_transcribe_audio_language: "auto"
30
+ auto_transcribe_audio_language: "ger"
31
31
  ```
32
32
 
33
33
  More details:
34
34
 
35
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)
36
+ [GET /streaming/ai/tasks](/docs/api-reference/streaming/ai/get-list-of-ai-tasks)
37
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).
38
+ [POST /streaming/videos/{`video_id`}/subtitles](/docs/api-reference/streaming/subtitles/add-subtitle).
39
39
  """
40
40
 
41
41
  auto_translate_subtitles_language: Optional[Literal["disable", "default", "<language_codes,>"]] = None
@@ -54,8 +54,8 @@ class PlaylistVideo(BaseModel):
54
54
  subtitle will be generated for each language. Example:
55
55
 
56
56
  ```
57
- `auto_translate_subtitles_language`: default
58
- `auto_translate_subtitles_language`: eng,fre,ger
57
+ auto_translate_subtitles_language: default
58
+ auto_translate_subtitles_language: eng,fre,ger
59
59
  ```
60
60
 
61
61
  Please note that subtitle translation is done separately and after
@@ -96,7 +96,7 @@ class PlaylistVideo(BaseModel):
96
96
 
97
97
  Will be used as credentials to authenticate a request to download a file
98
98
  (specified in "`origin_url`" parameter) on an external server. Syntax:
99
- `Authorization: ` Examples:
99
+ `Authorization: <auth-scheme> <authorization-parameters>` Examples:
100
100
 
101
101
  - "`origin_http_headers`": "Authorization: Basic ..."
102
102
  - "`origin_http_headers`": "Authorization: Bearer ..."
@@ -105,10 +105,11 @@ class PlaylistVideo(BaseModel):
105
105
 
106
106
  ```
107
107
  POST https://api.gcore.com/streaming/videos
108
+
108
109
  "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"
110
+ "name": "IBC 2024 intro.mp4",
111
+ "origin_url": "https://www.googleapis.com/drive/v3/files/...?alt=media",
112
+ "origin_http_headers": "Authorization: Bearer ABC"
112
113
  }
113
114
  ```
114
115
  """
@@ -129,8 +130,8 @@ class PlaylistVideo(BaseModel):
129
130
  image. Also use attribute "`screenshot_id`" to select poster as a default
130
131
  screnshot. Attribute accepts single image as base64-encoded string
131
132
  [(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:
133
+ format: `data:[<mediatype>];base64,<data>` MIME-types are image/jpeg,
134
+ image/webp, and image/png and file sizes up to 1Mb. Examples:
134
135
 
135
136
  - `data:image/jpeg;base64,/9j/4AA...qf/2Q==`
136
137
  - `data:image/png;base64,iVBORw0KGg...ggg==`
@@ -5,19 +5,19 @@ from typing_extensions import TypeAlias
5
5
 
6
6
  from ..._models import BaseModel
7
7
 
8
- __all__ = ["StorageSeries", "StorageSeryItem", "StorageSeryItemMetrics"]
8
+ __all__ = ["StorageSeries", "StorageSeriesItem", "StorageSeriesItemMetrics"]
9
9
 
10
10
 
11
- class StorageSeryItemMetrics(BaseModel):
11
+ class StorageSeriesItemMetrics(BaseModel):
12
12
  max_volume_usage: List[int]
13
13
 
14
14
  storage: List[List[int]]
15
15
 
16
16
 
17
- class StorageSeryItem(BaseModel):
17
+ class StorageSeriesItem(BaseModel):
18
18
  client: int
19
19
 
20
- metrics: StorageSeryItemMetrics
20
+ metrics: StorageSeriesItemMetrics
21
21
 
22
22
 
23
- StorageSeries: TypeAlias = List[StorageSeryItem]
23
+ StorageSeries: TypeAlias = List[StorageSeriesItem]
@@ -89,7 +89,7 @@ class Stream(BaseModel):
89
89
  entity: video source, video id, parameters, etc. We do not use this field in any
90
90
  way when processing the stream. You can store any data in any format (string,
91
91
  json, etc), saved as a text string. Example:
92
- `` client_entity_data = '{ "`seq_id`": "1234567890", "name": "John Doe", "iat": 1516239022 }' ``
92
+ `client_entity_data = '{ "seq_id": "1234567890", "name": "John Doe", "iat": 1516239022 }'`
93
93
  """
94
94
 
95
95
  client_user_id: Optional[int] = None
@@ -168,7 +168,7 @@ class Stream(BaseModel):
168
168
  - and its possible to enable ±3 sec for LL-HLS, just ask our Support Team.
169
169
 
170
170
  It is also possible to use modifier-attributes, which are described in the
171
- "`hls_mpegts_url`" field above. If you need to get MPEGTS (.ts) chunks, look at
171
+ "`hls_mpegts_url`" field above. If you need to get MPEG-TS (.ts) chunks, look at
172
172
  the attribute "`hls_mpegts_url`".
173
173
 
174
174
  Read more information in the article "How Low Latency streaming works" in the
@@ -184,13 +184,13 @@ class Stream(BaseModel):
184
184
  hls_mpegts_url: Optional[str] = None
185
185
  """HLS output for legacy devices.
186
186
 
187
- URL for transcoded result of stream in HLS MPEGTS (.ts) format, with .m3u8 link.
188
- Low Latency support: NO. Some legacy devices or software may require MPEGTS
189
- (.ts) segments as a format for streaming, so we provide this options keeping
190
- backward compatibility with any of your existing workflows. For other cases it's
191
- better to use "`hls_cmaf_url`" instead. You can use this legacy HLSv6 format
192
- based on MPEGTS segmenter in parallel with main HLS CMAF. Both formats are
193
- sharing same segments size, manifest length (DVR), etc.
187
+ URL for transcoded result of stream in HLS MPEG-TS (.ts) format, with .m3u8
188
+ link. Low Latency support: NO. Some legacy devices or software may require
189
+ MPEG-TS (.ts) segments as a format for streaming, so we provide this options
190
+ keeping backward compatibility with any of your existing workflows. For other
191
+ cases it's better to use "`hls_cmaf_url`" instead. You can use this legacy HLSv6
192
+ format based on MPEG-TS segmenter in parallel with main HLS CMAF. Both formats
193
+ are sharing same segments size, manifest length (DVR), etc.
194
194
 
195
195
  It is also possible to use additional modifier-attributes:
196
196
 
@@ -202,8 +202,8 @@ class Stream(BaseModel):
202
202
  determine duration in seconds at the level of analyzing the logs of CDN
203
203
  requests and compare it with file size (so to use it in your analytics). Such
204
204
  modifier attributes are applied manually and added to the link obtained from
205
- this field. I.e. `` ?`get_duration_sec`=true `` Example:
206
- `https://demo.gvideo.io/mpegts/`2675_19146`/`master_mpegts`.m3u8?`get_duration_sec`=true`
205
+ this field. I.e. `<hls_url>?get_duration_sec=true` Example:
206
+ `https://demo.gvideo.io/mpegts/2675_19146/master_mpegts.m3u8?get_duration_sec=true`
207
207
 
208
208
  ```
209
209
  #EXTM3U
@@ -212,7 +212,7 @@ class Stream(BaseModel):
212
212
  ...
213
213
  #EXTINF:2.000000,
214
214
  #EXT-X-PROGRAM-DATE-TIME:2025-08-14T08:15:00
215
- seg1.ts?`duration_sec`=2
215
+ seg1.ts?duration_sec=2
216
216
  ...
217
217
  ```
218
218
  """
@@ -239,28 +239,12 @@ class Stream(BaseModel):
239
239
  with limits. That's why you may need to use this HTML web player. Please, look
240
240
  Knowledge Base for details. Example of usage on a web page:
241
241
 
242
- <iframe width="560" height="315" src="https://player.gvideo.co/streams/`2675_201693`" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
242
+ <iframe width="560" height="315" src="https://player.gvideo.co/streams/2675_201693" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
243
243
  """
244
244
 
245
245
  live: Optional[bool] = None
246
246
  """State of receiving and transcoding master stream from source by main server"""
247
247
 
248
- low_latency_enabled: Optional[bool] = None
249
- """
250
- Deprecated, always returns "true". The only exception is that the attribute can
251
- only be used by clients that have previously used the old stream format. This
252
- method is outdated since we've made it easier to manage streams. For your
253
- convenience, you no longer need to set this parameter at the stage of creating a
254
- stream. Now all streams are prepared in 2 formats simultaniously: Low Latency
255
- and Legacy. You can get the desired output format in the attributes
256
- "`dash_url`", "`hls_cmaf_url`", "`hls_mpegts_url`". Or use them all at once.
257
-
258
- ---
259
-
260
- Note: Links /streams/{id}/playlist.m3u8 are depricated too. Use value of the
261
- "`hls_mpegts_url`" attribute instead.
262
- """
263
-
264
248
  projection: Optional[Literal["regular", "vr360", "vr180", "vr360tb"]] = None
265
249
  """
266
250
  Visualization mode for 360° streams, how the stream is rendered in our web
@@ -279,15 +263,19 @@ class Stream(BaseModel):
279
263
  Has two possible values:
280
264
 
281
265
  - true – stream is received by PULL method. Use this when need to get stream
282
- from external server by srt, rtmp\\ss, hls, dash, etc protocols.
266
+ from external server.
283
267
  - false – stream is received by PUSH method. Use this when need to send stream
284
- from end-device to our Streaming Platform, i.e. from mobile app or OBS Studio.
268
+ from end-device to our Streaming Platform, i.e. from your encoder, mobile app
269
+ or OBS Studio.
285
270
  """
286
271
 
287
272
  push_url: Optional[str] = None
288
273
  """
289
274
  URL to PUSH master stream to our main server using RTMP and RTMPS protocols. To
290
275
  use RTMPS just manually change the protocol name from "rtmp://" to "rtmps://".
276
+ Use only 1 protocol of sending a master stream: eitheronly RTMP/S (`push_url`),
277
+ or only SRT (`push_url_srt`).
278
+
291
279
  If you see an error like "invalid SSL certificate" try the following:
292
280
 
293
281
  - Make sure the push URL is correct, and it contains "rtmps://".
@@ -295,20 +283,58 @@ class Stream(BaseModel):
295
283
  port 443 in the URL. Here’s an example:
296
284
  rtmps://vp-push.domain.com:443/in/stream?key.
297
285
  - If you're still having trouble, then your encoder may not support RTMPS.
298
- Double-check the documentation for your encoder. For advanced customers only:
299
- For your complexly distributed broadcast systems, it is also possible to
300
- additionally output an array of multi-regional ingestion points for manual
301
- selection from them. To activate this mode, contact your manager or the
302
- Support Team to activate the "`multi_region_push_urls`" attibute. But if you
303
- clearly don’t understand why you need this, then it’s best to use the default
304
- single URL in the "`push_url`" attribute.
286
+ Double-check the documentation for your encoder.
287
+
288
+ Please note that 1 connection and 1 protocol can be used at a single moment in
289
+ time per unique stream key input. Trying to send 2+ connection requests into
290
+ `push_url` to once, or 2+ protocols at once will not lead to a result. For
291
+ example, transcoding process will fail if:
292
+
293
+ - you are pushing primary and backup RTMP to the same single `push_url`
294
+ simultaneously
295
+ - you are pushing RTMP to `push_url` and SRT to `push_url_srt` simultaneously
296
+
297
+ For advanced customers only: For your complexly distributed broadcast systems,
298
+ it is also possible to additionally output an array of multi-regional ingestion
299
+ points for manual selection from them. To activate this mode, contact your
300
+ manager or the Support Team to activate the "`multi_region_push_urls`" attibute.
301
+ But if you clearly don’t understand why you need this, then it’s best to use the
302
+ default single URL in the "`push_url`" attribute.
305
303
  """
306
304
 
307
305
  push_url_srt: Optional[str] = None
308
306
  """
309
307
  URL to PUSH master stream to our main server using SRT protocol. Use only 1
310
- protocol of sending a master stream: either only SRT (`push_url_srt`), or only
311
- RTMP (`push_url`).
308
+ protocol of sending a master stream: eitheronly RTMP/S (`push_url`), or only SRT
309
+ (`push_url_srt`).
310
+
311
+ **Setup SRT latency on your sender side** SRT is designed as a low-latency
312
+ transport protocol, but real networks are not always stable and in some cases
313
+ the end-to-end path from the venue to the ingest point can be long. For this
314
+ reason, it is important to configure the latency parameter carefully to match
315
+ the actual network conditions. Small latency values may lead to packet loss when
316
+ jitter or retransmissions occur, while very large values introduce unnecessary
317
+ end-to-end delay. \\**Incorrect or low default value is one of the most common
318
+ reasons for packet loss, frames loss, and bad picture.\\**
319
+
320
+ We therefore recommend setting latency manually rather than relying on the
321
+ default, to ensure the buffer is correctly sized for your environment. A
322
+ practical range is 400–2000 ms, with the exact value chosen based on RTT,
323
+ jitter, and expected packet loss. Be sure to check and test SRT settings on your
324
+ sender side. The default values do not take into account your specific scenarios
325
+ and do not work well. If necessary, ask us and we will help you.
326
+
327
+ Please note that 1 connection and 1 protocol can be used at a single moment in
328
+ time per unique stream key input. Trying to send 2+ connection requests into
329
+ `push_url_srt` to once, or 2+ protocols at once will not lead to a result. For
330
+ example, transcoding process will fail if:
331
+
332
+ - you are pushing primary and backup SRT to the same single `push_url_srt`
333
+ simultaneously
334
+ - you are pushing RTMP to `push_url` and SRT to `push_url_srt` simultaneously
335
+
336
+ See more information and best practices about SRT protocol in the Product
337
+ Documentation.
312
338
  """
313
339
 
314
340
  push_url_whip: Optional[str] = None
@@ -321,9 +347,9 @@ class Stream(BaseModel):
321
347
  receives video data. Signaling is a term to describe communication between
322
348
  WebRTC endpoints, needed to initiate and maintain a session. WHIP is an open
323
349
  specification for a simple signaling protocol for starting WebRTC sessions in an
324
- outgoing direction, (i.e., streaming from your device). **WebRTC stream encoding
325
- parameters** At least one video and audio track both must be present in the
326
- stream:
350
+ outgoing direction, (i.e., streaming from your device). There is the primary
351
+ link only for WHIP, so no backup link. **WebRTC stream encoding parameters** At
352
+ least one video and audio track both must be present in the stream:
327
353
 
328
354
  - Video must be encoded with H.264.
329
355
  - Audio must be encoded with OPUS. Note. Specifically for WebRTC mode a method
@@ -339,8 +365,18 @@ class Stream(BaseModel):
339
365
  https://stackblitz.com/edit/stackblitz-starters-j2r9ar?file=index.html Also
340
366
  try to use the feature in UI of the Customer Portal. In the Streaming section
341
367
  inside the settings of a specific live stream, a new section "Quick start in
342
- browser" has been added. More information in the Product Documentation on the
343
- website.
368
+ browser" has been added.
369
+
370
+ Please note that 1 connection and 1 protocol can be used at a single moment in
371
+ time per unique stream key input. Trying to send 2+ connection requests into
372
+ `push_url_whip` to once, or 2+ protocols at once will not lead to a result. For
373
+ example, transcoding process will fail if:
374
+
375
+ - you are pushing primary and backup WHIP to the same single `push_url_whip`
376
+ simultaneously
377
+ - you are pushing WHIP to `push_url_whip` and RTMP to `push_url` simultaneously
378
+
379
+ More information in the Product Documentation on the website.
344
380
  """
345
381
 
346
382
  quality_set_id: Optional[int] = None
@@ -407,10 +443,11 @@ class Stream(BaseModel):
407
443
  round robin scheduling. If the first address does not respond, then the next one
408
444
  in the list will be automatically requested, returning to the first and so on in
409
445
  a circle. Also, if the sucessfully working stream stops sending data, then the
410
- next one will be selected according to the same scheme. After 24 hours of
411
- inactivity of your streams we will stop PULL-ing, and will switch "active" field
412
- to "false". Please, note that this field is for PULL only, so is not suitable
413
- for PUSH. Look at fields "`push_url`" and "`push_url_srt`" from GET method.
446
+ next one will be selected according to the same scheme. After 2 hours of
447
+ inactivity of your original stream, the system stops PULL requests and the
448
+ stream is deactivated (the "active" field switches to "false"). Please, note
449
+ that this field is for PULL only, so is not suitable for PUSH. Look at fields
450
+ "`push_url`" and "`push_url_srt`" from GET method.
414
451
  """
415
452
 
416
453
  video_height: Optional[float] = None
@@ -32,7 +32,8 @@ class StreamCreateClipParams(TypedDict, total=False):
32
32
  deleted from memory and is no longer available via the link. You need to create
33
33
  a new segment, or use `vod_required: true` attribute. If value is omitted, then
34
34
  expiration is counted as +3600 seconds (1 hour) to the end of the clip (i.e.
35
- `unix timestamp = + + 3600`). Allowed range: 1m <= expiration <= 4h. Example:
35
+ `unix timestamp = <start> + <duration> + 3600`). Allowed range: 1m <= expiration
36
+ <= 4h. Example:
36
37
  `24.05.2024 14:00:00 (GMT) + 60 seconds of duration + 3600 seconds of expiration = 24.05.2024 15:01:00 (GMT) is Unix timestamp = 1716562860`
37
38
  """
38
39
 
@@ -57,7 +57,7 @@ class StreamCreateParams(TypedDict, total=False):
57
57
  entity: video source, video id, parameters, etc. We do not use this field in any
58
58
  way when processing the stream. You can store any data in any format (string,
59
59
  json, etc), saved as a text string. Example:
60
- `` client_entity_data = '{ "`seq_id`": "1234567890", "name": "John Doe", "iat": 1516239022 }' ``
60
+ `client_entity_data = '{ "seq_id": "1234567890", "name": "John Doe", "iat": 1516239022 }'`
61
61
  """
62
62
 
63
63
  client_user_id: int
@@ -94,22 +94,6 @@ class StreamCreateParams(TypedDict, total=False):
94
94
  live streams
95
95
  """
96
96
 
97
- low_latency_enabled: bool
98
- """
99
- Deprecated, always returns "true". The only exception is that the attribute can
100
- only be used by clients that have previously used the old stream format. This
101
- method is outdated since we've made it easier to manage streams. For your
102
- convenience, you no longer need to set this parameter at the stage of creating a
103
- stream. Now all streams are prepared in 2 formats simultaniously: Low Latency
104
- and Legacy. You can get the desired output format in the attributes
105
- "`dash_url`", "`hls_cmaf_url`", "`hls_mpegts_url`". Or use them all at once.
106
-
107
- ---
108
-
109
- Note: Links /streams/{id}/playlist.m3u8 are depricated too. Use value of the
110
- "`hls_mpegts_url`" attribute instead.
111
- """
112
-
113
97
  projection: Literal["regular", "vr360", "vr180", "vr360tb"]
114
98
  """
115
99
  Visualization mode for 360° streams, how the stream is rendered in our web
@@ -128,9 +112,10 @@ class StreamCreateParams(TypedDict, total=False):
128
112
  Has two possible values:
129
113
 
130
114
  - true – stream is received by PULL method. Use this when need to get stream
131
- from external server by srt, rtmp\\ss, hls, dash, etc protocols.
115
+ from external server.
132
116
  - false – stream is received by PUSH method. Use this when need to send stream
133
- from end-device to our Streaming Platform, i.e. from mobile app or OBS Studio.
117
+ from end-device to our Streaming Platform, i.e. from your encoder, mobile app
118
+ or OBS Studio.
134
119
  """
135
120
 
136
121
  quality_set_id: int
@@ -158,8 +143,9 @@ class StreamCreateParams(TypedDict, total=False):
158
143
  round robin scheduling. If the first address does not respond, then the next one
159
144
  in the list will be automatically requested, returning to the first and so on in
160
145
  a circle. Also, if the sucessfully working stream stops sending data, then the
161
- next one will be selected according to the same scheme. After 24 hours of
162
- inactivity of your streams we will stop PULL-ing, and will switch "active" field
163
- to "false". Please, note that this field is for PULL only, so is not suitable
164
- for PUSH. Look at fields "`push_url`" and "`push_url_srt`" from GET method.
146
+ next one will be selected according to the same scheme. After 2 hours of
147
+ inactivity of your original stream, the system stops PULL requests and the
148
+ stream is deactivated (the "active" field switches to "false"). Please, note
149
+ that this field is for PULL only, so is not suitable for PUSH. Look at fields
150
+ "`push_url`" and "`push_url_srt`" from GET method.
165
151
  """
@@ -5,17 +5,17 @@ from typing_extensions import TypeAlias
5
5
 
6
6
  from ..._models import BaseModel
7
7
 
8
- __all__ = ["StreamSeries", "StreamSeryItem", "StreamSeryItemMetrics"]
8
+ __all__ = ["StreamSeries", "StreamSeriesItem", "StreamSeriesItemMetrics"]
9
9
 
10
10
 
11
- class StreamSeryItemMetrics(BaseModel):
11
+ class StreamSeriesItemMetrics(BaseModel):
12
12
  streams: List[int]
13
13
 
14
14
 
15
- class StreamSeryItem(BaseModel):
15
+ class StreamSeriesItem(BaseModel):
16
16
  client: int
17
17
 
18
- metrics: StreamSeryItemMetrics
18
+ metrics: StreamSeriesItemMetrics
19
19
 
20
20
 
21
- StreamSeries: TypeAlias = List[StreamSeryItem]
21
+ StreamSeries: TypeAlias = List[StreamSeriesItem]