gcore 0.8.0__py3-none-any.whl → 0.10.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 (164) hide show
  1. gcore/_base_client.py +4 -1
  2. gcore/_client.py +9 -0
  3. gcore/_files.py +4 -4
  4. gcore/_version.py +1 -1
  5. gcore/resources/__init__.py +14 -0
  6. gcore/resources/cloud/cost_reports.py +24 -0
  7. gcore/resources/cloud/load_balancers/pools/health_monitors.py +8 -4
  8. gcore/resources/cloud/load_balancers/pools/members.py +2 -2
  9. gcore/resources/cloud/quotas/requests.py +7 -15
  10. gcore/resources/fastedge/binaries.py +81 -1
  11. gcore/resources/security/__init__.py +75 -0
  12. gcore/resources/security/bgp_announces.py +308 -0
  13. gcore/resources/security/events.py +234 -0
  14. gcore/resources/security/profile_templates.py +143 -0
  15. gcore/resources/security/profiles.py +661 -0
  16. gcore/resources/security/security.py +198 -0
  17. gcore/resources/waap/__init__.py +14 -0
  18. gcore/resources/waap/custom_page_sets.py +40 -34
  19. gcore/resources/waap/domains/__init__.py +14 -28
  20. gcore/resources/waap/domains/advanced_rules.py +5 -8
  21. gcore/resources/waap/domains/{api_discovery/api_discovery.py → api_discovery.py} +292 -59
  22. gcore/resources/waap/domains/api_path_groups.py +5 -5
  23. gcore/resources/waap/domains/api_paths.py +15 -17
  24. gcore/resources/waap/domains/custom_rules.py +5 -8
  25. gcore/resources/waap/domains/domains.py +120 -64
  26. gcore/resources/waap/domains/firewall_rules.py +3 -5
  27. gcore/resources/waap/domains/insight_silences.py +28 -5
  28. gcore/resources/waap/domains/insights.py +36 -10
  29. gcore/resources/waap/domains/{analytics/analytics.py → statistics.py} +514 -213
  30. gcore/resources/waap/insights.py +233 -0
  31. gcore/resources/waap/ip_info/__init__.py +33 -0
  32. gcore/resources/waap/{ip_info.py → ip_info/ip_info.py} +149 -235
  33. gcore/resources/waap/ip_info/metrics.py +203 -0
  34. gcore/resources/waap/waap.py +40 -8
  35. gcore/types/cloud/cost_report_get_aggregated_monthly_params.py +3 -0
  36. gcore/types/cloud/cost_report_get_aggregated_params.py +3 -0
  37. gcore/types/cloud/cost_report_get_detailed_params.py +3 -0
  38. gcore/types/cloud/gpu_baremetal_flavor.py +16 -0
  39. gcore/types/cloud/health_monitor.py +6 -0
  40. gcore/types/cloud/load_balancer_create_params.py +8 -3
  41. gcore/types/cloud/load_balancers/pool_create_params.py +8 -3
  42. gcore/types/cloud/load_balancers/pool_update_params.py +8 -3
  43. gcore/types/cloud/load_balancers/pools/health_monitor_create_params.py +7 -2
  44. gcore/types/cloud/load_balancers/pools/member_add_params.py +1 -1
  45. gcore/types/cloud/quotas/request_list_params.py +2 -2
  46. gcore/types/cloud/region.py +6 -6
  47. gcore/types/fastedge/__init__.py +1 -0
  48. gcore/types/fastedge/binary_create_params.py +11 -0
  49. gcore/types/security/__init__.py +18 -0
  50. gcore/types/security/bgp_announce_list_params.py +18 -0
  51. gcore/types/security/bgp_announce_list_response.py +10 -0
  52. gcore/types/security/bgp_announce_toggle_params.py +16 -0
  53. gcore/types/security/client_announce.py +15 -0
  54. gcore/types/security/client_profile.py +56 -0
  55. gcore/types/security/client_profile_template.py +43 -0
  56. gcore/types/security/client_view.py +29 -0
  57. gcore/types/security/event_list_params.py +38 -0
  58. gcore/types/security/profile_create_params.py +24 -0
  59. gcore/types/security/profile_list_params.py +17 -0
  60. gcore/types/security/profile_list_response.py +10 -0
  61. gcore/types/security/profile_recreate_params.py +24 -0
  62. gcore/types/security/profile_replace_params.py +24 -0
  63. gcore/types/security/profile_template_list_response.py +10 -0
  64. gcore/types/waap/__init__.py +6 -54
  65. gcore/types/waap/custom_page_set_create_params.py +121 -14
  66. gcore/types/waap/custom_page_set_preview_params.py +11 -4
  67. gcore/types/waap/custom_page_set_update_params.py +122 -15
  68. gcore/types/waap/domain_list_params.py +1 -3
  69. gcore/types/waap/domains/__init__.py +28 -18
  70. gcore/types/waap/domains/advanced_rule_list_params.py +1 -3
  71. gcore/types/waap/domains/{api_discovery/scan_result_list_params.py → api_discovery_list_scan_results_params.py} +2 -2
  72. gcore/types/waap/domains/{api_path_group_list_response.py → api_path_group_list.py} +2 -2
  73. gcore/types/waap/domains/custom_rule_list_params.py +1 -3
  74. gcore/types/waap/domains/insight_list_params.py +16 -6
  75. gcore/types/waap/domains/insight_replace_params.py +2 -4
  76. gcore/types/waap/domains/insight_silence_list_params.py +13 -4
  77. gcore/types/waap/domains/{analytics_list_ddos_attacks_params.py → statistic_get_ddos_attacks_params.py} +2 -2
  78. gcore/types/waap/domains/{analytics_list_ddos_info_params.py → statistic_get_ddos_info_params.py} +2 -2
  79. gcore/types/waap/domains/{analytics_get_event_statistics_params.py → statistic_get_events_aggregated_params.py} +2 -2
  80. gcore/types/waap/domains/{analytics/request_list_params.py → statistic_get_requests_series_params.py} +27 -5
  81. gcore/types/waap/domains/{analytics_list_event_traffic_params.py → statistic_get_traffic_series_params.py} +4 -5
  82. gcore/types/waap/domains/statistic_get_traffic_series_response.py +10 -0
  83. gcore/types/waap/{waap_advanced_rule.py → domains/waap_advanced_rule.py} +1 -1
  84. gcore/types/waap/domains/{api_discovery_get_settings_response.py → waap_api_discovery_settings.py} +2 -2
  85. gcore/types/waap/domains/{api_path_get_response.py → waap_api_path.py} +2 -2
  86. gcore/types/waap/domains/{api_discovery/scan_result_get_response.py → waap_api_scan_result.py} +3 -3
  87. gcore/types/waap/{waap_blocked_statistics.py → domains/waap_blocked_statistics.py} +1 -1
  88. gcore/types/waap/{waap_count_statistics.py → domains/waap_count_statistics.py} +1 -1
  89. gcore/types/waap/{waap_custom_rule.py → domains/waap_custom_rule.py} +1 -1
  90. gcore/types/waap/{waap_ddos_attack.py → domains/waap_ddos_attack.py} +1 -1
  91. gcore/types/waap/{waap_ddos_info.py → domains/waap_ddos_info.py} +1 -1
  92. gcore/types/waap/{waap_event_statistics.py → domains/waap_event_statistics.py} +1 -1
  93. gcore/types/waap/{waap_firewall_rule.py → domains/waap_firewall_rule.py} +1 -1
  94. gcore/types/waap/{waap_insight.py → domains/waap_insight.py} +3 -3
  95. gcore/types/waap/{waap_insight_silence.py → domains/waap_insight_silence.py} +1 -1
  96. gcore/types/waap/domains/waap_request_details.py +185 -0
  97. gcore/types/waap/{waap_request_summary.py → domains/waap_request_summary.py} +1 -1
  98. gcore/types/waap/domains/{api_discovery_scan_openapi_response.py → waap_task_id.py} +2 -2
  99. gcore/types/waap/{waap_traffic_metrics.py → domains/waap_traffic_metrics.py} +1 -1
  100. gcore/types/waap/insight_list_types_params.py +28 -0
  101. gcore/types/waap/ip_info/__init__.py +6 -0
  102. gcore/types/waap/{ip_info_get_counts_params.py → ip_info/metric_list_params.py} +2 -2
  103. gcore/types/waap/{waap_ip_info_counts.py → ip_info/waap_ip_info_counts.py} +1 -1
  104. gcore/types/waap/{ip_info_get_params.py → ip_info_get_ip_info_params.py} +2 -2
  105. gcore/types/waap/{waap_ip_info.py → ip_info_get_ip_info_response.py} +2 -2
  106. gcore/types/waap/ip_info_get_top_urls_response.py +12 -3
  107. gcore/types/waap/{ip_info_get_top_sessions_params.py → ip_info_get_top_user_sessions_params.py} +2 -2
  108. gcore/types/waap/{ip_info_get_top_sessions_response.py → ip_info_get_top_user_sessions_response.py} +2 -2
  109. gcore/types/waap/waap_custom_page_set.py +113 -13
  110. gcore/types/waap/waap_detailed_domain.py +2 -2
  111. gcore/types/waap/waap_insight_type.py +33 -0
  112. gcore/types/waap/waap_rule_set.py +26 -3
  113. gcore/types/waap/waap_summary_domain.py +2 -2
  114. {gcore-0.8.0.dist-info → gcore-0.10.0.dist-info}/METADATA +1 -1
  115. {gcore-0.8.0.dist-info → gcore-0.10.0.dist-info}/RECORD +117 -134
  116. gcore/resources/waap/domains/analytics/__init__.py +0 -33
  117. gcore/resources/waap/domains/analytics/requests.py +0 -378
  118. gcore/resources/waap/domains/api_discovery/__init__.py +0 -33
  119. gcore/resources/waap/domains/api_discovery/scan_results.py +0 -352
  120. gcore/resources/waap/domains/policies.py +0 -173
  121. gcore/types/waap/domains/analytics/__init__.py +0 -5
  122. gcore/types/waap/domains/analytics_list_event_traffic_response.py +0 -10
  123. gcore/types/waap/domains/api_discovery/__init__.py +0 -7
  124. gcore/types/waap/domains/api_discovery/scan_result_list_response.py +0 -29
  125. gcore/types/waap/domains/api_discovery_update_settings_response.py +0 -36
  126. gcore/types/waap/domains/api_discovery_upload_openapi_response.py +0 -10
  127. gcore/types/waap/domains/api_path_create_response.py +0 -50
  128. gcore/types/waap/domains/api_path_list_response.py +0 -50
  129. gcore/types/waap/waap_block_csrf_page_data.py +0 -28
  130. gcore/types/waap/waap_block_csrf_page_data_param.py +0 -28
  131. gcore/types/waap/waap_block_page_data.py +0 -28
  132. gcore/types/waap/waap_block_page_data_param.py +0 -28
  133. gcore/types/waap/waap_captcha_page_data.py +0 -31
  134. gcore/types/waap/waap_captcha_page_data_param.py +0 -31
  135. gcore/types/waap/waap_common_tag.py +0 -16
  136. gcore/types/waap/waap_cookie_disabled_page_data.py +0 -18
  137. gcore/types/waap/waap_cookie_disabled_page_data_param.py +0 -18
  138. gcore/types/waap/waap_customer_rule_state.py +0 -7
  139. gcore/types/waap/waap_domain_policy.py +0 -29
  140. gcore/types/waap/waap_domain_status.py +0 -7
  141. gcore/types/waap/waap_handshake_page_data.py +0 -25
  142. gcore/types/waap/waap_handshake_page_data_param.py +0 -25
  143. gcore/types/waap/waap_insight_silence_sort_by.py +0 -9
  144. gcore/types/waap/waap_insight_sort_by.py +0 -20
  145. gcore/types/waap/waap_insight_status.py +0 -7
  146. gcore/types/waap/waap_javascript_disabled_page_data.py +0 -18
  147. gcore/types/waap/waap_javascript_disabled_page_data_param.py +0 -18
  148. gcore/types/waap/waap_network_details.py +0 -17
  149. gcore/types/waap/waap_page_type.py +0 -9
  150. gcore/types/waap/waap_paginated_custom_page_set.py +0 -22
  151. gcore/types/waap/waap_paginated_ddos_attack.py +0 -22
  152. gcore/types/waap/waap_paginated_ddos_info.py +0 -22
  153. gcore/types/waap/waap_paginated_request_summary.py +0 -22
  154. gcore/types/waap/waap_pattern_matched_tag.py +0 -37
  155. gcore/types/waap/waap_policy_action.py +0 -7
  156. gcore/types/waap/waap_request_details.py +0 -92
  157. gcore/types/waap/waap_request_organization.py +0 -13
  158. gcore/types/waap/waap_resolution.py +0 -7
  159. gcore/types/waap/waap_rule_action_type.py +0 -7
  160. gcore/types/waap/waap_top_url.py +0 -13
  161. gcore/types/waap/waap_traffic_type.py +0 -28
  162. gcore/types/waap/waap_user_agent_details.py +0 -40
  163. {gcore-0.8.0.dist-info → gcore-0.10.0.dist-info}/WHEEL +0 -0
  164. {gcore-0.8.0.dist-info → gcore-0.10.0.dist-info}/licenses/LICENSE +0 -0
@@ -3,33 +3,140 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Iterable, Optional
6
- from typing_extensions import TypedDict
6
+ from typing_extensions import Required, TypedDict
7
7
 
8
- from .waap_block_page_data_param import WaapBlockPageDataParam
9
- from .waap_captcha_page_data_param import WaapCaptchaPageDataParam
10
- from .waap_handshake_page_data_param import WaapHandshakePageDataParam
11
- from .waap_block_csrf_page_data_param import WaapBlockCsrfPageDataParam
12
- from .waap_cookie_disabled_page_data_param import WaapCookieDisabledPageDataParam
13
- from .waap_javascript_disabled_page_data_param import WaapJavascriptDisabledPageDataParam
14
-
15
- __all__ = ["CustomPageSetUpdateParams"]
8
+ __all__ = [
9
+ "CustomPageSetUpdateParams",
10
+ "Block",
11
+ "BlockCsrf",
12
+ "Captcha",
13
+ "CookieDisabled",
14
+ "Handshake",
15
+ "JavascriptDisabled",
16
+ ]
16
17
 
17
18
 
18
19
  class CustomPageSetUpdateParams(TypedDict, total=False):
19
- block: Optional[WaapBlockPageDataParam]
20
+ block: Optional[Block]
20
21
 
21
- block_csrf: Optional[WaapBlockCsrfPageDataParam]
22
+ block_csrf: Optional[BlockCsrf]
22
23
 
23
- captcha: Optional[WaapCaptchaPageDataParam]
24
+ captcha: Optional[Captcha]
24
25
 
25
- cookie_disabled: Optional[WaapCookieDisabledPageDataParam]
26
+ cookie_disabled: Optional[CookieDisabled]
26
27
 
27
28
  domains: Optional[Iterable[int]]
28
29
  """List of domain IDs that are associated with this page set"""
29
30
 
30
- handshake: Optional[WaapHandshakePageDataParam]
31
+ handshake: Optional[Handshake]
31
32
 
32
- javascript_disabled: Optional[WaapJavascriptDisabledPageDataParam]
33
+ javascript_disabled: Optional[JavascriptDisabled]
33
34
 
34
35
  name: Optional[str]
35
36
  """Name of the custom page set"""
37
+
38
+
39
+ class Block(TypedDict, total=False):
40
+ enabled: Required[bool]
41
+ """Indicates whether the custom custom page is active or inactive"""
42
+
43
+ header: str
44
+ """The text to display in the header of the custom page"""
45
+
46
+ logo: str
47
+ """
48
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
49
+ height 130px. This should be a base 64 encoding of the full HTML img tag
50
+ compatible image, with the header included.
51
+ """
52
+
53
+ text: str
54
+ """The text to display in the body of the custom page"""
55
+
56
+ title: str
57
+ """The text to display in the title of the custom page"""
58
+
59
+
60
+ class BlockCsrf(TypedDict, total=False):
61
+ enabled: Required[bool]
62
+ """Indicates whether the custom custom page is active or inactive"""
63
+
64
+ header: str
65
+ """The text to display in the header of the custom page"""
66
+
67
+ logo: str
68
+ """
69
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
70
+ height 130px. This should be a base 64 encoding of the full HTML img tag
71
+ compatible image, with the header included.
72
+ """
73
+
74
+ text: str
75
+ """The text to display in the body of the custom page"""
76
+
77
+ title: str
78
+ """The text to display in the title of the custom page"""
79
+
80
+
81
+ class Captcha(TypedDict, total=False):
82
+ enabled: Required[bool]
83
+ """Indicates whether the custom custom page is active or inactive"""
84
+
85
+ error: str
86
+ """Error message"""
87
+
88
+ header: str
89
+ """The text to display in the header of the custom page"""
90
+
91
+ logo: str
92
+ """
93
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
94
+ height 130px. This should be a base 64 encoding of the full HTML img tag
95
+ compatible image, with the header included.
96
+ """
97
+
98
+ text: str
99
+ """The text to display in the body of the custom page"""
100
+
101
+ title: str
102
+ """The text to display in the title of the custom page"""
103
+
104
+
105
+ class CookieDisabled(TypedDict, total=False):
106
+ enabled: Required[bool]
107
+ """Indicates whether the custom custom page is active or inactive"""
108
+
109
+ header: str
110
+ """The text to display in the header of the custom page"""
111
+
112
+ text: str
113
+ """The text to display in the body of the custom page"""
114
+
115
+
116
+ class Handshake(TypedDict, total=False):
117
+ enabled: Required[bool]
118
+ """Indicates whether the custom custom page is active or inactive"""
119
+
120
+ header: str
121
+ """The text to display in the header of the custom page"""
122
+
123
+ logo: str
124
+ """
125
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
126
+ height 130px. This should be a base 64 encoding of the full HTML img tag
127
+ compatible image, with the header included.
128
+ """
129
+
130
+ title: str
131
+ """The text to display in the title of the custom page"""
132
+
133
+
134
+ class JavascriptDisabled(TypedDict, total=False):
135
+ enabled: Required[bool]
136
+ """Indicates whether the custom custom page is active or inactive"""
137
+
138
+ header: str
139
+ """The text to display in the header of the custom page"""
140
+
141
+ text: str
142
+ """The text to display in the body of the custom page"""
@@ -5,8 +5,6 @@ from __future__ import annotations
5
5
  from typing import Iterable
6
6
  from typing_extensions import Literal, TypedDict
7
7
 
8
- from .waap_domain_status import WaapDomainStatus
9
-
10
8
  __all__ = ["DomainListParams"]
11
9
 
12
10
 
@@ -26,5 +24,5 @@ class DomainListParams(TypedDict, total=False):
26
24
  ordering: Literal["id", "name", "status", "created_at", "-id", "-name", "-status", "-created_at"]
27
25
  """Sort the response by given field."""
28
26
 
29
- status: WaapDomainStatus
27
+ status: Literal["active", "bypass", "monitor", "locked"]
30
28
  """The different statuses a domain can have"""
@@ -2,16 +2,30 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from .waap_insight import WaapInsight as WaapInsight
6
+ from .waap_task_id import WaapTaskID as WaapTaskID
7
+ from .waap_api_path import WaapAPIPath as WaapAPIPath
8
+ from .waap_ddos_info import WaapDDOSInfo as WaapDDOSInfo
9
+ from .waap_custom_rule import WaapCustomRule as WaapCustomRule
10
+ from .waap_ddos_attack import WaapDDOSAttack as WaapDDOSAttack
11
+ from .waap_advanced_rule import WaapAdvancedRule as WaapAdvancedRule
12
+ from .waap_firewall_rule import WaapFirewallRule as WaapFirewallRule
13
+ from .api_path_group_list import APIPathGroupList as APIPathGroupList
5
14
  from .insight_list_params import InsightListParams as InsightListParams
6
15
  from .api_path_list_params import APIPathListParams as APIPathListParams
7
- from .api_path_get_response import APIPathGetResponse as APIPathGetResponse
16
+ from .waap_api_scan_result import WaapAPIScanResult as WaapAPIScanResult
17
+ from .waap_insight_silence import WaapInsightSilence as WaapInsightSilence
18
+ from .waap_request_details import WaapRequestDetails as WaapRequestDetails
19
+ from .waap_request_summary import WaapRequestSummary as WaapRequestSummary
20
+ from .waap_traffic_metrics import WaapTrafficMetrics as WaapTrafficMetrics
8
21
  from .setting_update_params import SettingUpdateParams as SettingUpdateParams
22
+ from .waap_count_statistics import WaapCountStatistics as WaapCountStatistics
23
+ from .waap_event_statistics import WaapEventStatistics as WaapEventStatistics
9
24
  from .api_path_create_params import APIPathCreateParams as APIPathCreateParams
10
- from .api_path_list_response import APIPathListResponse as APIPathListResponse
11
25
  from .api_path_update_params import APIPathUpdateParams as APIPathUpdateParams
12
26
  from .insight_replace_params import InsightReplaceParams as InsightReplaceParams
13
27
  from .custom_rule_list_params import CustomRuleListParams as CustomRuleListParams
14
- from .api_path_create_response import APIPathCreateResponse as APIPathCreateResponse
28
+ from .waap_blocked_statistics import WaapBlockedStatistics as WaapBlockedStatistics
15
29
  from .advanced_rule_list_params import AdvancedRuleListParams as AdvancedRuleListParams
16
30
  from .custom_rule_create_params import CustomRuleCreateParams as CustomRuleCreateParams
17
31
  from .custom_rule_update_params import CustomRuleUpdateParams as CustomRuleUpdateParams
@@ -21,27 +35,23 @@ from .advanced_rule_update_params import AdvancedRuleUpdateParams as AdvancedRul
21
35
  from .firewall_rule_create_params import FirewallRuleCreateParams as FirewallRuleCreateParams
22
36
  from .firewall_rule_update_params import FirewallRuleUpdateParams as FirewallRuleUpdateParams
23
37
  from .insight_silence_list_params import InsightSilenceListParams as InsightSilenceListParams
24
- from .api_path_group_list_response import APIPathGroupListResponse as APIPathGroupListResponse
38
+ from .waap_api_discovery_settings import WaapAPIDiscoverySettings as WaapAPIDiscoverySettings
25
39
  from .insight_silence_create_params import InsightSilenceCreateParams as InsightSilenceCreateParams
26
40
  from .insight_silence_update_params import InsightSilenceUpdateParams as InsightSilenceUpdateParams
27
- from .analytics_list_ddos_info_params import AnalyticsListDDOSInfoParams as AnalyticsListDDOSInfoParams
28
- from .analytics_list_ddos_attacks_params import AnalyticsListDDOSAttacksParams as AnalyticsListDDOSAttacksParams
41
+ from .statistic_get_ddos_info_params import StatisticGetDDOSInfoParams as StatisticGetDDOSInfoParams
42
+ from .statistic_get_ddos_attacks_params import StatisticGetDDOSAttacksParams as StatisticGetDDOSAttacksParams
29
43
  from .custom_rule_delete_multiple_params import CustomRuleDeleteMultipleParams as CustomRuleDeleteMultipleParams
30
- from .analytics_list_event_traffic_params import AnalyticsListEventTrafficParams as AnalyticsListEventTrafficParams
31
- from .api_discovery_get_settings_response import APIDiscoveryGetSettingsResponse as APIDiscoveryGetSettingsResponse
32
- from .api_discovery_scan_openapi_response import APIDiscoveryScanOpenAPIResponse as APIDiscoveryScanOpenAPIResponse
33
44
  from .api_discovery_upload_openapi_params import APIDiscoveryUploadOpenAPIParams as APIDiscoveryUploadOpenAPIParams
45
+ from .statistic_get_traffic_series_params import StatisticGetTrafficSeriesParams as StatisticGetTrafficSeriesParams
34
46
  from .api_discovery_update_settings_params import APIDiscoveryUpdateSettingsParams as APIDiscoveryUpdateSettingsParams
35
47
  from .firewall_rule_delete_multiple_params import FirewallRuleDeleteMultipleParams as FirewallRuleDeleteMultipleParams
36
- from .analytics_get_event_statistics_params import (
37
- AnalyticsGetEventStatisticsParams as AnalyticsGetEventStatisticsParams,
48
+ from .statistic_get_requests_series_params import StatisticGetRequestsSeriesParams as StatisticGetRequestsSeriesParams
49
+ from .statistic_get_traffic_series_response import (
50
+ StatisticGetTrafficSeriesResponse as StatisticGetTrafficSeriesResponse,
38
51
  )
39
- from .analytics_list_event_traffic_response import (
40
- AnalyticsListEventTrafficResponse as AnalyticsListEventTrafficResponse,
52
+ from .api_discovery_list_scan_results_params import (
53
+ APIDiscoveryListScanResultsParams as APIDiscoveryListScanResultsParams,
41
54
  )
42
- from .api_discovery_upload_openapi_response import (
43
- APIDiscoveryUploadOpenAPIResponse as APIDiscoveryUploadOpenAPIResponse,
44
- )
45
- from .api_discovery_update_settings_response import (
46
- APIDiscoveryUpdateSettingsResponse as APIDiscoveryUpdateSettingsResponse,
55
+ from .statistic_get_events_aggregated_params import (
56
+ StatisticGetEventsAggregatedParams as StatisticGetEventsAggregatedParams,
47
57
  )
@@ -5,13 +5,11 @@ from __future__ import annotations
5
5
  from typing import Optional
6
6
  from typing_extensions import Literal, TypedDict
7
7
 
8
- from ..waap_rule_action_type import WaapRuleActionType
9
-
10
8
  __all__ = ["AdvancedRuleListParams"]
11
9
 
12
10
 
13
11
  class AdvancedRuleListParams(TypedDict, total=False):
14
- action: WaapRuleActionType
12
+ action: Literal["allow", "block", "captcha", "handshake", "monitor", "tag"]
15
13
  """Filter to refine results by specific actions"""
16
14
 
17
15
  description: str
@@ -5,10 +5,10 @@ from __future__ import annotations
5
5
  from typing import Optional
6
6
  from typing_extensions import Literal, TypedDict
7
7
 
8
- __all__ = ["ScanResultListParams"]
8
+ __all__ = ["APIDiscoveryListScanResultsParams"]
9
9
 
10
10
 
11
- class ScanResultListParams(TypedDict, total=False):
11
+ class APIDiscoveryListScanResultsParams(TypedDict, total=False):
12
12
  limit: int
13
13
  """Number of items to return"""
14
14
 
@@ -4,9 +4,9 @@ from typing import List
4
4
 
5
5
  from ...._models import BaseModel
6
6
 
7
- __all__ = ["APIPathGroupListResponse"]
7
+ __all__ = ["APIPathGroupList"]
8
8
 
9
9
 
10
- class APIPathGroupListResponse(BaseModel):
10
+ class APIPathGroupList(BaseModel):
11
11
  api_path_groups: List[str]
12
12
  """An array of api groups associated with the API path"""
@@ -5,13 +5,11 @@ from __future__ import annotations
5
5
  from typing import Optional
6
6
  from typing_extensions import Literal, TypedDict
7
7
 
8
- from ..waap_rule_action_type import WaapRuleActionType
9
-
10
8
  __all__ = ["CustomRuleListParams"]
11
9
 
12
10
 
13
11
  class CustomRuleListParams(TypedDict, total=False):
14
- action: WaapRuleActionType
12
+ action: Literal["allow", "block", "captcha", "handshake", "monitor", "tag"]
15
13
  """Filter to refine results by specific actions"""
16
14
 
17
15
  description: str
@@ -3,10 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import List, Optional
6
- from typing_extensions import TypedDict
7
-
8
- from ..waap_insight_status import WaapInsightStatus
9
- from ..waap_insight_sort_by import WaapInsightSortBy
6
+ from typing_extensions import Literal, TypedDict
10
7
 
11
8
  __all__ = ["InsightListParams"]
12
9
 
@@ -27,8 +24,21 @@ class InsightListParams(TypedDict, total=False):
27
24
  offset: int
28
25
  """Number of items to skip"""
29
26
 
30
- ordering: WaapInsightSortBy
27
+ ordering: Literal[
28
+ "id",
29
+ "-id",
30
+ "insight_type",
31
+ "-insight_type",
32
+ "first_seen",
33
+ "-first_seen",
34
+ "last_seen",
35
+ "-last_seen",
36
+ "last_status_change",
37
+ "-last_status_change",
38
+ "status",
39
+ "-status",
40
+ ]
31
41
  """Sort the response by given field."""
32
42
 
33
- status: Optional[List[WaapInsightStatus]]
43
+ status: Optional[List[Literal["OPEN", "ACKED", "CLOSED"]]]
34
44
  """The status of the insight"""
@@ -2,9 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Required, TypedDict
6
-
7
- from ..waap_insight_status import WaapInsightStatus
5
+ from typing_extensions import Literal, Required, TypedDict
8
6
 
9
7
  __all__ = ["InsightReplaceParams"]
10
8
 
@@ -13,5 +11,5 @@ class InsightReplaceParams(TypedDict, total=False):
13
11
  domain_id: Required[int]
14
12
  """The domain ID"""
15
13
 
16
- status: Required[WaapInsightStatus]
14
+ status: Required[Literal["OPEN", "ACKED", "CLOSED"]]
17
15
  """The different statuses an insight can have"""
@@ -3,9 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import List, Optional
6
- from typing_extensions import TypedDict
7
-
8
- from ..waap_insight_silence_sort_by import WaapInsightSilenceSortBy
6
+ from typing_extensions import Literal, TypedDict
9
7
 
10
8
  __all__ = ["InsightSilenceListParams"]
11
9
 
@@ -29,5 +27,16 @@ class InsightSilenceListParams(TypedDict, total=False):
29
27
  offset: int
30
28
  """Number of items to skip"""
31
29
 
32
- ordering: WaapInsightSilenceSortBy
30
+ ordering: Literal[
31
+ "id",
32
+ "-id",
33
+ "insight_type",
34
+ "-insight_type",
35
+ "comment",
36
+ "-comment",
37
+ "author",
38
+ "-author",
39
+ "expire_at",
40
+ "-expire_at",
41
+ ]
33
42
  """Sort the response by given field."""
@@ -8,10 +8,10 @@ from typing_extensions import Literal, Annotated, TypedDict
8
8
 
9
9
  from ...._utils import PropertyInfo
10
10
 
11
- __all__ = ["AnalyticsListDDOSAttacksParams"]
11
+ __all__ = ["StatisticGetDDOSAttacksParams"]
12
12
 
13
13
 
14
- class AnalyticsListDDOSAttacksParams(TypedDict, total=False):
14
+ class StatisticGetDDOSAttacksParams(TypedDict, total=False):
15
15
  end_time: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
16
16
  """Filter attacks up to a specified end date in ISO 8601 format"""
17
17
 
@@ -8,10 +8,10 @@ from typing_extensions import Literal, Required, Annotated, TypedDict
8
8
 
9
9
  from ...._utils import PropertyInfo
10
10
 
11
- __all__ = ["AnalyticsListDDOSInfoParams"]
11
+ __all__ = ["StatisticGetDDOSInfoParams"]
12
12
 
13
13
 
14
- class AnalyticsListDDOSInfoParams(TypedDict, total=False):
14
+ class StatisticGetDDOSInfoParams(TypedDict, total=False):
15
15
  group_by: Required[Literal["URL", "User-Agent", "IP"]]
16
16
  """The identity of the requests to group by"""
17
17
 
@@ -8,10 +8,10 @@ from typing_extensions import Literal, Required, Annotated, TypedDict
8
8
 
9
9
  from ...._utils import PropertyInfo
10
10
 
11
- __all__ = ["AnalyticsGetEventStatisticsParams"]
11
+ __all__ = ["StatisticGetEventsAggregatedParams"]
12
12
 
13
13
 
14
- class AnalyticsGetEventStatisticsParams(TypedDict, total=False):
14
+ class StatisticGetEventsAggregatedParams(TypedDict, total=False):
15
15
  start: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
16
16
  """Filter traffic starting from a specified date in ISO 8601 format"""
17
17
 
@@ -6,13 +6,12 @@ from typing import List, Union
6
6
  from datetime import datetime
7
7
  from typing_extensions import Literal, Required, Annotated, TypedDict
8
8
 
9
- from ....._utils import PropertyInfo
10
- from ...waap_traffic_type import WaapTrafficType
9
+ from ...._utils import PropertyInfo
11
10
 
12
- __all__ = ["RequestListParams"]
11
+ __all__ = ["StatisticGetRequestsSeriesParams"]
13
12
 
14
13
 
15
- class RequestListParams(TypedDict, total=False):
14
+ class StatisticGetRequestsSeriesParams(TypedDict, total=False):
16
15
  start: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
17
16
  """Filter traffic starting from a specified date in ISO 8601 format"""
18
17
 
@@ -49,5 +48,28 @@ class RequestListParams(TypedDict, total=False):
49
48
  status_code: int
50
49
  """Filter the response by response code."""
51
50
 
52
- traffic_types: List[WaapTrafficType]
51
+ traffic_types: List[
52
+ Literal[
53
+ "policy_allowed",
54
+ "policy_blocked",
55
+ "custom_rule_allowed",
56
+ "custom_blocked",
57
+ "legit_requests",
58
+ "sanctioned",
59
+ "dynamic",
60
+ "api",
61
+ "static",
62
+ "ajax",
63
+ "redirects",
64
+ "monitor",
65
+ "err_40x",
66
+ "err_50x",
67
+ "passed_to_origin",
68
+ "timeout",
69
+ "other",
70
+ "ddos",
71
+ "legit",
72
+ "monitored",
73
+ ]
74
+ ]
53
75
  """Filter the response by traffic types."""
@@ -4,16 +4,15 @@ from __future__ import annotations
4
4
 
5
5
  from typing import Union
6
6
  from datetime import datetime
7
- from typing_extensions import Required, Annotated, TypedDict
7
+ from typing_extensions import Literal, Required, Annotated, TypedDict
8
8
 
9
9
  from ...._utils import PropertyInfo
10
- from ..waap_resolution import WaapResolution
11
10
 
12
- __all__ = ["AnalyticsListEventTrafficParams"]
11
+ __all__ = ["StatisticGetTrafficSeriesParams"]
13
12
 
14
13
 
15
- class AnalyticsListEventTrafficParams(TypedDict, total=False):
16
- resolution: Required[WaapResolution]
14
+ class StatisticGetTrafficSeriesParams(TypedDict, total=False):
15
+ resolution: Required[Literal["daily", "hourly", "minutely"]]
17
16
  """Specifies the granularity of the result data."""
18
17
 
19
18
  start: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
@@ -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_traffic_metrics import WaapTrafficMetrics
7
+
8
+ __all__ = ["StatisticGetTrafficSeriesResponse"]
9
+
10
+ StatisticGetTrafficSeriesResponse: TypeAlias = List[WaapTrafficMetrics]
@@ -3,7 +3,7 @@
3
3
  from typing import List, Optional
4
4
  from typing_extensions import Literal
5
5
 
6
- from ..._models import BaseModel
6
+ from ...._models import BaseModel
7
7
 
8
8
  __all__ = ["WaapAdvancedRule", "Action", "ActionBlock", "ActionTag"]
9
9
 
@@ -6,10 +6,10 @@ from pydantic import Field as FieldInfo
6
6
 
7
7
  from ...._models import BaseModel
8
8
 
9
- __all__ = ["APIDiscoveryGetSettingsResponse"]
9
+ __all__ = ["WaapAPIDiscoverySettings"]
10
10
 
11
11
 
12
- class APIDiscoveryGetSettingsResponse(BaseModel):
12
+ class WaapAPIDiscoverySettings(BaseModel):
13
13
  description_file_location: Optional[str] = FieldInfo(alias="descriptionFileLocation", default=None)
14
14
  """The URL of the API description file.
15
15
 
@@ -6,10 +6,10 @@ from typing_extensions import Literal
6
6
 
7
7
  from ...._models import BaseModel
8
8
 
9
- __all__ = ["APIPathGetResponse"]
9
+ __all__ = ["WaapAPIPath"]
10
10
 
11
11
 
12
- class APIPathGetResponse(BaseModel):
12
+ class WaapAPIPath(BaseModel):
13
13
  id: str
14
14
  """The path ID"""
15
15
 
@@ -4,12 +4,12 @@ from typing import Optional
4
4
  from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
7
- from ....._models import BaseModel
7
+ from ...._models import BaseModel
8
8
 
9
- __all__ = ["ScanResultGetResponse"]
9
+ __all__ = ["WaapAPIScanResult"]
10
10
 
11
11
 
12
- class ScanResultGetResponse(BaseModel):
12
+ class WaapAPIScanResult(BaseModel):
13
13
  id: str
14
14
  """The scan ID"""
15
15
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from typing import List, Union
4
4
 
5
- from ..._models import BaseModel
5
+ from ...._models import BaseModel
6
6
 
7
7
  __all__ = ["WaapBlockedStatistics"]
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from typing import List, Union
4
4
 
5
- from ..._models import BaseModel
5
+ from ...._models import BaseModel
6
6
 
7
7
  __all__ = ["WaapCountStatistics"]
8
8
 
@@ -3,7 +3,7 @@
3
3
  from typing import List, Optional
4
4
  from typing_extensions import Literal
5
5
 
6
- from ..._models import BaseModel
6
+ from ...._models import BaseModel
7
7
 
8
8
  __all__ = [
9
9
  "WaapCustomRule",
@@ -3,7 +3,7 @@
3
3
  from typing import Optional
4
4
  from datetime import datetime
5
5
 
6
- from ..._models import BaseModel
6
+ from ...._models import BaseModel
7
7
 
8
8
  __all__ = ["WaapDDOSAttack"]
9
9
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from typing_extensions import Literal
4
4
 
5
- from ..._models import BaseModel
5
+ from ...._models import BaseModel
6
6
 
7
7
  __all__ = ["WaapDDOSInfo"]
8
8
 
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from ..._models import BaseModel
3
+ from ...._models import BaseModel
4
4
  from .waap_count_statistics import WaapCountStatistics
5
5
  from .waap_blocked_statistics import WaapBlockedStatistics
6
6
 
@@ -3,7 +3,7 @@
3
3
  from typing import List, Optional
4
4
  from typing_extensions import Literal
5
5
 
6
- from ..._models import BaseModel
6
+ from ...._models import BaseModel
7
7
 
8
8
  __all__ = ["WaapFirewallRule", "Action", "ActionBlock", "Condition", "ConditionIP", "ConditionIPRange"]
9
9
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  from typing import Dict
4
4
  from datetime import datetime
5
+ from typing_extensions import Literal
5
6
 
6
- from ..._models import BaseModel
7
- from .waap_insight_status import WaapInsightStatus
7
+ from ...._models import BaseModel
8
8
 
9
9
  __all__ = ["WaapInsight"]
10
10
 
@@ -34,5 +34,5 @@ class WaapInsight(BaseModel):
34
34
  recommendation: str
35
35
  """The recommended action to perform to resolve the insight"""
36
36
 
37
- status: WaapInsightStatus
37
+ status: Literal["OPEN", "ACKED", "CLOSED"]
38
38
  """The different statuses an insight can have"""