diff --git a/.sdk-version b/.sdk-version index 1d0f469..800e0bc 100644 --- a/.sdk-version +++ b/.sdk-version @@ -1 +1 @@ -v3.70.2 +v3.72.0 diff --git a/README.md b/README.md index 06596e4..b74df2f 100644 --- a/README.md +++ b/README.md @@ -421,6 +421,7 @@ Class | Method | HTTP request | Description - [QueuedWorkflowTaskResponse](docs/QueuedWorkflowTaskResponse.md) - [ReAnalysisForm](docs/ReAnalysisForm.md) - [Recent](docs/Recent.md) + - [RegenerateTarget](docs/RegenerateTarget.md) - [Registry](docs/Registry.md) - [RelativeBinaryResponse](docs/RelativeBinaryResponse.md) - [ReportAnalysisResponse](docs/ReportAnalysisResponse.md) diff --git a/docs/AnalysesCoreApi.md b/docs/AnalysesCoreApi.md index bb7909c..b9c5993 100644 --- a/docs/AnalysesCoreApi.md +++ b/docs/AnalysesCoreApi.md @@ -1338,7 +1338,7 @@ with revengai.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = revengai.AnalysesCoreApi(api_client) upload_file_type = revengai.UploadFileType() # UploadFileType | - file = None # bytearray | + file = 'file_example' # str | packed_password = 'packed_password_example' # str | (optional) endpoint_url = 'endpoint_url_example' # str | (optional) local_cache_dir = 'local_cache_dir_example' # str | (optional) @@ -1365,7 +1365,7 @@ with revengai.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **upload_file_type** | [**UploadFileType**](UploadFileType.md)| | - **file** | **bytearray**| | + **file** | **str**| | **packed_password** | **str**| | [optional] **endpoint_url** | **str**| | [optional] **local_cache_dir** | **str**| | [optional] diff --git a/docs/FirmwareApi.md b/docs/FirmwareApi.md index 5e949c8..96f7875 100644 --- a/docs/FirmwareApi.md +++ b/docs/FirmwareApi.md @@ -124,7 +124,7 @@ configuration.api_key['APIKey'] = os.environ["API_KEY"] with revengai.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = revengai.FirmwareApi(api_client) - file = None # bytearray | + file = 'file_example' # str | endpoint_url = 'endpoint_url_example' # str | (optional) local_cache_dir = 'local_cache_dir_example' # str | (optional) local_cache_max_size_mb = 56 # int | (optional) @@ -149,7 +149,7 @@ with revengai.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **file** | **bytearray**| | + **file** | **str**| | **endpoint_url** | **str**| | [optional] **local_cache_dir** | **str**| | [optional] **local_cache_max_size_mb** | **int**| | [optional] diff --git a/docs/FunctionMappingFull.md b/docs/FunctionMappingFull.md index 057aaa4..cda1377 100644 --- a/docs/FunctionMappingFull.md +++ b/docs/FunctionMappingFull.md @@ -18,6 +18,7 @@ Name | Type | Description | Notes **unmatched_global_vars** | [**Dict[str, InverseValue]**](InverseValue.md) | | **fields** | **Dict[str, Dict[str, InverseValue]]** | | **unmatched_external_vars** | [**Dict[str, InverseValue]**](InverseValue.md) | No longer provided. | [optional] +**user_override_mappings** | **Dict[str, str]** | | [optional] ## Example diff --git a/docs/FunctionsAIDecompilationApi.md b/docs/FunctionsAIDecompilationApi.md index 9e9511e..285e99c 100644 --- a/docs/FunctionsAIDecompilationApi.md +++ b/docs/FunctionsAIDecompilationApi.md @@ -462,7 +462,7 @@ 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_ai_decompilation_task_result** -> BaseResponseGetAiDecompilationTask get_ai_decompilation_task_result(function_id, summarise=summarise, generate_inline_comments=generate_inline_comments) +> BaseResponseGetAiDecompilationTask get_ai_decompilation_task_result(function_id, summarise=summarise, generate_inline_comments=generate_inline_comments, force_regenerate=force_regenerate) Polls AI Decompilation Process @@ -475,6 +475,7 @@ Polls the AI Decompilation Process ```python import revengai from revengai.models.base_response_get_ai_decompilation_task import BaseResponseGetAiDecompilationTask +from revengai.models.regenerate_target import RegenerateTarget from revengai.rest import ApiException from pprint import pprint @@ -502,10 +503,11 @@ with revengai.ApiClient(configuration) as api_client: function_id = 56 # int | The ID of the function being decompiled summarise = True # bool | Generate a summary for the decompilation (optional) (default to True) generate_inline_comments = True # bool | Generate inline comments for the decompilation (optional) (default to True) + force_regenerate = [] # List[RegenerateTarget] | Force regeneration of summary and/or comments. (optional) (default to []) try: # Polls AI Decompilation Process - api_response = api_instance.get_ai_decompilation_task_result(function_id, summarise=summarise, generate_inline_comments=generate_inline_comments) + api_response = api_instance.get_ai_decompilation_task_result(function_id, summarise=summarise, generate_inline_comments=generate_inline_comments, force_regenerate=force_regenerate) print("The response of FunctionsAIDecompilationApi->get_ai_decompilation_task_result:\n") pprint(api_response) except Exception as e: @@ -522,6 +524,7 @@ Name | Type | Description | Notes **function_id** | **int**| The ID of the function being decompiled | **summarise** | **bool**| Generate a summary for the decompilation | [optional] [default to True] **generate_inline_comments** | **bool**| Generate inline comments for the decompilation | [optional] [default to True] + **force_regenerate** | [**List[RegenerateTarget]**](RegenerateTarget.md)| Force regeneration of summary and/or comments. | [optional] [default to []] ### Return type diff --git a/docs/RegenerateTarget.md b/docs/RegenerateTarget.md new file mode 100644 index 0000000..c4f5759 --- /dev/null +++ b/docs/RegenerateTarget.md @@ -0,0 +1,12 @@ +# RegenerateTarget + + +## Enum + +* `SUMMARY` (value: `'summary'`) + +* `COMMENTS` (value: `'comments'`) + +[[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 81a1e09..fbb196e 100644 --- a/revengai/__init__.py +++ b/revengai/__init__.py @@ -13,7 +13,7 @@ """ # noqa: E501 -__version__ = "v3.70.2" +__version__ = "v3.72.0" # Define package exports __all__ = [ @@ -310,6 +310,7 @@ "QueuedWorkflowTaskResponse", "ReAnalysisForm", "Recent", + "RegenerateTarget", "Registry", "RelativeBinaryResponse", "ReportAnalysisResponse", @@ -663,6 +664,7 @@ from revengai.models.queued_workflow_task_response import QueuedWorkflowTaskResponse as QueuedWorkflowTaskResponse from revengai.models.re_analysis_form import ReAnalysisForm as ReAnalysisForm from revengai.models.recent import Recent as Recent +from revengai.models.regenerate_target import RegenerateTarget as RegenerateTarget from revengai.models.registry import Registry as Registry from revengai.models.relative_binary_response import RelativeBinaryResponse as RelativeBinaryResponse from revengai.models.report_analysis_response import ReportAnalysisResponse as ReportAnalysisResponse diff --git a/revengai/api/analyses_core_api.py b/revengai/api/analyses_core_api.py index 745e5be..8295a33 100644 --- a/revengai/api/analyses_core_api.py +++ b/revengai/api/analyses_core_api.py @@ -15,8 +15,8 @@ from typing import Any, Dict, List, Optional, Tuple, Union from typing_extensions import Annotated -from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr -from typing import Any, List, Optional, Tuple, Union +from pydantic import Field, StrictBool, StrictInt, StrictStr +from typing import Any, List, Optional from typing_extensions import Annotated from revengai.models.analysis_create_request import AnalysisCreateRequest from revengai.models.analysis_update_request import AnalysisUpdateRequest @@ -5058,7 +5058,7 @@ def _update_analysis_tags_serialize( def upload_file( self, upload_file_type: UploadFileType, - file: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], + file: StrictStr, packed_password: Optional[StrictStr] = None, endpoint_url: Optional[StrictStr] = None, local_cache_dir: Optional[StrictStr] = None, @@ -5086,7 +5086,7 @@ def upload_file( :param upload_file_type: (required) :type upload_file_type: UploadFileType :param file: (required) - :type file: bytearray + :type file: str :param packed_password: :type packed_password: str :param endpoint_url: @@ -5161,7 +5161,7 @@ def upload_file( def upload_file_with_http_info( self, upload_file_type: UploadFileType, - file: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], + file: StrictStr, packed_password: Optional[StrictStr] = None, endpoint_url: Optional[StrictStr] = None, local_cache_dir: Optional[StrictStr] = None, @@ -5189,7 +5189,7 @@ def upload_file_with_http_info( :param upload_file_type: (required) :type upload_file_type: UploadFileType :param file: (required) - :type file: bytearray + :type file: str :param packed_password: :type packed_password: str :param endpoint_url: @@ -5264,7 +5264,7 @@ def upload_file_with_http_info( def upload_file_without_preload_content( self, upload_file_type: UploadFileType, - file: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], + file: StrictStr, packed_password: Optional[StrictStr] = None, endpoint_url: Optional[StrictStr] = None, local_cache_dir: Optional[StrictStr] = None, @@ -5292,7 +5292,7 @@ def upload_file_without_preload_content( :param upload_file_type: (required) :type upload_file_type: UploadFileType :param file: (required) - :type file: bytearray + :type file: str :param packed_password: :type packed_password: str :param endpoint_url: @@ -5426,7 +5426,7 @@ def _upload_file_serialize( if upload_file_type is not None: _form_params.append(('upload_file_type', upload_file_type)) if file is not None: - _files['file'] = file + _form_params.append(('file', file)) if force_overwrite is not None: _form_params.append(('force_overwrite', force_overwrite)) # process the body parameter diff --git a/revengai/api/firmware_api.py b/revengai/api/firmware_api.py index 33d8899..c88017f 100644 --- a/revengai/api/firmware_api.py +++ b/revengai/api/firmware_api.py @@ -15,8 +15,8 @@ from typing import Any, Dict, List, Optional, Tuple, Union from typing_extensions import Annotated -from pydantic import StrictBytes, StrictInt, StrictStr -from typing import Any, Optional, Tuple, Union +from pydantic import StrictInt, StrictStr +from typing import Any, Optional from revengai.api_client import ApiClient, RequestSerialized from revengai.api_response import ApiResponse @@ -303,7 +303,7 @@ def _get_binaries_for_firmware_task_serialize( @validate_call def upload_firmware( self, - file: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], + file: StrictStr, endpoint_url: Optional[StrictStr] = None, local_cache_dir: Optional[StrictStr] = None, local_cache_max_size_mb: Optional[StrictInt] = None, @@ -329,7 +329,7 @@ def upload_firmware( Uploads a firmware file and begins a 'Firmware Unpacker' task. Returns a result identifier, which can be used to poll for the response. :param file: (required) - :type file: bytearray + :type file: str :param endpoint_url: :type endpoint_url: str :param local_cache_dir: @@ -400,7 +400,7 @@ def upload_firmware( @validate_call def upload_firmware_with_http_info( self, - file: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], + file: StrictStr, endpoint_url: Optional[StrictStr] = None, local_cache_dir: Optional[StrictStr] = None, local_cache_max_size_mb: Optional[StrictInt] = None, @@ -426,7 +426,7 @@ def upload_firmware_with_http_info( Uploads a firmware file and begins a 'Firmware Unpacker' task. Returns a result identifier, which can be used to poll for the response. :param file: (required) - :type file: bytearray + :type file: str :param endpoint_url: :type endpoint_url: str :param local_cache_dir: @@ -497,7 +497,7 @@ def upload_firmware_with_http_info( @validate_call def upload_firmware_without_preload_content( self, - file: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], + file: StrictStr, endpoint_url: Optional[StrictStr] = None, local_cache_dir: Optional[StrictStr] = None, local_cache_max_size_mb: Optional[StrictInt] = None, @@ -523,7 +523,7 @@ def upload_firmware_without_preload_content( Uploads a firmware file and begins a 'Firmware Unpacker' task. Returns a result identifier, which can be used to poll for the response. :param file: (required) - :type file: bytearray + :type file: str :param endpoint_url: :type endpoint_url: str :param local_cache_dir: @@ -646,7 +646,7 @@ def _upload_firmware_serialize( # process the header parameters # process the form parameters if file is not None: - _files['file'] = file + _form_params.append(('file', file)) if password is not None: _form_params.append(('password', password)) # process the body parameter diff --git a/revengai/api/functions_ai_decompilation_api.py b/revengai/api/functions_ai_decompilation_api.py index 2dcc789..2d27f71 100644 --- a/revengai/api/functions_ai_decompilation_api.py +++ b/revengai/api/functions_ai_decompilation_api.py @@ -16,7 +16,7 @@ from typing_extensions import Annotated from pydantic import Field, StrictBool, StrictInt, StrictStr -from typing import Optional +from typing import List, Optional from typing_extensions import Annotated from revengai.models.base_response import BaseResponse from revengai.models.base_response_bool import BaseResponseBool @@ -27,6 +27,7 @@ from revengai.models.base_response_union_get_ai_decompilation_rating_response_none_type import BaseResponseUnionGetAiDecompilationRatingResponseNoneType from revengai.models.comment_update_request import CommentUpdateRequest from revengai.models.function_comment_create_request import FunctionCommentCreateRequest +from revengai.models.regenerate_target import RegenerateTarget from revengai.models.upsert_ai_decomplation_rating_request import UpsertAiDecomplationRatingRequest from revengai.api_client import ApiClient, RequestSerialized @@ -1740,6 +1741,7 @@ def get_ai_decompilation_task_result( function_id: Annotated[StrictInt, Field(description="The ID of the function being decompiled")], summarise: Annotated[Optional[StrictBool], Field(description="Generate a summary for the decompilation")] = None, generate_inline_comments: Annotated[Optional[StrictBool], Field(description="Generate inline comments for the decompilation")] = None, + force_regenerate: Annotated[Optional[List[RegenerateTarget]], Field(description="Force regeneration of summary and/or comments.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1763,6 +1765,8 @@ def get_ai_decompilation_task_result( :type summarise: bool :param generate_inline_comments: Generate inline comments for the decompilation :type generate_inline_comments: bool + :param force_regenerate: Force regeneration of summary and/or comments. + :type force_regenerate: List[RegenerateTarget] :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 @@ -1789,6 +1793,7 @@ def get_ai_decompilation_task_result( function_id=function_id, summarise=summarise, generate_inline_comments=generate_inline_comments, + force_regenerate=force_regenerate, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1817,6 +1822,7 @@ def get_ai_decompilation_task_result_with_http_info( function_id: Annotated[StrictInt, Field(description="The ID of the function being decompiled")], summarise: Annotated[Optional[StrictBool], Field(description="Generate a summary for the decompilation")] = None, generate_inline_comments: Annotated[Optional[StrictBool], Field(description="Generate inline comments for the decompilation")] = None, + force_regenerate: Annotated[Optional[List[RegenerateTarget]], Field(description="Force regeneration of summary and/or comments.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1840,6 +1846,8 @@ def get_ai_decompilation_task_result_with_http_info( :type summarise: bool :param generate_inline_comments: Generate inline comments for the decompilation :type generate_inline_comments: bool + :param force_regenerate: Force regeneration of summary and/or comments. + :type force_regenerate: List[RegenerateTarget] :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 @@ -1866,6 +1874,7 @@ def get_ai_decompilation_task_result_with_http_info( function_id=function_id, summarise=summarise, generate_inline_comments=generate_inline_comments, + force_regenerate=force_regenerate, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1894,6 +1903,7 @@ def get_ai_decompilation_task_result_without_preload_content( function_id: Annotated[StrictInt, Field(description="The ID of the function being decompiled")], summarise: Annotated[Optional[StrictBool], Field(description="Generate a summary for the decompilation")] = None, generate_inline_comments: Annotated[Optional[StrictBool], Field(description="Generate inline comments for the decompilation")] = None, + force_regenerate: Annotated[Optional[List[RegenerateTarget]], Field(description="Force regeneration of summary and/or comments.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1917,6 +1927,8 @@ def get_ai_decompilation_task_result_without_preload_content( :type summarise: bool :param generate_inline_comments: Generate inline comments for the decompilation :type generate_inline_comments: bool + :param force_regenerate: Force regeneration of summary and/or comments. + :type force_regenerate: List[RegenerateTarget] :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 @@ -1943,6 +1955,7 @@ def get_ai_decompilation_task_result_without_preload_content( function_id=function_id, summarise=summarise, generate_inline_comments=generate_inline_comments, + force_regenerate=force_regenerate, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1966,6 +1979,7 @@ def _get_ai_decompilation_task_result_serialize( function_id, summarise, generate_inline_comments, + force_regenerate, _request_auth, _content_type, _headers, @@ -1975,6 +1989,7 @@ def _get_ai_decompilation_task_result_serialize( _host = None _collection_formats: Dict[str, str] = { + 'force_regenerate': 'multi', } _path_params: Dict[str, str] = {} @@ -1998,6 +2013,10 @@ def _get_ai_decompilation_task_result_serialize( _query_params.append(('generate_inline_comments', generate_inline_comments)) + if force_regenerate is not None: + + _query_params.append(('force_regenerate', force_regenerate)) + # process the header parameters # process the form parameters # process the body parameter diff --git a/revengai/api_client.py b/revengai/api_client.py index 1148f2c..8f9d7a3 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.70.2/python' + self.user_agent = 'OpenAPI-Generator/v3.72.0/python' self.client_side_validation = configuration.client_side_validation def __enter__(self): diff --git a/revengai/configuration.py b/revengai/configuration.py index 80d32d4..b063f75 100644 --- a/revengai/configuration.py +++ b/revengai/configuration.py @@ -533,8 +533,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.70.2\n"\ - "SDK Package Version: v3.70.2".\ + "Version of the API: v3.72.0\n"\ + "SDK Package Version: v3.72.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 c8f2b1b..df65b5c 100644 --- a/revengai/models/__init__.py +++ b/revengai/models/__init__.py @@ -276,6 +276,7 @@ from revengai.models.queued_workflow_task_response import QueuedWorkflowTaskResponse from revengai.models.re_analysis_form import ReAnalysisForm from revengai.models.recent import Recent +from revengai.models.regenerate_target import RegenerateTarget from revengai.models.registry import Registry from revengai.models.relative_binary_response import RelativeBinaryResponse from revengai.models.report_analysis_response import ReportAnalysisResponse diff --git a/revengai/models/function_mapping_full.py b/revengai/models/function_mapping_full.py index 9a09144..7e5233b 100644 --- a/revengai/models/function_mapping_full.py +++ b/revengai/models/function_mapping_full.py @@ -16,7 +16,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field +from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional from revengai.models.inverse_function_map_item import InverseFunctionMapItem from revengai.models.inverse_string_map_item import InverseStringMapItem @@ -41,7 +41,8 @@ class FunctionMappingFull(BaseModel): unmatched_global_vars: Dict[str, InverseValue] fields: Dict[str, Dict[str, InverseValue]] unmatched_external_vars: Optional[Dict[str, InverseValue]] = Field(default=None, description="No longer provided.") - __properties: ClassVar[List[str]] = ["inverse_string_map", "inverse_function_map", "unmatched_functions", "unmatched_custom_types", "unmatched_strings", "unmatched_vars", "unmatched_go_to_labels", "unmatched_custom_function_pointers", "unmatched_variadic_lists", "unmatched_enums", "unmatched_global_vars", "fields", "unmatched_external_vars"] + user_override_mappings: Optional[Dict[str, StrictStr]] = None + __properties: ClassVar[List[str]] = ["inverse_string_map", "inverse_function_map", "unmatched_functions", "unmatched_custom_types", "unmatched_strings", "unmatched_vars", "unmatched_go_to_labels", "unmatched_custom_function_pointers", "unmatched_variadic_lists", "unmatched_enums", "unmatched_global_vars", "fields", "unmatched_external_vars", "user_override_mappings"] model_config = ConfigDict( populate_by_name=True, @@ -268,7 +269,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: for _k, _v in obj["unmatched_external_vars"].items() ) if obj.get("unmatched_external_vars") is not None - else None + else None, + "user_override_mappings": obj.get("user_override_mappings") }) return _obj diff --git a/revengai/models/regenerate_target.py b/revengai/models/regenerate_target.py new file mode 100644 index 0000000..1143003 --- /dev/null +++ b/revengai/models/regenerate_target.py @@ -0,0 +1,36 @@ +# 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 json +from enum import Enum +from typing_extensions import Self + + +class RegenerateTarget(str, Enum): + """ + RegenerateTarget + """ + + """ + allowed enum values + """ + SUMMARY = 'summary' + COMMENTS = 'comments' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of RegenerateTarget from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/test/test_base_response_get_ai_decompilation_task.py b/test/test_base_response_get_ai_decompilation_task.py index b989095..a2c8169 100644 --- a/test/test_base_response_get_ai_decompilation_task.py +++ b/test/test_base_response_get_ai_decompilation_task.py @@ -93,6 +93,9 @@ def make_instance(self, include_optional) -> BaseResponseGetAiDecompilationTask: }, unmatched_external_vars = { 'key' : + }, + user_override_mappings = { + 'key' : '' }, ), summary = '', ai_summary = '', diff --git a/test/test_function_mapping_full.py b/test/test_function_mapping_full.py index 19102b7..537a06b 100644 --- a/test/test_function_mapping_full.py +++ b/test/test_function_mapping_full.py @@ -90,6 +90,9 @@ def make_instance(self, include_optional) -> FunctionMappingFull: unmatched_external_vars = { 'key' : revengai.models.inverse_value.InverseValue( value = '', ) + }, + user_override_mappings = { + 'key' : '' } ) else: diff --git a/test/test_get_ai_decompilation_task.py b/test/test_get_ai_decompilation_task.py index 55c434d..d4ac74b 100644 --- a/test/test_get_ai_decompilation_task.py +++ b/test/test_get_ai_decompilation_task.py @@ -91,6 +91,9 @@ def make_instance(self, include_optional) -> GetAiDecompilationTask: }, unmatched_external_vars = { 'key' : + }, + user_override_mappings = { + 'key' : '' }, ), summary = '', ai_summary = '', @@ -156,6 +159,9 @@ def make_instance(self, include_optional) -> GetAiDecompilationTask: }, unmatched_external_vars = { 'key' : + }, + user_override_mappings = { + 'key' : '' }, ), ) """ diff --git a/test/test_regenerate_target.py b/test/test_regenerate_target.py new file mode 100644 index 0000000..9f20dea --- /dev/null +++ b/test/test_regenerate_target.py @@ -0,0 +1,32 @@ +# 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 + + +import unittest + +from revengai.models.regenerate_target import RegenerateTarget + +class TestRegenerateTarget(unittest.TestCase): + """RegenerateTarget unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testRegenerateTarget(self): + """Test RegenerateTarget""" + # inst = RegenerateTarget() + +if __name__ == '__main__': + unittest.main()