1: | <?php |
2: | |
3: | declare(strict_types=1); |
4: | |
5: | /** |
6: | * SPDX-License-Identifier: Apache-2.0 |
7: | * |
8: | * The OpenSearch Contributors require contributions made to |
9: | * this file be licensed under the Apache-2.0 license or a |
10: | * compatible open source license. |
11: | * |
12: | * Modifications Copyright OpenSearch Contributors. See |
13: | * GitHub history for details. |
14: | */ |
15: | |
16: | namespace OpenSearch\Namespaces; |
17: | |
18: | use OpenSearch\Endpoints\SecurityAnalytics\GetAlerts; |
19: | use OpenSearch\Endpoints\SecurityAnalytics\GetFindings; |
20: | use OpenSearch\Endpoints\SecurityAnalytics\SearchFindingCorrelations; |
21: | |
22: | /** |
23: | * Class SecurityAnalyticsNamespace |
24: | * |
25: | * NOTE: This file is autogenerated using util/GenerateEndpoints.php |
26: | */ |
27: | class SecurityAnalyticsNamespace extends AbstractNamespace |
28: | { |
29: | /** |
30: | * Retrieve alerts related to a specific detector type or detector ID. |
31: | * |
32: | * $params['alertState'] = (enum) Used to filter by alert state. Optional. (Options = ACKNOWLEDGED,ACTIVE,COMPLETED,DELETED,ERROR) |
33: | * $params['detectorType'] = (string) The type of detector used to fetch alerts. Optional when `detector_id` is specified. Otherwise required. |
34: | * $params['detector_id'] = (string) The ID of the detector used to fetch alerts. Optional when `detectorType` is specified. Otherwise required. |
35: | * $params['endTime'] = (integer) The end timestamp (in ms) of the time window in which you want to retrieve alerts. Optional. |
36: | * $params['missing'] = (string) Used to sort by whether the field `missing` exists or not in the documents associated with the alert. Optional. |
37: | * $params['searchString'] = (string) The alert attribute you want returned in the search. Optional. |
38: | * $params['severityLevel'] = (enum) Used to filter by alert severity level. Optional. (Options = 1,2,3,4,5,ALL) |
39: | * $params['size'] = (integer) The maximum number of results returned in the response. Optional. (Default = 20) |
40: | * $params['sortOrder'] = (enum) The order used to sort the list of findings. Possible values are `asc` or `desc`. Optional. (Options = asc,desc) |
41: | * $params['sortString'] = (string) The string used by Security Analytics to sort the alerts. Optional. (Default = start_time) |
42: | * $params['startIndex'] = (integer) The pagination index. Optional. (Default = 0) |
43: | * $params['startTime'] = (integer) The beginning timestamp (in ms) of the time window in which you want to retrieve alerts. Optional. |
44: | * $params['pretty'] = (boolean) Whether to pretty-format the returned JSON response. (Default = false) |
45: | * $params['human'] = (boolean) Whether to return human-readable values for statistics. (Default = false) |
46: | * $params['error_trace'] = (boolean) Whether to include the stack trace of returned errors. (Default = false) |
47: | * $params['source'] = (string) The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests. |
48: | * $params['filter_path'] = (any) A comma-separated list of filters used to filter the response. Use wildcards to match any field or part of a field's name. To exclude fields, use `-`. |
49: | * |
50: | * @param array $params Associative array of parameters |
51: | * @return array |
52: | */ |
53: | public function getAlerts(array $params = []) |
54: | { |
55: | $endpoint = $this->endpointFactory->getEndpoint(GetAlerts::class); |
56: | $endpoint->setParams($params); |
57: | |
58: | return $this->performRequest($endpoint); |
59: | } |
60: | |
61: | /** |
62: | * Retrieve findings related to a specific detector type or detector ID. |
63: | * |
64: | * $params['detectionType'] = (enum) The detection type that dictates the retrieval type for the findings. When the detection type is `threat`, it fetches threat intelligence feeds. When the detection type is `rule`, findings are fetched based on the detector’s rule. Optional. (Options = rule,threat) |
65: | * $params['detectorType'] = (string) The type of detector used to fetch alerts. Optional when the `detector_id` is specified. Otherwise required. |
66: | * $params['detector_id'] = (string) The ID of the detector used to fetch alerts. Optional when the `detectorType` is specified. Otherwise required. |
67: | * $params['endTime'] = (string) The end timestamp (in ms) of the time window in which you want to retrieve findings. Optional. |
68: | * $params['findingIds'] = (string) The comma-separated id list of findings for which you want retrieve details. Optional. |
69: | * $params['missing'] = (string) Used to sort by whether the field `missing` exists or not in the documents associated with the finding. Optional. |
70: | * $params['searchString'] = (string) The finding attribute you want returned in the search. To search in a specific index, specify the index name in the request path. For example, to search findings in the indexABC index, use `searchString=indexABC’. Optional. |
71: | * $params['severity'] = (enum) The rule severity for which retrieve findings. Severity can be `critical`, `high`, `medium`, or `low`. Optional. (Options = critical,high,low,medium) |
72: | * $params['size'] = (integer) The maximum number of results returned in the response. Optional. (Default = 20) |
73: | * $params['sortOrder'] = (enum) The order used to sort the list of findings. Possible values are `asc` or `desc`. Optional. (Options = asc,desc) |
74: | * $params['sortString'] = (string) The string used by the Alerting plugin to sort the findings. Optional. (Default = timestamp) |
75: | * $params['startIndex'] = (integer) The pagination index. Optional. (Default = 0) |
76: | * $params['startTime'] = (integer) The beginning timestamp (in ms) of the time window in which you want to retrieve findings. Optional. |
77: | * $params['pretty'] = (boolean) Whether to pretty-format the returned JSON response. (Default = false) |
78: | * $params['human'] = (boolean) Whether to return human-readable values for statistics. (Default = false) |
79: | * $params['error_trace'] = (boolean) Whether to include the stack trace of returned errors. (Default = false) |
80: | * $params['source'] = (string) The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests. |
81: | * $params['filter_path'] = (any) A comma-separated list of filters used to filter the response. Use wildcards to match any field or part of a field's name. To exclude fields, use `-`. |
82: | * |
83: | * @param array $params Associative array of parameters |
84: | * @return array |
85: | */ |
86: | public function getFindings(array $params = []) |
87: | { |
88: | $endpoint = $this->endpointFactory->getEndpoint(GetFindings::class); |
89: | $endpoint->setParams($params); |
90: | |
91: | return $this->performRequest($endpoint); |
92: | } |
93: | |
94: | /** |
95: | * List correlations for a finding. |
96: | * |
97: | * $params['detector_type'] = (string) The log type of findings you want to correlate with the specified finding. Required. |
98: | * $params['finding'] = (string) The finding ID for which you want to find other findings that are correlated. Required. |
99: | * $params['nearby_findings'] = (integer) The number of nearby findings you want to return. Optional. (Default = 10) |
100: | * $params['time_window'] = (integer) The time window (in ms) in which all of the correlations must have occurred together. Optional. (Default = 300000) |
101: | * $params['pretty'] = (boolean) Whether to pretty-format the returned JSON response. (Default = false) |
102: | * $params['human'] = (boolean) Whether to return human-readable values for statistics. (Default = false) |
103: | * $params['error_trace'] = (boolean) Whether to include the stack trace of returned errors. (Default = false) |
104: | * $params['source'] = (string) The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests. |
105: | * $params['filter_path'] = (any) A comma-separated list of filters used to filter the response. Use wildcards to match any field or part of a field's name. To exclude fields, use `-`. |
106: | * |
107: | * @param array $params Associative array of parameters |
108: | * @return array |
109: | */ |
110: | public function searchFindingCorrelations(array $params = []) |
111: | { |
112: | $endpoint = $this->endpointFactory->getEndpoint(SearchFindingCorrelations::class); |
113: | $endpoint->setParams($params); |
114: | |
115: | return $this->performRequest($endpoint); |
116: | } |
117: | |
118: | } |
119: |