gcore 0.2.0__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 (258) hide show
  1. gcore/_base_client.py +22 -2
  2. gcore/_models.py +2 -0
  3. gcore/_types.py +2 -0
  4. gcore/_version.py +1 -1
  5. gcore/resources/cloud/baremetal/flavors.py +2 -2
  6. gcore/resources/cloud/baremetal/images.py +2 -2
  7. gcore/resources/cloud/baremetal/servers.py +46 -52
  8. gcore/resources/cloud/floating_ips.py +4 -4
  9. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +8 -8
  10. gcore/resources/cloud/gpu_baremetal_clusters/images.py +2 -2
  11. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +4 -4
  12. gcore/resources/cloud/inference/deployments/deployments.py +6 -6
  13. gcore/resources/cloud/instances/flavors.py +2 -2
  14. gcore/resources/cloud/instances/images.py +2 -2
  15. gcore/resources/cloud/instances/instances.py +62 -70
  16. gcore/resources/cloud/instances/interfaces.py +4 -4
  17. gcore/resources/cloud/load_balancers/flavors.py +2 -2
  18. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +20 -20
  19. gcore/resources/cloud/load_balancers/listeners.py +14 -14
  20. gcore/resources/cloud/load_balancers/load_balancers.py +28 -24
  21. gcore/resources/cloud/load_balancers/pools/members.py +6 -6
  22. gcore/resources/cloud/networks/networks.py +4 -4
  23. gcore/resources/cloud/networks/subnets.py +6 -6
  24. gcore/resources/cloud/registries/registries.py +6 -10
  25. gcore/resources/cloud/registries/users.py +4 -10
  26. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +10 -10
  27. gcore/resources/cloud/security_groups/security_groups.py +2 -2
  28. gcore/resources/cloud/ssh_keys.py +2 -2
  29. gcore/resources/cloud/tasks.py +98 -90
  30. gcore/resources/cloud/users/role_assignments.py +4 -4
  31. gcore/resources/cloud/volumes.py +18 -18
  32. gcore/resources/waap/__init__.py +98 -0
  33. gcore/resources/waap/advanced_rules.py +135 -0
  34. gcore/resources/waap/clients.py +135 -0
  35. gcore/resources/waap/custom_page_sets.py +805 -0
  36. gcore/resources/waap/domains/__init__.py +140 -0
  37. gcore/resources/waap/domains/advanced_rules.py +876 -0
  38. gcore/resources/waap/domains/analytics/__init__.py +33 -0
  39. gcore/resources/waap/domains/analytics/analytics.py +676 -0
  40. gcore/resources/waap/domains/analytics/requests.py +378 -0
  41. gcore/resources/waap/domains/api_discovery/__init__.py +33 -0
  42. gcore/resources/waap/domains/api_discovery/api_discovery.py +530 -0
  43. gcore/resources/waap/domains/api_discovery/scan_results.py +352 -0
  44. gcore/resources/waap/domains/api_path_groups.py +163 -0
  45. gcore/resources/waap/domains/api_paths.py +771 -0
  46. gcore/resources/waap/domains/custom_rules.py +889 -0
  47. gcore/resources/waap/domains/domains.py +399 -0
  48. gcore/resources/waap/domains/firewall_rules.py +884 -0
  49. gcore/resources/waap/domains/insight_silences.py +689 -0
  50. gcore/resources/waap/domains/insights.py +425 -0
  51. gcore/resources/waap/domains/policies.py +173 -0
  52. gcore/resources/waap/domains/settings.py +5 -5
  53. gcore/resources/waap/ip_info.py +1017 -0
  54. gcore/resources/waap/organizations.py +217 -0
  55. gcore/resources/waap/statistics.py +225 -0
  56. gcore/resources/waap/tags.py +233 -0
  57. gcore/resources/waap/waap.py +289 -0
  58. gcore/types/cloud/allowed_address_pairs.py +2 -2
  59. gcore/types/cloud/baremetal/baremetal_server.py +1 -1
  60. gcore/types/cloud/baremetal/image_list_params.py +1 -1
  61. gcore/types/cloud/baremetal/server_create_params.py +9 -9
  62. gcore/types/cloud/baremetal/server_list_params.py +8 -8
  63. gcore/types/cloud/baremetal/server_rebuild_params.py +1 -1
  64. gcore/types/cloud/baremetal_flavor.py +3 -3
  65. gcore/types/cloud/container_probe_config.py +1 -1
  66. gcore/types/cloud/container_probe_config_create_param.py +1 -1
  67. gcore/types/cloud/container_scale_triggers.py +2 -2
  68. gcore/types/cloud/floating_ip_detailed.py +1 -1
  69. gcore/types/cloud/floating_ip_list_params.py +2 -2
  70. gcore/types/cloud/gpu_baremetal_cluster.py +1 -1
  71. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +2 -2
  72. gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +1 -1
  73. gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +1 -1
  74. gcore/types/cloud/gpu_baremetal_cluster_server.py +1 -1
  75. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +1 -1
  76. gcore/types/cloud/gpu_baremetal_clusters/server_attach_interface_params.py +10 -10
  77. gcore/types/cloud/gpu_baremetal_flavor.py +3 -3
  78. gcore/types/cloud/image.py +1 -1
  79. gcore/types/cloud/inference/deployment_create_params.py +4 -4
  80. gcore/types/cloud/inference/deployment_update_params.py +6 -6
  81. gcore/types/cloud/inference/inference.py +2 -4
  82. gcore/types/cloud/instance.py +1 -1
  83. gcore/types/cloud/instance_create_params.py +8 -10
  84. gcore/types/cloud/instance_list_params.py +8 -8
  85. gcore/types/cloud/instances/flavor_list_suitable_params.py +4 -1
  86. gcore/types/cloud/instances/image_list_params.py +1 -1
  87. gcore/types/cloud/instances/instance_flavor.py +3 -3
  88. gcore/types/cloud/instances/interface_attach_params.py +10 -10
  89. gcore/types/cloud/load_balancer_create_params.py +17 -15
  90. gcore/types/cloud/load_balancer_flavor_detail.py +3 -3
  91. gcore/types/cloud/load_balancer_l7_policy.py +5 -5
  92. gcore/types/cloud/load_balancer_list_params.py +5 -5
  93. gcore/types/cloud/load_balancer_listener_detail.py +4 -4
  94. gcore/types/cloud/load_balancers/l7_policy_create_params.py +5 -5
  95. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +5 -5
  96. gcore/types/cloud/load_balancers/listener_create_params.py +4 -4
  97. gcore/types/cloud/load_balancers/listener_update_params.py +3 -3
  98. gcore/types/cloud/load_balancers/pool_create_params.py +4 -4
  99. gcore/types/cloud/load_balancers/pool_update_params.py +4 -4
  100. gcore/types/cloud/load_balancers/pools/member_add_params.py +3 -3
  101. gcore/types/cloud/member.py +2 -2
  102. gcore/types/cloud/network.py +2 -2
  103. gcore/types/cloud/network_details.py +2 -2
  104. gcore/types/cloud/network_list_params.py +2 -2
  105. gcore/types/cloud/networks/subnet_create_params.py +1 -1
  106. gcore/types/cloud/networks/subnet_list_params.py +2 -2
  107. gcore/types/cloud/region.py +4 -4
  108. gcore/types/cloud/registries/user_create_multiple_params.py +3 -5
  109. gcore/types/cloud/registries/user_create_params.py +3 -5
  110. gcore/types/cloud/registry_create_params.py +3 -5
  111. gcore/types/cloud/reserved_fixed_ip_create_params.py +2 -2
  112. gcore/types/cloud/reserved_fixed_ip_list_params.py +3 -3
  113. gcore/types/cloud/security_group_list_params.py +1 -1
  114. gcore/types/cloud/session_persistence.py +1 -1
  115. gcore/types/cloud/ssh_key_created.py +3 -6
  116. gcore/types/cloud/task.py +1 -1
  117. gcore/types/cloud/task_list_params.py +49 -45
  118. gcore/types/cloud/users/role_assignment_create_params.py +1 -1
  119. gcore/types/cloud/users/role_assignment_update_params.py +1 -1
  120. gcore/types/cloud/volume_create_params.py +6 -6
  121. gcore/types/cloud/volume_list_params.py +3 -3
  122. gcore/types/waap/__init__.py +98 -2
  123. gcore/types/waap/client_me_response.py +34 -0
  124. gcore/types/waap/custom_page_set_create_params.py +35 -0
  125. gcore/types/waap/custom_page_set_list_params.py +25 -0
  126. gcore/types/waap/custom_page_set_preview_params.py +34 -0
  127. gcore/types/waap/custom_page_set_update_params.py +35 -0
  128. gcore/types/waap/domain_list_rule_sets_response.py +10 -0
  129. gcore/types/waap/domains/__init__.py +42 -0
  130. gcore/types/waap/domains/advanced_rule_create_params.py +80 -0
  131. gcore/types/waap/domains/advanced_rule_list_params.py +58 -0
  132. gcore/types/waap/domains/advanced_rule_update_params.py +83 -0
  133. gcore/types/waap/domains/analytics/__init__.py +5 -0
  134. gcore/types/waap/domains/analytics/request_list_params.py +53 -0
  135. gcore/types/waap/domains/analytics_get_event_statistics_params.py +34 -0
  136. gcore/types/waap/domains/analytics_list_ddos_attacks_params.py +28 -0
  137. gcore/types/waap/domains/analytics_list_ddos_info_params.py +31 -0
  138. gcore/types/waap/domains/analytics_list_event_traffic_params.py +26 -0
  139. gcore/types/waap/domains/analytics_list_event_traffic_response.py +10 -0
  140. gcore/types/waap/domains/api_discovery/__init__.py +7 -0
  141. gcore/types/waap/domains/api_discovery/scan_result_get_response.py +29 -0
  142. gcore/types/waap/domains/api_discovery/scan_result_list_params.py +41 -0
  143. gcore/types/waap/domains/api_discovery/scan_result_list_response.py +29 -0
  144. gcore/types/waap/domains/api_discovery_get_settings_response.py +36 -0
  145. gcore/types/waap/domains/api_discovery_scan_openapi_response.py +10 -0
  146. gcore/types/waap/domains/api_discovery_update_settings_params.py +34 -0
  147. gcore/types/waap/domains/api_discovery_update_settings_response.py +36 -0
  148. gcore/types/waap/domains/api_discovery_upload_openapi_params.py +19 -0
  149. gcore/types/waap/domains/api_discovery_upload_openapi_response.py +10 -0
  150. gcore/types/waap/domains/api_path_create_params.py +31 -0
  151. gcore/types/waap/domains/api_path_create_response.py +50 -0
  152. gcore/types/waap/domains/api_path_get_response.py +50 -0
  153. gcore/types/waap/domains/api_path_group_list_response.py +12 -0
  154. gcore/types/waap/domains/api_path_list_params.py +62 -0
  155. gcore/types/waap/domains/api_path_list_response.py +50 -0
  156. gcore/types/waap/domains/api_path_update_params.py +29 -0
  157. gcore/types/waap/domains/custom_rule_create_params.py +368 -0
  158. gcore/types/waap/domains/custom_rule_delete_multiple_params.py +13 -0
  159. gcore/types/waap/domains/custom_rule_list_params.py +35 -0
  160. gcore/types/waap/domains/custom_rule_update_params.py +371 -0
  161. gcore/types/waap/domains/firewall_rule_create_params.py +75 -0
  162. gcore/types/waap/domains/firewall_rule_delete_multiple_params.py +13 -0
  163. gcore/types/waap/domains/firewall_rule_list_params.py +33 -0
  164. gcore/types/waap/domains/firewall_rule_update_params.py +78 -0
  165. gcore/types/waap/domains/insight_list_params.py +34 -0
  166. gcore/types/waap/domains/insight_replace_params.py +17 -0
  167. gcore/types/waap/domains/insight_silence_create_params.py +28 -0
  168. gcore/types/waap/domains/insight_silence_list_params.py +33 -0
  169. gcore/types/waap/domains/insight_silence_update_params.py +28 -0
  170. gcore/types/waap/domains/setting_update_params.py +7 -0
  171. gcore/types/waap/ip_info_get_attack_time_series_params.py +12 -0
  172. gcore/types/waap/ip_info_get_attack_time_series_response.py +10 -0
  173. gcore/types/waap/ip_info_get_blocked_requests_params.py +15 -0
  174. gcore/types/waap/ip_info_get_blocked_requests_response.py +10 -0
  175. gcore/types/waap/ip_info_get_counts_params.py +19 -0
  176. gcore/types/waap/ip_info_get_ddos_attack_series_params.py +12 -0
  177. gcore/types/waap/ip_info_get_params.py +12 -0
  178. gcore/types/waap/ip_info_get_top_sessions_params.py +15 -0
  179. gcore/types/waap/ip_info_get_top_sessions_response.py +10 -0
  180. gcore/types/waap/ip_info_get_top_urls_params.py +15 -0
  181. gcore/types/waap/ip_info_get_top_urls_response.py +10 -0
  182. gcore/types/waap/ip_info_get_top_user_agents_params.py +15 -0
  183. gcore/types/waap/ip_info_get_top_user_agents_response.py +10 -0
  184. gcore/types/waap/ip_info_list_attacked_countries_params.py +12 -0
  185. gcore/types/waap/ip_info_list_attacked_countries_response.py +10 -0
  186. gcore/types/waap/organization_list_params.py +22 -0
  187. gcore/types/waap/statistic_get_usage_series_params.py +25 -0
  188. gcore/types/waap/tag_list_params.py +28 -0
  189. gcore/types/waap/waap_advanced_rule.py +83 -0
  190. gcore/types/waap/waap_advanced_rule_descriptor.py +49 -0
  191. gcore/types/waap/waap_advanced_rule_descriptor_list.py +15 -0
  192. gcore/types/waap/waap_block_csrf_page_data.py +28 -0
  193. gcore/types/waap/waap_block_csrf_page_data_param.py +28 -0
  194. gcore/types/waap/waap_block_page_data.py +28 -0
  195. gcore/types/waap/waap_block_page_data_param.py +28 -0
  196. gcore/types/waap/waap_blocked_statistics.py +36 -0
  197. gcore/types/waap/waap_captcha_page_data.py +31 -0
  198. gcore/types/waap/waap_captcha_page_data_param.py +31 -0
  199. gcore/types/waap/waap_common_tag.py +16 -0
  200. gcore/types/waap/waap_cookie_disabled_page_data.py +18 -0
  201. gcore/types/waap/waap_cookie_disabled_page_data_param.py +18 -0
  202. gcore/types/waap/waap_count_statistics.py +36 -0
  203. gcore/types/waap/waap_custom_page_preview.py +10 -0
  204. gcore/types/waap/waap_custom_page_set.py +36 -0
  205. gcore/types/waap/waap_custom_rule.py +373 -0
  206. gcore/types/waap/waap_customer_rule_state.py +7 -0
  207. gcore/types/waap/waap_ddos_attack.py +16 -0
  208. gcore/types/waap/waap_ddos_info.py +17 -0
  209. gcore/types/waap/{waap_api_urls.py → waap_domain_api_settings.py} +9 -2
  210. gcore/types/waap/waap_domain_policy.py +29 -0
  211. gcore/types/waap/{waap_domain_settings.py → waap_domain_settings_model.py} +4 -4
  212. gcore/types/waap/waap_event_statistics.py +15 -0
  213. gcore/types/waap/waap_firewall_rule.py +78 -0
  214. gcore/types/waap/waap_get_account_overview_response.py +34 -0
  215. gcore/types/waap/waap_handshake_page_data.py +25 -0
  216. gcore/types/waap/waap_handshake_page_data_param.py +25 -0
  217. gcore/types/waap/waap_insight.py +38 -0
  218. gcore/types/waap/waap_insight_silence.py +28 -0
  219. gcore/types/waap/waap_insight_silence_sort_by.py +9 -0
  220. gcore/types/waap/waap_insight_sort_by.py +20 -0
  221. gcore/types/waap/waap_insight_status.py +7 -0
  222. gcore/types/waap/waap_ip_country_attack.py +16 -0
  223. gcore/types/waap/waap_ip_ddos_info_model.py +23 -0
  224. gcore/types/waap/waap_ip_info.py +57 -0
  225. gcore/types/waap/waap_ip_info_counts.py +16 -0
  226. gcore/types/waap/waap_javascript_disabled_page_data.py +18 -0
  227. gcore/types/waap/waap_javascript_disabled_page_data_param.py +18 -0
  228. gcore/types/waap/waap_network_details.py +17 -0
  229. gcore/types/waap/waap_organization.py +13 -0
  230. gcore/types/waap/waap_page_type.py +9 -0
  231. gcore/types/waap/waap_paginated_custom_page_set.py +22 -0
  232. gcore/types/waap/waap_paginated_ddos_attack.py +22 -0
  233. gcore/types/waap/waap_paginated_ddos_info.py +22 -0
  234. gcore/types/waap/waap_paginated_request_summary.py +22 -0
  235. gcore/types/waap/waap_pattern_matched_tag.py +37 -0
  236. gcore/types/waap/waap_policy_action.py +7 -0
  237. gcore/types/waap/waap_policy_mode.py +10 -0
  238. gcore/types/waap/waap_request_details.py +92 -0
  239. gcore/types/waap/waap_request_organization.py +13 -0
  240. gcore/types/waap/waap_request_summary.py +59 -0
  241. gcore/types/waap/waap_resolution.py +7 -0
  242. gcore/types/waap/waap_rule_action_type.py +7 -0
  243. gcore/types/waap/waap_rule_blocked_requests.py +16 -0
  244. gcore/types/waap/waap_rule_set.py +41 -0
  245. gcore/types/waap/waap_statistic_item.py +18 -0
  246. gcore/types/waap/waap_statistics_series.py +16 -0
  247. gcore/types/waap/waap_tag.py +16 -0
  248. gcore/types/waap/waap_time_series_attack.py +23 -0
  249. gcore/types/waap/waap_top_session.py +24 -0
  250. gcore/types/waap/waap_top_url.py +13 -0
  251. gcore/types/waap/waap_top_user_agent.py +13 -0
  252. gcore/types/waap/waap_traffic_metrics.py +68 -0
  253. gcore/types/waap/waap_traffic_type.py +28 -0
  254. gcore/types/waap/waap_user_agent_details.py +40 -0
  255. {gcore-0.2.0.dist-info → gcore-0.3.0.dist-info}/METADATA +1 -1
  256. {gcore-0.2.0.dist-info → gcore-0.3.0.dist-info}/RECORD +258 -109
  257. {gcore-0.2.0.dist-info → gcore-0.3.0.dist-info}/WHEEL +0 -0
  258. {gcore-0.2.0.dist-info → gcore-0.3.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, Union
6
+ from datetime import datetime
7
+ from typing_extensions import Required, Annotated, TypedDict
8
+
9
+ from ...._utils import PropertyInfo
10
+
11
+ __all__ = ["InsightSilenceUpdateParams"]
12
+
13
+
14
+ class InsightSilenceUpdateParams(TypedDict, total=False):
15
+ domain_id: Required[int]
16
+ """The domain ID"""
17
+
18
+ author: Required[str]
19
+ """The author of the silence"""
20
+
21
+ comment: Required[str]
22
+ """A comment explaining the reason for the silence"""
23
+
24
+ expire_at: Required[Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]]
25
+ """The date and time the silence expires in ISO 8601 format"""
26
+
27
+ labels: Dict[str, str]
28
+ """A hash table of label names and values that apply to the insight silence"""
@@ -23,6 +23,13 @@ class API(TypedDict, total=False):
23
23
  If your domain has a common base URL for all API paths, it can be set here
24
24
  """
25
25
 
26
+ is_api: bool
27
+ """Indicates if the domain is an API domain.
28
+
29
+ All requests to an API domain are treated as API requests. If this is set to
30
+ true then the `api_urls` field is ignored.
31
+ """
32
+
26
33
 
27
34
  class DDOS(TypedDict, total=False):
28
35
  burst_threshold: int
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["IPInfoGetAttackTimeSeriesParams"]
8
+
9
+
10
+ class IPInfoGetAttackTimeSeriesParams(TypedDict, total=False):
11
+ ip: Required[str]
12
+ """The IP address to check"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .waap_time_series_attack import WaapTimeSeriesAttack
7
+
8
+ __all__ = ["IPInfoGetAttackTimeSeriesResponse"]
9
+
10
+ IPInfoGetAttackTimeSeriesResponse: TypeAlias = List[WaapTimeSeriesAttack]
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["IPInfoGetBlockedRequestsParams"]
8
+
9
+
10
+ class IPInfoGetBlockedRequestsParams(TypedDict, total=False):
11
+ domain_id: Required[int]
12
+ """The domain ID"""
13
+
14
+ ip: Required[str]
15
+ """The IP address to check"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .waap_rule_blocked_requests import WaapRuleBlockedRequests
7
+
8
+ __all__ = ["IPInfoGetBlockedRequestsResponse"]
9
+
10
+ IPInfoGetBlockedRequestsResponse: TypeAlias = List[WaapRuleBlockedRequests]
@@ -0,0 +1,19 @@
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__ = ["IPInfoGetCountsParams"]
8
+
9
+
10
+ class IPInfoGetCountsParams(TypedDict, total=False):
11
+ ip: Required[str]
12
+ """The IP address to check"""
13
+
14
+ domain_id: int
15
+ """The identifier for a domain.
16
+
17
+ When specified, the response will exclusively contain data pertinent to the
18
+ indicated domain, filtering out information from other domains.
19
+ """
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["IPInfoGetDDOSAttackSeriesParams"]
8
+
9
+
10
+ class IPInfoGetDDOSAttackSeriesParams(TypedDict, total=False):
11
+ ip: Required[str]
12
+ """The IP address to check"""
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["IPInfoGetParams"]
8
+
9
+
10
+ class IPInfoGetParams(TypedDict, total=False):
11
+ ip: Required[str]
12
+ """The IP address to check"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["IPInfoGetTopSessionsParams"]
8
+
9
+
10
+ class IPInfoGetTopSessionsParams(TypedDict, total=False):
11
+ domain_id: Required[int]
12
+ """The domain ID"""
13
+
14
+ ip: Required[str]
15
+ """The IP address to check"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .waap_top_session import WaapTopSession
7
+
8
+ __all__ = ["IPInfoGetTopSessionsResponse"]
9
+
10
+ IPInfoGetTopSessionsResponse: TypeAlias = List[WaapTopSession]
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["IPInfoGetTopURLsParams"]
8
+
9
+
10
+ class IPInfoGetTopURLsParams(TypedDict, total=False):
11
+ domain_id: Required[int]
12
+ """The domain ID"""
13
+
14
+ ip: Required[str]
15
+ """The IP address to check"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .waap_top_url import WaapTopURL
7
+
8
+ __all__ = ["IPInfoGetTopURLsResponse"]
9
+
10
+ IPInfoGetTopURLsResponse: TypeAlias = List[WaapTopURL]
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["IPInfoGetTopUserAgentsParams"]
8
+
9
+
10
+ class IPInfoGetTopUserAgentsParams(TypedDict, total=False):
11
+ domain_id: Required[int]
12
+ """The domain ID"""
13
+
14
+ ip: Required[str]
15
+ """The IP address to check"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .waap_top_user_agent import WaapTopUserAgent
7
+
8
+ __all__ = ["IPInfoGetTopUserAgentsResponse"]
9
+
10
+ IPInfoGetTopUserAgentsResponse: TypeAlias = List[WaapTopUserAgent]
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["IPInfoListAttackedCountriesParams"]
8
+
9
+
10
+ class IPInfoListAttackedCountriesParams(TypedDict, total=False):
11
+ ip: Required[str]
12
+ """The IP address to check"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .waap_ip_country_attack import WaapIPCountryAttack
7
+
8
+ __all__ = ["IPInfoListAttackedCountriesResponse"]
9
+
10
+ IPInfoListAttackedCountriesResponse: TypeAlias = List[WaapIPCountryAttack]
@@ -0,0 +1,22 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import Literal, TypedDict
7
+
8
+ __all__ = ["OrganizationListParams"]
9
+
10
+
11
+ class OrganizationListParams(TypedDict, total=False):
12
+ limit: int
13
+ """Number of items to return"""
14
+
15
+ name: str
16
+ """Filter organizations by their name. Supports '\\**' as a wildcard character."""
17
+
18
+ offset: int
19
+ """Number of items to skip"""
20
+
21
+ ordering: Optional[Literal["name", "id", "-name", "-id"]]
22
+ """Determine the field to order results by"""
@@ -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 import List, Union
6
+ from datetime import datetime
7
+ from typing_extensions import Literal, Required, Annotated, TypedDict
8
+
9
+ from ..._utils import PropertyInfo
10
+
11
+ __all__ = ["StatisticGetUsageSeriesParams"]
12
+
13
+
14
+ class StatisticGetUsageSeriesParams(TypedDict, total=False):
15
+ from_: Required[Annotated[Union[str, datetime], PropertyInfo(alias="from", format="iso8601")]]
16
+ """Beginning of the requested time period (ISO 8601 format, UTC)"""
17
+
18
+ granularity: Required[Literal["1h", "1d"]]
19
+ """Duration of the time blocks into which the data will be divided."""
20
+
21
+ metrics: Required[List[Literal["total_bytes", "total_requests"]]]
22
+ """List of metric types to retrieve statistics for."""
23
+
24
+ to: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
25
+ """End of the requested time period (ISO 8601 format, UTC)"""
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import Literal, TypedDict
7
+
8
+ __all__ = ["TagListParams"]
9
+
10
+
11
+ class TagListParams(TypedDict, total=False):
12
+ limit: int
13
+ """Number of items to return"""
14
+
15
+ name: str
16
+ """Filter tags by their name. Supports '\\**' as a wildcard character."""
17
+
18
+ offset: int
19
+ """Number of items to skip"""
20
+
21
+ ordering: Optional[Literal["name", "readable_name", "reserved", "-name", "-readable_name", "-reserved"]]
22
+ """Determine the field to order results by"""
23
+
24
+ readable_name: str
25
+ """Filter tags by their readable name. Supports '\\**' as a wildcard character."""
26
+
27
+ reserved: bool
28
+ """Filter to include only reserved tags."""
@@ -0,0 +1,83 @@
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__ = ["WaapAdvancedRule", "Action", "ActionBlock", "ActionTag"]
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 ActionTag(BaseModel):
24
+ tags: List[str]
25
+ """The list of user defined tags to tag the request with"""
26
+
27
+
28
+ class Action(BaseModel):
29
+ allow: Optional[object] = None
30
+ """The WAAP allowed the request"""
31
+
32
+ block: Optional[ActionBlock] = None
33
+ """
34
+ WAAP block action behavior could be configured with response status code and
35
+ action duration.
36
+ """
37
+
38
+ captcha: Optional[object] = None
39
+ """The WAAP presented the user with a captcha"""
40
+
41
+ handshake: Optional[object] = None
42
+ """The WAAP performed automatic browser validation"""
43
+
44
+ monitor: Optional[object] = None
45
+ """The WAAP monitored the request but took no action"""
46
+
47
+ tag: Optional[ActionTag] = None
48
+ """WAAP tag action gets a list of tags to tag the request scope with"""
49
+
50
+
51
+ class WaapAdvancedRule(BaseModel):
52
+ id: int
53
+ """The unique identifier for the rule"""
54
+
55
+ action: Action
56
+ """The action that a WAAP rule takes when triggered"""
57
+
58
+ enabled: bool
59
+ """Whether or not the rule is enabled"""
60
+
61
+ name: str
62
+ """The name assigned to the rule"""
63
+
64
+ source: str
65
+ """A CEL syntax expression that contains the rule's conditions.
66
+
67
+ Allowed objects are: request, whois, session, response, tags,
68
+ `user_defined_tags`, `user_agent`, `client_data`. More info can be found here:
69
+ https://gcore.com/docs/waap/waap-rules/advanced-rules
70
+ """
71
+
72
+ description: Optional[str] = None
73
+ """The description assigned to the rule"""
74
+
75
+ phase: Optional[Literal["access", "header_filter", "body_filter"]] = None
76
+ """The WAAP request/response phase for applying the rule.
77
+
78
+ Default is "access". The "access" phase is responsible for modifying the request
79
+ before it is sent to the origin server. The "`header_filter`" phase is
80
+ responsible for modifying the HTTP headers of a response before they are sent
81
+ back to the client. The "`body_filter`" phase is responsible for modifying the
82
+ body of a response before it is sent back to the client.
83
+ """
@@ -0,0 +1,49 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["WaapAdvancedRuleDescriptor", "Attr", "AttrArg"]
8
+
9
+
10
+ class AttrArg(BaseModel):
11
+ name: str
12
+ """The argument's name"""
13
+
14
+ type: str
15
+ """The argument's type"""
16
+
17
+ description: Optional[str] = None
18
+ """The argument's description"""
19
+
20
+
21
+ class Attr(BaseModel):
22
+ name: str
23
+ """The attribute's name"""
24
+
25
+ type: str
26
+ """The attribute's type"""
27
+
28
+ args: Optional[List[AttrArg]] = None
29
+ """A list of arguments for the attribute"""
30
+
31
+ description: Optional[str] = None
32
+ """The attribute's description"""
33
+
34
+ hint: Optional[str] = None
35
+ """The attribute's hint"""
36
+
37
+
38
+ class WaapAdvancedRuleDescriptor(BaseModel):
39
+ name: str
40
+ """The object's name"""
41
+
42
+ type: str
43
+ """The object's type"""
44
+
45
+ attrs: Optional[List[Attr]] = None
46
+ """The object's attributes list"""
47
+
48
+ description: Optional[str] = None
49
+ """The object's description"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from ..._models import BaseModel
6
+ from .waap_advanced_rule_descriptor import WaapAdvancedRuleDescriptor
7
+
8
+ __all__ = ["WaapAdvancedRuleDescriptorList"]
9
+
10
+
11
+ class WaapAdvancedRuleDescriptorList(BaseModel):
12
+ version: str
13
+ """The descriptor's version"""
14
+
15
+ objects: Optional[List[WaapAdvancedRuleDescriptor]] = None
@@ -0,0 +1,28 @@
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__ = ["WaapBlockCsrfPageData"]
8
+
9
+
10
+ class WaapBlockCsrfPageData(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
+ text: Optional[str] = None
25
+ """The text to display in the body of the custom page"""
26
+
27
+ title: Optional[str] = None
28
+ """The text to display in the title of the custom page"""
@@ -0,0 +1,28 @@
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__ = ["WaapBlockCsrfPageDataParam"]
8
+
9
+
10
+ class WaapBlockCsrfPageDataParam(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
+ text: str
25
+ """The text to display in the body of the custom page"""
26
+
27
+ title: str
28
+ """The text to display in the title of the custom page"""
@@ -0,0 +1,28 @@
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__ = ["WaapBlockPageData"]
8
+
9
+
10
+ class WaapBlockPageData(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
+ text: Optional[str] = None
25
+ """The text to display in the body of the custom page"""
26
+
27
+ title: Optional[str] = None
28
+ """The text to display in the title of the custom page"""
@@ -0,0 +1,28 @@
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__ = ["WaapBlockPageDataParam"]
8
+
9
+
10
+ class WaapBlockPageDataParam(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
+ text: str
25
+ """The text to display in the body of the custom page"""
26
+
27
+ title: str
28
+ """The text to display in the title of the custom page"""
@@ -0,0 +1,36 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Union
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["WaapBlockedStatistics"]
8
+
9
+
10
+ class WaapBlockedStatistics(BaseModel):
11
+ action: List[List[Union[str, int]]]
12
+ """A collection of event counts per action.
13
+
14
+ The first item is the action's abbreviation/full action name, and the second
15
+ item is the number of events
16
+ """
17
+
18
+ country: List[List[Union[str, int]]]
19
+ """A collection of event counts per country of origin.
20
+
21
+ The first item is the country's ISO 3166-1 alpha-2, and the second item is the
22
+ number of events
23
+ """
24
+
25
+ org: List[List[Union[str, int]]]
26
+ """A collection of event counts per organization that owns the event's client IP.
27
+
28
+ The first item is the organization's name, and the second item is the number of
29
+ events
30
+ """
31
+
32
+ rule_name: List[List[Union[str, int]]]
33
+ """A collection of event counts per rule that triggered the event.
34
+
35
+ The first item is the rule's name, and the second item is the number of events
36
+ """
@@ -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__ = ["WaapCaptchaPageData"]
8
+
9
+
10
+ class WaapCaptchaPageData(BaseModel):
11
+ enabled: bool
12
+ """Indicates whether the custom custom page is active or inactive"""
13
+
14
+ error: Optional[str] = None
15
+ """Error message"""
16
+
17
+ header: Optional[str] = None
18
+ """The text to display in the header of the custom page"""
19
+
20
+ logo: Optional[str] = None
21
+ """
22
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
23
+ height 130px. This should be a base 64 encoding of the full HTML img tag
24
+ compatible image, with the header included.
25
+ """
26
+
27
+ text: Optional[str] = None
28
+ """The text to display in the body of the custom page"""
29
+
30
+ title: Optional[str] = None
31
+ """The text to display in the title of the custom page"""