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,42 +3,35 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Optional
6
+ from typing_extensions import Literal
6
7
 
7
8
  import httpx
8
9
 
9
- from ....._types import NOT_GIVEN, Body, Query, Headers, NotGiven
10
- from ....._utils import maybe_transform, async_maybe_transform
11
- from ....._compat import cached_property
12
- from .scan_results import (
13
- ScanResultsResource,
14
- AsyncScanResultsResource,
15
- ScanResultsResourceWithRawResponse,
16
- AsyncScanResultsResourceWithRawResponse,
17
- ScanResultsResourceWithStreamingResponse,
18
- AsyncScanResultsResourceWithStreamingResponse,
19
- )
20
- from ....._resource import SyncAPIResource, AsyncAPIResource
21
- from ....._response import (
10
+ from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11
+ from ...._utils import maybe_transform, async_maybe_transform
12
+ from ...._compat import cached_property
13
+ from ...._resource import SyncAPIResource, AsyncAPIResource
14
+ from ...._response import (
22
15
  to_raw_response_wrapper,
23
16
  to_streamed_response_wrapper,
24
17
  async_to_raw_response_wrapper,
25
18
  async_to_streamed_response_wrapper,
26
19
  )
27
- from ....._base_client import make_request_options
28
- from .....types.waap.domains import api_discovery_upload_openapi_params, api_discovery_update_settings_params
29
- from .....types.waap.domains.api_discovery_get_settings_response import APIDiscoveryGetSettingsResponse
30
- from .....types.waap.domains.api_discovery_scan_openapi_response import APIDiscoveryScanOpenAPIResponse
31
- from .....types.waap.domains.api_discovery_upload_openapi_response import APIDiscoveryUploadOpenAPIResponse
32
- from .....types.waap.domains.api_discovery_update_settings_response import APIDiscoveryUpdateSettingsResponse
20
+ from ....pagination import SyncOffsetPage, AsyncOffsetPage
21
+ from ...._base_client import AsyncPaginator, make_request_options
22
+ from ....types.waap.domains import (
23
+ api_discovery_upload_openapi_params,
24
+ api_discovery_update_settings_params,
25
+ api_discovery_list_scan_results_params,
26
+ )
27
+ from ....types.waap.domains.waap_task_id import WaapTaskID
28
+ from ....types.waap.domains.waap_api_scan_result import WaapAPIScanResult
29
+ from ....types.waap.domains.waap_api_discovery_settings import WaapAPIDiscoverySettings
33
30
 
34
31
  __all__ = ["APIDiscoveryResource", "AsyncAPIDiscoveryResource"]
35
32
 
36
33
 
37
34
  class APIDiscoveryResource(SyncAPIResource):
38
- @cached_property
39
- def scan_results(self) -> ScanResultsResource:
40
- return ScanResultsResource(self._client)
41
-
42
35
  @cached_property
43
36
  def with_raw_response(self) -> APIDiscoveryResourceWithRawResponse:
44
37
  """
@@ -58,6 +51,44 @@ class APIDiscoveryResource(SyncAPIResource):
58
51
  """
59
52
  return APIDiscoveryResourceWithStreamingResponse(self)
60
53
 
54
+ def get_scan_result(
55
+ self,
56
+ scan_id: str,
57
+ *,
58
+ domain_id: int,
59
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
60
+ # The extra values given here take precedence over values defined on the client or passed to this method.
61
+ extra_headers: Headers | None = None,
62
+ extra_query: Query | None = None,
63
+ extra_body: Body | None = None,
64
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
65
+ ) -> WaapAPIScanResult:
66
+ """
67
+ Get Scan Result
68
+
69
+ Args:
70
+ domain_id: The domain ID
71
+
72
+ scan_id: The scan ID
73
+
74
+ extra_headers: Send extra headers
75
+
76
+ extra_query: Add additional query parameters to the request
77
+
78
+ extra_body: Add additional JSON properties to the request
79
+
80
+ timeout: Override the client-level default timeout for this request, in seconds
81
+ """
82
+ if not scan_id:
83
+ raise ValueError(f"Expected a non-empty value for `scan_id` but received {scan_id!r}")
84
+ return self._get(
85
+ f"/waap/v1/domains/{domain_id}/api-discovery/scan-results/{scan_id}",
86
+ options=make_request_options(
87
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
88
+ ),
89
+ cast_to=WaapAPIScanResult,
90
+ )
91
+
61
92
  def get_settings(
62
93
  self,
63
94
  domain_id: int,
@@ -68,7 +99,7 @@ class APIDiscoveryResource(SyncAPIResource):
68
99
  extra_query: Query | None = None,
69
100
  extra_body: Body | None = None,
70
101
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
71
- ) -> APIDiscoveryGetSettingsResponse:
102
+ ) -> WaapAPIDiscoverySettings:
72
103
  """
73
104
  Retrieve the API discovery settings for a domain
74
105
 
@@ -88,7 +119,87 @@ class APIDiscoveryResource(SyncAPIResource):
88
119
  options=make_request_options(
89
120
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
90
121
  ),
91
- cast_to=APIDiscoveryGetSettingsResponse,
122
+ cast_to=WaapAPIDiscoverySettings,
123
+ )
124
+
125
+ def list_scan_results(
126
+ self,
127
+ domain_id: int,
128
+ *,
129
+ limit: int | NotGiven = NOT_GIVEN,
130
+ message: Optional[str] | NotGiven = NOT_GIVEN,
131
+ offset: int | NotGiven = NOT_GIVEN,
132
+ ordering: Literal[
133
+ "id",
134
+ "type",
135
+ "start_time",
136
+ "end_time",
137
+ "status",
138
+ "message",
139
+ "-id",
140
+ "-type",
141
+ "-start_time",
142
+ "-end_time",
143
+ "-status",
144
+ "-message",
145
+ ]
146
+ | NotGiven = NOT_GIVEN,
147
+ status: Optional[Literal["SUCCESS", "FAILURE", "IN_PROGRESS"]] | NotGiven = NOT_GIVEN,
148
+ type: Optional[Literal["TRAFFIC_SCAN", "API_DESCRIPTION_FILE_SCAN"]] | NotGiven = NOT_GIVEN,
149
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
150
+ # The extra values given here take precedence over values defined on the client or passed to this method.
151
+ extra_headers: Headers | None = None,
152
+ extra_query: Query | None = None,
153
+ extra_body: Body | None = None,
154
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
155
+ ) -> SyncOffsetPage[WaapAPIScanResult]:
156
+ """
157
+ Get Scan Results
158
+
159
+ Args:
160
+ domain_id: The domain ID
161
+
162
+ limit: Number of items to return
163
+
164
+ message: Filter by the message of the scan. Supports '\\**' as a wildcard character
165
+
166
+ offset: Number of items to skip
167
+
168
+ ordering: Sort the response by given field.
169
+
170
+ status: The different statuses a task result can have
171
+
172
+ type: The different types of scans that can be performed
173
+
174
+ extra_headers: Send extra headers
175
+
176
+ extra_query: Add additional query parameters to the request
177
+
178
+ extra_body: Add additional JSON properties to the request
179
+
180
+ timeout: Override the client-level default timeout for this request, in seconds
181
+ """
182
+ return self._get_api_list(
183
+ f"/waap/v1/domains/{domain_id}/api-discovery/scan-results",
184
+ page=SyncOffsetPage[WaapAPIScanResult],
185
+ options=make_request_options(
186
+ extra_headers=extra_headers,
187
+ extra_query=extra_query,
188
+ extra_body=extra_body,
189
+ timeout=timeout,
190
+ query=maybe_transform(
191
+ {
192
+ "limit": limit,
193
+ "message": message,
194
+ "offset": offset,
195
+ "ordering": ordering,
196
+ "status": status,
197
+ "type": type,
198
+ },
199
+ api_discovery_list_scan_results_params.APIDiscoveryListScanResultsParams,
200
+ ),
201
+ ),
202
+ model=WaapAPIScanResult,
92
203
  )
93
204
 
94
205
  def scan_openapi(
@@ -101,7 +212,7 @@ class APIDiscoveryResource(SyncAPIResource):
101
212
  extra_query: Query | None = None,
102
213
  extra_body: Body | None = None,
103
214
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
104
- ) -> APIDiscoveryScanOpenAPIResponse:
215
+ ) -> WaapTaskID:
105
216
  """Scan an API description file hosted online.
106
217
 
107
218
  The file must be in YAML or JSON
@@ -124,7 +235,7 @@ class APIDiscoveryResource(SyncAPIResource):
124
235
  options=make_request_options(
125
236
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
126
237
  ),
127
- cast_to=APIDiscoveryScanOpenAPIResponse,
238
+ cast_to=WaapTaskID,
128
239
  )
129
240
 
130
241
  def update_settings(
@@ -142,7 +253,7 @@ class APIDiscoveryResource(SyncAPIResource):
142
253
  extra_query: Query | None = None,
143
254
  extra_body: Body | None = None,
144
255
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
145
- ) -> APIDiscoveryUpdateSettingsResponse:
256
+ ) -> WaapAPIDiscoverySettings:
146
257
  """
147
258
  Update the API discovery settings for a domain
148
259
 
@@ -184,7 +295,7 @@ class APIDiscoveryResource(SyncAPIResource):
184
295
  options=make_request_options(
185
296
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
186
297
  ),
187
- cast_to=APIDiscoveryUpdateSettingsResponse,
298
+ cast_to=WaapAPIDiscoverySettings,
188
299
  )
189
300
 
190
301
  def upload_openapi(
@@ -199,7 +310,7 @@ class APIDiscoveryResource(SyncAPIResource):
199
310
  extra_query: Query | None = None,
200
311
  extra_body: Body | None = None,
201
312
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
202
- ) -> APIDiscoveryUploadOpenAPIResponse:
313
+ ) -> WaapTaskID:
203
314
  """
204
315
  An API description file must adhere to the OpenAPI specification and be written
205
316
  in YAML or JSON format. The file name should be provided as the value for the
@@ -234,15 +345,11 @@ class APIDiscoveryResource(SyncAPIResource):
234
345
  options=make_request_options(
235
346
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
236
347
  ),
237
- cast_to=APIDiscoveryUploadOpenAPIResponse,
348
+ cast_to=WaapTaskID,
238
349
  )
239
350
 
240
351
 
241
352
  class AsyncAPIDiscoveryResource(AsyncAPIResource):
242
- @cached_property
243
- def scan_results(self) -> AsyncScanResultsResource:
244
- return AsyncScanResultsResource(self._client)
245
-
246
353
  @cached_property
247
354
  def with_raw_response(self) -> AsyncAPIDiscoveryResourceWithRawResponse:
248
355
  """
@@ -262,6 +369,44 @@ class AsyncAPIDiscoveryResource(AsyncAPIResource):
262
369
  """
263
370
  return AsyncAPIDiscoveryResourceWithStreamingResponse(self)
264
371
 
372
+ async def get_scan_result(
373
+ self,
374
+ scan_id: str,
375
+ *,
376
+ domain_id: int,
377
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
378
+ # The extra values given here take precedence over values defined on the client or passed to this method.
379
+ extra_headers: Headers | None = None,
380
+ extra_query: Query | None = None,
381
+ extra_body: Body | None = None,
382
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
383
+ ) -> WaapAPIScanResult:
384
+ """
385
+ Get Scan Result
386
+
387
+ Args:
388
+ domain_id: The domain ID
389
+
390
+ scan_id: The scan ID
391
+
392
+ extra_headers: Send extra headers
393
+
394
+ extra_query: Add additional query parameters to the request
395
+
396
+ extra_body: Add additional JSON properties to the request
397
+
398
+ timeout: Override the client-level default timeout for this request, in seconds
399
+ """
400
+ if not scan_id:
401
+ raise ValueError(f"Expected a non-empty value for `scan_id` but received {scan_id!r}")
402
+ return await self._get(
403
+ f"/waap/v1/domains/{domain_id}/api-discovery/scan-results/{scan_id}",
404
+ options=make_request_options(
405
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
406
+ ),
407
+ cast_to=WaapAPIScanResult,
408
+ )
409
+
265
410
  async def get_settings(
266
411
  self,
267
412
  domain_id: int,
@@ -272,7 +417,7 @@ class AsyncAPIDiscoveryResource(AsyncAPIResource):
272
417
  extra_query: Query | None = None,
273
418
  extra_body: Body | None = None,
274
419
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
275
- ) -> APIDiscoveryGetSettingsResponse:
420
+ ) -> WaapAPIDiscoverySettings:
276
421
  """
277
422
  Retrieve the API discovery settings for a domain
278
423
 
@@ -292,7 +437,87 @@ class AsyncAPIDiscoveryResource(AsyncAPIResource):
292
437
  options=make_request_options(
293
438
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
294
439
  ),
295
- cast_to=APIDiscoveryGetSettingsResponse,
440
+ cast_to=WaapAPIDiscoverySettings,
441
+ )
442
+
443
+ def list_scan_results(
444
+ self,
445
+ domain_id: int,
446
+ *,
447
+ limit: int | NotGiven = NOT_GIVEN,
448
+ message: Optional[str] | NotGiven = NOT_GIVEN,
449
+ offset: int | NotGiven = NOT_GIVEN,
450
+ ordering: Literal[
451
+ "id",
452
+ "type",
453
+ "start_time",
454
+ "end_time",
455
+ "status",
456
+ "message",
457
+ "-id",
458
+ "-type",
459
+ "-start_time",
460
+ "-end_time",
461
+ "-status",
462
+ "-message",
463
+ ]
464
+ | NotGiven = NOT_GIVEN,
465
+ status: Optional[Literal["SUCCESS", "FAILURE", "IN_PROGRESS"]] | NotGiven = NOT_GIVEN,
466
+ type: Optional[Literal["TRAFFIC_SCAN", "API_DESCRIPTION_FILE_SCAN"]] | NotGiven = NOT_GIVEN,
467
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
468
+ # The extra values given here take precedence over values defined on the client or passed to this method.
469
+ extra_headers: Headers | None = None,
470
+ extra_query: Query | None = None,
471
+ extra_body: Body | None = None,
472
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
473
+ ) -> AsyncPaginator[WaapAPIScanResult, AsyncOffsetPage[WaapAPIScanResult]]:
474
+ """
475
+ Get Scan Results
476
+
477
+ Args:
478
+ domain_id: The domain ID
479
+
480
+ limit: Number of items to return
481
+
482
+ message: Filter by the message of the scan. Supports '\\**' as a wildcard character
483
+
484
+ offset: Number of items to skip
485
+
486
+ ordering: Sort the response by given field.
487
+
488
+ status: The different statuses a task result can have
489
+
490
+ type: The different types of scans that can be performed
491
+
492
+ extra_headers: Send extra headers
493
+
494
+ extra_query: Add additional query parameters to the request
495
+
496
+ extra_body: Add additional JSON properties to the request
497
+
498
+ timeout: Override the client-level default timeout for this request, in seconds
499
+ """
500
+ return self._get_api_list(
501
+ f"/waap/v1/domains/{domain_id}/api-discovery/scan-results",
502
+ page=AsyncOffsetPage[WaapAPIScanResult],
503
+ options=make_request_options(
504
+ extra_headers=extra_headers,
505
+ extra_query=extra_query,
506
+ extra_body=extra_body,
507
+ timeout=timeout,
508
+ query=maybe_transform(
509
+ {
510
+ "limit": limit,
511
+ "message": message,
512
+ "offset": offset,
513
+ "ordering": ordering,
514
+ "status": status,
515
+ "type": type,
516
+ },
517
+ api_discovery_list_scan_results_params.APIDiscoveryListScanResultsParams,
518
+ ),
519
+ ),
520
+ model=WaapAPIScanResult,
296
521
  )
297
522
 
298
523
  async def scan_openapi(
@@ -305,7 +530,7 @@ class AsyncAPIDiscoveryResource(AsyncAPIResource):
305
530
  extra_query: Query | None = None,
306
531
  extra_body: Body | None = None,
307
532
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
308
- ) -> APIDiscoveryScanOpenAPIResponse:
533
+ ) -> WaapTaskID:
309
534
  """Scan an API description file hosted online.
310
535
 
311
536
  The file must be in YAML or JSON
@@ -328,7 +553,7 @@ class AsyncAPIDiscoveryResource(AsyncAPIResource):
328
553
  options=make_request_options(
329
554
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
330
555
  ),
331
- cast_to=APIDiscoveryScanOpenAPIResponse,
556
+ cast_to=WaapTaskID,
332
557
  )
333
558
 
334
559
  async def update_settings(
@@ -346,7 +571,7 @@ class AsyncAPIDiscoveryResource(AsyncAPIResource):
346
571
  extra_query: Query | None = None,
347
572
  extra_body: Body | None = None,
348
573
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
349
- ) -> APIDiscoveryUpdateSettingsResponse:
574
+ ) -> WaapAPIDiscoverySettings:
350
575
  """
351
576
  Update the API discovery settings for a domain
352
577
 
@@ -388,7 +613,7 @@ class AsyncAPIDiscoveryResource(AsyncAPIResource):
388
613
  options=make_request_options(
389
614
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
390
615
  ),
391
- cast_to=APIDiscoveryUpdateSettingsResponse,
616
+ cast_to=WaapAPIDiscoverySettings,
392
617
  )
393
618
 
394
619
  async def upload_openapi(
@@ -403,7 +628,7 @@ class AsyncAPIDiscoveryResource(AsyncAPIResource):
403
628
  extra_query: Query | None = None,
404
629
  extra_body: Body | None = None,
405
630
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
406
- ) -> APIDiscoveryUploadOpenAPIResponse:
631
+ ) -> WaapTaskID:
407
632
  """
408
633
  An API description file must adhere to the OpenAPI specification and be written
409
634
  in YAML or JSON format. The file name should be provided as the value for the
@@ -438,7 +663,7 @@ class AsyncAPIDiscoveryResource(AsyncAPIResource):
438
663
  options=make_request_options(
439
664
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
440
665
  ),
441
- cast_to=APIDiscoveryUploadOpenAPIResponse,
666
+ cast_to=WaapTaskID,
442
667
  )
443
668
 
444
669
 
@@ -446,9 +671,15 @@ class APIDiscoveryResourceWithRawResponse:
446
671
  def __init__(self, api_discovery: APIDiscoveryResource) -> None:
447
672
  self._api_discovery = api_discovery
448
673
 
674
+ self.get_scan_result = to_raw_response_wrapper(
675
+ api_discovery.get_scan_result,
676
+ )
449
677
  self.get_settings = to_raw_response_wrapper(
450
678
  api_discovery.get_settings,
451
679
  )
680
+ self.list_scan_results = to_raw_response_wrapper(
681
+ api_discovery.list_scan_results,
682
+ )
452
683
  self.scan_openapi = to_raw_response_wrapper(
453
684
  api_discovery.scan_openapi,
454
685
  )
@@ -459,18 +690,20 @@ class APIDiscoveryResourceWithRawResponse:
459
690
  api_discovery.upload_openapi,
460
691
  )
461
692
 
462
- @cached_property
463
- def scan_results(self) -> ScanResultsResourceWithRawResponse:
464
- return ScanResultsResourceWithRawResponse(self._api_discovery.scan_results)
465
-
466
693
 
467
694
  class AsyncAPIDiscoveryResourceWithRawResponse:
468
695
  def __init__(self, api_discovery: AsyncAPIDiscoveryResource) -> None:
469
696
  self._api_discovery = api_discovery
470
697
 
698
+ self.get_scan_result = async_to_raw_response_wrapper(
699
+ api_discovery.get_scan_result,
700
+ )
471
701
  self.get_settings = async_to_raw_response_wrapper(
472
702
  api_discovery.get_settings,
473
703
  )
704
+ self.list_scan_results = async_to_raw_response_wrapper(
705
+ api_discovery.list_scan_results,
706
+ )
474
707
  self.scan_openapi = async_to_raw_response_wrapper(
475
708
  api_discovery.scan_openapi,
476
709
  )
@@ -481,18 +714,20 @@ class AsyncAPIDiscoveryResourceWithRawResponse:
481
714
  api_discovery.upload_openapi,
482
715
  )
483
716
 
484
- @cached_property
485
- def scan_results(self) -> AsyncScanResultsResourceWithRawResponse:
486
- return AsyncScanResultsResourceWithRawResponse(self._api_discovery.scan_results)
487
-
488
717
 
489
718
  class APIDiscoveryResourceWithStreamingResponse:
490
719
  def __init__(self, api_discovery: APIDiscoveryResource) -> None:
491
720
  self._api_discovery = api_discovery
492
721
 
722
+ self.get_scan_result = to_streamed_response_wrapper(
723
+ api_discovery.get_scan_result,
724
+ )
493
725
  self.get_settings = to_streamed_response_wrapper(
494
726
  api_discovery.get_settings,
495
727
  )
728
+ self.list_scan_results = to_streamed_response_wrapper(
729
+ api_discovery.list_scan_results,
730
+ )
496
731
  self.scan_openapi = to_streamed_response_wrapper(
497
732
  api_discovery.scan_openapi,
498
733
  )
@@ -503,18 +738,20 @@ class APIDiscoveryResourceWithStreamingResponse:
503
738
  api_discovery.upload_openapi,
504
739
  )
505
740
 
506
- @cached_property
507
- def scan_results(self) -> ScanResultsResourceWithStreamingResponse:
508
- return ScanResultsResourceWithStreamingResponse(self._api_discovery.scan_results)
509
-
510
741
 
511
742
  class AsyncAPIDiscoveryResourceWithStreamingResponse:
512
743
  def __init__(self, api_discovery: AsyncAPIDiscoveryResource) -> None:
513
744
  self._api_discovery = api_discovery
514
745
 
746
+ self.get_scan_result = async_to_streamed_response_wrapper(
747
+ api_discovery.get_scan_result,
748
+ )
515
749
  self.get_settings = async_to_streamed_response_wrapper(
516
750
  api_discovery.get_settings,
517
751
  )
752
+ self.list_scan_results = async_to_streamed_response_wrapper(
753
+ api_discovery.list_scan_results,
754
+ )
518
755
  self.scan_openapi = async_to_streamed_response_wrapper(
519
756
  api_discovery.scan_openapi,
520
757
  )
@@ -524,7 +761,3 @@ class AsyncAPIDiscoveryResourceWithStreamingResponse:
524
761
  self.upload_openapi = async_to_streamed_response_wrapper(
525
762
  api_discovery.upload_openapi,
526
763
  )
527
-
528
- @cached_property
529
- def scan_results(self) -> AsyncScanResultsResourceWithStreamingResponse:
530
- return AsyncScanResultsResourceWithStreamingResponse(self._api_discovery.scan_results)
@@ -14,7 +14,7 @@ from ...._response import (
14
14
  async_to_streamed_response_wrapper,
15
15
  )
16
16
  from ...._base_client import make_request_options
17
- from ....types.waap.domains.api_path_group_list_response import APIPathGroupListResponse
17
+ from ....types.waap.domains.api_path_group_list import APIPathGroupList
18
18
 
19
19
  __all__ = ["APIPathGroupsResource", "AsyncAPIPathGroupsResource"]
20
20
 
@@ -49,7 +49,7 @@ class APIPathGroupsResource(SyncAPIResource):
49
49
  extra_query: Query | None = None,
50
50
  extra_body: Body | None = None,
51
51
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
52
- ) -> APIPathGroupListResponse:
52
+ ) -> APIPathGroupList:
53
53
  """
54
54
  Retrieve a list of API path groups for a specific domain
55
55
 
@@ -69,7 +69,7 @@ class APIPathGroupsResource(SyncAPIResource):
69
69
  options=make_request_options(
70
70
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
71
71
  ),
72
- cast_to=APIPathGroupListResponse,
72
+ cast_to=APIPathGroupList,
73
73
  )
74
74
 
75
75
 
@@ -103,7 +103,7 @@ class AsyncAPIPathGroupsResource(AsyncAPIResource):
103
103
  extra_query: Query | None = None,
104
104
  extra_body: Body | None = None,
105
105
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
106
- ) -> APIPathGroupListResponse:
106
+ ) -> APIPathGroupList:
107
107
  """
108
108
  Retrieve a list of API path groups for a specific domain
109
109
 
@@ -123,7 +123,7 @@ class AsyncAPIPathGroupsResource(AsyncAPIResource):
123
123
  options=make_request_options(
124
124
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
125
125
  ),
126
- cast_to=APIPathGroupListResponse,
126
+ cast_to=APIPathGroupList,
127
127
  )
128
128
 
129
129