diff --git a/.sdk-version b/.sdk-version index f5576867..3afcf993 100644 --- a/.sdk-version +++ b/.sdk-version @@ -1 +1 @@ -v3.130.1 +v3.131.0 diff --git a/README.md b/README.md index b51aae27..829b1978 100644 --- a/README.md +++ b/README.md @@ -42,12 +42,15 @@ All URIs are relative to *https://api.reveng.ai* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *AgentApi* | [**check_capabilities_task_status_v2_analyses_analysis_id_agent_capabilities_status_get**](docs/AgentApi.md#check_capabilities_task_status_v2_analyses_analysis_id_agent_capabilities_status_get) | **GET** /v2/analyses/{analysis_id}/agent/capabilities/status | Check the status of a capabilities analysis workflow +*AgentApi* | [**check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get**](docs/AgentApi.md#check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get) | **GET** /v2/analyses/{analysis_id}/agent/remediation/status | Check the status of a remediation analysis workflow *AgentApi* | [**check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get**](docs/AgentApi.md#check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get) | **GET** /v2/analyses/{analysis_id}/agent/report-analysis/status | Check the status of a report analysis workflow *AgentApi* | [**check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get**](docs/AgentApi.md#check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get) | **GET** /v2/analyses/{analysis_id}/agent/triage/status | Check the status of a triage analysis workflow *AgentApi* | [**create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post**](docs/AgentApi.md#create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post) | **POST** /v2/analyses/{analysis_id}/agent/capabilities | Queues a capabilities analysis workflow process +*AgentApi* | [**create_remediation_task_v2_analyses_analysis_id_agent_remediation_post**](docs/AgentApi.md#create_remediation_task_v2_analyses_analysis_id_agent_remediation_post) | **POST** /v2/analyses/{analysis_id}/agent/remediation | Queues a remediation analysis workflow process *AgentApi* | [**create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post**](docs/AgentApi.md#create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post) | **POST** /v2/analyses/{analysis_id}/agent/report-analysis | Queues a combined report analysis workflow process *AgentApi* | [**create_triage_task_v2_analyses_analysis_id_agent_triage_post**](docs/AgentApi.md#create_triage_task_v2_analyses_analysis_id_agent_triage_post) | **POST** /v2/analyses/{analysis_id}/agent/triage | Queues a triage analysis workflow process *AgentApi* | [**get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get**](docs/AgentApi.md#get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get) | **GET** /v2/analyses/{analysis_id}/agent/capabilities | Get Capabilities Result +*AgentApi* | [**get_remediation_result_v2_analyses_analysis_id_agent_remediation_get**](docs/AgentApi.md#get_remediation_result_v2_analyses_analysis_id_agent_remediation_get) | **GET** /v2/analyses/{analysis_id}/agent/remediation | Get Remediation Result *AgentApi* | [**get_report_analysis_result_v2_analyses_analysis_id_agent_report_analysis_get**](docs/AgentApi.md#get_report_analysis_result_v2_analyses_analysis_id_agent_report_analysis_get) | **GET** /v2/analyses/{analysis_id}/agent/report-analysis | Get Report Analysis Result *AgentApi* | [**get_triage_result_v2_analyses_analysis_id_agent_triage_get**](docs/AgentApi.md#get_triage_result_v2_analyses_analysis_id_agent_triage_get) | **GET** /v2/analyses/{analysis_id}/agent/triage | Get Triage Result *AnalysesBulkActionsApi* | [**bulk_add_analysis_tags**](docs/AnalysesBulkActionsApi.md#bulk_add_analysis_tags) | **PATCH** /v2/analyses/tags/add | Bulk Add Analysis Tags @@ -315,6 +318,7 @@ Class | Method | HTTP request | Description - [BaseResponseParams](docs/BaseResponseParams.md) - [BaseResponseQueuedWorkflowTaskResponse](docs/BaseResponseQueuedWorkflowTaskResponse.md) - [BaseResponseRecent](docs/BaseResponseRecent.md) + - [BaseResponseRemediationAgentResponse](docs/BaseResponseRemediationAgentResponse.md) - [BaseResponseReportAnalysisResponse](docs/BaseResponseReportAnalysisResponse.md) - [BaseResponseStatus](docs/BaseResponseStatus.md) - [BaseResponseStr](docs/BaseResponseStr.md) @@ -594,6 +598,7 @@ Class | Method | HTTP request | Description - [RegisterUserInputBody](docs/RegisterUserInputBody.md) - [RegistryOperation](docs/RegistryOperation.md) - [RelativeBinaryResponse](docs/RelativeBinaryResponse.md) + - [RemediationAgentResponse](docs/RemediationAgentResponse.md) - [RemoveCollectionBinariesInputBody](docs/RemoveCollectionBinariesInputBody.md) - [RenameAppliedEvent](docs/RenameAppliedEvent.md) - [RenameInputBody](docs/RenameInputBody.md) diff --git a/docs/AgentApi.md b/docs/AgentApi.md index 64c434f8..7bd1d056 100644 --- a/docs/AgentApi.md +++ b/docs/AgentApi.md @@ -5,12 +5,15 @@ All URIs are relative to *https://api.reveng.ai* Method | HTTP request | Description ------------- | ------------- | ------------- [**check_capabilities_task_status_v2_analyses_analysis_id_agent_capabilities_status_get**](AgentApi.md#check_capabilities_task_status_v2_analyses_analysis_id_agent_capabilities_status_get) | **GET** /v2/analyses/{analysis_id}/agent/capabilities/status | Check the status of a capabilities analysis workflow +[**check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get**](AgentApi.md#check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get) | **GET** /v2/analyses/{analysis_id}/agent/remediation/status | Check the status of a remediation analysis workflow [**check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get**](AgentApi.md#check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get) | **GET** /v2/analyses/{analysis_id}/agent/report-analysis/status | Check the status of a report analysis workflow [**check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get**](AgentApi.md#check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get) | **GET** /v2/analyses/{analysis_id}/agent/triage/status | Check the status of a triage analysis workflow [**create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post**](AgentApi.md#create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post) | **POST** /v2/analyses/{analysis_id}/agent/capabilities | Queues a capabilities analysis workflow process +[**create_remediation_task_v2_analyses_analysis_id_agent_remediation_post**](AgentApi.md#create_remediation_task_v2_analyses_analysis_id_agent_remediation_post) | **POST** /v2/analyses/{analysis_id}/agent/remediation | Queues a remediation analysis workflow process [**create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post**](AgentApi.md#create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post) | **POST** /v2/analyses/{analysis_id}/agent/report-analysis | Queues a combined report analysis workflow process [**create_triage_task_v2_analyses_analysis_id_agent_triage_post**](AgentApi.md#create_triage_task_v2_analyses_analysis_id_agent_triage_post) | **POST** /v2/analyses/{analysis_id}/agent/triage | Queues a triage analysis workflow process [**get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get**](AgentApi.md#get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get) | **GET** /v2/analyses/{analysis_id}/agent/capabilities | Get Capabilities Result +[**get_remediation_result_v2_analyses_analysis_id_agent_remediation_get**](AgentApi.md#get_remediation_result_v2_analyses_analysis_id_agent_remediation_get) | **GET** /v2/analyses/{analysis_id}/agent/remediation | Get Remediation Result [**get_report_analysis_result_v2_analyses_analysis_id_agent_report_analysis_get**](AgentApi.md#get_report_analysis_result_v2_analyses_analysis_id_agent_report_analysis_get) | **GET** /v2/analyses/{analysis_id}/agent/report-analysis | Get Report Analysis Result [**get_triage_result_v2_analyses_analysis_id_agent_triage_get**](AgentApi.md#get_triage_result_v2_analyses_analysis_id_agent_triage_get) | **GET** /v2/analyses/{analysis_id}/agent/triage | Get Triage Result @@ -70,6 +73,90 @@ with revengai.ApiClient(configuration) as api_client: +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **analysis_id** | **int**| | + +### Return type + +[**TaskStatusResponse**](TaskStatusResponse.md) + +### Authorization + +[APIKey](../README.md#APIKey), [bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Successful Response | - | +**422** | Invalid request parameters | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get** +> TaskStatusResponse check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get(analysis_id) + +Check the status of a remediation analysis workflow + +### Example + +* Api Key Authentication (APIKey): +* Bearer Authentication (bearerAuth): + +```python +import revengai +from revengai.models.task_status_response import TaskStatusResponse +from revengai.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.reveng.ai +# See configuration.py for a list of all supported configuration parameters. +configuration = revengai.Configuration( + host = "https://api.reveng.ai" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: APIKey +configuration.api_key['APIKey'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['APIKey'] = 'Bearer' + +# Configure Bearer authorization: bearerAuth +configuration = revengai.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with revengai.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = revengai.AgentApi(api_client) + analysis_id = 56 # int | + + try: + # Check the status of a remediation analysis workflow + api_response = api_instance.check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get(analysis_id) + print("The response of AgentApi->check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AgentApi->check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get: %s\n" % e) +``` + + + ### Parameters @@ -322,6 +409,90 @@ with revengai.ApiClient(configuration) as api_client: +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **analysis_id** | **int**| | + +### Return type + +[**BaseResponseQueuedWorkflowTaskResponse**](BaseResponseQueuedWorkflowTaskResponse.md) + +### Authorization + +[APIKey](../README.md#APIKey), [bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**202** | Successful Response | - | +**422** | Invalid request parameters | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **create_remediation_task_v2_analyses_analysis_id_agent_remediation_post** +> BaseResponseQueuedWorkflowTaskResponse create_remediation_task_v2_analyses_analysis_id_agent_remediation_post(analysis_id) + +Queues a remediation analysis workflow process + +### Example + +* Api Key Authentication (APIKey): +* Bearer Authentication (bearerAuth): + +```python +import revengai +from revengai.models.base_response_queued_workflow_task_response import BaseResponseQueuedWorkflowTaskResponse +from revengai.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.reveng.ai +# See configuration.py for a list of all supported configuration parameters. +configuration = revengai.Configuration( + host = "https://api.reveng.ai" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: APIKey +configuration.api_key['APIKey'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['APIKey'] = 'Bearer' + +# Configure Bearer authorization: bearerAuth +configuration = revengai.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with revengai.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = revengai.AgentApi(api_client) + analysis_id = 56 # int | + + try: + # Queues a remediation analysis workflow process + api_response = api_instance.create_remediation_task_v2_analyses_analysis_id_agent_remediation_post(analysis_id) + print("The response of AgentApi->create_remediation_task_v2_analyses_analysis_id_agent_remediation_post:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AgentApi->create_remediation_task_v2_analyses_analysis_id_agent_remediation_post: %s\n" % e) +``` + + + ### Parameters @@ -604,6 +775,95 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **get_remediation_result_v2_analyses_analysis_id_agent_remediation_get** +> BaseResponseRemediationAgentResponse get_remediation_result_v2_analyses_analysis_id_agent_remediation_get(analysis_id) + +Get Remediation Result + +Returns: +- A list of generated YARA rules +- A list of generated Snort rules +- A list of generated STIX rules + +### Example + +* Api Key Authentication (APIKey): +* Bearer Authentication (bearerAuth): + +```python +import revengai +from revengai.models.base_response_remediation_agent_response import BaseResponseRemediationAgentResponse +from revengai.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.reveng.ai +# See configuration.py for a list of all supported configuration parameters. +configuration = revengai.Configuration( + host = "https://api.reveng.ai" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: APIKey +configuration.api_key['APIKey'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['APIKey'] = 'Bearer' + +# Configure Bearer authorization: bearerAuth +configuration = revengai.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with revengai.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = revengai.AgentApi(api_client) + analysis_id = 56 # int | + + try: + # Get Remediation Result + api_response = api_instance.get_remediation_result_v2_analyses_analysis_id_agent_remediation_get(analysis_id) + print("The response of AgentApi->get_remediation_result_v2_analyses_analysis_id_agent_remediation_get:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AgentApi->get_remediation_result_v2_analyses_analysis_id_agent_remediation_get: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **analysis_id** | **int**| | + +### Return type + +[**BaseResponseRemediationAgentResponse**](BaseResponseRemediationAgentResponse.md) + +### Authorization + +[APIKey](../README.md#APIKey), [bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Successful Response | - | +**422** | Invalid request parameters | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **get_report_analysis_result_v2_analyses_analysis_id_agent_report_analysis_get** > BaseResponseReportAnalysisResponse get_report_analysis_result_v2_analyses_analysis_id_agent_report_analysis_get(analysis_id) diff --git a/docs/BaseResponseRemediationAgentResponse.md b/docs/BaseResponseRemediationAgentResponse.md new file mode 100644 index 00000000..37e0b66a --- /dev/null +++ b/docs/BaseResponseRemediationAgentResponse.md @@ -0,0 +1,33 @@ +# BaseResponseRemediationAgentResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**status** | **bool** | Response status on whether the request succeeded | [optional] [default to True] +**data** | [**RemediationAgentResponse**](RemediationAgentResponse.md) | | [optional] +**message** | **str** | | [optional] +**errors** | [**List[ErrorModel]**](ErrorModel.md) | | [optional] +**meta** | [**MetaModel**](MetaModel.md) | Metadata | [optional] + +## Example + +```python +from revengai.models.base_response_remediation_agent_response import BaseResponseRemediationAgentResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of BaseResponseRemediationAgentResponse from a JSON string +base_response_remediation_agent_response_instance = BaseResponseRemediationAgentResponse.from_json(json) +# print the JSON string representation of the object +print(BaseResponseRemediationAgentResponse.to_json()) + +# convert the object into a dict +base_response_remediation_agent_response_dict = base_response_remediation_agent_response_instance.to_dict() +# create an instance of BaseResponseRemediationAgentResponse from a dict +base_response_remediation_agent_response_from_dict = BaseResponseRemediationAgentResponse.from_dict(base_response_remediation_agent_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RemediationAgentResponse.md b/docs/RemediationAgentResponse.md new file mode 100644 index 00000000..46943370 --- /dev/null +++ b/docs/RemediationAgentResponse.md @@ -0,0 +1,31 @@ +# RemediationAgentResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**yara_rules** | **List[str]** | Generated YARA rules for the binary | +**snort_rules** | **List[str]** | Generated Snort rules for the binary | +**stix_rules** | **List[str]** | Generated STIX rules for the binary | + +## Example + +```python +from revengai.models.remediation_agent_response import RemediationAgentResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of RemediationAgentResponse from a JSON string +remediation_agent_response_instance = RemediationAgentResponse.from_json(json) +# print the JSON string representation of the object +print(RemediationAgentResponse.to_json()) + +# convert the object into a dict +remediation_agent_response_dict = remediation_agent_response_instance.to_dict() +# create an instance of RemediationAgentResponse from a dict +remediation_agent_response_from_dict = RemediationAgentResponse.from_dict(remediation_agent_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/revengai/__init__.py b/revengai/__init__.py index ddf23bda..e0d3b1b9 100644 --- a/revengai/__init__.py +++ b/revengai/__init__.py @@ -13,7 +13,7 @@ """ # noqa: E501 -__version__ = "v3.130.1" +__version__ = "v3.131.0" # Define package exports __all__ = [ @@ -158,6 +158,7 @@ "BaseResponseParams", "BaseResponseQueuedWorkflowTaskResponse", "BaseResponseRecent", + "BaseResponseRemediationAgentResponse", "BaseResponseReportAnalysisResponse", "BaseResponseStatus", "BaseResponseStr", @@ -437,6 +438,7 @@ "RegisterUserInputBody", "RegistryOperation", "RelativeBinaryResponse", + "RemediationAgentResponse", "RemoveCollectionBinariesInputBody", "RenameAppliedEvent", "RenameInputBody", @@ -703,6 +705,7 @@ from revengai.models.base_response_params import BaseResponseParams as BaseResponseParams from revengai.models.base_response_queued_workflow_task_response import BaseResponseQueuedWorkflowTaskResponse as BaseResponseQueuedWorkflowTaskResponse from revengai.models.base_response_recent import BaseResponseRecent as BaseResponseRecent +from revengai.models.base_response_remediation_agent_response import BaseResponseRemediationAgentResponse as BaseResponseRemediationAgentResponse from revengai.models.base_response_report_analysis_response import BaseResponseReportAnalysisResponse as BaseResponseReportAnalysisResponse from revengai.models.base_response_status import BaseResponseStatus as BaseResponseStatus from revengai.models.base_response_str import BaseResponseStr as BaseResponseStr @@ -982,6 +985,7 @@ from revengai.models.register_user_input_body import RegisterUserInputBody as RegisterUserInputBody from revengai.models.registry_operation import RegistryOperation as RegistryOperation from revengai.models.relative_binary_response import RelativeBinaryResponse as RelativeBinaryResponse +from revengai.models.remediation_agent_response import RemediationAgentResponse as RemediationAgentResponse from revengai.models.remove_collection_binaries_input_body import RemoveCollectionBinariesInputBody as RemoveCollectionBinariesInputBody from revengai.models.rename_applied_event import RenameAppliedEvent as RenameAppliedEvent from revengai.models.rename_input_body import RenameInputBody as RenameInputBody diff --git a/revengai/api/agent_api.py b/revengai/api/agent_api.py index 4c73bd51..9f1f2f3b 100644 --- a/revengai/api/agent_api.py +++ b/revengai/api/agent_api.py @@ -18,6 +18,7 @@ from pydantic import StrictInt from revengai.models.base_response_capabilities_agent_response import BaseResponseCapabilitiesAgentResponse from revengai.models.base_response_queued_workflow_task_response import BaseResponseQueuedWorkflowTaskResponse +from revengai.models.base_response_remediation_agent_response import BaseResponseRemediationAgentResponse from revengai.models.base_response_report_analysis_response import BaseResponseReportAnalysisResponse from revengai.models.base_response_triage_report_response import BaseResponseTriageReportResponse from revengai.models.queued_workflow_task_response import QueuedWorkflowTaskResponse @@ -304,7 +305,7 @@ def _check_capabilities_task_status_v2_analyses_analysis_id_agent_capabilities_s @validate_call - def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get( + def check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -320,7 +321,7 @@ def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analy _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> TaskStatusResponse: - """Check the status of a report analysis workflow + """Check the status of a remediation analysis workflow :param analysis_id: (required) @@ -347,7 +348,7 @@ def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analy :return: Returns the result object. """ # noqa: E501 - _param = self._check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_serialize( + _param = self._check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -371,7 +372,7 @@ def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analy @validate_call - def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_with_http_info( + def check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get_with_http_info( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -387,7 +388,7 @@ def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analy _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[TaskStatusResponse]: - """Check the status of a report analysis workflow + """Check the status of a remediation analysis workflow :param analysis_id: (required) @@ -414,7 +415,7 @@ def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analy :return: Returns the result object. """ # noqa: E501 - _param = self._check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_serialize( + _param = self._check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -438,7 +439,7 @@ def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analy @validate_call - def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_without_preload_content( + def check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get_without_preload_content( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -454,7 +455,7 @@ def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analy _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Check the status of a report analysis workflow + """Check the status of a remediation analysis workflow :param analysis_id: (required) @@ -481,7 +482,7 @@ def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analy :return: Returns the result object. """ # noqa: E501 - _param = self._check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_serialize( + _param = self._check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -500,7 +501,7 @@ def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analy return response_data.response - def _check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_serialize( + def _check_remediation_task_status_v2_analyses_analysis_id_agent_remediation_status_get_serialize( self, analysis_id, _request_auth, @@ -549,7 +550,7 @@ def _check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_anal return self.api_client.param_serialize( method='GET', - resource_path='/v2/analyses/{analysis_id}/agent/report-analysis/status', + resource_path='/v2/analyses/{analysis_id}/agent/remediation/status', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -566,7 +567,7 @@ def _check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_anal @validate_call - def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get( + def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -582,7 +583,7 @@ def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> TaskStatusResponse: - """Check the status of a triage analysis workflow + """Check the status of a report analysis workflow :param analysis_id: (required) @@ -609,7 +610,7 @@ def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get( :return: Returns the result object. """ # noqa: E501 - _param = self._check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_serialize( + _param = self._check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -633,7 +634,7 @@ def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get( @validate_call - def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_with_http_info( + def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_with_http_info( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -649,7 +650,7 @@ def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_wit _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[TaskStatusResponse]: - """Check the status of a triage analysis workflow + """Check the status of a report analysis workflow :param analysis_id: (required) @@ -676,7 +677,7 @@ def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_wit :return: Returns the result object. """ # noqa: E501 - _param = self._check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_serialize( + _param = self._check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -700,7 +701,7 @@ def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_wit @validate_call - def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_without_preload_content( + def check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_without_preload_content( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -716,7 +717,7 @@ def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_wit _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Check the status of a triage analysis workflow + """Check the status of a report analysis workflow :param analysis_id: (required) @@ -743,7 +744,7 @@ def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_wit :return: Returns the result object. """ # noqa: E501 - _param = self._check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_serialize( + _param = self._check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -762,7 +763,7 @@ def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_wit return response_data.response - def _check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_serialize( + def _check_report_analysis_task_status_v2_analyses_analysis_id_agent_report_analysis_status_get_serialize( self, analysis_id, _request_auth, @@ -811,7 +812,7 @@ def _check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_se return self.api_client.param_serialize( method='GET', - resource_path='/v2/analyses/{analysis_id}/agent/triage/status', + resource_path='/v2/analyses/{analysis_id}/agent/report-analysis/status', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -828,7 +829,7 @@ def _check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_se @validate_call - def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post( + def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -843,8 +844,8 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> BaseResponseQueuedWorkflowTaskResponse: - """Queues a capabilities analysis workflow process + ) -> TaskStatusResponse: + """Check the status of a triage analysis workflow :param analysis_id: (required) @@ -871,7 +872,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post( :return: Returns the result object. """ # noqa: E501 - _param = self._create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_serialize( + _param = self._check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -880,7 +881,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post( ) _response_types_map: Dict[str, Optional[str]] = { - '202': "BaseResponseQueuedWorkflowTaskResponse", + '200': "TaskStatusResponse", '422': "BaseResponse", } response_data = self.api_client.call_api( @@ -895,7 +896,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post( @validate_call - def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_with_http_info( + def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_with_http_info( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -910,8 +911,8 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_wit _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[BaseResponseQueuedWorkflowTaskResponse]: - """Queues a capabilities analysis workflow process + ) -> ApiResponse[TaskStatusResponse]: + """Check the status of a triage analysis workflow :param analysis_id: (required) @@ -938,7 +939,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_wit :return: Returns the result object. """ # noqa: E501 - _param = self._create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_serialize( + _param = self._check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -947,7 +948,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_wit ) _response_types_map: Dict[str, Optional[str]] = { - '202': "BaseResponseQueuedWorkflowTaskResponse", + '200': "TaskStatusResponse", '422': "BaseResponse", } response_data = self.api_client.call_api( @@ -962,7 +963,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_wit @validate_call - def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_without_preload_content( + def check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_without_preload_content( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -978,7 +979,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_wit _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Queues a capabilities analysis workflow process + """Check the status of a triage analysis workflow :param analysis_id: (required) @@ -1005,7 +1006,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_wit :return: Returns the result object. """ # noqa: E501 - _param = self._create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_serialize( + _param = self._check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1014,7 +1015,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_wit ) _response_types_map: Dict[str, Optional[str]] = { - '202': "BaseResponseQueuedWorkflowTaskResponse", + '200': "TaskStatusResponse", '422': "BaseResponse", } response_data = self.api_client.call_api( @@ -1024,7 +1025,7 @@ def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_wit return response_data.response - def _create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_serialize( + def _check_triage_task_status_v2_analyses_analysis_id_agent_triage_status_get_serialize( self, analysis_id, _request_auth, @@ -1072,8 +1073,8 @@ def _create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_se ] return self.api_client.param_serialize( - method='POST', - resource_path='/v2/analyses/{analysis_id}/agent/capabilities', + method='GET', + resource_path='/v2/analyses/{analysis_id}/agent/triage/status', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -1090,7 +1091,7 @@ def _create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_se @validate_call - def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post( + def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -1105,8 +1106,8 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> QueuedWorkflowTaskResponse: - """Queues a combined report analysis workflow process + ) -> BaseResponseQueuedWorkflowTaskResponse: + """Queues a capabilities analysis workflow process :param analysis_id: (required) @@ -1133,7 +1134,7 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po :return: Returns the result object. """ # noqa: E501 - _param = self._create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_serialize( + _param = self._create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1142,9 +1143,8 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po ) _response_types_map: Dict[str, Optional[str]] = { - '202': "QueuedWorkflowTaskResponse", + '202': "BaseResponseQueuedWorkflowTaskResponse", '422': "BaseResponse", - '409': "ErrorModel", } response_data = self.api_client.call_api( *_param, @@ -1158,7 +1158,7 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po @validate_call - def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_with_http_info( + def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_with_http_info( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -1173,8 +1173,8 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[QueuedWorkflowTaskResponse]: - """Queues a combined report analysis workflow process + ) -> ApiResponse[BaseResponseQueuedWorkflowTaskResponse]: + """Queues a capabilities analysis workflow process :param analysis_id: (required) @@ -1201,7 +1201,7 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po :return: Returns the result object. """ # noqa: E501 - _param = self._create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_serialize( + _param = self._create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1210,9 +1210,8 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po ) _response_types_map: Dict[str, Optional[str]] = { - '202': "QueuedWorkflowTaskResponse", + '202': "BaseResponseQueuedWorkflowTaskResponse", '422': "BaseResponse", - '409': "ErrorModel", } response_data = self.api_client.call_api( *_param, @@ -1226,7 +1225,7 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po @validate_call - def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_without_preload_content( + def create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_without_preload_content( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -1242,7 +1241,7 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Queues a combined report analysis workflow process + """Queues a capabilities analysis workflow process :param analysis_id: (required) @@ -1269,7 +1268,7 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po :return: Returns the result object. """ # noqa: E501 - _param = self._create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_serialize( + _param = self._create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1278,9 +1277,8 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po ) _response_types_map: Dict[str, Optional[str]] = { - '202': "QueuedWorkflowTaskResponse", + '202': "BaseResponseQueuedWorkflowTaskResponse", '422': "BaseResponse", - '409': "ErrorModel", } response_data = self.api_client.call_api( *_param, @@ -1289,7 +1287,7 @@ def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_po return response_data.response - def _create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_serialize( + def _create_capabilities_task_v2_analyses_analysis_id_agent_capabilities_post_serialize( self, analysis_id, _request_auth, @@ -1338,7 +1336,7 @@ def _create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_p return self.api_client.param_serialize( method='POST', - resource_path='/v2/analyses/{analysis_id}/agent/report-analysis', + resource_path='/v2/analyses/{analysis_id}/agent/capabilities', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -1355,7 +1353,7 @@ def _create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_p @validate_call - def create_triage_task_v2_analyses_analysis_id_agent_triage_post( + def create_remediation_task_v2_analyses_analysis_id_agent_remediation_post( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -1371,7 +1369,7 @@ def create_triage_task_v2_analyses_analysis_id_agent_triage_post( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> BaseResponseQueuedWorkflowTaskResponse: - """Queues a triage analysis workflow process + """Queues a remediation analysis workflow process :param analysis_id: (required) @@ -1398,7 +1396,7 @@ def create_triage_task_v2_analyses_analysis_id_agent_triage_post( :return: Returns the result object. """ # noqa: E501 - _param = self._create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( + _param = self._create_remediation_task_v2_analyses_analysis_id_agent_remediation_post_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1422,7 +1420,7 @@ def create_triage_task_v2_analyses_analysis_id_agent_triage_post( @validate_call - def create_triage_task_v2_analyses_analysis_id_agent_triage_post_with_http_info( + def create_remediation_task_v2_analyses_analysis_id_agent_remediation_post_with_http_info( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -1438,7 +1436,7 @@ def create_triage_task_v2_analyses_analysis_id_agent_triage_post_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[BaseResponseQueuedWorkflowTaskResponse]: - """Queues a triage analysis workflow process + """Queues a remediation analysis workflow process :param analysis_id: (required) @@ -1465,7 +1463,7 @@ def create_triage_task_v2_analyses_analysis_id_agent_triage_post_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( + _param = self._create_remediation_task_v2_analyses_analysis_id_agent_remediation_post_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1489,7 +1487,7 @@ def create_triage_task_v2_analyses_analysis_id_agent_triage_post_with_http_info( @validate_call - def create_triage_task_v2_analyses_analysis_id_agent_triage_post_without_preload_content( + def create_remediation_task_v2_analyses_analysis_id_agent_remediation_post_without_preload_content( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -1505,7 +1503,7 @@ def create_triage_task_v2_analyses_analysis_id_agent_triage_post_without_preload _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Queues a triage analysis workflow process + """Queues a remediation analysis workflow process :param analysis_id: (required) @@ -1532,7 +1530,7 @@ def create_triage_task_v2_analyses_analysis_id_agent_triage_post_without_preload :return: Returns the result object. """ # noqa: E501 - _param = self._create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( + _param = self._create_remediation_task_v2_analyses_analysis_id_agent_remediation_post_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1551,7 +1549,7 @@ def create_triage_task_v2_analyses_analysis_id_agent_triage_post_without_preload return response_data.response - def _create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( + def _create_remediation_task_v2_analyses_analysis_id_agent_remediation_post_serialize( self, analysis_id, _request_auth, @@ -1600,7 +1598,7 @@ def _create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( return self.api_client.param_serialize( method='POST', - resource_path='/v2/analyses/{analysis_id}/agent/triage', + resource_path='/v2/analyses/{analysis_id}/agent/remediation', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -1617,7 +1615,7 @@ def _create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( @validate_call - def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get( + def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -1632,8 +1630,8 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> BaseResponseCapabilitiesAgentResponse: - """Get Capabilities Result + ) -> QueuedWorkflowTaskResponse: + """Queues a combined report analysis workflow process :param analysis_id: (required) @@ -1660,7 +1658,7 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get( :return: Returns the result object. """ # noqa: E501 - _param = self._get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_serialize( + _param = self._create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1669,8 +1667,9 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "BaseResponseCapabilitiesAgentResponse", + '202': "QueuedWorkflowTaskResponse", '422': "BaseResponse", + '409': "ErrorModel", } response_data = self.api_client.call_api( *_param, @@ -1684,7 +1683,7 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get( @validate_call - def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_with_http_info( + def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_with_http_info( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -1699,8 +1698,8 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_with_ _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[BaseResponseCapabilitiesAgentResponse]: - """Get Capabilities Result + ) -> ApiResponse[QueuedWorkflowTaskResponse]: + """Queues a combined report analysis workflow process :param analysis_id: (required) @@ -1727,7 +1726,7 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_with_ :return: Returns the result object. """ # noqa: E501 - _param = self._get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_serialize( + _param = self._create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1736,8 +1735,9 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_with_ ) _response_types_map: Dict[str, Optional[str]] = { - '200': "BaseResponseCapabilitiesAgentResponse", + '202': "QueuedWorkflowTaskResponse", '422': "BaseResponse", + '409': "ErrorModel", } response_data = self.api_client.call_api( *_param, @@ -1751,7 +1751,7 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_with_ @validate_call - def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_without_preload_content( + def create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_without_preload_content( self, analysis_id: StrictInt, _request_timeout: Union[ @@ -1767,7 +1767,7 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_witho _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Get Capabilities Result + """Queues a combined report analysis workflow process :param analysis_id: (required) @@ -1794,7 +1794,7 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_witho :return: Returns the result object. """ # noqa: E501 - _param = self._get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_serialize( + _param = self._create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_serialize( analysis_id=analysis_id, _request_auth=_request_auth, _content_type=_content_type, @@ -1803,8 +1803,9 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_witho ) _response_types_map: Dict[str, Optional[str]] = { - '200': "BaseResponseCapabilitiesAgentResponse", + '202': "QueuedWorkflowTaskResponse", '422': "BaseResponse", + '409': "ErrorModel", } response_data = self.api_client.call_api( *_param, @@ -1813,7 +1814,7 @@ def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_witho return response_data.response - def _get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_serialize( + def _create_report_analysis_task_v2_analyses_analysis_id_agent_report_analysis_post_serialize( self, analysis_id, _request_auth, @@ -1861,8 +1862,797 @@ def _get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_seri ] return self.api_client.param_serialize( - method='GET', - resource_path='/v2/analyses/{analysis_id}/agent/capabilities', + method='POST', + resource_path='/v2/analyses/{analysis_id}/agent/report-analysis', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def create_triage_task_v2_analyses_analysis_id_agent_triage_post( + self, + analysis_id: StrictInt, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> BaseResponseQueuedWorkflowTaskResponse: + """Queues a triage analysis workflow process + + + :param analysis_id: (required) + :type analysis_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( + analysis_id=analysis_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "BaseResponseQueuedWorkflowTaskResponse", + '422': "BaseResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_triage_task_v2_analyses_analysis_id_agent_triage_post_with_http_info( + self, + analysis_id: StrictInt, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[BaseResponseQueuedWorkflowTaskResponse]: + """Queues a triage analysis workflow process + + + :param analysis_id: (required) + :type analysis_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( + analysis_id=analysis_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "BaseResponseQueuedWorkflowTaskResponse", + '422': "BaseResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_triage_task_v2_analyses_analysis_id_agent_triage_post_without_preload_content( + self, + analysis_id: StrictInt, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Queues a triage analysis workflow process + + + :param analysis_id: (required) + :type analysis_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( + analysis_id=analysis_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "BaseResponseQueuedWorkflowTaskResponse", + '422': "BaseResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_triage_task_v2_analyses_analysis_id_agent_triage_post_serialize( + self, + analysis_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if analysis_id is not None: + _path_params['analysis_id'] = analysis_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'APIKey', + 'bearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/v2/analyses/{analysis_id}/agent/triage', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get( + self, + analysis_id: StrictInt, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> BaseResponseCapabilitiesAgentResponse: + """Get Capabilities Result + + + :param analysis_id: (required) + :type analysis_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_serialize( + analysis_id=analysis_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BaseResponseCapabilitiesAgentResponse", + '422': "BaseResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_with_http_info( + self, + analysis_id: StrictInt, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[BaseResponseCapabilitiesAgentResponse]: + """Get Capabilities Result + + + :param analysis_id: (required) + :type analysis_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_serialize( + analysis_id=analysis_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BaseResponseCapabilitiesAgentResponse", + '422': "BaseResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_without_preload_content( + self, + analysis_id: StrictInt, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get Capabilities Result + + + :param analysis_id: (required) + :type analysis_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_serialize( + analysis_id=analysis_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BaseResponseCapabilitiesAgentResponse", + '422': "BaseResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_capabilities_result_v2_analyses_analysis_id_agent_capabilities_get_serialize( + self, + analysis_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if analysis_id is not None: + _path_params['analysis_id'] = analysis_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'APIKey', + 'bearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/v2/analyses/{analysis_id}/agent/capabilities', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_remediation_result_v2_analyses_analysis_id_agent_remediation_get( + self, + analysis_id: StrictInt, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> BaseResponseRemediationAgentResponse: + """Get Remediation Result + + Returns: - A list of generated YARA rules - A list of generated Snort rules - A list of generated STIX rules + + :param analysis_id: (required) + :type analysis_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_remediation_result_v2_analyses_analysis_id_agent_remediation_get_serialize( + analysis_id=analysis_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BaseResponseRemediationAgentResponse", + '422': "BaseResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_remediation_result_v2_analyses_analysis_id_agent_remediation_get_with_http_info( + self, + analysis_id: StrictInt, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[BaseResponseRemediationAgentResponse]: + """Get Remediation Result + + Returns: - A list of generated YARA rules - A list of generated Snort rules - A list of generated STIX rules + + :param analysis_id: (required) + :type analysis_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_remediation_result_v2_analyses_analysis_id_agent_remediation_get_serialize( + analysis_id=analysis_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BaseResponseRemediationAgentResponse", + '422': "BaseResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_remediation_result_v2_analyses_analysis_id_agent_remediation_get_without_preload_content( + self, + analysis_id: StrictInt, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get Remediation Result + + Returns: - A list of generated YARA rules - A list of generated Snort rules - A list of generated STIX rules + + :param analysis_id: (required) + :type analysis_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_remediation_result_v2_analyses_analysis_id_agent_remediation_get_serialize( + analysis_id=analysis_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BaseResponseRemediationAgentResponse", + '422': "BaseResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_remediation_result_v2_analyses_analysis_id_agent_remediation_get_serialize( + self, + analysis_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if analysis_id is not None: + _path_params['analysis_id'] = analysis_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'APIKey', + 'bearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/v2/analyses/{analysis_id}/agent/remediation', path_params=_path_params, query_params=_query_params, header_params=_header_params, diff --git a/revengai/api_client.py b/revengai/api_client.py index fe464543..08fc2301 100644 --- a/revengai/api_client.py +++ b/revengai/api_client.py @@ -90,7 +90,7 @@ def __init__( self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'OpenAPI-Generator/v3.130.1/python' + self.user_agent = 'OpenAPI-Generator/v3.131.0/python' self.client_side_validation = configuration.client_side_validation def __enter__(self): diff --git a/revengai/configuration.py b/revengai/configuration.py index 541043ce..ceff4825 100644 --- a/revengai/configuration.py +++ b/revengai/configuration.py @@ -541,8 +541,8 @@ def to_debug_report(self) -> str: return "Python SDK Debug Report:\n"\ "OS: {env}\n"\ "Python Version: {pyversion}\n"\ - "Version of the API: v3.130.1\n"\ - "SDK Package Version: v3.130.1".\ + "Version of the API: v3.131.0\n"\ + "SDK Package Version: v3.131.0".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self) -> List[HostSetting]: diff --git a/revengai/models/__init__.py b/revengai/models/__init__.py index 231b366e..0e2dce61 100644 --- a/revengai/models/__init__.py +++ b/revengai/models/__init__.py @@ -123,6 +123,7 @@ from revengai.models.base_response_params import BaseResponseParams from revengai.models.base_response_queued_workflow_task_response import BaseResponseQueuedWorkflowTaskResponse from revengai.models.base_response_recent import BaseResponseRecent +from revengai.models.base_response_remediation_agent_response import BaseResponseRemediationAgentResponse from revengai.models.base_response_report_analysis_response import BaseResponseReportAnalysisResponse from revengai.models.base_response_status import BaseResponseStatus from revengai.models.base_response_str import BaseResponseStr @@ -402,6 +403,7 @@ from revengai.models.register_user_input_body import RegisterUserInputBody from revengai.models.registry_operation import RegistryOperation from revengai.models.relative_binary_response import RelativeBinaryResponse +from revengai.models.remediation_agent_response import RemediationAgentResponse from revengai.models.remove_collection_binaries_input_body import RemoveCollectionBinariesInputBody from revengai.models.rename_applied_event import RenameAppliedEvent from revengai.models.rename_input_body import RenameInputBody diff --git a/revengai/models/base_response_remediation_agent_response.py b/revengai/models/base_response_remediation_agent_response.py new file mode 100644 index 00000000..c9e33dbb --- /dev/null +++ b/revengai/models/base_response_remediation_agent_response.py @@ -0,0 +1,125 @@ +# coding: utf-8 + +""" + RevEng.AI API + + RevEng.AI is an AI-powered binary analysis platform for reverse engineering and malware analysis. It provides similarity search across executable binaries and functions, AI-driven decompilation, dynamic execution analysis, firmware unpacking, and integration with external threat intelligence sources like VirusTotal. + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from revengai.models.error_model import ErrorModel +from revengai.models.meta_model import MetaModel +from revengai.models.remediation_agent_response import RemediationAgentResponse +from typing import Optional, Set +from typing_extensions import Self + +class BaseResponseRemediationAgentResponse(BaseModel): + """ + BaseResponseRemediationAgentResponse + """ # noqa: E501 + status: Optional[StrictBool] = Field(default=True, description="Response status on whether the request succeeded") + data: Optional[RemediationAgentResponse] = None + message: Optional[StrictStr] = None + errors: Optional[List[ErrorModel]] = None + meta: Optional[MetaModel] = Field(default=None, description="Metadata") + __properties: ClassVar[List[str]] = ["status", "data", "message", "errors", "meta"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of BaseResponseRemediationAgentResponse from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of data + if self.data: + _dict['data'] = self.data.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in errors (list) + _items = [] + if self.errors: + for _item_errors in self.errors: + if _item_errors: + _items.append(_item_errors.to_dict()) + _dict['errors'] = _items + # override the default output from pydantic by calling `to_dict()` of meta + if self.meta: + _dict['meta'] = self.meta.to_dict() + # set to None if data (nullable) is None + # and model_fields_set contains the field + if self.data is None and "data" in self.model_fields_set: + _dict['data'] = None + + # set to None if message (nullable) is None + # and model_fields_set contains the field + if self.message is None and "message" in self.model_fields_set: + _dict['message'] = None + + # set to None if errors (nullable) is None + # and model_fields_set contains the field + if self.errors is None and "errors" in self.model_fields_set: + _dict['errors'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of BaseResponseRemediationAgentResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "status": obj.get("status") if obj.get("status") is not None else True, + "data": RemediationAgentResponse.from_dict(obj["data"]) if obj.get("data") is not None else None, + "message": obj.get("message"), + "errors": [ErrorModel.from_dict(_item) for _item in obj["errors"]] if obj.get("errors") is not None else None, + "meta": MetaModel.from_dict(obj["meta"]) if obj.get("meta") is not None else None + }) + return _obj + + diff --git a/revengai/models/remediation_agent_response.py b/revengai/models/remediation_agent_response.py new file mode 100644 index 00000000..04150b6b --- /dev/null +++ b/revengai/models/remediation_agent_response.py @@ -0,0 +1,90 @@ +# coding: utf-8 + +""" + RevEng.AI API + + RevEng.AI is an AI-powered binary analysis platform for reverse engineering and malware analysis. It provides similarity search across executable binaries and functions, AI-driven decompilation, dynamic execution analysis, firmware unpacking, and integration with external threat intelligence sources like VirusTotal. + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class RemediationAgentResponse(BaseModel): + """ + RemediationAgentResponse + """ # noqa: E501 + yara_rules: List[StrictStr] = Field(description="Generated YARA rules for the binary") + snort_rules: List[StrictStr] = Field(description="Generated Snort rules for the binary") + stix_rules: List[StrictStr] = Field(description="Generated STIX rules for the binary") + __properties: ClassVar[List[str]] = ["yara_rules", "snort_rules", "stix_rules"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of RemediationAgentResponse from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of RemediationAgentResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "yara_rules": obj.get("yara_rules"), + "snort_rules": obj.get("snort_rules"), + "stix_rules": obj.get("stix_rules") + }) + return _obj + +