diff --git a/README.md b/README.md index d6b3195..bb208e6 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ Class | Method | HTTP request | Description *FunctionsRenamingHistoryApi* | [**rename_function_id**](docs/FunctionsRenamingHistoryApi.md#rename_function_id) | **POST** /v2/functions/rename/{function_id} | Rename Function *FunctionsRenamingHistoryApi* | [**revert_function_name**](docs/FunctionsRenamingHistoryApi.md#revert_function_name) | **POST** /v2/functions/history/{function_id}/{history_id} | Revert the function name *FunctionsRenamingHistoryApi* | [**revert_function_name_0**](docs/FunctionsRenamingHistoryApi.md#revert_function_name_0) | **POST** /v3/functions/{function_id}/history/{history_id}/revert | Revert function name +*IAMUsersApi* | [**get_me**](docs/IAMUsersApi.md#get_me) | **GET** /v2/iam/me | Get current user *ModelsApi* | [**get_models**](docs/ModelsApi.md#get_models) | **GET** /v2/models | Gets models *ReportsApi* | [**create_pdf_report**](docs/ReportsApi.md#create_pdf_report) | **POST** /v3/analyses/{analysis_id}/pdf | Start PDF report generation *ReportsApi* | [**download_pdf_report**](docs/ReportsApi.md#download_pdf_report) | **GET** /v3/analyses/{analysis_id}/pdf | Download generated PDF report @@ -204,6 +205,9 @@ Class | Method | HTTP request | Description - [AIDecompInverseStringMapItem](docs/AIDecompInverseStringMapItem.md) - [APIError](docs/APIError.md) - [AddCalleeInputBody](docs/AddCalleeInputBody.md) + - [AddIssuerDomainInputBody](docs/AddIssuerDomainInputBody.md) + - [AddOwnerInputBody](docs/AddOwnerInputBody.md) + - [AddTeamMemberInputBody](docs/AddTeamMemberInputBody.md) - [AddUserStringInputBody](docs/AddUserStringInputBody.md) - [AddUserStringToFunctionInputBody](docs/AddUserStringToFunctionInputBody.md) - [AdditionalDetailsStatusResponse](docs/AdditionalDetailsStatusResponse.md) @@ -337,6 +341,8 @@ Class | Method | HTTP request | Description - [BinarySearchResponse](docs/BinarySearchResponse.md) - [BinarySearchResult](docs/BinarySearchResult.md) - [BinaryTaskStatus](docs/BinaryTaskStatus.md) + - [BulkCreateUserResult](docs/BulkCreateUserResult.md) + - [BulkCreateUsersOutputBody](docs/BulkCreateUsersOutputBody.md) - [BulkDeleteAnalysesRequest](docs/BulkDeleteAnalysesRequest.md) - [CallEdge](docs/CallEdge.md) - [CallEdgesOutputBody](docs/CallEdgesOutputBody.md) @@ -380,7 +386,13 @@ Class | Method | HTTP request | Description - [CreateCollectionInputBody](docs/CreateCollectionInputBody.md) - [CreateCollectionOutputBody](docs/CreateCollectionOutputBody.md) - [CreateConversationRequest](docs/CreateConversationRequest.md) + - [CreateGroupInputBody](docs/CreateGroupInputBody.md) + - [CreateIdentityInputBody](docs/CreateIdentityInputBody.md) + - [CreateIssuerInputBody](docs/CreateIssuerInputBody.md) + - [CreateOrganisationInputBody](docs/CreateOrganisationInputBody.md) - [CreatePortalSessionInputBody](docs/CreatePortalSessionInputBody.md) + - [CreateTeamInputBody](docs/CreateTeamInputBody.md) + - [CreateUserInputBody](docs/CreateUserInputBody.md) - [Created](docs/Created.md) - [DataTypesEntry](docs/DataTypesEntry.md) - [DecompFailedEvent](docs/DecompFailedEvent.md) @@ -439,6 +451,7 @@ Class | Method | HTTP request | Description - [FileHashes](docs/FileHashes.md) - [FileMetadata](docs/FileMetadata.md) - [Filters](docs/Filters.md) + - [FormFile](docs/FormFile.md) - [FunctionArgument](docs/FunctionArgument.md) - [FunctionBlockDestinationResponse](docs/FunctionBlockDestinationResponse.md) - [FunctionBlockResponse](docs/FunctionBlockResponse.md) @@ -499,6 +512,8 @@ Class | Method | HTTP request | Description - [ImportModel](docs/ImportModel.md) - [InlineComment](docs/InlineComment.md) - [InsertAnalysisLogRequest](docs/InsertAnalysisLogRequest.md) + - [InviteUserInputBody](docs/InviteUserInputBody.md) + - [IssuerAllowedDomain](docs/IssuerAllowedDomain.md) - [ListAnalysisFunctionsDataTypesOutputBody](docs/ListAnalysisFunctionsDataTypesOutputBody.md) - [ListAnalysisFunctionsOutputBody](docs/ListAnalysisFunctionsOutputBody.md) - [ListAnalysisStringsOutputBody](docs/ListAnalysisStringsOutputBody.md) @@ -506,12 +521,16 @@ Class | Method | HTTP request | Description - [ListCollectionsOutputBody](docs/ListCollectionsOutputBody.md) - [ListFunctionStringsOutputBody](docs/ListFunctionStringsOutputBody.md) - [ListFunctionsDataTypesOutputBody](docs/ListFunctionsDataTypesOutputBody.md) + - [ListTeamsOutputBody](docs/ListTeamsOutputBody.md) + - [ListUsersOutputBody](docs/ListUsersOutputBody.md) + - [LocationOutputBody](docs/LocationOutputBody.md) - [Logs](docs/Logs.md) - [MITRETechnique](docs/MITRETechnique.md) - [MatchFilters](docs/MatchFilters.md) - [MatchedFunction](docs/MatchedFunction.md) - [MatchedFunctionSuggestion](docs/MatchedFunctionSuggestion.md) - [MemdumpEntry](docs/MemdumpEntry.md) + - [MessageBody](docs/MessageBody.md) - [MetaModel](docs/MetaModel.md) - [ModelName](docs/ModelName.md) - [ModelsResponse](docs/ModelsResponse.md) @@ -520,11 +539,17 @@ Class | Method | HTTP request | Description - [NameConfidence](docs/NameConfidence.md) - [NameSourceType](docs/NameSourceType.md) - [NetworkActivity](docs/NetworkActivity.md) + - [OIDCCallbackInputBody](docs/OIDCCallbackInputBody.md) - [Order](docs/Order.md) + - [Organisation](docs/Organisation.md) + - [OrganisationGroup](docs/OrganisationGroup.md) + - [OrganisationIssuer](docs/OrganisationIssuer.md) + - [OrganisationOwner](docs/OrganisationOwner.md) - [PDBDebugModel](docs/PDBDebugModel.md) - [PEModel](docs/PEModel.md) - [PaginationModel](docs/PaginationModel.md) - [Params](docs/Params.md) + - [PasswordResetInputBody](docs/PasswordResetInputBody.md) - [PatchCollectionBinariesInputBody](docs/PatchCollectionBinariesInputBody.md) - [PatchCollectionBinariesOutputBody](docs/PatchCollectionBinariesOutputBody.md) - [PatchCollectionInputBody](docs/PatchCollectionInputBody.md) @@ -548,7 +573,9 @@ Class | Method | HTTP request | Description - [QueuedWorkflowTaskResponse](docs/QueuedWorkflowTaskResponse.md) - [ReAnalysisForm](docs/ReAnalysisForm.md) - [Recent](docs/Recent.md) + - [RefreshBody](docs/RefreshBody.md) - [RegenerateOutputBody](docs/RegenerateOutputBody.md) + - [RegisterUserInputBody](docs/RegisterUserInputBody.md) - [RegistryOperation](docs/RegistryOperation.md) - [RelativeBinaryResponse](docs/RelativeBinaryResponse.md) - [RenameAppliedEvent](docs/RenameAppliedEvent.md) @@ -559,8 +586,11 @@ Class | Method | HTTP request | Description - [ReportEvent](docs/ReportEvent.md) - [ReportInfo](docs/ReportInfo.md) - [ReportOptions](docs/ReportOptions.md) + - [RevokeBody](docs/RevokeBody.md) - [SBOM](docs/SBOM.md) - [SBOMPackage](docs/SBOMPackage.md) + - [SSOProvider](docs/SSOProvider.md) + - [SSOProvidersOutputBody](docs/SSOProvidersOutputBody.md) - [SandboxOptions](docs/SandboxOptions.md) - [SandboxStartMethod](docs/SandboxStartMethod.md) - [SandboxTimeout](docs/SandboxTimeout.md) @@ -621,7 +651,11 @@ Class | Method | HTTP request | Description - [TaskStatus](docs/TaskStatus.md) - [TaskStatusResponse](docs/TaskStatusResponse.md) - [TcpCarvedFile](docs/TcpCarvedFile.md) + - [Team](docs/Team.md) + - [TeamMember](docs/TeamMember.md) - [TimestampModel](docs/TimestampModel.md) + - [TokenInputBody](docs/TokenInputBody.md) + - [TokenResponse](docs/TokenResponse.md) - [TokenisedData](docs/TokenisedData.md) - [TriageFunctionResponse](docs/TriageFunctionResponse.md) - [TriageReportResponse](docs/TriageReportResponse.md) @@ -630,12 +664,24 @@ Class | Method | HTTP request | Description - [TypeDefinition](docs/TypeDefinition.md) - [UpdateDataTypesInputBody](docs/UpdateDataTypesInputBody.md) - [UpdateDataTypesOutputBody](docs/UpdateDataTypesOutputBody.md) + - [UpdateIssuerInputBody](docs/UpdateIssuerInputBody.md) + - [UpdateOrganisationInputBody](docs/UpdateOrganisationInputBody.md) + - [UpdatePasswordInputBody](docs/UpdatePasswordInputBody.md) + - [UpdateProfileInputBody](docs/UpdateProfileInputBody.md) + - [UpdateTeamInputBody](docs/UpdateTeamInputBody.md) + - [UpdateUserCreditsInputBody](docs/UpdateUserCreditsInputBody.md) + - [UpdateUserInputBody](docs/UpdateUserInputBody.md) + - [UpdateUserPasswordInputBody](docs/UpdateUserPasswordInputBody.md) - [UploadFileType](docs/UploadFileType.md) - [UploadResponse](docs/UploadResponse.md) - [UpsertAiDecomplationRatingRequest](docs/UpsertAiDecomplationRatingRequest.md) - [UpsertOverridesData](docs/UpsertOverridesData.md) - [UpsertOverridesInputBody](docs/UpsertOverridesInputBody.md) + - [User](docs/User.md) - [UserActivityResponse](docs/UserActivityResponse.md) + - [UserCredits](docs/UserCredits.md) + - [UserIdentity](docs/UserIdentity.md) + - [UserProfile](docs/UserProfile.md) - [Vulnerabilities](docs/Vulnerabilities.md) - [Vulnerability](docs/Vulnerability.md) - [WarningEvent](docs/WarningEvent.md) diff --git a/docs/AddIssuerDomainInputBody.md b/docs/AddIssuerDomainInputBody.md new file mode 100644 index 0000000..784531b --- /dev/null +++ b/docs/AddIssuerDomainInputBody.md @@ -0,0 +1,29 @@ +# AddIssuerDomainInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**domain** | **str** | Email domain to allow (e.g. acme.com) | + +## Example + +```python +from revengai.models.add_issuer_domain_input_body import AddIssuerDomainInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of AddIssuerDomainInputBody from a JSON string +add_issuer_domain_input_body_instance = AddIssuerDomainInputBody.from_json(json) +# print the JSON string representation of the object +print(AddIssuerDomainInputBody.to_json()) + +# convert the object into a dict +add_issuer_domain_input_body_dict = add_issuer_domain_input_body_instance.to_dict() +# create an instance of AddIssuerDomainInputBody from a dict +add_issuer_domain_input_body_from_dict = AddIssuerDomainInputBody.from_dict(add_issuer_domain_input_body_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/AddOwnerInputBody.md b/docs/AddOwnerInputBody.md new file mode 100644 index 0000000..6855415 --- /dev/null +++ b/docs/AddOwnerInputBody.md @@ -0,0 +1,29 @@ +# AddOwnerInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**user_id** | **int** | User ID to add as owner | + +## Example + +```python +from revengai.models.add_owner_input_body import AddOwnerInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of AddOwnerInputBody from a JSON string +add_owner_input_body_instance = AddOwnerInputBody.from_json(json) +# print the JSON string representation of the object +print(AddOwnerInputBody.to_json()) + +# convert the object into a dict +add_owner_input_body_dict = add_owner_input_body_instance.to_dict() +# create an instance of AddOwnerInputBody from a dict +add_owner_input_body_from_dict = AddOwnerInputBody.from_dict(add_owner_input_body_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/AddTeamMemberInputBody.md b/docs/AddTeamMemberInputBody.md new file mode 100644 index 0000000..ad82d5f --- /dev/null +++ b/docs/AddTeamMemberInputBody.md @@ -0,0 +1,29 @@ +# AddTeamMemberInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**user_id** | **int** | User ID to add | + +## Example + +```python +from revengai.models.add_team_member_input_body import AddTeamMemberInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of AddTeamMemberInputBody from a JSON string +add_team_member_input_body_instance = AddTeamMemberInputBody.from_json(json) +# print the JSON string representation of the object +print(AddTeamMemberInputBody.to_json()) + +# convert the object into a dict +add_team_member_input_body_dict = add_team_member_input_body_instance.to_dict() +# create an instance of AddTeamMemberInputBody from a dict +add_team_member_input_body_from_dict = AddTeamMemberInputBody.from_dict(add_team_member_input_body_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/BulkCreateUserResult.md b/docs/BulkCreateUserResult.md new file mode 100644 index 0000000..042bca4 --- /dev/null +++ b/docs/BulkCreateUserResult.md @@ -0,0 +1,34 @@ +# BulkCreateUserResult + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**email** | **str** | | +**error** | **str** | Error description; present on failure | [optional] +**index** | **int** | 1-based row index in the CSV | +**success** | **bool** | | +**user** | [**User**](User.md) | Created user; present on success | [optional] +**username** | **str** | | + +## Example + +```python +from revengai.models.bulk_create_user_result import BulkCreateUserResult + +# TODO update the JSON string below +json = "{}" +# create an instance of BulkCreateUserResult from a JSON string +bulk_create_user_result_instance = BulkCreateUserResult.from_json(json) +# print the JSON string representation of the object +print(BulkCreateUserResult.to_json()) + +# convert the object into a dict +bulk_create_user_result_dict = bulk_create_user_result_instance.to_dict() +# create an instance of BulkCreateUserResult from a dict +bulk_create_user_result_from_dict = BulkCreateUserResult.from_dict(bulk_create_user_result_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/BulkCreateUsersOutputBody.md b/docs/BulkCreateUsersOutputBody.md new file mode 100644 index 0000000..fd504b2 --- /dev/null +++ b/docs/BulkCreateUsersOutputBody.md @@ -0,0 +1,32 @@ +# BulkCreateUsersOutputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**failed** | **int** | | +**results** | [**List[BulkCreateUserResult]**](BulkCreateUserResult.md) | | +**succeeded** | **int** | | +**total** | **int** | | + +## Example + +```python +from revengai.models.bulk_create_users_output_body import BulkCreateUsersOutputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of BulkCreateUsersOutputBody from a JSON string +bulk_create_users_output_body_instance = BulkCreateUsersOutputBody.from_json(json) +# print the JSON string representation of the object +print(BulkCreateUsersOutputBody.to_json()) + +# convert the object into a dict +bulk_create_users_output_body_dict = bulk_create_users_output_body_instance.to_dict() +# create an instance of BulkCreateUsersOutputBody from a dict +bulk_create_users_output_body_from_dict = BulkCreateUsersOutputBody.from_dict(bulk_create_users_output_body_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/CreateGroupInputBody.md b/docs/CreateGroupInputBody.md new file mode 100644 index 0000000..1f4ce9c --- /dev/null +++ b/docs/CreateGroupInputBody.md @@ -0,0 +1,29 @@ +# CreateGroupInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Group name | + +## Example + +```python +from revengai.models.create_group_input_body import CreateGroupInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateGroupInputBody from a JSON string +create_group_input_body_instance = CreateGroupInputBody.from_json(json) +# print the JSON string representation of the object +print(CreateGroupInputBody.to_json()) + +# convert the object into a dict +create_group_input_body_dict = create_group_input_body_instance.to_dict() +# create an instance of CreateGroupInputBody from a dict +create_group_input_body_from_dict = CreateGroupInputBody.from_dict(create_group_input_body_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/CreateIdentityInputBody.md b/docs/CreateIdentityInputBody.md new file mode 100644 index 0000000..fb07ad8 --- /dev/null +++ b/docs/CreateIdentityInputBody.md @@ -0,0 +1,31 @@ +# CreateIdentityInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**issuer_url** | **str** | Issuer URL (must be trusted by this organisation) | +**subject** | **str** | External subject identifier from the issuer | +**user_id** | **int** | Internal user ID to link | + +## Example + +```python +from revengai.models.create_identity_input_body import CreateIdentityInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateIdentityInputBody from a JSON string +create_identity_input_body_instance = CreateIdentityInputBody.from_json(json) +# print the JSON string representation of the object +print(CreateIdentityInputBody.to_json()) + +# convert the object into a dict +create_identity_input_body_dict = create_identity_input_body_instance.to_dict() +# create an instance of CreateIdentityInputBody from a dict +create_identity_input_body_from_dict = CreateIdentityInputBody.from_dict(create_identity_input_body_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/CreateIssuerInputBody.md b/docs/CreateIssuerInputBody.md new file mode 100644 index 0000000..b9268b9 --- /dev/null +++ b/docs/CreateIssuerInputBody.md @@ -0,0 +1,30 @@ +# CreateIssuerInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**client_id** | **str** | OIDC client ID for audience validation (recommended) | [optional] +**issuer_url** | **str** | OIDC issuer URL to trust | + +## Example + +```python +from revengai.models.create_issuer_input_body import CreateIssuerInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateIssuerInputBody from a JSON string +create_issuer_input_body_instance = CreateIssuerInputBody.from_json(json) +# print the JSON string representation of the object +print(CreateIssuerInputBody.to_json()) + +# convert the object into a dict +create_issuer_input_body_dict = create_issuer_input_body_instance.to_dict() +# create an instance of CreateIssuerInputBody from a dict +create_issuer_input_body_from_dict = CreateIssuerInputBody.from_dict(create_issuer_input_body_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/CreateOrganisationInputBody.md b/docs/CreateOrganisationInputBody.md new file mode 100644 index 0000000..9536e95 --- /dev/null +++ b/docs/CreateOrganisationInputBody.md @@ -0,0 +1,29 @@ +# CreateOrganisationInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Organisation name | + +## Example + +```python +from revengai.models.create_organisation_input_body import CreateOrganisationInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateOrganisationInputBody from a JSON string +create_organisation_input_body_instance = CreateOrganisationInputBody.from_json(json) +# print the JSON string representation of the object +print(CreateOrganisationInputBody.to_json()) + +# convert the object into a dict +create_organisation_input_body_dict = create_organisation_input_body_instance.to_dict() +# create an instance of CreateOrganisationInputBody from a dict +create_organisation_input_body_from_dict = CreateOrganisationInputBody.from_dict(create_organisation_input_body_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/CreateTeamInputBody.md b/docs/CreateTeamInputBody.md new file mode 100644 index 0000000..aead183 --- /dev/null +++ b/docs/CreateTeamInputBody.md @@ -0,0 +1,29 @@ +# CreateTeamInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Team name | + +## Example + +```python +from revengai.models.create_team_input_body import CreateTeamInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateTeamInputBody from a JSON string +create_team_input_body_instance = CreateTeamInputBody.from_json(json) +# print the JSON string representation of the object +print(CreateTeamInputBody.to_json()) + +# convert the object into a dict +create_team_input_body_dict = create_team_input_body_instance.to_dict() +# create an instance of CreateTeamInputBody from a dict +create_team_input_body_from_dict = CreateTeamInputBody.from_dict(create_team_input_body_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/CreateUserInputBody.md b/docs/CreateUserInputBody.md new file mode 100644 index 0000000..cfc60a1 --- /dev/null +++ b/docs/CreateUserInputBody.md @@ -0,0 +1,37 @@ +# CreateUserInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**credits** | **int** | Initial credit balance in credits (1 credit = 1000 units); defaults to 10 credits | [optional] +**email** | **str** | Email address | +**first_name** | **str** | First name | [optional] +**last_name** | **str** | Last name | [optional] +**password** | **str** | Initial password | +**role** | **str** | User role (defaults to USER) | [optional] +**tier** | **str** | User tier (defaults to ENTHUSIAST) | [optional] +**time_zone** | **str** | IANA time zone | [optional] +**username** | **str** | Username | + +## Example + +```python +from revengai.models.create_user_input_body import CreateUserInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateUserInputBody from a JSON string +create_user_input_body_instance = CreateUserInputBody.from_json(json) +# print the JSON string representation of the object +print(CreateUserInputBody.to_json()) + +# convert the object into a dict +create_user_input_body_dict = create_user_input_body_instance.to_dict() +# create an instance of CreateUserInputBody from a dict +create_user_input_body_from_dict = CreateUserInputBody.from_dict(create_user_input_body_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/FormFile.md b/docs/FormFile.md new file mode 100644 index 0000000..85e8f75 --- /dev/null +++ b/docs/FormFile.md @@ -0,0 +1,32 @@ +# FormFile + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**content_type** | **str** | | +**filename** | **str** | | +**is_set** | **bool** | | +**size** | **int** | | + +## Example + +```python +from revengai.models.form_file import FormFile + +# TODO update the JSON string below +json = "{}" +# create an instance of FormFile from a JSON string +form_file_instance = FormFile.from_json(json) +# print the JSON string representation of the object +print(FormFile.to_json()) + +# convert the object into a dict +form_file_dict = form_file_instance.to_dict() +# create an instance of FormFile from a dict +form_file_from_dict = FormFile.from_dict(form_file_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/IAMUsersApi.md b/docs/IAMUsersApi.md new file mode 100644 index 0000000..9abb4fb --- /dev/null +++ b/docs/IAMUsersApi.md @@ -0,0 +1,89 @@ +# revengai.IAMUsersApi + +All URIs are relative to *https://api.reveng.ai* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**get_me**](IAMUsersApi.md#get_me) | **GET** /v2/iam/me | Get current user + + +# **get_me** +> User get_me() + +Get current user + +Returns the authenticated user's own information. + +**Error codes:** +- `404` [`NOT_FOUND`](/errors/NOT_FOUND) — Not Found + +### Example + +* Api Key Authentication (APIKey): + +```python +import revengai +from revengai.models.user import User +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' + +# 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.IAMUsersApi(api_client) + + try: + # Get current user + api_response = api_instance.get_me() + print("The response of IAMUsersApi->get_me:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling IAMUsersApi->get_me: %s\n" % e) +``` + + + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**User**](User.md) + +### Authorization + +[APIKey](../README.md#APIKey) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | +**404** | Not Found | - | +**500** | Internal Server Error | - | + +[[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) + diff --git a/docs/InviteUserInputBody.md b/docs/InviteUserInputBody.md new file mode 100644 index 0000000..b2a0ba2 --- /dev/null +++ b/docs/InviteUserInputBody.md @@ -0,0 +1,34 @@ +# InviteUserInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**credits** | **int** | Initial credit balance for the invited user in raw units (1 credit = 1000 units). | +**email** | **str** | Email address to invite | +**first_name** | **str** | First name included in the invite email and registration URL | +**last_name** | **str** | Last name pre-filled in the registration URL | [optional] +**team_id** | **int** | Team to assign the invited user to | [optional] +**username** | **str** | Username pre-filled in the registration URL | [optional] + +## Example + +```python +from revengai.models.invite_user_input_body import InviteUserInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of InviteUserInputBody from a JSON string +invite_user_input_body_instance = InviteUserInputBody.from_json(json) +# print the JSON string representation of the object +print(InviteUserInputBody.to_json()) + +# convert the object into a dict +invite_user_input_body_dict = invite_user_input_body_instance.to_dict() +# create an instance of InviteUserInputBody from a dict +invite_user_input_body_from_dict = InviteUserInputBody.from_dict(invite_user_input_body_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/IssuerAllowedDomain.md b/docs/IssuerAllowedDomain.md new file mode 100644 index 0000000..a7824da --- /dev/null +++ b/docs/IssuerAllowedDomain.md @@ -0,0 +1,34 @@ +# IssuerAllowedDomain + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**challenge_token** | **str** | DNS TXT challenge token. Add a TXT record at _reveng-verification.<domain> with this value. | [optional] +**created_at** | **datetime** | | +**domain** | **str** | Email domain (e.g. acme.com) | +**issuer_allowed_domain_id** | **int** | | +**organisation_issuer_id** | **int** | | +**verification_status** | **str** | Domain ownership verification status: PENDING, VERIFIED, or FAILED | + +## Example + +```python +from revengai.models.issuer_allowed_domain import IssuerAllowedDomain + +# TODO update the JSON string below +json = "{}" +# create an instance of IssuerAllowedDomain from a JSON string +issuer_allowed_domain_instance = IssuerAllowedDomain.from_json(json) +# print the JSON string representation of the object +print(IssuerAllowedDomain.to_json()) + +# convert the object into a dict +issuer_allowed_domain_dict = issuer_allowed_domain_instance.to_dict() +# create an instance of IssuerAllowedDomain from a dict +issuer_allowed_domain_from_dict = IssuerAllowedDomain.from_dict(issuer_allowed_domain_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/ListTeamsOutputBody.md b/docs/ListTeamsOutputBody.md new file mode 100644 index 0000000..b93d69e --- /dev/null +++ b/docs/ListTeamsOutputBody.md @@ -0,0 +1,30 @@ +# ListTeamsOutputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**teams** | [**List[Team]**](Team.md) | | +**total** | **int** | | + +## Example + +```python +from revengai.models.list_teams_output_body import ListTeamsOutputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of ListTeamsOutputBody from a JSON string +list_teams_output_body_instance = ListTeamsOutputBody.from_json(json) +# print the JSON string representation of the object +print(ListTeamsOutputBody.to_json()) + +# convert the object into a dict +list_teams_output_body_dict = list_teams_output_body_instance.to_dict() +# create an instance of ListTeamsOutputBody from a dict +list_teams_output_body_from_dict = ListTeamsOutputBody.from_dict(list_teams_output_body_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/ListUsersOutputBody.md b/docs/ListUsersOutputBody.md new file mode 100644 index 0000000..fe0ffbf --- /dev/null +++ b/docs/ListUsersOutputBody.md @@ -0,0 +1,30 @@ +# ListUsersOutputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**total** | **int** | | +**users** | [**List[User]**](User.md) | | + +## Example + +```python +from revengai.models.list_users_output_body import ListUsersOutputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of ListUsersOutputBody from a JSON string +list_users_output_body_instance = ListUsersOutputBody.from_json(json) +# print the JSON string representation of the object +print(ListUsersOutputBody.to_json()) + +# convert the object into a dict +list_users_output_body_dict = list_users_output_body_instance.to_dict() +# create an instance of ListUsersOutputBody from a dict +list_users_output_body_from_dict = ListUsersOutputBody.from_dict(list_users_output_body_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/LocationOutputBody.md b/docs/LocationOutputBody.md new file mode 100644 index 0000000..fe6acbf --- /dev/null +++ b/docs/LocationOutputBody.md @@ -0,0 +1,31 @@ +# LocationOutputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**country** | **str** | Country name | +**country_code** | **str** | ISO 3166-1 alpha-2 country code | +**currency** | **str** | Currency code for this location | + +## Example + +```python +from revengai.models.location_output_body import LocationOutputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of LocationOutputBody from a JSON string +location_output_body_instance = LocationOutputBody.from_json(json) +# print the JSON string representation of the object +print(LocationOutputBody.to_json()) + +# convert the object into a dict +location_output_body_dict = location_output_body_instance.to_dict() +# create an instance of LocationOutputBody from a dict +location_output_body_from_dict = LocationOutputBody.from_dict(location_output_body_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/MessageBody.md b/docs/MessageBody.md new file mode 100644 index 0000000..7418b4b --- /dev/null +++ b/docs/MessageBody.md @@ -0,0 +1,29 @@ +# MessageBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**message** | **str** | Human-readable status message | + +## Example + +```python +from revengai.models.message_body import MessageBody + +# TODO update the JSON string below +json = "{}" +# create an instance of MessageBody from a JSON string +message_body_instance = MessageBody.from_json(json) +# print the JSON string representation of the object +print(MessageBody.to_json()) + +# convert the object into a dict +message_body_dict = message_body_instance.to_dict() +# create an instance of MessageBody from a dict +message_body_from_dict = MessageBody.from_dict(message_body_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/OIDCCallbackInputBody.md b/docs/OIDCCallbackInputBody.md new file mode 100644 index 0000000..775d6c1 --- /dev/null +++ b/docs/OIDCCallbackInputBody.md @@ -0,0 +1,32 @@ +# OIDCCallbackInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **str** | Authorization code from the identity provider | +**code_verifier** | **str** | PKCE code verifier (the raw secret, not the challenge) | +**issuer** | **str** | OIDC issuer URL (as returned by the SSO providers endpoint) | +**redirect_uri** | **str** | Redirect URI used when initiating the authorization request; must match exactly | + +## Example + +```python +from revengai.models.oidc_callback_input_body import OIDCCallbackInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of OIDCCallbackInputBody from a JSON string +oidc_callback_input_body_instance = OIDCCallbackInputBody.from_json(json) +# print the JSON string representation of the object +print(OIDCCallbackInputBody.to_json()) + +# convert the object into a dict +oidc_callback_input_body_dict = oidc_callback_input_body_instance.to_dict() +# create an instance of OIDCCallbackInputBody from a dict +oidc_callback_input_body_from_dict = OIDCCallbackInputBody.from_dict(oidc_callback_input_body_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/Organisation.md b/docs/Organisation.md new file mode 100644 index 0000000..7d95e91 --- /dev/null +++ b/docs/Organisation.md @@ -0,0 +1,32 @@ +# Organisation + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**created_at** | **datetime** | | +**name** | **str** | | +**organisation_id** | **int** | | +**updated_at** | **datetime** | | + +## Example + +```python +from revengai.models.organisation import Organisation + +# TODO update the JSON string below +json = "{}" +# create an instance of Organisation from a JSON string +organisation_instance = Organisation.from_json(json) +# print the JSON string representation of the object +print(Organisation.to_json()) + +# convert the object into a dict +organisation_dict = organisation_instance.to_dict() +# create an instance of Organisation from a dict +organisation_from_dict = Organisation.from_dict(organisation_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/OrganisationGroup.md b/docs/OrganisationGroup.md new file mode 100644 index 0000000..bd216d9 --- /dev/null +++ b/docs/OrganisationGroup.md @@ -0,0 +1,34 @@ +# OrganisationGroup + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**created_at** | **datetime** | | +**name** | **str** | | +**organisation_group_id** | **int** | | +**organisation_id** | **int** | | +**team_id** | **int** | | +**updated_at** | **datetime** | | + +## Example + +```python +from revengai.models.organisation_group import OrganisationGroup + +# TODO update the JSON string below +json = "{}" +# create an instance of OrganisationGroup from a JSON string +organisation_group_instance = OrganisationGroup.from_json(json) +# print the JSON string representation of the object +print(OrganisationGroup.to_json()) + +# convert the object into a dict +organisation_group_dict = organisation_group_instance.to_dict() +# create an instance of OrganisationGroup from a dict +organisation_group_from_dict = OrganisationGroup.from_dict(organisation_group_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/OrganisationIssuer.md b/docs/OrganisationIssuer.md new file mode 100644 index 0000000..f713c49 --- /dev/null +++ b/docs/OrganisationIssuer.md @@ -0,0 +1,36 @@ +# OrganisationIssuer + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**client_id** | **str** | OIDC client ID registered with the identity provider. Used to validate the audience (aud) claim in JWTs. | [optional] +**created_at** | **datetime** | | +**enabled** | **bool** | | +**issuer_url** | **str** | | +**jwks_uri** | **str** | JSON Web Key Set URI discovered from the issuer's OIDC configuration. Populated automatically during issuer registration. | [optional] +**organisation_id** | **int** | | +**organisation_issuer_id** | **int** | | +**updated_at** | **datetime** | | + +## Example + +```python +from revengai.models.organisation_issuer import OrganisationIssuer + +# TODO update the JSON string below +json = "{}" +# create an instance of OrganisationIssuer from a JSON string +organisation_issuer_instance = OrganisationIssuer.from_json(json) +# print the JSON string representation of the object +print(OrganisationIssuer.to_json()) + +# convert the object into a dict +organisation_issuer_dict = organisation_issuer_instance.to_dict() +# create an instance of OrganisationIssuer from a dict +organisation_issuer_from_dict = OrganisationIssuer.from_dict(organisation_issuer_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/OrganisationOwner.md b/docs/OrganisationOwner.md new file mode 100644 index 0000000..43e650f --- /dev/null +++ b/docs/OrganisationOwner.md @@ -0,0 +1,32 @@ +# OrganisationOwner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**created_at** | **datetime** | | +**organisation_id** | **int** | | +**organisation_owner_id** | **int** | | +**user_id** | **int** | | + +## Example + +```python +from revengai.models.organisation_owner import OrganisationOwner + +# TODO update the JSON string below +json = "{}" +# create an instance of OrganisationOwner from a JSON string +organisation_owner_instance = OrganisationOwner.from_json(json) +# print the JSON string representation of the object +print(OrganisationOwner.to_json()) + +# convert the object into a dict +organisation_owner_dict = organisation_owner_instance.to_dict() +# create an instance of OrganisationOwner from a dict +organisation_owner_from_dict = OrganisationOwner.from_dict(organisation_owner_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/PasswordResetInputBody.md b/docs/PasswordResetInputBody.md new file mode 100644 index 0000000..31748a0 --- /dev/null +++ b/docs/PasswordResetInputBody.md @@ -0,0 +1,29 @@ +# PasswordResetInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**email** | **str** | Email address of the account whose password should be reset | + +## Example + +```python +from revengai.models.password_reset_input_body import PasswordResetInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of PasswordResetInputBody from a JSON string +password_reset_input_body_instance = PasswordResetInputBody.from_json(json) +# print the JSON string representation of the object +print(PasswordResetInputBody.to_json()) + +# convert the object into a dict +password_reset_input_body_dict = password_reset_input_body_instance.to_dict() +# create an instance of PasswordResetInputBody from a dict +password_reset_input_body_from_dict = PasswordResetInputBody.from_dict(password_reset_input_body_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/RefreshBody.md b/docs/RefreshBody.md new file mode 100644 index 0000000..a936c7e --- /dev/null +++ b/docs/RefreshBody.md @@ -0,0 +1,29 @@ +# RefreshBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**refresh_token** | **str** | The refresh token to rotate (falls back to refresh_token cookie if omitted) | [optional] + +## Example + +```python +from revengai.models.refresh_body import RefreshBody + +# TODO update the JSON string below +json = "{}" +# create an instance of RefreshBody from a JSON string +refresh_body_instance = RefreshBody.from_json(json) +# print the JSON string representation of the object +print(RefreshBody.to_json()) + +# convert the object into a dict +refresh_body_dict = refresh_body_instance.to_dict() +# create an instance of RefreshBody from a dict +refresh_body_from_dict = RefreshBody.from_dict(refresh_body_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/RegisterUserInputBody.md b/docs/RegisterUserInputBody.md new file mode 100644 index 0000000..d83d2c7 --- /dev/null +++ b/docs/RegisterUserInputBody.md @@ -0,0 +1,34 @@ +# RegisterUserInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**email** | **str** | Email address | +**first_name** | **str** | First name | +**invite_code** | **str** | Invite code from the registration email | [optional] +**last_name** | **str** | Last name | +**password** | **str** | Password (minimum 10 characters) | +**username** | **str** | Username | + +## Example + +```python +from revengai.models.register_user_input_body import RegisterUserInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of RegisterUserInputBody from a JSON string +register_user_input_body_instance = RegisterUserInputBody.from_json(json) +# print the JSON string representation of the object +print(RegisterUserInputBody.to_json()) + +# convert the object into a dict +register_user_input_body_dict = register_user_input_body_instance.to_dict() +# create an instance of RegisterUserInputBody from a dict +register_user_input_body_from_dict = RegisterUserInputBody.from_dict(register_user_input_body_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/RevokeBody.md b/docs/RevokeBody.md new file mode 100644 index 0000000..797d0f7 --- /dev/null +++ b/docs/RevokeBody.md @@ -0,0 +1,29 @@ +# RevokeBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**refresh_token** | **str** | The refresh token to revoke (falls back to refresh_token cookie if omitted) | [optional] + +## Example + +```python +from revengai.models.revoke_body import RevokeBody + +# TODO update the JSON string below +json = "{}" +# create an instance of RevokeBody from a JSON string +revoke_body_instance = RevokeBody.from_json(json) +# print the JSON string representation of the object +print(RevokeBody.to_json()) + +# convert the object into a dict +revoke_body_dict = revoke_body_instance.to_dict() +# create an instance of RevokeBody from a dict +revoke_body_from_dict = RevokeBody.from_dict(revoke_body_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/SSOProvider.md b/docs/SSOProvider.md new file mode 100644 index 0000000..689e760 --- /dev/null +++ b/docs/SSOProvider.md @@ -0,0 +1,30 @@ +# SSOProvider + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**auth_url** | **str** | Base authorization URL. Append code_challenge, code_challenge_method, redirect_uri, and state query parameters to complete the PKCE flow. | +**issuer** | **str** | Issuer URL of the identity provider. Pass this value as the issuer field in the SSO callback request. | + +## Example + +```python +from revengai.models.sso_provider import SSOProvider + +# TODO update the JSON string below +json = "{}" +# create an instance of SSOProvider from a JSON string +sso_provider_instance = SSOProvider.from_json(json) +# print the JSON string representation of the object +print(SSOProvider.to_json()) + +# convert the object into a dict +sso_provider_dict = sso_provider_instance.to_dict() +# create an instance of SSOProvider from a dict +sso_provider_from_dict = SSOProvider.from_dict(sso_provider_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/SSOProvidersOutputBody.md b/docs/SSOProvidersOutputBody.md new file mode 100644 index 0000000..93b1882 --- /dev/null +++ b/docs/SSOProvidersOutputBody.md @@ -0,0 +1,29 @@ +# SSOProvidersOutputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**providers** | [**List[SSOProvider]**](SSOProvider.md) | | + +## Example + +```python +from revengai.models.sso_providers_output_body import SSOProvidersOutputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of SSOProvidersOutputBody from a JSON string +sso_providers_output_body_instance = SSOProvidersOutputBody.from_json(json) +# print the JSON string representation of the object +print(SSOProvidersOutputBody.to_json()) + +# convert the object into a dict +sso_providers_output_body_dict = sso_providers_output_body_instance.to_dict() +# create an instance of SSOProvidersOutputBody from a dict +sso_providers_output_body_from_dict = SSOProvidersOutputBody.from_dict(sso_providers_output_body_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/Team.md b/docs/Team.md new file mode 100644 index 0000000..4e69ab6 --- /dev/null +++ b/docs/Team.md @@ -0,0 +1,32 @@ +# Team + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**organisation_id** | **int** | Organisation this team belongs to, if any | [optional] +**plan** | **str** | | +**team_id** | **int** | | +**team_name** | **str** | | + +## Example + +```python +from revengai.models.team import Team + +# TODO update the JSON string below +json = "{}" +# create an instance of Team from a JSON string +team_instance = Team.from_json(json) +# print the JSON string representation of the object +print(Team.to_json()) + +# convert the object into a dict +team_dict = team_instance.to_dict() +# create an instance of Team from a dict +team_from_dict = Team.from_dict(team_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/TeamMember.md b/docs/TeamMember.md new file mode 100644 index 0000000..1b7dd0d --- /dev/null +++ b/docs/TeamMember.md @@ -0,0 +1,33 @@ +# TeamMember + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**email** | **str** | | +**is_admin** | **bool** | | +**role** | **str** | | +**user_id** | **int** | | +**username** | **str** | | + +## Example + +```python +from revengai.models.team_member import TeamMember + +# TODO update the JSON string below +json = "{}" +# create an instance of TeamMember from a JSON string +team_member_instance = TeamMember.from_json(json) +# print the JSON string representation of the object +print(TeamMember.to_json()) + +# convert the object into a dict +team_member_dict = team_member_instance.to_dict() +# create an instance of TeamMember from a dict +team_member_from_dict = TeamMember.from_dict(team_member_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/TokenInputBody.md b/docs/TokenInputBody.md new file mode 100644 index 0000000..c1cd5a9 --- /dev/null +++ b/docs/TokenInputBody.md @@ -0,0 +1,32 @@ +# TokenInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_key** | **str** | API key to exchange for a JWT | [optional] +**email** | **str** | User email address (required with password) | [optional] +**password** | **str** | User password (required with email or username) | [optional] +**username** | **str** | Username (alternative to email, required with password) | [optional] + +## Example + +```python +from revengai.models.token_input_body import TokenInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of TokenInputBody from a JSON string +token_input_body_instance = TokenInputBody.from_json(json) +# print the JSON string representation of the object +print(TokenInputBody.to_json()) + +# convert the object into a dict +token_input_body_dict = token_input_body_instance.to_dict() +# create an instance of TokenInputBody from a dict +token_input_body_from_dict = TokenInputBody.from_dict(token_input_body_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/TokenResponse.md b/docs/TokenResponse.md new file mode 100644 index 0000000..1cb07d4 --- /dev/null +++ b/docs/TokenResponse.md @@ -0,0 +1,32 @@ +# TokenResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**access_token** | **str** | Signed JWT access token | +**expires_in** | **int** | Access token lifetime in seconds | +**refresh_token** | **str** | Opaque refresh token for obtaining new access tokens | +**token_type** | **str** | Token type (always Bearer) | + +## Example + +```python +from revengai.models.token_response import TokenResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of TokenResponse from a JSON string +token_response_instance = TokenResponse.from_json(json) +# print the JSON string representation of the object +print(TokenResponse.to_json()) + +# convert the object into a dict +token_response_dict = token_response_instance.to_dict() +# create an instance of TokenResponse from a dict +token_response_from_dict = TokenResponse.from_dict(token_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/UpdateIssuerInputBody.md b/docs/UpdateIssuerInputBody.md new file mode 100644 index 0000000..0bb4976 --- /dev/null +++ b/docs/UpdateIssuerInputBody.md @@ -0,0 +1,29 @@ +# UpdateIssuerInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**enabled** | **bool** | Whether the issuer is enabled | + +## Example + +```python +from revengai.models.update_issuer_input_body import UpdateIssuerInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateIssuerInputBody from a JSON string +update_issuer_input_body_instance = UpdateIssuerInputBody.from_json(json) +# print the JSON string representation of the object +print(UpdateIssuerInputBody.to_json()) + +# convert the object into a dict +update_issuer_input_body_dict = update_issuer_input_body_instance.to_dict() +# create an instance of UpdateIssuerInputBody from a dict +update_issuer_input_body_from_dict = UpdateIssuerInputBody.from_dict(update_issuer_input_body_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/UpdateOrganisationInputBody.md b/docs/UpdateOrganisationInputBody.md new file mode 100644 index 0000000..316c45c --- /dev/null +++ b/docs/UpdateOrganisationInputBody.md @@ -0,0 +1,29 @@ +# UpdateOrganisationInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | New organisation name | + +## Example + +```python +from revengai.models.update_organisation_input_body import UpdateOrganisationInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateOrganisationInputBody from a JSON string +update_organisation_input_body_instance = UpdateOrganisationInputBody.from_json(json) +# print the JSON string representation of the object +print(UpdateOrganisationInputBody.to_json()) + +# convert the object into a dict +update_organisation_input_body_dict = update_organisation_input_body_instance.to_dict() +# create an instance of UpdateOrganisationInputBody from a dict +update_organisation_input_body_from_dict = UpdateOrganisationInputBody.from_dict(update_organisation_input_body_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/UpdatePasswordInputBody.md b/docs/UpdatePasswordInputBody.md new file mode 100644 index 0000000..a0c75db --- /dev/null +++ b/docs/UpdatePasswordInputBody.md @@ -0,0 +1,30 @@ +# UpdatePasswordInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **str** | Password reset code received by email | +**password** | **str** | New password (minimum 10 characters) | + +## Example + +```python +from revengai.models.update_password_input_body import UpdatePasswordInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdatePasswordInputBody from a JSON string +update_password_input_body_instance = UpdatePasswordInputBody.from_json(json) +# print the JSON string representation of the object +print(UpdatePasswordInputBody.to_json()) + +# convert the object into a dict +update_password_input_body_dict = update_password_input_body_instance.to_dict() +# create an instance of UpdatePasswordInputBody from a dict +update_password_input_body_from_dict = UpdatePasswordInputBody.from_dict(update_password_input_body_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/UpdateProfileInputBody.md b/docs/UpdateProfileInputBody.md new file mode 100644 index 0000000..939f63f --- /dev/null +++ b/docs/UpdateProfileInputBody.md @@ -0,0 +1,33 @@ +# UpdateProfileInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**default_team_id** | **int** | Default team ID | [optional] +**first_name** | **str** | First name | [optional] +**last_name** | **str** | Last name | [optional] +**time_zone** | **str** | IANA time zone | [optional] +**username** | **str** | Username | [optional] + +## Example + +```python +from revengai.models.update_profile_input_body import UpdateProfileInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateProfileInputBody from a JSON string +update_profile_input_body_instance = UpdateProfileInputBody.from_json(json) +# print the JSON string representation of the object +print(UpdateProfileInputBody.to_json()) + +# convert the object into a dict +update_profile_input_body_dict = update_profile_input_body_instance.to_dict() +# create an instance of UpdateProfileInputBody from a dict +update_profile_input_body_from_dict = UpdateProfileInputBody.from_dict(update_profile_input_body_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/UpdateTeamInputBody.md b/docs/UpdateTeamInputBody.md new file mode 100644 index 0000000..04efc0f --- /dev/null +++ b/docs/UpdateTeamInputBody.md @@ -0,0 +1,29 @@ +# UpdateTeamInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**team_name** | **str** | Team name | [optional] + +## Example + +```python +from revengai.models.update_team_input_body import UpdateTeamInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateTeamInputBody from a JSON string +update_team_input_body_instance = UpdateTeamInputBody.from_json(json) +# print the JSON string representation of the object +print(UpdateTeamInputBody.to_json()) + +# convert the object into a dict +update_team_input_body_dict = update_team_input_body_instance.to_dict() +# create an instance of UpdateTeamInputBody from a dict +update_team_input_body_from_dict = UpdateTeamInputBody.from_dict(update_team_input_body_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/UpdateUserCreditsInputBody.md b/docs/UpdateUserCreditsInputBody.md new file mode 100644 index 0000000..fdfcf3a --- /dev/null +++ b/docs/UpdateUserCreditsInputBody.md @@ -0,0 +1,29 @@ +# UpdateUserCreditsInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**credits** | **int** | Credit balance to set | + +## Example + +```python +from revengai.models.update_user_credits_input_body import UpdateUserCreditsInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateUserCreditsInputBody from a JSON string +update_user_credits_input_body_instance = UpdateUserCreditsInputBody.from_json(json) +# print the JSON string representation of the object +print(UpdateUserCreditsInputBody.to_json()) + +# convert the object into a dict +update_user_credits_input_body_dict = update_user_credits_input_body_instance.to_dict() +# create an instance of UpdateUserCreditsInputBody from a dict +update_user_credits_input_body_from_dict = UpdateUserCreditsInputBody.from_dict(update_user_credits_input_body_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/UpdateUserInputBody.md b/docs/UpdateUserInputBody.md new file mode 100644 index 0000000..d88044b --- /dev/null +++ b/docs/UpdateUserInputBody.md @@ -0,0 +1,35 @@ +# UpdateUserInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**email** | **str** | Email address | [optional] +**first_name** | **str** | First name | [optional] +**last_name** | **str** | Last name | [optional] +**role** | **str** | User role (SUPERADMIN only) | [optional] +**tier** | **str** | User tier (SUPERADMIN only) | [optional] +**time_zone** | **str** | IANA time zone | [optional] +**username** | **str** | Username | [optional] + +## Example + +```python +from revengai.models.update_user_input_body import UpdateUserInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateUserInputBody from a JSON string +update_user_input_body_instance = UpdateUserInputBody.from_json(json) +# print the JSON string representation of the object +print(UpdateUserInputBody.to_json()) + +# convert the object into a dict +update_user_input_body_dict = update_user_input_body_instance.to_dict() +# create an instance of UpdateUserInputBody from a dict +update_user_input_body_from_dict = UpdateUserInputBody.from_dict(update_user_input_body_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/UpdateUserPasswordInputBody.md b/docs/UpdateUserPasswordInputBody.md new file mode 100644 index 0000000..b715098 --- /dev/null +++ b/docs/UpdateUserPasswordInputBody.md @@ -0,0 +1,30 @@ +# UpdateUserPasswordInputBody + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**current_password** | **str** | Current password (required when changing your own password; ignored for SUPERADMIN updates of other users) | [optional] +**new_password** | **str** | New password (minimum 10 characters) | + +## Example + +```python +from revengai.models.update_user_password_input_body import UpdateUserPasswordInputBody + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateUserPasswordInputBody from a JSON string +update_user_password_input_body_instance = UpdateUserPasswordInputBody.from_json(json) +# print the JSON string representation of the object +print(UpdateUserPasswordInputBody.to_json()) + +# convert the object into a dict +update_user_password_input_body_dict = update_user_password_input_body_instance.to_dict() +# create an instance of UpdateUserPasswordInputBody from a dict +update_user_password_input_body_from_dict = UpdateUserPasswordInputBody.from_dict(update_user_password_input_body_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/User.md b/docs/User.md new file mode 100644 index 0000000..8c386b9 --- /dev/null +++ b/docs/User.md @@ -0,0 +1,34 @@ +# User + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**created_at** | **datetime** | | [optional] +**email** | **str** | | +**profile** | [**UserProfile**](UserProfile.md) | | +**role** | **str** | | +**tier** | **str** | | [optional] +**user_id** | **int** | | + +## Example + +```python +from revengai.models.user import User + +# TODO update the JSON string below +json = "{}" +# create an instance of User from a JSON string +user_instance = User.from_json(json) +# print the JSON string representation of the object +print(User.to_json()) + +# convert the object into a dict +user_dict = user_instance.to_dict() +# create an instance of User from a dict +user_from_dict = User.from_dict(user_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/UserCredits.md b/docs/UserCredits.md new file mode 100644 index 0000000..a917084 --- /dev/null +++ b/docs/UserCredits.md @@ -0,0 +1,32 @@ +# UserCredits + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**created_at** | **datetime** | | [optional] +**credits** | **int** | | +**updated_at** | **datetime** | | [optional] +**user_id** | **int** | | + +## Example + +```python +from revengai.models.user_credits import UserCredits + +# TODO update the JSON string below +json = "{}" +# create an instance of UserCredits from a JSON string +user_credits_instance = UserCredits.from_json(json) +# print the JSON string representation of the object +print(UserCredits.to_json()) + +# convert the object into a dict +user_credits_dict = user_credits_instance.to_dict() +# create an instance of UserCredits from a dict +user_credits_from_dict = UserCredits.from_dict(user_credits_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/UserIdentity.md b/docs/UserIdentity.md new file mode 100644 index 0000000..d2a0c79 --- /dev/null +++ b/docs/UserIdentity.md @@ -0,0 +1,34 @@ +# UserIdentity + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**created_at** | **datetime** | | +**issuer_url** | **str** | | +**subject** | **str** | | +**updated_at** | **datetime** | | +**user_id** | **int** | | +**user_identity_id** | **int** | | + +## Example + +```python +from revengai.models.user_identity import UserIdentity + +# TODO update the JSON string below +json = "{}" +# create an instance of UserIdentity from a JSON string +user_identity_instance = UserIdentity.from_json(json) +# print the JSON string representation of the object +print(UserIdentity.to_json()) + +# convert the object into a dict +user_identity_dict = user_identity_instance.to_dict() +# create an instance of UserIdentity from a dict +user_identity_from_dict = UserIdentity.from_dict(user_identity_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/UserProfile.md b/docs/UserProfile.md new file mode 100644 index 0000000..20e43b4 --- /dev/null +++ b/docs/UserProfile.md @@ -0,0 +1,33 @@ +# UserProfile + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**default_team_id** | **int** | | [optional] +**first_name** | **str** | | +**last_name** | **str** | | +**time_zone** | **str** | | +**username** | **str** | | + +## Example + +```python +from revengai.models.user_profile import UserProfile + +# TODO update the JSON string below +json = "{}" +# create an instance of UserProfile from a JSON string +user_profile_instance = UserProfile.from_json(json) +# print the JSON string representation of the object +print(UserProfile.to_json()) + +# convert the object into a dict +user_profile_dict = user_profile_instance.to_dict() +# create an instance of UserProfile from a dict +user_profile_from_dict = UserProfile.from_dict(user_profile_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 4e6d25f..67f5278 100644 --- a/revengai/__init__.py +++ b/revengai/__init__.py @@ -34,6 +34,7 @@ "FunctionsCoreApi", "FunctionsDataTypesApi", "FunctionsRenamingHistoryApi", + "IAMUsersApi", "ModelsApi", "ReportsApi", "SearchApi", @@ -51,6 +52,9 @@ "AIDecompInverseStringMapItem", "APIError", "AddCalleeInputBody", + "AddIssuerDomainInputBody", + "AddOwnerInputBody", + "AddTeamMemberInputBody", "AddUserStringInputBody", "AddUserStringToFunctionInputBody", "AdditionalDetailsStatusResponse", @@ -184,6 +188,8 @@ "BinarySearchResponse", "BinarySearchResult", "BinaryTaskStatus", + "BulkCreateUserResult", + "BulkCreateUsersOutputBody", "BulkDeleteAnalysesRequest", "CallEdge", "CallEdgesOutputBody", @@ -227,7 +233,13 @@ "CreateCollectionInputBody", "CreateCollectionOutputBody", "CreateConversationRequest", + "CreateGroupInputBody", + "CreateIdentityInputBody", + "CreateIssuerInputBody", + "CreateOrganisationInputBody", "CreatePortalSessionInputBody", + "CreateTeamInputBody", + "CreateUserInputBody", "Created", "DataTypesEntry", "DecompFailedEvent", @@ -286,6 +298,7 @@ "FileHashes", "FileMetadata", "Filters", + "FormFile", "FunctionArgument", "FunctionBlockDestinationResponse", "FunctionBlockResponse", @@ -346,6 +359,8 @@ "ImportModel", "InlineComment", "InsertAnalysisLogRequest", + "InviteUserInputBody", + "IssuerAllowedDomain", "ListAnalysisFunctionsDataTypesOutputBody", "ListAnalysisFunctionsOutputBody", "ListAnalysisStringsOutputBody", @@ -353,12 +368,16 @@ "ListCollectionsOutputBody", "ListFunctionStringsOutputBody", "ListFunctionsDataTypesOutputBody", + "ListTeamsOutputBody", + "ListUsersOutputBody", + "LocationOutputBody", "Logs", "MITRETechnique", "MatchFilters", "MatchedFunction", "MatchedFunctionSuggestion", "MemdumpEntry", + "MessageBody", "MetaModel", "ModelName", "ModelsResponse", @@ -367,11 +386,17 @@ "NameConfidence", "NameSourceType", "NetworkActivity", + "OIDCCallbackInputBody", "Order", + "Organisation", + "OrganisationGroup", + "OrganisationIssuer", + "OrganisationOwner", "PDBDebugModel", "PEModel", "PaginationModel", "Params", + "PasswordResetInputBody", "PatchCollectionBinariesInputBody", "PatchCollectionBinariesOutputBody", "PatchCollectionInputBody", @@ -395,7 +420,9 @@ "QueuedWorkflowTaskResponse", "ReAnalysisForm", "Recent", + "RefreshBody", "RegenerateOutputBody", + "RegisterUserInputBody", "RegistryOperation", "RelativeBinaryResponse", "RenameAppliedEvent", @@ -406,8 +433,11 @@ "ReportEvent", "ReportInfo", "ReportOptions", + "RevokeBody", "SBOM", "SBOMPackage", + "SSOProvider", + "SSOProvidersOutputBody", "SandboxOptions", "SandboxStartMethod", "SandboxTimeout", @@ -468,7 +498,11 @@ "TaskStatus", "TaskStatusResponse", "TcpCarvedFile", + "Team", + "TeamMember", "TimestampModel", + "TokenInputBody", + "TokenResponse", "TokenisedData", "TriageFunctionResponse", "TriageReportResponse", @@ -477,12 +511,24 @@ "TypeDefinition", "UpdateDataTypesInputBody", "UpdateDataTypesOutputBody", + "UpdateIssuerInputBody", + "UpdateOrganisationInputBody", + "UpdatePasswordInputBody", + "UpdateProfileInputBody", + "UpdateTeamInputBody", + "UpdateUserCreditsInputBody", + "UpdateUserInputBody", + "UpdateUserPasswordInputBody", "UploadFileType", "UploadResponse", "UpsertAiDecomplationRatingRequest", "UpsertOverridesData", "UpsertOverridesInputBody", + "User", "UserActivityResponse", + "UserCredits", + "UserIdentity", + "UserProfile", "Vulnerabilities", "Vulnerability", "WarningEvent", @@ -511,6 +557,7 @@ from revengai.api.functions_core_api import FunctionsCoreApi as FunctionsCoreApi from revengai.api.functions_data_types_api import FunctionsDataTypesApi as FunctionsDataTypesApi from revengai.api.functions_renaming_history_api import FunctionsRenamingHistoryApi as FunctionsRenamingHistoryApi +from revengai.api.iam_users_api import IAMUsersApi as IAMUsersApi from revengai.api.models_api import ModelsApi as ModelsApi from revengai.api.reports_api import ReportsApi as ReportsApi from revengai.api.search_api import SearchApi as SearchApi @@ -532,6 +579,9 @@ from revengai.models.ai_decomp_inverse_string_map_item import AIDecompInverseStringMapItem as AIDecompInverseStringMapItem from revengai.models.api_error import APIError as APIError from revengai.models.add_callee_input_body import AddCalleeInputBody as AddCalleeInputBody +from revengai.models.add_issuer_domain_input_body import AddIssuerDomainInputBody as AddIssuerDomainInputBody +from revengai.models.add_owner_input_body import AddOwnerInputBody as AddOwnerInputBody +from revengai.models.add_team_member_input_body import AddTeamMemberInputBody as AddTeamMemberInputBody from revengai.models.add_user_string_input_body import AddUserStringInputBody as AddUserStringInputBody from revengai.models.add_user_string_to_function_input_body import AddUserStringToFunctionInputBody as AddUserStringToFunctionInputBody from revengai.models.additional_details_status_response import AdditionalDetailsStatusResponse as AdditionalDetailsStatusResponse @@ -665,6 +715,8 @@ from revengai.models.binary_search_response import BinarySearchResponse as BinarySearchResponse from revengai.models.binary_search_result import BinarySearchResult as BinarySearchResult from revengai.models.binary_task_status import BinaryTaskStatus as BinaryTaskStatus +from revengai.models.bulk_create_user_result import BulkCreateUserResult as BulkCreateUserResult +from revengai.models.bulk_create_users_output_body import BulkCreateUsersOutputBody as BulkCreateUsersOutputBody from revengai.models.bulk_delete_analyses_request import BulkDeleteAnalysesRequest as BulkDeleteAnalysesRequest from revengai.models.call_edge import CallEdge as CallEdge from revengai.models.call_edges_output_body import CallEdgesOutputBody as CallEdgesOutputBody @@ -708,7 +760,13 @@ from revengai.models.create_collection_input_body import CreateCollectionInputBody as CreateCollectionInputBody from revengai.models.create_collection_output_body import CreateCollectionOutputBody as CreateCollectionOutputBody from revengai.models.create_conversation_request import CreateConversationRequest as CreateConversationRequest +from revengai.models.create_group_input_body import CreateGroupInputBody as CreateGroupInputBody +from revengai.models.create_identity_input_body import CreateIdentityInputBody as CreateIdentityInputBody +from revengai.models.create_issuer_input_body import CreateIssuerInputBody as CreateIssuerInputBody +from revengai.models.create_organisation_input_body import CreateOrganisationInputBody as CreateOrganisationInputBody from revengai.models.create_portal_session_input_body import CreatePortalSessionInputBody as CreatePortalSessionInputBody +from revengai.models.create_team_input_body import CreateTeamInputBody as CreateTeamInputBody +from revengai.models.create_user_input_body import CreateUserInputBody as CreateUserInputBody from revengai.models.created import Created as Created from revengai.models.data_types_entry import DataTypesEntry as DataTypesEntry from revengai.models.decomp_failed_event import DecompFailedEvent as DecompFailedEvent @@ -767,6 +825,7 @@ from revengai.models.file_hashes import FileHashes as FileHashes from revengai.models.file_metadata import FileMetadata as FileMetadata from revengai.models.filters import Filters as Filters +from revengai.models.form_file import FormFile as FormFile from revengai.models.function_argument import FunctionArgument as FunctionArgument from revengai.models.function_block_destination_response import FunctionBlockDestinationResponse as FunctionBlockDestinationResponse from revengai.models.function_block_response import FunctionBlockResponse as FunctionBlockResponse @@ -827,6 +886,8 @@ from revengai.models.import_model import ImportModel as ImportModel from revengai.models.inline_comment import InlineComment as InlineComment from revengai.models.insert_analysis_log_request import InsertAnalysisLogRequest as InsertAnalysisLogRequest +from revengai.models.invite_user_input_body import InviteUserInputBody as InviteUserInputBody +from revengai.models.issuer_allowed_domain import IssuerAllowedDomain as IssuerAllowedDomain from revengai.models.list_analysis_functions_data_types_output_body import ListAnalysisFunctionsDataTypesOutputBody as ListAnalysisFunctionsDataTypesOutputBody from revengai.models.list_analysis_functions_output_body import ListAnalysisFunctionsOutputBody as ListAnalysisFunctionsOutputBody from revengai.models.list_analysis_strings_output_body import ListAnalysisStringsOutputBody as ListAnalysisStringsOutputBody @@ -834,12 +895,16 @@ from revengai.models.list_collections_output_body import ListCollectionsOutputBody as ListCollectionsOutputBody from revengai.models.list_function_strings_output_body import ListFunctionStringsOutputBody as ListFunctionStringsOutputBody from revengai.models.list_functions_data_types_output_body import ListFunctionsDataTypesOutputBody as ListFunctionsDataTypesOutputBody +from revengai.models.list_teams_output_body import ListTeamsOutputBody as ListTeamsOutputBody +from revengai.models.list_users_output_body import ListUsersOutputBody as ListUsersOutputBody +from revengai.models.location_output_body import LocationOutputBody as LocationOutputBody from revengai.models.logs import Logs as Logs from revengai.models.mitre_technique import MITRETechnique as MITRETechnique from revengai.models.match_filters import MatchFilters as MatchFilters from revengai.models.matched_function import MatchedFunction as MatchedFunction from revengai.models.matched_function_suggestion import MatchedFunctionSuggestion as MatchedFunctionSuggestion from revengai.models.memdump_entry import MemdumpEntry as MemdumpEntry +from revengai.models.message_body import MessageBody as MessageBody from revengai.models.meta_model import MetaModel as MetaModel from revengai.models.model_name import ModelName as ModelName from revengai.models.models_response import ModelsResponse as ModelsResponse @@ -848,11 +913,17 @@ from revengai.models.name_confidence import NameConfidence as NameConfidence from revengai.models.name_source_type import NameSourceType as NameSourceType from revengai.models.network_activity import NetworkActivity as NetworkActivity +from revengai.models.oidc_callback_input_body import OIDCCallbackInputBody as OIDCCallbackInputBody from revengai.models.order import Order as Order +from revengai.models.organisation import Organisation as Organisation +from revengai.models.organisation_group import OrganisationGroup as OrganisationGroup +from revengai.models.organisation_issuer import OrganisationIssuer as OrganisationIssuer +from revengai.models.organisation_owner import OrganisationOwner as OrganisationOwner from revengai.models.pdb_debug_model import PDBDebugModel as PDBDebugModel from revengai.models.pe_model import PEModel as PEModel from revengai.models.pagination_model import PaginationModel as PaginationModel from revengai.models.params import Params as Params +from revengai.models.password_reset_input_body import PasswordResetInputBody as PasswordResetInputBody from revengai.models.patch_collection_binaries_input_body import PatchCollectionBinariesInputBody as PatchCollectionBinariesInputBody from revengai.models.patch_collection_binaries_output_body import PatchCollectionBinariesOutputBody as PatchCollectionBinariesOutputBody from revengai.models.patch_collection_input_body import PatchCollectionInputBody as PatchCollectionInputBody @@ -876,7 +947,9 @@ 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.refresh_body import RefreshBody as RefreshBody from revengai.models.regenerate_output_body import RegenerateOutputBody as RegenerateOutputBody +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.rename_applied_event import RenameAppliedEvent as RenameAppliedEvent @@ -887,8 +960,11 @@ from revengai.models.report_event import ReportEvent as ReportEvent from revengai.models.report_info import ReportInfo as ReportInfo from revengai.models.report_options import ReportOptions as ReportOptions +from revengai.models.revoke_body import RevokeBody as RevokeBody from revengai.models.sbom import SBOM as SBOM from revengai.models.sbom_package import SBOMPackage as SBOMPackage +from revengai.models.sso_provider import SSOProvider as SSOProvider +from revengai.models.sso_providers_output_body import SSOProvidersOutputBody as SSOProvidersOutputBody from revengai.models.sandbox_options import SandboxOptions as SandboxOptions from revengai.models.sandbox_start_method import SandboxStartMethod as SandboxStartMethod from revengai.models.sandbox_timeout import SandboxTimeout as SandboxTimeout @@ -949,7 +1025,11 @@ from revengai.models.task_status import TaskStatus as TaskStatus from revengai.models.task_status_response import TaskStatusResponse as TaskStatusResponse from revengai.models.tcp_carved_file import TcpCarvedFile as TcpCarvedFile +from revengai.models.team import Team as Team +from revengai.models.team_member import TeamMember as TeamMember from revengai.models.timestamp_model import TimestampModel as TimestampModel +from revengai.models.token_input_body import TokenInputBody as TokenInputBody +from revengai.models.token_response import TokenResponse as TokenResponse from revengai.models.tokenised_data import TokenisedData as TokenisedData from revengai.models.triage_function_response import TriageFunctionResponse as TriageFunctionResponse from revengai.models.triage_report_response import TriageReportResponse as TriageReportResponse @@ -958,12 +1038,24 @@ from revengai.models.type_definition import TypeDefinition as TypeDefinition from revengai.models.update_data_types_input_body import UpdateDataTypesInputBody as UpdateDataTypesInputBody from revengai.models.update_data_types_output_body import UpdateDataTypesOutputBody as UpdateDataTypesOutputBody +from revengai.models.update_issuer_input_body import UpdateIssuerInputBody as UpdateIssuerInputBody +from revengai.models.update_organisation_input_body import UpdateOrganisationInputBody as UpdateOrganisationInputBody +from revengai.models.update_password_input_body import UpdatePasswordInputBody as UpdatePasswordInputBody +from revengai.models.update_profile_input_body import UpdateProfileInputBody as UpdateProfileInputBody +from revengai.models.update_team_input_body import UpdateTeamInputBody as UpdateTeamInputBody +from revengai.models.update_user_credits_input_body import UpdateUserCreditsInputBody as UpdateUserCreditsInputBody +from revengai.models.update_user_input_body import UpdateUserInputBody as UpdateUserInputBody +from revengai.models.update_user_password_input_body import UpdateUserPasswordInputBody as UpdateUserPasswordInputBody from revengai.models.upload_file_type import UploadFileType as UploadFileType from revengai.models.upload_response import UploadResponse as UploadResponse from revengai.models.upsert_ai_decomplation_rating_request import UpsertAiDecomplationRatingRequest as UpsertAiDecomplationRatingRequest from revengai.models.upsert_overrides_data import UpsertOverridesData as UpsertOverridesData from revengai.models.upsert_overrides_input_body import UpsertOverridesInputBody as UpsertOverridesInputBody +from revengai.models.user import User as User from revengai.models.user_activity_response import UserActivityResponse as UserActivityResponse +from revengai.models.user_credits import UserCredits as UserCredits +from revengai.models.user_identity import UserIdentity as UserIdentity +from revengai.models.user_profile import UserProfile as UserProfile from revengai.models.vulnerabilities import Vulnerabilities as Vulnerabilities from revengai.models.vulnerability import Vulnerability as Vulnerability from revengai.models.warning_event import WarningEvent as WarningEvent diff --git a/revengai/api/__init__.py b/revengai/api/__init__.py index 2367c64..548ecbd 100644 --- a/revengai/api/__init__.py +++ b/revengai/api/__init__.py @@ -18,6 +18,7 @@ from revengai.api.functions_core_api import FunctionsCoreApi from revengai.api.functions_data_types_api import FunctionsDataTypesApi from revengai.api.functions_renaming_history_api import FunctionsRenamingHistoryApi +from revengai.api.iam_users_api import IAMUsersApi from revengai.api.models_api import ModelsApi from revengai.api.reports_api import ReportsApi from revengai.api.search_api import SearchApi diff --git a/revengai/api/iam_users_api.py b/revengai/api/iam_users_api.py new file mode 100644 index 0000000..36f6235 --- /dev/null +++ b/revengai/api/iam_users_api.py @@ -0,0 +1,287 @@ +# 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 warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from revengai.models.user import User + +from revengai.api_client import ApiClient, RequestSerialized +from revengai.api_response import ApiResponse +from revengai.rest import RESTResponseType + + +class IAMUsersApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def get_me( + self, + _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, + ) -> User: + """Get current user + + Returns the authenticated user's own information. **Error codes:** - `404` [`NOT_FOUND`](/errors/NOT_FOUND) — Not Found + + :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_me_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "User", + '404': "APIError", + '500': "APIError", + } + 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_me_with_http_info( + self, + _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[User]: + """Get current user + + Returns the authenticated user's own information. **Error codes:** - `404` [`NOT_FOUND`](/errors/NOT_FOUND) — Not Found + + :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_me_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "User", + '404': "APIError", + '500': "APIError", + } + 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_me_without_preload_content( + self, + _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 current user + + Returns the authenticated user's own information. **Error codes:** - `404` [`NOT_FOUND`](/errors/NOT_FOUND) — Not Found + + :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_me_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "User", + '404': "APIError", + '500': "APIError", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_me_serialize( + self, + _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 + # 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' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/v2/iam/me', + 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 + ) + + diff --git a/revengai/models/__init__.py b/revengai/models/__init__.py index 8a6f93a..cf9ac70 100644 --- a/revengai/models/__init__.py +++ b/revengai/models/__init__.py @@ -17,6 +17,9 @@ from revengai.models.ai_decomp_inverse_string_map_item import AIDecompInverseStringMapItem from revengai.models.api_error import APIError from revengai.models.add_callee_input_body import AddCalleeInputBody +from revengai.models.add_issuer_domain_input_body import AddIssuerDomainInputBody +from revengai.models.add_owner_input_body import AddOwnerInputBody +from revengai.models.add_team_member_input_body import AddTeamMemberInputBody from revengai.models.add_user_string_input_body import AddUserStringInputBody from revengai.models.add_user_string_to_function_input_body import AddUserStringToFunctionInputBody from revengai.models.additional_details_status_response import AdditionalDetailsStatusResponse @@ -150,6 +153,8 @@ from revengai.models.binary_search_response import BinarySearchResponse from revengai.models.binary_search_result import BinarySearchResult from revengai.models.binary_task_status import BinaryTaskStatus +from revengai.models.bulk_create_user_result import BulkCreateUserResult +from revengai.models.bulk_create_users_output_body import BulkCreateUsersOutputBody from revengai.models.bulk_delete_analyses_request import BulkDeleteAnalysesRequest from revengai.models.call_edge import CallEdge from revengai.models.call_edges_output_body import CallEdgesOutputBody @@ -193,7 +198,13 @@ from revengai.models.create_collection_input_body import CreateCollectionInputBody from revengai.models.create_collection_output_body import CreateCollectionOutputBody from revengai.models.create_conversation_request import CreateConversationRequest +from revengai.models.create_group_input_body import CreateGroupInputBody +from revengai.models.create_identity_input_body import CreateIdentityInputBody +from revengai.models.create_issuer_input_body import CreateIssuerInputBody +from revengai.models.create_organisation_input_body import CreateOrganisationInputBody from revengai.models.create_portal_session_input_body import CreatePortalSessionInputBody +from revengai.models.create_team_input_body import CreateTeamInputBody +from revengai.models.create_user_input_body import CreateUserInputBody from revengai.models.created import Created from revengai.models.data_types_entry import DataTypesEntry from revengai.models.decomp_failed_event import DecompFailedEvent @@ -252,6 +263,7 @@ from revengai.models.file_hashes import FileHashes from revengai.models.file_metadata import FileMetadata from revengai.models.filters import Filters +from revengai.models.form_file import FormFile from revengai.models.function_argument import FunctionArgument from revengai.models.function_block_destination_response import FunctionBlockDestinationResponse from revengai.models.function_block_response import FunctionBlockResponse @@ -312,6 +324,8 @@ from revengai.models.import_model import ImportModel from revengai.models.inline_comment import InlineComment from revengai.models.insert_analysis_log_request import InsertAnalysisLogRequest +from revengai.models.invite_user_input_body import InviteUserInputBody +from revengai.models.issuer_allowed_domain import IssuerAllowedDomain from revengai.models.list_analysis_functions_data_types_output_body import ListAnalysisFunctionsDataTypesOutputBody from revengai.models.list_analysis_functions_output_body import ListAnalysisFunctionsOutputBody from revengai.models.list_analysis_strings_output_body import ListAnalysisStringsOutputBody @@ -319,12 +333,16 @@ from revengai.models.list_collections_output_body import ListCollectionsOutputBody from revengai.models.list_function_strings_output_body import ListFunctionStringsOutputBody from revengai.models.list_functions_data_types_output_body import ListFunctionsDataTypesOutputBody +from revengai.models.list_teams_output_body import ListTeamsOutputBody +from revengai.models.list_users_output_body import ListUsersOutputBody +from revengai.models.location_output_body import LocationOutputBody from revengai.models.logs import Logs from revengai.models.mitre_technique import MITRETechnique from revengai.models.match_filters import MatchFilters from revengai.models.matched_function import MatchedFunction from revengai.models.matched_function_suggestion import MatchedFunctionSuggestion from revengai.models.memdump_entry import MemdumpEntry +from revengai.models.message_body import MessageBody from revengai.models.meta_model import MetaModel from revengai.models.model_name import ModelName from revengai.models.models_response import ModelsResponse @@ -333,11 +351,17 @@ from revengai.models.name_confidence import NameConfidence from revengai.models.name_source_type import NameSourceType from revengai.models.network_activity import NetworkActivity +from revengai.models.oidc_callback_input_body import OIDCCallbackInputBody from revengai.models.order import Order +from revengai.models.organisation import Organisation +from revengai.models.organisation_group import OrganisationGroup +from revengai.models.organisation_issuer import OrganisationIssuer +from revengai.models.organisation_owner import OrganisationOwner from revengai.models.pdb_debug_model import PDBDebugModel from revengai.models.pe_model import PEModel from revengai.models.pagination_model import PaginationModel from revengai.models.params import Params +from revengai.models.password_reset_input_body import PasswordResetInputBody from revengai.models.patch_collection_binaries_input_body import PatchCollectionBinariesInputBody from revengai.models.patch_collection_binaries_output_body import PatchCollectionBinariesOutputBody from revengai.models.patch_collection_input_body import PatchCollectionInputBody @@ -361,7 +385,9 @@ 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.refresh_body import RefreshBody from revengai.models.regenerate_output_body import RegenerateOutputBody +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.rename_applied_event import RenameAppliedEvent @@ -372,8 +398,11 @@ from revengai.models.report_event import ReportEvent from revengai.models.report_info import ReportInfo from revengai.models.report_options import ReportOptions +from revengai.models.revoke_body import RevokeBody from revengai.models.sbom import SBOM from revengai.models.sbom_package import SBOMPackage +from revengai.models.sso_provider import SSOProvider +from revengai.models.sso_providers_output_body import SSOProvidersOutputBody from revengai.models.sandbox_options import SandboxOptions from revengai.models.sandbox_start_method import SandboxStartMethod from revengai.models.sandbox_timeout import SandboxTimeout @@ -434,7 +463,11 @@ from revengai.models.task_status import TaskStatus from revengai.models.task_status_response import TaskStatusResponse from revengai.models.tcp_carved_file import TcpCarvedFile +from revengai.models.team import Team +from revengai.models.team_member import TeamMember from revengai.models.timestamp_model import TimestampModel +from revengai.models.token_input_body import TokenInputBody +from revengai.models.token_response import TokenResponse from revengai.models.tokenised_data import TokenisedData from revengai.models.triage_function_response import TriageFunctionResponse from revengai.models.triage_report_response import TriageReportResponse @@ -443,12 +476,24 @@ from revengai.models.type_definition import TypeDefinition from revengai.models.update_data_types_input_body import UpdateDataTypesInputBody from revengai.models.update_data_types_output_body import UpdateDataTypesOutputBody +from revengai.models.update_issuer_input_body import UpdateIssuerInputBody +from revengai.models.update_organisation_input_body import UpdateOrganisationInputBody +from revengai.models.update_password_input_body import UpdatePasswordInputBody +from revengai.models.update_profile_input_body import UpdateProfileInputBody +from revengai.models.update_team_input_body import UpdateTeamInputBody +from revengai.models.update_user_credits_input_body import UpdateUserCreditsInputBody +from revengai.models.update_user_input_body import UpdateUserInputBody +from revengai.models.update_user_password_input_body import UpdateUserPasswordInputBody from revengai.models.upload_file_type import UploadFileType from revengai.models.upload_response import UploadResponse from revengai.models.upsert_ai_decomplation_rating_request import UpsertAiDecomplationRatingRequest from revengai.models.upsert_overrides_data import UpsertOverridesData from revengai.models.upsert_overrides_input_body import UpsertOverridesInputBody +from revengai.models.user import User from revengai.models.user_activity_response import UserActivityResponse +from revengai.models.user_credits import UserCredits +from revengai.models.user_identity import UserIdentity +from revengai.models.user_profile import UserProfile from revengai.models.vulnerabilities import Vulnerabilities from revengai.models.vulnerability import Vulnerability from revengai.models.warning_event import WarningEvent diff --git a/revengai/models/add_issuer_domain_input_body.py b/revengai/models/add_issuer_domain_input_body.py new file mode 100644 index 0000000..baefb27 --- /dev/null +++ b/revengai/models/add_issuer_domain_input_body.py @@ -0,0 +1,107 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class AddIssuerDomainInputBody(BaseModel): + """ + AddIssuerDomainInputBody + """ # noqa: E501 + domain: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Email domain to allow (e.g. acme.com)") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["domain"] + + @field_validator('domain') + def domain_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)+$", value): + raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)+$/") + return value + + 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 AddIssuerDomainInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AddIssuerDomainInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "domain": obj.get("domain") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/add_owner_input_body.py b/revengai/models/add_owner_input_body.py new file mode 100644 index 0000000..98fe6f6 --- /dev/null +++ b/revengai/models/add_owner_input_body.py @@ -0,0 +1,100 @@ +# 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 +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class AddOwnerInputBody(BaseModel): + """ + AddOwnerInputBody + """ # noqa: E501 + user_id: Annotated[int, Field(strict=True, ge=1)] = Field(description="User ID to add as owner") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["user_id"] + + 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 AddOwnerInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AddOwnerInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "user_id": obj.get("user_id") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/add_team_member_input_body.py b/revengai/models/add_team_member_input_body.py new file mode 100644 index 0000000..d584492 --- /dev/null +++ b/revengai/models/add_team_member_input_body.py @@ -0,0 +1,100 @@ +# 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 +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class AddTeamMemberInputBody(BaseModel): + """ + AddTeamMemberInputBody + """ # noqa: E501 + user_id: Annotated[int, Field(strict=True, ge=1)] = Field(description="User ID to add") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["user_id"] + + 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 AddTeamMemberInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AddTeamMemberInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "user_id": obj.get("user_id") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/bulk_create_user_result.py b/revengai/models/bulk_create_user_result.py new file mode 100644 index 0000000..3d13b1b --- /dev/null +++ b/revengai/models/bulk_create_user_result.py @@ -0,0 +1,123 @@ +# 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, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from revengai.models.user import User +from typing import Optional, Set +from typing_extensions import Self + +class BulkCreateUserResult(BaseModel): + """ + BulkCreateUserResult + """ # noqa: E501 + email: Optional[StrictStr] + error: Optional[StrictStr] = Field(default=None, description="Error description; present on failure") + index: StrictInt = Field(description="1-based row index in the CSV") + success: StrictBool + user: Optional[User] = Field(default=None, description="Created user; present on success") + username: Optional[StrictStr] + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["email", "error", "index", "success", "user", "username"] + + 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 BulkCreateUserResult 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of user + if self.user: + _dict['user'] = self.user.to_dict() + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if email (nullable) is None + # and model_fields_set contains the field + if self.email is None and "email" in self.model_fields_set: + _dict['email'] = None + + # set to None if username (nullable) is None + # and model_fields_set contains the field + if self.username is None and "username" in self.model_fields_set: + _dict['username'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of BulkCreateUserResult from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "email": obj.get("email"), + "error": obj.get("error"), + "index": obj.get("index"), + "success": obj.get("success"), + "user": User.from_dict(obj["user"]) if obj.get("user") is not None else None, + "username": obj.get("username") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/bulk_create_users_output_body.py b/revengai/models/bulk_create_users_output_body.py new file mode 100644 index 0000000..774597d --- /dev/null +++ b/revengai/models/bulk_create_users_output_body.py @@ -0,0 +1,118 @@ +# 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, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from revengai.models.bulk_create_user_result import BulkCreateUserResult +from typing import Optional, Set +from typing_extensions import Self + +class BulkCreateUsersOutputBody(BaseModel): + """ + BulkCreateUsersOutputBody + """ # noqa: E501 + failed: StrictInt + results: Optional[List[BulkCreateUserResult]] + succeeded: StrictInt + total: StrictInt + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["failed", "results", "succeeded", "total"] + + 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 BulkCreateUsersOutputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in results (list) + _items = [] + if self.results: + for _item_results in self.results: + if _item_results: + _items.append(_item_results.to_dict()) + _dict['results'] = _items + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if results (nullable) is None + # and model_fields_set contains the field + if self.results is None and "results" in self.model_fields_set: + _dict['results'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of BulkCreateUsersOutputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "failed": obj.get("failed"), + "results": [BulkCreateUserResult.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None, + "succeeded": obj.get("succeeded"), + "total": obj.get("total") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/create_group_input_body.py b/revengai/models/create_group_input_body.py new file mode 100644 index 0000000..6467805 --- /dev/null +++ b/revengai/models/create_group_input_body.py @@ -0,0 +1,100 @@ +# 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 +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateGroupInputBody(BaseModel): + """ + CreateGroupInputBody + """ # noqa: E501 + name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Group name") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["name"] + + 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 CreateGroupInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateGroupInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/create_identity_input_body.py b/revengai/models/create_identity_input_body.py new file mode 100644 index 0000000..033d2d0 --- /dev/null +++ b/revengai/models/create_identity_input_body.py @@ -0,0 +1,111 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateIdentityInputBody(BaseModel): + """ + CreateIdentityInputBody + """ # noqa: E501 + issuer_url: Annotated[str, Field(min_length=1, strict=True, max_length=2048)] = Field(description="Issuer URL (must be trusted by this organisation)") + subject: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="External subject identifier from the issuer") + user_id: Annotated[int, Field(strict=True, ge=1)] = Field(description="Internal user ID to link") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["issuer_url", "subject", "user_id"] + + @field_validator('issuer_url') + def issuer_url_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^https?:\/\/[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])+(:[0-9]{1,5})?(\/.*)?$", value): + raise ValueError(r"must validate the regular expression /^https?:\/\/[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])+(:[0-9]{1,5})?(\/.*)?$/") + return value + + 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 CreateIdentityInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateIdentityInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "issuer_url": obj.get("issuer_url"), + "subject": obj.get("subject"), + "user_id": obj.get("user_id") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/create_issuer_input_body.py b/revengai/models/create_issuer_input_body.py new file mode 100644 index 0000000..294c012 --- /dev/null +++ b/revengai/models/create_issuer_input_body.py @@ -0,0 +1,109 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateIssuerInputBody(BaseModel): + """ + CreateIssuerInputBody + """ # noqa: E501 + client_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="OIDC client ID for audience validation (recommended)") + issuer_url: Annotated[str, Field(min_length=1, strict=True, max_length=2048)] = Field(description="OIDC issuer URL to trust") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["client_id", "issuer_url"] + + @field_validator('issuer_url') + def issuer_url_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^https?:\/\/[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])+(:[0-9]{1,5})?(\/.*)?$", value): + raise ValueError(r"must validate the regular expression /^https?:\/\/[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])+(:[0-9]{1,5})?(\/.*)?$/") + return value + + 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 CreateIssuerInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateIssuerInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "client_id": obj.get("client_id"), + "issuer_url": obj.get("issuer_url") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/create_organisation_input_body.py b/revengai/models/create_organisation_input_body.py new file mode 100644 index 0000000..0d95e3f --- /dev/null +++ b/revengai/models/create_organisation_input_body.py @@ -0,0 +1,100 @@ +# 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 +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateOrganisationInputBody(BaseModel): + """ + CreateOrganisationInputBody + """ # noqa: E501 + name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Organisation name") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["name"] + + 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 CreateOrganisationInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateOrganisationInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/create_team_input_body.py b/revengai/models/create_team_input_body.py new file mode 100644 index 0000000..2a272bd --- /dev/null +++ b/revengai/models/create_team_input_body.py @@ -0,0 +1,100 @@ +# 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 +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateTeamInputBody(BaseModel): + """ + CreateTeamInputBody + """ # noqa: E501 + name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Team name") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["name"] + + 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 CreateTeamInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateTeamInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/create_user_input_body.py b/revengai/models/create_user_input_body.py new file mode 100644 index 0000000..74974c1 --- /dev/null +++ b/revengai/models/create_user_input_body.py @@ -0,0 +1,143 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateUserInputBody(BaseModel): + """ + CreateUserInputBody + """ # noqa: E501 + credits: Optional[Annotated[int, Field(strict=True, ge=0)]] = Field(default=None, description="Initial credit balance in credits (1 credit = 1000 units); defaults to 10 credits") + email: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Email address") + first_name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="First name") + last_name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Last name") + password: Annotated[str, Field(min_length=8, strict=True, max_length=128)] = Field(description="Initial password") + role: Optional[StrictStr] = Field(default=None, description="User role (defaults to USER)") + tier: Optional[StrictStr] = Field(default=None, description="User tier (defaults to ENTHUSIAST)") + time_zone: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="IANA time zone") + username: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Username") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["credits", "email", "first_name", "last_name", "password", "role", "tier", "time_zone", "username"] + + @field_validator('email') + def email_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^[^@\s]+@[^@\s]+\.[^@\s]+$", value): + raise ValueError(r"must validate the regular expression /^[^@\s]+@[^@\s]+\.[^@\s]+$/") + return value + + @field_validator('role') + def role_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['USER', 'ADMIN', 'SUPERADMIN', 'unknown_default_open_api']): + raise ValueError("must be one of enum values ('USER', 'ADMIN', 'SUPERADMIN', 'unknown_default_open_api')") + return value + + @field_validator('tier') + def tier_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['ENTHUSIAST', 'REVERSER', 'BUG_HUNTER', 'MALWARE_ANALYST', 'SECURITY_RESEARCHER', 'unknown_default_open_api']): + raise ValueError("must be one of enum values ('ENTHUSIAST', 'REVERSER', 'BUG_HUNTER', 'MALWARE_ANALYST', 'SECURITY_RESEARCHER', 'unknown_default_open_api')") + return value + + 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 CreateUserInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateUserInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "credits": obj.get("credits"), + "email": obj.get("email"), + "first_name": obj.get("first_name"), + "last_name": obj.get("last_name"), + "password": obj.get("password"), + "role": obj.get("role"), + "tier": obj.get("tier"), + "time_zone": obj.get("time_zone"), + "username": obj.get("username") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/form_file.py b/revengai/models/form_file.py new file mode 100644 index 0000000..f173438 --- /dev/null +++ b/revengai/models/form_file.py @@ -0,0 +1,115 @@ +# 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, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class FormFile(BaseModel): + """ + FormFile + """ # noqa: E501 + content_type: Optional[StrictStr] = Field(alias="ContentType") + filename: Optional[StrictStr] = Field(alias="Filename") + is_set: StrictBool = Field(alias="IsSet") + size: StrictInt = Field(alias="Size") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["ContentType", "Filename", "IsSet", "Size"] + + 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 FormFile 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if content_type (nullable) is None + # and model_fields_set contains the field + if self.content_type is None and "content_type" in self.model_fields_set: + _dict['ContentType'] = None + + # set to None if filename (nullable) is None + # and model_fields_set contains the field + if self.filename is None and "filename" in self.model_fields_set: + _dict['Filename'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of FormFile from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "ContentType": obj.get("ContentType"), + "Filename": obj.get("Filename"), + "IsSet": obj.get("IsSet"), + "Size": obj.get("Size") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/invite_user_input_body.py b/revengai/models/invite_user_input_body.py new file mode 100644 index 0000000..ff85308 --- /dev/null +++ b/revengai/models/invite_user_input_body.py @@ -0,0 +1,117 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class InviteUserInputBody(BaseModel): + """ + InviteUserInputBody + """ # noqa: E501 + credits: Annotated[int, Field(strict=True, ge=0)] = Field(description="Initial credit balance for the invited user in raw units (1 credit = 1000 units).") + email: Annotated[str, Field(strict=True, max_length=255)] = Field(description="Email address to invite") + first_name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="First name included in the invite email and registration URL") + last_name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Last name pre-filled in the registration URL") + team_id: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Team to assign the invited user to") + username: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Username pre-filled in the registration URL") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["credits", "email", "first_name", "last_name", "team_id", "username"] + + @field_validator('email') + def email_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^[^@\s]+@[^@\s]+\.[^@\s]+$", value): + raise ValueError(r"must validate the regular expression /^[^@\s]+@[^@\s]+\.[^@\s]+$/") + return value + + 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 InviteUserInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of InviteUserInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "credits": obj.get("credits"), + "email": obj.get("email"), + "first_name": obj.get("first_name"), + "last_name": obj.get("last_name"), + "team_id": obj.get("team_id"), + "username": obj.get("username") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/issuer_allowed_domain.py b/revengai/models/issuer_allowed_domain.py new file mode 100644 index 0000000..c1fab6a --- /dev/null +++ b/revengai/models/issuer_allowed_domain.py @@ -0,0 +1,110 @@ +# 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 datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class IssuerAllowedDomain(BaseModel): + """ + IssuerAllowedDomain + """ # noqa: E501 + challenge_token: Optional[StrictStr] = Field(default=None, description="DNS TXT challenge token. Add a TXT record at _reveng-verification. with this value.") + created_at: datetime + domain: StrictStr = Field(description="Email domain (e.g. acme.com)") + issuer_allowed_domain_id: StrictInt + organisation_issuer_id: StrictInt + verification_status: StrictStr = Field(description="Domain ownership verification status: PENDING, VERIFIED, or FAILED") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["challenge_token", "created_at", "domain", "issuer_allowed_domain_id", "organisation_issuer_id", "verification_status"] + + 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 IssuerAllowedDomain 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of IssuerAllowedDomain from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "challenge_token": obj.get("challenge_token"), + "created_at": obj.get("created_at"), + "domain": obj.get("domain"), + "issuer_allowed_domain_id": obj.get("issuer_allowed_domain_id"), + "organisation_issuer_id": obj.get("organisation_issuer_id"), + "verification_status": obj.get("verification_status") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/list_teams_output_body.py b/revengai/models/list_teams_output_body.py new file mode 100644 index 0000000..e48ffa8 --- /dev/null +++ b/revengai/models/list_teams_output_body.py @@ -0,0 +1,114 @@ +# 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, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from revengai.models.team import Team +from typing import Optional, Set +from typing_extensions import Self + +class ListTeamsOutputBody(BaseModel): + """ + ListTeamsOutputBody + """ # noqa: E501 + teams: Optional[List[Team]] + total: StrictInt + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["teams", "total"] + + 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 ListTeamsOutputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in teams (list) + _items = [] + if self.teams: + for _item_teams in self.teams: + if _item_teams: + _items.append(_item_teams.to_dict()) + _dict['teams'] = _items + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if teams (nullable) is None + # and model_fields_set contains the field + if self.teams is None and "teams" in self.model_fields_set: + _dict['teams'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListTeamsOutputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "teams": [Team.from_dict(_item) for _item in obj["teams"]] if obj.get("teams") is not None else None, + "total": obj.get("total") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/list_users_output_body.py b/revengai/models/list_users_output_body.py new file mode 100644 index 0000000..84c23ef --- /dev/null +++ b/revengai/models/list_users_output_body.py @@ -0,0 +1,114 @@ +# 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, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from revengai.models.user import User +from typing import Optional, Set +from typing_extensions import Self + +class ListUsersOutputBody(BaseModel): + """ + ListUsersOutputBody + """ # noqa: E501 + total: StrictInt + users: Optional[List[User]] + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["total", "users"] + + 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 ListUsersOutputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in users (list) + _items = [] + if self.users: + for _item_users in self.users: + if _item_users: + _items.append(_item_users.to_dict()) + _dict['users'] = _items + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if users (nullable) is None + # and model_fields_set contains the field + if self.users is None and "users" in self.model_fields_set: + _dict['users'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListUsersOutputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "total": obj.get("total"), + "users": [User.from_dict(_item) for _item in obj["users"]] if obj.get("users") is not None else None + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/location_output_body.py b/revengai/models/location_output_body.py new file mode 100644 index 0000000..0d96e8a --- /dev/null +++ b/revengai/models/location_output_body.py @@ -0,0 +1,110 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class LocationOutputBody(BaseModel): + """ + LocationOutputBody + """ # noqa: E501 + country: StrictStr = Field(description="Country name") + country_code: StrictStr = Field(description="ISO 3166-1 alpha-2 country code") + currency: StrictStr = Field(description="Currency code for this location") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["country", "country_code", "currency"] + + @field_validator('currency') + def currency_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'unknown_default_open_api']): + raise ValueError("must be one of enum values ('USD', 'EUR', 'GBP', 'CAD', 'AUD', 'unknown_default_open_api')") + return value + + 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 LocationOutputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of LocationOutputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "country": obj.get("country"), + "country_code": obj.get("country_code"), + "currency": obj.get("currency") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/message_body.py b/revengai/models/message_body.py new file mode 100644 index 0000000..82b384f --- /dev/null +++ b/revengai/models/message_body.py @@ -0,0 +1,99 @@ +# 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 MessageBody(BaseModel): + """ + MessageBody + """ # noqa: E501 + message: StrictStr = Field(description="Human-readable status message") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["message"] + + 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 MessageBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of MessageBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/oidc_callback_input_body.py b/revengai/models/oidc_callback_input_body.py new file mode 100644 index 0000000..ff15b79 --- /dev/null +++ b/revengai/models/oidc_callback_input_body.py @@ -0,0 +1,120 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class OIDCCallbackInputBody(BaseModel): + """ + OIDCCallbackInputBody + """ # noqa: E501 + code: Annotated[str, Field(min_length=1, strict=True, max_length=2048)] = Field(description="Authorization code from the identity provider") + code_verifier: Annotated[str, Field(min_length=43, strict=True, max_length=128)] = Field(description="PKCE code verifier (the raw secret, not the challenge)") + issuer: Annotated[str, Field(min_length=1, strict=True, max_length=2048)] = Field(description="OIDC issuer URL (as returned by the SSO providers endpoint)") + redirect_uri: Annotated[str, Field(min_length=1, strict=True, max_length=2048)] = Field(description="Redirect URI used when initiating the authorization request; must match exactly") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["code", "code_verifier", "issuer", "redirect_uri"] + + @field_validator('issuer') + def issuer_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^https?:\/\/[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])+(:[0-9]{1,5})?(\/.*)?$", value): + raise ValueError(r"must validate the regular expression /^https?:\/\/[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])+(:[0-9]{1,5})?(\/.*)?$/") + return value + + @field_validator('redirect_uri') + def redirect_uri_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^https?:\/\/[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])+(:[0-9]{1,5})?(\/.*)?$", value): + raise ValueError(r"must validate the regular expression /^https?:\/\/[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])+(:[0-9]{1,5})?(\/.*)?$/") + return value + + 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 OIDCCallbackInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OIDCCallbackInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "code": obj.get("code"), + "code_verifier": obj.get("code_verifier"), + "issuer": obj.get("issuer"), + "redirect_uri": obj.get("redirect_uri") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/organisation.py b/revengai/models/organisation.py new file mode 100644 index 0000000..7ffc6e0 --- /dev/null +++ b/revengai/models/organisation.py @@ -0,0 +1,111 @@ +# 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 datetime import datetime +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Organisation(BaseModel): + """ + Organisation + """ # noqa: E501 + created_at: datetime + name: Optional[StrictStr] + organisation_id: StrictInt + updated_at: datetime + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["created_at", "name", "organisation_id", "updated_at"] + + 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 Organisation 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if name (nullable) is None + # and model_fields_set contains the field + if self.name is None and "name" in self.model_fields_set: + _dict['name'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of Organisation from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "created_at": obj.get("created_at"), + "name": obj.get("name"), + "organisation_id": obj.get("organisation_id"), + "updated_at": obj.get("updated_at") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/organisation_group.py b/revengai/models/organisation_group.py new file mode 100644 index 0000000..74bb92f --- /dev/null +++ b/revengai/models/organisation_group.py @@ -0,0 +1,115 @@ +# 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 datetime import datetime +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class OrganisationGroup(BaseModel): + """ + OrganisationGroup + """ # noqa: E501 + created_at: datetime + name: Optional[StrictStr] + organisation_group_id: StrictInt + organisation_id: StrictInt + team_id: StrictInt + updated_at: datetime + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["created_at", "name", "organisation_group_id", "organisation_id", "team_id", "updated_at"] + + 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 OrganisationGroup 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if name (nullable) is None + # and model_fields_set contains the field + if self.name is None and "name" in self.model_fields_set: + _dict['name'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OrganisationGroup from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "created_at": obj.get("created_at"), + "name": obj.get("name"), + "organisation_group_id": obj.get("organisation_group_id"), + "organisation_id": obj.get("organisation_id"), + "team_id": obj.get("team_id"), + "updated_at": obj.get("updated_at") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/organisation_issuer.py b/revengai/models/organisation_issuer.py new file mode 100644 index 0000000..5edee4e --- /dev/null +++ b/revengai/models/organisation_issuer.py @@ -0,0 +1,119 @@ +# 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 datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class OrganisationIssuer(BaseModel): + """ + OrganisationIssuer + """ # noqa: E501 + client_id: Optional[StrictStr] = Field(default=None, description="OIDC client ID registered with the identity provider. Used to validate the audience (aud) claim in JWTs.") + created_at: datetime + enabled: StrictBool + issuer_url: Optional[StrictStr] + jwks_uri: Optional[StrictStr] = Field(default=None, description="JSON Web Key Set URI discovered from the issuer's OIDC configuration. Populated automatically during issuer registration.") + organisation_id: StrictInt + organisation_issuer_id: StrictInt + updated_at: datetime + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["client_id", "created_at", "enabled", "issuer_url", "jwks_uri", "organisation_id", "organisation_issuer_id", "updated_at"] + + 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 OrganisationIssuer 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if issuer_url (nullable) is None + # and model_fields_set contains the field + if self.issuer_url is None and "issuer_url" in self.model_fields_set: + _dict['issuer_url'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OrganisationIssuer from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "client_id": obj.get("client_id"), + "created_at": obj.get("created_at"), + "enabled": obj.get("enabled"), + "issuer_url": obj.get("issuer_url"), + "jwks_uri": obj.get("jwks_uri"), + "organisation_id": obj.get("organisation_id"), + "organisation_issuer_id": obj.get("organisation_issuer_id"), + "updated_at": obj.get("updated_at") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/organisation_owner.py b/revengai/models/organisation_owner.py new file mode 100644 index 0000000..f8622d0 --- /dev/null +++ b/revengai/models/organisation_owner.py @@ -0,0 +1,106 @@ +# 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 datetime import datetime +from pydantic import BaseModel, ConfigDict, StrictInt +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class OrganisationOwner(BaseModel): + """ + OrganisationOwner + """ # noqa: E501 + created_at: datetime + organisation_id: StrictInt + organisation_owner_id: StrictInt + user_id: StrictInt + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["created_at", "organisation_id", "organisation_owner_id", "user_id"] + + 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 OrganisationOwner 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OrganisationOwner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "created_at": obj.get("created_at"), + "organisation_id": obj.get("organisation_id"), + "organisation_owner_id": obj.get("organisation_owner_id"), + "user_id": obj.get("user_id") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/password_reset_input_body.py b/revengai/models/password_reset_input_body.py new file mode 100644 index 0000000..8e3c425 --- /dev/null +++ b/revengai/models/password_reset_input_body.py @@ -0,0 +1,99 @@ +# 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 PasswordResetInputBody(BaseModel): + """ + PasswordResetInputBody + """ # noqa: E501 + email: StrictStr = Field(description="Email address of the account whose password should be reset") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["email"] + + 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 PasswordResetInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of PasswordResetInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "email": obj.get("email") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/refresh_body.py b/revengai/models/refresh_body.py new file mode 100644 index 0000000..41ae702 --- /dev/null +++ b/revengai/models/refresh_body.py @@ -0,0 +1,99 @@ +# 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, Optional +from typing import Optional, Set +from typing_extensions import Self + +class RefreshBody(BaseModel): + """ + RefreshBody + """ # noqa: E501 + refresh_token: Optional[StrictStr] = Field(default=None, description="The refresh token to rotate (falls back to refresh_token cookie if omitted)") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["refresh_token"] + + 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 RefreshBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of RefreshBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "refresh_token": obj.get("refresh_token") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/register_user_input_body.py b/revengai/models/register_user_input_body.py new file mode 100644 index 0000000..198ee06 --- /dev/null +++ b/revengai/models/register_user_input_body.py @@ -0,0 +1,117 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class RegisterUserInputBody(BaseModel): + """ + RegisterUserInputBody + """ # noqa: E501 + email: Annotated[str, Field(strict=True, max_length=255)] = Field(description="Email address") + first_name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="First name") + invite_code: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="Invite code from the registration email") + last_name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Last name") + password: Annotated[str, Field(min_length=10, strict=True, max_length=128)] = Field(description="Password (minimum 10 characters)") + username: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Username") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["email", "first_name", "invite_code", "last_name", "password", "username"] + + @field_validator('email') + def email_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^[^@\s]+@[^@\s]+\.[^@\s]+$", value): + raise ValueError(r"must validate the regular expression /^[^@\s]+@[^@\s]+\.[^@\s]+$/") + return value + + 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 RegisterUserInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of RegisterUserInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "email": obj.get("email"), + "first_name": obj.get("first_name"), + "invite_code": obj.get("invite_code"), + "last_name": obj.get("last_name"), + "password": obj.get("password"), + "username": obj.get("username") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/revoke_body.py b/revengai/models/revoke_body.py new file mode 100644 index 0000000..6be3c36 --- /dev/null +++ b/revengai/models/revoke_body.py @@ -0,0 +1,99 @@ +# 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, Optional +from typing import Optional, Set +from typing_extensions import Self + +class RevokeBody(BaseModel): + """ + RevokeBody + """ # noqa: E501 + refresh_token: Optional[StrictStr] = Field(default=None, description="The refresh token to revoke (falls back to refresh_token cookie if omitted)") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["refresh_token"] + + 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 RevokeBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of RevokeBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "refresh_token": obj.get("refresh_token") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/sso_provider.py b/revengai/models/sso_provider.py new file mode 100644 index 0000000..45102c2 --- /dev/null +++ b/revengai/models/sso_provider.py @@ -0,0 +1,101 @@ +# 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 SSOProvider(BaseModel): + """ + SSOProvider + """ # noqa: E501 + auth_url: StrictStr = Field(description="Base authorization URL. Append code_challenge, code_challenge_method, redirect_uri, and state query parameters to complete the PKCE flow.") + issuer: StrictStr = Field(description="Issuer URL of the identity provider. Pass this value as the issuer field in the SSO callback request.") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["auth_url", "issuer"] + + 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 SSOProvider 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of SSOProvider from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "auth_url": obj.get("auth_url"), + "issuer": obj.get("issuer") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/sso_providers_output_body.py b/revengai/models/sso_providers_output_body.py new file mode 100644 index 0000000..5122656 --- /dev/null +++ b/revengai/models/sso_providers_output_body.py @@ -0,0 +1,112 @@ +# 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 +from typing import Any, ClassVar, Dict, List, Optional +from revengai.models.sso_provider import SSOProvider +from typing import Optional, Set +from typing_extensions import Self + +class SSOProvidersOutputBody(BaseModel): + """ + SSOProvidersOutputBody + """ # noqa: E501 + providers: Optional[List[SSOProvider]] + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["providers"] + + 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 SSOProvidersOutputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in providers (list) + _items = [] + if self.providers: + for _item_providers in self.providers: + if _item_providers: + _items.append(_item_providers.to_dict()) + _dict['providers'] = _items + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if providers (nullable) is None + # and model_fields_set contains the field + if self.providers is None and "providers" in self.model_fields_set: + _dict['providers'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of SSOProvidersOutputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "providers": [SSOProvider.from_dict(_item) for _item in obj["providers"]] if obj.get("providers") is not None else None + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/team.py b/revengai/models/team.py new file mode 100644 index 0000000..d165fb3 --- /dev/null +++ b/revengai/models/team.py @@ -0,0 +1,117 @@ +# 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, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Team(BaseModel): + """ + Team + """ # noqa: E501 + organisation_id: Optional[StrictInt] = Field(default=None, description="Organisation this team belongs to, if any") + plan: StrictStr + team_id: StrictInt + team_name: Optional[StrictStr] + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["organisation_id", "plan", "team_id", "team_name"] + + @field_validator('plan') + def plan_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['Free', 'Individual', 'Tester', 'Organisation', 'unknown_default_open_api']): + raise ValueError("must be one of enum values ('Free', 'Individual', 'Tester', 'Organisation', 'unknown_default_open_api')") + return value + + 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 Team 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if team_name (nullable) is None + # and model_fields_set contains the field + if self.team_name is None and "team_name" in self.model_fields_set: + _dict['team_name'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of Team from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "organisation_id": obj.get("organisation_id"), + "plan": obj.get("plan"), + "team_id": obj.get("team_id"), + "team_name": obj.get("team_name") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/team_member.py b/revengai/models/team_member.py new file mode 100644 index 0000000..83b863d --- /dev/null +++ b/revengai/models/team_member.py @@ -0,0 +1,124 @@ +# 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, StrictBool, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class TeamMember(BaseModel): + """ + TeamMember + """ # noqa: E501 + email: Optional[StrictStr] + is_admin: StrictBool + role: StrictStr + user_id: StrictInt + username: Optional[StrictStr] + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["email", "is_admin", "role", "user_id", "username"] + + @field_validator('role') + def role_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['USER', 'ADMIN', 'SUPERADMIN', 'SYSTEM', 'unknown_default_open_api']): + raise ValueError("must be one of enum values ('USER', 'ADMIN', 'SUPERADMIN', 'SYSTEM', 'unknown_default_open_api')") + return value + + 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 TeamMember 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if email (nullable) is None + # and model_fields_set contains the field + if self.email is None and "email" in self.model_fields_set: + _dict['email'] = None + + # set to None if username (nullable) is None + # and model_fields_set contains the field + if self.username is None and "username" in self.model_fields_set: + _dict['username'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of TeamMember from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "email": obj.get("email"), + "is_admin": obj.get("is_admin"), + "role": obj.get("role"), + "user_id": obj.get("user_id"), + "username": obj.get("username") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/token_input_body.py b/revengai/models/token_input_body.py new file mode 100644 index 0000000..2ddf31e --- /dev/null +++ b/revengai/models/token_input_body.py @@ -0,0 +1,106 @@ +# 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 +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class TokenInputBody(BaseModel): + """ + TokenInputBody + """ # noqa: E501 + api_key: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="API key to exchange for a JWT") + email: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="User email address (required with password)") + password: Optional[Annotated[str, Field(strict=True, max_length=128)]] = Field(default=None, description="User password (required with email or username)") + username: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Username (alternative to email, required with password)") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["api_key", "email", "password", "username"] + + 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 TokenInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of TokenInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "api_key": obj.get("api_key"), + "email": obj.get("email"), + "password": obj.get("password"), + "username": obj.get("username") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/token_response.py b/revengai/models/token_response.py new file mode 100644 index 0000000..a5890d5 --- /dev/null +++ b/revengai/models/token_response.py @@ -0,0 +1,105 @@ +# 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, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class TokenResponse(BaseModel): + """ + TokenResponse + """ # noqa: E501 + access_token: StrictStr = Field(description="Signed JWT access token") + expires_in: StrictInt = Field(description="Access token lifetime in seconds") + refresh_token: StrictStr = Field(description="Opaque refresh token for obtaining new access tokens") + token_type: StrictStr = Field(description="Token type (always Bearer)") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["access_token", "expires_in", "refresh_token", "token_type"] + + 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 TokenResponse 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of TokenResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "access_token": obj.get("access_token"), + "expires_in": obj.get("expires_in"), + "refresh_token": obj.get("refresh_token"), + "token_type": obj.get("token_type") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/update_issuer_input_body.py b/revengai/models/update_issuer_input_body.py new file mode 100644 index 0000000..cb84fe2 --- /dev/null +++ b/revengai/models/update_issuer_input_body.py @@ -0,0 +1,99 @@ +# 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 +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class UpdateIssuerInputBody(BaseModel): + """ + UpdateIssuerInputBody + """ # noqa: E501 + enabled: StrictBool = Field(description="Whether the issuer is enabled") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["enabled"] + + 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 UpdateIssuerInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateIssuerInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "enabled": obj.get("enabled") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/update_organisation_input_body.py b/revengai/models/update_organisation_input_body.py new file mode 100644 index 0000000..9438a7e --- /dev/null +++ b/revengai/models/update_organisation_input_body.py @@ -0,0 +1,100 @@ +# 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 +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateOrganisationInputBody(BaseModel): + """ + UpdateOrganisationInputBody + """ # noqa: E501 + name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="New organisation name") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["name"] + + 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 UpdateOrganisationInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateOrganisationInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/update_password_input_body.py b/revengai/models/update_password_input_body.py new file mode 100644 index 0000000..20bc98a --- /dev/null +++ b/revengai/models/update_password_input_body.py @@ -0,0 +1,102 @@ +# 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_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdatePasswordInputBody(BaseModel): + """ + UpdatePasswordInputBody + """ # noqa: E501 + code: StrictStr = Field(description="Password reset code received by email") + password: Annotated[str, Field(min_length=10, strict=True)] = Field(description="New password (minimum 10 characters)") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["code", "password"] + + 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 UpdatePasswordInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdatePasswordInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "code": obj.get("code"), + "password": obj.get("password") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/update_profile_input_body.py b/revengai/models/update_profile_input_body.py new file mode 100644 index 0000000..b5af22c --- /dev/null +++ b/revengai/models/update_profile_input_body.py @@ -0,0 +1,108 @@ +# 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 +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateProfileInputBody(BaseModel): + """ + UpdateProfileInputBody + """ # noqa: E501 + default_team_id: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Default team ID") + first_name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="First name") + last_name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Last name") + time_zone: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="IANA time zone") + username: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Username") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["default_team_id", "first_name", "last_name", "time_zone", "username"] + + 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 UpdateProfileInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateProfileInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "default_team_id": obj.get("default_team_id"), + "first_name": obj.get("first_name"), + "last_name": obj.get("last_name"), + "time_zone": obj.get("time_zone"), + "username": obj.get("username") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/update_team_input_body.py b/revengai/models/update_team_input_body.py new file mode 100644 index 0000000..2eafb96 --- /dev/null +++ b/revengai/models/update_team_input_body.py @@ -0,0 +1,100 @@ +# 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 +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateTeamInputBody(BaseModel): + """ + UpdateTeamInputBody + """ # noqa: E501 + team_name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Team name") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["team_name"] + + 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 UpdateTeamInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateTeamInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "team_name": obj.get("team_name") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/update_user_credits_input_body.py b/revengai/models/update_user_credits_input_body.py new file mode 100644 index 0000000..e04f709 --- /dev/null +++ b/revengai/models/update_user_credits_input_body.py @@ -0,0 +1,100 @@ +# 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 +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateUserCreditsInputBody(BaseModel): + """ + UpdateUserCreditsInputBody + """ # noqa: E501 + credits: Annotated[int, Field(strict=True, ge=0)] = Field(description="Credit balance to set") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["credits"] + + 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 UpdateUserCreditsInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateUserCreditsInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "credits": obj.get("credits") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/update_user_input_body.py b/revengai/models/update_user_input_body.py new file mode 100644 index 0000000..25edd39 --- /dev/null +++ b/revengai/models/update_user_input_body.py @@ -0,0 +1,142 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateUserInputBody(BaseModel): + """ + UpdateUserInputBody + """ # noqa: E501 + email: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Email address") + first_name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="First name") + last_name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Last name") + role: Optional[StrictStr] = Field(default=None, description="User role (SUPERADMIN only)") + tier: Optional[StrictStr] = Field(default=None, description="User tier (SUPERADMIN only)") + time_zone: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="IANA time zone") + username: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Username") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["email", "first_name", "last_name", "role", "tier", "time_zone", "username"] + + @field_validator('email') + def email_validate_regular_expression(cls, value): + """Validates the regular expression""" + if value is None: + return value + + if not re.match(r"^[^@\s]+@[^@\s]+\.[^@\s]+$", value): + raise ValueError(r"must validate the regular expression /^[^@\s]+@[^@\s]+\.[^@\s]+$/") + return value + + @field_validator('role') + def role_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['USER', 'ADMIN', 'SUPERADMIN', 'unknown_default_open_api']): + raise ValueError("must be one of enum values ('USER', 'ADMIN', 'SUPERADMIN', 'unknown_default_open_api')") + return value + + @field_validator('tier') + def tier_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['ENTHUSIAST', 'REVERSER', 'BUG_HUNTER', 'MALWARE_ANALYST', 'SECURITY_RESEARCHER', 'unknown_default_open_api']): + raise ValueError("must be one of enum values ('ENTHUSIAST', 'REVERSER', 'BUG_HUNTER', 'MALWARE_ANALYST', 'SECURITY_RESEARCHER', 'unknown_default_open_api')") + return value + + 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 UpdateUserInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateUserInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "email": obj.get("email"), + "first_name": obj.get("first_name"), + "last_name": obj.get("last_name"), + "role": obj.get("role"), + "tier": obj.get("tier"), + "time_zone": obj.get("time_zone"), + "username": obj.get("username") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/update_user_password_input_body.py b/revengai/models/update_user_password_input_body.py new file mode 100644 index 0000000..ce32a9c --- /dev/null +++ b/revengai/models/update_user_password_input_body.py @@ -0,0 +1,102 @@ +# 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, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateUserPasswordInputBody(BaseModel): + """ + UpdateUserPasswordInputBody + """ # noqa: E501 + current_password: Optional[StrictStr] = Field(default=None, description="Current password (required when changing your own password; ignored for SUPERADMIN updates of other users)") + new_password: Annotated[str, Field(min_length=10, strict=True)] = Field(description="New password (minimum 10 characters)") + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["current_password", "new_password"] + + 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 UpdateUserPasswordInputBody 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateUserPasswordInputBody from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "current_password": obj.get("current_password"), + "new_password": obj.get("new_password") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/user.py b/revengai/models/user.py new file mode 100644 index 0000000..6ae3dfb --- /dev/null +++ b/revengai/models/user.py @@ -0,0 +1,131 @@ +# 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 datetime import datetime +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from revengai.models.user_profile import UserProfile +from typing import Optional, Set +from typing_extensions import Self + +class User(BaseModel): + """ + User + """ # noqa: E501 + created_at: Optional[datetime] = None + email: StrictStr + profile: UserProfile + role: StrictStr + tier: Optional[StrictStr] = None + user_id: StrictInt + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["created_at", "email", "profile", "role", "tier", "user_id"] + + @field_validator('role') + def role_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['USER', 'ADMIN', 'SUPERADMIN', 'SYSTEM', 'unknown_default_open_api']): + raise ValueError("must be one of enum values ('USER', 'ADMIN', 'SUPERADMIN', 'SYSTEM', 'unknown_default_open_api')") + return value + + @field_validator('tier') + def tier_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['ENTHUSIAST', 'REVERSER', 'BUG_HUNTER', 'MALWARE_ANALYST', 'SECURITY_RESEARCHER', 'unknown_default_open_api']): + raise ValueError("must be one of enum values ('ENTHUSIAST', 'REVERSER', 'BUG_HUNTER', 'MALWARE_ANALYST', 'SECURITY_RESEARCHER', 'unknown_default_open_api')") + return value + + 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 User 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of profile + if self.profile: + _dict['profile'] = self.profile.to_dict() + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of User from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "created_at": obj.get("created_at"), + "email": obj.get("email"), + "profile": UserProfile.from_dict(obj["profile"]) if obj.get("profile") is not None else None, + "role": obj.get("role"), + "tier": obj.get("tier"), + "user_id": obj.get("user_id") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/user_credits.py b/revengai/models/user_credits.py new file mode 100644 index 0000000..60d775c --- /dev/null +++ b/revengai/models/user_credits.py @@ -0,0 +1,106 @@ +# 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 datetime import datetime +from pydantic import BaseModel, ConfigDict, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class UserCredits(BaseModel): + """ + UserCredits + """ # noqa: E501 + created_at: Optional[datetime] = None + credits: StrictInt + updated_at: Optional[datetime] = None + user_id: StrictInt + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["created_at", "credits", "updated_at", "user_id"] + + 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 UserCredits 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UserCredits from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "created_at": obj.get("created_at"), + "credits": obj.get("credits"), + "updated_at": obj.get("updated_at"), + "user_id": obj.get("user_id") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/user_identity.py b/revengai/models/user_identity.py new file mode 100644 index 0000000..1a3ff76 --- /dev/null +++ b/revengai/models/user_identity.py @@ -0,0 +1,120 @@ +# 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 datetime import datetime +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class UserIdentity(BaseModel): + """ + UserIdentity + """ # noqa: E501 + created_at: datetime + issuer_url: Optional[StrictStr] + subject: Optional[StrictStr] + updated_at: datetime + user_id: StrictInt + user_identity_id: StrictInt + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["created_at", "issuer_url", "subject", "updated_at", "user_id", "user_identity_id"] + + 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 UserIdentity 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + # set to None if issuer_url (nullable) is None + # and model_fields_set contains the field + if self.issuer_url is None and "issuer_url" in self.model_fields_set: + _dict['issuer_url'] = None + + # set to None if subject (nullable) is None + # and model_fields_set contains the field + if self.subject is None and "subject" in self.model_fields_set: + _dict['subject'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UserIdentity from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "created_at": obj.get("created_at"), + "issuer_url": obj.get("issuer_url"), + "subject": obj.get("subject"), + "updated_at": obj.get("updated_at"), + "user_id": obj.get("user_id"), + "user_identity_id": obj.get("user_identity_id") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + + diff --git a/revengai/models/user_profile.py b/revengai/models/user_profile.py new file mode 100644 index 0000000..d5f443b --- /dev/null +++ b/revengai/models/user_profile.py @@ -0,0 +1,107 @@ +# 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, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class UserProfile(BaseModel): + """ + UserProfile + """ # noqa: E501 + default_team_id: Optional[StrictInt] = None + first_name: StrictStr + last_name: StrictStr + time_zone: StrictStr + username: StrictStr + additional_properties: Dict[str, Any] = {} + __properties: ClassVar[List[str]] = ["default_team_id", "first_name", "last_name", "time_zone", "username"] + + 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 UserProfile 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. + * Fields in `self.additional_properties` are added to the output dict. + """ + excluded_fields: Set[str] = set([ + "additional_properties", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # puts key-value pairs in additional_properties in the top level + if self.additional_properties is not None: + for _key, _value in self.additional_properties.items(): + _dict[_key] = _value + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UserProfile from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "default_team_id": obj.get("default_team_id"), + "first_name": obj.get("first_name"), + "last_name": obj.get("last_name"), + "time_zone": obj.get("time_zone"), + "username": obj.get("username") + }) + # store additional fields in additional_properties + for _key in obj.keys(): + if _key not in cls.__properties: + _obj.additional_properties[_key] = obj.get(_key) + + return _obj + +