gcore 0.1.0a2__py3-none-any.whl → 0.3.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 (293) hide show
  1. gcore/__init__.py +5 -0
  2. gcore/_base_client.py +22 -2
  3. gcore/_client.py +9 -0
  4. gcore/_models.py +2 -0
  5. gcore/_types.py +2 -0
  6. gcore/_utils/_proxy.py +4 -1
  7. gcore/_utils/_resources_proxy.py +24 -0
  8. gcore/_version.py +1 -1
  9. gcore/resources/__init__.py +14 -0
  10. gcore/resources/cloud/baremetal/flavors.py +2 -2
  11. gcore/resources/cloud/baremetal/images.py +2 -2
  12. gcore/resources/cloud/baremetal/servers.py +280 -52
  13. gcore/resources/cloud/billing_reservations.py +24 -0
  14. gcore/resources/cloud/file_shares/file_shares.py +16 -0
  15. gcore/resources/cloud/floating_ips.py +4 -4
  16. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +358 -8
  17. gcore/resources/cloud/gpu_baremetal_clusters/images.py +206 -2
  18. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +84 -4
  19. gcore/resources/cloud/inference/deployments/deployments.py +328 -10
  20. gcore/resources/cloud/instances/flavors.py +2 -2
  21. gcore/resources/cloud/instances/images.py +318 -2
  22. gcore/resources/cloud/instances/instances.py +534 -70
  23. gcore/resources/cloud/instances/interfaces.py +4 -4
  24. gcore/resources/cloud/load_balancers/flavors.py +2 -2
  25. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +302 -20
  26. gcore/resources/cloud/load_balancers/l7_policies/rules.py +326 -0
  27. gcore/resources/cloud/load_balancers/listeners.py +385 -20
  28. gcore/resources/cloud/load_balancers/load_balancers.py +392 -24
  29. gcore/resources/cloud/load_balancers/pools/health_monitors.py +24 -0
  30. gcore/resources/cloud/load_balancers/pools/members.py +34 -6
  31. gcore/resources/cloud/load_balancers/pools/pools.py +388 -8
  32. gcore/resources/cloud/networks/networks.py +72 -16
  33. gcore/resources/cloud/networks/subnets.py +6 -6
  34. gcore/resources/cloud/registries/registries.py +6 -10
  35. gcore/resources/cloud/registries/users.py +4 -10
  36. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +10 -10
  37. gcore/resources/cloud/secrets.py +56 -11
  38. gcore/resources/cloud/security_groups/security_groups.py +2 -2
  39. gcore/resources/cloud/ssh_keys.py +2 -2
  40. gcore/resources/cloud/tasks.py +203 -184
  41. gcore/resources/cloud/users/role_assignments.py +4 -4
  42. gcore/resources/cloud/volumes.py +18 -18
  43. gcore/resources/waap/__init__.py +131 -0
  44. gcore/resources/waap/advanced_rules.py +135 -0
  45. gcore/resources/waap/clients.py +135 -0
  46. gcore/resources/waap/custom_page_sets.py +805 -0
  47. gcore/resources/waap/domains/__init__.py +173 -0
  48. gcore/resources/waap/domains/advanced_rules.py +876 -0
  49. gcore/resources/waap/domains/analytics/__init__.py +33 -0
  50. gcore/resources/waap/domains/analytics/analytics.py +676 -0
  51. gcore/resources/waap/domains/analytics/requests.py +378 -0
  52. gcore/resources/waap/domains/api_discovery/__init__.py +33 -0
  53. gcore/resources/waap/domains/api_discovery/api_discovery.py +530 -0
  54. gcore/resources/waap/domains/api_discovery/scan_results.py +352 -0
  55. gcore/resources/waap/domains/api_path_groups.py +163 -0
  56. gcore/resources/waap/domains/api_paths.py +771 -0
  57. gcore/resources/waap/domains/custom_rules.py +889 -0
  58. gcore/resources/waap/domains/domains.py +914 -0
  59. gcore/resources/waap/domains/firewall_rules.py +884 -0
  60. gcore/resources/waap/domains/insight_silences.py +689 -0
  61. gcore/resources/waap/domains/insights.py +425 -0
  62. gcore/resources/waap/domains/policies.py +173 -0
  63. gcore/resources/waap/domains/settings.py +271 -0
  64. gcore/resources/waap/ip_info.py +1017 -0
  65. gcore/resources/waap/organizations.py +217 -0
  66. gcore/resources/waap/statistics.py +225 -0
  67. gcore/resources/waap/tags.py +233 -0
  68. gcore/resources/waap/waap.py +391 -0
  69. gcore/types/cloud/__init__.py +1 -0
  70. gcore/types/cloud/allowed_address_pairs.py +2 -2
  71. gcore/types/cloud/baremetal/baremetal_server.py +1 -1
  72. gcore/types/cloud/baremetal/image_list_params.py +1 -1
  73. gcore/types/cloud/baremetal/server_create_params.py +9 -9
  74. gcore/types/cloud/baremetal/server_list_params.py +8 -8
  75. gcore/types/cloud/baremetal/server_rebuild_params.py +1 -1
  76. gcore/types/cloud/baremetal_flavor.py +3 -3
  77. gcore/types/cloud/billing_reservation_list_params.py +5 -0
  78. gcore/types/cloud/container_probe_config.py +1 -1
  79. gcore/types/cloud/container_probe_config_create_param.py +2 -3
  80. gcore/types/cloud/container_scale_triggers.py +2 -2
  81. gcore/types/cloud/file_share.py +3 -0
  82. gcore/types/cloud/file_share_list_params.py +7 -1
  83. gcore/types/cloud/floating_ip_detailed.py +1 -1
  84. gcore/types/cloud/floating_ip_list_params.py +2 -2
  85. gcore/types/cloud/gpu_baremetal_cluster.py +1 -1
  86. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +21 -1
  87. gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +1 -1
  88. gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +1 -1
  89. gcore/types/cloud/gpu_baremetal_cluster_server.py +1 -1
  90. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +1 -1
  91. gcore/types/cloud/gpu_baremetal_clusters/server_attach_interface_params.py +10 -10
  92. gcore/types/cloud/gpu_baremetal_flavor.py +3 -3
  93. gcore/types/cloud/image.py +1 -1
  94. gcore/types/cloud/inference/deployment_create_params.py +4 -4
  95. gcore/types/cloud/inference/deployment_update_params.py +206 -9
  96. gcore/types/cloud/inference/inference.py +5 -5
  97. gcore/types/cloud/instance.py +1 -1
  98. gcore/types/cloud/instance_create_params.py +8 -10
  99. gcore/types/cloud/instance_list_params.py +8 -8
  100. gcore/types/cloud/instances/flavor_list_suitable_params.py +4 -1
  101. gcore/types/cloud/instances/image_list_params.py +1 -1
  102. gcore/types/cloud/instances/instance_flavor.py +3 -3
  103. gcore/types/cloud/instances/interface_attach_params.py +10 -10
  104. gcore/types/cloud/load_balancer_create_params.py +17 -15
  105. gcore/types/cloud/load_balancer_flavor_detail.py +3 -3
  106. gcore/types/cloud/load_balancer_l7_policy.py +5 -5
  107. gcore/types/cloud/load_balancer_list_params.py +5 -5
  108. gcore/types/cloud/load_balancer_listener_detail.py +17 -17
  109. gcore/types/cloud/load_balancer_pool.py +13 -13
  110. gcore/types/cloud/load_balancer_pool_list.py +99 -4
  111. gcore/types/cloud/load_balancers/l7_policy_create_params.py +5 -5
  112. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +5 -5
  113. gcore/types/cloud/load_balancers/listener_create_params.py +6 -4
  114. gcore/types/cloud/load_balancers/listener_get_params.py +3 -1
  115. gcore/types/cloud/load_balancers/listener_list_params.py +4 -2
  116. gcore/types/cloud/load_balancers/listener_update_params.py +5 -3
  117. gcore/types/cloud/load_balancers/pool_create_params.py +6 -4
  118. gcore/types/cloud/load_balancers/pool_list_params.py +5 -6
  119. gcore/types/cloud/load_balancers/pool_update_params.py +6 -4
  120. gcore/types/cloud/load_balancers/pools/health_monitor_create_params.py +2 -0
  121. gcore/types/cloud/load_balancers/pools/member_add_params.py +5 -3
  122. gcore/types/cloud/member.py +2 -2
  123. gcore/types/cloud/network.py +22 -22
  124. gcore/types/cloud/network_create_params.py +2 -0
  125. gcore/types/cloud/network_details.py +25 -24
  126. gcore/types/cloud/network_list_params.py +15 -10
  127. gcore/types/cloud/network_update_params.py +2 -0
  128. gcore/types/cloud/networks/subnet_create_params.py +1 -1
  129. gcore/types/cloud/networks/subnet_list_params.py +2 -2
  130. gcore/types/cloud/quota_get_all_response.py +18 -0
  131. gcore/types/cloud/quota_get_by_region_response.py +18 -0
  132. gcore/types/cloud/quotas/request_create_params.py +9 -0
  133. gcore/types/cloud/quotas/request_get_response.py +9 -0
  134. gcore/types/cloud/quotas/request_list_response.py +9 -0
  135. gcore/types/cloud/region.py +4 -4
  136. gcore/types/cloud/registries/user_create_multiple_params.py +3 -5
  137. gcore/types/cloud/registries/user_create_params.py +3 -5
  138. gcore/types/cloud/registry_create_params.py +3 -5
  139. gcore/types/cloud/reserved_fixed_ip_create_params.py +2 -2
  140. gcore/types/cloud/reserved_fixed_ip_list_params.py +3 -3
  141. gcore/types/cloud/secret_list_params.py +24 -0
  142. gcore/types/cloud/security_group_list_params.py +1 -1
  143. gcore/types/cloud/session_persistence.py +1 -1
  144. gcore/types/cloud/ssh_key_created.py +3 -6
  145. gcore/types/cloud/task.py +1 -4
  146. gcore/types/cloud/task_list_params.py +56 -46
  147. gcore/types/cloud/users/role_assignment_create_params.py +1 -1
  148. gcore/types/cloud/users/role_assignment_update_params.py +1 -1
  149. gcore/types/cloud/volume_create_params.py +6 -6
  150. gcore/types/cloud/volume_list_params.py +3 -3
  151. gcore/types/waap/__init__.py +108 -0
  152. gcore/types/waap/client_me_response.py +34 -0
  153. gcore/types/waap/custom_page_set_create_params.py +35 -0
  154. gcore/types/waap/custom_page_set_list_params.py +25 -0
  155. gcore/types/waap/custom_page_set_preview_params.py +34 -0
  156. gcore/types/waap/custom_page_set_update_params.py +35 -0
  157. gcore/types/waap/domain_list_params.py +30 -0
  158. gcore/types/waap/domain_list_rule_sets_response.py +10 -0
  159. gcore/types/waap/domain_update_params.py +12 -0
  160. gcore/types/waap/domains/__init__.py +47 -0
  161. gcore/types/waap/domains/advanced_rule_create_params.py +80 -0
  162. gcore/types/waap/domains/advanced_rule_list_params.py +58 -0
  163. gcore/types/waap/domains/advanced_rule_update_params.py +83 -0
  164. gcore/types/waap/domains/analytics/__init__.py +5 -0
  165. gcore/types/waap/domains/analytics/request_list_params.py +53 -0
  166. gcore/types/waap/domains/analytics_get_event_statistics_params.py +34 -0
  167. gcore/types/waap/domains/analytics_list_ddos_attacks_params.py +28 -0
  168. gcore/types/waap/domains/analytics_list_ddos_info_params.py +31 -0
  169. gcore/types/waap/domains/analytics_list_event_traffic_params.py +26 -0
  170. gcore/types/waap/domains/analytics_list_event_traffic_response.py +10 -0
  171. gcore/types/waap/domains/api_discovery/__init__.py +7 -0
  172. gcore/types/waap/domains/api_discovery/scan_result_get_response.py +29 -0
  173. gcore/types/waap/domains/api_discovery/scan_result_list_params.py +41 -0
  174. gcore/types/waap/domains/api_discovery/scan_result_list_response.py +29 -0
  175. gcore/types/waap/domains/api_discovery_get_settings_response.py +36 -0
  176. gcore/types/waap/domains/api_discovery_scan_openapi_response.py +10 -0
  177. gcore/types/waap/domains/api_discovery_update_settings_params.py +34 -0
  178. gcore/types/waap/domains/api_discovery_update_settings_response.py +36 -0
  179. gcore/types/waap/domains/api_discovery_upload_openapi_params.py +19 -0
  180. gcore/types/waap/domains/api_discovery_upload_openapi_response.py +10 -0
  181. gcore/types/waap/domains/api_path_create_params.py +31 -0
  182. gcore/types/waap/domains/api_path_create_response.py +50 -0
  183. gcore/types/waap/domains/api_path_get_response.py +50 -0
  184. gcore/types/waap/domains/api_path_group_list_response.py +12 -0
  185. gcore/types/waap/domains/api_path_list_params.py +62 -0
  186. gcore/types/waap/domains/api_path_list_response.py +50 -0
  187. gcore/types/waap/domains/api_path_update_params.py +29 -0
  188. gcore/types/waap/domains/custom_rule_create_params.py +368 -0
  189. gcore/types/waap/domains/custom_rule_delete_multiple_params.py +13 -0
  190. gcore/types/waap/domains/custom_rule_list_params.py +35 -0
  191. gcore/types/waap/domains/custom_rule_update_params.py +371 -0
  192. gcore/types/waap/domains/firewall_rule_create_params.py +75 -0
  193. gcore/types/waap/domains/firewall_rule_delete_multiple_params.py +13 -0
  194. gcore/types/waap/domains/firewall_rule_list_params.py +33 -0
  195. gcore/types/waap/domains/firewall_rule_update_params.py +78 -0
  196. gcore/types/waap/domains/insight_list_params.py +34 -0
  197. gcore/types/waap/domains/insight_replace_params.py +17 -0
  198. gcore/types/waap/domains/insight_silence_create_params.py +28 -0
  199. gcore/types/waap/domains/insight_silence_list_params.py +33 -0
  200. gcore/types/waap/domains/insight_silence_update_params.py +28 -0
  201. gcore/types/waap/domains/setting_update_params.py +48 -0
  202. gcore/types/waap/ip_info_get_attack_time_series_params.py +12 -0
  203. gcore/types/waap/ip_info_get_attack_time_series_response.py +10 -0
  204. gcore/types/waap/ip_info_get_blocked_requests_params.py +15 -0
  205. gcore/types/waap/ip_info_get_blocked_requests_response.py +10 -0
  206. gcore/types/waap/ip_info_get_counts_params.py +19 -0
  207. gcore/types/waap/ip_info_get_ddos_attack_series_params.py +12 -0
  208. gcore/types/waap/ip_info_get_params.py +12 -0
  209. gcore/types/waap/ip_info_get_top_sessions_params.py +15 -0
  210. gcore/types/waap/ip_info_get_top_sessions_response.py +10 -0
  211. gcore/types/waap/ip_info_get_top_urls_params.py +15 -0
  212. gcore/types/waap/ip_info_get_top_urls_response.py +10 -0
  213. gcore/types/waap/ip_info_get_top_user_agents_params.py +15 -0
  214. gcore/types/waap/ip_info_get_top_user_agents_response.py +10 -0
  215. gcore/types/waap/ip_info_list_attacked_countries_params.py +12 -0
  216. gcore/types/waap/ip_info_list_attacked_countries_response.py +10 -0
  217. gcore/types/waap/organization_list_params.py +22 -0
  218. gcore/types/waap/statistic_get_usage_series_params.py +25 -0
  219. gcore/types/waap/tag_list_params.py +28 -0
  220. gcore/types/waap/waap_advanced_rule.py +83 -0
  221. gcore/types/waap/waap_advanced_rule_descriptor.py +49 -0
  222. gcore/types/waap/waap_advanced_rule_descriptor_list.py +15 -0
  223. gcore/types/waap/waap_block_csrf_page_data.py +28 -0
  224. gcore/types/waap/waap_block_csrf_page_data_param.py +28 -0
  225. gcore/types/waap/waap_block_page_data.py +28 -0
  226. gcore/types/waap/waap_block_page_data_param.py +28 -0
  227. gcore/types/waap/waap_blocked_statistics.py +36 -0
  228. gcore/types/waap/waap_captcha_page_data.py +31 -0
  229. gcore/types/waap/waap_captcha_page_data_param.py +31 -0
  230. gcore/types/waap/waap_common_tag.py +16 -0
  231. gcore/types/waap/waap_cookie_disabled_page_data.py +18 -0
  232. gcore/types/waap/waap_cookie_disabled_page_data_param.py +18 -0
  233. gcore/types/waap/waap_count_statistics.py +36 -0
  234. gcore/types/waap/waap_custom_page_preview.py +10 -0
  235. gcore/types/waap/waap_custom_page_set.py +36 -0
  236. gcore/types/waap/waap_custom_rule.py +373 -0
  237. gcore/types/waap/waap_customer_rule_state.py +7 -0
  238. gcore/types/waap/waap_ddos_attack.py +16 -0
  239. gcore/types/waap/waap_ddos_info.py +17 -0
  240. gcore/types/waap/waap_detailed_domain.py +37 -0
  241. gcore/types/waap/waap_domain_api_settings.py +22 -0
  242. gcore/types/waap/waap_domain_ddos_settings.py +31 -0
  243. gcore/types/waap/waap_domain_policy.py +29 -0
  244. gcore/types/waap/waap_domain_settings_model.py +15 -0
  245. gcore/types/waap/waap_domain_status.py +7 -0
  246. gcore/types/waap/waap_event_statistics.py +15 -0
  247. gcore/types/waap/waap_firewall_rule.py +78 -0
  248. gcore/types/waap/waap_get_account_overview_response.py +34 -0
  249. gcore/types/waap/waap_handshake_page_data.py +25 -0
  250. gcore/types/waap/waap_handshake_page_data_param.py +25 -0
  251. gcore/types/waap/waap_insight.py +38 -0
  252. gcore/types/waap/waap_insight_silence.py +28 -0
  253. gcore/types/waap/waap_insight_silence_sort_by.py +9 -0
  254. gcore/types/waap/waap_insight_sort_by.py +20 -0
  255. gcore/types/waap/waap_insight_status.py +7 -0
  256. gcore/types/waap/waap_ip_country_attack.py +16 -0
  257. gcore/types/waap/waap_ip_ddos_info_model.py +23 -0
  258. gcore/types/waap/waap_ip_info.py +57 -0
  259. gcore/types/waap/waap_ip_info_counts.py +16 -0
  260. gcore/types/waap/waap_javascript_disabled_page_data.py +18 -0
  261. gcore/types/waap/waap_javascript_disabled_page_data_param.py +18 -0
  262. gcore/types/waap/waap_network_details.py +17 -0
  263. gcore/types/waap/waap_organization.py +13 -0
  264. gcore/types/waap/waap_page_type.py +9 -0
  265. gcore/types/waap/waap_paginated_custom_page_set.py +22 -0
  266. gcore/types/waap/waap_paginated_ddos_attack.py +22 -0
  267. gcore/types/waap/waap_paginated_ddos_info.py +22 -0
  268. gcore/types/waap/waap_paginated_request_summary.py +22 -0
  269. gcore/types/waap/waap_pattern_matched_tag.py +37 -0
  270. gcore/types/waap/waap_policy_action.py +7 -0
  271. gcore/types/waap/waap_policy_mode.py +10 -0
  272. gcore/types/waap/waap_request_details.py +92 -0
  273. gcore/types/waap/waap_request_organization.py +13 -0
  274. gcore/types/waap/waap_request_summary.py +59 -0
  275. gcore/types/waap/waap_resolution.py +7 -0
  276. gcore/types/waap/waap_rule_action_type.py +7 -0
  277. gcore/types/waap/waap_rule_blocked_requests.py +16 -0
  278. gcore/types/waap/waap_rule_set.py +41 -0
  279. gcore/types/waap/waap_statistic_item.py +18 -0
  280. gcore/types/waap/waap_statistics_series.py +16 -0
  281. gcore/types/waap/waap_summary_domain.py +26 -0
  282. gcore/types/waap/waap_tag.py +16 -0
  283. gcore/types/waap/waap_time_series_attack.py +23 -0
  284. gcore/types/waap/waap_top_session.py +24 -0
  285. gcore/types/waap/waap_top_url.py +13 -0
  286. gcore/types/waap/waap_top_user_agent.py +13 -0
  287. gcore/types/waap/waap_traffic_metrics.py +68 -0
  288. gcore/types/waap/waap_traffic_type.py +28 -0
  289. gcore/types/waap/waap_user_agent_details.py +40 -0
  290. {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/METADATA +3 -3
  291. {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/RECORD +293 -126
  292. {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/WHEEL +0 -0
  293. {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,31 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["WaapDomainDDOSSettings"]
8
+
9
+
10
+ class WaapDomainDDOSSettings(BaseModel):
11
+ burst_threshold: Optional[int] = None
12
+ """The burst threshold detects sudden rises in traffic.
13
+
14
+ If it is met and the number of requests is at least five times the last 2-second
15
+ interval, DDoS protection will activate. Default is 1000.
16
+ """
17
+
18
+ global_threshold: Optional[int] = None
19
+ """
20
+ The global threshold is responsible for identifying DDoS attacks with a slow
21
+ rise in traffic. If the threshold is met and the current number of requests is
22
+ at least double that of the previous 10-second window, DDoS protection will
23
+ activate. Default is 5000.
24
+ """
25
+
26
+ sub_second_threshold: Optional[int] = None
27
+ """
28
+ The sub-second threshold protects WAAP servers against attacks from traffic
29
+ bursts. When this threshold is reached, the DDoS mode will activate on the
30
+ affected WAAP server, not the whole WAAP cluster. Default is 50.
31
+ """
@@ -0,0 +1,29 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from ..._models import BaseModel
4
+ from .waap_policy_action import WaapPolicyAction
5
+
6
+ __all__ = ["WaapDomainPolicy"]
7
+
8
+
9
+ class WaapDomainPolicy(BaseModel):
10
+ id: str
11
+ """Unique identifier for the security rule"""
12
+
13
+ action: WaapPolicyAction
14
+ """The action taken by the WAAP upon rule activation."""
15
+
16
+ description: str
17
+ """Detailed description of the security rule"""
18
+
19
+ group: str
20
+ """The rule set group name to which the rule belongs"""
21
+
22
+ mode: bool
23
+ """Indicates if the security rule is active"""
24
+
25
+ name: str
26
+ """Name of the security rule"""
27
+
28
+ rule_set_id: int
29
+ """Identifier of the rule set to which the rule belongs"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from ..._models import BaseModel
4
+ from .waap_domain_api_settings import WaapDomainAPISettings
5
+ from .waap_domain_ddos_settings import WaapDomainDDOSSettings
6
+
7
+ __all__ = ["WaapDomainSettingsModel"]
8
+
9
+
10
+ class WaapDomainSettingsModel(BaseModel):
11
+ api: WaapDomainAPISettings
12
+ """API settings of a domain"""
13
+
14
+ ddos: WaapDomainDDOSSettings
15
+ """DDoS settings for a domain."""
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["WaapDomainStatus"]
6
+
7
+ WaapDomainStatus: TypeAlias = Literal["active", "bypass", "monitor", "locked"]
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from ..._models import BaseModel
4
+ from .waap_count_statistics import WaapCountStatistics
5
+ from .waap_blocked_statistics import WaapBlockedStatistics
6
+
7
+ __all__ = ["WaapEventStatistics"]
8
+
9
+
10
+ class WaapEventStatistics(BaseModel):
11
+ blocked: WaapBlockedStatistics
12
+ """A collection of total numbers of events with blocked results per criteria"""
13
+
14
+ count: WaapCountStatistics
15
+ """A collection of total numbers of events per criteria"""
@@ -0,0 +1,78 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from ..._models import BaseModel
7
+
8
+ __all__ = ["WaapFirewallRule", "Action", "ActionBlock", "Condition", "ConditionIP", "ConditionIPRange"]
9
+
10
+
11
+ class ActionBlock(BaseModel):
12
+ action_duration: Optional[str] = None
13
+ """How long a rule's block action will apply to subsequent requests.
14
+
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)
17
+ """
18
+
19
+ status_code: Optional[Literal[403, 405, 418, 429]] = None
20
+ """Designates the HTTP status code to deliver when a request is blocked."""
21
+
22
+
23
+ class Action(BaseModel):
24
+ allow: Optional[object] = None
25
+ """The WAAP allowed the request"""
26
+
27
+ block: Optional[ActionBlock] = None
28
+ """
29
+ WAAP block action behavior could be configured with response status code and
30
+ action duration.
31
+ """
32
+
33
+
34
+ class ConditionIP(BaseModel):
35
+ ip_address: str
36
+ """A single IPv4 or IPv6 address"""
37
+
38
+ negation: Optional[bool] = None
39
+ """Whether or not to apply a boolean NOT operation to the rule's condition"""
40
+
41
+
42
+ class ConditionIPRange(BaseModel):
43
+ lower_bound: str
44
+ """The lower bound IPv4 or IPv6 address to match against"""
45
+
46
+ upper_bound: str
47
+ """The upper bound IPv4 or IPv6 address to match against"""
48
+
49
+ negation: Optional[bool] = None
50
+ """Whether or not to apply a boolean NOT operation to the rule's condition"""
51
+
52
+
53
+ class Condition(BaseModel):
54
+ ip: Optional[ConditionIP] = None
55
+ """Match the incoming request against a single IP address"""
56
+
57
+ ip_range: Optional[ConditionIPRange] = None
58
+ """Match the incoming request against an IP range"""
59
+
60
+
61
+ class WaapFirewallRule(BaseModel):
62
+ id: int
63
+ """The unique identifier of the rule"""
64
+
65
+ action: Action
66
+ """The action that a firewall rule takes when triggered"""
67
+
68
+ conditions: List[Condition]
69
+ """The condition required for the WAAP engine to trigger the rule."""
70
+
71
+ enabled: bool
72
+ """Whether or not the rule is enabled"""
73
+
74
+ name: str
75
+ """The name assigned to the rule"""
76
+
77
+ description: Optional[str] = None
78
+ """The description assigned to the rule"""
@@ -0,0 +1,34 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, List, Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["WaapGetAccountOverviewResponse", "Quotas", "Service"]
8
+
9
+
10
+ class Quotas(BaseModel):
11
+ allowed: int
12
+ """The maximum allowed number of this resource"""
13
+
14
+ current: int
15
+ """The current number of this resource"""
16
+
17
+
18
+ class Service(BaseModel):
19
+ enabled: bool
20
+ """Whether the service is enabled"""
21
+
22
+
23
+ class WaapGetAccountOverviewResponse(BaseModel):
24
+ id: Optional[int] = None
25
+ """The client ID"""
26
+
27
+ features: List[str]
28
+ """List of enabled features"""
29
+
30
+ quotas: Dict[str, Quotas]
31
+ """Quotas for the client"""
32
+
33
+ service: Service
34
+ """Information about the WAAP service status"""
@@ -0,0 +1,25 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["WaapHandshakePageData"]
8
+
9
+
10
+ class WaapHandshakePageData(BaseModel):
11
+ enabled: bool
12
+ """Indicates whether the custom custom page is active or inactive"""
13
+
14
+ header: Optional[str] = None
15
+ """The text to display in the header of the custom page"""
16
+
17
+ logo: Optional[str] = None
18
+ """
19
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
20
+ height 130px. This should be a base 64 encoding of the full HTML img tag
21
+ compatible image, with the header included.
22
+ """
23
+
24
+ title: Optional[str] = None
25
+ """The text to display in the title of the custom page"""
@@ -0,0 +1,25 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["WaapHandshakePageDataParam"]
8
+
9
+
10
+ class WaapHandshakePageDataParam(TypedDict, total=False):
11
+ enabled: Required[bool]
12
+ """Indicates whether the custom custom page is active or inactive"""
13
+
14
+ header: str
15
+ """The text to display in the header of the custom page"""
16
+
17
+ logo: str
18
+ """
19
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
20
+ height 130px. This should be a base 64 encoding of the full HTML img tag
21
+ compatible image, with the header included.
22
+ """
23
+
24
+ title: str
25
+ """The text to display in the title of the custom page"""
@@ -0,0 +1,38 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict
4
+ from datetime import datetime
5
+
6
+ from ..._models import BaseModel
7
+ from .waap_insight_status import WaapInsightStatus
8
+
9
+ __all__ = ["WaapInsight"]
10
+
11
+
12
+ class WaapInsight(BaseModel):
13
+ id: str
14
+ """A generated unique identifier for the insight"""
15
+
16
+ description: str
17
+ """The description of the insight"""
18
+
19
+ first_seen: datetime
20
+ """The date and time the insight was first seen in ISO 8601 format"""
21
+
22
+ insight_type: str
23
+ """The type of the insight represented as a slug"""
24
+
25
+ labels: Dict[str, str]
26
+ """A hash table of label names and values that apply to the insight"""
27
+
28
+ last_seen: datetime
29
+ """The date and time the insight was last seen in ISO 8601 format"""
30
+
31
+ last_status_change: datetime
32
+ """The date and time the insight was last seen in ISO 8601 format"""
33
+
34
+ recommendation: str
35
+ """The recommended action to perform to resolve the insight"""
36
+
37
+ status: WaapInsightStatus
38
+ """The different statuses an insight can have"""
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, Optional
4
+ from datetime import datetime
5
+
6
+ from ..._models import BaseModel
7
+
8
+ __all__ = ["WaapInsightSilence"]
9
+
10
+
11
+ class WaapInsightSilence(BaseModel):
12
+ id: str
13
+ """A generated unique identifier for the silence"""
14
+
15
+ author: str
16
+ """The author of the silence"""
17
+
18
+ comment: str
19
+ """A comment explaining the reason for the silence"""
20
+
21
+ expire_at: Optional[datetime] = None
22
+ """The date and time the silence expires in ISO 8601 format"""
23
+
24
+ insight_type: str
25
+ """The slug of the insight type"""
26
+
27
+ labels: Dict[str, str]
28
+ """A hash table of label names and values that apply to the insight silence"""
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["WaapInsightSilenceSortBy"]
6
+
7
+ WaapInsightSilenceSortBy: TypeAlias = Literal[
8
+ "id", "-id", "insight_type", "-insight_type", "comment", "-comment", "author", "-author", "expire_at", "-expire_at"
9
+ ]
@@ -0,0 +1,20 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["WaapInsightSortBy"]
6
+
7
+ WaapInsightSortBy: TypeAlias = Literal[
8
+ "id",
9
+ "-id",
10
+ "insight_type",
11
+ "-insight_type",
12
+ "first_seen",
13
+ "-first_seen",
14
+ "last_seen",
15
+ "-last_seen",
16
+ "last_status_change",
17
+ "-last_status_change",
18
+ "status",
19
+ "-status",
20
+ ]
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["WaapInsightStatus"]
6
+
7
+ WaapInsightStatus: TypeAlias = Literal["OPEN", "ACKED", "CLOSED"]
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from ..._models import BaseModel
4
+
5
+ __all__ = ["WaapIPCountryAttack"]
6
+
7
+
8
+ class WaapIPCountryAttack(BaseModel):
9
+ count: int
10
+ """The number of attacks from the specified IP address to the country"""
11
+
12
+ country: str
13
+ """
14
+ An ISO 3166-1 alpha-2 formatted string representing the country that was
15
+ attacked
16
+ """
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["WaapIPDDOSInfoModel", "TimeSery"]
8
+
9
+
10
+ class TimeSery(BaseModel):
11
+ count: int
12
+ """The number of attacks"""
13
+
14
+ timestamp: int
15
+ """The timestamp of the time series item as a POSIX timestamp"""
16
+
17
+
18
+ class WaapIPDDOSInfoModel(BaseModel):
19
+ botnet_client: bool
20
+ """Indicates if the IP is tagged as a botnet client"""
21
+
22
+ time_series: List[TimeSery]
23
+ """The time series data for the DDoS attacks from the IP address"""
@@ -0,0 +1,57 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from ..._models import BaseModel
7
+
8
+ __all__ = ["WaapIPInfo", "Whois"]
9
+
10
+
11
+ class Whois(BaseModel):
12
+ abuse_mail: Optional[str] = None
13
+ """The abuse mail"""
14
+
15
+ cidr: Optional[int] = None
16
+ """The CIDR"""
17
+
18
+ country: Optional[str] = None
19
+ """The country"""
20
+
21
+ net_description: Optional[str] = None
22
+ """The network description"""
23
+
24
+ net_name: Optional[str] = None
25
+ """The network name"""
26
+
27
+ net_range: Optional[str] = None
28
+ """The network range"""
29
+
30
+ net_type: Optional[str] = None
31
+ """The network type"""
32
+
33
+ org_id: Optional[str] = None
34
+ """The organization ID"""
35
+
36
+ org_name: Optional[str] = None
37
+ """The organization name"""
38
+
39
+ owner_type: Optional[str] = None
40
+ """The owner type"""
41
+
42
+ rir: Optional[str] = None
43
+ """The RIR"""
44
+
45
+ state: Optional[str] = None
46
+ """The state"""
47
+
48
+
49
+ class WaapIPInfo(BaseModel):
50
+ risk_score: Literal["NO_RISK", "LOW", "MEDIUM", "HIGH", "EXTREME", "NOT_ENOUGH_DATA"]
51
+ """The risk score of the IP address"""
52
+
53
+ tags: List[str]
54
+ """The tags associated with the IP address that affect the risk score"""
55
+
56
+ whois: Whois
57
+ """The WHOIS information for the IP address"""
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from ..._models import BaseModel
4
+
5
+ __all__ = ["WaapIPInfoCounts"]
6
+
7
+
8
+ class WaapIPInfoCounts(BaseModel):
9
+ blocked_requests: int
10
+ """The number of requests from the IP address that were blocked"""
11
+
12
+ total_requests: int
13
+ """The total number of requests made by the IP address"""
14
+
15
+ unique_sessions: int
16
+ """The number of unique sessions from the IP address"""
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["WaapJavascriptDisabledPageData"]
8
+
9
+
10
+ class WaapJavascriptDisabledPageData(BaseModel):
11
+ enabled: bool
12
+ """Indicates whether the custom custom page is active or inactive"""
13
+
14
+ header: Optional[str] = None
15
+ """The text to display in the header of the custom page"""
16
+
17
+ text: Optional[str] = None
18
+ """The text to display in the body of the custom page"""
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["WaapJavascriptDisabledPageDataParam"]
8
+
9
+
10
+ class WaapJavascriptDisabledPageDataParam(TypedDict, total=False):
11
+ enabled: Required[bool]
12
+ """Indicates whether the custom custom page is active or inactive"""
13
+
14
+ header: str
15
+ """The text to display in the header of the custom page"""
16
+
17
+ text: str
18
+ """The text to display in the body of the custom page"""
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from ..._models import BaseModel
4
+ from .waap_request_organization import WaapRequestOrganization
5
+
6
+ __all__ = ["WaapNetworkDetails"]
7
+
8
+
9
+ class WaapNetworkDetails(BaseModel):
10
+ client_ip: str
11
+ """Client IP"""
12
+
13
+ country: str
14
+ """Country code"""
15
+
16
+ organization: WaapRequestOrganization
17
+ """Organization details"""
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from ..._models import BaseModel
4
+
5
+ __all__ = ["WaapOrganization"]
6
+
7
+
8
+ class WaapOrganization(BaseModel):
9
+ id: int
10
+ """The ID of an organization"""
11
+
12
+ name: str
13
+ """The name of an organization"""
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["WaapPageType"]
6
+
7
+ WaapPageType: TypeAlias = Literal[
8
+ "block.html", "block_csrf.html", "captcha.html", "cookieDisabled.html", "handshake.html", "javascriptDisabled.html"
9
+ ]
@@ -0,0 +1,22 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ..._models import BaseModel
6
+ from .waap_custom_page_set import WaapCustomPageSet
7
+
8
+ __all__ = ["WaapPaginatedCustomPageSet"]
9
+
10
+
11
+ class WaapPaginatedCustomPageSet(BaseModel):
12
+ count: int
13
+ """Number of items contain in the response"""
14
+
15
+ limit: int
16
+ """Number of items requested in the response"""
17
+
18
+ offset: int
19
+ """Items response offset used"""
20
+
21
+ results: List[WaapCustomPageSet]
22
+ """List of items returned in the response following given criteria"""
@@ -0,0 +1,22 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ..._models import BaseModel
6
+ from .waap_ddos_attack import WaapDDOSAttack
7
+
8
+ __all__ = ["WaapPaginatedDDOSAttack"]
9
+
10
+
11
+ class WaapPaginatedDDOSAttack(BaseModel):
12
+ count: int
13
+ """Number of items contain in the response"""
14
+
15
+ limit: int
16
+ """Number of items requested in the response"""
17
+
18
+ offset: int
19
+ """Items response offset used"""
20
+
21
+ results: List[WaapDDOSAttack]
22
+ """List of items returned in the response following given criteria"""
@@ -0,0 +1,22 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ..._models import BaseModel
6
+ from .waap_ddos_info import WaapDDOSInfo
7
+
8
+ __all__ = ["WaapPaginatedDDOSInfo"]
9
+
10
+
11
+ class WaapPaginatedDDOSInfo(BaseModel):
12
+ count: int
13
+ """Number of items contain in the response"""
14
+
15
+ limit: int
16
+ """Number of items requested in the response"""
17
+
18
+ offset: int
19
+ """Items response offset used"""
20
+
21
+ results: List[WaapDDOSInfo]
22
+ """List of items returned in the response following given criteria"""
@@ -0,0 +1,22 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ..._models import BaseModel
6
+ from .waap_request_summary import WaapRequestSummary
7
+
8
+ __all__ = ["WaapPaginatedRequestSummary"]
9
+
10
+
11
+ class WaapPaginatedRequestSummary(BaseModel):
12
+ count: int
13
+ """Number of items contain in the response"""
14
+
15
+ limit: int
16
+ """Number of items requested in the response"""
17
+
18
+ offset: int
19
+ """Items response offset used"""
20
+
21
+ results: List[WaapRequestSummary]
22
+ """List of items returned in the response following given criteria"""