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
@@ -61,7 +61,7 @@ class Stream(TypedDict, total=False):
61
61
  entity: video source, video id, parameters, etc. We do not use this field in any
62
62
  way when processing the stream. You can store any data in any format (string,
63
63
  json, etc), saved as a text string. Example:
64
- `` client_entity_data = '{ "`seq_id`": "1234567890", "name": "John Doe", "iat": 1516239022 }' ``
64
+ `client_entity_data = '{ "seq_id": "1234567890", "name": "John Doe", "iat": 1516239022 }'`
65
65
  """
66
66
 
67
67
  client_user_id: int
@@ -98,22 +98,6 @@ class Stream(TypedDict, total=False):
98
98
  live streams
99
99
  """
100
100
 
101
- low_latency_enabled: bool
102
- """
103
- Deprecated, always returns "true". The only exception is that the attribute can
104
- only be used by clients that have previously used the old stream format. This
105
- method is outdated since we've made it easier to manage streams. For your
106
- convenience, you no longer need to set this parameter at the stage of creating a
107
- stream. Now all streams are prepared in 2 formats simultaniously: Low Latency
108
- and Legacy. You can get the desired output format in the attributes
109
- "`dash_url`", "`hls_cmaf_url`", "`hls_mpegts_url`". Or use them all at once.
110
-
111
- ---
112
-
113
- Note: Links /streams/{id}/playlist.m3u8 are depricated too. Use value of the
114
- "`hls_mpegts_url`" attribute instead.
115
- """
116
-
117
101
  projection: Literal["regular", "vr360", "vr180", "vr360tb"]
118
102
  """
119
103
  Visualization mode for 360° streams, how the stream is rendered in our web
@@ -132,9 +116,10 @@ class Stream(TypedDict, total=False):
132
116
  Has two possible values:
133
117
 
134
118
  - true – stream is received by PULL method. Use this when need to get stream
135
- from external server by srt, rtmp\\ss, hls, dash, etc protocols.
119
+ from external server.
136
120
  - false – stream is received by PUSH method. Use this when need to send stream
137
- from end-device to our Streaming Platform, i.e. from mobile app or OBS Studio.
121
+ from end-device to our Streaming Platform, i.e. from your encoder, mobile app
122
+ or OBS Studio.
138
123
  """
139
124
 
140
125
  quality_set_id: int
@@ -162,8 +147,9 @@ class Stream(TypedDict, total=False):
162
147
  round robin scheduling. If the first address does not respond, then the next one
163
148
  in the list will be automatically requested, returning to the first and so on in
164
149
  a circle. Also, if the sucessfully working stream stops sending data, then the
165
- next one will be selected according to the same scheme. After 24 hours of
166
- inactivity of your streams we will stop PULL-ing, and will switch "active" field
167
- to "false". Please, note that this field is for PULL only, so is not suitable
168
- for PUSH. Look at fields "`push_url`" and "`push_url_srt`" from GET method.
150
+ next one will be selected according to the same scheme. After 2 hours of
151
+ inactivity of your original stream, the system stops PULL requests and the
152
+ stream is deactivated (the "active" field switches to "false"). Please, note
153
+ that this field is for PULL only, so is not suitable for PUSH. Look at fields
154
+ "`push_url`" and "`push_url_srt`" from GET method.
169
155
  """
@@ -32,41 +32,64 @@ class ConvertedVideo(BaseModel):
32
32
  - /videos/{`client_id`}\\__{slug}/{filename}.mp4
33
33
  - /videos/{`client_id`}\\__{slug}/{filename}.mp4/download
34
34
  - /videos/{`client_id`}\\__{slug}/{filename}.mp4/download={`custom_filename`} The
35
- first option returns the file as is. The following options respond with the
36
- header that directly tells browsers to download the file instead of playing it
37
- in the browser.
35
+ first option returns the file as is. Response will be:
38
36
 
39
37
  ```
40
- Content-Disposition: attachment
38
+ GET .mp4
39
+ ...
40
+ content-type: video/mp4
41
+ ```
42
+
43
+ The second option with /download will respond with HTTP response header that
44
+ directly tells browsers to download the file instead of playing it in the
45
+ browser:
46
+
47
+ ```
48
+ GET .mp4/download
49
+ ...
50
+ content-type: video/mp4
51
+ content-disposition: attachment
52
+ access-control-expose-headers: Content-Disposition
41
53
  ```
42
54
 
43
55
  The third option allows you to set a custom name for the file being downloaded.
44
56
  You can optionally specify a custom filename (just name excluding the .mp4
45
- extension) using the download= query. Filename Constraints
57
+ extension) using the download= query. Filename constraints:
46
58
 
47
59
  - Length: 1-255 characters
48
60
  - Must NOT include the .mp4 extension (it is added automatically)
49
61
  - Allowed characters: a-z, A-Z, 0-9, \\__(underscore), -(dash), .(dot)
50
- - First character cannot be .(dot) Example valid filenames: `holiday2025`,
51
- `_backup.final`, `clip-v1.2`
52
-
53
- **Default MP4 file name structure** Link to the file {filename} contains
54
- information about the encoding method using format: `___.mp4`
55
-
56
- - ```– Internal quality identifier and file version. Please do not use it, can be changed at any time without any notice.
62
+ - First character cannot be .(dot)
63
+ - Example valid filenames: `holiday2025`, `_backup.final`, `clip-v1.2`
57
64
 
58
- ```
59
- - ```– Codec name that was used to encode the video, or audio codec if it is an audio-only file.
65
+ ```
66
+ GET .mp4/download={custom_filename}
67
+ ...
68
+ content-type: video/mp4
69
+ content-disposition: attachment; filename="{custom_filename}.mp4"
70
+ access-control-expose-headers: Content-Disposition
71
+ ```
60
72
 
61
- ```
62
- - ```– Encoding bitrate in Kbps.
73
+ Examples:
63
74
 
64
- ```
65
- - ````– Video height, or word "audio" if it is an audio-only file.
66
- Note that this link format has been applied since 14.08.2024. If the video entity was uploaded earlier, links may have old simplified format.
67
- Example: ``` /videos/{`client_id`}_{slug}/`qid3567v1_h264_4050_1080`.mp4 ```
75
+ - Video:
76
+ `https://demo-public.gvideo.io/videos/2675_1OFgHZ1FWZNNvx1A/qid3567v1_h264_4050_1080.mp4/download`
77
+ - Video with custom download filename:
78
+ `https://demo-public.gvideo.io/videos/2675_1OFgHZ1FWZNNvx1A/qid3567v1_h264_4050_1080.mp4/download=highlights_v1.1_2025-05-30`
68
79
 
69
- ````
80
+ **Default MP4 file name structure** Link to the file {filename} contains
81
+ information about the encoding method using format:
82
+ `<quality_version>_<codec>_<bitrate>_<height>.mp4`
83
+
84
+ - `<quality_version>` – Internal quality identifier and file version. Please do
85
+ not use it, can be changed at any time without any notice.
86
+ - `<codec>` – Codec name that was used to encode the video, or audio codec if it
87
+ is an audio-only file.
88
+ - `<bitrate>` – Encoding bitrate in Kbps.
89
+ - `<height>` – Video height, or word "audio" if it is an audio-only file. Note
90
+ that this link format has been applied since 14.08.2024. If the video entity
91
+ was uploaded earlier, links may have old simplified format. Example:
92
+ `/videos/{client_id}_{slug}/qid3567v1_h264_4050_1080.mp4`
70
93
 
71
94
  **Dynamic speed limiting** This mode sets different limits for different users
72
95
  or for different types of content. The speed is adjusted based on requests with
@@ -88,15 +111,6 @@ class ConvertedVideo(BaseModel):
88
111
  - ip: The user’s IP address Example:
89
112
  `?md5=QX39c77lbQKvYgMMAvpyMQ&expires=1743167062` Read more in Product
90
113
  Documentation in Streaming section "Protected temporarily link".
91
-
92
- **Examples**
93
-
94
- - Audio-only:
95
- `` https://demo-public.gvideo.io/videos/`2675_JNnccG5l97XPxsov`/`qid3585v1_aac_128_audio`.mp4 ``
96
- - Video:
97
- `` https://demo-public.gvideo.io/videos/`2675_3MlggU4xDb1Ssa5Y`/`qid3567v1_h264_4050_1080`.mp4/download ``
98
- - Video with custom download filename:
99
- `` https://demo-public.gvideo.io/videos/`2675_XtMKxzJM6Xt7SBUV`/1080.mp4/download=`highlights_v1`.`1_2025`-05-30 ``
100
114
  """
101
115
 
102
116
  name: Optional[str] = None
@@ -171,8 +185,8 @@ class Video(BaseModel):
171
185
 
172
186
  This URL is a link to the main manifest. But you can also manually specify
173
187
  suffix-options that will allow you to change the manifest to your request:
174
- `` /videos/{`client_id`}_{slug}/master[-min-N][-max-N][-(h264|hevc|av1)].mpd ``
175
- List of suffix-options:
188
+ `/videos/{client_id}_{slug}/master[-min-N][-max-N][-(h264|hevc|av1)].mpd` List
189
+ of suffix-options:
176
190
 
177
191
  - [-min-N] – ABR soft limitation of qualities from below.
178
192
  - [-max-N] – ABR soft limitation of qualities from above.
@@ -231,7 +245,7 @@ class Video(BaseModel):
231
245
 
232
246
  You can also manually specify suffix-options that will allow you to change the
233
247
  manifest to your request:
234
- `` /videos/{`client_id`}_{`video_slug`}/master[-cmaf][-min-N][-max-N][-img][-(h264|hevc|av1)].m3u8 ``
248
+ `/videos/{client_id}_{video_slug}/master[-cmaf][-min-N][-max-N][-img][-(h264|hevc|av1)].m3u8`
235
249
  List of suffix-options:
236
250
 
237
251
  - [-cmaf] – getting HLS CMAF version of the manifest. Look at the `hls_cmaf_url`
@@ -270,10 +284,10 @@ class Video(BaseModel):
270
284
  direct link. Also the video player can be integrated into your web pages using
271
285
  the Iframe tag. Example of usage on a web page:
272
286
 
273
- <iframe width="100%" height="100%" src="https://player.gvideo.co/videos/`2675_FnlHXwA16ZMxmUr`" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
287
+ <iframe width="100%" height="100%" src="https://player.gvideo.co/videos/2675_FnlHXwA16ZMxmUr" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
274
288
 
275
289
  There are some link modificators you can specify and add manually:
276
- - ?`no_low_latency` – player is forced to use non-low-latency streams HLS MPEG TS, instead of MPEG-DASH CMAF or HLS/LL-HLS CMAF.
290
+ - ?`no_low_latency` – player is forced to use non-low-latency streams HLS MPEG-TS, instead of MPEG-DASH CMAF or HLS/LL-HLS CMAF.
277
291
  - ?t=(integer) – time to start playback from specified point in the video. Applicable for VOD only.
278
292
  - ?`sub_lang`=(language) – force subtitles to specific language (2 letters ISO 639 code of a language).
279
293
  - Read more in the Product Documentation.
@@ -312,13 +326,10 @@ class Video(BaseModel):
312
326
  like viewing an MP4 rendition. The MP4 file becomes available for downloading
313
327
  when the video entity "status" changes from "new" to "pending". The file is
314
328
  stored for 7 days, after which it will be automatically deleted. Format of URL
315
- is `` /videos/_/`origin__`.mp4 `` Where:
316
- - ```– Encoding bitrate in Kbps.
317
-
318
- ```
319
- - ```– Video height.
320
- This is a premium feature, available only upon request through your manager or support team.
321
- ```
329
+ is `/videos/<cid>_<slug>/origin_<bitrate>_<height>.mp4` Where:
330
+ - `<bitrate>` Encoding bitrate in Kbps.
331
+ - `<height>` – Video height. This is a premium feature, available only upon
332
+ request through your manager or support team.
322
333
  """
323
334
 
324
335
  origin_video_duration: Optional[int] = None
@@ -25,16 +25,16 @@ class VideoUpdateParams(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 VideoUpdateParams(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 VideoUpdateParams(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 VideoUpdateParams(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 VideoUpdateParams(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__ = ["VodStatisticsSeries", "VodStatisticsSeryItem", "VodStatisticsSeryItemMetrics"]
8
+ __all__ = ["VodStatisticsSeries", "VodStatisticsSeriesItem", "VodStatisticsSeriesItemMetrics"]
9
9
 
10
10
 
11
- class VodStatisticsSeryItemMetrics(BaseModel):
11
+ class VodStatisticsSeriesItemMetrics(BaseModel):
12
12
  vod: List[int]
13
13
 
14
14
 
15
- class VodStatisticsSeryItem(BaseModel):
15
+ class VodStatisticsSeriesItem(BaseModel):
16
16
  client: int
17
17
 
18
- metrics: VodStatisticsSeryItemMetrics
18
+ metrics: VodStatisticsSeriesItemMetrics
19
19
 
20
20
 
21
- VodStatisticsSeries: TypeAlias = List[VodStatisticsSeryItem]
21
+ VodStatisticsSeries: TypeAlias = List[VodStatisticsSeriesItem]
@@ -5,10 +5,10 @@ from typing_extensions import TypeAlias
5
5
 
6
6
  from ..._models import BaseModel
7
7
 
8
- __all__ = ["VodTotalStreamDurationSeries", "VodTotalStreamDurationSeryItem"]
8
+ __all__ = ["VodTotalStreamDurationSeries", "VodTotalStreamDurationSeriesItem"]
9
9
 
10
10
 
11
- class VodTotalStreamDurationSeryItem(BaseModel):
11
+ class VodTotalStreamDurationSeriesItem(BaseModel):
12
12
  client: int
13
13
 
14
14
  duration: int
@@ -19,4 +19,4 @@ class VodTotalStreamDurationSeryItem(BaseModel):
19
19
  stream_id: Optional[str] = None
20
20
 
21
21
 
22
- VodTotalStreamDurationSeries: TypeAlias = List[VodTotalStreamDurationSeryItem]
22
+ VodTotalStreamDurationSeries: TypeAlias = List[VodTotalStreamDurationSeriesItem]
@@ -25,4 +25,4 @@ class DomainListParams(TypedDict, total=False):
25
25
  """Sort the response by given field."""
26
26
 
27
27
  status: Literal["active", "bypass", "monitor", "locked"]
28
- """The different statuses a domain can have"""
28
+ """Filter domains based on the domain status"""
@@ -9,4 +9,4 @@ __all__ = ["DomainUpdateParams"]
9
9
 
10
10
  class DomainUpdateParams(TypedDict, total=False):
11
11
  status: Literal["active", "monitor"]
12
- """Domain statuses that can be used when updating a domain"""
12
+ """The current status of the domain"""
@@ -2,15 +2,17 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
+ from ...._types import SequenceNotStr
9
+
8
10
  __all__ = ["AdvancedRuleCreateParams", "Action", "ActionBlock", "ActionTag"]
9
11
 
10
12
 
11
13
  class AdvancedRuleCreateParams(TypedDict, total=False):
12
14
  action: Required[Action]
13
- """The action that a WAAP rule takes when triggered"""
15
+ """The action that the rule takes when triggered"""
14
16
 
15
17
  enabled: Required[bool]
16
18
  """Whether or not the rule is enabled"""
@@ -45,7 +47,8 @@ class ActionBlock(TypedDict, total=False):
45
47
  """How long a rule's block action will apply to subsequent requests.
46
48
 
47
49
  Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
48
- 'd' to represent time format (seconds, minutes, hours, or days)
50
+ 'd' to represent time format (seconds, minutes, hours, or days). Empty time
51
+ intervals are not allowed.
49
52
  """
50
53
 
51
54
  status_code: Optional[Literal[403, 405, 418, 429]]
@@ -53,7 +56,7 @@ class ActionBlock(TypedDict, total=False):
53
56
 
54
57
 
55
58
  class ActionTag(TypedDict, total=False):
56
- tags: Required[List[str]]
59
+ tags: Required[SequenceNotStr[str]]
57
60
  """The list of user defined tags to tag the request with"""
58
61
 
59
62
 
@@ -2,9 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
+ from ...._types import SequenceNotStr
9
+
8
10
  __all__ = ["AdvancedRuleUpdateParams", "Action", "ActionBlock", "ActionTag"]
9
11
 
10
12
 
@@ -48,7 +50,8 @@ class ActionBlock(TypedDict, total=False):
48
50
  """How long a rule's block action will apply to subsequent requests.
49
51
 
50
52
  Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
51
- 'd' to represent time format (seconds, minutes, hours, or days)
53
+ 'd' to represent time format (seconds, minutes, hours, or days). Empty time
54
+ intervals are not allowed.
52
55
  """
53
56
 
54
57
  status_code: Optional[Literal[403, 405, 418, 429]]
@@ -56,7 +59,7 @@ class ActionBlock(TypedDict, total=False):
56
59
 
57
60
 
58
61
  class ActionTag(TypedDict, total=False):
59
- tags: Required[List[str]]
62
+ tags: Required[SequenceNotStr[str]]
60
63
  """The list of user defined tags to tag the request with"""
61
64
 
62
65
 
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import Literal, Required, TypedDict
7
6
 
7
+ from ...._types import SequenceNotStr
8
+
8
9
  __all__ = ["APIPathCreateParams"]
9
10
 
10
11
 
@@ -21,11 +22,11 @@ class APIPathCreateParams(TypedDict, total=False):
21
22
  brackets
22
23
  """
23
24
 
24
- api_groups: List[str]
25
+ api_groups: SequenceNotStr[str]
25
26
  """An array of api groups associated with the API path"""
26
27
 
27
28
  api_version: str
28
29
  """The API version"""
29
30
 
30
- tags: List[str]
31
+ tags: SequenceNotStr[str]
31
32
  """An array of tags associated with the API path"""
@@ -5,6 +5,8 @@ from __future__ import annotations
5
5
  from typing import List, Optional
6
6
  from typing_extensions import Literal, TypedDict
7
7
 
8
+ from ...._types import SequenceNotStr
9
+
8
10
  __all__ = ["APIPathListParams"]
9
11
 
10
12
 
@@ -18,7 +20,7 @@ class APIPathListParams(TypedDict, total=False):
18
20
  http_scheme: Optional[Literal["HTTP", "HTTPS"]]
19
21
  """The different HTTP schemes an API path can have"""
20
22
 
21
- ids: Optional[List[str]]
23
+ ids: Optional[SequenceNotStr[str]]
22
24
  """Filter by the path ID"""
23
25
 
24
26
  limit: int
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import Literal, Required, TypedDict
7
6
 
7
+ from ...._types import SequenceNotStr
8
+
8
9
  __all__ = ["APIPathUpdateParams"]
9
10
 
10
11
 
@@ -12,7 +13,7 @@ class APIPathUpdateParams(TypedDict, total=False):
12
13
  domain_id: Required[int]
13
14
  """The domain ID"""
14
15
 
15
- api_groups: List[str]
16
+ api_groups: SequenceNotStr[str]
16
17
  """An array of api groups associated with the API path"""
17
18
 
18
19
  path: str
@@ -23,7 +24,7 @@ class APIPathUpdateParams(TypedDict, total=False):
23
24
  """
24
25
 
25
26
  status: Literal["CONFIRMED_API", "POTENTIAL_API", "NOT_API", "DELISTED_API"]
26
- """The different statuses an API path can have"""
27
+ """The status of the discovered API path"""
27
28
 
28
- tags: List[str]
29
+ tags: SequenceNotStr[str]
29
30
  """An array of tags associated with the API path"""
@@ -5,6 +5,8 @@ from __future__ import annotations
5
5
  from typing import List, Iterable, Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
+ from ...._types import SequenceNotStr
9
+
8
10
  __all__ = [
9
11
  "CustomRuleCreateParams",
10
12
  "Action",
@@ -34,7 +36,7 @@ __all__ = [
34
36
 
35
37
  class CustomRuleCreateParams(TypedDict, total=False):
36
38
  action: Required[Action]
37
- """The action that a WAAP rule takes when triggered"""
39
+ """The action that the rule takes when triggered"""
38
40
 
39
41
  conditions: Required[Iterable[Condition]]
40
42
  """The conditions required for the WAAP engine to trigger the rule.
@@ -58,7 +60,8 @@ class ActionBlock(TypedDict, total=False):
58
60
  """How long a rule's block action will apply to subsequent requests.
59
61
 
60
62
  Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
61
- 'd' to represent time format (seconds, minutes, hours, or days)
63
+ 'd' to represent time format (seconds, minutes, hours, or days). Empty time
64
+ intervals are not allowed.
62
65
  """
63
66
 
64
67
  status_code: Optional[Literal[403, 405, 418, 429]]
@@ -66,7 +69,7 @@ class ActionBlock(TypedDict, total=False):
66
69
 
67
70
 
68
71
  class ActionTag(TypedDict, total=False):
69
- tags: Required[List[str]]
72
+ tags: Required[SequenceNotStr[str]]
70
73
  """The list of user defined tags to tag the request with"""
71
74
 
72
75
 
@@ -94,7 +97,7 @@ class Action(TypedDict, total=False):
94
97
 
95
98
 
96
99
  class ConditionContentType(TypedDict, total=False):
97
- content_type: Required[List[str]]
100
+ content_type: Required[SequenceNotStr[str]]
98
101
  """The list of content types to match against"""
99
102
 
100
103
  negation: bool
@@ -102,7 +105,7 @@ class ConditionContentType(TypedDict, total=False):
102
105
 
103
106
 
104
107
  class ConditionCountry(TypedDict, total=False):
105
- country_code: Required[List[str]]
108
+ country_code: Required[SequenceNotStr[str]]
106
109
  """
107
110
  A list of ISO 3166-1 alpha-2 formatted strings representing the countries to
108
111
  match against
@@ -113,7 +116,7 @@ class ConditionCountry(TypedDict, total=False):
113
116
 
114
117
 
115
118
  class ConditionFileExtension(TypedDict, total=False):
116
- file_extension: Required[List[str]]
119
+ file_extension: Required[SequenceNotStr[str]]
117
120
  """The list of file extensions to match against"""
118
121
 
119
122
  negation: bool
@@ -144,11 +147,7 @@ class ConditionHeaderExists(TypedDict, total=False):
144
147
 
145
148
  class ConditionHTTPMethod(TypedDict, total=False):
146
149
  http_method: Required[Literal["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"]]
147
- """HTTP methods and descriptions Methods from the following RFCs are all observed:
148
-
149
- - RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
150
- - RFC 5789: PATCH Method for HTTP
151
- """
150
+ """HTTP methods of a request"""
152
151
 
153
152
  negation: bool
154
153
  """Whether or not to apply a boolean NOT operation to the rule's condition"""
@@ -224,7 +223,7 @@ class ConditionRequestRate(TypedDict, total=False):
224
223
  ]
225
224
  """Possible HTTP request methods that can trigger a request rate condition"""
226
225
 
227
- ips: Optional[List[str]]
226
+ ips: Optional[SequenceNotStr[str]]
228
227
  """A list of source IPs that can trigger a request rate condition"""
229
228
 
230
229
  user_defined_tag: Optional[str]
@@ -265,7 +264,7 @@ class ConditionSessionRequestCount(TypedDict, total=False):
265
264
 
266
265
 
267
266
  class ConditionTags(TypedDict, total=False):
268
- tags: Required[List[str]]
267
+ tags: Required[SequenceNotStr[str]]
269
268
  """A list of tags to match against the request tags"""
270
269
 
271
270
  negation: bool
@@ -303,7 +302,7 @@ class ConditionUserAgent(TypedDict, total=False):
303
302
 
304
303
 
305
304
  class ConditionUserDefinedTags(TypedDict, total=False):
306
- tags: Required[List[str]]
305
+ tags: Required[SequenceNotStr[str]]
307
306
  """A list of user-defined tags to match against the request tags"""
308
307
 
309
308
  negation: bool