revengai 2.74.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. revengai/__init__.py +647 -0
  2. revengai/api/__init__.py +22 -0
  3. revengai/api/analyses_comments_api.py +1198 -0
  4. revengai/api/analyses_core_api.py +3870 -0
  5. revengai/api/analyses_dynamic_execution_api.py +1884 -0
  6. revengai/api/analyses_results_metadata_api.py +2240 -0
  7. revengai/api/analyses_security_checks_api.py +862 -0
  8. revengai/api/authentication_users_api.py +1323 -0
  9. revengai/api/binaries_api.py +1610 -0
  10. revengai/api/collections_api.py +2167 -0
  11. revengai/api/external_sources_api.py +827 -0
  12. revengai/api/firmware_api.py +592 -0
  13. revengai/api/functions_ai_decompilation_api.py +2592 -0
  14. revengai/api/functions_block_comments_api.py +849 -0
  15. revengai/api/functions_core_api.py +3430 -0
  16. revengai/api/functions_data_types_api.py +1746 -0
  17. revengai/api/functions_decompilation_api.py +1198 -0
  18. revengai/api/functions_renaming_history_api.py +1151 -0
  19. revengai/api/models_api.py +284 -0
  20. revengai/api/search_api.py +1454 -0
  21. revengai/api_client.py +803 -0
  22. revengai/api_response.py +21 -0
  23. revengai/configuration.py +605 -0
  24. revengai/exceptions.py +215 -0
  25. revengai/models/__init__.py +298 -0
  26. revengai/models/addr.py +143 -0
  27. revengai/models/ai_decompilation_rating.py +37 -0
  28. revengai/models/ai_unstrip_request.py +86 -0
  29. revengai/models/analysis_access_info.py +88 -0
  30. revengai/models/analysis_config.py +106 -0
  31. revengai/models/analysis_create_request.py +131 -0
  32. revengai/models/analysis_create_response.py +88 -0
  33. revengai/models/analysis_detail_response.py +121 -0
  34. revengai/models/analysis_function_mapping.py +90 -0
  35. revengai/models/analysis_function_matching_request.py +110 -0
  36. revengai/models/analysis_functions.py +94 -0
  37. revengai/models/analysis_functions_list.py +94 -0
  38. revengai/models/analysis_record.py +128 -0
  39. revengai/models/analysis_scope.py +36 -0
  40. revengai/models/analysis_strings_response.py +96 -0
  41. revengai/models/analysis_tags.py +94 -0
  42. revengai/models/analysis_update_request.py +108 -0
  43. revengai/models/analysis_update_tags_request.py +86 -0
  44. revengai/models/analysis_update_tags_response.py +94 -0
  45. revengai/models/app_api_rest_v2_analyses_enums_dynamic_execution_status.py +38 -0
  46. revengai/models/app_api_rest_v2_analyses_enums_order_by.py +37 -0
  47. revengai/models/app_api_rest_v2_collections_enums_order_by.py +40 -0
  48. revengai/models/app_api_rest_v2_functions_responses_function.py +93 -0
  49. revengai/models/app_api_rest_v2_functions_types_function.py +110 -0
  50. revengai/models/app_services_dynamic_execution_schemas_dynamic_execution_status.py +86 -0
  51. revengai/models/argument.py +99 -0
  52. revengai/models/auto_unstrip_request.py +99 -0
  53. revengai/models/auto_unstrip_response.py +129 -0
  54. revengai/models/base_response.py +124 -0
  55. revengai/models/base_response_analysis_create_response.py +125 -0
  56. revengai/models/base_response_analysis_detail_response.py +125 -0
  57. revengai/models/base_response_analysis_function_mapping.py +125 -0
  58. revengai/models/base_response_analysis_functions.py +125 -0
  59. revengai/models/base_response_analysis_functions_list.py +125 -0
  60. revengai/models/base_response_analysis_strings_response.py +125 -0
  61. revengai/models/base_response_analysis_tags.py +125 -0
  62. revengai/models/base_response_analysis_update_tags_response.py +125 -0
  63. revengai/models/base_response_basic.py +125 -0
  64. revengai/models/base_response_binary_additional_response.py +125 -0
  65. revengai/models/base_response_binary_details_response.py +125 -0
  66. revengai/models/base_response_binary_externals_response.py +125 -0
  67. revengai/models/base_response_binary_search_response.py +125 -0
  68. revengai/models/base_response_block_comments_generation_for_function_response.py +125 -0
  69. revengai/models/base_response_block_comments_overview_generation_response.py +116 -0
  70. revengai/models/base_response_bool.py +121 -0
  71. revengai/models/base_response_callees_caller_functions_response.py +125 -0
  72. revengai/models/base_response_capabilities.py +125 -0
  73. revengai/models/base_response_check_security_checks_task_response.py +125 -0
  74. revengai/models/base_response_child_binaries_response.py +125 -0
  75. revengai/models/base_response_collection_binaries_update_response.py +125 -0
  76. revengai/models/base_response_collection_response.py +125 -0
  77. revengai/models/base_response_collection_search_response.py +125 -0
  78. revengai/models/base_response_collection_tags_update_response.py +125 -0
  79. revengai/models/base_response_comment_response.py +125 -0
  80. revengai/models/base_response_communities.py +125 -0
  81. revengai/models/base_response_created.py +125 -0
  82. revengai/models/base_response_dict.py +121 -0
  83. revengai/models/base_response_dynamic_execution_status.py +125 -0
  84. revengai/models/base_response_external_response.py +125 -0
  85. revengai/models/base_response_function_blocks_response.py +125 -0
  86. revengai/models/base_response_function_capability_response.py +125 -0
  87. revengai/models/base_response_function_data_types.py +125 -0
  88. revengai/models/base_response_function_data_types_list.py +125 -0
  89. revengai/models/base_response_function_search_response.py +125 -0
  90. revengai/models/base_response_function_strings_response.py +125 -0
  91. revengai/models/base_response_function_task_response.py +125 -0
  92. revengai/models/base_response_functions_detail_response.py +125 -0
  93. revengai/models/base_response_generate_function_data_types.py +125 -0
  94. revengai/models/base_response_generation_status_list.py +125 -0
  95. revengai/models/base_response_get_ai_decompilation_rating_response.py +125 -0
  96. revengai/models/base_response_get_ai_decompilation_task.py +125 -0
  97. revengai/models/base_response_get_me_response.py +125 -0
  98. revengai/models/base_response_get_public_user_response.py +125 -0
  99. revengai/models/base_response_list_collection_results.py +125 -0
  100. revengai/models/base_response_list_comment_response.py +129 -0
  101. revengai/models/base_response_list_die_match.py +129 -0
  102. revengai/models/base_response_list_function_name_history.py +129 -0
  103. revengai/models/base_response_list_sbom.py +129 -0
  104. revengai/models/base_response_list_user_activity_response.py +129 -0
  105. revengai/models/base_response_login_response.py +125 -0
  106. revengai/models/base_response_logs.py +125 -0
  107. revengai/models/base_response_models_response.py +125 -0
  108. revengai/models/base_response_network_overview_response.py +125 -0
  109. revengai/models/base_response_params.py +125 -0
  110. revengai/models/base_response_process_dumps.py +125 -0
  111. revengai/models/base_response_process_registry.py +125 -0
  112. revengai/models/base_response_process_tree.py +125 -0
  113. revengai/models/base_response_queued_security_checks_task_response.py +125 -0
  114. revengai/models/base_response_recent.py +125 -0
  115. revengai/models/base_response_security_checks_response.py +125 -0
  116. revengai/models/base_response_status.py +125 -0
  117. revengai/models/base_response_str.py +121 -0
  118. revengai/models/base_response_tag_search_response.py +125 -0
  119. revengai/models/base_response_task_response.py +125 -0
  120. revengai/models/base_response_ttps.py +125 -0
  121. revengai/models/base_response_upload_response.py +125 -0
  122. revengai/models/base_response_vulnerabilities.py +125 -0
  123. revengai/models/basic.py +116 -0
  124. revengai/models/binary_additional_details_data_response.py +112 -0
  125. revengai/models/binary_additional_response.py +105 -0
  126. revengai/models/binary_config.py +108 -0
  127. revengai/models/binary_details_response.py +125 -0
  128. revengai/models/binary_externals_response.py +95 -0
  129. revengai/models/binary_search_response.py +94 -0
  130. revengai/models/binary_search_result.py +108 -0
  131. revengai/models/binary_task_status.py +39 -0
  132. revengai/models/block.py +86 -0
  133. revengai/models/block_comments_generation_for_function_response.py +86 -0
  134. revengai/models/callee_function_info.py +106 -0
  135. revengai/models/callees_caller_functions_response.py +106 -0
  136. revengai/models/caller_function_info.py +106 -0
  137. revengai/models/capabilities.py +94 -0
  138. revengai/models/capability.py +90 -0
  139. revengai/models/check_security_checks_task_response.py +87 -0
  140. revengai/models/child_binaries_response.py +104 -0
  141. revengai/models/code_signature_model.py +98 -0
  142. revengai/models/collection_binaries_update_request.py +86 -0
  143. revengai/models/collection_binaries_update_response.py +94 -0
  144. revengai/models/collection_binary_response.py +97 -0
  145. revengai/models/collection_create_request.py +107 -0
  146. revengai/models/collection_list_item.py +112 -0
  147. revengai/models/collection_response.py +131 -0
  148. revengai/models/collection_response_binaries_inner.py +135 -0
  149. revengai/models/collection_scope.py +38 -0
  150. revengai/models/collection_search_response.py +94 -0
  151. revengai/models/collection_search_result.py +124 -0
  152. revengai/models/collection_tags_update_request.py +86 -0
  153. revengai/models/collection_tags_update_response.py +86 -0
  154. revengai/models/collection_update_request.py +106 -0
  155. revengai/models/comment_base.py +86 -0
  156. revengai/models/comment_response.py +110 -0
  157. revengai/models/comment_update_request.py +86 -0
  158. revengai/models/communities.py +100 -0
  159. revengai/models/community_match_percentages.py +92 -0
  160. revengai/models/confidence_type.py +39 -0
  161. revengai/models/context.py +141 -0
  162. revengai/models/created.py +90 -0
  163. revengai/models/decompilation_comment_context.py +98 -0
  164. revengai/models/die_match.py +92 -0
  165. revengai/models/dynamic_execution_status_input.py +38 -0
  166. revengai/models/elf_dynamic_entry.py +88 -0
  167. revengai/models/elf_import_model.py +88 -0
  168. revengai/models/elf_model.py +179 -0
  169. revengai/models/elf_relocation.py +98 -0
  170. revengai/models/elf_section.py +104 -0
  171. revengai/models/elf_security.py +94 -0
  172. revengai/models/elf_segment.py +102 -0
  173. revengai/models/elf_symbol.py +98 -0
  174. revengai/models/entrypoint_model.py +88 -0
  175. revengai/models/enumeration.py +97 -0
  176. revengai/models/error_model.py +88 -0
  177. revengai/models/export_model.py +88 -0
  178. revengai/models/external_response.py +91 -0
  179. revengai/models/file_format.py +37 -0
  180. revengai/models/file_hashes.py +140 -0
  181. revengai/models/file_metadata.py +96 -0
  182. revengai/models/filters.py +39 -0
  183. revengai/models/function_block_destination_response.py +95 -0
  184. revengai/models/function_block_response.py +109 -0
  185. revengai/models/function_blocks_response.py +121 -0
  186. revengai/models/function_boundary.py +90 -0
  187. revengai/models/function_capability_response.py +86 -0
  188. revengai/models/function_comment_create_request.py +92 -0
  189. revengai/models/function_data_types.py +106 -0
  190. revengai/models/function_data_types_list.py +98 -0
  191. revengai/models/function_data_types_list_item.py +108 -0
  192. revengai/models/function_data_types_params.py +86 -0
  193. revengai/models/function_data_types_status.py +90 -0
  194. revengai/models/function_header.py +112 -0
  195. revengai/models/function_info_input.py +105 -0
  196. revengai/models/function_info_input_func_deps_inner.py +163 -0
  197. revengai/models/function_info_output.py +105 -0
  198. revengai/models/function_list_item.py +96 -0
  199. revengai/models/function_local_variable_response.py +94 -0
  200. revengai/models/function_mapping.py +90 -0
  201. revengai/models/function_mapping_full.py +275 -0
  202. revengai/models/function_match.py +111 -0
  203. revengai/models/function_matching_filters.py +103 -0
  204. revengai/models/function_matching_request.py +114 -0
  205. revengai/models/function_matching_response.py +157 -0
  206. revengai/models/function_name_history.py +99 -0
  207. revengai/models/function_param_response.py +94 -0
  208. revengai/models/function_rename.py +88 -0
  209. revengai/models/function_rename_map.py +90 -0
  210. revengai/models/function_search_response.py +94 -0
  211. revengai/models/function_search_result.py +99 -0
  212. revengai/models/function_source_type.py +39 -0
  213. revengai/models/function_string.py +88 -0
  214. revengai/models/function_strings_response.py +96 -0
  215. revengai/models/function_task_response.py +94 -0
  216. revengai/models/function_task_status.py +39 -0
  217. revengai/models/function_type_input.py +127 -0
  218. revengai/models/function_type_output.py +127 -0
  219. revengai/models/functions_detail_response.py +125 -0
  220. revengai/models/functions_list_rename.py +94 -0
  221. revengai/models/generate_function_data_types.py +94 -0
  222. revengai/models/generation_status_list.py +98 -0
  223. revengai/models/get_ai_decompilation_rating_response.py +94 -0
  224. revengai/models/get_ai_decompilation_task.py +159 -0
  225. revengai/models/get_me_response.py +108 -0
  226. revengai/models/get_public_user_response.py +88 -0
  227. revengai/models/global_variable.py +101 -0
  228. revengai/models/icon_model.py +91 -0
  229. revengai/models/import_model.py +88 -0
  230. revengai/models/inverse_function_map_item.py +99 -0
  231. revengai/models/inverse_string_map_item.py +93 -0
  232. revengai/models/inverse_value.py +86 -0
  233. revengai/models/isa.py +37 -0
  234. revengai/models/list_collection_results.py +94 -0
  235. revengai/models/login_request.py +89 -0
  236. revengai/models/login_response.py +86 -0
  237. revengai/models/logs.py +86 -0
  238. revengai/models/matched_function.py +116 -0
  239. revengai/models/matched_function_suggestion.py +97 -0
  240. revengai/models/meta_model.py +95 -0
  241. revengai/models/model_name.py +40 -0
  242. revengai/models/models_response.py +86 -0
  243. revengai/models/name_confidence.py +89 -0
  244. revengai/models/network_overview_dns.py +98 -0
  245. revengai/models/network_overview_dns_answer.py +88 -0
  246. revengai/models/network_overview_metadata.py +99 -0
  247. revengai/models/network_overview_response.py +104 -0
  248. revengai/models/order.py +36 -0
  249. revengai/models/pagination_model.py +90 -0
  250. revengai/models/params.py +103 -0
  251. revengai/models/pdb_debug_model.py +94 -0
  252. revengai/models/pe_model.py +215 -0
  253. revengai/models/platform.py +36 -0
  254. revengai/models/process.py +103 -0
  255. revengai/models/process_dump.py +96 -0
  256. revengai/models/process_dump_metadata.py +90 -0
  257. revengai/models/process_dumps.py +92 -0
  258. revengai/models/process_dumps_data.py +96 -0
  259. revengai/models/process_registry.py +105 -0
  260. revengai/models/process_tree.py +96 -0
  261. revengai/models/queued_security_checks_task_response.py +86 -0
  262. revengai/models/re_analysis_form.py +101 -0
  263. revengai/models/recent.py +94 -0
  264. revengai/models/registry.py +102 -0
  265. revengai/models/relative_binary_response.py +90 -0
  266. revengai/models/sandbox_options.py +88 -0
  267. revengai/models/sbom.py +96 -0
  268. revengai/models/sbom_package.py +88 -0
  269. revengai/models/scrape_third_party_config.py +86 -0
  270. revengai/models/section_model.py +96 -0
  271. revengai/models/security_checks_response.py +98 -0
  272. revengai/models/security_checks_result.py +103 -0
  273. revengai/models/security_model.py +106 -0
  274. revengai/models/severity_type.py +40 -0
  275. revengai/models/single_code_certificate_model.py +96 -0
  276. revengai/models/single_code_signature_model.py +96 -0
  277. revengai/models/single_pdb_entry_model.py +90 -0
  278. revengai/models/single_section_model.py +98 -0
  279. revengai/models/stack_variable.py +101 -0
  280. revengai/models/status_input.py +40 -0
  281. revengai/models/status_output.py +88 -0
  282. revengai/models/string_functions.py +96 -0
  283. revengai/models/structure.py +117 -0
  284. revengai/models/structure_member.py +99 -0
  285. revengai/models/symbols.py +96 -0
  286. revengai/models/tag.py +86 -0
  287. revengai/models/tag_item.py +95 -0
  288. revengai/models/tag_response.py +88 -0
  289. revengai/models/tag_search_response.py +94 -0
  290. revengai/models/tag_search_result.py +88 -0
  291. revengai/models/task_response.py +94 -0
  292. revengai/models/task_status.py +39 -0
  293. revengai/models/timestamp_model.py +90 -0
  294. revengai/models/ttps.py +92 -0
  295. revengai/models/ttps_attack.py +88 -0
  296. revengai/models/ttps_data.py +96 -0
  297. revengai/models/ttps_element.py +108 -0
  298. revengai/models/ttps_occurance.py +88 -0
  299. revengai/models/type_definition.py +97 -0
  300. revengai/models/update_function_data_types.py +92 -0
  301. revengai/models/upload_file_type.py +38 -0
  302. revengai/models/upload_response.py +91 -0
  303. revengai/models/upsert_ai_decomplation_rating_request.py +94 -0
  304. revengai/models/user_activity_response.py +97 -0
  305. revengai/models/vulnerabilities.py +94 -0
  306. revengai/models/vulnerability.py +113 -0
  307. revengai/models/vulnerability_type.py +40 -0
  308. revengai/models/workspace.py +37 -0
  309. revengai/py.typed +0 -0
  310. revengai/rest.py +257 -0
  311. revengai-2.74.0.dist-info/METADATA +447 -0
  312. revengai-2.74.0.dist-info/RECORD +314 -0
  313. revengai-2.74.0.dist-info/WHEEL +4 -0
  314. revengai-2.74.0.dist-info/licenses/LICENSE.md +19 -0
revengai/exceptions.py ADDED
@@ -0,0 +1,215 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ RevEng.AI API
5
+
6
+ RevEng.AI is Similarity Search Engine for executable binaries
7
+
8
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
9
+
10
+ Do not edit the class manually.
11
+ """ # noqa: E501
12
+
13
+ from typing import Any, Optional
14
+ from typing_extensions import Self
15
+
16
+ class OpenApiException(Exception):
17
+ """The base exception class for all OpenAPIExceptions"""
18
+
19
+
20
+ class ApiTypeError(OpenApiException, TypeError):
21
+ def __init__(self, msg, path_to_item=None, valid_classes=None,
22
+ key_type=None) -> None:
23
+ """ Raises an exception for TypeErrors
24
+
25
+ Args:
26
+ msg (str): the exception message
27
+
28
+ Keyword Args:
29
+ path_to_item (list): a list of keys an indices to get to the
30
+ current_item
31
+ None if unset
32
+ valid_classes (tuple): the primitive classes that current item
33
+ should be an instance of
34
+ None if unset
35
+ key_type (bool): False if our value is a value in a dict
36
+ True if it is a key in a dict
37
+ False if our item is an item in a list
38
+ None if unset
39
+ """
40
+ self.path_to_item = path_to_item
41
+ self.valid_classes = valid_classes
42
+ self.key_type = key_type
43
+ full_msg = msg
44
+ if path_to_item:
45
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
46
+ super(ApiTypeError, self).__init__(full_msg)
47
+
48
+
49
+ class ApiValueError(OpenApiException, ValueError):
50
+ def __init__(self, msg, path_to_item=None) -> None:
51
+ """
52
+ Args:
53
+ msg (str): the exception message
54
+
55
+ Keyword Args:
56
+ path_to_item (list) the path to the exception in the
57
+ received_data dict. None if unset
58
+ """
59
+
60
+ self.path_to_item = path_to_item
61
+ full_msg = msg
62
+ if path_to_item:
63
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
64
+ super(ApiValueError, self).__init__(full_msg)
65
+
66
+
67
+ class ApiAttributeError(OpenApiException, AttributeError):
68
+ def __init__(self, msg, path_to_item=None) -> None:
69
+ """
70
+ Raised when an attribute reference or assignment fails.
71
+
72
+ Args:
73
+ msg (str): the exception message
74
+
75
+ Keyword Args:
76
+ path_to_item (None/list) the path to the exception in the
77
+ received_data dict
78
+ """
79
+ self.path_to_item = path_to_item
80
+ full_msg = msg
81
+ if path_to_item:
82
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
83
+ super(ApiAttributeError, self).__init__(full_msg)
84
+
85
+
86
+ class ApiKeyError(OpenApiException, KeyError):
87
+ def __init__(self, msg, path_to_item=None) -> None:
88
+ """
89
+ Args:
90
+ msg (str): the exception message
91
+
92
+ Keyword Args:
93
+ path_to_item (None/list) the path to the exception in the
94
+ received_data dict
95
+ """
96
+ self.path_to_item = path_to_item
97
+ full_msg = msg
98
+ if path_to_item:
99
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
100
+ super(ApiKeyError, self).__init__(full_msg)
101
+
102
+
103
+ class ApiException(OpenApiException):
104
+
105
+ def __init__(
106
+ self,
107
+ status=None,
108
+ reason=None,
109
+ http_resp=None,
110
+ *,
111
+ body: Optional[str] = None,
112
+ data: Optional[Any] = None,
113
+ ) -> None:
114
+ self.status = status
115
+ self.reason = reason
116
+ self.body = body
117
+ self.data = data
118
+ self.headers = None
119
+
120
+ if http_resp:
121
+ if self.status is None:
122
+ self.status = http_resp.status
123
+ if self.reason is None:
124
+ self.reason = http_resp.reason
125
+ if self.body is None:
126
+ try:
127
+ self.body = http_resp.data.decode('utf-8')
128
+ except Exception:
129
+ pass
130
+ self.headers = http_resp.getheaders()
131
+
132
+ @classmethod
133
+ def from_response(
134
+ cls,
135
+ *,
136
+ http_resp,
137
+ body: Optional[str],
138
+ data: Optional[Any],
139
+ ) -> Self:
140
+ if http_resp.status == 400:
141
+ raise BadRequestException(http_resp=http_resp, body=body, data=data)
142
+
143
+ if http_resp.status == 401:
144
+ raise UnauthorizedException(http_resp=http_resp, body=body, data=data)
145
+
146
+ if http_resp.status == 403:
147
+ raise ForbiddenException(http_resp=http_resp, body=body, data=data)
148
+
149
+ if http_resp.status == 404:
150
+ raise NotFoundException(http_resp=http_resp, body=body, data=data)
151
+
152
+ # Added new conditions for 409 and 422
153
+ if http_resp.status == 409:
154
+ raise ConflictException(http_resp=http_resp, body=body, data=data)
155
+
156
+ if http_resp.status == 422:
157
+ raise UnprocessableEntityException(http_resp=http_resp, body=body, data=data)
158
+
159
+ if 500 <= http_resp.status <= 599:
160
+ raise ServiceException(http_resp=http_resp, body=body, data=data)
161
+ raise ApiException(http_resp=http_resp, body=body, data=data)
162
+
163
+ def __str__(self):
164
+ """Custom error messages for exception"""
165
+ error_message = "({0})\n"\
166
+ "Reason: {1}\n".format(self.status, self.reason)
167
+ if self.headers:
168
+ error_message += "HTTP response headers: {0}\n".format(
169
+ self.headers)
170
+
171
+ if self.data or self.body:
172
+ error_message += "HTTP response body: {0}\n".format(self.data or self.body)
173
+
174
+ return error_message
175
+
176
+
177
+ class BadRequestException(ApiException):
178
+ pass
179
+
180
+
181
+ class NotFoundException(ApiException):
182
+ pass
183
+
184
+
185
+ class UnauthorizedException(ApiException):
186
+ pass
187
+
188
+
189
+ class ForbiddenException(ApiException):
190
+ pass
191
+
192
+
193
+ class ServiceException(ApiException):
194
+ pass
195
+
196
+
197
+ class ConflictException(ApiException):
198
+ """Exception for HTTP 409 Conflict."""
199
+ pass
200
+
201
+
202
+ class UnprocessableEntityException(ApiException):
203
+ """Exception for HTTP 422 Unprocessable Entity."""
204
+ pass
205
+
206
+
207
+ def render_path(path_to_item):
208
+ """Returns a string representation of a path"""
209
+ result = ""
210
+ for pth in path_to_item:
211
+ if isinstance(pth, int):
212
+ result += "[{0}]".format(pth)
213
+ else:
214
+ result += "['{0}']".format(pth)
215
+ return result
@@ -0,0 +1,298 @@
1
+ # coding: utf-8
2
+
3
+ # flake8: noqa
4
+ """
5
+ RevEng.AI API
6
+
7
+ RevEng.AI is Similarity Search Engine for executable binaries
8
+
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ # import models into model package
15
+ from revengai.models.addr import Addr
16
+ from revengai.models.ai_decompilation_rating import AiDecompilationRating
17
+ from revengai.models.ai_unstrip_request import AiUnstripRequest
18
+ from revengai.models.analysis_access_info import AnalysisAccessInfo
19
+ from revengai.models.analysis_config import AnalysisConfig
20
+ from revengai.models.analysis_create_request import AnalysisCreateRequest
21
+ from revengai.models.analysis_create_response import AnalysisCreateResponse
22
+ from revengai.models.analysis_detail_response import AnalysisDetailResponse
23
+ from revengai.models.analysis_function_mapping import AnalysisFunctionMapping
24
+ from revengai.models.analysis_function_matching_request import AnalysisFunctionMatchingRequest
25
+ from revengai.models.analysis_functions import AnalysisFunctions
26
+ from revengai.models.analysis_functions_list import AnalysisFunctionsList
27
+ from revengai.models.analysis_record import AnalysisRecord
28
+ from revengai.models.analysis_scope import AnalysisScope
29
+ from revengai.models.analysis_strings_response import AnalysisStringsResponse
30
+ from revengai.models.analysis_tags import AnalysisTags
31
+ from revengai.models.analysis_update_request import AnalysisUpdateRequest
32
+ from revengai.models.analysis_update_tags_request import AnalysisUpdateTagsRequest
33
+ from revengai.models.analysis_update_tags_response import AnalysisUpdateTagsResponse
34
+ from revengai.models.app_api_rest_v2_analyses_enums_dynamic_execution_status import AppApiRestV2AnalysesEnumsDynamicExecutionStatus
35
+ from revengai.models.app_api_rest_v2_analyses_enums_order_by import AppApiRestV2AnalysesEnumsOrderBy
36
+ from revengai.models.app_api_rest_v2_collections_enums_order_by import AppApiRestV2CollectionsEnumsOrderBy
37
+ from revengai.models.app_api_rest_v2_functions_responses_function import AppApiRestV2FunctionsResponsesFunction
38
+ from revengai.models.app_api_rest_v2_functions_types_function import AppApiRestV2FunctionsTypesFunction
39
+ from revengai.models.app_services_dynamic_execution_schemas_dynamic_execution_status import AppServicesDynamicExecutionSchemasDynamicExecutionStatus
40
+ from revengai.models.argument import Argument
41
+ from revengai.models.auto_unstrip_request import AutoUnstripRequest
42
+ from revengai.models.auto_unstrip_response import AutoUnstripResponse
43
+ from revengai.models.base_response import BaseResponse
44
+ from revengai.models.base_response_analysis_create_response import BaseResponseAnalysisCreateResponse
45
+ from revengai.models.base_response_analysis_detail_response import BaseResponseAnalysisDetailResponse
46
+ from revengai.models.base_response_analysis_function_mapping import BaseResponseAnalysisFunctionMapping
47
+ from revengai.models.base_response_analysis_functions import BaseResponseAnalysisFunctions
48
+ from revengai.models.base_response_analysis_functions_list import BaseResponseAnalysisFunctionsList
49
+ from revengai.models.base_response_analysis_strings_response import BaseResponseAnalysisStringsResponse
50
+ from revengai.models.base_response_analysis_tags import BaseResponseAnalysisTags
51
+ from revengai.models.base_response_analysis_update_tags_response import BaseResponseAnalysisUpdateTagsResponse
52
+ from revengai.models.base_response_basic import BaseResponseBasic
53
+ from revengai.models.base_response_binary_additional_response import BaseResponseBinaryAdditionalResponse
54
+ from revengai.models.base_response_binary_details_response import BaseResponseBinaryDetailsResponse
55
+ from revengai.models.base_response_binary_externals_response import BaseResponseBinaryExternalsResponse
56
+ from revengai.models.base_response_binary_search_response import BaseResponseBinarySearchResponse
57
+ from revengai.models.base_response_block_comments_generation_for_function_response import BaseResponseBlockCommentsGenerationForFunctionResponse
58
+ from revengai.models.base_response_block_comments_overview_generation_response import BaseResponseBlockCommentsOverviewGenerationResponse
59
+ from revengai.models.base_response_bool import BaseResponseBool
60
+ from revengai.models.base_response_callees_caller_functions_response import BaseResponseCalleesCallerFunctionsResponse
61
+ from revengai.models.base_response_capabilities import BaseResponseCapabilities
62
+ from revengai.models.base_response_check_security_checks_task_response import BaseResponseCheckSecurityChecksTaskResponse
63
+ from revengai.models.base_response_child_binaries_response import BaseResponseChildBinariesResponse
64
+ from revengai.models.base_response_collection_binaries_update_response import BaseResponseCollectionBinariesUpdateResponse
65
+ from revengai.models.base_response_collection_response import BaseResponseCollectionResponse
66
+ from revengai.models.base_response_collection_search_response import BaseResponseCollectionSearchResponse
67
+ from revengai.models.base_response_collection_tags_update_response import BaseResponseCollectionTagsUpdateResponse
68
+ from revengai.models.base_response_comment_response import BaseResponseCommentResponse
69
+ from revengai.models.base_response_communities import BaseResponseCommunities
70
+ from revengai.models.base_response_created import BaseResponseCreated
71
+ from revengai.models.base_response_dict import BaseResponseDict
72
+ from revengai.models.base_response_dynamic_execution_status import BaseResponseDynamicExecutionStatus
73
+ from revengai.models.base_response_external_response import BaseResponseExternalResponse
74
+ from revengai.models.base_response_function_blocks_response import BaseResponseFunctionBlocksResponse
75
+ from revengai.models.base_response_function_capability_response import BaseResponseFunctionCapabilityResponse
76
+ from revengai.models.base_response_function_data_types import BaseResponseFunctionDataTypes
77
+ from revengai.models.base_response_function_data_types_list import BaseResponseFunctionDataTypesList
78
+ from revengai.models.base_response_function_search_response import BaseResponseFunctionSearchResponse
79
+ from revengai.models.base_response_function_strings_response import BaseResponseFunctionStringsResponse
80
+ from revengai.models.base_response_function_task_response import BaseResponseFunctionTaskResponse
81
+ from revengai.models.base_response_functions_detail_response import BaseResponseFunctionsDetailResponse
82
+ from revengai.models.base_response_generate_function_data_types import BaseResponseGenerateFunctionDataTypes
83
+ from revengai.models.base_response_generation_status_list import BaseResponseGenerationStatusList
84
+ from revengai.models.base_response_get_ai_decompilation_rating_response import BaseResponseGetAiDecompilationRatingResponse
85
+ from revengai.models.base_response_get_ai_decompilation_task import BaseResponseGetAiDecompilationTask
86
+ from revengai.models.base_response_get_me_response import BaseResponseGetMeResponse
87
+ from revengai.models.base_response_get_public_user_response import BaseResponseGetPublicUserResponse
88
+ from revengai.models.base_response_list_collection_results import BaseResponseListCollectionResults
89
+ from revengai.models.base_response_list_comment_response import BaseResponseListCommentResponse
90
+ from revengai.models.base_response_list_die_match import BaseResponseListDieMatch
91
+ from revengai.models.base_response_list_function_name_history import BaseResponseListFunctionNameHistory
92
+ from revengai.models.base_response_list_sbom import BaseResponseListSBOM
93
+ from revengai.models.base_response_list_user_activity_response import BaseResponseListUserActivityResponse
94
+ from revengai.models.base_response_login_response import BaseResponseLoginResponse
95
+ from revengai.models.base_response_logs import BaseResponseLogs
96
+ from revengai.models.base_response_models_response import BaseResponseModelsResponse
97
+ from revengai.models.base_response_network_overview_response import BaseResponseNetworkOverviewResponse
98
+ from revengai.models.base_response_params import BaseResponseParams
99
+ from revengai.models.base_response_process_dumps import BaseResponseProcessDumps
100
+ from revengai.models.base_response_process_registry import BaseResponseProcessRegistry
101
+ from revengai.models.base_response_process_tree import BaseResponseProcessTree
102
+ from revengai.models.base_response_queued_security_checks_task_response import BaseResponseQueuedSecurityChecksTaskResponse
103
+ from revengai.models.base_response_recent import BaseResponseRecent
104
+ from revengai.models.base_response_security_checks_response import BaseResponseSecurityChecksResponse
105
+ from revengai.models.base_response_status import BaseResponseStatus
106
+ from revengai.models.base_response_str import BaseResponseStr
107
+ from revengai.models.base_response_ttps import BaseResponseTTPS
108
+ from revengai.models.base_response_tag_search_response import BaseResponseTagSearchResponse
109
+ from revengai.models.base_response_task_response import BaseResponseTaskResponse
110
+ from revengai.models.base_response_upload_response import BaseResponseUploadResponse
111
+ from revengai.models.base_response_vulnerabilities import BaseResponseVulnerabilities
112
+ from revengai.models.basic import Basic
113
+ from revengai.models.binary_additional_details_data_response import BinaryAdditionalDetailsDataResponse
114
+ from revengai.models.binary_additional_response import BinaryAdditionalResponse
115
+ from revengai.models.binary_config import BinaryConfig
116
+ from revengai.models.binary_details_response import BinaryDetailsResponse
117
+ from revengai.models.binary_externals_response import BinaryExternalsResponse
118
+ from revengai.models.binary_search_response import BinarySearchResponse
119
+ from revengai.models.binary_search_result import BinarySearchResult
120
+ from revengai.models.binary_task_status import BinaryTaskStatus
121
+ from revengai.models.block import Block
122
+ from revengai.models.block_comments_generation_for_function_response import BlockCommentsGenerationForFunctionResponse
123
+ from revengai.models.callee_function_info import CalleeFunctionInfo
124
+ from revengai.models.callees_caller_functions_response import CalleesCallerFunctionsResponse
125
+ from revengai.models.caller_function_info import CallerFunctionInfo
126
+ from revengai.models.capabilities import Capabilities
127
+ from revengai.models.capability import Capability
128
+ from revengai.models.check_security_checks_task_response import CheckSecurityChecksTaskResponse
129
+ from revengai.models.child_binaries_response import ChildBinariesResponse
130
+ from revengai.models.code_signature_model import CodeSignatureModel
131
+ from revengai.models.collection_binaries_update_request import CollectionBinariesUpdateRequest
132
+ from revengai.models.collection_binaries_update_response import CollectionBinariesUpdateResponse
133
+ from revengai.models.collection_binary_response import CollectionBinaryResponse
134
+ from revengai.models.collection_create_request import CollectionCreateRequest
135
+ from revengai.models.collection_list_item import CollectionListItem
136
+ from revengai.models.collection_response import CollectionResponse
137
+ from revengai.models.collection_response_binaries_inner import CollectionResponseBinariesInner
138
+ from revengai.models.collection_scope import CollectionScope
139
+ from revengai.models.collection_search_response import CollectionSearchResponse
140
+ from revengai.models.collection_search_result import CollectionSearchResult
141
+ from revengai.models.collection_tags_update_request import CollectionTagsUpdateRequest
142
+ from revengai.models.collection_tags_update_response import CollectionTagsUpdateResponse
143
+ from revengai.models.collection_update_request import CollectionUpdateRequest
144
+ from revengai.models.comment_base import CommentBase
145
+ from revengai.models.comment_response import CommentResponse
146
+ from revengai.models.comment_update_request import CommentUpdateRequest
147
+ from revengai.models.communities import Communities
148
+ from revengai.models.community_match_percentages import CommunityMatchPercentages
149
+ from revengai.models.confidence_type import ConfidenceType
150
+ from revengai.models.context import Context
151
+ from revengai.models.created import Created
152
+ from revengai.models.decompilation_comment_context import DecompilationCommentContext
153
+ from revengai.models.die_match import DieMatch
154
+ from revengai.models.dynamic_execution_status_input import DynamicExecutionStatusInput
155
+ from revengai.models.elf_import_model import ELFImportModel
156
+ from revengai.models.elf_model import ELFModel
157
+ from revengai.models.elf_relocation import ELFRelocation
158
+ from revengai.models.elf_section import ELFSection
159
+ from revengai.models.elf_security import ELFSecurity
160
+ from revengai.models.elf_segment import ELFSegment
161
+ from revengai.models.elf_symbol import ELFSymbol
162
+ from revengai.models.elf_dynamic_entry import ElfDynamicEntry
163
+ from revengai.models.entrypoint_model import EntrypointModel
164
+ from revengai.models.enumeration import Enumeration
165
+ from revengai.models.error_model import ErrorModel
166
+ from revengai.models.export_model import ExportModel
167
+ from revengai.models.external_response import ExternalResponse
168
+ from revengai.models.file_format import FileFormat
169
+ from revengai.models.file_hashes import FileHashes
170
+ from revengai.models.file_metadata import FileMetadata
171
+ from revengai.models.filters import Filters
172
+ from revengai.models.function_block_destination_response import FunctionBlockDestinationResponse
173
+ from revengai.models.function_block_response import FunctionBlockResponse
174
+ from revengai.models.function_blocks_response import FunctionBlocksResponse
175
+ from revengai.models.function_boundary import FunctionBoundary
176
+ from revengai.models.function_capability_response import FunctionCapabilityResponse
177
+ from revengai.models.function_comment_create_request import FunctionCommentCreateRequest
178
+ from revengai.models.function_data_types import FunctionDataTypes
179
+ from revengai.models.function_data_types_list import FunctionDataTypesList
180
+ from revengai.models.function_data_types_list_item import FunctionDataTypesListItem
181
+ from revengai.models.function_data_types_params import FunctionDataTypesParams
182
+ from revengai.models.function_data_types_status import FunctionDataTypesStatus
183
+ from revengai.models.function_header import FunctionHeader
184
+ from revengai.models.function_info_input import FunctionInfoInput
185
+ from revengai.models.function_info_input_func_deps_inner import FunctionInfoInputFuncDepsInner
186
+ from revengai.models.function_info_output import FunctionInfoOutput
187
+ from revengai.models.function_list_item import FunctionListItem
188
+ from revengai.models.function_local_variable_response import FunctionLocalVariableResponse
189
+ from revengai.models.function_mapping import FunctionMapping
190
+ from revengai.models.function_mapping_full import FunctionMappingFull
191
+ from revengai.models.function_match import FunctionMatch
192
+ from revengai.models.function_matching_filters import FunctionMatchingFilters
193
+ from revengai.models.function_matching_request import FunctionMatchingRequest
194
+ from revengai.models.function_matching_response import FunctionMatchingResponse
195
+ from revengai.models.function_name_history import FunctionNameHistory
196
+ from revengai.models.function_param_response import FunctionParamResponse
197
+ from revengai.models.function_rename import FunctionRename
198
+ from revengai.models.function_rename_map import FunctionRenameMap
199
+ from revengai.models.function_search_response import FunctionSearchResponse
200
+ from revengai.models.function_search_result import FunctionSearchResult
201
+ from revengai.models.function_source_type import FunctionSourceType
202
+ from revengai.models.function_string import FunctionString
203
+ from revengai.models.function_strings_response import FunctionStringsResponse
204
+ from revengai.models.function_task_response import FunctionTaskResponse
205
+ from revengai.models.function_task_status import FunctionTaskStatus
206
+ from revengai.models.function_type_input import FunctionTypeInput
207
+ from revengai.models.function_type_output import FunctionTypeOutput
208
+ from revengai.models.functions_detail_response import FunctionsDetailResponse
209
+ from revengai.models.functions_list_rename import FunctionsListRename
210
+ from revengai.models.generate_function_data_types import GenerateFunctionDataTypes
211
+ from revengai.models.generation_status_list import GenerationStatusList
212
+ from revengai.models.get_ai_decompilation_rating_response import GetAiDecompilationRatingResponse
213
+ from revengai.models.get_ai_decompilation_task import GetAiDecompilationTask
214
+ from revengai.models.get_me_response import GetMeResponse
215
+ from revengai.models.get_public_user_response import GetPublicUserResponse
216
+ from revengai.models.global_variable import GlobalVariable
217
+ from revengai.models.isa import ISA
218
+ from revengai.models.icon_model import IconModel
219
+ from revengai.models.import_model import ImportModel
220
+ from revengai.models.inverse_function_map_item import InverseFunctionMapItem
221
+ from revengai.models.inverse_string_map_item import InverseStringMapItem
222
+ from revengai.models.inverse_value import InverseValue
223
+ from revengai.models.list_collection_results import ListCollectionResults
224
+ from revengai.models.login_request import LoginRequest
225
+ from revengai.models.login_response import LoginResponse
226
+ from revengai.models.logs import Logs
227
+ from revengai.models.matched_function import MatchedFunction
228
+ from revengai.models.matched_function_suggestion import MatchedFunctionSuggestion
229
+ from revengai.models.meta_model import MetaModel
230
+ from revengai.models.model_name import ModelName
231
+ from revengai.models.models_response import ModelsResponse
232
+ from revengai.models.name_confidence import NameConfidence
233
+ from revengai.models.network_overview_dns import NetworkOverviewDns
234
+ from revengai.models.network_overview_dns_answer import NetworkOverviewDnsAnswer
235
+ from revengai.models.network_overview_metadata import NetworkOverviewMetadata
236
+ from revengai.models.network_overview_response import NetworkOverviewResponse
237
+ from revengai.models.order import Order
238
+ from revengai.models.pdb_debug_model import PDBDebugModel
239
+ from revengai.models.pe_model import PEModel
240
+ from revengai.models.pagination_model import PaginationModel
241
+ from revengai.models.params import Params
242
+ from revengai.models.platform import Platform
243
+ from revengai.models.process import Process
244
+ from revengai.models.process_dump import ProcessDump
245
+ from revengai.models.process_dump_metadata import ProcessDumpMetadata
246
+ from revengai.models.process_dumps import ProcessDumps
247
+ from revengai.models.process_dumps_data import ProcessDumpsData
248
+ from revengai.models.process_registry import ProcessRegistry
249
+ from revengai.models.process_tree import ProcessTree
250
+ from revengai.models.queued_security_checks_task_response import QueuedSecurityChecksTaskResponse
251
+ from revengai.models.re_analysis_form import ReAnalysisForm
252
+ from revengai.models.recent import Recent
253
+ from revengai.models.registry import Registry
254
+ from revengai.models.relative_binary_response import RelativeBinaryResponse
255
+ from revengai.models.sbom import SBOM
256
+ from revengai.models.sbom_package import SBOMPackage
257
+ from revengai.models.sandbox_options import SandboxOptions
258
+ from revengai.models.scrape_third_party_config import ScrapeThirdPartyConfig
259
+ from revengai.models.section_model import SectionModel
260
+ from revengai.models.security_checks_response import SecurityChecksResponse
261
+ from revengai.models.security_checks_result import SecurityChecksResult
262
+ from revengai.models.security_model import SecurityModel
263
+ from revengai.models.severity_type import SeverityType
264
+ from revengai.models.single_code_certificate_model import SingleCodeCertificateModel
265
+ from revengai.models.single_code_signature_model import SingleCodeSignatureModel
266
+ from revengai.models.single_pdb_entry_model import SinglePDBEntryModel
267
+ from revengai.models.single_section_model import SingleSectionModel
268
+ from revengai.models.stack_variable import StackVariable
269
+ from revengai.models.status_input import StatusInput
270
+ from revengai.models.status_output import StatusOutput
271
+ from revengai.models.string_functions import StringFunctions
272
+ from revengai.models.structure import Structure
273
+ from revengai.models.structure_member import StructureMember
274
+ from revengai.models.symbols import Symbols
275
+ from revengai.models.ttps import TTPS
276
+ from revengai.models.ttps_attack import TTPSAttack
277
+ from revengai.models.ttps_data import TTPSData
278
+ from revengai.models.ttps_element import TTPSElement
279
+ from revengai.models.ttps_occurance import TTPSOccurance
280
+ from revengai.models.tag import Tag
281
+ from revengai.models.tag_item import TagItem
282
+ from revengai.models.tag_response import TagResponse
283
+ from revengai.models.tag_search_response import TagSearchResponse
284
+ from revengai.models.tag_search_result import TagSearchResult
285
+ from revengai.models.task_response import TaskResponse
286
+ from revengai.models.task_status import TaskStatus
287
+ from revengai.models.timestamp_model import TimestampModel
288
+ from revengai.models.type_definition import TypeDefinition
289
+ from revengai.models.update_function_data_types import UpdateFunctionDataTypes
290
+ from revengai.models.upload_file_type import UploadFileType
291
+ from revengai.models.upload_response import UploadResponse
292
+ from revengai.models.upsert_ai_decomplation_rating_request import UpsertAiDecomplationRatingRequest
293
+ from revengai.models.user_activity_response import UserActivityResponse
294
+ from revengai.models.vulnerabilities import Vulnerabilities
295
+ from revengai.models.vulnerability import Vulnerability
296
+ from revengai.models.vulnerability_type import VulnerabilityType
297
+ from revengai.models.workspace import Workspace
298
+
@@ -0,0 +1,143 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ RevEng.AI API
5
+
6
+ RevEng.AI is Similarity Search Engine for executable binaries
7
+
8
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
9
+
10
+ Do not edit the class manually.
11
+ """ # noqa: E501
12
+
13
+
14
+ from __future__ import annotations
15
+ from inspect import getfullargspec
16
+ import json
17
+ import pprint
18
+ import re # noqa: F401
19
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, ValidationError, field_validator
20
+ from typing import Optional
21
+ from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
22
+ from typing_extensions import Literal, Self
23
+ from pydantic import Field
24
+
25
+ ADDR_ANY_OF_SCHEMAS = ["int", "str"]
26
+
27
+ class Addr(BaseModel):
28
+ """
29
+ Addr
30
+ """
31
+
32
+ # data type: int
33
+ anyof_schema_1_validator: Optional[StrictInt] = None
34
+ # data type: str
35
+ anyof_schema_2_validator: Optional[StrictStr] = None
36
+ if TYPE_CHECKING:
37
+ actual_instance: Optional[Union[int, str]] = None
38
+ else:
39
+ actual_instance: Any = None
40
+ any_of_schemas: Set[str] = { "int", "str" }
41
+
42
+ model_config = {
43
+ "validate_assignment": True,
44
+ "protected_namespaces": (),
45
+ }
46
+
47
+ def __init__(self, *args, **kwargs) -> None:
48
+ if args:
49
+ if len(args) > 1:
50
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
51
+ if kwargs:
52
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
53
+ super().__init__(actual_instance=args[0])
54
+ else:
55
+ super().__init__(**kwargs)
56
+
57
+ @field_validator('actual_instance')
58
+ def actual_instance_must_validate_anyof(cls, v):
59
+ if v is None:
60
+ return v
61
+
62
+ instance = Addr.model_construct()
63
+ error_messages = []
64
+ # validate data type: int
65
+ try:
66
+ instance.anyof_schema_1_validator = v
67
+ return v
68
+ except (ValidationError, ValueError) as e:
69
+ error_messages.append(str(e))
70
+ # validate data type: str
71
+ try:
72
+ instance.anyof_schema_2_validator = v
73
+ return v
74
+ except (ValidationError, ValueError) as e:
75
+ error_messages.append(str(e))
76
+ if error_messages:
77
+ # no match
78
+ raise ValueError("No match found when setting the actual_instance in Addr with anyOf schemas: int, str. Details: " + ", ".join(error_messages))
79
+ else:
80
+ return v
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
84
+ return cls.from_json(json.dumps(obj))
85
+
86
+ @classmethod
87
+ def from_json(cls, json_str: str) -> Self:
88
+ """Returns the object represented by the json string"""
89
+ instance = cls.model_construct()
90
+ if json_str is None:
91
+ return instance
92
+
93
+ error_messages = []
94
+ # deserialize data into int
95
+ try:
96
+ # validation
97
+ instance.anyof_schema_1_validator = json.loads(json_str)
98
+ # assign value to actual_instance
99
+ instance.actual_instance = instance.anyof_schema_1_validator
100
+ return instance
101
+ except (ValidationError, ValueError) as e:
102
+ error_messages.append(str(e))
103
+ # deserialize data into str
104
+ try:
105
+ # validation
106
+ instance.anyof_schema_2_validator = json.loads(json_str)
107
+ # assign value to actual_instance
108
+ instance.actual_instance = instance.anyof_schema_2_validator
109
+ return instance
110
+ except (ValidationError, ValueError) as e:
111
+ error_messages.append(str(e))
112
+
113
+ if error_messages:
114
+ # no match
115
+ raise ValueError("No match found when deserializing the JSON string into Addr with anyOf schemas: int, str. Details: " + ", ".join(error_messages))
116
+ else:
117
+ return instance
118
+
119
+ def to_json(self) -> str:
120
+ """Returns the JSON representation of the actual instance"""
121
+ if self.actual_instance is None:
122
+ return "null"
123
+
124
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
125
+ return self.actual_instance.to_json()
126
+ else:
127
+ return json.dumps(self.actual_instance)
128
+
129
+ def to_dict(self) -> Optional[Union[Dict[str, Any], int, str]]:
130
+ """Returns the dict representation of the actual instance"""
131
+ if self.actual_instance is None:
132
+ return None
133
+
134
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
135
+ return self.actual_instance.to_dict()
136
+ else:
137
+ return self.actual_instance
138
+
139
+ def to_str(self) -> str:
140
+ """Returns the string representation of the actual instance"""
141
+ return pprint.pformat(self.model_dump())
142
+
143
+