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
@@ -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
  "CustomRuleUpdateParams",
10
12
  "Action",
@@ -61,7 +63,8 @@ class ActionBlock(TypedDict, total=False):
61
63
  """How long a rule's block action will apply to subsequent requests.
62
64
 
63
65
  Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
64
- 'd' to represent time format (seconds, minutes, hours, or days)
66
+ 'd' to represent time format (seconds, minutes, hours, or days). Empty time
67
+ intervals are not allowed.
65
68
  """
66
69
 
67
70
  status_code: Optional[Literal[403, 405, 418, 429]]
@@ -69,7 +72,7 @@ class ActionBlock(TypedDict, total=False):
69
72
 
70
73
 
71
74
  class ActionTag(TypedDict, total=False):
72
- tags: Required[List[str]]
75
+ tags: Required[SequenceNotStr[str]]
73
76
  """The list of user defined tags to tag the request with"""
74
77
 
75
78
 
@@ -97,7 +100,7 @@ class Action(TypedDict, total=False):
97
100
 
98
101
 
99
102
  class ConditionContentType(TypedDict, total=False):
100
- content_type: Required[List[str]]
103
+ content_type: Required[SequenceNotStr[str]]
101
104
  """The list of content types to match against"""
102
105
 
103
106
  negation: bool
@@ -105,7 +108,7 @@ class ConditionContentType(TypedDict, total=False):
105
108
 
106
109
 
107
110
  class ConditionCountry(TypedDict, total=False):
108
- country_code: Required[List[str]]
111
+ country_code: Required[SequenceNotStr[str]]
109
112
  """
110
113
  A list of ISO 3166-1 alpha-2 formatted strings representing the countries to
111
114
  match against
@@ -116,7 +119,7 @@ class ConditionCountry(TypedDict, total=False):
116
119
 
117
120
 
118
121
  class ConditionFileExtension(TypedDict, total=False):
119
- file_extension: Required[List[str]]
122
+ file_extension: Required[SequenceNotStr[str]]
120
123
  """The list of file extensions to match against"""
121
124
 
122
125
  negation: bool
@@ -147,11 +150,7 @@ class ConditionHeaderExists(TypedDict, total=False):
147
150
 
148
151
  class ConditionHTTPMethod(TypedDict, total=False):
149
152
  http_method: Required[Literal["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"]]
150
- """HTTP methods and descriptions Methods from the following RFCs are all observed:
151
-
152
- - RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
153
- - RFC 5789: PATCH Method for HTTP
154
- """
153
+ """HTTP methods of a request"""
155
154
 
156
155
  negation: bool
157
156
  """Whether or not to apply a boolean NOT operation to the rule's condition"""
@@ -227,7 +226,7 @@ class ConditionRequestRate(TypedDict, total=False):
227
226
  ]
228
227
  """Possible HTTP request methods that can trigger a request rate condition"""
229
228
 
230
- ips: Optional[List[str]]
229
+ ips: Optional[SequenceNotStr[str]]
231
230
  """A list of source IPs that can trigger a request rate condition"""
232
231
 
233
232
  user_defined_tag: Optional[str]
@@ -268,7 +267,7 @@ class ConditionSessionRequestCount(TypedDict, total=False):
268
267
 
269
268
 
270
269
  class ConditionTags(TypedDict, total=False):
271
- tags: Required[List[str]]
270
+ tags: Required[SequenceNotStr[str]]
272
271
  """A list of tags to match against the request tags"""
273
272
 
274
273
  negation: bool
@@ -306,7 +305,7 @@ class ConditionUserAgent(TypedDict, total=False):
306
305
 
307
306
 
308
307
  class ConditionUserDefinedTags(TypedDict, total=False):
309
- tags: Required[List[str]]
308
+ tags: Required[SequenceNotStr[str]]
310
309
  """A list of user-defined tags to match against the request tags"""
311
310
 
312
311
  negation: bool
@@ -10,7 +10,7 @@ __all__ = ["FirewallRuleCreateParams", "Action", "ActionBlock", "Condition", "Co
10
10
 
11
11
  class FirewallRuleCreateParams(TypedDict, total=False):
12
12
  action: Required[Action]
13
- """The action that a firewall rule takes when triggered"""
13
+ """The action that the rule takes when triggered"""
14
14
 
15
15
  conditions: Required[Iterable[Condition]]
16
16
  """The condition required for the WAAP engine to trigger the rule."""
@@ -30,7 +30,8 @@ class ActionBlock(TypedDict, total=False):
30
30
  """How long a rule's block action will apply to subsequent requests.
31
31
 
32
32
  Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
33
- 'd' to represent time format (seconds, minutes, hours, or days)
33
+ 'd' to represent time format (seconds, minutes, hours, or days). Empty time
34
+ intervals are not allowed.
34
35
  """
35
36
 
36
37
  status_code: Optional[Literal[403, 405, 418, 429]]
@@ -33,7 +33,8 @@ class ActionBlock(TypedDict, total=False):
33
33
  """How long a rule's block action will apply to subsequent requests.
34
34
 
35
35
  Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
36
- 'd' to represent time format (seconds, minutes, hours, or days)
36
+ 'd' to represent time format (seconds, minutes, hours, or days). Empty time
37
+ intervals are not allowed.
37
38
  """
38
39
 
39
40
  status_code: Optional[Literal[403, 405, 418, 429]]
@@ -5,17 +5,19 @@ 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__ = ["InsightListParams"]
9
11
 
10
12
 
11
13
  class InsightListParams(TypedDict, total=False):
12
- id: Optional[List[str]]
14
+ id: Optional[SequenceNotStr[str]]
13
15
  """The ID of the insight"""
14
16
 
15
17
  description: Optional[str]
16
18
  """The description of the insight. Supports '\\**' as a wildcard."""
17
19
 
18
- insight_type: Optional[List[str]]
20
+ insight_type: Optional[SequenceNotStr[str]]
19
21
  """The type of the insight"""
20
22
 
21
23
  limit: int
@@ -12,4 +12,4 @@ class InsightReplaceParams(TypedDict, total=False):
12
12
  """The domain ID"""
13
13
 
14
14
  status: Required[Literal["OPEN", "ACKED", "CLOSED"]]
15
- """The different statuses an insight can have"""
15
+ """The status of the insight"""
@@ -2,14 +2,16 @@
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, TypedDict
7
7
 
8
+ from ...._types import SequenceNotStr
9
+
8
10
  __all__ = ["InsightSilenceListParams"]
9
11
 
10
12
 
11
13
  class InsightSilenceListParams(TypedDict, total=False):
12
- id: Optional[List[str]]
14
+ id: Optional[SequenceNotStr[str]]
13
15
  """The ID of the insight silence"""
14
16
 
15
17
  author: Optional[str]
@@ -18,7 +20,7 @@ class InsightSilenceListParams(TypedDict, total=False):
18
20
  comment: Optional[str]
19
21
  """The comment of the insight silence"""
20
22
 
21
- insight_type: Optional[List[str]]
23
+ insight_type: Optional[SequenceNotStr[str]]
22
24
  """The type of the insight silence"""
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 TypedDict
7
6
 
7
+ from ...._types import SequenceNotStr
8
+
8
9
  __all__ = ["SettingUpdateParams", "API", "DDOS"]
9
10
 
10
11
 
@@ -17,7 +18,7 @@ class SettingUpdateParams(TypedDict, total=False):
17
18
 
18
19
 
19
20
  class API(TypedDict, total=False):
20
- api_urls: List[str]
21
+ api_urls: SequenceNotStr[str]
21
22
  """The API URLs for a domain.
22
23
 
23
24
  If your domain has a common base URL for all API paths, it can be set here
@@ -2,11 +2,8 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Union
6
- from datetime import datetime
7
- from typing_extensions import Literal, Required, Annotated, TypedDict
8
-
9
- from ...._utils import PropertyInfo
5
+ from typing import Optional
6
+ from typing_extensions import Literal, Required, TypedDict
10
7
 
11
8
  __all__ = ["StatisticGetDDOSInfoParams"]
12
9
 
@@ -15,11 +12,11 @@ class StatisticGetDDOSInfoParams(TypedDict, total=False):
15
12
  group_by: Required[Literal["URL", "User-Agent", "IP"]]
16
13
  """The identity of the requests to group by"""
17
14
 
18
- start: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
19
- """Filter traffic starting from a specified date in ISO 8601 format"""
15
+ start: Required[str]
16
+ """Filter data items starting from a specified date in ISO 8601 format"""
20
17
 
21
- end: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
22
- """Filter traffic up to a specified end date in ISO 8601 format.
18
+ end: Optional[str]
19
+ """Filter data items up to a specified end date in ISO 8601 format.
23
20
 
24
21
  If not provided, defaults to the current date and time.
25
22
  """
@@ -2,32 +2,31 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Union, Optional
6
- from datetime import datetime
7
- from typing_extensions import Literal, Required, Annotated, TypedDict
5
+ from typing import List, Optional
6
+ from typing_extensions import Literal, Required, TypedDict
8
7
 
9
- from ...._utils import PropertyInfo
8
+ from ...._types import SequenceNotStr
10
9
 
11
10
  __all__ = ["StatisticGetEventsAggregatedParams"]
12
11
 
13
12
 
14
13
  class StatisticGetEventsAggregatedParams(TypedDict, total=False):
15
- start: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
16
- """Filter traffic starting from a specified date in ISO 8601 format"""
14
+ start: Required[str]
15
+ """Filter data items starting from a specified date in ISO 8601 format"""
17
16
 
18
17
  action: Optional[List[Literal["block", "captcha", "handshake", "monitor"]]]
19
18
  """A list of action names to filter on."""
20
19
 
21
- end: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
22
- """Filter traffic up to a specified end date in ISO 8601 format.
20
+ end: Optional[str]
21
+ """Filter data items up to a specified end date in ISO 8601 format.
23
22
 
24
23
  If not provided, defaults to the current date and time.
25
24
  """
26
25
 
27
- ip: Optional[List[str]]
26
+ ip: Optional[SequenceNotStr[str]]
28
27
  """A list of IPs to filter event statistics."""
29
28
 
30
- reference_id: Optional[List[str]]
29
+ reference_id: Optional[SequenceNotStr[str]]
31
30
  """A list of reference IDs to filter event statistics."""
32
31
 
33
32
  result: Optional[List[Literal["passed", "blocked", "monitored", "allowed"]]]
@@ -2,27 +2,26 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Union
6
- from datetime import datetime
7
- from typing_extensions import Literal, Required, Annotated, TypedDict
5
+ from typing import List, Optional
6
+ from typing_extensions import Literal, Required, TypedDict
8
7
 
9
- from ...._utils import PropertyInfo
8
+ from ...._types import SequenceNotStr
10
9
 
11
10
  __all__ = ["StatisticGetRequestsSeriesParams"]
12
11
 
13
12
 
14
13
  class StatisticGetRequestsSeriesParams(TypedDict, total=False):
15
- start: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
16
- """Filter traffic starting from a specified date in ISO 8601 format"""
14
+ start: Required[str]
15
+ """Filter data items starting from a specified date in ISO 8601 format"""
17
16
 
18
17
  actions: List[Literal["allow", "block", "captcha", "handshake"]]
19
18
  """Filter the response by actions."""
20
19
 
21
- countries: List[str]
20
+ countries: SequenceNotStr[str]
22
21
  """Filter the response by country codes in ISO 3166-1 alpha-2 format."""
23
22
 
24
- end: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
25
- """Filter traffic up to a specified end date in ISO 8601 format.
23
+ end: Optional[str]
24
+ """Filter data items up to a specified end date in ISO 8601 format.
26
25
 
27
26
  If not provided, defaults to the current date and time.
28
27
  """
@@ -2,11 +2,8 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Union
6
- from datetime import datetime
7
- from typing_extensions import Literal, Required, Annotated, TypedDict
8
-
9
- from ...._utils import PropertyInfo
5
+ from typing import Optional
6
+ from typing_extensions import Literal, Required, TypedDict
10
7
 
11
8
  __all__ = ["StatisticGetTrafficSeriesParams"]
12
9
 
@@ -15,11 +12,11 @@ class StatisticGetTrafficSeriesParams(TypedDict, total=False):
15
12
  resolution: Required[Literal["daily", "hourly", "minutely"]]
16
13
  """Specifies the granularity of the result data."""
17
14
 
18
- start: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
19
- """Filter traffic starting from a specified date in ISO 8601 format"""
15
+ start: Required[str]
16
+ """Filter data items starting from a specified date in ISO 8601 format"""
20
17
 
21
- end: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
22
- """Filter traffic up to a specified end date in ISO 8601 format.
18
+ end: Optional[str]
19
+ """Filter data items up to a specified end date in ISO 8601 format.
23
20
 
24
21
  If not provided, defaults to the current date and time.
25
22
  """
@@ -13,7 +13,8 @@ class ActionBlock(BaseModel):
13
13
  """How long a rule's block action will apply to subsequent requests.
14
14
 
15
15
  Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
16
- 'd' to represent time format (seconds, minutes, hours, or days)
16
+ 'd' to represent time format (seconds, minutes, hours, or days). Empty time
17
+ intervals are not allowed.
17
18
  """
18
19
 
19
20
  status_code: Optional[Literal[403, 405, 418, 429]] = None
@@ -53,7 +54,7 @@ class WaapAdvancedRule(BaseModel):
53
54
  """The unique identifier for the rule"""
54
55
 
55
56
  action: Action
56
- """The action that a WAAP rule takes when triggered"""
57
+ """The action that the rule takes when triggered"""
57
58
 
58
59
  enabled: bool
59
60
  """Whether or not the rule is enabled"""
@@ -23,13 +23,13 @@ class WaapAPIPath(BaseModel):
23
23
  """The date and time in ISO 8601 format the API path was first detected."""
24
24
 
25
25
  http_scheme: Literal["HTTP", "HTTPS"]
26
- """The different HTTP schemes an API path can have"""
26
+ """The HTTP version of the API path"""
27
27
 
28
28
  last_detected: datetime
29
29
  """The date and time in ISO 8601 format the API path was last detected."""
30
30
 
31
31
  method: Literal["GET", "POST", "PUT", "PATCH", "DELETE", "TRACE", "HEAD", "OPTIONS"]
32
- """The different methods an API path can have"""
32
+ """The API RESTful method"""
33
33
 
34
34
  path: str
35
35
  """
@@ -41,10 +41,10 @@ class WaapAPIPath(BaseModel):
41
41
  """The number of requests for this path in the last 24 hours"""
42
42
 
43
43
  source: Literal["API_DESCRIPTION_FILE", "TRAFFIC_SCAN", "USER_DEFINED"]
44
- """The different sources an API path can have"""
44
+ """The source of the discovered API"""
45
45
 
46
46
  status: Literal["CONFIRMED_API", "POTENTIAL_API", "NOT_API", "DELISTED_API"]
47
- """The different statuses an API path can have"""
47
+ """The status of the discovered API path"""
48
48
 
49
49
  tags: List[str]
50
50
  """An array of tags associated with the API path"""
@@ -23,7 +23,7 @@ class WaapAPIScanResult(BaseModel):
23
23
  """The date and time the scan started"""
24
24
 
25
25
  status: Literal["SUCCESS", "FAILURE", "IN_PROGRESS"]
26
- """The different statuses a task result can have"""
26
+ """The status of the scan"""
27
27
 
28
28
  type: Literal["TRAFFIC_SCAN", "API_DESCRIPTION_FILE_SCAN"]
29
- """The different types of scans that can be performed"""
29
+ """The type of scan"""
@@ -37,7 +37,8 @@ class ActionBlock(BaseModel):
37
37
  """How long a rule's block action will apply to subsequent requests.
38
38
 
39
39
  Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
40
- 'd' to represent time format (seconds, minutes, hours, or days)
40
+ 'd' to represent time format (seconds, minutes, hours, or days). Empty time
41
+ intervals are not allowed.
41
42
  """
42
43
 
43
44
  status_code: Optional[Literal[403, 405, 418, 429]] = None
@@ -123,11 +124,7 @@ class ConditionHeaderExists(BaseModel):
123
124
 
124
125
  class ConditionHTTPMethod(BaseModel):
125
126
  http_method: Literal["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"]
126
- """HTTP methods and descriptions Methods from the following RFCs are all observed:
127
-
128
- - RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
129
- - RFC 5789: PATCH Method for HTTP
130
- """
127
+ """HTTP methods of a request"""
131
128
 
132
129
  negation: Optional[bool] = None
133
130
  """Whether or not to apply a boolean NOT operation to the rule's condition"""
@@ -358,7 +355,7 @@ class WaapCustomRule(BaseModel):
358
355
  """The unique identifier for the rule"""
359
356
 
360
357
  action: Action
361
- """The action that a WAAP rule takes when triggered"""
358
+ """The action that the rule takes when triggered"""
362
359
 
363
360
  conditions: List[Condition]
364
361
  """The conditions required for the WAAP engine to trigger the rule.
@@ -13,7 +13,8 @@ class ActionBlock(BaseModel):
13
13
  """How long a rule's block action will apply to subsequent requests.
14
14
 
15
15
  Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
16
- 'd' to represent time format (seconds, minutes, hours, or days)
16
+ 'd' to represent time format (seconds, minutes, hours, or days). Empty time
17
+ intervals are not allowed.
17
18
  """
18
19
 
19
20
  status_code: Optional[Literal[403, 405, 418, 429]] = None
@@ -63,7 +64,7 @@ class WaapFirewallRule(BaseModel):
63
64
  """The unique identifier of the rule"""
64
65
 
65
66
  action: Action
66
- """The action that a firewall rule takes when triggered"""
67
+ """The action that the rule takes when triggered"""
67
68
 
68
69
  conditions: List[Condition]
69
70
  """The condition required for the WAAP engine to trigger the rule."""
@@ -35,4 +35,4 @@ class WaapInsight(BaseModel):
35
35
  """The recommended action to perform to resolve the insight"""
36
36
 
37
37
  status: Literal["OPEN", "ACKED", "CLOSED"]
38
- """The different statuses an insight can have"""
38
+ """The status of the insight"""
@@ -1,6 +1,7 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import List
3
+ from typing import Dict, List
4
+ from datetime import datetime
4
5
  from typing_extensions import Literal
5
6
 
6
7
  from ...._models import BaseModel
@@ -148,10 +149,10 @@ class WaapRequestDetails(BaseModel):
148
149
  reference_id: str
149
150
  """Reference ID to identify user sanction"""
150
151
 
151
- request_headers: object
152
+ request_headers: Dict[str, object]
152
153
  """HTTP request headers"""
153
154
 
154
- request_time: str
155
+ request_time: datetime
155
156
  """The time of the request"""
156
157
 
157
158
  request_type: str
@@ -182,4 +183,4 @@ class WaapRequestDetails(BaseModel):
182
183
  """List of traffic types"""
183
184
 
184
185
  user_agent: UserAgent
185
- """User agent details"""
186
+ """User agent"""
@@ -4,10 +4,10 @@ from typing import List
4
4
 
5
5
  from ..._models import BaseModel
6
6
 
7
- __all__ = ["WaapIPDDOSInfoModel", "TimeSery"]
7
+ __all__ = ["WaapIPDDOSInfoModel", "TimeSeries"]
8
8
 
9
9
 
10
- class TimeSery(BaseModel):
10
+ class TimeSeries(BaseModel):
11
11
  count: int
12
12
  """The number of attacks"""
13
13
 
@@ -19,5 +19,5 @@ class WaapIPDDOSInfoModel(BaseModel):
19
19
  botnet_client: bool
20
20
  """Indicates if the IP is tagged as a botnet client"""
21
21
 
22
- time_series: List[TimeSery]
22
+ time_series: List[TimeSeries]
23
23
  """The time series data for the DDoS attacks from the IP address"""
@@ -24,7 +24,7 @@ class Rule(BaseModel):
24
24
  """Unique identifier for the security rule"""
25
25
 
26
26
  action: Literal["Allow", "Block", "Captcha", "Gateway", "Handshake", "Monitor", "Composite"]
27
- """The action taken by the WAAP upon rule activation."""
27
+ """Specifies the action taken by the WAAP upon rule activation"""
28
28
 
29
29
  description: str
30
30
  """Detailed description of the security rule"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gcore
3
- Version: 0.10.0
3
+ Version: 0.12.0
4
4
  Summary: The official Python library for the gcore API
5
5
  Project-URL: Homepage, https://github.com/G-Core/gcore-python
6
6
  Project-URL: Repository, https://github.com/G-Core/gcore-python
@@ -36,7 +36,8 @@ Description-Content-Type: text/markdown
36
36
  # Gcore Python API library
37
37
 
38
38
  <!-- prettier-ignore -->
39
- [![PyPI version](https://img.shields.io/pypi/v/gcore.svg?label=pypi%20(stable))](https://pypi.org/project/gcore/)
39
+ [![PyPI version](https://img.shields.io/pypi/v/gcore.svg?label=pypi%20(stable))[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FG-Core%2Fgcore-python.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FG-Core%2Fgcore-python?ref=badge_shield)
40
+ ](https://pypi.org/project/gcore/)
40
41
 
41
42
  The Gcore Python library provides convenient access to the Gcore REST API from any Python 3.8+
42
43
  application. The library includes type definitions for all request params and response fields,
@@ -518,3 +519,7 @@ Python 3.8 or higher.
518
519
  ## Contributing
519
520
 
520
521
  See [the contributing documentation](https://github.com/G-Core/gcore-python/tree/main/./CONTRIBUTING.md).
522
+
523
+
524
+ ## License
525
+ [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FG-Core%2Fgcore-python.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FG-Core%2Fgcore-python?ref=badge_large)