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,7 +3,7 @@
3
3
  from typing import Dict, Optional
4
4
  from datetime import datetime
5
5
 
6
- from ..._models import BaseModel
6
+ from ...._models import BaseModel
7
7
 
8
8
  __all__ = ["WaapInsightSilence"]
9
9
 
@@ -0,0 +1,185 @@
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 Literal
5
+
6
+ from ...._models import BaseModel
7
+
8
+ __all__ = ["WaapRequestDetails", "CommonTag", "Network", "NetworkOrganization", "PatternMatchedTag", "UserAgent"]
9
+
10
+
11
+ class CommonTag(BaseModel):
12
+ description: str
13
+ """Tag description information"""
14
+
15
+ display_name: str
16
+ """The tag's display name"""
17
+
18
+ tag: str
19
+ """Tag name"""
20
+
21
+
22
+ class NetworkOrganization(BaseModel):
23
+ name: str
24
+ """Organization name"""
25
+
26
+ subnet: str
27
+ """Network range"""
28
+
29
+
30
+ class Network(BaseModel):
31
+ client_ip: str
32
+ """Client IP"""
33
+
34
+ country: str
35
+ """Country code"""
36
+
37
+ organization: NetworkOrganization
38
+ """Organization details"""
39
+
40
+
41
+ class PatternMatchedTag(BaseModel):
42
+ description: str
43
+ """Tag description information"""
44
+
45
+ display_name: str
46
+ """The tag's display name"""
47
+
48
+ execution_phase: str
49
+ """
50
+ The phase in which the tag was triggered: access -> Request, `header_filter` ->
51
+ `response_header`, `body_filter` -> `response_body`
52
+ """
53
+
54
+ field: str
55
+ """The entity to which the variable that triggered the tag belong to.
56
+
57
+ For example: `request_headers`, uri, cookies etc.
58
+ """
59
+
60
+ field_name: str
61
+ """The name of the variable which holds the value that triggered the tag"""
62
+
63
+ pattern_name: str
64
+ """The name of the detected regexp pattern"""
65
+
66
+ pattern_value: str
67
+ """The pattern which triggered the tag"""
68
+
69
+ tag: str
70
+ """Tag name"""
71
+
72
+
73
+ class UserAgent(BaseModel):
74
+ base_browser: str
75
+ """User agent browser"""
76
+
77
+ base_browser_version: str
78
+ """User agent browser version"""
79
+
80
+ client: str
81
+ """Client from User agent header"""
82
+
83
+ client_type: str
84
+ """User agent client type"""
85
+
86
+ client_version: str
87
+ """User agent client version"""
88
+
89
+ cpu: str
90
+ """User agent cpu"""
91
+
92
+ device: str
93
+ """User agent device"""
94
+
95
+ device_type: str
96
+ """User agent device type"""
97
+
98
+ full_string: str
99
+ """User agent"""
100
+
101
+ os: str
102
+ """User agent os"""
103
+
104
+ rendering_engine: str
105
+ """User agent engine"""
106
+
107
+
108
+ class WaapRequestDetails(BaseModel):
109
+ id: str
110
+ """Request ID"""
111
+
112
+ action: str
113
+ """Request action"""
114
+
115
+ common_tags: List[CommonTag]
116
+ """List of common tags"""
117
+
118
+ content_type: str
119
+ """Content type of request"""
120
+
121
+ domain: str
122
+ """Domain name"""
123
+
124
+ http_status_code: int
125
+ """Status code for http request"""
126
+
127
+ http_version: str
128
+ """HTTP version of request"""
129
+
130
+ incident_id: str
131
+ """ID of challenge that was generated"""
132
+
133
+ method: str
134
+ """Request method"""
135
+
136
+ network: Network
137
+ """Network details"""
138
+
139
+ path: str
140
+ """Request path"""
141
+
142
+ pattern_matched_tags: List[PatternMatchedTag]
143
+ """List of shield tags"""
144
+
145
+ query_string: str
146
+ """The query string of the request"""
147
+
148
+ reference_id: str
149
+ """Reference ID to identify user sanction"""
150
+
151
+ request_headers: object
152
+ """HTTP request headers"""
153
+
154
+ request_time: str
155
+ """The time of the request"""
156
+
157
+ request_type: str
158
+ """The type of the request that generated an event"""
159
+
160
+ requested_domain: str
161
+ """The real domain name"""
162
+
163
+ response_time: str
164
+ """Time took to process all request"""
165
+
166
+ result: Literal["passed", "blocked", "suppressed", ""]
167
+ """The result of a request"""
168
+
169
+ rule_id: str
170
+ """ID of the triggered rule"""
171
+
172
+ rule_name: str
173
+ """Name of the triggered rule"""
174
+
175
+ scheme: str
176
+ """The HTTP scheme of the request that generated an event"""
177
+
178
+ session_request_count: str
179
+ """The number requests in session"""
180
+
181
+ traffic_types: List[str]
182
+ """List of traffic types"""
183
+
184
+ user_agent: UserAgent
185
+ """User agent details"""
@@ -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__ = ["WaapRequestSummary"]
8
8
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  from ...._models import BaseModel
4
4
 
5
- __all__ = ["APIDiscoveryScanOpenAPIResponse"]
5
+ __all__ = ["WaapTaskID"]
6
6
 
7
7
 
8
- class APIDiscoveryScanOpenAPIResponse(BaseModel):
8
+ class WaapTaskID(BaseModel):
9
9
  id: str
10
10
  """The task ID"""
@@ -4,7 +4,7 @@ from typing import Optional
4
4
 
5
5
  from pydantic import Field as FieldInfo
6
6
 
7
- from ..._models import BaseModel
7
+ from ...._models import BaseModel
8
8
 
9
9
  __all__ = ["WaapTrafficMetrics"]
10
10
 
@@ -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__ = ["InsightListTypesParams"]
9
+
10
+
11
+ class InsightListTypesParams(TypedDict, total=False):
12
+ insight_frequency: Optional[int]
13
+ """Filter by the frequency of the insight type"""
14
+
15
+ limit: int
16
+ """Number of items to return"""
17
+
18
+ name: Optional[str]
19
+ """Filter by the name of the insight type"""
20
+
21
+ offset: int
22
+ """Number of items to skip"""
23
+
24
+ ordering: Literal["name", "-name", "slug", "-slug", "insight_frequency", "-insight_frequency"]
25
+ """Sort the response by given field."""
26
+
27
+ slug: Optional[str]
28
+ """Filter by the slug of the insight type"""
@@ -0,0 +1,6 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .metric_list_params import MetricListParams as MetricListParams
6
+ from .waap_ip_info_counts import WaapIPInfoCounts as WaapIPInfoCounts
@@ -5,10 +5,10 @@ from __future__ import annotations
5
5
  from typing import Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
- __all__ = ["IPInfoGetCountsParams"]
8
+ __all__ = ["MetricListParams"]
9
9
 
10
10
 
11
- class IPInfoGetCountsParams(TypedDict, total=False):
11
+ class MetricListParams(TypedDict, total=False):
12
12
  ip: Required[str]
13
13
  """The IP address to check"""
14
14
 
@@ -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
 
5
5
  __all__ = ["WaapIPInfoCounts"]
6
6
 
@@ -4,9 +4,9 @@ from __future__ import annotations
4
4
 
5
5
  from typing_extensions import Required, TypedDict
6
6
 
7
- __all__ = ["IPInfoGetParams"]
7
+ __all__ = ["IPInfoGetIPInfoParams"]
8
8
 
9
9
 
10
- class IPInfoGetParams(TypedDict, total=False):
10
+ class IPInfoGetIPInfoParams(TypedDict, total=False):
11
11
  ip: Required[str]
12
12
  """The IP address to check"""
@@ -5,7 +5,7 @@ from typing_extensions import Literal
5
5
 
6
6
  from ..._models import BaseModel
7
7
 
8
- __all__ = ["WaapIPInfo", "Whois"]
8
+ __all__ = ["IPInfoGetIPInfoResponse", "Whois"]
9
9
 
10
10
 
11
11
  class Whois(BaseModel):
@@ -46,7 +46,7 @@ class Whois(BaseModel):
46
46
  """The state"""
47
47
 
48
48
 
49
- class WaapIPInfo(BaseModel):
49
+ class IPInfoGetIPInfoResponse(BaseModel):
50
50
  risk_score: Literal["NO_RISK", "LOW", "MEDIUM", "HIGH", "EXTREME", "NOT_ENOUGH_DATA"]
51
51
  """The risk score of the IP address"""
52
52
 
@@ -3,8 +3,17 @@
3
3
  from typing import List
4
4
  from typing_extensions import TypeAlias
5
5
 
6
- from .waap_top_url import WaapTopURL
6
+ from ..._models import BaseModel
7
7
 
8
- __all__ = ["IPInfoGetTopURLsResponse"]
8
+ __all__ = ["IPInfoGetTopURLsResponse", "IPInfoGetTopURLsResponseItem"]
9
9
 
10
- IPInfoGetTopURLsResponse: TypeAlias = List[WaapTopURL]
10
+
11
+ class IPInfoGetTopURLsResponseItem(BaseModel):
12
+ count: int
13
+ """The number of attacks to the URL"""
14
+
15
+ url: str
16
+ """The URL that was attacked"""
17
+
18
+
19
+ IPInfoGetTopURLsResponse: TypeAlias = List[IPInfoGetTopURLsResponseItem]
@@ -4,10 +4,10 @@ from __future__ import annotations
4
4
 
5
5
  from typing_extensions import Required, TypedDict
6
6
 
7
- __all__ = ["IPInfoGetTopSessionsParams"]
7
+ __all__ = ["IPInfoGetTopUserSessionsParams"]
8
8
 
9
9
 
10
- class IPInfoGetTopSessionsParams(TypedDict, total=False):
10
+ class IPInfoGetTopUserSessionsParams(TypedDict, total=False):
11
11
  domain_id: Required[int]
12
12
  """The identifier for a domain.
13
13
 
@@ -5,6 +5,6 @@ from typing_extensions import TypeAlias
5
5
 
6
6
  from .waap_top_session import WaapTopSession
7
7
 
8
- __all__ = ["IPInfoGetTopSessionsResponse"]
8
+ __all__ = ["IPInfoGetTopUserSessionsResponse"]
9
9
 
10
- IPInfoGetTopSessionsResponse: TypeAlias = List[WaapTopSession]
10
+ IPInfoGetTopUserSessionsResponse: TypeAlias = List[WaapTopSession]
@@ -3,14 +3,114 @@
3
3
  from typing import List, Optional
4
4
 
5
5
  from ..._models import BaseModel
6
- from .waap_block_page_data import WaapBlockPageData
7
- from .waap_captcha_page_data import WaapCaptchaPageData
8
- from .waap_handshake_page_data import WaapHandshakePageData
9
- from .waap_block_csrf_page_data import WaapBlockCsrfPageData
10
- from .waap_cookie_disabled_page_data import WaapCookieDisabledPageData
11
- from .waap_javascript_disabled_page_data import WaapJavascriptDisabledPageData
12
6
 
13
- __all__ = ["WaapCustomPageSet"]
7
+ __all__ = ["WaapCustomPageSet", "Block", "BlockCsrf", "Captcha", "CookieDisabled", "Handshake", "JavascriptDisabled"]
8
+
9
+
10
+ class Block(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"""
29
+
30
+
31
+ class BlockCsrf(BaseModel):
32
+ enabled: bool
33
+ """Indicates whether the custom custom page is active or inactive"""
34
+
35
+ header: Optional[str] = None
36
+ """The text to display in the header of the custom page"""
37
+
38
+ logo: Optional[str] = None
39
+ """
40
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
41
+ height 130px. This should be a base 64 encoding of the full HTML img tag
42
+ compatible image, with the header included.
43
+ """
44
+
45
+ text: Optional[str] = None
46
+ """The text to display in the body of the custom page"""
47
+
48
+ title: Optional[str] = None
49
+ """The text to display in the title of the custom page"""
50
+
51
+
52
+ class Captcha(BaseModel):
53
+ enabled: bool
54
+ """Indicates whether the custom custom page is active or inactive"""
55
+
56
+ error: Optional[str] = None
57
+ """Error message"""
58
+
59
+ header: Optional[str] = None
60
+ """The text to display in the header of the custom page"""
61
+
62
+ logo: Optional[str] = None
63
+ """
64
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
65
+ height 130px. This should be a base 64 encoding of the full HTML img tag
66
+ compatible image, with the header included.
67
+ """
68
+
69
+ text: Optional[str] = None
70
+ """The text to display in the body of the custom page"""
71
+
72
+ title: Optional[str] = None
73
+ """The text to display in the title of the custom page"""
74
+
75
+
76
+ class CookieDisabled(BaseModel):
77
+ enabled: bool
78
+ """Indicates whether the custom custom page is active or inactive"""
79
+
80
+ header: Optional[str] = None
81
+ """The text to display in the header of the custom page"""
82
+
83
+ text: Optional[str] = None
84
+ """The text to display in the body of the custom page"""
85
+
86
+
87
+ class Handshake(BaseModel):
88
+ enabled: bool
89
+ """Indicates whether the custom custom page is active or inactive"""
90
+
91
+ header: Optional[str] = None
92
+ """The text to display in the header of the custom page"""
93
+
94
+ logo: Optional[str] = None
95
+ """
96
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
97
+ height 130px. This should be a base 64 encoding of the full HTML img tag
98
+ compatible image, with the header included.
99
+ """
100
+
101
+ title: Optional[str] = None
102
+ """The text to display in the title of the custom page"""
103
+
104
+
105
+ class JavascriptDisabled(BaseModel):
106
+ enabled: bool
107
+ """Indicates whether the custom custom page is active or inactive"""
108
+
109
+ header: Optional[str] = None
110
+ """The text to display in the header of the custom page"""
111
+
112
+ text: Optional[str] = None
113
+ """The text to display in the body of the custom page"""
14
114
 
15
115
 
16
116
  class WaapCustomPageSet(BaseModel):
@@ -20,17 +120,17 @@ class WaapCustomPageSet(BaseModel):
20
120
  name: str
21
121
  """Name of the custom page set"""
22
122
 
23
- block: Optional[WaapBlockPageData] = None
123
+ block: Optional[Block] = None
24
124
 
25
- block_csrf: Optional[WaapBlockCsrfPageData] = None
125
+ block_csrf: Optional[BlockCsrf] = None
26
126
 
27
- captcha: Optional[WaapCaptchaPageData] = None
127
+ captcha: Optional[Captcha] = None
28
128
 
29
- cookie_disabled: Optional[WaapCookieDisabledPageData] = None
129
+ cookie_disabled: Optional[CookieDisabled] = None
30
130
 
31
131
  domains: Optional[List[int]] = None
32
132
  """List of domain IDs that are associated with this page set"""
33
133
 
34
- handshake: Optional[WaapHandshakePageData] = None
134
+ handshake: Optional[Handshake] = None
35
135
 
36
- javascript_disabled: Optional[WaapJavascriptDisabledPageData] = None
136
+ javascript_disabled: Optional[JavascriptDisabled] = None
@@ -2,9 +2,9 @@
2
2
 
3
3
  from typing import Dict, Optional
4
4
  from datetime import datetime
5
+ from typing_extensions import Literal
5
6
 
6
7
  from ..._models import BaseModel
7
- from .waap_domain_status import WaapDomainStatus
8
8
 
9
9
  __all__ = ["WaapDetailedDomain", "Quotas"]
10
10
 
@@ -30,7 +30,7 @@ class WaapDetailedDomain(BaseModel):
30
30
  name: str
31
31
  """The domain name"""
32
32
 
33
- status: WaapDomainStatus
33
+ status: Literal["active", "bypass", "monitor", "locked"]
34
34
  """The different statuses a domain can have"""
35
35
 
36
36
  quotas: Optional[Dict[str, Quotas]] = None
@@ -0,0 +1,33 @@
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__ = ["WaapInsightType"]
8
+
9
+
10
+ class WaapInsightType(BaseModel):
11
+ description: str
12
+ """The description of the insight type"""
13
+
14
+ insight_frequency: int
15
+ """The frequency of the insight type"""
16
+
17
+ insight_grouping_dimensions: List[str]
18
+ """The grouping dimensions of the insight type"""
19
+
20
+ insight_template: str
21
+ """The insight template"""
22
+
23
+ labels: List[str]
24
+ """The labels of the insight type"""
25
+
26
+ name: str
27
+ """The name of the insight type"""
28
+
29
+ recommendation_template: str
30
+ """The recommendation template"""
31
+
32
+ slug: str
33
+ """The slug of the insight type"""
@@ -1,11 +1,11 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  from typing import List, Optional
4
+ from typing_extensions import Literal
4
5
 
5
6
  from ..._models import BaseModel
6
- from .waap_domain_policy import WaapDomainPolicy
7
7
 
8
- __all__ = ["WaapRuleSet", "Tag"]
8
+ __all__ = ["WaapRuleSet", "Tag", "Rule"]
9
9
 
10
10
 
11
11
  class Tag(BaseModel):
@@ -19,6 +19,29 @@ class Tag(BaseModel):
19
19
  """Name of the tag."""
20
20
 
21
21
 
22
+ class Rule(BaseModel):
23
+ id: str
24
+ """Unique identifier for the security rule"""
25
+
26
+ action: Literal["Allow", "Block", "Captcha", "Gateway", "Handshake", "Monitor", "Composite"]
27
+ """The action taken by the WAAP upon rule activation."""
28
+
29
+ description: str
30
+ """Detailed description of the security rule"""
31
+
32
+ group: str
33
+ """The rule set group name to which the rule belongs"""
34
+
35
+ mode: bool
36
+ """Indicates if the security rule is active"""
37
+
38
+ name: str
39
+ """Name of the security rule"""
40
+
41
+ rule_set_id: int
42
+ """Identifier of the rule set to which the rule belongs"""
43
+
44
+
22
45
  class WaapRuleSet(BaseModel):
23
46
  id: int
24
47
  """Identifier of the rule set."""
@@ -38,4 +61,4 @@ class WaapRuleSet(BaseModel):
38
61
  resource_slug: Optional[str] = None
39
62
  """The resource slug associated with the rule set."""
40
63
 
41
- rules: Optional[List[WaapDomainPolicy]] = None
64
+ rules: Optional[List[Rule]] = None
@@ -2,9 +2,9 @@
2
2
 
3
3
  from typing import Optional
4
4
  from datetime import datetime
5
+ from typing_extensions import Literal
5
6
 
6
7
  from ..._models import BaseModel
7
- from .waap_domain_status import WaapDomainStatus
8
8
 
9
9
  __all__ = ["WaapSummaryDomain"]
10
10
 
@@ -22,5 +22,5 @@ class WaapSummaryDomain(BaseModel):
22
22
  name: str
23
23
  """The domain name"""
24
24
 
25
- status: WaapDomainStatus
25
+ status: Literal["active", "bypass", "monitor", "locked"]
26
26
  """The different statuses a domain can have"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gcore
3
- Version: 0.8.0
3
+ Version: 0.10.0
4
4
  Summary: The official Python library for the gcore API
5
5
  Project-URL: Homepage, https://github.com/G-Core/gcore-python
6
6
  Project-URL: Repository, https://github.com/G-Core/gcore-python