@binalyze/air-sdk 5.22.4 → 5.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/bindings-v2.d.ts +3 -0
- package/dist/generated/bindings-v2.js +44 -0
- package/dist/generated/bindings-v2.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/sdk/typescript-axios/sdk.gen.d.ts +392 -68
- package/dist/sdk/typescript-axios/sdk.gen.js +1667 -454
- package/dist/sdk/typescript-axios/sdk.gen.js.map +1 -1
- package/dist/sdk/typescript-axios/types.gen.d.ts +10788 -6694
- package/dist/sdk/typescript-axios-v2/client/client.gen.d.ts +2 -0
- package/dist/sdk/typescript-axios-v2/client/client.gen.js +141 -0
- package/dist/sdk/typescript-axios-v2/client/client.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/client/index.d.ts +7 -0
- package/dist/sdk/typescript-axios-v2/client/index.js +16 -0
- package/dist/sdk/typescript-axios-v2/client/index.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/client/types.gen.d.ts +95 -0
- package/dist/sdk/typescript-axios-v2/client/types.gen.js +5 -0
- package/dist/sdk/typescript-axios-v2/client/types.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/client/utils.gen.d.ts +14 -0
- package/dist/sdk/typescript-axios-v2/client/utils.gen.js +175 -0
- package/dist/sdk/typescript-axios-v2/client/utils.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/client.gen.d.ts +12 -0
- package/dist/sdk/typescript-axios-v2/client.gen.js +8 -0
- package/dist/sdk/typescript-axios-v2/client.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/core/auth.gen.d.ts +18 -0
- package/dist/sdk/typescript-axios-v2/core/auth.gen.js +20 -0
- package/dist/sdk/typescript-axios-v2/core/auth.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/core/bodySerializer.gen.d.ts +17 -0
- package/dist/sdk/typescript-axios-v2/core/bodySerializer.gen.js +62 -0
- package/dist/sdk/typescript-axios-v2/core/bodySerializer.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/core/params.gen.d.ts +33 -0
- package/dist/sdk/typescript-axios-v2/core/params.gen.js +94 -0
- package/dist/sdk/typescript-axios-v2/core/params.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/core/pathSerializer.gen.d.ts +33 -0
- package/dist/sdk/typescript-axios-v2/core/pathSerializer.gen.js +125 -0
- package/dist/sdk/typescript-axios-v2/core/pathSerializer.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/sdk/typescript-axios-v2/core/serverSentEvents.gen.js +141 -0
- package/dist/sdk/typescript-axios-v2/core/serverSentEvents.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/core/types.gen.d.ts +78 -0
- package/dist/sdk/typescript-axios-v2/core/types.gen.js +5 -0
- package/dist/sdk/typescript-axios-v2/core/types.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/core/utils.gen.d.ts +19 -0
- package/dist/sdk/typescript-axios-v2/core/utils.gen.js +95 -0
- package/dist/sdk/typescript-axios-v2/core/utils.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/index.d.ts +2 -0
- package/dist/sdk/typescript-axios-v2/index.js +21 -0
- package/dist/sdk/typescript-axios-v2/index.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/sdk.gen.d.ts +695 -0
- package/dist/sdk/typescript-axios-v2/sdk.gen.js +3435 -0
- package/dist/sdk/typescript-axios-v2/sdk.gen.js.map +1 -0
- package/dist/sdk/typescript-axios-v2/types.gen.d.ts +8240 -0
- package/dist/sdk/typescript-axios-v2/types.gen.js +5 -0
- package/dist/sdk/typescript-axios-v2/types.gen.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/page-iterator.d.ts +12 -0
- package/dist/utils/page-iterator.js +23 -0
- package/dist/utils/page-iterator.js.map +1 -0
- package/dist/utils/retry.d.ts +29 -0
- package/dist/utils/retry.js +70 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/typed-errors.d.ts +44 -0
- package/dist/utils/typed-errors.js +82 -0
- package/dist/utils/typed-errors.js.map +1 -0
- package/dist/v2/AIR.d.ts +56 -0
- package/dist/v2/AIR.js +80 -0
- package/dist/v2/AIR.js.map +1 -0
- package/dist/v2/index.d.ts +1 -0
- package/dist/v2/index.js +18 -0
- package/dist/v2/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
// @ts-nocheck
|
|
3
3
|
// This file is auto-generated by @hey-api/openapi-ts
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
5
|
+
exports.endpointGetCasesById0 = exports.endpointSearch1 = exports.endpointSearch0 = exports.endpointFilterByPolicyFilter1 = exports.endpointFilterByPolicyFilter0 = exports.endpointFilterDisks1 = exports.endpointFilterDisks0 = exports.assetsSetMitreAttackDatabaseVersion2 = exports.assetsSetMitreAttackDatabaseVersion = exports.assetsAddTags2 = exports.assetsRemoveTags2 = exports.assetsAddTags = exports.assetsRemoveTags = exports.endpointPurgeAssetDataByFilter1 = exports.endpointPurgeAssetDataByFilter0 = exports.endpointUninstallEndpointsByFilter1 = exports.endpointUninstallEndpointsByFilter0 = exports.endpointUninstallAgentsAndPurgeByFilter2 = exports.endpointUninstallAgentsAndPurgeByFilter1 = exports.endpointUninstallAgentsAndPurgeByFilter0 = exports.endpointImportPpcToExistedEndpoint1 = exports.endpointImportPpcToExistedEndpoint0 = exports.endpointImportPpcAsEndpoint1 = exports.endpointImportPpcAsEndpoint0 = exports.assetsGetMany4 = exports.assetsGetMany3 = exports.endpointGetDeviceNameConflicts1 = exports.endpointGetDeviceNameConflicts0 = exports.endpointGetEndpointsStats1 = exports.endpointGetEndpointsStats0 = exports.endpointGetEndpointsWithTaskCount = exports.assetsGetManyByFilter2 = exports.assetsGetManyByFilter = exports.assetsGetMany2 = exports.assetsGetMany = exports.assetsUpdateLabel2 = exports.assetsUpdateLabel = exports.assetsUpdateTags2 = exports.assetsUpdateTags = exports.endpointExportEndpoints1 = exports.endpointExportEndpoints0 = exports.openApiAliasV2ApiControllerGet = exports.capabilitiesV2ApiControllerGet = exports.paramsGetMitreAttackTactics = exports.paramsEvidenceList = exports.paramsEventLogRecordTypes = exports.paramsEDiscoveryPatterns = exports.paramsGetDroneAnalyzers = exports.loggerDownloadLogsDir = exports.appGetBasicInfo = void 0;
|
|
6
|
+
exports.endpointTaskPurgeLocalData1 = exports.endpointTaskPurgeLocalData0 = exports.assetsGetTasks2 = exports.assetsGetTasks = exports.assetsAssignIsolationTask2 = exports.assetsAssignIsolationTask = exports.assetsAssignVersionUpdateTask2 = exports.assetsAssignVersionUpdateTask = exports.endpointTaskAssignRetrieveLogTask1 = exports.endpointTaskAssignRetrieveLogTask0 = exports.assetsAssignShutdownTask2 = exports.assetsAssignShutdownTask = exports.assetsAssignRebootTask2 = exports.assetsAssignRebootTask = exports.taskGenerateOffNetworkZipPassword = exports.taskDownloadOffNetworkTask = exports.taskImportOffNetworkCollectionToTask = exports.taskCreateOffNetworkTask = exports.taskCancel = exports.taskCancelByFilter = exports.taskDeleteAndPurgeByFilter = exports.taskDeleteByFilter = exports.tasksGetData = exports.taskRenameTask = exports.tasksGetMany = exports.tasksGetById = exports.taskDelete = exports.getTaskDisplayTypes = exports.endpointGroupGetRootGroups = exports.endpointGroupGetChildGroupsOfGroup = exports.endpointTagDeleteTag = exports.endpointTagDeleteAllTags = exports.endpointTagFilterTags = exports.endpointSetMaintenanceMode1 = exports.endpointSetMaintenanceMode0 = exports.endpointUpdateEndpointConnectionRoute1 = exports.endpointUpdateEndpointConnectionRoute0 = exports.endpointDeployCloudAssetsByFilter1 = exports.endpointDeployCloudAssetsByFilter0 = exports.endpointGetCloudAssetDetails1 = exports.endpointGetCloudAssetDetails0 = exports.endpointSyncLdap1 = exports.endpointSyncLdap0 = exports.endpointDownloadLogFile1 = exports.endpointDownloadLogFile0 = exports.endpointSetExcludeFromUpdatesToEndpointsByFilter1 = exports.endpointSetExcludeFromUpdatesToEndpointsByFilter0 = exports.endpointExportCasesByEndpointId1 = exports.endpointExportCasesByEndpointId0 = exports.endpointGetCasesById1 = void 0;
|
|
7
|
+
exports.settingsSaveRfc3161 = exports.settingsSaveLocard = exports.settingsSaveIpRestriction = exports.settingsValidateIpRestriction = exports.settingsSaveCaseAutoClose = exports.settingsSaveFleetAi = exports.settingsSaveInterAct = exports.settingsSaveAutoAssetTagging = exports.settingsSaveEnforceTfa = exports.settingsSaveAgent = exports.settingsValidateS3 = exports.settingsValidateSftp = exports.settingsSaveBackupRestore = exports.settingsSavePolicy = exports.settingsValidateSsl = exports.settingsSaveSsl = exports.settingsValidateSmtp = exports.settingsSaveSmtp = exports.settingsValidateSyslog = exports.settingsSaveSyslog = exports.settingsGetSyslogEventTypes = exports.settingsValidateActiveDirectory = exports.settingsSaveActiveDirectory = exports.settingsValidateTrustedCertificate = exports.settingsDeleteTrustedCertificate = exports.settingsAddTrustedCertificateWithoutValidation = exports.settingsAddTrustedCertificate = exports.settingsGetTrustedCertificates = exports.settingsTestProxy1 = exports.settingsTestProxy0 = exports.settingsSaveProxy = exports.settingsSaveGeneralSettings = exports.settingsGetSettings = exports.tasksTriageV2ApiControllerDeleteOne = exports.tasksTriageV2ApiControllerCancelOne = exports.tasksTriageV2ApiControllerDelete = exports.tasksTriageV2ApiControllerCancel = exports.tasksTriageV2ApiControllerListHuntTasks = exports.tasksV2ApiControllerListTaskAssignments = exports.tasksV2ApiControllerListTaskAssets = exports.tasksV2ApiControllerUpdateTask = exports.tasksV2ApiControllerGetTaskById = exports.taskAssignmentGenerateTaskAssignmentReport = exports.taskAssignmentGet = exports.taskAssignmentDelete = exports.taskAssignmentCancel = exports.tasksAssignmentsGetMany = exports.endpointTaskGetComparableTasksByVendorDeviceId = exports.endpointTaskRetryUpload1 = exports.endpointTaskRetryUpload0 = void 0;
|
|
8
|
+
exports.userPatTokensDelete = exports.userPatTokensRotate = exports.userPatTokensCreate = exports.userPatTokensGetMany = exports.userGroupUpdateGroup = exports.userGroupGetGroup = exports.userGroupDeleteGroup = exports.userGroupCreateGroup = exports.userGroupFilterGroups = exports.userRolesUpdateRole = exports.userRolesGetRole = exports.userRolesDeleteRole = exports.userRolesCreateRole = exports.userRolesGetRoles = exports.userRolesGetPrivileges = exports.userCreateApiUser = exports.userResetUserPassword = exports.userChangePassword = exports.userResetTfa = exports.userManagementUsersPurgeAndDelete = exports.userUpdateUser = exports.userPatchUser = exports.userManagementUsersGet = exports.userDelete = exports.userCreate = exports.userManagementUsersGetMany = exports.authGetUserSessionHistory = exports.authRegeneratePatToken = exports.authRenewOneClickLoginUrl = exports.authGenerateOneClickLoginUrl = exports.authLogin = exports.authOneClickLogin = exports.authUpdateProfile = exports.authCheckAuth = exports.settingsUpdateSsoProvider = exports.settingsDeleteSsoProvider = exports.settingsCreateSsoProvider = exports.settingsGetSsoProviders = exports.settingsSingleSignOnCallback = exports.settingsSaveMandatoryCaseSelection = exports.settingsGetMitreAttackDatabaseReleaseNotes = exports.settingsGetMitreAttackDatabaseVersions = exports.settingsSaveMitreAttackDatabaseSettings = exports.settingsGetAutoUpdateWindows = exports.settingsSaveAutoUpdateSettings = exports.settingsGetAutoUpdateSettings = exports.settingsSaveUninstallationPasswordProtection = exports.settingsSaveBanner = exports.settingsSaveConsoleAddress = exports.settingsValidateConsoleAddress = void 0;
|
|
9
|
+
exports.getManyTriageRules = exports.taxiiFeedsBulkDelete = exports.taxiiFeedsUpdateStatus = exports.taxiiFeedsCancelSync = exports.taxiiFeedsTriggerSync = exports.taxiiFeedsDiscoverCollections = exports.taxiiFeedsGetSyncLogs = exports.taxiiFeedsUpdate = exports.taxiiFeedsGetOne = exports.taxiiFeedsDelete = exports.taxiiFeedsGetIndicatorSummary = exports.taxiiFeedsGetIndicators = exports.taxiiFeedsCreate = exports.taxiiFeedsGetMany = exports.gitRepositoriesGetRepositoryBranches = exports.gitRepositoriesTestConnection = exports.gitRepositoriesBrowseTree = exports.gitRepositoriesGetSyncLogs = exports.gitRepositoriesCancelSync = exports.gitRepositoriesTriggerSync = exports.gitRepositoriesBulkDelete = exports.gitRepositoriesUpdate = exports.gitRepositoriesGetOne = exports.gitRepositoriesDelete = exports.gitRepositoriesCreate = exports.gitRepositoriesGetMany = exports.acquisitionLibraryDeviceV2ApiControllerUpdate = exports.acquisitionLibraryDeviceV2ApiControllerGet = exports.acquisitionLibraryDeviceV2ApiControllerDelete = exports.acquisitionLibraryDeviceV2ApiControllerBulkDelete = exports.acquisitionLibraryDeviceV2ApiControllerCreate = exports.acquisitionLibraryDeviceV2ApiControllerList = exports.acquisitionValidateOsQueries = exports.acquisitionUpdateScheduledImageAcquisition = exports.acquisitionUpdateScheduledEvidenceAcquisition = exports.acquisitionAcquireImage = exports.createOffNetworkAcquisitionTaskFile = exports.acquisitionAssignEvidenceTask2 = exports.acquisitionAssignEvidenceTask = exports.acquisitionDeleteBulk = exports.acquisitionUpdate = exports.acquisitionGet = exports.acquisitionDelete = exports.acquisitionCreate = exports.acquisitionProfilesGetOne = exports.licenseGetQuota = exports.licenseGetSubscriptionDetails = exports.licenseRefreshLicense = exports.licenseSetLicense = exports.licenseGetLicense = void 0;
|
|
10
|
+
exports.evidenceRepositoryUpdateGoogleCloudStorage = exports.evidenceRepositoryCreateGoogleCloudStorage = exports.evidenceRepositoryValidateGoogleCloudStorage = exports.evidenceRepositoryValidateSftpRepository = exports.evidenceRepositoryValidateFtpsRepository = exports.evidenceRepositoryValidateAzureStorage = exports.evidenceRepositoryValidateS3Compatible = exports.evidenceRepositoryValidateAmazonS3 = exports.evidenceRepositoryValidateById = exports.evidenceRepositoriesGetMany = exports.evidenceRepositoriesGet = exports.evidenceRepositoryDelete = exports.evidenceRepositoryUpdateS3Compatible = exports.evidenceRepositoryCreateS3Compatible = exports.evidenceRepositoryUpdateAmazonS3 = exports.evidenceRepositoryCreateAmazonS3 = exports.evidenceRepositoryUpdateAzureStorage = exports.evidenceRepositoryCreateAzureStorage = exports.evidenceRepositoryUpdateFtps = exports.evidenceRepositoryCreateFtps = exports.evidenceRepositoryUpdateSftp = exports.evidenceRepositoryCreateSftp = exports.evidenceRepositoryUpdateSmb = exports.evidenceRepositoryCreateSmb = exports.evidenceGetCasePpcFile = exports.evidenceGetCaseReportFileInfo = exports.evidenceDownloadExternalEvidence = exports.evidenceGetCaseReport1 = exports.evidenceGetCaseReport0 = exports.triageLibraryExportV2ApiControllerDownload = exports.triageLibraryExportV2ApiControllerExport = exports.triageLibraryV2ApiControllerUpdate = exports.triageLibraryV2ApiControllerGet = exports.triageLibraryV2ApiControllerDelete = exports.triageLibraryV2ApiControllerValidate = exports.triageLibraryV2ApiControllerBulkDelete = exports.triageLibraryV2ApiControllerCreate = exports.triageLibraryV2ApiControllerList = exports.deleteTriageRuleTag = exports.createTriageRuleTag = exports.filterTriageRuleTags = exports.createOffNetworkTriageTaskFile = exports.updateScheduledTriageTask = exports.assignTriageTask = exports.validateTriageRule = exports.deleteBulkTriageRules = exports.updateTriageRule = exports.getTriageRule = exports.deleteTriageRule = exports.createTriageRule = void 0;
|
|
11
|
+
exports.caseUserV2ApiControllerFilterUsers = exports.caseAssetV2ApiControllerFilterAssets = exports.caseBulkActionV2ApiControllerArchive = exports.caseBulkActionV2ApiControllerClose = exports.caseExportV2ApiControllerExportCases = exports.caseActivityV2ApiControllerFilterCaseActivities = exports.caseActivityV2ApiControllerFilterGlobalActivities = exports.autoAssetTagUpdateScheduledAatTask = exports.autoAssetTagAssignAutoAssetTaggingTask = exports.autoAssetTagDeleteBulk = exports.autoAssetTagUpdateStatus = exports.autoAssetTagUpdateAutoAssetTag = exports.autoAssetTagGetById = exports.autoAssetTagDelete = exports.autoAssetTagSaveAutoAssetTag = exports.autoAssetTagFilter = exports.organizationGetUsers = exports.organizationAddTags = exports.organizationRemoveTags = exports.organizationUpdateDeploymentToken = exports.organizationUpdateShareableDeploymentStatus = exports.organizationGetOrganizationIdByToken = exports.organizationAssignGroups = exports.organizationRemoveGroups = exports.organizationAssignUsers = exports.organizationRemoveUsers = exports.organizationUpdate = exports.organizationGet = exports.organizationDelete = exports.organizationCheckNameExists = exports.organizationCreate = exports.organizationsGetMany = exports.policyCheckNameExists = exports.policyUpdateStatus = exports.policyUpdate = exports.policyGet = exports.policyDelete = exports.policyUpdatePriorities = exports.policyCreate = exports.policyFilter = exports.policyGetMatchStats = exports.auditLogsUpdateEventFilter = exports.auditLogsGetEventFilter = exports.auditLogsGetEventTypes = exports.auditLogExport = exports.auditLogsGetMany = exports.notificationMarkAsRead = exports.notificationMarkAllAsRead = exports.notificationFilter = exports.notificationDeleteAll = void 0;
|
|
12
|
+
exports.caseCategoriesCreate = exports.caseCategoriesFilter = exports.caseTagsDelete = exports.caseTagsCreate = exports.caseTagsFilter = exports.caseRemoveTaskAssignmentFromCase = exports.caseRemoveEndpointsFromCaseByFilter1 = exports.caseRemoveEndpointsFromCaseByFilter0 = exports.casesGetUsers = exports.caseImportTaskAssignment = exports.caseEditCaseNote = exports.caseDeleteCaseNote = exports.caseAddCaseNote = exports.caseExportActivities = exports.casesGetActivities = exports.casesGetEndpoints2 = exports.casesGetEndpoints = exports.caseFilterTaskAssignments = exports.casesGetTasks = exports.casesChangeOwner = exports.casesArchiveByFilter = exports.casesCloseByFilter = exports.caseArchiveCase = exports.caseReopenCase = exports.casesClose = exports.casesCreate = exports.casesGetMany = exports.caseUpdateCase = exports.casesGet = exports.caseExportCaseEndpoints1 = exports.caseExportCaseEndpoints0 = exports.caseExportCaseNotes = exports.caseExportCases = exports.casesCheckName = exports.caseV2ApiControllerUpdateCase = exports.caseV2ApiControllerGetCaseByIdOrName = exports.caseV2ApiControllerCreateCase = exports.caseV2ApiControllerFilterCases = exports.caseActionV2ApiControllerRemoveAssets = exports.caseActionV2ApiControllerArchive = exports.caseActionV2ApiControllerReopen = exports.caseActionV2ApiControllerClose = exports.caseTaskAssignmentV2ApiControllerRemoveTaskAssignment = exports.caseTaskAssignmentV2ApiControllerImportTaskAssignments = exports.caseTaskAssignmentV2ApiControllerFilterTaskAssignments = exports.caseNoteV2ApiControllerUpdateNote = exports.caseNoteV2ApiControllerDeleteNote = exports.caseNoteV2ApiControllerCreateNote = exports.caseNoteV2ApiControllerFilterNotes = exports.caseTaskV2ApiControllerFilterTasks = void 0;
|
|
13
|
+
exports.interactLibraryFileV2ApiControllerDelete = exports.interactLibraryFileV2ApiControllerBulkDelete = exports.interactLibraryFileV2ApiControllerUpload = exports.interactLibraryFileV2ApiControllerList = exports.interactLibraryTagV2ApiControllerUpdate = exports.interactLibraryTagV2ApiControllerGet = exports.interactLibraryTagV2ApiControllerDelete = exports.interactLibraryTagV2ApiControllerBulkDelete = exports.interactLibraryTagV2ApiControllerCreate = exports.interactLibraryTagV2ApiControllerList = exports.interactLibrarySnippetV2ApiControllerUpdate = exports.interactLibrarySnippetV2ApiControllerGet = exports.interactLibrarySnippetV2ApiControllerDelete = exports.interactLibrarySnippetV2ApiControllerBulkDelete = exports.interactLibrarySnippetV2ApiControllerCreate = exports.interactLibrarySnippetV2ApiControllerList = exports.interactCommandSnippetTagsUpdate = exports.interactCommandSnippetTagsDelete = exports.interactCommandSnippetTagsCreate = exports.interactCommandSnippetTagsGetMany = exports.interactCommandSnippetsBulkDelete = exports.interactCommandSnippetsUpdate = exports.interactCommandSnippetsGetOne = exports.interactCommandSnippetsDelete = exports.interactCommandSnippetsCreate = exports.interactCommandSnippetsGetMany = exports.interactLibraryDelete = exports.interactLibraryDeleteBulk = exports.interactLibraryDownload = exports.interactLibraryUpload = exports.interactLibraryCheckLibraryFileExists = exports.interactLibraryFilter = exports.interactSessionGetCommandMessage = exports.interactSessionClose = exports.interactSessionInterruptCommand = exports.interactSessionExecuteAsyncCommand = exports.interactSessionExecuteCommand = exports.interactGetInterActShellReport = exports.interactShellAssignTask = exports.interactCommandsDownloadResultFile = exports.interactCommandsGetMany = exports.exportClosureReportAssets = exports.exportClosureReportFlags = exports.exportClosureReportFindings = exports.updateCaseCloseReport2 = exports.getCaseCloseReport2 = exports.updateCaseCloseReport = exports.getCaseCloseReport = exports.getCaseCloseReportHistory = exports.caseCategoriesDelete = void 0;
|
|
14
|
+
exports.investigationCreateExportRequestForFlags = exports.investigationExportFlags = exports.investigationGetEvidenceRelationData = exports.investigationGetEvidenceData = exports.investigationGetEvidenceDataStructure = exports.investigationGetInvestigationMigrationsSummary = exports.investigationUpdateInvestigation = exports.investigationGetInvestigationById = exports.investigationSqlV2ApiControllerExecuteSqlQuery = exports.investigationSqlV2ApiControllerGetSchema = exports.investigationEvidenceFlagV2ApiControllerUnflagEvidence = exports.investigationEvidenceFlagV2ApiControllerFlagEvidence = exports.flagsLibraryV2ApiControllerUpdate = exports.flagsLibraryV2ApiControllerGet = exports.flagsLibraryV2ApiControllerDelete = exports.flagsLibraryV2ApiControllerCreate = exports.flagsLibraryV2ApiControllerList = exports.cloudAccountsSyncAllCloudAccount = exports.cloudAccountsSyncCloudAccount = exports.cloudAccountsUpdateCloudAccount = exports.cloudAccountsGetCloudAccountById = exports.cloudAccountsDelete = exports.cloudAccountsExport = exports.cloudAccountsGetConfig = exports.cloudAccountsCreateCloudAccount = exports.cloudAccountsFilter = exports.systemApiTokensUpdate = exports.systemApiTokensGetOne = exports.systemApiTokensDelete = exports.systemApiTokensCreate = exports.systemApiTokensGetMany = exports.apiTokensBulkDelete = exports.apiTokensUpdate = exports.apiTokensGetOne = exports.apiTokensDelete = exports.apiTokensGetCurrent = exports.apiTokensCreate = exports.apiTokensGetMany = exports.baselineGetComparisonReportByVendorDeviceId = exports.baselineGetComparisonReport = exports.baselineAcquire = exports.baselineCompare = exports.multipartUploadUploadPart = exports.multipartUploadDeleteFileParts = exports.multipartUploadIsReady = exports.multipartUploadFinalize = exports.multipartUploadInitialize = exports.multipartUploadInitializeHead = exports.interactCommandV2ApiControllerList = exports.interactLibraryFileV2ApiControllerDownload = void 0;
|
|
15
|
+
exports.investigationFlagCreateFlag = exports.investigationFlagFilterFlags = exports.investigationReportDownloadPdfReport = exports.investigationReportGeneratePdfReport = exports.investigationReportUpdateReport = exports.investigationReportGetReport = exports.investigationReportDeleteReport = exports.investigationReportCreateReport = exports.investigationReportFilterReports = exports.investigationReportExportReports = exports.investigationExclusionDeleteIndividualFindingExclusionRule = exports.investigationExclusionApplyFindingExclusionRuleForAllAssets = exports.investigationExclusionApplyFindingExclusionRuleForOrganization = exports.investigationExclusionGetExclusionReasons = exports.investigationExclusionFilterFindingExclusionRules = exports.investigationExclusionDeleteFindingExclusionRule = exports.investigationExclusionGetFindingExclusionRulesMatches = exports.investigationExclusionBulkAddFindingExclusionRules = exports.investigationExclusionAddFindingExclusionRule = exports.investigationImportTornadoEvidenceToInvestigation1 = exports.investigationImportTornadoEvidenceToInvestigation0 = exports.investigationCreateExportRequestForFindings = exports.investigationExportFindingsData = exports.investigationGetInvestigationHubDataImportProgress = exports.investigationGetInvestigationTaskAssignmentDataImportProgress = exports.investigationGetInvestigationTaskAssignmentForImportedEvidence = exports.investigationUpdateInvestigationFinding = exports.investigationMarkInvestigationEvidenceAsFinding = exports.investigationRetryImportTaskAssignment = exports.investigationImportPstEvidencesToInvestigation = exports.investigationGetImportErrors = exports.investigationDeleteImport = exports.investigationGetAllImports = exports.investigationImportDataToInvestigationEvidence = exports.investigationUpdateInvestigationEvidence = exports.investigationCreateInvestigationEvidence = exports.investigationUpdateEvidenceNote = exports.investigationFlagEvidence = exports.investigationRemoveEvidenceFlag = exports.investigationEvidenceCounts = exports.investigationGlobalSearch = exports.investigationGetMitreMatches = exports.investigationGetFindingsSummary = exports.investigationFilterEndpointFindings = exports.investigationGetFindingDataStructure = exports.investigationGetSummary = exports.investigationGetSectionsByEndpoints = exports.investigationGetAssetsByInvestigationId = exports.investigationCreateExportRequestForSectionData = exports.investigationExportEvidenceData = void 0;
|
|
16
|
+
exports.assetBulkActionV2ApiControllerVersionUpdate = exports.assetBulkActionV2ApiControllerRetrieveLogs = exports.assetBulkActionV2ApiControllerUnisolate = exports.assetBulkActionV2ApiControllerIsolate = exports.assetBulkActionV2ApiControllerShutdown = exports.assetBulkActionV2ApiControllerReboot = exports.assetActionV2ApiControllerImportPpcToExistingAsset = exports.assetActionV2ApiControllerDisableMaintenance = exports.assetActionV2ApiControllerEnableMaintenance = exports.assetActionV2ApiControllerVersionUpdate = exports.assetActionV2ApiControllerRetrieveLogs = exports.assetActionV2ApiControllerUnisolate = exports.assetActionV2ApiControllerIsolate = exports.assetActionV2ApiControllerShutdown = exports.assetActionV2ApiControllerReboot = exports.processorGetProcessorTypeByAssetType = exports.processorGetProcessorsByAssetType = exports.processorGetAllProcessors = exports.recentActivitiesCreate = exports.recentActivitiesGetMany = exports.relayProUpdateRelayUrl = exports.relayProRemove = exports.relayServerUpdateAddress = exports.relayServerRemoveRelayServer = exports.relayServerAssignFixUpdateRequiredIssueTask = exports.relayServerAssignRetrieveLogTask = exports.relayServerAssignRebootTask = exports.relayServerFilter = exports.relayServerGetById = exports.relayServerUpdateLabel = exports.relayServerUpdateTags = exports.investigationTaskExecutionLogFilterTaskExecutionLogs = exports.investigationTaskExecutionLogGetTaskExecutionLogs = exports.investigationTimelineCreateExportRequestForTimeline = exports.investigationTimelineExportTimelineData = exports.investigationTimelineGetTotalTimelineCount = exports.investigationTimelineGetTimelineStructure = exports.investigationTimelineFilterTimelineEvents = exports.investigationTimelineGetTimelineEventCountByAdvancedFilter = exports.investigationAdvancedFilterUpdateFilter = exports.investigationAdvancedFilterDeleteFilter = exports.investigationAdvancedFilterCreateFilter = exports.investigationAdvancedFilterGetFilters = exports.investigationCommentDeleteComment = exports.investigationCommentCommentEvidence = exports.investigationCommentFilterComments = exports.investigationActivityMarkAsRead = exports.investigationActivityFilter = exports.investigationFlagUpdateFlag = exports.investigationFlagDeleteFlag = void 0;
|
|
17
|
+
exports.investigationDataUsageExportActualDataUsages = exports.investigationDataUsageGetActualDataUsages = exports.eventSubscriptionTestEventSubscription = exports.eventSubscriptionDeleteBulkEventSubscriptions = exports.eventSubscriptionSubscriptionEventNames = exports.eventSubscriptionUpdateEventSubscription = exports.eventSubscriptionGetEventSubscription = exports.eventSubscriptionDeleteEventSubscription = exports.eventSubscriptionCreateEventSubscription = exports.eventSubscriptionFilterEventSubscriptions = exports.webhookDeleteBulk = exports.webhookUpdate = exports.webhookGet = exports.webhookDelete = exports.webhookCreate = exports.webhookFilter = exports.webhookFilterParsers = exports.assetInteractMessageV2ApiControllerGetSessionReport = exports.assetInteractMessageV2ApiControllerDownloadMessageOutput = exports.assetInteractMessageV2ApiControllerGetMessage = exports.assetInteractMessageV2ApiControllerListSessionsForAsset = exports.assetAcquisitionV2ApiControllerFilterAcquisitionTasks = exports.assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment = exports.assetAcquisitionV2ApiControllerCancelAcquisition = exports.assetAcquisitionV2ApiControllerAcquire = exports.assetTriageV2ApiControllerDeleteTriageAssignment = exports.assetTriageV2ApiControllerCancelTriage = exports.assetTriageV2ApiControllerRunTriage = exports.assetTriageV2ApiControllerFilterTriageTasks = exports.assetV2ApiControllerUpdateLabel = exports.assetV2ApiControllerReplaceTags = exports.assetV2ApiControllerGetAsset = exports.assetV2ApiControllerDeleteAsset = exports.assetV2ApiControllerFilterAssets = exports.assetV2ApiControllerExportAssets = exports.assetV2ApiControllerGetStats = exports.assetInteractV2ApiControllerCloseSession = exports.assetInteractV2ApiControllerCancelCommand = exports.assetInteractV2ApiControllerRunCommand = exports.assetInteractMessageV2ApiControllerListForAsset = exports.assetBulkTriageV2ApiControllerRunTriage = exports.assetBulkMetadataV2ApiControllerImportOffNetworkPpc = exports.assetBulkMetadataV2ApiControllerDeleteAssets = exports.assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = exports.assetBulkMetadataV2ApiControllerSetConnectionRoute = exports.assetBulkMetadataV2ApiControllerSetUpdateExclusion = exports.assetBulkMetadataV2ApiControllerRemoveTags = exports.assetBulkMetadataV2ApiControllerAddTags = exports.assetBulkActionV2ApiControllerDisableMaintenance = exports.assetBulkActionV2ApiControllerEnableMaintenance = void 0;
|
|
18
|
+
exports.imageEvidenceAcquisitionProfilesDelete = exports.imageEvidenceAcquisitionProfilesCreate = exports.imageEvidenceAcquisitionProfilesGetMany = exports.cloudAcquisitionLibraryApiControllerUpdate = exports.cloudAcquisitionLibraryApiControllerGet = exports.cloudAcquisitionLibraryApiControllerDelete = exports.cloudAcquisitionLibraryApiControllerBulkDelete = exports.cloudAcquisitionLibraryApiControllerCreate = exports.cloudAcquisitionLibraryApiControllerList = exports.cloudAcquisitionProfilesUpdate = exports.cloudAcquisitionProfilesGetOne = exports.cloudAcquisitionProfilesDelete = exports.cloudAcquisitionProfilesCreate = exports.cloudAcquisitionProfilesGetMany = exports.fullTextSearchTaskUpdateScheduledFullTextSearchTask = exports.fullTextSearchTaskAssign = exports.fullTextSearchProfilesDeleteBulk = exports.fullTextSearchProfilesUpdate = exports.fullTextSearchProfilesGetOne = exports.fullTextSearchProfilesDelete = exports.fullTextSearchProfilesCreate = exports.fullTextSearchProfilesGetMany = exports.automationHubDisableAutomation = exports.automationHubEnableAutomation = exports.automationHubGetAutomationChangeHistory = exports.automationHubGetAutomationExecutions = exports.automationHubUpdateAutomation = exports.automationHubGetAutomation = exports.automationHubDeleteAutomation = exports.automationHubExecuteIntegration = exports.automationHubGetTags = exports.automationHubGetTriggerTypes = exports.automationHubTestAction = exports.automationHubGetActionTypes = exports.automationHubCreateAutomation = exports.automationHubFilterAutomations = exports.automationHubGetExecutionHistory = exports.presetFiltersUpdate = exports.presetFiltersDelete = exports.presetFiltersCreate = exports.presetFiltersGetMany = exports.investigationDataUsageCreateFilter = exports.investigationDataUsageUpdateFilter = exports.investigationDataUsageGetFilter = exports.investigationDataUsageDeleteFilter = exports.investigationDataUsageGetFilters = exports.investigationDataUsageGetDataUsageFilters = exports.investigationDataUsageGetHistoricalDataUsageStatistics = exports.investigationDataUsageGetActualDataUsageStatistics = exports.investigationDataUsageCreateExportRequestForActualDataUsages = void 0;
|
|
19
|
+
exports.diskImageAcquisitionTasksDownload = exports.diskImageAcquisitionTasksCreate = exports.diskImageAcquisitionLibraryApiControllerUpdate = exports.diskImageAcquisitionLibraryApiControllerGet = exports.diskImageAcquisitionLibraryApiControllerDelete = exports.diskImageAcquisitionLibraryApiControllerBulkDelete = exports.diskImageAcquisitionLibraryApiControllerCreate = exports.diskImageAcquisitionLibraryApiControllerList = exports.imageEvidenceAcquisitionProfilesDeleteBulk = exports.imageEvidenceAcquisitionProfilesUpdate = exports.imageEvidenceAcquisitionProfilesGetOne = void 0;
|
|
19
20
|
const client_1 = require("./client");
|
|
20
21
|
const client_gen_1 = require("./client.gen");
|
|
21
22
|
const appGetBasicInfo = (options) => {
|
|
@@ -110,6 +111,51 @@ const paramsGetMitreAttackTactics = (options) => {
|
|
|
110
111
|
});
|
|
111
112
|
};
|
|
112
113
|
exports.paramsGetMitreAttackTactics = paramsGetMitreAttackTactics;
|
|
114
|
+
/**
|
|
115
|
+
* Get caller capabilities
|
|
116
|
+
* Returns the authenticated caller (type user|apiToken, id, name), the canonical resource:action privileges granted by its roles, the boolean feature flags, the v2 apiVersion and the stable/beta stability tiers, inside the standard envelope. Requires authentication but no specific privilege; every caller may inspect its own capabilities. Takes no parameters.
|
|
117
|
+
*/
|
|
118
|
+
const capabilitiesV2ApiControllerGet = (options) => {
|
|
119
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
120
|
+
responseType: 'json',
|
|
121
|
+
security: [
|
|
122
|
+
{
|
|
123
|
+
in: 'cookie',
|
|
124
|
+
name: 'Authentication',
|
|
125
|
+
type: 'apiKey'
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
scheme: 'bearer',
|
|
129
|
+
type: 'http'
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
url: '/api/v2/_/capabilities',
|
|
133
|
+
...options
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
exports.capabilitiesV2ApiControllerGet = capabilitiesV2ApiControllerGet;
|
|
137
|
+
/**
|
|
138
|
+
* Get the OpenAPI document
|
|
139
|
+
* Returns the published OpenAPI 3.x document (the same content as /swagger.json) as raw application/json, deliberately WITHOUT the standard v2 envelope so SDK/CLI generators and LLM clients can consume the spec directly. Answers 503 until the document has been generated at startup. Takes no parameters.
|
|
140
|
+
*/
|
|
141
|
+
const openApiAliasV2ApiControllerGet = (options) => {
|
|
142
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
143
|
+
security: [
|
|
144
|
+
{
|
|
145
|
+
scheme: 'bearer',
|
|
146
|
+
type: 'http'
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
in: 'cookie',
|
|
150
|
+
name: 'Authentication',
|
|
151
|
+
type: 'apiKey'
|
|
152
|
+
}
|
|
153
|
+
],
|
|
154
|
+
url: '/api/v2/_/openapi',
|
|
155
|
+
...options
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
exports.openApiAliasV2ApiControllerGet = openApiAliasV2ApiControllerGet;
|
|
113
159
|
const endpointExportEndpoints0 = (options) => {
|
|
114
160
|
return (options.client ?? client_gen_1.client).get({
|
|
115
161
|
security: [
|
|
@@ -1743,7 +1789,7 @@ const taskAssignmentGenerateTaskAssignmentReport = (options) => {
|
|
|
1743
1789
|
exports.taskAssignmentGenerateTaskAssignmentReport = taskAssignmentGenerateTaskAssignmentReport;
|
|
1744
1790
|
/**
|
|
1745
1791
|
* Get task by id
|
|
1746
|
-
*
|
|
1792
|
+
* Fetch one Binalyze AIR task by UUID using GET /api/v2/tasks/{taskId}. Type-independent: works for triage, acquisition, interactShell and other task types. The response wraps the single task in result.entities[0] and is polymorphic: it carries a type/subtype discriminator plus only the matching domain block (triage{} / acquisition{} / interactShell{}); other blocks are absent, not null. It also returns counts{assigned,completed,failed,cancelled}, organization{id,name}, cases[], schedule (null when not scheduled) and taskAssignments{taskAssignmentCount,taskAssignmentsUrl}. Use air-tasks-assignments for the full per-endpoint assignment list and air-tasks-assets for the targeted assets. Only a task UUID is accepted; names and hostnames are rejected. A 404 'Task not found' also covers tasks outside the caller's organizations (leak-safe), so do not infer the task does not exist.
|
|
1747
1793
|
*/
|
|
1748
1794
|
const tasksV2ApiControllerGetTaskById = (options) => {
|
|
1749
1795
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -1766,6 +1812,7 @@ const tasksV2ApiControllerGetTaskById = (options) => {
|
|
|
1766
1812
|
exports.tasksV2ApiControllerGetTaskById = tasksV2ApiControllerGetTaskById;
|
|
1767
1813
|
/**
|
|
1768
1814
|
* Update a task (rename + schedule; dryRun query preview)
|
|
1815
|
+
* Update one Binalyze AIR task via PATCH /api/v2/tasks/{taskId}. MUTATING. Send only the fields the user wants to change. Scheduled tasks (status=scheduled) accept all fields: taskName, caseIdOrName, schedule, ruleIds (triage), assets, profileIdOrName (acquisition), mitreEnabled, droneEnabled, eventLogRecordsConfig, cpuLimit, imageOptions (image acquisition). Tasks in any other status (processing, assigned, completed, cancelled, failed) accept only taskName and caseIdOrName; every other field is NOT applied -- the call still returns 200 but the field comes back in skippedFields (e.g. 'cpuLimit cannot be updated for processing task; skipped'). This is by design, not an error: a running task cannot change its execution config. When skippedFields is non-empty, tell the user which fields were skipped and why, and that scheduled-only fields require the task to be in status=scheduled (check with air-tasks-get first if unsure). Unschedule is forbidden: never send schedule=null; to stop a task use the hunt cancel/delete tools instead. Renaming to the same name fails 400. An empty body returns errors[0] NOTHING_CHANGED. 404 'Task not found' also covers tasks outside the caller's organizations (leak-safe). The success response returns the updated task in result.entities[0], same shape as air-tasks-get.
|
|
1769
1816
|
*/
|
|
1770
1817
|
const tasksV2ApiControllerUpdateTask = (options) => {
|
|
1771
1818
|
return (options.client ?? client_gen_1.client).patch({
|
|
@@ -1792,7 +1839,7 @@ const tasksV2ApiControllerUpdateTask = (options) => {
|
|
|
1792
1839
|
exports.tasksV2ApiControllerUpdateTask = tasksV2ApiControllerUpdateTask;
|
|
1793
1840
|
/**
|
|
1794
1841
|
* List a task assets
|
|
1795
|
-
*
|
|
1842
|
+
* List the assets targeted by one Binalyze AIR task using GET /api/v2/tasks/{taskId}/assets. Paginated; entities use the same shape as GET /api/v2/assets (endpoint block with platform, onlineStatus, lastSeen, etc.). Use this when the user asks which hosts/assets a task ran on or targets; this is the resolver for the assetsUrl field seen in task and hunt list responses. It does NOT include per-asset assignment status or progress; for that use air-tasks-assignments. 404 'Task not found' also covers tasks outside the caller's organizations (leak-safe). Placeholder defaults such as pageNumber=1 or pageSize=20 are ignored.
|
|
1796
1843
|
*/
|
|
1797
1844
|
const tasksV2ApiControllerListTaskAssets = (options) => {
|
|
1798
1845
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -1815,7 +1862,7 @@ const tasksV2ApiControllerListTaskAssets = (options) => {
|
|
|
1815
1862
|
exports.tasksV2ApiControllerListTaskAssets = tasksV2ApiControllerListTaskAssets;
|
|
1816
1863
|
/**
|
|
1817
1864
|
* List a task assignments
|
|
1818
|
-
*
|
|
1865
|
+
* List the per-endpoint task assignments of one Binalyze AIR task using GET /api/v2/tasks/{taskId}/task-assignments. Paginated; this is the resolver for the taskAssignmentsUrl field in task detail responses. Each entity carries id, taskId, name, type, endpointId, endpointName, status, progress, hasDroneData, durations, metadata, organization{id,name}, response and cases[]. Use this when the user wants per-host progress, per-host status, or which endpoints completed/failed for a task; use air-tasks-assets for asset details instead. 404 'Task not found' also covers tasks outside the caller's organizations (leak-safe). Placeholder defaults such as pageNumber=1 are ignored.
|
|
1819
1866
|
*/
|
|
1820
1867
|
const tasksV2ApiControllerListTaskAssignments = (options) => {
|
|
1821
1868
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -1838,7 +1885,7 @@ const tasksV2ApiControllerListTaskAssignments = (options) => {
|
|
|
1838
1885
|
exports.tasksV2ApiControllerListTaskAssignments = tasksV2ApiControllerListTaskAssignments;
|
|
1839
1886
|
/**
|
|
1840
1887
|
* List hunt (triage) tasks
|
|
1841
|
-
*
|
|
1888
|
+
* List Binalyze AIR hunt (triage) tasks using GET /api/v2/hunt. Hunt is the public v2 alias for triage tasks; the list is task-centric and paginated. Each entity carries id, taskName, status, rules[] enriched as {id,name,engine}, totalMatched, assignment counters, assets{assetCount,assetsUrl}, schedule, createdBy and timestamps. Use this when the user asks to list hunts, triage tasks, IOC/YARA scans, or wants to find a hunt task id before cancelling or deleting it. The taskId values returned here feed air-tasks-get, air-hunt-cancel, air-hunt-delete and the bulk variants. Placeholder defaults such as pageNumber=1 are ignored; sortBy accepts only createdAt, taskName, status, assignmentCount.
|
|
1842
1889
|
*/
|
|
1843
1890
|
const tasksTriageV2ApiControllerListHuntTasks = (options) => {
|
|
1844
1891
|
return (options?.client ?? client_gen_1.client).get({
|
|
@@ -1861,6 +1908,7 @@ const tasksTriageV2ApiControllerListHuntTasks = (options) => {
|
|
|
1861
1908
|
exports.tasksTriageV2ApiControllerListHuntTasks = tasksTriageV2ApiControllerListHuntTasks;
|
|
1862
1909
|
/**
|
|
1863
1910
|
* Bulk cancel hunt (triage) tasks (body dryRun preview)
|
|
1911
|
+
* Cancel one or more Binalyze AIR hunt (triage) tasks via POST /api/v2/hunt/cancel. MUTATING: cancels ALL active assignments of each task across all its assets; cancellation is queued asynchronously and an abort signal is sent to the agents. Task records and downloaded data are kept (use air-hunt-bulk-delete to remove them). taskIds takes task UUIDs from air-hunt-list. Setting all=true sends taskIds='all' and cancels EVERY active (scheduled/assigned/processing) hunt task in the required organizations scope -- body organizations (ids/names or "all") is REQUIRED for taskIds='all' and optional for explicit id lists; confirm with the user before using it. dryRun defaults to true: the preview (200) returns result.entities[] = {taskId, taskName, willCancelAssignmentCount, status} without cancelling anything. ALWAYS run the preview first and show the user what would be cancelled; pass dryRun=false only after the user explicitly confirms the exact task list. The real cancel returns cancelledAssignmentCount and status 'cancelling' instead. Both forms include warnings[] for skipped tasks (e.g. already in a terminal state). 400 'No matching tasks found' means no given id resolved to an accessible hunt task. For a single task prefer air-hunt-cancel, which returns a leak-safe 404 for unknown ids.
|
|
1864
1912
|
*/
|
|
1865
1913
|
const tasksTriageV2ApiControllerCancel = (options) => {
|
|
1866
1914
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -1887,6 +1935,7 @@ const tasksTriageV2ApiControllerCancel = (options) => {
|
|
|
1887
1935
|
exports.tasksTriageV2ApiControllerCancel = tasksTriageV2ApiControllerCancel;
|
|
1888
1936
|
/**
|
|
1889
1937
|
* Bulk delete hunt (triage) tasks (body dryRun preview)
|
|
1938
|
+
* Delete one or more Binalyze AIR hunt (triage) tasks via POST /api/v2/hunt/delete. DESTRUCTIVE and irreversible: removes the task records, ALL assignments, and downloaded files/artifacts; nothing remains in history. Active tasks additionally get an agent cancel signal. Use air-hunt-bulk-cancel to merely stop tasks while keeping records. taskIds takes task UUIDs from air-hunt-list. Setting all=true sends taskIds='all' and deletes EVERY hunt task (active and finished) in the required organizations scope -- body organizations (ids/names or "all") is REQUIRED for taskIds='all' and optional for explicit id lists. dryRun defaults to true: the preview (200) returns result.entities[] = {taskId, taskName, willDeleteAssignmentCount, affectedAssets[], status, createdAt} without deleting anything. ALWAYS run the preview first and show the user what would be deleted; pass dryRun=false only after the user explicitly confirms the exact task list. The real delete returns deletedAssignmentCount instead of willDeleteAssignmentCount. 400 'No matching tasks found' means no given id resolved to an accessible hunt task. For a single task prefer air-hunt-delete (leak-safe 404).
|
|
1890
1939
|
*/
|
|
1891
1940
|
const tasksTriageV2ApiControllerDelete = (options) => {
|
|
1892
1941
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -1913,6 +1962,7 @@ const tasksTriageV2ApiControllerDelete = (options) => {
|
|
|
1913
1962
|
exports.tasksTriageV2ApiControllerDelete = tasksTriageV2ApiControllerDelete;
|
|
1914
1963
|
/**
|
|
1915
1964
|
* Cancel a single hunt (triage) task (dryRun query preview)
|
|
1965
|
+
* Cancel a single Binalyze AIR hunt (triage) task via POST /api/v2/hunt/{taskId}/cancel. MUTATING: cancels ALL active assignments of this task across all its assets; cancellation is queued asynchronously and an abort signal is sent to the agents. The task record and downloaded data are kept (use air-hunt-delete to remove them). Use this when the user wants to stop exactly one hunt/triage task; use air-hunt-bulk-cancel for several tasks at once. The taskId comes from air-hunt-list or air-tasks-get. Success (200) returns result.entities[] = {taskId, taskName, cancelledAssignmentCount, status} plus warnings[] (e.g. skipped when nothing is active). 404 'Task not found' also covers hunt tasks outside the caller's organizations (leak-safe); it does not necessarily mean the id is wrong.
|
|
1916
1966
|
*/
|
|
1917
1967
|
const tasksTriageV2ApiControllerCancelOne = (options) => {
|
|
1918
1968
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -1935,6 +1985,7 @@ const tasksTriageV2ApiControllerCancelOne = (options) => {
|
|
|
1935
1985
|
exports.tasksTriageV2ApiControllerCancelOne = tasksTriageV2ApiControllerCancelOne;
|
|
1936
1986
|
/**
|
|
1937
1987
|
* Delete a single hunt (triage) task (dryRun query preview)
|
|
1988
|
+
* Delete a single Binalyze AIR hunt (triage) task via POST /api/v2/hunt/{taskId}/delete. DESTRUCTIVE and irreversible: removes the task record, ALL its assignments, and downloaded files/artifacts; nothing remains in history. An active task additionally gets an agent cancel signal. Use air-hunt-cancel to merely stop the task while keeping records. Use this for exactly one task; use air-hunt-bulk-delete for several tasks at once. The taskId comes from air-hunt-list or air-tasks-get. dryRun defaults to true and is sent as the ?dryRun=true query parameter: the preview (200) returns result.entities[] = {taskId, taskName, willDeleteAssignmentCount, affectedAssets[], status, createdAt} without deleting anything. ALWAYS preview first and show the user; pass dryRun=false only after the user explicitly confirms this exact task. The real delete returns deletedAssignmentCount instead of willDeleteAssignmentCount. 404 'Task not found' also covers tasks outside the caller's organizations (leak-safe).
|
|
1938
1989
|
*/
|
|
1939
1990
|
const tasksTriageV2ApiControllerDeleteOne = (options) => {
|
|
1940
1991
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -3568,6 +3619,7 @@ const acquisitionValidateOsQueries = (options) => {
|
|
|
3568
3619
|
exports.acquisitionValidateOsQueries = acquisitionValidateOsQueries;
|
|
3569
3620
|
/**
|
|
3570
3621
|
* List device acquisition profiles
|
|
3622
|
+
* List Binalyze AIR device (evidence) acquisition profiles via GET /api/v2/libraries/acquisition/device. Read-only and paginated. Each entity is a profile summary: id, name, organizationIds, averageTime, createdAt/createdBy, lastUsedAt/lastUsedBy, deletable, and a detailsUrl. Per-OS configs (windows/linux/macos/aix/eDiscovery) are NOT included; use air-acquisition-device-get for one profile's full config. Use this when the user asks to list or search evidence acquisition profiles, or needs a profile id or exact name before get, update, delete, or bulk delete. sortBy accepts only name, createdBy, createdAt, lastUsedAt, lastUsedBy (default createdAt). Profiles with empty organizationIds are global.
|
|
3571
3623
|
*/
|
|
3572
3624
|
const acquisitionLibraryDeviceV2ApiControllerList = (options) => {
|
|
3573
3625
|
return (options?.client ?? client_gen_1.client).get({
|
|
@@ -3590,6 +3642,7 @@ const acquisitionLibraryDeviceV2ApiControllerList = (options) => {
|
|
|
3590
3642
|
exports.acquisitionLibraryDeviceV2ApiControllerList = acquisitionLibraryDeviceV2ApiControllerList;
|
|
3591
3643
|
/**
|
|
3592
3644
|
* Create device acquisition profile
|
|
3645
|
+
* Create a Binalyze AIR device (evidence) acquisition profile via POST /api/v2/libraries/acquisition/device. MUTATING: persists a new profile in the acquisition library. Returns 200 with entities[0] = the created profile detail. `name` is required (alphanumeric) plus at least one config block: windows, linux, macos, aix (each with evidenceList/artifactList/customContentProfiles/networkCapture) or eDiscovery ({patterns:[{pattern,category}]}). Any subset of OS blocks is accepted. dryRun DEFAULTS TO TRUE: the first call validates and returns the would-be entity without persisting anything; pass dryRun=false only to actually create after the user confirms. Get the exact evidence/artifact keys from an existing profile (air-acquisition-device-get) when cloning or when unsure of valid values.
|
|
3593
3646
|
*/
|
|
3594
3647
|
const acquisitionLibraryDeviceV2ApiControllerCreate = (options) => {
|
|
3595
3648
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -3616,6 +3669,7 @@ const acquisitionLibraryDeviceV2ApiControllerCreate = (options) => {
|
|
|
3616
3669
|
exports.acquisitionLibraryDeviceV2ApiControllerCreate = acquisitionLibraryDeviceV2ApiControllerCreate;
|
|
3617
3670
|
/**
|
|
3618
3671
|
* Bulk delete device acquisition profiles
|
|
3672
|
+
* Bulk delete Binalyze AIR device (evidence) acquisition profiles via POST /api/v2/libraries/acquisition/device/delete. MUTATING and irreversible. Resolution is tolerant: unknown or ambiguous items are skipped and reported in warnings[] (action: 'skipped') instead of failing the whole request. Profiles referenced by running/scheduled tasks or system profiles are also skipped with a warning. dryRun DEFAULTS TO TRUE: the first call returns entities[] of what would be deleted; pass dryRun=false only to actually delete after the user confirms. A real delete returns deletedCount plus warnings[]. Use this for several profiles at once; use air-acquisition-device-delete for exactly one. Ids and exact names come from air-acquisition-device-list.
|
|
3619
3673
|
*/
|
|
3620
3674
|
const acquisitionLibraryDeviceV2ApiControllerBulkDelete = (options) => {
|
|
3621
3675
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -3642,6 +3696,7 @@ const acquisitionLibraryDeviceV2ApiControllerBulkDelete = (options) => {
|
|
|
3642
3696
|
exports.acquisitionLibraryDeviceV2ApiControllerBulkDelete = acquisitionLibraryDeviceV2ApiControllerBulkDelete;
|
|
3643
3697
|
/**
|
|
3644
3698
|
* Delete device acquisition profile
|
|
3699
|
+
* Delete ONE Binalyze AIR device (evidence) acquisition profile via DELETE /api/v2/libraries/acquisition/device/{idOrName}. MUTATING and irreversible. A profile referenced by a still-running or scheduled acquisition task is protected: the API returns 400 PROFILE_IN_USE with the blocking task ids (completed/cancelled/failed tasks do not block). System (predefined) profiles return 406 SYSTEM_PROFILE_IMMUTABLE. dryRun DEFAULTS TO TRUE: the first call returns what would be deleted without removing anything; pass dryRun=false only to actually delete after the user confirms. Use air-acquisition-device-bulk-delete for several profiles at once. The idOrName comes from air-acquisition-device-list or air-acquisition-device-get. An unknown idOrName returns 404 NOT_FOUND with suggestions; an ambiguous name returns 400 AMBIGUOUS_NAME.
|
|
3645
3700
|
*/
|
|
3646
3701
|
const acquisitionLibraryDeviceV2ApiControllerDelete = (options) => {
|
|
3647
3702
|
return (options.client ?? client_gen_1.client).delete({
|
|
@@ -3664,6 +3719,7 @@ const acquisitionLibraryDeviceV2ApiControllerDelete = (options) => {
|
|
|
3664
3719
|
exports.acquisitionLibraryDeviceV2ApiControllerDelete = acquisitionLibraryDeviceV2ApiControllerDelete;
|
|
3665
3720
|
/**
|
|
3666
3721
|
* Get device acquisition profile by id or name
|
|
3722
|
+
* Get ONE Binalyze AIR device (evidence) acquisition profile by UUID or exact name via GET /api/v2/libraries/acquisition/device/{idOrName}. Read-only. Returns the full profile detail in entities[0]: id, name, organizationIds, the per-OS configs (windows/linux/macos/aix with evidence and artifact lists), eDiscovery patterns, deletable, and timestamps. Use this when the user asks to show or inspect an evidence acquisition profile's contents, or to clone one. Ids and exact names come from air-acquisition-device-list. An unknown idOrName returns 404 NOT_FOUND with did-you-mean suggestions in errors[0].details.suggestions[]; an ambiguous name returns 400 AMBIGUOUS_NAME with candidates in errors[0].details.matches[].
|
|
3667
3723
|
*/
|
|
3668
3724
|
const acquisitionLibraryDeviceV2ApiControllerGet = (options) => {
|
|
3669
3725
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -3686,6 +3742,7 @@ const acquisitionLibraryDeviceV2ApiControllerGet = (options) => {
|
|
|
3686
3742
|
exports.acquisitionLibraryDeviceV2ApiControllerGet = acquisitionLibraryDeviceV2ApiControllerGet;
|
|
3687
3743
|
/**
|
|
3688
3744
|
* Update device acquisition profile
|
|
3745
|
+
* Update ONE Binalyze AIR device (evidence) acquisition profile via PATCH /api/v2/libraries/acquisition/device/{idOrName}. MUTATING partial update: only the fields you pass change; omitted fields keep their current value. Updatable fields: name, organizationIds, windows, linux, macos, aix, eDiscovery. Passing null for an OS block removes it; the merged profile must still keep at least one config block. Sending no updatable field returns NOTHING_CHANGED with result null. System (predefined) profiles cannot be updated: the API returns 406 SYSTEM_PROFILE_IMMUTABLE. dryRun DEFAULTS TO TRUE: the first call previews the merged profile without persisting; pass dryRun=false only to actually update after the user confirms. The idOrName comes from air-acquisition-device-list or air-acquisition-device-get. An unknown idOrName returns 404 NOT_FOUND with suggestions; an ambiguous name returns 400 AMBIGUOUS_NAME.
|
|
3689
3746
|
*/
|
|
3690
3747
|
const acquisitionLibraryDeviceV2ApiControllerUpdate = (options) => {
|
|
3691
3748
|
return (options.client ?? client_gen_1.client).patch({
|
|
@@ -3845,6 +3902,23 @@ const gitRepositoriesTriggerSync = (options) => {
|
|
|
3845
3902
|
});
|
|
3846
3903
|
};
|
|
3847
3904
|
exports.gitRepositoriesTriggerSync = gitRepositoriesTriggerSync;
|
|
3905
|
+
/**
|
|
3906
|
+
* Cancel repository sync
|
|
3907
|
+
* Cancel an in-progress synchronization for the specified repository connection
|
|
3908
|
+
*/
|
|
3909
|
+
const gitRepositoriesCancelSync = (options) => {
|
|
3910
|
+
return (options.client ?? client_gen_1.client).post({
|
|
3911
|
+
security: [
|
|
3912
|
+
{
|
|
3913
|
+
scheme: 'bearer',
|
|
3914
|
+
type: 'http'
|
|
3915
|
+
}
|
|
3916
|
+
],
|
|
3917
|
+
url: '/api/public/git-repositories/{id}/sync/cancel',
|
|
3918
|
+
...options
|
|
3919
|
+
});
|
|
3920
|
+
};
|
|
3921
|
+
exports.gitRepositoriesCancelSync = gitRepositoriesCancelSync;
|
|
3848
3922
|
/**
|
|
3849
3923
|
* Get sync logs for a repository connection
|
|
3850
3924
|
* Retrieve the synchronization history for a specific repository connection
|
|
@@ -3858,7 +3932,7 @@ const gitRepositoriesGetSyncLogs = (options) => {
|
|
|
3858
3932
|
type: 'http'
|
|
3859
3933
|
}
|
|
3860
3934
|
],
|
|
3861
|
-
url: '/api/public/git-repositories/{id}/sync
|
|
3935
|
+
url: '/api/public/git-repositories/{id}/sync/logs',
|
|
3862
3936
|
...options
|
|
3863
3937
|
});
|
|
3864
3938
|
};
|
|
@@ -3927,6 +4001,252 @@ const gitRepositoriesGetRepositoryBranches = (options) => {
|
|
|
3927
4001
|
});
|
|
3928
4002
|
};
|
|
3929
4003
|
exports.gitRepositoriesGetRepositoryBranches = gitRepositoriesGetRepositoryBranches;
|
|
4004
|
+
/**
|
|
4005
|
+
* Filter TAXII feeds
|
|
4006
|
+
* Retrieve all TAXII feeds with optional filters
|
|
4007
|
+
*/
|
|
4008
|
+
const taxiiFeedsGetMany = (options) => {
|
|
4009
|
+
return (options.client ?? client_gen_1.client).get({
|
|
4010
|
+
responseType: 'json',
|
|
4011
|
+
security: [
|
|
4012
|
+
{
|
|
4013
|
+
scheme: 'bearer',
|
|
4014
|
+
type: 'http'
|
|
4015
|
+
}
|
|
4016
|
+
],
|
|
4017
|
+
url: '/api/public/taxii-feeds',
|
|
4018
|
+
...options
|
|
4019
|
+
});
|
|
4020
|
+
};
|
|
4021
|
+
exports.taxiiFeedsGetMany = taxiiFeedsGetMany;
|
|
4022
|
+
/**
|
|
4023
|
+
* Create a new TAXII feed
|
|
4024
|
+
* Create a new TAXII feed for syncing threat intelligence indicators
|
|
4025
|
+
*/
|
|
4026
|
+
const taxiiFeedsCreate = (options) => {
|
|
4027
|
+
return (options.client ?? client_gen_1.client).post({
|
|
4028
|
+
responseType: 'json',
|
|
4029
|
+
security: [
|
|
4030
|
+
{
|
|
4031
|
+
scheme: 'bearer',
|
|
4032
|
+
type: 'http'
|
|
4033
|
+
}
|
|
4034
|
+
],
|
|
4035
|
+
url: '/api/public/taxii-feeds',
|
|
4036
|
+
...options,
|
|
4037
|
+
headers: {
|
|
4038
|
+
'Content-Type': 'application/json',
|
|
4039
|
+
...options.headers
|
|
4040
|
+
}
|
|
4041
|
+
});
|
|
4042
|
+
};
|
|
4043
|
+
exports.taxiiFeedsCreate = taxiiFeedsCreate;
|
|
4044
|
+
/**
|
|
4045
|
+
* Filter TAXII indicators
|
|
4046
|
+
* Retrieve all indicators across TAXII feeds with optional filters
|
|
4047
|
+
*/
|
|
4048
|
+
const taxiiFeedsGetIndicators = (options) => {
|
|
4049
|
+
return (options.client ?? client_gen_1.client).get({
|
|
4050
|
+
security: [
|
|
4051
|
+
{
|
|
4052
|
+
scheme: 'bearer',
|
|
4053
|
+
type: 'http'
|
|
4054
|
+
}
|
|
4055
|
+
],
|
|
4056
|
+
url: '/api/public/taxii-feeds/indicators',
|
|
4057
|
+
...options
|
|
4058
|
+
});
|
|
4059
|
+
};
|
|
4060
|
+
exports.taxiiFeedsGetIndicators = taxiiFeedsGetIndicators;
|
|
4061
|
+
/**
|
|
4062
|
+
* Get TAXII indicator summary
|
|
4063
|
+
* Retrieve aggregated statistics for indicators across TAXII feeds
|
|
4064
|
+
*/
|
|
4065
|
+
const taxiiFeedsGetIndicatorSummary = (options) => {
|
|
4066
|
+
return (options.client ?? client_gen_1.client).get({
|
|
4067
|
+
security: [
|
|
4068
|
+
{
|
|
4069
|
+
scheme: 'bearer',
|
|
4070
|
+
type: 'http'
|
|
4071
|
+
}
|
|
4072
|
+
],
|
|
4073
|
+
url: '/api/public/taxii-feeds/indicators/summary',
|
|
4074
|
+
...options
|
|
4075
|
+
});
|
|
4076
|
+
};
|
|
4077
|
+
exports.taxiiFeedsGetIndicatorSummary = taxiiFeedsGetIndicatorSummary;
|
|
4078
|
+
/**
|
|
4079
|
+
* Delete a TAXII feed
|
|
4080
|
+
* Delete an existing TAXII feed by ID
|
|
4081
|
+
*/
|
|
4082
|
+
const taxiiFeedsDelete = (options) => {
|
|
4083
|
+
return (options.client ?? client_gen_1.client).delete({
|
|
4084
|
+
security: [
|
|
4085
|
+
{
|
|
4086
|
+
scheme: 'bearer',
|
|
4087
|
+
type: 'http'
|
|
4088
|
+
}
|
|
4089
|
+
],
|
|
4090
|
+
url: '/api/public/taxii-feeds/{id}',
|
|
4091
|
+
...options
|
|
4092
|
+
});
|
|
4093
|
+
};
|
|
4094
|
+
exports.taxiiFeedsDelete = taxiiFeedsDelete;
|
|
4095
|
+
/**
|
|
4096
|
+
* Get TAXII feed by ID
|
|
4097
|
+
* Retrieve a specific TAXII feed
|
|
4098
|
+
*/
|
|
4099
|
+
const taxiiFeedsGetOne = (options) => {
|
|
4100
|
+
return (options.client ?? client_gen_1.client).get({
|
|
4101
|
+
responseType: 'json',
|
|
4102
|
+
security: [
|
|
4103
|
+
{
|
|
4104
|
+
scheme: 'bearer',
|
|
4105
|
+
type: 'http'
|
|
4106
|
+
}
|
|
4107
|
+
],
|
|
4108
|
+
url: '/api/public/taxii-feeds/{id}',
|
|
4109
|
+
...options
|
|
4110
|
+
});
|
|
4111
|
+
};
|
|
4112
|
+
exports.taxiiFeedsGetOne = taxiiFeedsGetOne;
|
|
4113
|
+
/**
|
|
4114
|
+
* Update a TAXII feed
|
|
4115
|
+
* Update an existing TAXII feed configuration
|
|
4116
|
+
*/
|
|
4117
|
+
const taxiiFeedsUpdate = (options) => {
|
|
4118
|
+
return (options.client ?? client_gen_1.client).put({
|
|
4119
|
+
responseType: 'json',
|
|
4120
|
+
security: [
|
|
4121
|
+
{
|
|
4122
|
+
scheme: 'bearer',
|
|
4123
|
+
type: 'http'
|
|
4124
|
+
}
|
|
4125
|
+
],
|
|
4126
|
+
url: '/api/public/taxii-feeds/{id}',
|
|
4127
|
+
...options,
|
|
4128
|
+
headers: {
|
|
4129
|
+
'Content-Type': 'application/json',
|
|
4130
|
+
...options.headers
|
|
4131
|
+
}
|
|
4132
|
+
});
|
|
4133
|
+
};
|
|
4134
|
+
exports.taxiiFeedsUpdate = taxiiFeedsUpdate;
|
|
4135
|
+
/**
|
|
4136
|
+
* Get sync logs for a TAXII feed
|
|
4137
|
+
* Retrieve the synchronization history for a specific TAXII feed
|
|
4138
|
+
*/
|
|
4139
|
+
const taxiiFeedsGetSyncLogs = (options) => {
|
|
4140
|
+
return (options.client ?? client_gen_1.client).get({
|
|
4141
|
+
responseType: 'json',
|
|
4142
|
+
security: [
|
|
4143
|
+
{
|
|
4144
|
+
scheme: 'bearer',
|
|
4145
|
+
type: 'http'
|
|
4146
|
+
}
|
|
4147
|
+
],
|
|
4148
|
+
url: '/api/public/taxii-feeds/{id}/sync/logs',
|
|
4149
|
+
...options
|
|
4150
|
+
});
|
|
4151
|
+
};
|
|
4152
|
+
exports.taxiiFeedsGetSyncLogs = taxiiFeedsGetSyncLogs;
|
|
4153
|
+
/**
|
|
4154
|
+
* Discover TAXII collections
|
|
4155
|
+
* Connect to a TAXII server and list the collections available for subscription
|
|
4156
|
+
*/
|
|
4157
|
+
const taxiiFeedsDiscoverCollections = (options) => {
|
|
4158
|
+
return (options.client ?? client_gen_1.client).post({
|
|
4159
|
+
security: [
|
|
4160
|
+
{
|
|
4161
|
+
scheme: 'bearer',
|
|
4162
|
+
type: 'http'
|
|
4163
|
+
}
|
|
4164
|
+
],
|
|
4165
|
+
url: '/api/public/taxii-feeds/discover',
|
|
4166
|
+
...options,
|
|
4167
|
+
headers: {
|
|
4168
|
+
'Content-Type': 'application/json',
|
|
4169
|
+
...options.headers
|
|
4170
|
+
}
|
|
4171
|
+
});
|
|
4172
|
+
};
|
|
4173
|
+
exports.taxiiFeedsDiscoverCollections = taxiiFeedsDiscoverCollections;
|
|
4174
|
+
/**
|
|
4175
|
+
* Trigger TAXII feed sync
|
|
4176
|
+
* Manually trigger a synchronization for the specified TAXII feed
|
|
4177
|
+
*/
|
|
4178
|
+
const taxiiFeedsTriggerSync = (options) => {
|
|
4179
|
+
return (options.client ?? client_gen_1.client).post({
|
|
4180
|
+
security: [
|
|
4181
|
+
{
|
|
4182
|
+
scheme: 'bearer',
|
|
4183
|
+
type: 'http'
|
|
4184
|
+
}
|
|
4185
|
+
],
|
|
4186
|
+
url: '/api/public/taxii-feeds/{id}/sync',
|
|
4187
|
+
...options
|
|
4188
|
+
});
|
|
4189
|
+
};
|
|
4190
|
+
exports.taxiiFeedsTriggerSync = taxiiFeedsTriggerSync;
|
|
4191
|
+
/**
|
|
4192
|
+
* Cancel TAXII feed sync
|
|
4193
|
+
* Cancel an in-progress synchronization for the specified TAXII feed
|
|
4194
|
+
*/
|
|
4195
|
+
const taxiiFeedsCancelSync = (options) => {
|
|
4196
|
+
return (options.client ?? client_gen_1.client).post({
|
|
4197
|
+
security: [
|
|
4198
|
+
{
|
|
4199
|
+
scheme: 'bearer',
|
|
4200
|
+
type: 'http'
|
|
4201
|
+
}
|
|
4202
|
+
],
|
|
4203
|
+
url: '/api/public/taxii-feeds/{id}/sync/cancel',
|
|
4204
|
+
...options
|
|
4205
|
+
});
|
|
4206
|
+
};
|
|
4207
|
+
exports.taxiiFeedsCancelSync = taxiiFeedsCancelSync;
|
|
4208
|
+
/**
|
|
4209
|
+
* Enable or disable a TAXII feed
|
|
4210
|
+
* Toggle the active state of a TAXII feed
|
|
4211
|
+
*/
|
|
4212
|
+
const taxiiFeedsUpdateStatus = (options) => {
|
|
4213
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
4214
|
+
security: [
|
|
4215
|
+
{
|
|
4216
|
+
scheme: 'bearer',
|
|
4217
|
+
type: 'http'
|
|
4218
|
+
}
|
|
4219
|
+
],
|
|
4220
|
+
url: '/api/public/taxii-feeds/{id}/update-status',
|
|
4221
|
+
...options,
|
|
4222
|
+
headers: {
|
|
4223
|
+
'Content-Type': 'application/json',
|
|
4224
|
+
...options.headers
|
|
4225
|
+
}
|
|
4226
|
+
});
|
|
4227
|
+
};
|
|
4228
|
+
exports.taxiiFeedsUpdateStatus = taxiiFeedsUpdateStatus;
|
|
4229
|
+
/**
|
|
4230
|
+
* Delete multiple TAXII feeds
|
|
4231
|
+
* Delete multiple TAXII feeds by their IDs
|
|
4232
|
+
*/
|
|
4233
|
+
const taxiiFeedsBulkDelete = (options) => {
|
|
4234
|
+
return (options.client ?? client_gen_1.client).delete({
|
|
4235
|
+
security: [
|
|
4236
|
+
{
|
|
4237
|
+
scheme: 'bearer',
|
|
4238
|
+
type: 'http'
|
|
4239
|
+
}
|
|
4240
|
+
],
|
|
4241
|
+
url: '/api/public/taxii-feeds/bulk-delete',
|
|
4242
|
+
...options,
|
|
4243
|
+
headers: {
|
|
4244
|
+
'Content-Type': 'application/json',
|
|
4245
|
+
...options.headers
|
|
4246
|
+
}
|
|
4247
|
+
});
|
|
4248
|
+
};
|
|
4249
|
+
exports.taxiiFeedsBulkDelete = taxiiFeedsBulkDelete;
|
|
3930
4250
|
/**
|
|
3931
4251
|
* Get Many
|
|
3932
4252
|
* Retrieve a paginated list of triage rules
|
|
@@ -4191,6 +4511,7 @@ const deleteTriageRuleTag = (options) => {
|
|
|
4191
4511
|
exports.deleteTriageRuleTag = deleteTriageRuleTag;
|
|
4192
4512
|
/**
|
|
4193
4513
|
* List triage rules
|
|
4514
|
+
* List Binalyze AIR triage rules (the triage library: YARA, Sigma, osquery IOC-scan rules) using GET /api/v2/libraries/triage. Read-only and paginated. Each entity is a rule summary: id, name, description, engine, searchIn flags, organizations [{id,name}], tags, author, createdAt/updatedAt/lastUsedAt. Rule content is NOT included; use air-triage-rules-get for one rule's body. Use this when the user asks to list triage/IOC rules, search the rule library, or needs a rule id or exact name before get, update, delete, or export. sortBy accepts only name, createdAt, updatedAt, lastUsedAt, author (default createdAt). Rules with an empty organizations list are global (visible to every org).
|
|
4194
4515
|
*/
|
|
4195
4516
|
const triageLibraryV2ApiControllerList = (options) => {
|
|
4196
4517
|
return (options?.client ?? client_gen_1.client).get({
|
|
@@ -4213,6 +4534,7 @@ const triageLibraryV2ApiControllerList = (options) => {
|
|
|
4213
4534
|
exports.triageLibraryV2ApiControllerList = triageLibraryV2ApiControllerList;
|
|
4214
4535
|
/**
|
|
4215
4536
|
* Create triage rule
|
|
4537
|
+
* Create a Binalyze AIR triage rule (YARA, Sigma, or osquery IOC-scan rule) via POST /api/v2/libraries/triage. MUTATING: persists a new rule in the triage library; the rule content is validated by the engine before saving and an invalid rule fails with 400. Only `rule` (the content) is required; name and engine are auto-detected from the content when omitted, and a name collision is resolved by suffixing (a warning reports the adjusted name). dryRun DEFAULTS TO TRUE: the first call returns the would-be entity without persisting anything; pass dryRun=false only to actually create after the user confirms. Success returns entities[0] with the created rule detail plus warnings[] (e.g. name adjustments). Use air-triage-rules-validate to only check a rule without creating it.
|
|
4216
4538
|
*/
|
|
4217
4539
|
const triageLibraryV2ApiControllerCreate = (options) => {
|
|
4218
4540
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -4239,6 +4561,7 @@ const triageLibraryV2ApiControllerCreate = (options) => {
|
|
|
4239
4561
|
exports.triageLibraryV2ApiControllerCreate = triageLibraryV2ApiControllerCreate;
|
|
4240
4562
|
/**
|
|
4241
4563
|
* Bulk delete triage rules
|
|
4564
|
+
* Bulk delete Binalyze AIR triage rules via POST /api/v2/libraries/triage/delete. MUTATING and irreversible: removes every resolved rule and its stored content from the triage library. Resolution is tolerant: rules that cannot be found are skipped and reported in warnings[] instead of failing the whole request. dryRun DEFAULTS TO TRUE: the first call previews what would be deleted; pass dryRun=false only to actually delete after the user confirms. Use this for several rules at once; use air-triage-rules-delete for exactly one. Rule ids and exact names come from air-triage-rules-list. Success returns deletedCount plus warnings[] (skipped or unresolved rules).
|
|
4242
4565
|
*/
|
|
4243
4566
|
const triageLibraryV2ApiControllerBulkDelete = (options) => {
|
|
4244
4567
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -4265,6 +4588,7 @@ const triageLibraryV2ApiControllerBulkDelete = (options) => {
|
|
|
4265
4588
|
exports.triageLibraryV2ApiControllerBulkDelete = triageLibraryV2ApiControllerBulkDelete;
|
|
4266
4589
|
/**
|
|
4267
4590
|
* Validate triage rule
|
|
4591
|
+
* Validate a Binalyze AIR triage rule (YARA, Sigma, or osquery) via POST /api/v2/libraries/triage/validate. Read-only: nothing is persisted, so there is no dryRun flag. The engine is auto-detected from the rule content when omitted; passing a wrong engine returns a 400 INVALID_ENGINE with the detected engine under errors[0].details.suggestions. osquery rules must be read-only SELECT statements against known tables. Use this before air-triage-rules-create or air-triage-rules-update when the user wants to check a rule, or to identify which engine a rule belongs to. Success returns entities[0] = {valid: true, engine} plus warnings[]; an invalid rule fails with a 400 envelope describing the syntax problem.
|
|
4268
4592
|
*/
|
|
4269
4593
|
const triageLibraryV2ApiControllerValidate = (options) => {
|
|
4270
4594
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -4291,6 +4615,7 @@ const triageLibraryV2ApiControllerValidate = (options) => {
|
|
|
4291
4615
|
exports.triageLibraryV2ApiControllerValidate = triageLibraryV2ApiControllerValidate;
|
|
4292
4616
|
/**
|
|
4293
4617
|
* Delete triage rule
|
|
4618
|
+
* Delete ONE Binalyze AIR triage rule via DELETE /api/v2/libraries/triage/{idOrName}. MUTATING and irreversible: removes the rule and its stored content from the triage library. dryRun DEFAULTS TO TRUE: the first call returns what would be deleted without removing anything; pass dryRun=false only to actually delete after the user confirms. Use air-triage-rules-bulk-delete for several rules at once. The idOrName comes from air-triage-rules-list or air-triage-rules-get. Success returns entities[0] = {id, name} of the deleted rule. 404 also covers rules outside the caller's organization scope (leak-safe); it does not necessarily mean the id is wrong.
|
|
4294
4619
|
*/
|
|
4295
4620
|
const triageLibraryV2ApiControllerDelete = (options) => {
|
|
4296
4621
|
return (options.client ?? client_gen_1.client).delete({
|
|
@@ -4313,6 +4638,7 @@ const triageLibraryV2ApiControllerDelete = (options) => {
|
|
|
4313
4638
|
exports.triageLibraryV2ApiControllerDelete = triageLibraryV2ApiControllerDelete;
|
|
4314
4639
|
/**
|
|
4315
4640
|
* Get triage rule by id or name
|
|
4641
|
+
* Get ONE Binalyze AIR triage rule (YARA/Sigma/osquery IOC-scan rule) by UUID or exact name via GET /api/v2/libraries/triage/{idOrName}. Read-only. Returns the full rule detail in entities[0]: id, name, description, engine, searchIn flags, the rule content (body), organizations [{id,name}], tags, author and timestamps. Use this when the user asks to show, inspect, or read a triage rule's content. Rule ids and exact names come from air-triage-rules-list. 404 also covers rules outside the caller's organization scope (leak-safe); the response may include a did-you-mean suggestion when the name is close to an existing rule.
|
|
4316
4642
|
*/
|
|
4317
4643
|
const triageLibraryV2ApiControllerGet = (options) => {
|
|
4318
4644
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -4335,6 +4661,7 @@ const triageLibraryV2ApiControllerGet = (options) => {
|
|
|
4335
4661
|
exports.triageLibraryV2ApiControllerGet = triageLibraryV2ApiControllerGet;
|
|
4336
4662
|
/**
|
|
4337
4663
|
* Update triage rule
|
|
4664
|
+
* Update ONE Binalyze AIR triage rule via PATCH /api/v2/libraries/triage/{idOrName}. MUTATING partial update: only the fields you pass change; omitted fields keep their current value. The engine cannot be changed (create a new rule instead). A changed rule body is re-validated by its engine before saving; an invalid rule fails with 400. `tags` REPLACES the whole tag set. Sending no updatable field returns a NOTHING_CHANGED error. dryRun DEFAULTS TO TRUE: the first call previews the resulting rule without persisting; pass dryRun=false only to actually update after the user confirms. The idOrName comes from air-triage-rules-list or air-triage-rules-get. Success returns entities[0] with the updated rule detail plus warnings[]. 404 also covers rules outside the caller's organization scope (leak-safe).
|
|
4338
4665
|
*/
|
|
4339
4666
|
const triageLibraryV2ApiControllerUpdate = (options) => {
|
|
4340
4667
|
return (options.client ?? client_gen_1.client).patch({
|
|
@@ -4361,6 +4688,7 @@ const triageLibraryV2ApiControllerUpdate = (options) => {
|
|
|
4361
4688
|
exports.triageLibraryV2ApiControllerUpdate = triageLibraryV2ApiControllerUpdate;
|
|
4362
4689
|
/**
|
|
4363
4690
|
* Export triage rules to an off-network package
|
|
4691
|
+
* Export Binalyze AIR triage rules into an off-network triage package via POST /api/v2/libraries/triage/export. MUTATING: generates a package file on the Console that bundles the selected rules for offline (off-network) triage of air-gapped endpoints. Resolution is STRICT: any rule that cannot be found fails the whole request with 400 plus name suggestions (unlike bulk delete, which skips). dryRun DEFAULTS TO TRUE: the first call lists what would be exported without generating a package; pass dryRun=false only to actually export after the user confirms. Success returns entities[0] = {fileName, downloadUrl, binaryOptions[]}; feed fileName into air-triage-rules-export-download to fetch the package. Use this when the user wants an offline/off-network triage package of specific rules. Rule ids and exact names come from air-triage-rules-list.
|
|
4364
4692
|
*/
|
|
4365
4693
|
const triageLibraryExportV2ApiControllerExport = (options) => {
|
|
4366
4694
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -4387,6 +4715,7 @@ const triageLibraryExportV2ApiControllerExport = (options) => {
|
|
|
4387
4715
|
exports.triageLibraryExportV2ApiControllerExport = triageLibraryExportV2ApiControllerExport;
|
|
4388
4716
|
/**
|
|
4389
4717
|
* Download an exported off-network package
|
|
4718
|
+
* Download a previously exported off-network triage package via GET /api/v2/libraries/triage/export/download and save it inside the current worktree. Read-only on the server side. The fileName comes from air-triage-rules-export (its downloadUrl carries the same value); this tool streams the archive to disk and returns {fileName, outputPath, byteLength}. Optionally embed agent binaries for specific platforms (binaries[]) and MITRE ATT&CK rules (mitre=true) into the package. Use this right after air-triage-rules-export when the user wants the actual package file. Packages can expire; a 404 may mean the export must be re-run.
|
|
4390
4719
|
*/
|
|
4391
4720
|
const triageLibraryExportV2ApiControllerDownload = (options) => {
|
|
4392
4721
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -5598,41 +5927,606 @@ const autoAssetTagUpdateScheduledAatTask = (options) => {
|
|
|
5598
5927
|
};
|
|
5599
5928
|
exports.autoAssetTagUpdateScheduledAatTask = autoAssetTagUpdateScheduledAatTask;
|
|
5600
5929
|
/**
|
|
5601
|
-
*
|
|
5602
|
-
*
|
|
5930
|
+
* List case activities across visible cases
|
|
5931
|
+
* List the GLOBAL Binalyze AIR case audit feed across all visible cases using GET /api/v2/cases/activities. Read-only, paginated. Each row carries id, caseId, type (event class name like CaseNoteAddedEvent), performedBy, raw data{} payload, a computed description and timestamps. caseIds filter accepts case UUIDs or names (inclusive match). For the activities of ONE known case prefer air-cases-case-activities. Use this to audit who did what across cases, e.g. all activity by a user or all case closures in a time window.
|
|
5603
5932
|
*/
|
|
5604
|
-
const
|
|
5605
|
-
return (options
|
|
5933
|
+
const caseActivityV2ApiControllerFilterGlobalActivities = (options) => {
|
|
5934
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
5606
5935
|
responseType: 'json',
|
|
5607
5936
|
security: [
|
|
5937
|
+
{
|
|
5938
|
+
in: 'cookie',
|
|
5939
|
+
name: 'Authentication',
|
|
5940
|
+
type: 'apiKey'
|
|
5941
|
+
},
|
|
5608
5942
|
{
|
|
5609
5943
|
scheme: 'bearer',
|
|
5610
5944
|
type: 'http'
|
|
5611
5945
|
}
|
|
5612
5946
|
],
|
|
5613
|
-
url: '/api/
|
|
5947
|
+
url: '/api/v2/cases/activities',
|
|
5614
5948
|
...options
|
|
5615
5949
|
});
|
|
5616
5950
|
};
|
|
5617
|
-
exports.
|
|
5618
|
-
|
|
5951
|
+
exports.caseActivityV2ApiControllerFilterGlobalActivities = caseActivityV2ApiControllerFilterGlobalActivities;
|
|
5952
|
+
/**
|
|
5953
|
+
* List activities for case
|
|
5954
|
+
* List the audit activity feed of ONE Binalyze AIR case using GET /api/v2/cases/{idOrName}/activities. Read-only, paginated. Each row carries id, type (event class name like CaseNoteAddedEvent), performedBy, raw data{} payload, a computed description and timestamps. The path accepts a case UUID or exact case name. For a feed across multiple cases use air-cases-activities (the global feed) instead. Use this to reconstruct the timeline of a case: who closed it, which notes and assets were added, and when.
|
|
5955
|
+
*/
|
|
5956
|
+
const caseActivityV2ApiControllerFilterCaseActivities = (options) => {
|
|
5619
5957
|
return (options.client ?? client_gen_1.client).get({
|
|
5958
|
+
responseType: 'json',
|
|
5620
5959
|
security: [
|
|
5960
|
+
{
|
|
5961
|
+
in: 'cookie',
|
|
5962
|
+
name: 'Authentication',
|
|
5963
|
+
type: 'apiKey'
|
|
5964
|
+
},
|
|
5621
5965
|
{
|
|
5622
5966
|
scheme: 'bearer',
|
|
5623
5967
|
type: 'http'
|
|
5624
5968
|
}
|
|
5625
5969
|
],
|
|
5626
|
-
url: '/api/
|
|
5970
|
+
url: '/api/v2/cases/{idOrName}/activities',
|
|
5627
5971
|
...options
|
|
5628
5972
|
});
|
|
5629
5973
|
};
|
|
5630
|
-
exports.
|
|
5631
|
-
|
|
5632
|
-
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
|
|
5974
|
+
exports.caseActivityV2ApiControllerFilterCaseActivities = caseActivityV2ApiControllerFilterCaseActivities;
|
|
5975
|
+
/**
|
|
5976
|
+
* Export cases
|
|
5977
|
+
* Export Binalyze AIR cases to a file via GET /api/v2/cases/export and save it inside the current worktree. Read-only on the server side; no dryRun needed. format=csv (default) saves a text/csv file; format=json saves an application/zip archive containing cases.json (the newest 10000 matching cases, with a TRUNCATED warning when more matched). The filter model mirrors air-cases-list (name substring, status, searchTerm). Returns {format, outputPath, byteLength}. Use air-cases-list instead when the user just wants to read cases in the chat.
|
|
5978
|
+
*/
|
|
5979
|
+
const caseExportV2ApiControllerExportCases = (options) => {
|
|
5980
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
5981
|
+
responseType: 'text',
|
|
5982
|
+
security: [
|
|
5983
|
+
{
|
|
5984
|
+
in: 'cookie',
|
|
5985
|
+
name: 'Authentication',
|
|
5986
|
+
type: 'apiKey'
|
|
5987
|
+
},
|
|
5988
|
+
{
|
|
5989
|
+
scheme: 'bearer',
|
|
5990
|
+
type: 'http'
|
|
5991
|
+
}
|
|
5992
|
+
],
|
|
5993
|
+
url: '/api/v2/cases/export',
|
|
5994
|
+
...options
|
|
5995
|
+
});
|
|
5996
|
+
};
|
|
5997
|
+
exports.caseExportV2ApiControllerExportCases = caseExportV2ApiControllerExportCases;
|
|
5998
|
+
/**
|
|
5999
|
+
* Close cases in bulk
|
|
6000
|
+
* Close MULTIPLE Binalyze AIR cases in one call via POST /api/v2/cases/close. MUTATING, partial success: eligible cases close, ineligible ones (already closed/archived, not found) surface as warnings[] instead of failing the request. dryRun DEFAULTS TO TRUE: the first call returns a would-close preview plus skip warnings; pass dryRun=false only after the user confirms the case list. Target cases by id or name in cases[], or set cases="all" to close every open case in the required organizations scope (deliberate action; organizations must be provided — ids/names or "all"; confirm with the user first). For exactly one case prefer air-cases-close, which also accepts closure report summaries.
|
|
6001
|
+
*/
|
|
6002
|
+
const caseBulkActionV2ApiControllerClose = (options) => {
|
|
6003
|
+
return (options.client ?? client_gen_1.client).post({
|
|
6004
|
+
responseType: 'json',
|
|
6005
|
+
security: [
|
|
6006
|
+
{
|
|
6007
|
+
in: 'cookie',
|
|
6008
|
+
name: 'Authentication',
|
|
6009
|
+
type: 'apiKey'
|
|
6010
|
+
},
|
|
6011
|
+
{
|
|
6012
|
+
scheme: 'bearer',
|
|
6013
|
+
type: 'http'
|
|
6014
|
+
}
|
|
6015
|
+
],
|
|
6016
|
+
url: '/api/v2/cases/close',
|
|
6017
|
+
...options,
|
|
6018
|
+
headers: {
|
|
6019
|
+
'Content-Type': 'application/json',
|
|
6020
|
+
...options.headers
|
|
6021
|
+
}
|
|
6022
|
+
});
|
|
6023
|
+
};
|
|
6024
|
+
exports.caseBulkActionV2ApiControllerClose = caseBulkActionV2ApiControllerClose;
|
|
6025
|
+
/**
|
|
6026
|
+
* Archive cases in bulk
|
|
6027
|
+
* Archive MULTIPLE Binalyze AIR cases in one call via POST /api/v2/cases/archive. MUTATING and effectively FINAL: lifecycle is open -> closed -> archived and there is NO unarchive. Only closed cases are eligible; open or already-archived cases surface as warnings[] (partial success). dryRun DEFAULTS TO TRUE: the first call returns a would-archive preview plus skip warnings; pass dryRun=false only after the user confirms the case list. Target cases by id or name in cases[], or set cases="all" to archive every closed case in the required organizations scope (deliberate action; organizations must be provided — ids/names or "all"; confirm with the user first). For exactly one case prefer air-cases-archive.
|
|
6028
|
+
*/
|
|
6029
|
+
const caseBulkActionV2ApiControllerArchive = (options) => {
|
|
6030
|
+
return (options.client ?? client_gen_1.client).post({
|
|
6031
|
+
responseType: 'json',
|
|
6032
|
+
security: [
|
|
6033
|
+
{
|
|
6034
|
+
in: 'cookie',
|
|
6035
|
+
name: 'Authentication',
|
|
6036
|
+
type: 'apiKey'
|
|
6037
|
+
},
|
|
6038
|
+
{
|
|
6039
|
+
scheme: 'bearer',
|
|
6040
|
+
type: 'http'
|
|
6041
|
+
}
|
|
6042
|
+
],
|
|
6043
|
+
url: '/api/v2/cases/archive',
|
|
6044
|
+
...options,
|
|
6045
|
+
headers: {
|
|
6046
|
+
'Content-Type': 'application/json',
|
|
6047
|
+
...options.headers
|
|
6048
|
+
}
|
|
6049
|
+
});
|
|
6050
|
+
};
|
|
6051
|
+
exports.caseBulkActionV2ApiControllerArchive = caseBulkActionV2ApiControllerArchive;
|
|
6052
|
+
/**
|
|
6053
|
+
* List assets linked to case
|
|
6054
|
+
* List the assets linked to a Binalyze AIR case using GET /api/v2/cases/{idOrName}/assets. Read-only, paginated; returns full canonical v2 asset entities (nested endpoint{} block) for every asset attached to the case. Use this to see which endpoints belong to a case, to pick asset ids for air-cases-remove-assets, or before acting on the case's machines with the asset tools. The path accepts a case UUID or exact case name. JSON only (the API's format=csv variant is not exposed here; use air-cases-export for file exports).
|
|
6055
|
+
*/
|
|
6056
|
+
const caseAssetV2ApiControllerFilterAssets = (options) => {
|
|
6057
|
+
return (options.client ?? client_gen_1.client).get({
|
|
6058
|
+
responseType: 'json',
|
|
6059
|
+
security: [
|
|
6060
|
+
{
|
|
6061
|
+
in: 'cookie',
|
|
6062
|
+
name: 'Authentication',
|
|
6063
|
+
type: 'apiKey'
|
|
6064
|
+
},
|
|
6065
|
+
{
|
|
6066
|
+
scheme: 'bearer',
|
|
6067
|
+
type: 'http'
|
|
6068
|
+
}
|
|
6069
|
+
],
|
|
6070
|
+
url: '/api/v2/cases/{idOrName}/assets',
|
|
6071
|
+
...options
|
|
6072
|
+
});
|
|
6073
|
+
};
|
|
6074
|
+
exports.caseAssetV2ApiControllerFilterAssets = caseAssetV2ApiControllerFilterAssets;
|
|
6075
|
+
/**
|
|
6076
|
+
* List users for case
|
|
6077
|
+
* List the users who can participate in a Binalyze AIR case using GET /api/v2/cases/{idOrName}/users. Read-only, paginated; the organization scope derives from the case itself. Each entity carries id, username, email, roles[] with privileges, organizations[] as {id,name} refs, admin flags (isGlobalAdmin, isOrganizationAdmin), tfaEnabled, lastLogin and onlineStatus. Use this to find valid usernames or user UUIDs before setting a case owner or assignedUsers via air-cases-create / air-cases-update. The path accepts a case UUID or exact case name.
|
|
6078
|
+
*/
|
|
6079
|
+
const caseUserV2ApiControllerFilterUsers = (options) => {
|
|
6080
|
+
return (options.client ?? client_gen_1.client).get({
|
|
6081
|
+
responseType: 'json',
|
|
6082
|
+
security: [
|
|
6083
|
+
{
|
|
6084
|
+
in: 'cookie',
|
|
6085
|
+
name: 'Authentication',
|
|
6086
|
+
type: 'apiKey'
|
|
6087
|
+
},
|
|
6088
|
+
{
|
|
6089
|
+
scheme: 'bearer',
|
|
6090
|
+
type: 'http'
|
|
6091
|
+
}
|
|
6092
|
+
],
|
|
6093
|
+
url: '/api/v2/cases/{idOrName}/users',
|
|
6094
|
+
...options
|
|
6095
|
+
});
|
|
6096
|
+
};
|
|
6097
|
+
exports.caseUserV2ApiControllerFilterUsers = caseUserV2ApiControllerFilterUsers;
|
|
6098
|
+
/**
|
|
6099
|
+
* List task assignments for case
|
|
6100
|
+
* List the tasks of a Binalyze AIR case using GET /api/v2/cases/{idOrName}/tasks. Read-only, paginated and ASSIGNMENT-CENTRIC: one task assigned to N assets yields N rows, each with taskId, taskName, taskType, per-asset status and endpoint fields. result.metadata.creators summarizes the unique task creators across the case. The taskId values feed air-tasks-get; assignment rows relate to air-cases-task-assignments-list. The path accepts a case UUID or exact case name. Use this to see what work (triage, acquisition, interact) ran under a case and its per-asset outcome.
|
|
6101
|
+
*/
|
|
6102
|
+
const caseTaskV2ApiControllerFilterTasks = (options) => {
|
|
6103
|
+
return (options.client ?? client_gen_1.client).get({
|
|
6104
|
+
responseType: 'json',
|
|
6105
|
+
security: [
|
|
6106
|
+
{
|
|
6107
|
+
in: 'cookie',
|
|
6108
|
+
name: 'Authentication',
|
|
6109
|
+
type: 'apiKey'
|
|
6110
|
+
},
|
|
6111
|
+
{
|
|
6112
|
+
scheme: 'bearer',
|
|
6113
|
+
type: 'http'
|
|
6114
|
+
}
|
|
6115
|
+
],
|
|
6116
|
+
url: '/api/v2/cases/{idOrName}/tasks',
|
|
6117
|
+
...options
|
|
6118
|
+
});
|
|
6119
|
+
};
|
|
6120
|
+
exports.caseTaskV2ApiControllerFilterTasks = caseTaskV2ApiControllerFilterTasks;
|
|
6121
|
+
/**
|
|
6122
|
+
* List case notes
|
|
6123
|
+
* List the notes of a Binalyze AIR case using GET /api/v2/cases/{idOrName}/notes. Read-only, paginated. Each entity carries id, note (the text), writtenBy{id,username,email,profile}, writtenAt and timestamps. The path accepts a case UUID or exact case name. The note id values feed air-cases-notes-update and air-cases-notes-delete. Use this to read the investigation notes of a case or to find a note before editing or deleting it.
|
|
6124
|
+
*/
|
|
6125
|
+
const caseNoteV2ApiControllerFilterNotes = (options) => {
|
|
6126
|
+
return (options.client ?? client_gen_1.client).get({
|
|
6127
|
+
responseType: 'json',
|
|
6128
|
+
security: [
|
|
6129
|
+
{
|
|
6130
|
+
in: 'cookie',
|
|
6131
|
+
name: 'Authentication',
|
|
6132
|
+
type: 'apiKey'
|
|
6133
|
+
},
|
|
6134
|
+
{
|
|
6135
|
+
scheme: 'bearer',
|
|
6136
|
+
type: 'http'
|
|
6137
|
+
}
|
|
6138
|
+
],
|
|
6139
|
+
url: '/api/v2/cases/{idOrName}/notes',
|
|
6140
|
+
...options
|
|
6141
|
+
});
|
|
6142
|
+
};
|
|
6143
|
+
exports.caseNoteV2ApiControllerFilterNotes = caseNoteV2ApiControllerFilterNotes;
|
|
6144
|
+
/**
|
|
6145
|
+
* Create case note
|
|
6146
|
+
* Add a note to a Binalyze AIR case via POST /api/v2/cases/{idOrName}/notes. MUTATING. The case must be OPEN; notes cannot be added to closed or archived cases. dryRun DEFAULTS TO TRUE: the first call returns a would-create preview without persisting; pass dryRun=false only after the user confirms. The created note comes back in result.entities[0] with id, note, writtenBy{} and timestamps. The path accepts a case UUID or exact case name; the note text is limited to 10000 characters.
|
|
6147
|
+
*/
|
|
6148
|
+
const caseNoteV2ApiControllerCreateNote = (options) => {
|
|
6149
|
+
return (options.client ?? client_gen_1.client).post({
|
|
6150
|
+
responseType: 'json',
|
|
6151
|
+
security: [
|
|
6152
|
+
{
|
|
6153
|
+
in: 'cookie',
|
|
6154
|
+
name: 'Authentication',
|
|
6155
|
+
type: 'apiKey'
|
|
6156
|
+
},
|
|
6157
|
+
{
|
|
6158
|
+
scheme: 'bearer',
|
|
6159
|
+
type: 'http'
|
|
6160
|
+
}
|
|
6161
|
+
],
|
|
6162
|
+
url: '/api/v2/cases/{idOrName}/notes',
|
|
6163
|
+
...options,
|
|
6164
|
+
headers: {
|
|
6165
|
+
'Content-Type': 'application/json',
|
|
6166
|
+
...options.headers
|
|
6167
|
+
}
|
|
6168
|
+
});
|
|
6169
|
+
};
|
|
6170
|
+
exports.caseNoteV2ApiControllerCreateNote = caseNoteV2ApiControllerCreateNote;
|
|
6171
|
+
/**
|
|
6172
|
+
* Delete case note
|
|
6173
|
+
* Delete one note of a Binalyze AIR case via DELETE /api/v2/cases/{idOrName}/notes/{noteId}. MUTATING and IRREVERSIBLE once executed. The case must be OPEN and deletion is restricted to the note's author or an authorized manager. dryRun DEFAULTS TO TRUE: the first call returns a would-delete preview without removing anything; pass dryRun=false only after the user explicitly confirms. The path accepts a case UUID or exact case name plus the note UUID from air-cases-notes-list.
|
|
6174
|
+
*/
|
|
6175
|
+
const caseNoteV2ApiControllerDeleteNote = (options) => {
|
|
6176
|
+
return (options.client ?? client_gen_1.client).delete({
|
|
6177
|
+
responseType: 'json',
|
|
6178
|
+
security: [
|
|
6179
|
+
{
|
|
6180
|
+
in: 'cookie',
|
|
6181
|
+
name: 'Authentication',
|
|
6182
|
+
type: 'apiKey'
|
|
6183
|
+
},
|
|
6184
|
+
{
|
|
6185
|
+
scheme: 'bearer',
|
|
6186
|
+
type: 'http'
|
|
6187
|
+
}
|
|
6188
|
+
],
|
|
6189
|
+
url: '/api/v2/cases/{idOrName}/notes/{noteId}',
|
|
6190
|
+
...options
|
|
6191
|
+
});
|
|
6192
|
+
};
|
|
6193
|
+
exports.caseNoteV2ApiControllerDeleteNote = caseNoteV2ApiControllerDeleteNote;
|
|
6194
|
+
/**
|
|
6195
|
+
* Update case note
|
|
6196
|
+
* Edit one note of a Binalyze AIR case via PATCH /api/v2/cases/{idOrName}/notes/{noteId}. MUTATING; the note text is fully replaced. The case must be OPEN and only the note's author (or an authorized manager) may edit it. dryRun DEFAULTS TO TRUE: the first call returns a would-update preview without persisting; pass dryRun=false only after the user confirms. The path accepts a case UUID or exact case name plus the note UUID from air-cases-notes-list. The updated note comes back in result.entities[0].
|
|
6197
|
+
*/
|
|
6198
|
+
const caseNoteV2ApiControllerUpdateNote = (options) => {
|
|
6199
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
6200
|
+
responseType: 'json',
|
|
6201
|
+
security: [
|
|
6202
|
+
{
|
|
6203
|
+
in: 'cookie',
|
|
6204
|
+
name: 'Authentication',
|
|
6205
|
+
type: 'apiKey'
|
|
6206
|
+
},
|
|
6207
|
+
{
|
|
6208
|
+
scheme: 'bearer',
|
|
6209
|
+
type: 'http'
|
|
6210
|
+
}
|
|
6211
|
+
],
|
|
6212
|
+
url: '/api/v2/cases/{idOrName}/notes/{noteId}',
|
|
6213
|
+
...options,
|
|
6214
|
+
headers: {
|
|
6215
|
+
'Content-Type': 'application/json',
|
|
6216
|
+
...options.headers
|
|
6217
|
+
}
|
|
6218
|
+
});
|
|
6219
|
+
};
|
|
6220
|
+
exports.caseNoteV2ApiControllerUpdateNote = caseNoteV2ApiControllerUpdateNote;
|
|
6221
|
+
/**
|
|
6222
|
+
* List task assignments for case
|
|
6223
|
+
* List the task assignments attached to a Binalyze AIR case using GET /api/v2/cases/{idOrName}/task-assignments. Read-only, paginated. Each entity carries id, taskId, taskName, taskType, per-asset status, asset{id,name}, hasDroneData, dataImportStatus, progress and timestamps. The id values feed air-cases-task-assignments-delete (detach) and are what air-cases-task-assignments-import adds. The path accepts a case UUID or exact case name. Use this to see which task results are part of the case evidence set.
|
|
6224
|
+
*/
|
|
6225
|
+
const caseTaskAssignmentV2ApiControllerFilterTaskAssignments = (options) => {
|
|
6226
|
+
return (options.client ?? client_gen_1.client).get({
|
|
6227
|
+
responseType: 'json',
|
|
6228
|
+
security: [
|
|
6229
|
+
{
|
|
6230
|
+
in: 'cookie',
|
|
6231
|
+
name: 'Authentication',
|
|
6232
|
+
type: 'apiKey'
|
|
6233
|
+
},
|
|
6234
|
+
{
|
|
6235
|
+
scheme: 'bearer',
|
|
6236
|
+
type: 'http'
|
|
6237
|
+
}
|
|
6238
|
+
],
|
|
6239
|
+
url: '/api/v2/cases/{idOrName}/task-assignments',
|
|
6240
|
+
...options
|
|
6241
|
+
});
|
|
6242
|
+
};
|
|
6243
|
+
exports.caseTaskAssignmentV2ApiControllerFilterTaskAssignments = caseTaskAssignmentV2ApiControllerFilterTaskAssignments;
|
|
6244
|
+
/**
|
|
6245
|
+
* Import task assignments into case
|
|
6246
|
+
* Import task assignments into a Binalyze AIR case via POST /api/v2/cases/{idOrName}/task-assignments/import. MUTATING with PARTIAL SUCCESS: eligible assignments are attached to the case, ineligible ones surface as skipped warnings[]. The case must be OPEN. dryRun DEFAULTS TO TRUE: the first call previews what would be imported plus warnings; pass dryRun=false only after the user confirms. Provide EXACTLY ONE source: taskId (imports that task's eligible assignments) or taskAssignmentIds (explicit assignment UUIDs). Optionally restrict to specific assets via assets[]. Get taskId from air-tasks-get / air-cases-tasks and assignment ids from air-tasks-assignments.
|
|
6247
|
+
*/
|
|
6248
|
+
const caseTaskAssignmentV2ApiControllerImportTaskAssignments = (options) => {
|
|
6249
|
+
return (options.client ?? client_gen_1.client).post({
|
|
6250
|
+
responseType: 'json',
|
|
6251
|
+
security: [
|
|
6252
|
+
{
|
|
6253
|
+
in: 'cookie',
|
|
6254
|
+
name: 'Authentication',
|
|
6255
|
+
type: 'apiKey'
|
|
6256
|
+
},
|
|
6257
|
+
{
|
|
6258
|
+
scheme: 'bearer',
|
|
6259
|
+
type: 'http'
|
|
6260
|
+
}
|
|
6261
|
+
],
|
|
6262
|
+
url: '/api/v2/cases/{idOrName}/task-assignments/import',
|
|
6263
|
+
...options,
|
|
6264
|
+
headers: {
|
|
6265
|
+
'Content-Type': 'application/json',
|
|
6266
|
+
...options.headers
|
|
6267
|
+
}
|
|
6268
|
+
});
|
|
6269
|
+
};
|
|
6270
|
+
exports.caseTaskAssignmentV2ApiControllerImportTaskAssignments = caseTaskAssignmentV2ApiControllerImportTaskAssignments;
|
|
6271
|
+
/**
|
|
6272
|
+
* Detach a task assignment from case
|
|
6273
|
+
* Detach ONE task assignment from a Binalyze AIR case via DELETE /api/v2/cases/{idOrName}/task-assignments/{taskAssignmentId}. MUTATING but non-destructive: it removes ONLY the case relation; the assignment and its task data are NOT deleted. The case must be OPEN. dryRun DEFAULTS TO TRUE: the first call returns a would-remove-from-case preview; pass dryRun=false only after the user confirms. Idempotent: deleting an assignment that is not attached returns deletedCount 0 with a skipped warning instead of failing. Get the assignment UUID from air-cases-task-assignments-list.
|
|
6274
|
+
*/
|
|
6275
|
+
const caseTaskAssignmentV2ApiControllerRemoveTaskAssignment = (options) => {
|
|
6276
|
+
return (options.client ?? client_gen_1.client).delete({
|
|
6277
|
+
responseType: 'json',
|
|
6278
|
+
security: [
|
|
6279
|
+
{
|
|
6280
|
+
in: 'cookie',
|
|
6281
|
+
name: 'Authentication',
|
|
6282
|
+
type: 'apiKey'
|
|
6283
|
+
},
|
|
6284
|
+
{
|
|
6285
|
+
scheme: 'bearer',
|
|
6286
|
+
type: 'http'
|
|
6287
|
+
}
|
|
6288
|
+
],
|
|
6289
|
+
url: '/api/v2/cases/{idOrName}/task-assignments/{taskAssignmentId}',
|
|
6290
|
+
...options
|
|
6291
|
+
});
|
|
6292
|
+
};
|
|
6293
|
+
exports.caseTaskAssignmentV2ApiControllerRemoveTaskAssignment = caseTaskAssignmentV2ApiControllerRemoveTaskAssignment;
|
|
6294
|
+
/**
|
|
6295
|
+
* Close a case
|
|
6296
|
+
* Close ONE Binalyze AIR case via POST /api/v2/cases/{idOrName}/close. MUTATING. Only an open case can be closed; closed/archived cases are rejected with a lifecycle error. dryRun DEFAULTS TO TRUE: the first call returns a would-close preview without closing; pass dryRun=false only after the user confirms. reason is required (resolved, false-positive, duplicate, other) and the optional summary fields feed the closure report; the closed case comes back in result.entities[0] with a closure report URL. For two or more cases use air-cases-bulk-close instead.
|
|
6297
|
+
*/
|
|
6298
|
+
const caseActionV2ApiControllerClose = (options) => {
|
|
6299
|
+
return (options.client ?? client_gen_1.client).post({
|
|
6300
|
+
responseType: 'json',
|
|
6301
|
+
security: [
|
|
6302
|
+
{
|
|
6303
|
+
in: 'cookie',
|
|
6304
|
+
name: 'Authentication',
|
|
6305
|
+
type: 'apiKey'
|
|
6306
|
+
},
|
|
6307
|
+
{
|
|
6308
|
+
scheme: 'bearer',
|
|
6309
|
+
type: 'http'
|
|
6310
|
+
}
|
|
6311
|
+
],
|
|
6312
|
+
url: '/api/v2/cases/{idOrName}/close',
|
|
6313
|
+
...options,
|
|
6314
|
+
headers: {
|
|
6315
|
+
'Content-Type': 'application/json',
|
|
6316
|
+
...options.headers
|
|
6317
|
+
}
|
|
6318
|
+
});
|
|
6319
|
+
};
|
|
6320
|
+
exports.caseActionV2ApiControllerClose = caseActionV2ApiControllerClose;
|
|
6321
|
+
/**
|
|
6322
|
+
* Reopen a case
|
|
6323
|
+
* Reopen ONE closed Binalyze AIR case via POST /api/v2/cases/{idOrName}/open. MUTATING. Only a CLOSED case can be reopened; open and archived cases are rejected with a lifecycle error (archiving is final, there is no unarchive). dryRun DEFAULTS TO TRUE: the first call returns a would-open preview without reopening; pass dryRun=false only after the user confirms. The reopened case comes back in result.entities[0].
|
|
6324
|
+
*/
|
|
6325
|
+
const caseActionV2ApiControllerReopen = (options) => {
|
|
6326
|
+
return (options.client ?? client_gen_1.client).post({
|
|
6327
|
+
responseType: 'json',
|
|
6328
|
+
security: [
|
|
6329
|
+
{
|
|
6330
|
+
in: 'cookie',
|
|
6331
|
+
name: 'Authentication',
|
|
6332
|
+
type: 'apiKey'
|
|
6333
|
+
},
|
|
6334
|
+
{
|
|
6335
|
+
scheme: 'bearer',
|
|
6336
|
+
type: 'http'
|
|
6337
|
+
}
|
|
6338
|
+
],
|
|
6339
|
+
url: '/api/v2/cases/{idOrName}/open',
|
|
6340
|
+
...options
|
|
6341
|
+
});
|
|
6342
|
+
};
|
|
6343
|
+
exports.caseActionV2ApiControllerReopen = caseActionV2ApiControllerReopen;
|
|
6344
|
+
/**
|
|
6345
|
+
* Archive a case
|
|
6346
|
+
* Archive ONE closed Binalyze AIR case via POST /api/v2/cases/{idOrName}/archive. MUTATING and FINAL: lifecycle is open -> closed -> archived and there is NO unarchive endpoint. Only a CLOSED case can be archived; open or already-archived cases are rejected with a lifecycle error. dryRun DEFAULTS TO TRUE: the first call returns a would-archive preview without archiving; pass dryRun=false only after the user explicitly confirms. The archived case comes back in result.entities[0]. For two or more cases use air-cases-bulk-archive instead.
|
|
6347
|
+
*/
|
|
6348
|
+
const caseActionV2ApiControllerArchive = (options) => {
|
|
6349
|
+
return (options.client ?? client_gen_1.client).post({
|
|
6350
|
+
responseType: 'json',
|
|
6351
|
+
security: [
|
|
6352
|
+
{
|
|
6353
|
+
in: 'cookie',
|
|
6354
|
+
name: 'Authentication',
|
|
6355
|
+
type: 'apiKey'
|
|
6356
|
+
},
|
|
6357
|
+
{
|
|
6358
|
+
scheme: 'bearer',
|
|
6359
|
+
type: 'http'
|
|
6360
|
+
}
|
|
6361
|
+
],
|
|
6362
|
+
url: '/api/v2/cases/{idOrName}/archive',
|
|
6363
|
+
...options
|
|
6364
|
+
});
|
|
6365
|
+
};
|
|
6366
|
+
exports.caseActionV2ApiControllerArchive = caseActionV2ApiControllerArchive;
|
|
6367
|
+
/**
|
|
6368
|
+
* Unlink assets from a case
|
|
6369
|
+
* Unlink assets from a Binalyze AIR case via POST /api/v2/cases/{idOrName}/remove-assets. MUTATING but non-destructive: it removes ONLY the case<->asset relation; the assets themselves are NOT deleted, purged or uninstalled. dryRun DEFAULTS TO TRUE: the first call previews which assets would be unlinked plus skip warnings; pass dryRun=false only after the user confirms. Target assets by id or name in assets[] (wins over filter), or with a filter JSON object matched against the assets linked to the case. Assets not attached to the case are skipped with a warning; the real run returns deletedCount.
|
|
6370
|
+
*/
|
|
6371
|
+
const caseActionV2ApiControllerRemoveAssets = (options) => {
|
|
6372
|
+
return (options.client ?? client_gen_1.client).post({
|
|
6373
|
+
responseType: 'json',
|
|
6374
|
+
security: [
|
|
6375
|
+
{
|
|
6376
|
+
in: 'cookie',
|
|
6377
|
+
name: 'Authentication',
|
|
6378
|
+
type: 'apiKey'
|
|
6379
|
+
},
|
|
6380
|
+
{
|
|
6381
|
+
scheme: 'bearer',
|
|
6382
|
+
type: 'http'
|
|
6383
|
+
}
|
|
6384
|
+
],
|
|
6385
|
+
url: '/api/v2/cases/{idOrName}/remove-assets',
|
|
6386
|
+
...options,
|
|
6387
|
+
headers: {
|
|
6388
|
+
'Content-Type': 'application/json',
|
|
6389
|
+
...options.headers
|
|
6390
|
+
}
|
|
6391
|
+
});
|
|
6392
|
+
};
|
|
6393
|
+
exports.caseActionV2ApiControllerRemoveAssets = caseActionV2ApiControllerRemoveAssets;
|
|
6394
|
+
/**
|
|
6395
|
+
* List cases
|
|
6396
|
+
* List Binalyze AIR cases using GET /api/v2/cases. Read-only, paginated. Each entity uses object refs: owner{id,name}, organization{id,name}, category{id,name}, tags[], assignedUsers[], plus taskCounts{} and assets/taskAssignments {count,url} summaries. Lifecycle is open -> closed -> archived (no unarchive). Reference filters (owner, assignedUser, category, tags) accept a UUID or an exact name/username; name is a case-insensitive substring match. Use this to find a case id or name before calling air-cases-get, air-cases-update, air-cases-close or the case sub-resource tools. organizations defaults to all accessible organizations.
|
|
6397
|
+
*/
|
|
6398
|
+
const caseV2ApiControllerFilterCases = (options) => {
|
|
6399
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
6400
|
+
responseType: 'json',
|
|
6401
|
+
security: [
|
|
6402
|
+
{
|
|
6403
|
+
in: 'cookie',
|
|
6404
|
+
name: 'Authentication',
|
|
6405
|
+
type: 'apiKey'
|
|
6406
|
+
},
|
|
6407
|
+
{
|
|
6408
|
+
scheme: 'bearer',
|
|
6409
|
+
type: 'http'
|
|
6410
|
+
}
|
|
6411
|
+
],
|
|
6412
|
+
url: '/api/v2/cases',
|
|
6413
|
+
...options
|
|
6414
|
+
});
|
|
6415
|
+
};
|
|
6416
|
+
exports.caseV2ApiControllerFilterCases = caseV2ApiControllerFilterCases;
|
|
6417
|
+
/**
|
|
6418
|
+
* Create a case
|
|
6419
|
+
* Create a single Binalyze AIR case via POST /api/v2/cases. MUTATING. dryRun DEFAULTS TO TRUE: the first call returns a would-create preview (resolved unique name, organization, warnings) without persisting; pass dryRun=false only after the user confirms. Reference fields (owner, organization, category, tags, assignedUsers) accept a UUID or an exact name/username and are resolved before creation. The case name cannot be UUID-shaped and is auto-suffixed on a name conflict. owner defaults to the caller and organization is defaulted for single-organization callers. The created case is returned in result.entities[0].
|
|
6420
|
+
*/
|
|
6421
|
+
const caseV2ApiControllerCreateCase = (options) => {
|
|
6422
|
+
return (options.client ?? client_gen_1.client).post({
|
|
6423
|
+
responseType: 'json',
|
|
6424
|
+
security: [
|
|
6425
|
+
{
|
|
6426
|
+
in: 'cookie',
|
|
6427
|
+
name: 'Authentication',
|
|
6428
|
+
type: 'apiKey'
|
|
6429
|
+
},
|
|
6430
|
+
{
|
|
6431
|
+
scheme: 'bearer',
|
|
6432
|
+
type: 'http'
|
|
6433
|
+
}
|
|
6434
|
+
],
|
|
6435
|
+
url: '/api/v2/cases',
|
|
6436
|
+
...options,
|
|
6437
|
+
headers: {
|
|
6438
|
+
'Content-Type': 'application/json',
|
|
6439
|
+
...options.headers
|
|
6440
|
+
}
|
|
6441
|
+
});
|
|
6442
|
+
};
|
|
6443
|
+
exports.caseV2ApiControllerCreateCase = caseV2ApiControllerCreateCase;
|
|
6444
|
+
/**
|
|
6445
|
+
* Get case by id or name
|
|
6446
|
+
* Fetch one Binalyze AIR case by UUID or case name using GET /api/v2/cases/{idOrName}. Read-only; the case is wrapped in result.entities[0]. The entity uses object refs (owner{}, organization{}, category{}, tags[], assignedUsers[]), taskCounts{}, and assets/taskAssignments {count,url} summaries. Lifecycle status is open, closed or archived. A 404 also covers cases outside the caller's organizations (leak-safe), so do not infer the case does not exist. Use air-cases-list to discover ids and names first.
|
|
6447
|
+
*/
|
|
6448
|
+
const caseV2ApiControllerGetCaseByIdOrName = (options) => {
|
|
6449
|
+
return (options.client ?? client_gen_1.client).get({
|
|
6450
|
+
responseType: 'json',
|
|
6451
|
+
security: [
|
|
6452
|
+
{
|
|
6453
|
+
in: 'cookie',
|
|
6454
|
+
name: 'Authentication',
|
|
6455
|
+
type: 'apiKey'
|
|
6456
|
+
},
|
|
6457
|
+
{
|
|
6458
|
+
scheme: 'bearer',
|
|
6459
|
+
type: 'http'
|
|
6460
|
+
}
|
|
6461
|
+
],
|
|
6462
|
+
url: '/api/v2/cases/{idOrName}',
|
|
6463
|
+
...options
|
|
6464
|
+
});
|
|
6465
|
+
};
|
|
6466
|
+
exports.caseV2ApiControllerGetCaseByIdOrName = caseV2ApiControllerGetCaseByIdOrName;
|
|
6467
|
+
/**
|
|
6468
|
+
* Update a case
|
|
6469
|
+
* Partially update a Binalyze AIR case via PATCH /api/v2/cases/{idOrName}. MUTATING. dryRun DEFAULTS TO TRUE: the first call returns a would-update preview without persisting; pass dryRun=false only after the user confirms. Only supplied fields change. Owner change is folded into this endpoint (there is no separate change-owner endpoint). tags and metadata are a FULL REPLACE, not a merge; removeCategory=true clears the category. Reference fields (owner, assignedUsers, category, tags) accept a UUID or an exact name/username. If nothing effectively changes the API answers with a NOTHING_CHANGED error envelope.
|
|
6470
|
+
*/
|
|
6471
|
+
const caseV2ApiControllerUpdateCase = (options) => {
|
|
6472
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
6473
|
+
responseType: 'json',
|
|
6474
|
+
security: [
|
|
6475
|
+
{
|
|
6476
|
+
in: 'cookie',
|
|
6477
|
+
name: 'Authentication',
|
|
6478
|
+
type: 'apiKey'
|
|
6479
|
+
},
|
|
6480
|
+
{
|
|
6481
|
+
scheme: 'bearer',
|
|
6482
|
+
type: 'http'
|
|
6483
|
+
}
|
|
6484
|
+
],
|
|
6485
|
+
url: '/api/v2/cases/{idOrName}',
|
|
6486
|
+
...options,
|
|
6487
|
+
headers: {
|
|
6488
|
+
'Content-Type': 'application/json',
|
|
6489
|
+
...options.headers
|
|
6490
|
+
}
|
|
6491
|
+
});
|
|
6492
|
+
};
|
|
6493
|
+
exports.caseV2ApiControllerUpdateCase = caseV2ApiControllerUpdateCase;
|
|
6494
|
+
/**
|
|
6495
|
+
* Check if a case name is available
|
|
6496
|
+
* Validates whether a given case name is exists
|
|
6497
|
+
*/
|
|
6498
|
+
const casesCheckName = (options) => {
|
|
6499
|
+
return (options.client ?? client_gen_1.client).get({
|
|
6500
|
+
responseType: 'json',
|
|
6501
|
+
security: [
|
|
6502
|
+
{
|
|
6503
|
+
scheme: 'bearer',
|
|
6504
|
+
type: 'http'
|
|
6505
|
+
}
|
|
6506
|
+
],
|
|
6507
|
+
url: '/api/public/cases/check',
|
|
6508
|
+
...options
|
|
6509
|
+
});
|
|
6510
|
+
};
|
|
6511
|
+
exports.casesCheckName = casesCheckName;
|
|
6512
|
+
const caseExportCases = (options) => {
|
|
6513
|
+
return (options.client ?? client_gen_1.client).get({
|
|
6514
|
+
security: [
|
|
6515
|
+
{
|
|
6516
|
+
scheme: 'bearer',
|
|
6517
|
+
type: 'http'
|
|
6518
|
+
}
|
|
6519
|
+
],
|
|
6520
|
+
url: '/api/public/cases/export',
|
|
6521
|
+
...options
|
|
6522
|
+
});
|
|
6523
|
+
};
|
|
6524
|
+
exports.caseExportCases = caseExportCases;
|
|
6525
|
+
const caseExportCaseNotes = (options) => {
|
|
6526
|
+
return (options.client ?? client_gen_1.client).get({
|
|
6527
|
+
security: [
|
|
6528
|
+
{
|
|
6529
|
+
scheme: 'bearer',
|
|
5636
6530
|
type: 'http'
|
|
5637
6531
|
}
|
|
5638
6532
|
],
|
|
@@ -6762,6 +7656,7 @@ const interactCommandSnippetTagsUpdate = (options) => {
|
|
|
6762
7656
|
exports.interactCommandSnippetTagsUpdate = interactCommandSnippetTagsUpdate;
|
|
6763
7657
|
/**
|
|
6764
7658
|
* List InterAct command snippets
|
|
7659
|
+
* List Binalyze AIR InterAct command snippets (reusable shell scripts in the InterAct library) using GET /api/v2/libraries/interact/snippets. Read-only and paginated. Each entity is a snippet summary: id, name, description, script, platforms, tags [{id,name}], organizations [{id,name}], origin (user or predefined), createdBy, createdAt/updatedAt. Use this when the user asks to list or search InterAct snippets/scripts, or needs a snippet id or exact name before get, update, or delete. sortBy accepts only name, createdAt, updatedAt (default name ASC). Predefined (system) snippets have origin=predefined and cannot be modified or deleted.
|
|
6765
7660
|
*/
|
|
6766
7661
|
const interactLibrarySnippetV2ApiControllerList = (options) => {
|
|
6767
7662
|
return (options?.client ?? client_gen_1.client).get({
|
|
@@ -6784,6 +7679,7 @@ const interactLibrarySnippetV2ApiControllerList = (options) => {
|
|
|
6784
7679
|
exports.interactLibrarySnippetV2ApiControllerList = interactLibrarySnippetV2ApiControllerList;
|
|
6785
7680
|
/**
|
|
6786
7681
|
* Create InterAct command snippet
|
|
7682
|
+
* Create a Binalyze AIR InterAct command snippet (a reusable shell script in the InterAct library) via POST /api/v2/libraries/interact/snippets. MUTATING: persists a new snippet. `name` (max 255 alphanumeric chars, not UUID-shaped) and `script` (max 5000 chars) are required. Omitted platforms means all platforms. Omitted organizations auto-selects the caller's single accessible organization; multi-org and all-orgs callers must pass organizations explicitly (400 ORGANIZATION_REQUIRED). Unknown tag names are created in the shared InterAct tag store. A name collision within the target organizations is resolved by auto-suffixing; a warning reports the adjusted name. dryRun DEFAULTS TO TRUE: the first call previews the would-create entity (action='would-create', final name after suffixing) without persisting anything; pass dryRun=false only to actually create after the user confirms. Success returns entities[0] with the created snippet detail plus warnings[] (e.g. name adjustments).
|
|
6787
7683
|
*/
|
|
6788
7684
|
const interactLibrarySnippetV2ApiControllerCreate = (options) => {
|
|
6789
7685
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -6810,6 +7706,7 @@ const interactLibrarySnippetV2ApiControllerCreate = (options) => {
|
|
|
6810
7706
|
exports.interactLibrarySnippetV2ApiControllerCreate = interactLibrarySnippetV2ApiControllerCreate;
|
|
6811
7707
|
/**
|
|
6812
7708
|
* Bulk delete InterAct command snippets
|
|
7709
|
+
* Bulk delete Binalyze AIR InterAct command snippets by id or name via POST /api/v2/libraries/interact/snippets/delete. MUTATING and irreversible. Targets that are unknown or predefined (system) are skipped and reported in warnings[]; the delete itself is all-or-nothing over the resolved targets (if one vanishes mid-delete, nothing is deleted and a warning explains it). dryRun DEFAULTS TO TRUE: the first call returns entities[] previews (action:'would-delete' per resolved snippet) plus warnings for skipped targets, without deleting anything; pass dryRun=false only to actually delete after the user confirms. Success returns { deletedCount, warnings }. For a single snippet prefer air-interact-snippets-delete.
|
|
6813
7710
|
*/
|
|
6814
7711
|
const interactLibrarySnippetV2ApiControllerBulkDelete = (options) => {
|
|
6815
7712
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -6836,6 +7733,7 @@ const interactLibrarySnippetV2ApiControllerBulkDelete = (options) => {
|
|
|
6836
7733
|
exports.interactLibrarySnippetV2ApiControllerBulkDelete = interactLibrarySnippetV2ApiControllerBulkDelete;
|
|
6837
7734
|
/**
|
|
6838
7735
|
* Delete InterAct command snippet
|
|
7736
|
+
* Delete ONE Binalyze AIR InterAct command snippet by UUID or exact name via DELETE /api/v2/libraries/interact/snippets/{idOrName}. MUTATING and irreversible: removes the snippet record and its tag relations. Predefined (system, origin=predefined) snippets cannot be deleted and return an error. An unknown id or name returns 404. dryRun DEFAULTS TO TRUE: the first call returns entities[0] = { id, name, action:'would-delete', effects } without deleting anything; pass dryRun=false only to actually delete after the user confirms. Success returns entities[0] = { id, name } of the deleted snippet. For deleting several snippets at once use air-interact-snippets-bulk-delete.
|
|
6839
7737
|
*/
|
|
6840
7738
|
const interactLibrarySnippetV2ApiControllerDelete = (options) => {
|
|
6841
7739
|
return (options.client ?? client_gen_1.client).delete({
|
|
@@ -6858,6 +7756,7 @@ const interactLibrarySnippetV2ApiControllerDelete = (options) => {
|
|
|
6858
7756
|
exports.interactLibrarySnippetV2ApiControllerDelete = interactLibrarySnippetV2ApiControllerDelete;
|
|
6859
7757
|
/**
|
|
6860
7758
|
* Get InterAct command snippet by id or name
|
|
7759
|
+
* Get ONE Binalyze AIR InterAct command snippet by UUID or exact name using GET /api/v2/libraries/interact/snippets/{idOrName}. Read-only. Returns entities[0] with the full snippet detail: id, name, description, script, platforms, tags [{id,name}], organizations [{id,name}], origin (user or predefined), createdBy, createdAt/updatedAt. Use this when the user asks for a specific snippet's script or metadata. An unknown id or name returns 404. If the name is not exact, use air-interact-snippets-list with a name filter first.
|
|
6861
7760
|
*/
|
|
6862
7761
|
const interactLibrarySnippetV2ApiControllerGet = (options) => {
|
|
6863
7762
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -6880,6 +7779,7 @@ const interactLibrarySnippetV2ApiControllerGet = (options) => {
|
|
|
6880
7779
|
exports.interactLibrarySnippetV2ApiControllerGet = interactLibrarySnippetV2ApiControllerGet;
|
|
6881
7780
|
/**
|
|
6882
7781
|
* Update InterAct command snippet
|
|
7782
|
+
* Update ONE Binalyze AIR InterAct command snippet by UUID or exact name via PATCH /api/v2/libraries/interact/snippets/{idOrName}. MUTATING, partial update: only the fields you pass are changed. Updatable fields: name, script, description, platforms, tags, organizations. Passing tags=[] clears all tags; passing organizations replaces the organization scope (requires authority over the current scope). Predefined (system, origin=predefined) snippets cannot be modified and return an error. Sending no updatable field returns HTTP 200 with success:false and a NOTHING_CHANGED error entry. dryRun DEFAULTS TO TRUE: the first call previews the would-update entity with changedFields without persisting; pass dryRun=false only to actually update after the user confirms. Success returns entities[0] with the updated snippet detail plus warnings[] (e.g. name auto-suffix on collision).
|
|
6883
7783
|
*/
|
|
6884
7784
|
const interactLibrarySnippetV2ApiControllerUpdate = (options) => {
|
|
6885
7785
|
return (options.client ?? client_gen_1.client).patch({
|
|
@@ -6906,6 +7806,7 @@ const interactLibrarySnippetV2ApiControllerUpdate = (options) => {
|
|
|
6906
7806
|
exports.interactLibrarySnippetV2ApiControllerUpdate = interactLibrarySnippetV2ApiControllerUpdate;
|
|
6907
7807
|
/**
|
|
6908
7808
|
* List InterAct command snippet tags
|
|
7809
|
+
* List Binalyze AIR InterAct snippet tags (the shared tag store of the InterAct library) using GET /api/v2/libraries/interact/tags. Read-only and paginated. Each entity is a tag: id, name, organizations [{id,name}], createdAt/updatedAt, and (with withCount=true) the number of snippets using it. Use this when the user asks to list or search InterAct tags, or needs a tag id or exact name before get, update, delete, or before tagging snippets. sortBy accepts only name, createdAt, updatedAt (default name ASC).
|
|
6909
7810
|
*/
|
|
6910
7811
|
const interactLibraryTagV2ApiControllerList = (options) => {
|
|
6911
7812
|
return (options?.client ?? client_gen_1.client).get({
|
|
@@ -6928,6 +7829,7 @@ const interactLibraryTagV2ApiControllerList = (options) => {
|
|
|
6928
7829
|
exports.interactLibraryTagV2ApiControllerList = interactLibraryTagV2ApiControllerList;
|
|
6929
7830
|
/**
|
|
6930
7831
|
* Create InterAct command snippet tag
|
|
7832
|
+
* Create a Binalyze AIR InterAct snippet tag (in the shared tag store of the InterAct library) via POST /api/v2/libraries/interact/tags. MUTATING: persists a new tag. `name` (max 100 alphanumeric chars, not UUID-shaped) is required. Omitted organizations auto-selects the caller's single accessible organization; multi-org and all-orgs callers must pass organizations explicitly (400 ORGANIZATION_REQUIRED). A name collision within the target organizations is resolved by auto-suffixing; a warning reports the adjusted name. dryRun DEFAULTS TO TRUE: the first call previews the would-create entity (action='would-create', final name after suffixing) without persisting anything; pass dryRun=false only to actually create after the user confirms. Success returns entities[0] with the created tag plus warnings[]. Note: air-interact-snippets-create and -update also auto-create unknown tag names, so an explicit tag create is only needed when the user wants the tag itself.
|
|
6931
7833
|
*/
|
|
6932
7834
|
const interactLibraryTagV2ApiControllerCreate = (options) => {
|
|
6933
7835
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -6954,6 +7856,7 @@ const interactLibraryTagV2ApiControllerCreate = (options) => {
|
|
|
6954
7856
|
exports.interactLibraryTagV2ApiControllerCreate = interactLibraryTagV2ApiControllerCreate;
|
|
6955
7857
|
/**
|
|
6956
7858
|
* Bulk delete InterAct command snippet tags
|
|
7859
|
+
* Bulk delete Binalyze AIR InterAct snippet tags by id or name via POST /api/v2/libraries/interact/tags/delete. MUTATING and irreversible: removes the tag records and their snippet-tag relations (snippets themselves are kept). Targets that are unknown or system tags are skipped and reported in warnings[]; deletion is per-tag, so a tag already deleted concurrently counts as gone. dryRun DEFAULTS TO TRUE: the first call returns entities[] previews (action:'would-delete' per resolved tag) plus warnings for skipped targets, without deleting anything; pass dryRun=false only to actually delete after the user confirms. Success returns { deletedCount, warnings }. For a single tag prefer air-interact-tags-delete.
|
|
6957
7860
|
*/
|
|
6958
7861
|
const interactLibraryTagV2ApiControllerBulkDelete = (options) => {
|
|
6959
7862
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -6980,6 +7883,7 @@ const interactLibraryTagV2ApiControllerBulkDelete = (options) => {
|
|
|
6980
7883
|
exports.interactLibraryTagV2ApiControllerBulkDelete = interactLibraryTagV2ApiControllerBulkDelete;
|
|
6981
7884
|
/**
|
|
6982
7885
|
* Delete InterAct command snippet tag
|
|
7886
|
+
* Delete ONE Binalyze AIR InterAct snippet tag by UUID or exact name via DELETE /api/v2/libraries/interact/tags/{idOrName}. MUTATING and irreversible: removes the tag record and its snippet-tag relations (snippets themselves are kept). System tags cannot be deleted and return an error. An unknown id or name returns 404. dryRun DEFAULTS TO TRUE: the first call returns entities[0] = { id, name, action:'would-delete', effects } without deleting anything; pass dryRun=false only to actually delete after the user confirms. Success returns entities[0] = { id, name } of the deleted tag. For deleting several tags at once use air-interact-tags-bulk-delete.
|
|
6983
7887
|
*/
|
|
6984
7888
|
const interactLibraryTagV2ApiControllerDelete = (options) => {
|
|
6985
7889
|
return (options.client ?? client_gen_1.client).delete({
|
|
@@ -7002,7 +7906,7 @@ const interactLibraryTagV2ApiControllerDelete = (options) => {
|
|
|
7002
7906
|
exports.interactLibraryTagV2ApiControllerDelete = interactLibraryTagV2ApiControllerDelete;
|
|
7003
7907
|
/**
|
|
7004
7908
|
* Get InterAct command snippet tag by id or name
|
|
7005
|
-
* v2-only
|
|
7909
|
+
* Get ONE Binalyze AIR InterAct snippet tag by UUID or exact name using GET /api/v2/libraries/interact/tags/{idOrName}. Read-only. Returns entities[0] with the tag detail: id, name, organizations [{id,name}], snippet usage count, createdAt/updatedAt. Use this when the user asks about a specific InterAct tag. An unknown id or name returns 404. If the name is not exact, use air-interact-tags-list with a name filter first.
|
|
7006
7910
|
*/
|
|
7007
7911
|
const interactLibraryTagV2ApiControllerGet = (options) => {
|
|
7008
7912
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -7025,6 +7929,7 @@ const interactLibraryTagV2ApiControllerGet = (options) => {
|
|
|
7025
7929
|
exports.interactLibraryTagV2ApiControllerGet = interactLibraryTagV2ApiControllerGet;
|
|
7026
7930
|
/**
|
|
7027
7931
|
* Update InterAct command snippet tag
|
|
7932
|
+
* Update ONE Binalyze AIR InterAct snippet tag by UUID or exact name via PATCH /api/v2/libraries/interact/tags/{idOrName}. MUTATING, partial update: only the fields you pass are changed. Updatable fields: name and organizations (replaces the current organization scope; requires authority over the current scope). System tags cannot be updated and return an error. Sending no updatable field returns HTTP 200 with success:false and a NOTHING_CHANGED error entry. dryRun DEFAULTS TO TRUE: the first call previews the would-update entity with changedFields without persisting; pass dryRun=false only to actually update after the user confirms. Success returns entities[0] with the updated tag plus warnings[] (e.g. name auto-suffix on collision).
|
|
7028
7933
|
*/
|
|
7029
7934
|
const interactLibraryTagV2ApiControllerUpdate = (options) => {
|
|
7030
7935
|
return (options.client ?? client_gen_1.client).patch({
|
|
@@ -7051,6 +7956,7 @@ const interactLibraryTagV2ApiControllerUpdate = (options) => {
|
|
|
7051
7956
|
exports.interactLibraryTagV2ApiControllerUpdate = interactLibraryTagV2ApiControllerUpdate;
|
|
7052
7957
|
/**
|
|
7053
7958
|
* List InterAct library files
|
|
7959
|
+
* List Binalyze AIR InterAct library files (binaries/scripts responders can download during a shell session) using GET /api/v2/libraries/interact/files. Read-only and paginated. Each entity is a file record: id, name, size, sha256, organizations [{id,name}], uploadedBy/uploadedAt, lastUsedBy/lastUsedAt. File CONTENT is not included; use air-interact-files-download for the bytes. Use this when the user asks to list or search InterAct library files, verify a file by sha256, or needs a file id or exact name before download or delete. searchTerm matches name or sha256 (contains, case-insensitive); sha256 is an exact full-hash lookup. sortBy accepts only name, size, uploadedAt, uploadedBy, lastUsedAt, lastUsedBy (default uploadedAt DESC).
|
|
7054
7960
|
*/
|
|
7055
7961
|
const interactLibraryFileV2ApiControllerList = (options) => {
|
|
7056
7962
|
return (options?.client ?? client_gen_1.client).get({
|
|
@@ -7073,9 +7979,11 @@ const interactLibraryFileV2ApiControllerList = (options) => {
|
|
|
7073
7979
|
exports.interactLibraryFileV2ApiControllerList = interactLibraryFileV2ApiControllerList;
|
|
7074
7980
|
/**
|
|
7075
7981
|
* Upload InterAct library file
|
|
7982
|
+
* Upload a file into the Binalyze AIR InterAct library via POST /api/v2/libraries/interact/files (multipart field 'file'). MUTATING: persists the file so responders can download it during InterAct shell sessions. Limits: max 4 GB per upload and 20 GB total library size. A name collision within the target organizations is resolved by auto-suffixing; a warning reports the adjusted name. dryRun DEFAULTS TO TRUE: the first call previews the would-create entity (name, size, sha256) without persisting anything; pass dryRun=false only to actually upload after the user confirms. Success returns entities[0] with the file record (id, name, size, sha256, organizations) plus warnings[], and a Location header pointing at the new resource.
|
|
7076
7983
|
*/
|
|
7077
7984
|
const interactLibraryFileV2ApiControllerUpload = (options) => {
|
|
7078
7985
|
return (options.client ?? client_gen_1.client).post({
|
|
7986
|
+
...client_1.formDataBodySerializer,
|
|
7079
7987
|
responseType: 'json',
|
|
7080
7988
|
security: [
|
|
7081
7989
|
{
|
|
@@ -7091,7 +7999,7 @@ const interactLibraryFileV2ApiControllerUpload = (options) => {
|
|
|
7091
7999
|
url: '/api/v2/libraries/interact/files',
|
|
7092
8000
|
...options,
|
|
7093
8001
|
headers: {
|
|
7094
|
-
'Content-Type':
|
|
8002
|
+
'Content-Type': null,
|
|
7095
8003
|
...options.headers
|
|
7096
8004
|
}
|
|
7097
8005
|
});
|
|
@@ -7099,6 +8007,7 @@ const interactLibraryFileV2ApiControllerUpload = (options) => {
|
|
|
7099
8007
|
exports.interactLibraryFileV2ApiControllerUpload = interactLibraryFileV2ApiControllerUpload;
|
|
7100
8008
|
/**
|
|
7101
8009
|
* Bulk delete InterAct library files
|
|
8010
|
+
* Bulk delete Binalyze AIR InterAct library files by id or name via POST /api/v2/libraries/interact/files/delete. MUTATING and irreversible: removes the file records and their stored content. Unknown targets are skipped and reported in warnings[]; the delete itself is all-or-nothing over the resolved targets (if one vanishes mid-delete, nothing is deleted and a warning explains it). dryRun DEFAULTS TO TRUE: the first call returns entities[] previews (action:'would-delete' per resolved file) plus warnings for skipped targets, without deleting anything; pass dryRun=false only to actually delete after the user confirms. Success returns { deletedCount, warnings }. For a single file prefer air-interact-files-delete.
|
|
7102
8011
|
*/
|
|
7103
8012
|
const interactLibraryFileV2ApiControllerBulkDelete = (options) => {
|
|
7104
8013
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -7125,6 +8034,7 @@ const interactLibraryFileV2ApiControllerBulkDelete = (options) => {
|
|
|
7125
8034
|
exports.interactLibraryFileV2ApiControllerBulkDelete = interactLibraryFileV2ApiControllerBulkDelete;
|
|
7126
8035
|
/**
|
|
7127
8036
|
* Delete InterAct library file
|
|
8037
|
+
* Delete ONE Binalyze AIR InterAct library file by UUID or exact name via DELETE /api/v2/libraries/interact/files/{idOrName}. MUTATING and irreversible: removes the library-file record, its file-info record, and the stored file content. An unknown id or name returns 404. dryRun DEFAULTS TO TRUE: the first call returns entities[0] = { id, name, action:'would-delete', effects } without deleting anything; pass dryRun=false only to actually delete after the user confirms. Success returns entities[0] = { id, name } of the deleted file. For deleting several files at once use air-interact-files-bulk-delete.
|
|
7128
8038
|
*/
|
|
7129
8039
|
const interactLibraryFileV2ApiControllerDelete = (options) => {
|
|
7130
8040
|
return (options.client ?? client_gen_1.client).delete({
|
|
@@ -7147,6 +8057,7 @@ const interactLibraryFileV2ApiControllerDelete = (options) => {
|
|
|
7147
8057
|
exports.interactLibraryFileV2ApiControllerDelete = interactLibraryFileV2ApiControllerDelete;
|
|
7148
8058
|
/**
|
|
7149
8059
|
* Download InterAct library file by id or name
|
|
8060
|
+
* Download ONE Binalyze AIR InterAct library file by UUID or exact name via GET /api/v2/libraries/interact/files/{idOrName}. Read-only; the endpoint streams the file content as an attachment (it bypasses the JSON envelope). This tool saves the bytes to a file inside the current worktree (outputPath, default artifacts/interact-library-file.bin) and returns { outputPath, byteLength }; read the saved file for the content. Use air-interact-files-list first if you only need the file's size/sha256 metadata without downloading content. An unknown id or name returns 404. Library files can be forensic tooling or scripts; treat downloaded content carefully and do not execute it.
|
|
7150
8061
|
*/
|
|
7151
8062
|
const interactLibraryFileV2ApiControllerDownload = (options) => {
|
|
7152
8063
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -7167,6 +8078,29 @@ const interactLibraryFileV2ApiControllerDownload = (options) => {
|
|
|
7167
8078
|
});
|
|
7168
8079
|
};
|
|
7169
8080
|
exports.interactLibraryFileV2ApiControllerDownload = interactLibraryFileV2ApiControllerDownload;
|
|
8081
|
+
/**
|
|
8082
|
+
* List native InterAct shell commands
|
|
8083
|
+
* List the AIR native InterAct shell commands (and their aliases, descriptions, usage) via GET /api/v2/interact/commands. Use this to GROUND command handling instead of guessing: before telling the user a command looks like a typo, call this tool (optionally with searchTerm) and suggest the closest real command name from `commandNames`. Note: a command that is NOT in this list is not necessarily invalid -- air-assets-interact-run also runs arbitrary shell commands. So only offer a "did you mean" when a close native match exists. Read-only.
|
|
8084
|
+
*/
|
|
8085
|
+
const interactCommandV2ApiControllerList = (options) => {
|
|
8086
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
8087
|
+
responseType: 'json',
|
|
8088
|
+
security: [
|
|
8089
|
+
{
|
|
8090
|
+
in: 'cookie',
|
|
8091
|
+
name: 'Authentication',
|
|
8092
|
+
type: 'apiKey'
|
|
8093
|
+
},
|
|
8094
|
+
{
|
|
8095
|
+
scheme: 'bearer',
|
|
8096
|
+
type: 'http'
|
|
8097
|
+
}
|
|
8098
|
+
],
|
|
8099
|
+
url: '/api/v2/interact/commands',
|
|
8100
|
+
...options
|
|
8101
|
+
});
|
|
8102
|
+
};
|
|
8103
|
+
exports.interactCommandV2ApiControllerList = interactCommandV2ApiControllerList;
|
|
7170
8104
|
const multipartUploadInitializeHead = (options) => {
|
|
7171
8105
|
return (options?.client ?? client_gen_1.client).head({
|
|
7172
8106
|
security: [
|
|
@@ -7474,25 +8408,257 @@ const systemApiTokensGetMany = (options) => {
|
|
|
7474
8408
|
type: 'http'
|
|
7475
8409
|
}
|
|
7476
8410
|
],
|
|
7477
|
-
url: '/api/public/system-tokens',
|
|
8411
|
+
url: '/api/public/system-tokens',
|
|
8412
|
+
...options
|
|
8413
|
+
});
|
|
8414
|
+
};
|
|
8415
|
+
exports.systemApiTokensGetMany = systemApiTokensGetMany;
|
|
8416
|
+
/**
|
|
8417
|
+
* Create a new system API token
|
|
8418
|
+
* Create a new system API token with the specified name, description, expiration date, and role
|
|
8419
|
+
*/
|
|
8420
|
+
const systemApiTokensCreate = (options) => {
|
|
8421
|
+
return (options.client ?? client_gen_1.client).post({
|
|
8422
|
+
responseType: 'json',
|
|
8423
|
+
security: [
|
|
8424
|
+
{
|
|
8425
|
+
scheme: 'bearer',
|
|
8426
|
+
type: 'http'
|
|
8427
|
+
}
|
|
8428
|
+
],
|
|
8429
|
+
url: '/api/public/system-tokens',
|
|
8430
|
+
...options,
|
|
8431
|
+
headers: {
|
|
8432
|
+
'Content-Type': 'application/json',
|
|
8433
|
+
...options.headers
|
|
8434
|
+
}
|
|
8435
|
+
});
|
|
8436
|
+
};
|
|
8437
|
+
exports.systemApiTokensCreate = systemApiTokensCreate;
|
|
8438
|
+
/**
|
|
8439
|
+
* Delete a system API token
|
|
8440
|
+
* Delete an existing system API token by ID
|
|
8441
|
+
*/
|
|
8442
|
+
const systemApiTokensDelete = (options) => {
|
|
8443
|
+
return (options.client ?? client_gen_1.client).delete({
|
|
8444
|
+
security: [
|
|
8445
|
+
{
|
|
8446
|
+
scheme: 'bearer',
|
|
8447
|
+
type: 'http'
|
|
8448
|
+
}
|
|
8449
|
+
],
|
|
8450
|
+
url: '/api/public/system-tokens/{id}',
|
|
8451
|
+
...options
|
|
8452
|
+
});
|
|
8453
|
+
};
|
|
8454
|
+
exports.systemApiTokensDelete = systemApiTokensDelete;
|
|
8455
|
+
/**
|
|
8456
|
+
* Get system API token by ID
|
|
8457
|
+
* Retrieve a specific system API token
|
|
8458
|
+
*/
|
|
8459
|
+
const systemApiTokensGetOne = (options) => {
|
|
8460
|
+
return (options.client ?? client_gen_1.client).get({
|
|
8461
|
+
responseType: 'json',
|
|
8462
|
+
security: [
|
|
8463
|
+
{
|
|
8464
|
+
scheme: 'bearer',
|
|
8465
|
+
type: 'http'
|
|
8466
|
+
}
|
|
8467
|
+
],
|
|
8468
|
+
url: '/api/public/system-tokens/{id}',
|
|
8469
|
+
...options
|
|
8470
|
+
});
|
|
8471
|
+
};
|
|
8472
|
+
exports.systemApiTokensGetOne = systemApiTokensGetOne;
|
|
8473
|
+
/**
|
|
8474
|
+
* Update an existing system API token
|
|
8475
|
+
* Update an existing system API token
|
|
8476
|
+
*/
|
|
8477
|
+
const systemApiTokensUpdate = (options) => {
|
|
8478
|
+
return (options.client ?? client_gen_1.client).put({
|
|
8479
|
+
responseType: 'json',
|
|
8480
|
+
security: [
|
|
8481
|
+
{
|
|
8482
|
+
scheme: 'bearer',
|
|
8483
|
+
type: 'http'
|
|
8484
|
+
}
|
|
8485
|
+
],
|
|
8486
|
+
url: '/api/public/system-tokens/{id}',
|
|
8487
|
+
...options,
|
|
8488
|
+
headers: {
|
|
8489
|
+
'Content-Type': 'application/json',
|
|
8490
|
+
...options.headers
|
|
8491
|
+
}
|
|
8492
|
+
});
|
|
8493
|
+
};
|
|
8494
|
+
exports.systemApiTokensUpdate = systemApiTokensUpdate;
|
|
8495
|
+
const cloudAccountsFilter = (options) => {
|
|
8496
|
+
return (options.client ?? client_gen_1.client).get({
|
|
8497
|
+
security: [
|
|
8498
|
+
{
|
|
8499
|
+
scheme: 'bearer',
|
|
8500
|
+
type: 'http'
|
|
8501
|
+
}
|
|
8502
|
+
],
|
|
8503
|
+
url: '/api/public/cloud-forensics/accounts',
|
|
8504
|
+
...options
|
|
8505
|
+
});
|
|
8506
|
+
};
|
|
8507
|
+
exports.cloudAccountsFilter = cloudAccountsFilter;
|
|
8508
|
+
const cloudAccountsCreateCloudAccount = (options) => {
|
|
8509
|
+
return (options.client ?? client_gen_1.client).post({
|
|
8510
|
+
security: [
|
|
8511
|
+
{
|
|
8512
|
+
scheme: 'bearer',
|
|
8513
|
+
type: 'http'
|
|
8514
|
+
}
|
|
8515
|
+
],
|
|
8516
|
+
url: '/api/public/cloud-forensics/accounts',
|
|
8517
|
+
...options,
|
|
8518
|
+
headers: {
|
|
8519
|
+
'Content-Type': 'application/json',
|
|
8520
|
+
...options.headers
|
|
8521
|
+
}
|
|
8522
|
+
});
|
|
8523
|
+
};
|
|
8524
|
+
exports.cloudAccountsCreateCloudAccount = cloudAccountsCreateCloudAccount;
|
|
8525
|
+
const cloudAccountsGetConfig = (options) => {
|
|
8526
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
8527
|
+
security: [
|
|
8528
|
+
{
|
|
8529
|
+
scheme: 'bearer',
|
|
8530
|
+
type: 'http'
|
|
8531
|
+
}
|
|
8532
|
+
],
|
|
8533
|
+
url: '/api/public/cloud-forensics/accounts/config',
|
|
8534
|
+
...options
|
|
8535
|
+
});
|
|
8536
|
+
};
|
|
8537
|
+
exports.cloudAccountsGetConfig = cloudAccountsGetConfig;
|
|
8538
|
+
const cloudAccountsExport = (options) => {
|
|
8539
|
+
return (options.client ?? client_gen_1.client).get({
|
|
8540
|
+
security: [
|
|
8541
|
+
{
|
|
8542
|
+
scheme: 'bearer',
|
|
8543
|
+
type: 'http'
|
|
8544
|
+
}
|
|
8545
|
+
],
|
|
8546
|
+
url: '/api/public/cloud-forensics/accounts/export',
|
|
8547
|
+
...options
|
|
8548
|
+
});
|
|
8549
|
+
};
|
|
8550
|
+
exports.cloudAccountsExport = cloudAccountsExport;
|
|
8551
|
+
const cloudAccountsDelete = (options) => {
|
|
8552
|
+
return (options.client ?? client_gen_1.client).delete({
|
|
8553
|
+
security: [
|
|
8554
|
+
{
|
|
8555
|
+
scheme: 'bearer',
|
|
8556
|
+
type: 'http'
|
|
8557
|
+
}
|
|
8558
|
+
],
|
|
8559
|
+
url: '/api/public/cloud-forensics/accounts/{id}',
|
|
8560
|
+
...options
|
|
8561
|
+
});
|
|
8562
|
+
};
|
|
8563
|
+
exports.cloudAccountsDelete = cloudAccountsDelete;
|
|
8564
|
+
const cloudAccountsGetCloudAccountById = (options) => {
|
|
8565
|
+
return (options.client ?? client_gen_1.client).get({
|
|
8566
|
+
security: [
|
|
8567
|
+
{
|
|
8568
|
+
scheme: 'bearer',
|
|
8569
|
+
type: 'http'
|
|
8570
|
+
}
|
|
8571
|
+
],
|
|
8572
|
+
url: '/api/public/cloud-forensics/accounts/{id}',
|
|
8573
|
+
...options
|
|
8574
|
+
});
|
|
8575
|
+
};
|
|
8576
|
+
exports.cloudAccountsGetCloudAccountById = cloudAccountsGetCloudAccountById;
|
|
8577
|
+
const cloudAccountsUpdateCloudAccount = (options) => {
|
|
8578
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
8579
|
+
security: [
|
|
8580
|
+
{
|
|
8581
|
+
scheme: 'bearer',
|
|
8582
|
+
type: 'http'
|
|
8583
|
+
}
|
|
8584
|
+
],
|
|
8585
|
+
url: '/api/public/cloud-forensics/accounts/{id}',
|
|
8586
|
+
...options,
|
|
8587
|
+
headers: {
|
|
8588
|
+
'Content-Type': 'application/json',
|
|
8589
|
+
...options.headers
|
|
8590
|
+
}
|
|
8591
|
+
});
|
|
8592
|
+
};
|
|
8593
|
+
exports.cloudAccountsUpdateCloudAccount = cloudAccountsUpdateCloudAccount;
|
|
8594
|
+
const cloudAccountsSyncCloudAccount = (options) => {
|
|
8595
|
+
return (options.client ?? client_gen_1.client).get({
|
|
8596
|
+
security: [
|
|
8597
|
+
{
|
|
8598
|
+
scheme: 'bearer',
|
|
8599
|
+
type: 'http'
|
|
8600
|
+
}
|
|
8601
|
+
],
|
|
8602
|
+
url: '/api/public/cloud-forensics/accounts/sync/{id}',
|
|
8603
|
+
...options
|
|
8604
|
+
});
|
|
8605
|
+
};
|
|
8606
|
+
exports.cloudAccountsSyncCloudAccount = cloudAccountsSyncCloudAccount;
|
|
8607
|
+
const cloudAccountsSyncAllCloudAccount = (options) => {
|
|
8608
|
+
return (options.client ?? client_gen_1.client).get({
|
|
8609
|
+
security: [
|
|
8610
|
+
{
|
|
8611
|
+
scheme: 'bearer',
|
|
8612
|
+
type: 'http'
|
|
8613
|
+
}
|
|
8614
|
+
],
|
|
8615
|
+
url: '/api/public/cloud-forensics/accounts/sync/{cloudVendor}/all',
|
|
8616
|
+
...options
|
|
8617
|
+
});
|
|
8618
|
+
};
|
|
8619
|
+
exports.cloudAccountsSyncAllCloudAccount = cloudAccountsSyncAllCloudAccount;
|
|
8620
|
+
/**
|
|
8621
|
+
* List investigation flags
|
|
8622
|
+
* List Binalyze AIR investigation flags (the shared evidence-flag library) using GET /api/v2/libraries/flags. Read-only and paginated. Each entity: numeric id, name, description, color, organizations [{ id, name }], createdBy, createdAt/updatedAt. filter[name] is a case-insensitive contains match; sortBy accepts name, createdAt, updatedAt (default name ASC). Use this to find a flag id or exact name before update/delete or before flagging evidence in an investigation.
|
|
8623
|
+
*/
|
|
8624
|
+
const flagsLibraryV2ApiControllerList = (options) => {
|
|
8625
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
8626
|
+
responseType: 'json',
|
|
8627
|
+
security: [
|
|
8628
|
+
{
|
|
8629
|
+
in: 'cookie',
|
|
8630
|
+
name: 'Authentication',
|
|
8631
|
+
type: 'apiKey'
|
|
8632
|
+
},
|
|
8633
|
+
{
|
|
8634
|
+
scheme: 'bearer',
|
|
8635
|
+
type: 'http'
|
|
8636
|
+
}
|
|
8637
|
+
],
|
|
8638
|
+
url: '/api/v2/libraries/flags',
|
|
7478
8639
|
...options
|
|
7479
8640
|
});
|
|
7480
8641
|
};
|
|
7481
|
-
exports.
|
|
8642
|
+
exports.flagsLibraryV2ApiControllerList = flagsLibraryV2ApiControllerList;
|
|
7482
8643
|
/**
|
|
7483
|
-
* Create
|
|
7484
|
-
* Create a
|
|
8644
|
+
* Create investigation flag
|
|
8645
|
+
* Create a Binalyze AIR investigation flag via POST /api/v2/libraries/flags. MUTATING: persists a new flag. Required: name (max 50 chars, not purely numeric). Optional: color (CSS color, defaults to #4A4D55), description, and organization (id or exact name; defaults to the caller organization when the caller has exactly one, otherwise the default organization). A name collision within the organization is resolved by auto-suffixing with a NAME_ADJUSTED warning; if a unique name cannot be allocated, returns 409 NAME_CONFLICT. dryRun DEFAULTS TO TRUE in the tool layer: the first call previews the would-create entity (action='would-create', final name) without persisting; pass dryRun=false only after the user confirms. Success returns entities[0] with the created flag.
|
|
7485
8646
|
*/
|
|
7486
|
-
const
|
|
8647
|
+
const flagsLibraryV2ApiControllerCreate = (options) => {
|
|
7487
8648
|
return (options.client ?? client_gen_1.client).post({
|
|
7488
8649
|
responseType: 'json',
|
|
7489
8650
|
security: [
|
|
8651
|
+
{
|
|
8652
|
+
in: 'cookie',
|
|
8653
|
+
name: 'Authentication',
|
|
8654
|
+
type: 'apiKey'
|
|
8655
|
+
},
|
|
7490
8656
|
{
|
|
7491
8657
|
scheme: 'bearer',
|
|
7492
8658
|
type: 'http'
|
|
7493
8659
|
}
|
|
7494
8660
|
],
|
|
7495
|
-
url: '/api/
|
|
8661
|
+
url: '/api/v2/libraries/flags',
|
|
7496
8662
|
...options,
|
|
7497
8663
|
headers: {
|
|
7498
8664
|
'Content-Type': 'application/json',
|
|
@@ -7500,56 +8666,72 @@ const systemApiTokensCreate = (options) => {
|
|
|
7500
8666
|
}
|
|
7501
8667
|
});
|
|
7502
8668
|
};
|
|
7503
|
-
exports.
|
|
8669
|
+
exports.flagsLibraryV2ApiControllerCreate = flagsLibraryV2ApiControllerCreate;
|
|
7504
8670
|
/**
|
|
7505
|
-
* Delete
|
|
7506
|
-
* Delete
|
|
8671
|
+
* Delete investigation flag
|
|
8672
|
+
* Delete ONE Binalyze AIR investigation flag by numeric id or exact name via DELETE /api/v2/libraries/flags/{idOrName}. MUTATING and irreversible: removes the flag record. System-created flags cannot be deleted (406). dryRun DEFAULTS TO TRUE in the tool layer: the first call returns entities[0] = { id, name, action:'would-delete' } without deleting; pass dryRun=false only after the user confirms. Success returns entities[0] = { id, name } of the deleted flag.
|
|
7507
8673
|
*/
|
|
7508
|
-
const
|
|
8674
|
+
const flagsLibraryV2ApiControllerDelete = (options) => {
|
|
7509
8675
|
return (options.client ?? client_gen_1.client).delete({
|
|
8676
|
+
responseType: 'json',
|
|
7510
8677
|
security: [
|
|
8678
|
+
{
|
|
8679
|
+
in: 'cookie',
|
|
8680
|
+
name: 'Authentication',
|
|
8681
|
+
type: 'apiKey'
|
|
8682
|
+
},
|
|
7511
8683
|
{
|
|
7512
8684
|
scheme: 'bearer',
|
|
7513
8685
|
type: 'http'
|
|
7514
8686
|
}
|
|
7515
8687
|
],
|
|
7516
|
-
url: '/api/
|
|
8688
|
+
url: '/api/v2/libraries/flags/{idOrName}',
|
|
7517
8689
|
...options
|
|
7518
8690
|
});
|
|
7519
8691
|
};
|
|
7520
|
-
exports.
|
|
8692
|
+
exports.flagsLibraryV2ApiControllerDelete = flagsLibraryV2ApiControllerDelete;
|
|
7521
8693
|
/**
|
|
7522
|
-
* Get
|
|
7523
|
-
*
|
|
8694
|
+
* Get investigation flag by id or name
|
|
8695
|
+
* Get ONE Binalyze AIR investigation flag by numeric id or exact name using GET /api/v2/libraries/flags/{idOrName}. Read-only. Returns entities[0] with the flag detail. An unknown name returns 404 with ranked did-you-mean candidates under errors[0].details.suggestions; a name shared across organizations returns 400 AMBIGUOUS_NAME with errors[0].details.matches.
|
|
7524
8696
|
*/
|
|
7525
|
-
const
|
|
8697
|
+
const flagsLibraryV2ApiControllerGet = (options) => {
|
|
7526
8698
|
return (options.client ?? client_gen_1.client).get({
|
|
7527
8699
|
responseType: 'json',
|
|
7528
8700
|
security: [
|
|
8701
|
+
{
|
|
8702
|
+
in: 'cookie',
|
|
8703
|
+
name: 'Authentication',
|
|
8704
|
+
type: 'apiKey'
|
|
8705
|
+
},
|
|
7529
8706
|
{
|
|
7530
8707
|
scheme: 'bearer',
|
|
7531
8708
|
type: 'http'
|
|
7532
8709
|
}
|
|
7533
8710
|
],
|
|
7534
|
-
url: '/api/
|
|
8711
|
+
url: '/api/v2/libraries/flags/{idOrName}',
|
|
7535
8712
|
...options
|
|
7536
8713
|
});
|
|
7537
8714
|
};
|
|
7538
|
-
exports.
|
|
8715
|
+
exports.flagsLibraryV2ApiControllerGet = flagsLibraryV2ApiControllerGet;
|
|
7539
8716
|
/**
|
|
7540
|
-
* Update
|
|
7541
|
-
* Update
|
|
8717
|
+
* Update investigation flag
|
|
8718
|
+
* Update ONE Binalyze AIR investigation flag by numeric id or exact name via PATCH /api/v2/libraries/flags/{idOrName}. MUTATING, partial: only the fields you pass (name, color, description) change; null is treated as not provided. Sending no updatable field returns HTTP 200 with success:false and a NOTHING_CHANGED error entry. A rename collision is resolved by auto-suffixing with a NAME_ADJUSTED warning. dryRun DEFAULTS TO TRUE in the tool layer: preview first, then pass dryRun=false to persist. Success returns entities[0] with the updated flag (fresh timestamps).
|
|
7542
8719
|
*/
|
|
7543
|
-
const
|
|
7544
|
-
return (options.client ?? client_gen_1.client).
|
|
8720
|
+
const flagsLibraryV2ApiControllerUpdate = (options) => {
|
|
8721
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
7545
8722
|
responseType: 'json',
|
|
7546
8723
|
security: [
|
|
8724
|
+
{
|
|
8725
|
+
in: 'cookie',
|
|
8726
|
+
name: 'Authentication',
|
|
8727
|
+
type: 'apiKey'
|
|
8728
|
+
},
|
|
7547
8729
|
{
|
|
7548
8730
|
scheme: 'bearer',
|
|
7549
8731
|
type: 'http'
|
|
7550
8732
|
}
|
|
7551
8733
|
],
|
|
7552
|
-
url: '/api/
|
|
8734
|
+
url: '/api/v2/libraries/flags/{idOrName}',
|
|
7553
8735
|
...options,
|
|
7554
8736
|
headers: {
|
|
7555
8737
|
'Content-Type': 'application/json',
|
|
@@ -7557,29 +8739,26 @@ const systemApiTokensUpdate = (options) => {
|
|
|
7557
8739
|
}
|
|
7558
8740
|
});
|
|
7559
8741
|
};
|
|
7560
|
-
exports.
|
|
7561
|
-
|
|
7562
|
-
|
|
7563
|
-
|
|
7564
|
-
|
|
7565
|
-
|
|
7566
|
-
type: 'http'
|
|
7567
|
-
}
|
|
7568
|
-
],
|
|
7569
|
-
url: '/api/public/cloud-forensics/accounts',
|
|
7570
|
-
...options
|
|
7571
|
-
});
|
|
7572
|
-
};
|
|
7573
|
-
exports.cloudAccountsFilter = cloudAccountsFilter;
|
|
7574
|
-
const cloudAccountsCreateCloudAccount = (options) => {
|
|
8742
|
+
exports.flagsLibraryV2ApiControllerUpdate = flagsLibraryV2ApiControllerUpdate;
|
|
8743
|
+
/**
|
|
8744
|
+
* Flag evidence rows in an investigation
|
|
8745
|
+
* Mark rows of one investigation with a flag via POST /api/v2/investigations/{idOrName}/flag. MUTATING. body.flag accepts a numeric flag id or exact flag name from the /api/v2/libraries/flags library (the flag must belong to the investigation's organization). A flag NAME that does not exist yet is auto-created in the investigation's organization and reported under warnings[] code=FLAG_CREATED (dryRun previews it as FLAG_WILL_BE_CREATED with flag.id=null); a numeric flag id must already exist (404 otherwise). Auto-creating a flag requires the case-container manage privilege (the same write the /api/v2/libraries/flags create endpoint needs); without it an unknown flag name is rejected with 403. If every items[] row is skipped, the missing flag is NOT created (warnings[] code=FLAG_NOT_CREATED, in the dryRun preview as well) so bad coordinates never mutate the flag library. COORDINATES (critical): each items[] row is identified by evidence + objectId + taskAssignmentId. evidence accepts the evidence TABLE name exactly as air-investigations-schema/sql-query show it (e.g. linux_shell_history) or its bare section name (e.g. shell_history); the endpoint normalizes to the bare section the UI joins on, so just pass the table name you queried. objectId MUST be the row's air_object_id column -- NOT air_id and NOT the full-text-search id/primary key. SOURCE selects the surface (and where the flag shows): EVIDENCE (default) = raw evidence rows, FINDING = the Findings view (what users usually mean by "findings"/"bulgular"), TIMELINE = timeline rows. Take items[] from that SAME surface: for EVIDENCE, evidence=<table name> and objectId=<that table>.air_object_id; for FINDING, evidence=air_findings_view.section and objectId=air_findings_view.air_evidence_object_id (its air_evidence_object_id, NOT its air_object_id); for TIMELINE, evidence=evidence_category and objectId=air_evidence_object_id of the timeline row. EXAMPLE (flag two evidence rows): source omitted (EVIDENCE), items=[{"evidence":"windows_processes","objectId":48,"taskAssignmentId":"604df464-...","}, {"evidence":"windows_user_folders","objectId":1,"taskAssignmentId":"2eb56bc4-..."}] where 48 and 1 are air_object_id values discovered with air-investigations-sql-query (e.g. SELECT air_object_id, air_task_assignment_id FROM windows_processes ...). Rows with an unknown evidence name or coordinates matching no real row are SKIPPED (not written) and reported under warnings[] code=ROWS_SKIPPED with a per-item reason (UNKNOWN_EVIDENCE / ROW_NOT_FOUND); itemCount reflects only the rows actually flagged. dryRun DEFAULTS TO TRUE in the tool layer: the first call previews (action='would-flag', resolved flag, itemCount, any ROWS_SKIPPED warnings) without changing anything; pass dryRun=false only after the user confirms.
|
|
8746
|
+
*/
|
|
8747
|
+
const investigationEvidenceFlagV2ApiControllerFlagEvidence = (options) => {
|
|
7575
8748
|
return (options.client ?? client_gen_1.client).post({
|
|
8749
|
+
responseType: 'json',
|
|
7576
8750
|
security: [
|
|
8751
|
+
{
|
|
8752
|
+
in: 'cookie',
|
|
8753
|
+
name: 'Authentication',
|
|
8754
|
+
type: 'apiKey'
|
|
8755
|
+
},
|
|
7577
8756
|
{
|
|
7578
8757
|
scheme: 'bearer',
|
|
7579
8758
|
type: 'http'
|
|
7580
8759
|
}
|
|
7581
8760
|
],
|
|
7582
|
-
url: '/api/
|
|
8761
|
+
url: '/api/v2/investigations/{idOrName}/flag',
|
|
7583
8762
|
...options,
|
|
7584
8763
|
headers: {
|
|
7585
8764
|
'Content-Type': 'application/json',
|
|
@@ -7587,68 +8766,53 @@ const cloudAccountsCreateCloudAccount = (options) => {
|
|
|
7587
8766
|
}
|
|
7588
8767
|
});
|
|
7589
8768
|
};
|
|
7590
|
-
exports.
|
|
7591
|
-
|
|
7592
|
-
|
|
7593
|
-
|
|
7594
|
-
|
|
7595
|
-
|
|
7596
|
-
|
|
7597
|
-
|
|
7598
|
-
],
|
|
7599
|
-
url: '/api/public/cloud-forensics/accounts/config',
|
|
7600
|
-
...options
|
|
7601
|
-
});
|
|
7602
|
-
};
|
|
7603
|
-
exports.cloudAccountsGetConfig = cloudAccountsGetConfig;
|
|
7604
|
-
const cloudAccountsExport = (options) => {
|
|
7605
|
-
return (options.client ?? client_gen_1.client).get({
|
|
8769
|
+
exports.investigationEvidenceFlagV2ApiControllerFlagEvidence = investigationEvidenceFlagV2ApiControllerFlagEvidence;
|
|
8770
|
+
/**
|
|
8771
|
+
* Remove a flag from evidence rows in an investigation
|
|
8772
|
+
* Remove one flag from rows of one investigation via POST /api/v2/investigations/{idOrName}/unflag. MUTATING. Same body/coordinate contract as the flag endpoint: body.flag is a numeric flag id or exact flag name (must already exist -- unlike the flag endpoint, unflag never auto-creates), items[] identifies rows by evidence (table name like linux_shell_history or its bare section shell_history -- normalized server-side) + objectId (the row air_object_id, NOT air_id) + taskAssignmentId, and source (EVIDENCE default, FINDING, TIMELINE) must match the surface the flag was applied to, with coordinates from that same surface (see the flag endpoint). Rows that do not carry the flag are ignored. Unknown evidence names or coordinates matching no real row are skipped and reported under warnings[] code=ROWS_SKIPPED with a per-item reason. itemCount reflects the rows actually processed; it is not the number of rows that actually changed. dryRun DEFAULTS TO TRUE in the tool layer: the first call previews (action='would-unflag') without changing anything; pass dryRun=false only after the user confirms.
|
|
8773
|
+
*/
|
|
8774
|
+
const investigationEvidenceFlagV2ApiControllerUnflagEvidence = (options) => {
|
|
8775
|
+
return (options.client ?? client_gen_1.client).post({
|
|
8776
|
+
responseType: 'json',
|
|
7606
8777
|
security: [
|
|
7607
8778
|
{
|
|
7608
|
-
|
|
7609
|
-
|
|
7610
|
-
|
|
7611
|
-
|
|
7612
|
-
url: '/api/public/cloud-forensics/accounts/export',
|
|
7613
|
-
...options
|
|
7614
|
-
});
|
|
7615
|
-
};
|
|
7616
|
-
exports.cloudAccountsExport = cloudAccountsExport;
|
|
7617
|
-
const cloudAccountsDelete = (options) => {
|
|
7618
|
-
return (options.client ?? client_gen_1.client).delete({
|
|
7619
|
-
security: [
|
|
8779
|
+
in: 'cookie',
|
|
8780
|
+
name: 'Authentication',
|
|
8781
|
+
type: 'apiKey'
|
|
8782
|
+
},
|
|
7620
8783
|
{
|
|
7621
8784
|
scheme: 'bearer',
|
|
7622
8785
|
type: 'http'
|
|
7623
8786
|
}
|
|
7624
8787
|
],
|
|
7625
|
-
url: '/api/
|
|
7626
|
-
...options
|
|
8788
|
+
url: '/api/v2/investigations/{idOrName}/unflag',
|
|
8789
|
+
...options,
|
|
8790
|
+
headers: {
|
|
8791
|
+
'Content-Type': 'application/json',
|
|
8792
|
+
...options.headers
|
|
8793
|
+
}
|
|
7627
8794
|
});
|
|
7628
8795
|
};
|
|
7629
|
-
exports.
|
|
7630
|
-
|
|
7631
|
-
|
|
8796
|
+
exports.investigationEvidenceFlagV2ApiControllerUnflagEvidence = investigationEvidenceFlagV2ApiControllerUnflagEvidence;
|
|
8797
|
+
/**
|
|
8798
|
+
* Discover investigation tables and columns
|
|
8799
|
+
* Two-stage schema discovery for one investigation via POST /api/v2/investigations/{idOrName}/schema. Read-only. Empty body {} lists populated tables/materialized views using catalog row estimates and available regular views with rowCount=null. Body { "table": "<name>" } returns an exact, timeout-bounded row count and that table or view's columns (name, type, nullable). idOrName accepts an investigation UUID, a case UUID or an exact case name. Fixed tables: air_investigation_activities, air_investigation_activity_user_reads, air_investigation_comments, air_investigation_evidence_metadata, air_investigation_evidence_relations, air_investigation_evidence_transformer_versions, air_investigation_external_section_import_error, air_investigation_external_section_import_status, air_investigation_finding_timeline, air_investigation_flags, air_investigation_full_text_search, air_investigation_metadata, air_investigation_notes, air_investigation_reports, air_investigation_report_history, air_investigation_task_assignments, air_investigation_task_execution_logs, air_investigation_timeline, air_investigation_timeline_event_range, air_investigation_timeline_hourly, air_investigation_user_findings, drone_findings. Views: air_all_findings_view, air_excluded_findings_view, air_findings_view, air_timeline_findings_view. Evidence tables are named <platform>_<section> (e.g. windows_triage_file, linux_triage_file, windows_event_records) and vary per investigation. POST the schema endpoint with an empty body to list the populated tables of this investigation with row counts; POST { "table": "<name>" } for column details.
|
|
8800
|
+
*/
|
|
8801
|
+
const investigationSqlV2ApiControllerGetSchema = (options) => {
|
|
8802
|
+
return (options.client ?? client_gen_1.client).post({
|
|
8803
|
+
responseType: 'json',
|
|
7632
8804
|
security: [
|
|
7633
8805
|
{
|
|
7634
|
-
|
|
7635
|
-
|
|
7636
|
-
|
|
7637
|
-
|
|
7638
|
-
url: '/api/public/cloud-forensics/accounts/{id}',
|
|
7639
|
-
...options
|
|
7640
|
-
});
|
|
7641
|
-
};
|
|
7642
|
-
exports.cloudAccountsGetCloudAccountById = cloudAccountsGetCloudAccountById;
|
|
7643
|
-
const cloudAccountsUpdateCloudAccount = (options) => {
|
|
7644
|
-
return (options.client ?? client_gen_1.client).patch({
|
|
7645
|
-
security: [
|
|
8806
|
+
in: 'cookie',
|
|
8807
|
+
name: 'Authentication',
|
|
8808
|
+
type: 'apiKey'
|
|
8809
|
+
},
|
|
7646
8810
|
{
|
|
7647
8811
|
scheme: 'bearer',
|
|
7648
8812
|
type: 'http'
|
|
7649
8813
|
}
|
|
7650
8814
|
],
|
|
7651
|
-
url: '/api/
|
|
8815
|
+
url: '/api/v2/investigations/{idOrName}/schema',
|
|
7652
8816
|
...options,
|
|
7653
8817
|
headers: {
|
|
7654
8818
|
'Content-Type': 'application/json',
|
|
@@ -7656,33 +8820,34 @@ const cloudAccountsUpdateCloudAccount = (options) => {
|
|
|
7656
8820
|
}
|
|
7657
8821
|
});
|
|
7658
8822
|
};
|
|
7659
|
-
exports.
|
|
7660
|
-
|
|
7661
|
-
|
|
8823
|
+
exports.investigationSqlV2ApiControllerGetSchema = investigationSqlV2ApiControllerGetSchema;
|
|
8824
|
+
/**
|
|
8825
|
+
* Run a read-only SQL query on an investigation
|
|
8826
|
+
* Execute one read-only SELECT statement inside the investigation schema via POST /api/v2/investigations/{idOrName}/sql-query. Returns a paginated result (pageNumber/pageSize in the body; totalEntityCount, totalPageCount, nextPage/previousPage in the envelope). Trailing semicolons, end-of-query -- comments, and trailing LIMIT/OFFSET in sqlQuery are stripped so request paging owns the page slice. Write statements, multiple statements and cross-schema references are rejected. Fixed tables: air_investigation_activities, air_investigation_activity_user_reads, air_investigation_comments, air_investigation_evidence_metadata, air_investigation_evidence_relations, air_investigation_evidence_transformer_versions, air_investigation_external_section_import_error, air_investigation_external_section_import_status, air_investigation_finding_timeline, air_investigation_flags, air_investigation_full_text_search, air_investigation_metadata, air_investigation_notes, air_investigation_reports, air_investigation_report_history, air_investigation_task_assignments, air_investigation_task_execution_logs, air_investigation_timeline, air_investigation_timeline_event_range, air_investigation_timeline_hourly, air_investigation_user_findings, drone_findings. Views: air_all_findings_view, air_excluded_findings_view, air_findings_view, air_timeline_findings_view. Evidence tables are named <platform>_<section> (e.g. windows_triage_file, linux_triage_file, windows_event_records) and vary per investigation. POST the schema endpoint with an empty body to list the populated tables of this investigation with row counts; POST { "table": "<name>" } for column details.
|
|
8827
|
+
*/
|
|
8828
|
+
const investigationSqlV2ApiControllerExecuteSqlQuery = (options) => {
|
|
8829
|
+
return (options.client ?? client_gen_1.client).post({
|
|
8830
|
+
responseType: 'json',
|
|
7662
8831
|
security: [
|
|
7663
8832
|
{
|
|
7664
|
-
|
|
7665
|
-
|
|
7666
|
-
|
|
7667
|
-
|
|
7668
|
-
url: '/api/public/cloud-forensics/accounts/sync/{id}',
|
|
7669
|
-
...options
|
|
7670
|
-
});
|
|
7671
|
-
};
|
|
7672
|
-
exports.cloudAccountsSyncCloudAccount = cloudAccountsSyncCloudAccount;
|
|
7673
|
-
const cloudAccountsSyncAllCloudAccount = (options) => {
|
|
7674
|
-
return (options.client ?? client_gen_1.client).get({
|
|
7675
|
-
security: [
|
|
8833
|
+
in: 'cookie',
|
|
8834
|
+
name: 'Authentication',
|
|
8835
|
+
type: 'apiKey'
|
|
8836
|
+
},
|
|
7676
8837
|
{
|
|
7677
8838
|
scheme: 'bearer',
|
|
7678
8839
|
type: 'http'
|
|
7679
8840
|
}
|
|
7680
8841
|
],
|
|
7681
|
-
url: '/api/
|
|
7682
|
-
...options
|
|
8842
|
+
url: '/api/v2/investigations/{idOrName}/sql-query',
|
|
8843
|
+
...options,
|
|
8844
|
+
headers: {
|
|
8845
|
+
'Content-Type': 'application/json',
|
|
8846
|
+
...options.headers
|
|
8847
|
+
}
|
|
7683
8848
|
});
|
|
7684
8849
|
};
|
|
7685
|
-
exports.
|
|
8850
|
+
exports.investigationSqlV2ApiControllerExecuteSqlQuery = investigationSqlV2ApiControllerExecuteSqlQuery;
|
|
7686
8851
|
const investigationGetInvestigationById = (options) => {
|
|
7687
8852
|
return (options.client ?? client_gen_1.client).get({
|
|
7688
8853
|
security: [
|
|
@@ -9109,30 +10274,138 @@ const processorGetProcessorsByAssetType = (options) => {
|
|
|
9109
10274
|
type: 'http'
|
|
9110
10275
|
}
|
|
9111
10276
|
],
|
|
9112
|
-
url: '/api/public/processors/asset-type/{assetType}',
|
|
9113
|
-
...options
|
|
10277
|
+
url: '/api/public/processors/asset-type/{assetType}',
|
|
10278
|
+
...options
|
|
10279
|
+
});
|
|
10280
|
+
};
|
|
10281
|
+
exports.processorGetProcessorsByAssetType = processorGetProcessorsByAssetType;
|
|
10282
|
+
const processorGetProcessorTypeByAssetType = (options) => {
|
|
10283
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
10284
|
+
security: [
|
|
10285
|
+
{
|
|
10286
|
+
scheme: 'bearer',
|
|
10287
|
+
type: 'http'
|
|
10288
|
+
}
|
|
10289
|
+
],
|
|
10290
|
+
url: '/api/public/processors/type/{assetType}',
|
|
10291
|
+
...options
|
|
10292
|
+
});
|
|
10293
|
+
};
|
|
10294
|
+
exports.processorGetProcessorTypeByAssetType = processorGetProcessorTypeByAssetType;
|
|
10295
|
+
/**
|
|
10296
|
+
* Reboot a single asset
|
|
10297
|
+
* Reboot EXACTLY ONE Binalyze AIR asset, identified by a single id or name in the path, via POST /api/v2/assets/{idOrName}/reboot. Use this ONLY for one specific asset. If the user gives two or more assets, a list, a group, or 'all matching' assets, use air-assets-bulk-reboot instead. ALWAYS send dryRun=true on every call (would-run preview); pass dryRun=false only to send the real reboot signal after the user confirms the exact asset. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10298
|
+
*/
|
|
10299
|
+
const assetActionV2ApiControllerReboot = (options) => {
|
|
10300
|
+
return (options.client ?? client_gen_1.client).post({
|
|
10301
|
+
responseType: 'json',
|
|
10302
|
+
security: [
|
|
10303
|
+
{
|
|
10304
|
+
in: 'cookie',
|
|
10305
|
+
name: 'Authentication',
|
|
10306
|
+
type: 'apiKey'
|
|
10307
|
+
},
|
|
10308
|
+
{
|
|
10309
|
+
scheme: 'bearer',
|
|
10310
|
+
type: 'http'
|
|
10311
|
+
}
|
|
10312
|
+
],
|
|
10313
|
+
url: '/api/v2/assets/{idOrName}/reboot',
|
|
10314
|
+
...options,
|
|
10315
|
+
headers: {
|
|
10316
|
+
'Content-Type': 'application/json',
|
|
10317
|
+
...options.headers
|
|
10318
|
+
}
|
|
10319
|
+
});
|
|
10320
|
+
};
|
|
10321
|
+
exports.assetActionV2ApiControllerReboot = assetActionV2ApiControllerReboot;
|
|
10322
|
+
/**
|
|
10323
|
+
* Shut down a single asset
|
|
10324
|
+
* Shut down EXACTLY ONE Binalyze AIR asset, identified by a single id or name in the path, via POST /api/v2/assets/{idOrName}/shutdown. Use this ONLY for one specific asset. If the user gives two or more assets, a list, a group, or 'all matching' assets, use air-assets-bulk-shutdown instead. ALWAYS send dryRun=true on every call (would-run preview); pass dryRun=false only to send the real shutdown signal after the user confirms the exact asset. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10325
|
+
*/
|
|
10326
|
+
const assetActionV2ApiControllerShutdown = (options) => {
|
|
10327
|
+
return (options.client ?? client_gen_1.client).post({
|
|
10328
|
+
responseType: 'json',
|
|
10329
|
+
security: [
|
|
10330
|
+
{
|
|
10331
|
+
in: 'cookie',
|
|
10332
|
+
name: 'Authentication',
|
|
10333
|
+
type: 'apiKey'
|
|
10334
|
+
},
|
|
10335
|
+
{
|
|
10336
|
+
scheme: 'bearer',
|
|
10337
|
+
type: 'http'
|
|
10338
|
+
}
|
|
10339
|
+
],
|
|
10340
|
+
url: '/api/v2/assets/{idOrName}/shutdown',
|
|
10341
|
+
...options,
|
|
10342
|
+
headers: {
|
|
10343
|
+
'Content-Type': 'application/json',
|
|
10344
|
+
...options.headers
|
|
10345
|
+
}
|
|
10346
|
+
});
|
|
10347
|
+
};
|
|
10348
|
+
exports.assetActionV2ApiControllerShutdown = assetActionV2ApiControllerShutdown;
|
|
10349
|
+
/**
|
|
10350
|
+
* Isolate a single asset
|
|
10351
|
+
* Network-isolate EXACTLY ONE Binalyze AIR asset, identified by a single id or name in the path, via POST /api/v2/assets/{idOrName}/isolate. Use this ONLY for one specific asset. If the user gives two or more assets, a list, a group, or 'all matching' assets, use air-assets-bulk-isolate instead. ALWAYS send dryRun=true on every call (would-run preview); pass dryRun=false only to send the real isolation signal after the user confirms the exact asset. Requires the Isolation feature to be enabled. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10352
|
+
*/
|
|
10353
|
+
const assetActionV2ApiControllerIsolate = (options) => {
|
|
10354
|
+
return (options.client ?? client_gen_1.client).post({
|
|
10355
|
+
responseType: 'json',
|
|
10356
|
+
security: [
|
|
10357
|
+
{
|
|
10358
|
+
in: 'cookie',
|
|
10359
|
+
name: 'Authentication',
|
|
10360
|
+
type: 'apiKey'
|
|
10361
|
+
},
|
|
10362
|
+
{
|
|
10363
|
+
scheme: 'bearer',
|
|
10364
|
+
type: 'http'
|
|
10365
|
+
}
|
|
10366
|
+
],
|
|
10367
|
+
url: '/api/v2/assets/{idOrName}/isolate',
|
|
10368
|
+
...options,
|
|
10369
|
+
headers: {
|
|
10370
|
+
'Content-Type': 'application/json',
|
|
10371
|
+
...options.headers
|
|
10372
|
+
}
|
|
9114
10373
|
});
|
|
9115
10374
|
};
|
|
9116
|
-
exports.
|
|
9117
|
-
|
|
9118
|
-
|
|
10375
|
+
exports.assetActionV2ApiControllerIsolate = assetActionV2ApiControllerIsolate;
|
|
10376
|
+
/**
|
|
10377
|
+
* Unisolate a single asset
|
|
10378
|
+
* Remove network isolation from EXACTLY ONE Binalyze AIR asset, identified by a single id or name in the path, via POST /api/v2/assets/{idOrName}/unisolate. Use this ONLY for one specific asset. If the user gives two or more assets, a list, a group, or 'all matching' assets, use air-assets-bulk-unisolate instead. ALWAYS send dryRun=true on every call (would-run preview); pass dryRun=false only to send the real unisolation signal after the user confirms the exact asset. Requires the Isolation feature to be enabled. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10379
|
+
*/
|
|
10380
|
+
const assetActionV2ApiControllerUnisolate = (options) => {
|
|
10381
|
+
return (options.client ?? client_gen_1.client).post({
|
|
10382
|
+
responseType: 'json',
|
|
9119
10383
|
security: [
|
|
10384
|
+
{
|
|
10385
|
+
in: 'cookie',
|
|
10386
|
+
name: 'Authentication',
|
|
10387
|
+
type: 'apiKey'
|
|
10388
|
+
},
|
|
9120
10389
|
{
|
|
9121
10390
|
scheme: 'bearer',
|
|
9122
10391
|
type: 'http'
|
|
9123
10392
|
}
|
|
9124
10393
|
],
|
|
9125
|
-
url: '/api/
|
|
9126
|
-
...options
|
|
10394
|
+
url: '/api/v2/assets/{idOrName}/unisolate',
|
|
10395
|
+
...options,
|
|
10396
|
+
headers: {
|
|
10397
|
+
'Content-Type': 'application/json',
|
|
10398
|
+
...options.headers
|
|
10399
|
+
}
|
|
9127
10400
|
});
|
|
9128
10401
|
};
|
|
9129
|
-
exports.
|
|
10402
|
+
exports.assetActionV2ApiControllerUnisolate = assetActionV2ApiControllerUnisolate;
|
|
9130
10403
|
/**
|
|
9131
|
-
*
|
|
9132
|
-
*
|
|
10404
|
+
* Retrieve the agent logs of a single asset
|
|
10405
|
+
* Retrieve agent logs for a task on EXACTLY ONE Binalyze AIR asset, identified by a single id or name in the path, via POST /api/v2/assets/{idOrName}/log-retrieval. Use this ONLY for one specific asset; it also requires the taskId whose logs should be collected. If the user gives two or more assets, a list, or a group, use air-assets-bulk-log-retrieval instead. ALWAYS send dryRun=true on every call (would-run preview); pass dryRun=false only to assign the real log-retrieval task after the user confirms the asset and task. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9133
10406
|
*/
|
|
9134
|
-
const
|
|
9135
|
-
return (options
|
|
10407
|
+
const assetActionV2ApiControllerRetrieveLogs = (options) => {
|
|
10408
|
+
return (options.client ?? client_gen_1.client).post({
|
|
9136
10409
|
responseType: 'json',
|
|
9137
10410
|
security: [
|
|
9138
10411
|
{
|
|
@@ -9145,18 +10418,22 @@ const assetV2ApiControllerGetStats = (options) => {
|
|
|
9145
10418
|
type: 'http'
|
|
9146
10419
|
}
|
|
9147
10420
|
],
|
|
9148
|
-
url: '/api/v2/assets/
|
|
9149
|
-
...options
|
|
10421
|
+
url: '/api/v2/assets/{idOrName}/log-retrieval',
|
|
10422
|
+
...options,
|
|
10423
|
+
headers: {
|
|
10424
|
+
'Content-Type': 'application/json',
|
|
10425
|
+
...options.headers
|
|
10426
|
+
}
|
|
9150
10427
|
});
|
|
9151
10428
|
};
|
|
9152
|
-
exports.
|
|
10429
|
+
exports.assetActionV2ApiControllerRetrieveLogs = assetActionV2ApiControllerRetrieveLogs;
|
|
9153
10430
|
/**
|
|
9154
|
-
*
|
|
9155
|
-
*
|
|
10431
|
+
* Update the agent version on a single asset
|
|
10432
|
+
* Update the agent version on EXACTLY ONE Binalyze AIR asset, identified by a single id or name in the path, via POST /api/v2/assets/{idOrName}/update. Use this ONLY for one specific asset. If the user gives two or more assets, a list, a group, or 'all matching' assets, use air-assets-bulk-version-update instead. There is no version targeting: the agent always updates to the console's current supported version. ALWAYS send dryRun=true on every call (would-update preview); pass dryRun=false only to assign the real immediate one-time update task after the user confirms the exact asset. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9156
10433
|
*/
|
|
9157
|
-
const
|
|
9158
|
-
return (options.client ?? client_gen_1.client).
|
|
9159
|
-
responseType: '
|
|
10434
|
+
const assetActionV2ApiControllerVersionUpdate = (options) => {
|
|
10435
|
+
return (options.client ?? client_gen_1.client).post({
|
|
10436
|
+
responseType: 'json',
|
|
9160
10437
|
security: [
|
|
9161
10438
|
{
|
|
9162
10439
|
in: 'cookie',
|
|
@@ -9168,17 +10445,21 @@ const assetV2ApiControllerExportAssets = (options) => {
|
|
|
9168
10445
|
type: 'http'
|
|
9169
10446
|
}
|
|
9170
10447
|
],
|
|
9171
|
-
url: '/api/v2/assets/
|
|
9172
|
-
...options
|
|
10448
|
+
url: '/api/v2/assets/{idOrName}/update',
|
|
10449
|
+
...options,
|
|
10450
|
+
headers: {
|
|
10451
|
+
'Content-Type': 'application/json',
|
|
10452
|
+
...options.headers
|
|
10453
|
+
}
|
|
9173
10454
|
});
|
|
9174
10455
|
};
|
|
9175
|
-
exports.
|
|
10456
|
+
exports.assetActionV2ApiControllerVersionUpdate = assetActionV2ApiControllerVersionUpdate;
|
|
9176
10457
|
/**
|
|
9177
|
-
*
|
|
9178
|
-
*
|
|
10458
|
+
* Enable maintenance mode on a single asset
|
|
10459
|
+
* Enable maintenance mode on EXACTLY ONE Binalyze AIR asset, identified by a single id or name in the path, via POST /api/v2/assets/{idOrName}/enable-maintenance. Use this ONLY for one specific asset. If the user gives two or more assets, a list, a group, or 'all matching' assets, use air-assets-bulk-enable-maintenance instead. ALWAYS send dryRun=true on every call (would-change preview); pass dryRun=false only to apply the real change after the user confirms the exact asset. Updates the asset synchronously (no task is created). A no-op (already in maintenance mode) returns HTTP 200 with a NO_OP entry in errors[]. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9179
10460
|
*/
|
|
9180
|
-
const
|
|
9181
|
-
return (options
|
|
10461
|
+
const assetActionV2ApiControllerEnableMaintenance = (options) => {
|
|
10462
|
+
return (options.client ?? client_gen_1.client).post({
|
|
9182
10463
|
responseType: 'json',
|
|
9183
10464
|
security: [
|
|
9184
10465
|
{
|
|
@@ -9191,17 +10472,21 @@ const assetV2ApiControllerFilterAssets = (options) => {
|
|
|
9191
10472
|
type: 'http'
|
|
9192
10473
|
}
|
|
9193
10474
|
],
|
|
9194
|
-
url: '/api/v2/assets',
|
|
9195
|
-
...options
|
|
10475
|
+
url: '/api/v2/assets/{idOrName}/enable-maintenance',
|
|
10476
|
+
...options,
|
|
10477
|
+
headers: {
|
|
10478
|
+
'Content-Type': 'application/json',
|
|
10479
|
+
...options.headers
|
|
10480
|
+
}
|
|
9196
10481
|
});
|
|
9197
10482
|
};
|
|
9198
|
-
exports.
|
|
10483
|
+
exports.assetActionV2ApiControllerEnableMaintenance = assetActionV2ApiControllerEnableMaintenance;
|
|
9199
10484
|
/**
|
|
9200
|
-
*
|
|
9201
|
-
*
|
|
10485
|
+
* Disable maintenance mode on a single asset
|
|
10486
|
+
* Disable maintenance mode on EXACTLY ONE Binalyze AIR asset, identified by a single id or name in the path, via POST /api/v2/assets/{idOrName}/disable-maintenance. Use this ONLY for one specific asset. If the user gives two or more assets, a list, a group, or 'all matching' assets, use air-assets-bulk-disable-maintenance instead. ALWAYS send dryRun=true on every call (would-change preview); pass dryRun=false only to apply the real change after the user confirms the exact asset. Updates the asset synchronously (no task is created). A no-op (not in maintenance mode) returns HTTP 200 with a NO_OP entry in errors[]. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9202
10487
|
*/
|
|
9203
|
-
const
|
|
9204
|
-
return (options.client ?? client_gen_1.client).
|
|
10488
|
+
const assetActionV2ApiControllerDisableMaintenance = (options) => {
|
|
10489
|
+
return (options.client ?? client_gen_1.client).post({
|
|
9205
10490
|
responseType: 'json',
|
|
9206
10491
|
security: [
|
|
9207
10492
|
{
|
|
@@ -9214,17 +10499,22 @@ const assetV2ApiControllerDeleteAsset = (options) => {
|
|
|
9214
10499
|
type: 'http'
|
|
9215
10500
|
}
|
|
9216
10501
|
],
|
|
9217
|
-
url: '/api/v2/assets/{idOrName}',
|
|
9218
|
-
...options
|
|
10502
|
+
url: '/api/v2/assets/{idOrName}/disable-maintenance',
|
|
10503
|
+
...options,
|
|
10504
|
+
headers: {
|
|
10505
|
+
'Content-Type': 'application/json',
|
|
10506
|
+
...options.headers
|
|
10507
|
+
}
|
|
9219
10508
|
});
|
|
9220
10509
|
};
|
|
9221
|
-
exports.
|
|
10510
|
+
exports.assetActionV2ApiControllerDisableMaintenance = assetActionV2ApiControllerDisableMaintenance;
|
|
9222
10511
|
/**
|
|
9223
|
-
*
|
|
9224
|
-
*
|
|
10512
|
+
* Import a PPC file into an existing asset
|
|
10513
|
+
* Import a case PPC evidence file into an EXISTING Binalyze AIR asset via POST /api/v2/assets/{idOrName}/import (multipart upload). Use this when the asset already exists in AIR and you want to attach/import a .ppc captured from it (a real PPC zip containing Case.db). Optionally attach the import to a case via caseIdOrName (resolved as uuid or name). Success response (200): result.entities[0] = { id (asset id), name (asset name), ppcFileName, importedAt }. Unknown asset -> 404. KNOWN ISSUE: a corrupt or non-zip file currently returns 500 INTERNAL_ERROR (not a clean 400) -- treat that 500 as 'invalid PPC file', do not retry blindly and do not report it as a server outage. ALWAYS send dryRun=true first (generic preview; does not validate the file); pass dryRun=false only to perform the real import after the user confirms the asset and file. For an off-network Task.dat that should create an offline task, use air-assets-off-network-import instead. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9225
10514
|
*/
|
|
9226
|
-
const
|
|
9227
|
-
return (options.client ?? client_gen_1.client).
|
|
10515
|
+
const assetActionV2ApiControllerImportPpcToExistingAsset = (options) => {
|
|
10516
|
+
return (options.client ?? client_gen_1.client).post({
|
|
10517
|
+
...client_1.formDataBodySerializer,
|
|
9228
10518
|
responseType: 'json',
|
|
9229
10519
|
security: [
|
|
9230
10520
|
{
|
|
@@ -9237,17 +10527,21 @@ const assetV2ApiControllerGetAsset = (options) => {
|
|
|
9237
10527
|
type: 'http'
|
|
9238
10528
|
}
|
|
9239
10529
|
],
|
|
9240
|
-
url: '/api/v2/assets/{idOrName}',
|
|
9241
|
-
...options
|
|
10530
|
+
url: '/api/v2/assets/{idOrName}/import',
|
|
10531
|
+
...options,
|
|
10532
|
+
headers: {
|
|
10533
|
+
'Content-Type': null,
|
|
10534
|
+
...options.headers
|
|
10535
|
+
}
|
|
9242
10536
|
});
|
|
9243
10537
|
};
|
|
9244
|
-
exports.
|
|
10538
|
+
exports.assetActionV2ApiControllerImportPpcToExistingAsset = assetActionV2ApiControllerImportPpcToExistingAsset;
|
|
9245
10539
|
/**
|
|
9246
|
-
*
|
|
9247
|
-
*
|
|
10540
|
+
* Reboot multiple assets
|
|
10541
|
+
* Reboot MULTIPLE Binalyze AIR assets in one call, listed by id or name in assets[], via POST /api/v2/reboot. Use this ONLY when the user targets two or more assets, a list, or a group. For exactly ONE asset, use air-assets-reboot (the single-asset tool) instead. ALWAYS send dryRun=true on every call (preview of eligible assets and warnings); pass dryRun=false only to send the real reboot signals after the user confirms the asset list. Use failIfNumberOfAssetsGreaterThan as a safety cap.
|
|
9248
10542
|
*/
|
|
9249
|
-
const
|
|
9250
|
-
return (options.client ?? client_gen_1.client).
|
|
10543
|
+
const assetBulkActionV2ApiControllerReboot = (options) => {
|
|
10544
|
+
return (options.client ?? client_gen_1.client).post({
|
|
9251
10545
|
responseType: 'json',
|
|
9252
10546
|
security: [
|
|
9253
10547
|
{
|
|
@@ -9260,7 +10554,7 @@ const assetV2ApiControllerReplaceTags = (options) => {
|
|
|
9260
10554
|
type: 'http'
|
|
9261
10555
|
}
|
|
9262
10556
|
],
|
|
9263
|
-
url: '/api/v2/
|
|
10557
|
+
url: '/api/v2/reboot',
|
|
9264
10558
|
...options,
|
|
9265
10559
|
headers: {
|
|
9266
10560
|
'Content-Type': 'application/json',
|
|
@@ -9268,13 +10562,13 @@ const assetV2ApiControllerReplaceTags = (options) => {
|
|
|
9268
10562
|
}
|
|
9269
10563
|
});
|
|
9270
10564
|
};
|
|
9271
|
-
exports.
|
|
10565
|
+
exports.assetBulkActionV2ApiControllerReboot = assetBulkActionV2ApiControllerReboot;
|
|
9272
10566
|
/**
|
|
9273
|
-
*
|
|
9274
|
-
*
|
|
10567
|
+
* Shut down multiple assets
|
|
10568
|
+
* Shut down MULTIPLE Binalyze AIR assets in one call, listed by id or name in assets[], via POST /api/v2/shutdown. Use this ONLY when the user targets two or more assets, a list, or a group. For exactly ONE asset, use air-assets-shutdown (the single-asset tool) instead. ALWAYS send dryRun=true on every call (preview of eligible assets and warnings); pass dryRun=false only to send the real shutdown signals after the user confirms the asset list. Use failIfNumberOfAssetsGreaterThan as a safety cap.
|
|
9275
10569
|
*/
|
|
9276
|
-
const
|
|
9277
|
-
return (options.client ?? client_gen_1.client).
|
|
10570
|
+
const assetBulkActionV2ApiControllerShutdown = (options) => {
|
|
10571
|
+
return (options.client ?? client_gen_1.client).post({
|
|
9278
10572
|
responseType: 'json',
|
|
9279
10573
|
security: [
|
|
9280
10574
|
{
|
|
@@ -9287,7 +10581,7 @@ const assetV2ApiControllerUpdateLabel = (options) => {
|
|
|
9287
10581
|
type: 'http'
|
|
9288
10582
|
}
|
|
9289
10583
|
],
|
|
9290
|
-
url: '/api/v2/
|
|
10584
|
+
url: '/api/v2/shutdown',
|
|
9291
10585
|
...options,
|
|
9292
10586
|
headers: {
|
|
9293
10587
|
'Content-Type': 'application/json',
|
|
@@ -9295,11 +10589,12 @@ const assetV2ApiControllerUpdateLabel = (options) => {
|
|
|
9295
10589
|
}
|
|
9296
10590
|
});
|
|
9297
10591
|
};
|
|
9298
|
-
exports.
|
|
10592
|
+
exports.assetBulkActionV2ApiControllerShutdown = assetBulkActionV2ApiControllerShutdown;
|
|
9299
10593
|
/**
|
|
9300
|
-
*
|
|
10594
|
+
* Isolate multiple assets
|
|
10595
|
+
* Network-isolate MULTIPLE Binalyze AIR assets in one call, listed by id or name in assets[], via POST /api/v2/isolate. Use this ONLY when the user targets two or more assets, a list, or a group. For exactly ONE asset, use air-assets-isolate (the single-asset tool) instead. ALWAYS send dryRun=true on every call (preview of eligible assets and warnings); pass dryRun=false only to send the real isolation signals after the user confirms the asset list. Requires the Isolation feature to be enabled. Use failIfNumberOfAssetsGreaterThan as a safety cap.
|
|
9301
10596
|
*/
|
|
9302
|
-
const
|
|
10597
|
+
const assetBulkActionV2ApiControllerIsolate = (options) => {
|
|
9303
10598
|
return (options.client ?? client_gen_1.client).post({
|
|
9304
10599
|
responseType: 'json',
|
|
9305
10600
|
security: [
|
|
@@ -9313,7 +10608,7 @@ const assetActionV2ApiControllerReboot = (options) => {
|
|
|
9313
10608
|
type: 'http'
|
|
9314
10609
|
}
|
|
9315
10610
|
],
|
|
9316
|
-
url: '/api/v2/
|
|
10611
|
+
url: '/api/v2/isolate',
|
|
9317
10612
|
...options,
|
|
9318
10613
|
headers: {
|
|
9319
10614
|
'Content-Type': 'application/json',
|
|
@@ -9321,11 +10616,12 @@ const assetActionV2ApiControllerReboot = (options) => {
|
|
|
9321
10616
|
}
|
|
9322
10617
|
});
|
|
9323
10618
|
};
|
|
9324
|
-
exports.
|
|
10619
|
+
exports.assetBulkActionV2ApiControllerIsolate = assetBulkActionV2ApiControllerIsolate;
|
|
9325
10620
|
/**
|
|
9326
|
-
*
|
|
10621
|
+
* Unisolate multiple assets
|
|
10622
|
+
* Remove network isolation from MULTIPLE Binalyze AIR assets in one call, listed by id or name in assets[], via POST /api/v2/unisolate. Use this ONLY when the user targets two or more assets, a list, or a group. For exactly ONE asset, use air-assets-unisolate (the single-asset tool) instead. ALWAYS send dryRun=true on every call (preview of eligible assets and warnings); pass dryRun=false only to send the real unisolation signals after the user confirms the asset list. Requires the Isolation feature to be enabled. Use failIfNumberOfAssetsGreaterThan as a safety cap.
|
|
9327
10623
|
*/
|
|
9328
|
-
const
|
|
10624
|
+
const assetBulkActionV2ApiControllerUnisolate = (options) => {
|
|
9329
10625
|
return (options.client ?? client_gen_1.client).post({
|
|
9330
10626
|
responseType: 'json',
|
|
9331
10627
|
security: [
|
|
@@ -9339,7 +10635,7 @@ const assetActionV2ApiControllerShutdown = (options) => {
|
|
|
9339
10635
|
type: 'http'
|
|
9340
10636
|
}
|
|
9341
10637
|
],
|
|
9342
|
-
url: '/api/v2/
|
|
10638
|
+
url: '/api/v2/unisolate',
|
|
9343
10639
|
...options,
|
|
9344
10640
|
headers: {
|
|
9345
10641
|
'Content-Type': 'application/json',
|
|
@@ -9347,11 +10643,12 @@ const assetActionV2ApiControllerShutdown = (options) => {
|
|
|
9347
10643
|
}
|
|
9348
10644
|
});
|
|
9349
10645
|
};
|
|
9350
|
-
exports.
|
|
10646
|
+
exports.assetBulkActionV2ApiControllerUnisolate = assetBulkActionV2ApiControllerUnisolate;
|
|
9351
10647
|
/**
|
|
9352
|
-
*
|
|
10648
|
+
* Retrieve the agent logs of multiple assets
|
|
10649
|
+
* Retrieve agent logs from MULTIPLE Binalyze AIR assets in one call, listed by id or name in assets[], via POST /api/v2/log-retrieval. Use this ONLY when the user targets two or more assets, a list, or a group. For exactly ONE asset (and a specific taskId), use air-assets-log-retrieval (the single-asset tool) instead. ALWAYS send dryRun=true on every call (preview of eligible assets and warnings); pass dryRun=false only to assign the real log-retrieval task after the user confirms the asset list. Use failIfNumberOfAssetsGreaterThan as a safety cap.
|
|
9353
10650
|
*/
|
|
9354
|
-
const
|
|
10651
|
+
const assetBulkActionV2ApiControllerRetrieveLogs = (options) => {
|
|
9355
10652
|
return (options.client ?? client_gen_1.client).post({
|
|
9356
10653
|
responseType: 'json',
|
|
9357
10654
|
security: [
|
|
@@ -9365,7 +10662,7 @@ const assetActionV2ApiControllerIsolate = (options) => {
|
|
|
9365
10662
|
type: 'http'
|
|
9366
10663
|
}
|
|
9367
10664
|
],
|
|
9368
|
-
url: '/api/v2/
|
|
10665
|
+
url: '/api/v2/log-retrieval',
|
|
9369
10666
|
...options,
|
|
9370
10667
|
headers: {
|
|
9371
10668
|
'Content-Type': 'application/json',
|
|
@@ -9373,11 +10670,12 @@ const assetActionV2ApiControllerIsolate = (options) => {
|
|
|
9373
10670
|
}
|
|
9374
10671
|
});
|
|
9375
10672
|
};
|
|
9376
|
-
exports.
|
|
10673
|
+
exports.assetBulkActionV2ApiControllerRetrieveLogs = assetBulkActionV2ApiControllerRetrieveLogs;
|
|
9377
10674
|
/**
|
|
9378
|
-
*
|
|
10675
|
+
* Update the agent version on multiple assets
|
|
10676
|
+
* Update the agent version on MULTIPLE Binalyze AIR assets in one call, listed by id or name in assets[], via POST /api/v2/version-update. Use this ONLY when the user targets two or more assets, a list, or a group. For exactly ONE asset, use air-assets-version-update (the single-asset tool) instead. There is no version targeting: agents always update to the console's current supported version. ALWAYS send dryRun=true on every call (preview of eligible assets and warnings); pass dryRun=false only to assign the real immediate one-time update task after the user confirms the asset list. Provide organizations when names are ambiguous across orgs. Use failIfNumberOfAssetsGreaterThan as a safety cap.
|
|
9379
10677
|
*/
|
|
9380
|
-
const
|
|
10678
|
+
const assetBulkActionV2ApiControllerVersionUpdate = (options) => {
|
|
9381
10679
|
return (options.client ?? client_gen_1.client).post({
|
|
9382
10680
|
responseType: 'json',
|
|
9383
10681
|
security: [
|
|
@@ -9391,7 +10689,7 @@ const assetActionV2ApiControllerUnisolate = (options) => {
|
|
|
9391
10689
|
type: 'http'
|
|
9392
10690
|
}
|
|
9393
10691
|
],
|
|
9394
|
-
url: '/api/v2/
|
|
10692
|
+
url: '/api/v2/version-update',
|
|
9395
10693
|
...options,
|
|
9396
10694
|
headers: {
|
|
9397
10695
|
'Content-Type': 'application/json',
|
|
@@ -9399,11 +10697,12 @@ const assetActionV2ApiControllerUnisolate = (options) => {
|
|
|
9399
10697
|
}
|
|
9400
10698
|
});
|
|
9401
10699
|
};
|
|
9402
|
-
exports.
|
|
10700
|
+
exports.assetBulkActionV2ApiControllerVersionUpdate = assetBulkActionV2ApiControllerVersionUpdate;
|
|
9403
10701
|
/**
|
|
9404
|
-
*
|
|
10702
|
+
* Enable maintenance mode on multiple assets
|
|
10703
|
+
* Enable maintenance mode on MULTIPLE Binalyze AIR assets in one call, listed by id or name in assets[], via POST /api/v2/enable-maintenance. Use this ONLY when the user targets two or more assets, a list, or a group. For exactly ONE asset, use air-assets-enable-maintenance (the single-asset tool) instead. ALWAYS send dryRun=true on every call (preview of eligible assets and warnings); pass dryRun=false only to apply the real change after the user confirms the asset list. These endpoints update assets synchronously and do not create tasks. Provide organizations when names are ambiguous across orgs.
|
|
9405
10704
|
*/
|
|
9406
|
-
const
|
|
10705
|
+
const assetBulkActionV2ApiControllerEnableMaintenance = (options) => {
|
|
9407
10706
|
return (options.client ?? client_gen_1.client).post({
|
|
9408
10707
|
responseType: 'json',
|
|
9409
10708
|
security: [
|
|
@@ -9417,7 +10716,7 @@ const assetActionV2ApiControllerRetrieveLogs = (options) => {
|
|
|
9417
10716
|
type: 'http'
|
|
9418
10717
|
}
|
|
9419
10718
|
],
|
|
9420
|
-
url: '/api/v2/
|
|
10719
|
+
url: '/api/v2/enable-maintenance',
|
|
9421
10720
|
...options,
|
|
9422
10721
|
headers: {
|
|
9423
10722
|
'Content-Type': 'application/json',
|
|
@@ -9425,11 +10724,12 @@ const assetActionV2ApiControllerRetrieveLogs = (options) => {
|
|
|
9425
10724
|
}
|
|
9426
10725
|
});
|
|
9427
10726
|
};
|
|
9428
|
-
exports.
|
|
10727
|
+
exports.assetBulkActionV2ApiControllerEnableMaintenance = assetBulkActionV2ApiControllerEnableMaintenance;
|
|
9429
10728
|
/**
|
|
9430
|
-
*
|
|
10729
|
+
* Disable maintenance mode on multiple assets
|
|
10730
|
+
* Disable maintenance mode on MULTIPLE Binalyze AIR assets in one call, listed by id or name in assets[], via POST /api/v2/disable-maintenance. Use this ONLY when the user targets two or more assets, a list, or a group. For exactly ONE asset, use air-assets-disable-maintenance (the single-asset tool) instead. ALWAYS send dryRun=true on every call (preview of eligible assets and warnings); pass dryRun=false only to apply the real change after the user confirms the asset list. These endpoints update assets synchronously and do not create tasks. Provide organizations when names are ambiguous across orgs.
|
|
9431
10731
|
*/
|
|
9432
|
-
const
|
|
10732
|
+
const assetBulkActionV2ApiControllerDisableMaintenance = (options) => {
|
|
9433
10733
|
return (options.client ?? client_gen_1.client).post({
|
|
9434
10734
|
responseType: 'json',
|
|
9435
10735
|
security: [
|
|
@@ -9443,7 +10743,7 @@ const assetActionV2ApiControllerVersionUpdate = (options) => {
|
|
|
9443
10743
|
type: 'http'
|
|
9444
10744
|
}
|
|
9445
10745
|
],
|
|
9446
|
-
url: '/api/v2/
|
|
10746
|
+
url: '/api/v2/disable-maintenance',
|
|
9447
10747
|
...options,
|
|
9448
10748
|
headers: {
|
|
9449
10749
|
'Content-Type': 'application/json',
|
|
@@ -9451,11 +10751,12 @@ const assetActionV2ApiControllerVersionUpdate = (options) => {
|
|
|
9451
10751
|
}
|
|
9452
10752
|
});
|
|
9453
10753
|
};
|
|
9454
|
-
exports.
|
|
10754
|
+
exports.assetBulkActionV2ApiControllerDisableMaintenance = assetBulkActionV2ApiControllerDisableMaintenance;
|
|
9455
10755
|
/**
|
|
9456
|
-
*
|
|
10756
|
+
* Add tag(s) to multiple assets
|
|
10757
|
+
* Add tags to one or more Binalyze AIR assets in one call via POST /api/v2/assets/tags. This APPENDS the given tags to the assets in assets[]; it is not a full replacement (use air-assets-tags to replace one asset's whole tag set). Idempotent: assets that already carry a tag are not re-updated but still report 'tags-added'. Success response (200): result.entities[] = {asset{id,name}, action 'tags-added', addedTags[]}; unresolved/skipped inputs land in result.warnings[] = {asset, action 'skipped', reason}. Zero resolved assets -> 404 'No assets matched'. ALWAYS send dryRun=true first (preview); pass dryRun=false only to apply the real tag add after the user confirms the asset list. UUID entries carry their own org; ambiguous names may need organizations.
|
|
9457
10758
|
*/
|
|
9458
|
-
const
|
|
10759
|
+
const assetBulkMetadataV2ApiControllerAddTags = (options) => {
|
|
9459
10760
|
return (options.client ?? client_gen_1.client).post({
|
|
9460
10761
|
responseType: 'json',
|
|
9461
10762
|
security: [
|
|
@@ -9469,7 +10770,7 @@ const assetActionV2ApiControllerEnableMaintenance = (options) => {
|
|
|
9469
10770
|
type: 'http'
|
|
9470
10771
|
}
|
|
9471
10772
|
],
|
|
9472
|
-
url: '/api/v2/assets/
|
|
10773
|
+
url: '/api/v2/assets/tags',
|
|
9473
10774
|
...options,
|
|
9474
10775
|
headers: {
|
|
9475
10776
|
'Content-Type': 'application/json',
|
|
@@ -9477,11 +10778,12 @@ const assetActionV2ApiControllerEnableMaintenance = (options) => {
|
|
|
9477
10778
|
}
|
|
9478
10779
|
});
|
|
9479
10780
|
};
|
|
9480
|
-
exports.
|
|
10781
|
+
exports.assetBulkMetadataV2ApiControllerAddTags = assetBulkMetadataV2ApiControllerAddTags;
|
|
9481
10782
|
/**
|
|
9482
|
-
*
|
|
10783
|
+
* Remove tag(s) from multiple assets
|
|
10784
|
+
* Remove tags from one or more Binalyze AIR assets in one call via POST /api/v2/assets/tags/delete. This DELETES the given tags from the assets in assets[] (only the listed tags are removed; other tags stay; the tag catalog row itself is not deleted). Responses (200): real removal returns result.entities[] = {asset{id,name}, action 'tags-removed', removedTags[]}; with ?dryRun=true the action is 'would-remove-tags' and nothing changes. Zero resolved assets -> 404 'No assets matched'. ALWAYS send dryRun=true first (schema-specific would-remove preview); pass dryRun=false only to apply the real tag removal after the user confirms the asset list. UUID entries carry their own org; ambiguous names may need organizations.
|
|
9483
10785
|
*/
|
|
9484
|
-
const
|
|
10786
|
+
const assetBulkMetadataV2ApiControllerRemoveTags = (options) => {
|
|
9485
10787
|
return (options.client ?? client_gen_1.client).post({
|
|
9486
10788
|
responseType: 'json',
|
|
9487
10789
|
security: [
|
|
@@ -9495,7 +10797,7 @@ const assetActionV2ApiControllerDisableMaintenance = (options) => {
|
|
|
9495
10797
|
type: 'http'
|
|
9496
10798
|
}
|
|
9497
10799
|
],
|
|
9498
|
-
url: '/api/v2/assets/
|
|
10800
|
+
url: '/api/v2/assets/tags/delete',
|
|
9499
10801
|
...options,
|
|
9500
10802
|
headers: {
|
|
9501
10803
|
'Content-Type': 'application/json',
|
|
@@ -9503,12 +10805,13 @@ const assetActionV2ApiControllerDisableMaintenance = (options) => {
|
|
|
9503
10805
|
}
|
|
9504
10806
|
});
|
|
9505
10807
|
};
|
|
9506
|
-
exports.
|
|
10808
|
+
exports.assetBulkMetadataV2ApiControllerRemoveTags = assetBulkMetadataV2ApiControllerRemoveTags;
|
|
9507
10809
|
/**
|
|
9508
|
-
*
|
|
10810
|
+
* Set the update-exclusion flag on multiple assets
|
|
10811
|
+
* Set or clear the 'excluded from automatic agent updates' flag on one or more Binalyze AIR assets via PATCH /api/v2/assets/update-exclusion. excludedFromUpdates=true excludes the assets from auto-updates; false re-includes them. Success response (200): result.entities[] only contains assets that were actually updated ({asset{id,name}, action 'update-exclusion-set', excludedFromUpdates, updatedAt}); assets with an unsupported OS are NOT updated and land in result.warnings[] with action 'skipped' and reason 'Asset has unsupported OS for update'. entities may be empty when every asset was skipped -- report that honestly, do not claim an update. Zero resolved assets -> 404 'No assets matched'. ALWAYS send dryRun=true first (generic preview); pass dryRun=false only to apply the real change after the user confirms the asset list. UUID entries carry their own org; ambiguous names may need organizations.
|
|
9509
10812
|
*/
|
|
9510
|
-
const
|
|
9511
|
-
return (options.client ?? client_gen_1.client).
|
|
10813
|
+
const assetBulkMetadataV2ApiControllerSetUpdateExclusion = (options) => {
|
|
10814
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
9512
10815
|
responseType: 'json',
|
|
9513
10816
|
security: [
|
|
9514
10817
|
{
|
|
@@ -9521,16 +10824,21 @@ const assetActionV2ApiControllerImportPpcToExistingAsset = (options) => {
|
|
|
9521
10824
|
type: 'http'
|
|
9522
10825
|
}
|
|
9523
10826
|
],
|
|
9524
|
-
url: '/api/v2/assets/
|
|
9525
|
-
...options
|
|
10827
|
+
url: '/api/v2/assets/update-exclusion',
|
|
10828
|
+
...options,
|
|
10829
|
+
headers: {
|
|
10830
|
+
'Content-Type': 'application/json',
|
|
10831
|
+
...options.headers
|
|
10832
|
+
}
|
|
9526
10833
|
});
|
|
9527
10834
|
};
|
|
9528
|
-
exports.
|
|
10835
|
+
exports.assetBulkMetadataV2ApiControllerSetUpdateExclusion = assetBulkMetadataV2ApiControllerSetUpdateExclusion;
|
|
9529
10836
|
/**
|
|
9530
|
-
*
|
|
10837
|
+
* Set or clear the relay connection route on multiple assets
|
|
10838
|
+
* Set or clear the relay-server connection route of one or more Binalyze AIR assets via PATCH /api/v2/assets/connection-route. relayServerId is the numeric relay server id to route through; pass null to CLEAR the route (direct connection). The relay server's organization must match the assets' organization. ALWAYS send dryRun=true on every call (would-change preview of resolved assets and warnings); pass dryRun=false only to apply the real change after the user confirms the asset list. UUID entries carry their own org; ambiguous names may need organizations.
|
|
9531
10839
|
*/
|
|
9532
|
-
const
|
|
9533
|
-
return (options.client ?? client_gen_1.client).
|
|
10840
|
+
const assetBulkMetadataV2ApiControllerSetConnectionRoute = (options) => {
|
|
10841
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
9534
10842
|
responseType: 'json',
|
|
9535
10843
|
security: [
|
|
9536
10844
|
{
|
|
@@ -9543,7 +10851,7 @@ const assetBulkActionV2ApiControllerReboot = (options) => {
|
|
|
9543
10851
|
type: 'http'
|
|
9544
10852
|
}
|
|
9545
10853
|
],
|
|
9546
|
-
url: '/api/v2/
|
|
10854
|
+
url: '/api/v2/assets/connection-route',
|
|
9547
10855
|
...options,
|
|
9548
10856
|
headers: {
|
|
9549
10857
|
'Content-Type': 'application/json',
|
|
@@ -9551,12 +10859,13 @@ const assetBulkActionV2ApiControllerReboot = (options) => {
|
|
|
9551
10859
|
}
|
|
9552
10860
|
});
|
|
9553
10861
|
};
|
|
9554
|
-
exports.
|
|
10862
|
+
exports.assetBulkMetadataV2ApiControllerSetConnectionRoute = assetBulkMetadataV2ApiControllerSetConnectionRoute;
|
|
9555
10863
|
/**
|
|
9556
|
-
*
|
|
10864
|
+
* Set the demanded MITRE ATT&CK Database version on multiple assets
|
|
10865
|
+
* Set the demanded MITRE ATT&CK database version on one or more Binalyze AIR assets via PATCH /api/v2/assets/mitre-attack-database/version. This is the MITRE ATT&CK DATABASE version, not the agent version (use air-assets-bulk-version-update for the agent). PRECONDITIONS: (1) MITRE auto-update must be OFF, otherwise the call fails 400 with code MITRE_AUTO_UPDATE_ENABLED and a message telling how to disable it (PUT /api/public/settings/mitre-attack-database with autoUpdateEnabled=false). (2) version must be one that EXISTS in the system -- versions look like '13.5.2' (no 'v' prefix); list them via GET /api/public/settings/mitre-attack-database/versions; an unknown version fails 400 'is not available in the system'. Success response (200): result.entities[] only contains assets that were actually updated ({asset{id,name}, action 'mitre-database-updated', version, assignedAt}); INELIGIBLE assets are NOT updated and land in result.warnings[] with action 'skipped' and a reason ('Asset subtype is not endpoint', 'Asset is not managed', or 'Agent build does not support MITRE database updates'). entities may be empty when every asset was skipped -- report that honestly, do not claim an update. ALWAYS send dryRun=true first (generic preview; it does NOT check auto-update or version validity); pass dryRun=false only to apply the real change after the user confirms. UUID entries carry their own org; ambiguous names may need organizations.
|
|
9557
10866
|
*/
|
|
9558
|
-
const
|
|
9559
|
-
return (options.client ?? client_gen_1.client).
|
|
10867
|
+
const assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = (options) => {
|
|
10868
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
9560
10869
|
responseType: 'json',
|
|
9561
10870
|
security: [
|
|
9562
10871
|
{
|
|
@@ -9569,7 +10878,7 @@ const assetBulkActionV2ApiControllerShutdown = (options) => {
|
|
|
9569
10878
|
type: 'http'
|
|
9570
10879
|
}
|
|
9571
10880
|
],
|
|
9572
|
-
url: '/api/v2/
|
|
10881
|
+
url: '/api/v2/assets/mitre-attack-database/version',
|
|
9573
10882
|
...options,
|
|
9574
10883
|
headers: {
|
|
9575
10884
|
'Content-Type': 'application/json',
|
|
@@ -9577,11 +10886,12 @@ const assetBulkActionV2ApiControllerShutdown = (options) => {
|
|
|
9577
10886
|
}
|
|
9578
10887
|
});
|
|
9579
10888
|
};
|
|
9580
|
-
exports.
|
|
10889
|
+
exports.assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion;
|
|
9581
10890
|
/**
|
|
9582
|
-
*
|
|
10891
|
+
* Bulk delete assets (purge / uninstall / purge-and-uninstall)
|
|
10892
|
+
* Delete / decommission one or more Binalyze AIR assets via POST /api/v2/assets/delete. DESTRUCTIVE and largely irreversible (uninstall signals a real agent). mode selects the action: 'purge' (remove console records + evidence files; agent stays), 'uninstall' (uninstall the agent; records stay), or 'purge-and-uninstall' (both). mode 'purge' additionally requires the PurgeWithoutUninstall feature flag; when disabled the call fails 403 Forbidden. Invalid mode -> 400. Zero resolved assets -> 404 'No assets matched'. Responses: dryRun preview (200) returns result.entities[] = {asset{id,name}, mode, action 'would-delete', effects[] (e.g. 'agent-uninstall','console-records','evidence-files')}; the REAL delete (200) returns result = { deletedCount, warnings[] }. ALWAYS send dryRun=true first and show the user the per-asset effects; pass dryRun=false only after the user explicitly confirms the exact asset list and mode. UUID entries carry their own org; ambiguous names may need organizations. Use failIfNumberOfAssetsGreaterThan as a safety cap.
|
|
9583
10893
|
*/
|
|
9584
|
-
const
|
|
10894
|
+
const assetBulkMetadataV2ApiControllerDeleteAssets = (options) => {
|
|
9585
10895
|
return (options.client ?? client_gen_1.client).post({
|
|
9586
10896
|
responseType: 'json',
|
|
9587
10897
|
security: [
|
|
@@ -9595,7 +10905,7 @@ const assetBulkActionV2ApiControllerIsolate = (options) => {
|
|
|
9595
10905
|
type: 'http'
|
|
9596
10906
|
}
|
|
9597
10907
|
],
|
|
9598
|
-
url: '/api/v2/
|
|
10908
|
+
url: '/api/v2/assets/delete',
|
|
9599
10909
|
...options,
|
|
9600
10910
|
headers: {
|
|
9601
10911
|
'Content-Type': 'application/json',
|
|
@@ -9603,12 +10913,14 @@ const assetBulkActionV2ApiControllerIsolate = (options) => {
|
|
|
9603
10913
|
}
|
|
9604
10914
|
});
|
|
9605
10915
|
};
|
|
9606
|
-
exports.
|
|
10916
|
+
exports.assetBulkMetadataV2ApiControllerDeleteAssets = assetBulkMetadataV2ApiControllerDeleteAssets;
|
|
9607
10917
|
/**
|
|
9608
|
-
*
|
|
10918
|
+
* Import an off-network PPC (find-or-create asset + offline task)
|
|
10919
|
+
* Import an OFF-NETWORK Task.dat via POST /api/v2/assets/import (multipart upload) and create an OFFLINE TASK (offline-triage or offline-acquisition). IMPORTANT semantics: this endpoint does NOT create or find an asset -- it only creates a task from the uploaded Task.dat (the asset is resolved later, when the evidence collection zip is imported into the task). The file must be a valid RC4-encrypted Task.dat; anything else (e.g. a regular case .ppc) is rejected 400 'Missing or invalid Task.dat format!'. Requires the Off-Network Responder feature. Success response (200): result.entities[0] = { taskId, taskName, organizationId, taskDetailsViewUrl, ppcFileName, importedAt } -- a task summary, no asset id/name. organizations must resolve to EXACTLY ONE organization id (the task is single-org). Optionally attach to a case via caseIdOrName (unknown case -> 400 'Case not found'). ALWAYS send dryRun=true first (generic preview; does not validate the file); pass dryRun=false only to perform the real import after the user confirms. To import a case PPC into an asset that already exists in AIR, use air-assets-import instead.
|
|
9609
10920
|
*/
|
|
9610
|
-
const
|
|
10921
|
+
const assetBulkMetadataV2ApiControllerImportOffNetworkPpc = (options) => {
|
|
9611
10922
|
return (options.client ?? client_gen_1.client).post({
|
|
10923
|
+
...client_1.formDataBodySerializer,
|
|
9612
10924
|
responseType: 'json',
|
|
9613
10925
|
security: [
|
|
9614
10926
|
{
|
|
@@ -9621,19 +10933,20 @@ const assetBulkActionV2ApiControllerUnisolate = (options) => {
|
|
|
9621
10933
|
type: 'http'
|
|
9622
10934
|
}
|
|
9623
10935
|
],
|
|
9624
|
-
url: '/api/v2/
|
|
10936
|
+
url: '/api/v2/assets/import',
|
|
9625
10937
|
...options,
|
|
9626
10938
|
headers: {
|
|
9627
|
-
'Content-Type':
|
|
10939
|
+
'Content-Type': null,
|
|
9628
10940
|
...options.headers
|
|
9629
10941
|
}
|
|
9630
10942
|
});
|
|
9631
10943
|
};
|
|
9632
|
-
exports.
|
|
10944
|
+
exports.assetBulkMetadataV2ApiControllerImportOffNetworkPpc = assetBulkMetadataV2ApiControllerImportOffNetworkPpc;
|
|
9633
10945
|
/**
|
|
9634
|
-
*
|
|
10946
|
+
* Run triage rule(s) on multiple assets
|
|
10947
|
+
* Run triage rule(s) IMMEDIATELY on one or more Binalyze AIR assets via POST /api/v2/triage. Creates ONE triage task (status 'assigned') covering every runnable asset. This tool is for IMMEDIATE runs only -- it deliberately has NO schedule and NO cpuLimit parameter. To create a recurring/scheduled triage (or set a CPU cap), use air-assets-bulk-triage-scheduled instead; do NOT try to pass schedule fields here. ruleIds accept a rule UUID OR an exact rule name (names are resolved within the assets' authorized org scope; an ambiguous or unknown name becomes a per-input error in result.errors[]). NEVER invent or guess a rule id/name -- if the user did not give one, ask or look it up first. OMIT every optional argument the user did not ask for; never fill placeholders (no empty strings). Use assertions.failIfNumberOfAssetsGreaterThan as a safety cap: the task is rejected (406) if more assets match than the cap allows; omitted, it defaults to the resolved asset count. Success response (200): result.entities[0] = { id (task id), name, assets { assetCount, assetsUrl }, assignedAssetCount, organizations [{id,name}], rules [{id,name,engine}], status 'assigned', source, createdBy, createdAt, taskDetailsViewUrl }; result.errors[] lists per-input skips (e.g. 'Asset not found: X'). Zero matching assets -> 404 'No matching assets found'; zero matching rules -> 404 'No matching triage rules found'. ALWAYS send dryRun=true first (generic preview; it does NOT validate rules); pass dryRun=false only to create the real task after the user confirms. A preview is NOT a created task; only dryRun=false with ok=true and a returned task id means it was created -- treat ok=false / non-2xx / the error field as failure. Supports Idempotency-Key so a retried call replays the first response instead of creating duplicate tasks.
|
|
9635
10948
|
*/
|
|
9636
|
-
const
|
|
10949
|
+
const assetBulkTriageV2ApiControllerRunTriage = (options) => {
|
|
9637
10950
|
return (options.client ?? client_gen_1.client).post({
|
|
9638
10951
|
responseType: 'json',
|
|
9639
10952
|
security: [
|
|
@@ -9647,7 +10960,7 @@ const assetBulkActionV2ApiControllerRetrieveLogs = (options) => {
|
|
|
9647
10960
|
type: 'http'
|
|
9648
10961
|
}
|
|
9649
10962
|
],
|
|
9650
|
-
url: '/api/v2/
|
|
10963
|
+
url: '/api/v2/triage',
|
|
9651
10964
|
...options,
|
|
9652
10965
|
headers: {
|
|
9653
10966
|
'Content-Type': 'application/json',
|
|
@@ -9655,12 +10968,13 @@ const assetBulkActionV2ApiControllerRetrieveLogs = (options) => {
|
|
|
9655
10968
|
}
|
|
9656
10969
|
});
|
|
9657
10970
|
};
|
|
9658
|
-
exports.
|
|
10971
|
+
exports.assetBulkTriageV2ApiControllerRunTriage = assetBulkTriageV2ApiControllerRunTriage;
|
|
9659
10972
|
/**
|
|
9660
|
-
*
|
|
10973
|
+
* List InterAct messages for an asset
|
|
10974
|
+
* List the InterAct shell messages of EXACTLY ONE Binalyze AIR asset across all its sessions via GET /api/v2/assets/{idOrName}/interact. Read-only; returns a paginated envelope of messages (command + latest response, status, detectedType, output/outputUrl). Supports filtering by session, status, detected type, snippet, and created/completed date ranges. Use this when the user asks for an asset's shell command history, or to poll an async command's status by sessionId/status. Prefer UUID; names can be ambiguous across organizations. Omit any filter the user did not ask for. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9661
10975
|
*/
|
|
9662
|
-
const
|
|
9663
|
-
return (options.client ?? client_gen_1.client).
|
|
10976
|
+
const assetInteractMessageV2ApiControllerListForAsset = (options) => {
|
|
10977
|
+
return (options.client ?? client_gen_1.client).get({
|
|
9664
10978
|
responseType: 'json',
|
|
9665
10979
|
security: [
|
|
9666
10980
|
{
|
|
@@ -9673,19 +10987,16 @@ const assetBulkActionV2ApiControllerVersionUpdate = (options) => {
|
|
|
9673
10987
|
type: 'http'
|
|
9674
10988
|
}
|
|
9675
10989
|
],
|
|
9676
|
-
url: '/api/v2/
|
|
9677
|
-
...options
|
|
9678
|
-
headers: {
|
|
9679
|
-
'Content-Type': 'application/json',
|
|
9680
|
-
...options.headers
|
|
9681
|
-
}
|
|
10990
|
+
url: '/api/v2/assets/{idOrName}/interact',
|
|
10991
|
+
...options
|
|
9682
10992
|
});
|
|
9683
10993
|
};
|
|
9684
|
-
exports.
|
|
10994
|
+
exports.assetInteractMessageV2ApiControllerListForAsset = assetInteractMessageV2ApiControllerListForAsset;
|
|
9685
10995
|
/**
|
|
9686
|
-
*
|
|
10996
|
+
* Run an InterAct command on an asset
|
|
10997
|
+
* Run an InterAct shell command on EXACTLY ONE Binalyze AIR asset via POST /api/v2/assets/{idOrName}/interact. WARNING: this endpoint has NO dry-run preview -- a successful call EXECUTES the command on the live endpoint IMMEDIATELY. Confirm the exact asset and command with the user before calling; never run a destructive command without explicit confirmation. Sync mode (default) waits for the result up to the server timeout and returns 200 with the message (output inlined when small, else outputUrl); a timeout or async=true returns 202 with status 'running' and a messageId to poll. COMMAND ROUTING: when the first word matches an AIR native command (ls/dir, cd, ...; list via air-interact-commands), the NATIVE implementation runs -- it has its own option set and does NOT accept POSIX/shell flags (e.g. 'ls -la' fails; the native form is 'ls ext'). For a real shell command, prefix it with exec (e.g. 'exec ls -la /etc'); anything that matches no native command is auto-run as exec. When a native command fails on its flag parser, the response's `hint` field explains this and gives the exec form -- relay it to the user. Use the returned sessionId/messageId with air-assets-interact-message, air-assets-interact-cancel, or air-assets-interact-close. Prefer UUID; names can be ambiguous across organizations. If the asset name looks partial or you are not certain it is the EXACT name (e.g. user says 'mrv'), do not ask the user to clarify blindly -- either call this tool with that name (a non-matching name is safe: it executes nothing and returns HTTP 404 with suggestions) or first resolve it with air-assets-filtered-list using searchTerm=<the name>, then confirm with the user. Likewise, if the COMMAND looks like a typo of an AIR native command (e.g. 'pslt'), do not guess from memory -- call air-interact-commands (optionally searchTerm) and suggest the closest real command name from its `commandNames`; note a non-native command may still be a valid shell command, so only offer 'did you mean' when a close native match exists. Also: when a run COMPLETES with a failed command (non-zero exit) that was an unrecognized native command, the response body (not the error envelope) surfaces `suggestions` as native-command NAME strings (e.g. ['pslist']) -- distinct from the asset-name suggestion objects on a 404 -- tell the user 'the command failed; did you mean <name>?' and offer to re-run the corrected command. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id. Omit optional arguments the user did not ask for.
|
|
9687
10998
|
*/
|
|
9688
|
-
const
|
|
10999
|
+
const assetInteractV2ApiControllerRunCommand = (options) => {
|
|
9689
11000
|
return (options.client ?? client_gen_1.client).post({
|
|
9690
11001
|
responseType: 'json',
|
|
9691
11002
|
security: [
|
|
@@ -9699,7 +11010,7 @@ const assetBulkActionV2ApiControllerEnableMaintenance = (options) => {
|
|
|
9699
11010
|
type: 'http'
|
|
9700
11011
|
}
|
|
9701
11012
|
],
|
|
9702
|
-
url: '/api/v2/
|
|
11013
|
+
url: '/api/v2/assets/{idOrName}/interact',
|
|
9703
11014
|
...options,
|
|
9704
11015
|
headers: {
|
|
9705
11016
|
'Content-Type': 'application/json',
|
|
@@ -9707,11 +11018,12 @@ const assetBulkActionV2ApiControllerEnableMaintenance = (options) => {
|
|
|
9707
11018
|
}
|
|
9708
11019
|
});
|
|
9709
11020
|
};
|
|
9710
|
-
exports.
|
|
11021
|
+
exports.assetInteractV2ApiControllerRunCommand = assetInteractV2ApiControllerRunCommand;
|
|
9711
11022
|
/**
|
|
9712
|
-
*
|
|
11023
|
+
* Cancel the running InterAct command on an asset
|
|
11024
|
+
* Cancel the running InterAct shell command on EXACTLY ONE Binalyze AIR asset via POST /api/v2/assets/{idOrName}/interact/cancel. WARNING: this endpoint has NO dry-run preview -- it sends a real interrupt to the running command; the session stays open. With no body it cancels the caller's active session's running command. Pass messageId to target a specific running message, or sessionId to target a specific session. Cancellation is best-effort (the agent confirms asynchronously); the returned message may still read as running. 404 'No active session' / 'Message not found' when nothing matches; 400 'No running command to cancel' / 'Message is not running' when there is nothing to interrupt. Prefer UUID for the asset. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9713
11025
|
*/
|
|
9714
|
-
const
|
|
11026
|
+
const assetInteractV2ApiControllerCancelCommand = (options) => {
|
|
9715
11027
|
return (options.client ?? client_gen_1.client).post({
|
|
9716
11028
|
responseType: 'json',
|
|
9717
11029
|
security: [
|
|
@@ -9725,7 +11037,7 @@ const assetBulkActionV2ApiControllerDisableMaintenance = (options) => {
|
|
|
9725
11037
|
type: 'http'
|
|
9726
11038
|
}
|
|
9727
11039
|
],
|
|
9728
|
-
url: '/api/v2/
|
|
11040
|
+
url: '/api/v2/assets/{idOrName}/interact/cancel',
|
|
9729
11041
|
...options,
|
|
9730
11042
|
headers: {
|
|
9731
11043
|
'Content-Type': 'application/json',
|
|
@@ -9733,11 +11045,12 @@ const assetBulkActionV2ApiControllerDisableMaintenance = (options) => {
|
|
|
9733
11045
|
}
|
|
9734
11046
|
});
|
|
9735
11047
|
};
|
|
9736
|
-
exports.
|
|
11048
|
+
exports.assetInteractV2ApiControllerCancelCommand = assetInteractV2ApiControllerCancelCommand;
|
|
9737
11049
|
/**
|
|
9738
|
-
*
|
|
11050
|
+
* Close the InterAct session on an asset
|
|
11051
|
+
* Close the InterAct shell session on EXACTLY ONE Binalyze AIR asset via POST /api/v2/assets/{idOrName}/interact/close. WARNING: this endpoint has NO dry-run preview -- it really closes the session. With no body it closes the caller's active session; pass sessionId to target a specific session. If the session has running commands and force is omitted/false, the API returns 400 with errors[0].details.runningMessageIds; set force=true to cancel those commands first and then close. Success returns { sessionId, closedAt, cancelledMessageIds[] }. 404 'No active session' when nothing matches. Prefer UUID for the asset. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9739
11052
|
*/
|
|
9740
|
-
const
|
|
11053
|
+
const assetInteractV2ApiControllerCloseSession = (options) => {
|
|
9741
11054
|
return (options.client ?? client_gen_1.client).post({
|
|
9742
11055
|
responseType: 'json',
|
|
9743
11056
|
security: [
|
|
@@ -9751,7 +11064,7 @@ const assetBulkMetadataV2ApiControllerAddTags = (options) => {
|
|
|
9751
11064
|
type: 'http'
|
|
9752
11065
|
}
|
|
9753
11066
|
],
|
|
9754
|
-
url: '/api/v2/assets/
|
|
11067
|
+
url: '/api/v2/assets/{idOrName}/interact/close',
|
|
9755
11068
|
...options,
|
|
9756
11069
|
headers: {
|
|
9757
11070
|
'Content-Type': 'application/json',
|
|
@@ -9759,12 +11072,13 @@ const assetBulkMetadataV2ApiControllerAddTags = (options) => {
|
|
|
9759
11072
|
}
|
|
9760
11073
|
});
|
|
9761
11074
|
};
|
|
9762
|
-
exports.
|
|
11075
|
+
exports.assetInteractV2ApiControllerCloseSession = assetInteractV2ApiControllerCloseSession;
|
|
9763
11076
|
/**
|
|
9764
|
-
*
|
|
11077
|
+
* Get asset issue/actionability stats
|
|
11078
|
+
* Get aggregate Binalyze AIR asset statistics from GET /api/v2/assets/stats. Use this for fleet summaries, counts, and breakdowns, not for listing individual assets. Only include filters when the user explicitly asks for scoped stats.
|
|
9765
11079
|
*/
|
|
9766
|
-
const
|
|
9767
|
-
return (options
|
|
11080
|
+
const assetV2ApiControllerGetStats = (options) => {
|
|
11081
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
9768
11082
|
responseType: 'json',
|
|
9769
11083
|
security: [
|
|
9770
11084
|
{
|
|
@@ -9777,21 +11091,18 @@ const assetBulkMetadataV2ApiControllerRemoveTags = (options) => {
|
|
|
9777
11091
|
type: 'http'
|
|
9778
11092
|
}
|
|
9779
11093
|
],
|
|
9780
|
-
url: '/api/v2/assets/
|
|
9781
|
-
...options
|
|
9782
|
-
headers: {
|
|
9783
|
-
'Content-Type': 'application/json',
|
|
9784
|
-
...options.headers
|
|
9785
|
-
}
|
|
11094
|
+
url: '/api/v2/assets/stats',
|
|
11095
|
+
...options
|
|
9786
11096
|
});
|
|
9787
11097
|
};
|
|
9788
|
-
exports.
|
|
11098
|
+
exports.assetV2ApiControllerGetStats = assetV2ApiControllerGetStats;
|
|
9789
11099
|
/**
|
|
9790
|
-
*
|
|
11100
|
+
* Export assets as CSV
|
|
11101
|
+
* Export Binalyze AIR assets as a CSV file via GET /api/v2/assets/export and save it inside the current worktree. Read-only on the server side; no dryRun needed. The filter model mirrors air-assets-filtered-list (searchTerm, subtype, status, platform, isolation), but tag filtering (tagIds) is NOT applied on export. organizations defaults to all accessible organizations when omitted. Returns {outputPath, byteLength}; default output is artifacts/assets.csv. Use air-assets-list or air-assets-filtered-list instead when the user just wants to read assets in the chat.
|
|
9791
11102
|
*/
|
|
9792
|
-
const
|
|
9793
|
-
return (options
|
|
9794
|
-
responseType: '
|
|
11103
|
+
const assetV2ApiControllerExportAssets = (options) => {
|
|
11104
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
11105
|
+
responseType: 'text',
|
|
9795
11106
|
security: [
|
|
9796
11107
|
{
|
|
9797
11108
|
in: 'cookie',
|
|
@@ -9803,20 +11114,17 @@ const assetBulkMetadataV2ApiControllerSetUpdateExclusion = (options) => {
|
|
|
9803
11114
|
type: 'http'
|
|
9804
11115
|
}
|
|
9805
11116
|
],
|
|
9806
|
-
url: '/api/v2/assets/
|
|
9807
|
-
...options
|
|
9808
|
-
headers: {
|
|
9809
|
-
'Content-Type': 'application/json',
|
|
9810
|
-
...options.headers
|
|
9811
|
-
}
|
|
11117
|
+
url: '/api/v2/assets/export',
|
|
11118
|
+
...options
|
|
9812
11119
|
});
|
|
9813
11120
|
};
|
|
9814
|
-
exports.
|
|
11121
|
+
exports.assetV2ApiControllerExportAssets = assetV2ApiControllerExportAssets;
|
|
9815
11122
|
/**
|
|
9816
|
-
*
|
|
11123
|
+
* List assets
|
|
11124
|
+
* List Binalyze AIR assets with explicit filters, organization scope, pagination, sorting, or output format. Use this only when the user asks for a constrained asset list, such as offline Windows endpoints, page 2, assets with no agent, or markdown output. For subtype-only prompts like 'filter by disk image', prefer air-assets-by-subtype. If a small model sends searchTerm=diskImage here, this tool normalizes it to subtype=['diskImage']. Placeholder defaults such as organizations=all, pageNumber=1, pageSize=20, sortType without sortBy, and false booleans are ignored.
|
|
9817
11125
|
*/
|
|
9818
|
-
const
|
|
9819
|
-
return (options
|
|
11126
|
+
const assetV2ApiControllerFilterAssets = (options) => {
|
|
11127
|
+
return (options?.client ?? client_gen_1.client).get({
|
|
9820
11128
|
responseType: 'json',
|
|
9821
11129
|
security: [
|
|
9822
11130
|
{
|
|
@@ -9829,20 +11137,17 @@ const assetBulkMetadataV2ApiControllerSetConnectionRoute = (options) => {
|
|
|
9829
11137
|
type: 'http'
|
|
9830
11138
|
}
|
|
9831
11139
|
],
|
|
9832
|
-
url: '/api/v2/assets
|
|
9833
|
-
...options
|
|
9834
|
-
headers: {
|
|
9835
|
-
'Content-Type': 'application/json',
|
|
9836
|
-
...options.headers
|
|
9837
|
-
}
|
|
11140
|
+
url: '/api/v2/assets',
|
|
11141
|
+
...options
|
|
9838
11142
|
});
|
|
9839
11143
|
};
|
|
9840
|
-
exports.
|
|
11144
|
+
exports.assetV2ApiControllerFilterAssets = assetV2ApiControllerFilterAssets;
|
|
9841
11145
|
/**
|
|
9842
|
-
*
|
|
11146
|
+
* Delete an asset by id or name
|
|
11147
|
+
* Delete or uninstall EXACTLY ONE Binalyze AIR asset, identified by a single id or name in the path, using DELETE /api/v2/assets/{idOrName}. This is destructive. ALWAYS send dryRun=true on every call (would-delete preview); pass dryRun=false only for the final real delete after the user confirms the exact asset id and mode. Use mode='purge' for console record deletion only, 'uninstall' for agent uninstall signal, and 'purge-and-uninstall' for both. Prefer UUID; names can be ambiguous. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9843
11148
|
*/
|
|
9844
|
-
const
|
|
9845
|
-
return (options.client ?? client_gen_1.client).
|
|
11149
|
+
const assetV2ApiControllerDeleteAsset = (options) => {
|
|
11150
|
+
return (options.client ?? client_gen_1.client).delete({
|
|
9846
11151
|
responseType: 'json',
|
|
9847
11152
|
security: [
|
|
9848
11153
|
{
|
|
@@ -9855,20 +11160,17 @@ const assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = (options) => {
|
|
|
9855
11160
|
type: 'http'
|
|
9856
11161
|
}
|
|
9857
11162
|
],
|
|
9858
|
-
url: '/api/v2/assets/
|
|
9859
|
-
...options
|
|
9860
|
-
headers: {
|
|
9861
|
-
'Content-Type': 'application/json',
|
|
9862
|
-
...options.headers
|
|
9863
|
-
}
|
|
11163
|
+
url: '/api/v2/assets/{idOrName}',
|
|
11164
|
+
...options
|
|
9864
11165
|
});
|
|
9865
11166
|
};
|
|
9866
|
-
exports.
|
|
11167
|
+
exports.assetV2ApiControllerDeleteAsset = assetV2ApiControllerDeleteAsset;
|
|
9867
11168
|
/**
|
|
9868
|
-
*
|
|
11169
|
+
* Get asset by id or name
|
|
11170
|
+
* Fetch one Binalyze AIR asset by UUID or name using GET /api/v2/assets/{idOrName}. Use this when the user wants details for a specific host/asset. Prefer UUID because names can be duplicated. If the API returns AMBIGUOUS_NAME, show the candidates and retry only with the selected id. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9869
11171
|
*/
|
|
9870
|
-
const
|
|
9871
|
-
return (options.client ?? client_gen_1.client).
|
|
11172
|
+
const assetV2ApiControllerGetAsset = (options) => {
|
|
11173
|
+
return (options.client ?? client_gen_1.client).get({
|
|
9872
11174
|
responseType: 'json',
|
|
9873
11175
|
security: [
|
|
9874
11176
|
{
|
|
@@ -9881,21 +11183,17 @@ const assetBulkMetadataV2ApiControllerDeleteAssets = (options) => {
|
|
|
9881
11183
|
type: 'http'
|
|
9882
11184
|
}
|
|
9883
11185
|
],
|
|
9884
|
-
url: '/api/v2/assets/
|
|
9885
|
-
...options
|
|
9886
|
-
headers: {
|
|
9887
|
-
'Content-Type': 'application/json',
|
|
9888
|
-
...options.headers
|
|
9889
|
-
}
|
|
11186
|
+
url: '/api/v2/assets/{idOrName}',
|
|
11187
|
+
...options
|
|
9890
11188
|
});
|
|
9891
11189
|
};
|
|
9892
|
-
exports.
|
|
11190
|
+
exports.assetV2ApiControllerGetAsset = assetV2ApiControllerGetAsset;
|
|
9893
11191
|
/**
|
|
9894
|
-
*
|
|
11192
|
+
* Replace asset tags
|
|
11193
|
+
* Replace the complete tag set of one Binalyze AIR asset using PATCH /api/v2/assets/{idOrName}/tags. Use this only when the user asks to set, replace, update, or clear tags. This is a full replacement, not an append operation. ALWAYS send dryRun=true on every call (would-change preview); pass dryRun=false only to apply the real tag change after the user confirms the exact asset. Prefer UUID because asset names can be ambiguous; retry by id if AMBIGUOUS_NAME is returned. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9895
11194
|
*/
|
|
9896
|
-
const
|
|
9897
|
-
return (options.client ?? client_gen_1.client).
|
|
9898
|
-
...client_1.formDataBodySerializer,
|
|
11195
|
+
const assetV2ApiControllerReplaceTags = (options) => {
|
|
11196
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
9899
11197
|
responseType: 'json',
|
|
9900
11198
|
security: [
|
|
9901
11199
|
{
|
|
@@ -9908,20 +11206,21 @@ const assetBulkMetadataV2ApiControllerImportOffNetworkPpc = (options) => {
|
|
|
9908
11206
|
type: 'http'
|
|
9909
11207
|
}
|
|
9910
11208
|
],
|
|
9911
|
-
url: '/api/v2/assets/
|
|
11209
|
+
url: '/api/v2/assets/{idOrName}/tags',
|
|
9912
11210
|
...options,
|
|
9913
11211
|
headers: {
|
|
9914
|
-
'Content-Type':
|
|
11212
|
+
'Content-Type': 'application/json',
|
|
9915
11213
|
...options.headers
|
|
9916
11214
|
}
|
|
9917
11215
|
});
|
|
9918
11216
|
};
|
|
9919
|
-
exports.
|
|
11217
|
+
exports.assetV2ApiControllerReplaceTags = assetV2ApiControllerReplaceTags;
|
|
9920
11218
|
/**
|
|
9921
|
-
*
|
|
11219
|
+
* Update asset label
|
|
11220
|
+
* Set or clear the label of one Binalyze AIR asset using PATCH /api/v2/assets/{idOrName}/label. Use this only for asset label changes, not tags. Pass a string to set the label or null to clear it. ALWAYS send dryRun=true on every call (would-change preview); pass dryRun=false only to apply the real label change after the user confirms the exact asset. Prefer UUID because asset names can be ambiguous; retry by id if AMBIGUOUS_NAME is returned. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9922
11221
|
*/
|
|
9923
|
-
const
|
|
9924
|
-
return (options.client ?? client_gen_1.client).
|
|
11222
|
+
const assetV2ApiControllerUpdateLabel = (options) => {
|
|
11223
|
+
return (options.client ?? client_gen_1.client).patch({
|
|
9925
11224
|
responseType: 'json',
|
|
9926
11225
|
security: [
|
|
9927
11226
|
{
|
|
@@ -9934,7 +11233,7 @@ const assetBulkTriageV2ApiControllerRunTriage = (options) => {
|
|
|
9934
11233
|
type: 'http'
|
|
9935
11234
|
}
|
|
9936
11235
|
],
|
|
9937
|
-
url: '/api/v2/
|
|
11236
|
+
url: '/api/v2/assets/{idOrName}/label',
|
|
9938
11237
|
...options,
|
|
9939
11238
|
headers: {
|
|
9940
11239
|
'Content-Type': 'application/json',
|
|
@@ -9942,10 +11241,10 @@ const assetBulkTriageV2ApiControllerRunTriage = (options) => {
|
|
|
9942
11241
|
}
|
|
9943
11242
|
});
|
|
9944
11243
|
};
|
|
9945
|
-
exports.
|
|
11244
|
+
exports.assetV2ApiControllerUpdateLabel = assetV2ApiControllerUpdateLabel;
|
|
9946
11245
|
/**
|
|
9947
|
-
* List the
|
|
9948
|
-
* List the triage task history of a
|
|
11246
|
+
* List the hunt task history of a single asset
|
|
11247
|
+
* List the hunt (triage) task history of EXACTLY ONE Binalyze AIR asset via GET /api/v2/assets/{idOrName}/hunt (formerly /triage). Read-only; returns a paginated envelope of the triage tasks previously run on that asset. Use this when the user asks for an asset's past/ongoing triage tasks. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9949
11248
|
*/
|
|
9950
11249
|
const assetTriageV2ApiControllerFilterTriageTasks = (options) => {
|
|
9951
11250
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -9961,13 +11260,14 @@ const assetTriageV2ApiControllerFilterTriageTasks = (options) => {
|
|
|
9961
11260
|
type: 'http'
|
|
9962
11261
|
}
|
|
9963
11262
|
],
|
|
9964
|
-
url: '/api/v2/assets/{idOrName}/
|
|
11263
|
+
url: '/api/v2/assets/{idOrName}/hunt',
|
|
9965
11264
|
...options
|
|
9966
11265
|
});
|
|
9967
11266
|
};
|
|
9968
11267
|
exports.assetTriageV2ApiControllerFilterTriageTasks = assetTriageV2ApiControllerFilterTriageTasks;
|
|
9969
11268
|
/**
|
|
9970
11269
|
* Run triage rule(s) on a single asset
|
|
11270
|
+
* Run hunt (triage) rule(s) on EXACTLY ONE Binalyze AIR asset via POST /api/v2/assets/{idOrName}/hunt (formerly /triage). Use this ONLY for one specific asset; for two or more assets, a list, a group, or 'all matching', use air-assets-bulk-triage instead. WARNING: this endpoint has NO dry-run preview -- a successful call creates a REAL triage task IMMEDIATELY (or a scheduled one when `schedule` is set). Confirm the exact asset and rules with the user before calling. ruleIds accept a rule UUID OR an exact rule name (names are resolved within the asset's authorized org scope; unknown/ambiguous names become per-input errors). NEVER invent or guess a rule id/name. Omit every optional argument the user did not ask for; never fill placeholders. Only a 2xx response with a returned task id means the task was created -- treat ok=false / non-2xx / the error field as failure. Supports Idempotency-Key so a retried call replays the first response instead of creating duplicate tasks. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9971
11271
|
*/
|
|
9972
11272
|
const assetTriageV2ApiControllerRunTriage = (options) => {
|
|
9973
11273
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -9983,7 +11283,7 @@ const assetTriageV2ApiControllerRunTriage = (options) => {
|
|
|
9983
11283
|
type: 'http'
|
|
9984
11284
|
}
|
|
9985
11285
|
],
|
|
9986
|
-
url: '/api/v2/assets/{idOrName}/
|
|
11286
|
+
url: '/api/v2/assets/{idOrName}/hunt',
|
|
9987
11287
|
...options,
|
|
9988
11288
|
headers: {
|
|
9989
11289
|
'Content-Type': 'application/json',
|
|
@@ -9994,6 +11294,7 @@ const assetTriageV2ApiControllerRunTriage = (options) => {
|
|
|
9994
11294
|
exports.assetTriageV2ApiControllerRunTriage = assetTriageV2ApiControllerRunTriage;
|
|
9995
11295
|
/**
|
|
9996
11296
|
* Cancel triage tasks on a single asset
|
|
11297
|
+
* Cancel triage (hunt) tasks on EXACTLY ONE Binalyze AIR asset via POST /api/v2/assets/{idOrName}/triage/cancel. Use this ONLY for one specific asset's triage tasks. For cancelling a whole hunt task across all its assets, use air-hunt-cancel instead. `tasks` is ALWAYS required: an array of parent task UUIDs, or the literal string 'all' to cancel every cancellable triage task of this asset. ALWAYS send dryRun=true on every call (would-run preview); pass dryRun=false only to send the real cancellation after the user confirms the exact asset and tasks. Prefer UUID for the asset; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
9997
11298
|
*/
|
|
9998
11299
|
const assetTriageV2ApiControllerCancelTriage = (options) => {
|
|
9999
11300
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -10009,7 +11310,7 @@ const assetTriageV2ApiControllerCancelTriage = (options) => {
|
|
|
10009
11310
|
type: 'http'
|
|
10010
11311
|
}
|
|
10011
11312
|
],
|
|
10012
|
-
url: '/api/v2/assets/{idOrName}/
|
|
11313
|
+
url: '/api/v2/assets/{idOrName}/hunt/cancel',
|
|
10013
11314
|
...options,
|
|
10014
11315
|
headers: {
|
|
10015
11316
|
'Content-Type': 'application/json',
|
|
@@ -10020,6 +11321,7 @@ const assetTriageV2ApiControllerCancelTriage = (options) => {
|
|
|
10020
11321
|
exports.assetTriageV2ApiControllerCancelTriage = assetTriageV2ApiControllerCancelTriage;
|
|
10021
11322
|
/**
|
|
10022
11323
|
* Delete one asset's triage task assignment
|
|
11324
|
+
* Delete ONE asset's triage (hunt) task assignment via DELETE /api/v2/assets/{idOrName}/triage/{taskId}. DESTRUCTIVE and irreversible once executed: removes this asset's assignment of the given parent triage task, including its collected results for this asset. Other assets' assignments of the same task are NOT touched; to delete the whole task everywhere, use air-hunt-delete instead. ALWAYS send dryRun=true on every call (would-delete preview); pass dryRun=false only after the user confirms the exact asset and task. taskId must be the parent task UUID (see air-assets-triage-history). Prefer UUID for the asset; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10023
11325
|
*/
|
|
10024
11326
|
const assetTriageV2ApiControllerDeleteTriageAssignment = (options) => {
|
|
10025
11327
|
return (options.client ?? client_gen_1.client).delete({
|
|
@@ -10035,13 +11337,14 @@ const assetTriageV2ApiControllerDeleteTriageAssignment = (options) => {
|
|
|
10035
11337
|
type: 'http'
|
|
10036
11338
|
}
|
|
10037
11339
|
],
|
|
10038
|
-
url: '/api/v2/assets/{idOrName}/
|
|
11340
|
+
url: '/api/v2/assets/{idOrName}/hunt/{taskId}',
|
|
10039
11341
|
...options
|
|
10040
11342
|
});
|
|
10041
11343
|
};
|
|
10042
11344
|
exports.assetTriageV2ApiControllerDeleteTriageAssignment = assetTriageV2ApiControllerDeleteTriageAssignment;
|
|
10043
11345
|
/**
|
|
10044
11346
|
* Start an evidence or image acquisition on a single asset
|
|
11347
|
+
* Start an evidence or disk-image acquisition on EXACTLY ONE Binalyze AIR asset via POST /api/v2/assets/{idOrName}/acquire. WARNING: this endpoint has NO dry-run preview -- a successful call starts a REAL acquisition task IMMEDIATELY (or a scheduled one when `schedule` is set). Confirm the exact asset, type, and profile/image options with the user before calling. type='evidence' (default) REQUIRES profileIdOrName and accepts NO image-specific field. type='image' REQUIRES imageType + at least one volume, accepts NO profileIdOrName, and description/examinerName are EWF2-only. The server rejects cross-type field combinations with 400. profileIdOrName / caseIdOrName accept a UUID or an exact name resolved within the asset's org scope. NEVER invent or guess a profile/case id. Omit every optional argument the user did not ask for; never fill placeholders. Only a 2xx response with a returned task id means the task was started -- treat ok=false / non-2xx / the error field as failure. Supports Idempotency-Key so a retried call replays the first response instead of starting duplicate tasks. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10045
11348
|
*/
|
|
10046
11349
|
const assetAcquisitionV2ApiControllerAcquire = (options) => {
|
|
10047
11350
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -10068,6 +11371,7 @@ const assetAcquisitionV2ApiControllerAcquire = (options) => {
|
|
|
10068
11371
|
exports.assetAcquisitionV2ApiControllerAcquire = assetAcquisitionV2ApiControllerAcquire;
|
|
10069
11372
|
/**
|
|
10070
11373
|
* Cancel acquisition tasks on a single asset
|
|
11374
|
+
* Cancel evidence/image acquisition tasks on EXACTLY ONE Binalyze AIR asset via POST /api/v2/assets/{idOrName}/acquisition/cancel. Use this ONLY for one specific asset's acquisition tasks (started with air-assets-acquire). `tasks` is ALWAYS required: an array of parent task UUIDs, or the literal string 'all' to cancel every cancellable acquisition task of this asset. ALWAYS send dryRun=true on every call (would-run preview); pass dryRun=false only to send the real cancellation after the user confirms the exact asset and tasks. Prefer UUID for the asset; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10071
11375
|
*/
|
|
10072
11376
|
const assetAcquisitionV2ApiControllerCancelAcquisition = (options) => {
|
|
10073
11377
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -10094,6 +11398,7 @@ const assetAcquisitionV2ApiControllerCancelAcquisition = (options) => {
|
|
|
10094
11398
|
exports.assetAcquisitionV2ApiControllerCancelAcquisition = assetAcquisitionV2ApiControllerCancelAcquisition;
|
|
10095
11399
|
/**
|
|
10096
11400
|
* Delete one asset's acquisition task assignment
|
|
11401
|
+
* Delete ONE asset's acquisition task assignment via DELETE /api/v2/assets/{idOrName}/acquisition/{taskId}. DESTRUCTIVE and irreversible once executed: removes this asset's assignment of the given parent acquisition task, including its collected evidence for this asset. Other assets' assignments of the same task are NOT touched. ALWAYS send dryRun=true on every call (would-delete preview); pass dryRun=false only after the user confirms the exact asset and task. taskId must be the parent task UUID (see air-assets-acquisition-history). Prefer UUID for the asset; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10097
11402
|
*/
|
|
10098
11403
|
const assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment = (options) => {
|
|
10099
11404
|
return (options.client ?? client_gen_1.client).delete({
|
|
@@ -10116,7 +11421,7 @@ const assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment = (options) =>
|
|
|
10116
11421
|
exports.assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment = assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment;
|
|
10117
11422
|
/**
|
|
10118
11423
|
* List the acquisition task history of a single asset
|
|
10119
|
-
* List the acquisition task history of a
|
|
11424
|
+
* List the acquisition (evidence/image) task history of EXACTLY ONE Binalyze AIR asset via GET /api/v2/assets/{idOrName}/acquisition. Read-only; returns a paginated envelope of the acquisition tasks previously started on that asset. Use this when the user asks for an asset's past/ongoing acquisition tasks. Prefer UUID; names can be ambiguous across organizations. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10120
11425
|
*/
|
|
10121
11426
|
const assetAcquisitionV2ApiControllerFilterAcquisitionTasks = (options) => {
|
|
10122
11427
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -10137,113 +11442,9 @@ const assetAcquisitionV2ApiControllerFilterAcquisitionTasks = (options) => {
|
|
|
10137
11442
|
});
|
|
10138
11443
|
};
|
|
10139
11444
|
exports.assetAcquisitionV2ApiControllerFilterAcquisitionTasks = assetAcquisitionV2ApiControllerFilterAcquisitionTasks;
|
|
10140
|
-
/**
|
|
10141
|
-
* List InterAct messages for an asset
|
|
10142
|
-
* Paginated InterAct command messages for the asset across all of its sessions.
|
|
10143
|
-
*/
|
|
10144
|
-
const assetInteractMessageV2ApiControllerListForAsset = (options) => {
|
|
10145
|
-
return (options.client ?? client_gen_1.client).get({
|
|
10146
|
-
responseType: 'json',
|
|
10147
|
-
security: [
|
|
10148
|
-
{
|
|
10149
|
-
in: 'cookie',
|
|
10150
|
-
name: 'Authentication',
|
|
10151
|
-
type: 'apiKey'
|
|
10152
|
-
},
|
|
10153
|
-
{
|
|
10154
|
-
scheme: 'bearer',
|
|
10155
|
-
type: 'http'
|
|
10156
|
-
}
|
|
10157
|
-
],
|
|
10158
|
-
url: '/api/v2/assets/{idOrName}/interact',
|
|
10159
|
-
...options
|
|
10160
|
-
});
|
|
10161
|
-
};
|
|
10162
|
-
exports.assetInteractMessageV2ApiControllerListForAsset = assetInteractMessageV2ApiControllerListForAsset;
|
|
10163
|
-
/**
|
|
10164
|
-
* Run an InterAct command on an asset
|
|
10165
|
-
* Runs a command; sync returns the message (200), async/timeout returns 202.
|
|
10166
|
-
*/
|
|
10167
|
-
const assetInteractV2ApiControllerRunCommand = (options) => {
|
|
10168
|
-
return (options.client ?? client_gen_1.client).post({
|
|
10169
|
-
responseType: 'json',
|
|
10170
|
-
security: [
|
|
10171
|
-
{
|
|
10172
|
-
in: 'cookie',
|
|
10173
|
-
name: 'Authentication',
|
|
10174
|
-
type: 'apiKey'
|
|
10175
|
-
},
|
|
10176
|
-
{
|
|
10177
|
-
scheme: 'bearer',
|
|
10178
|
-
type: 'http'
|
|
10179
|
-
}
|
|
10180
|
-
],
|
|
10181
|
-
url: '/api/v2/assets/{idOrName}/interact',
|
|
10182
|
-
...options,
|
|
10183
|
-
headers: {
|
|
10184
|
-
'Content-Type': 'application/json',
|
|
10185
|
-
...options.headers
|
|
10186
|
-
}
|
|
10187
|
-
});
|
|
10188
|
-
};
|
|
10189
|
-
exports.assetInteractV2ApiControllerRunCommand = assetInteractV2ApiControllerRunCommand;
|
|
10190
|
-
/**
|
|
10191
|
-
* Cancel the running InterAct command on an asset
|
|
10192
|
-
* Cancels the target/active running command; the session stays open.
|
|
10193
|
-
*/
|
|
10194
|
-
const assetInteractV2ApiControllerCancelCommand = (options) => {
|
|
10195
|
-
return (options.client ?? client_gen_1.client).post({
|
|
10196
|
-
responseType: 'json',
|
|
10197
|
-
security: [
|
|
10198
|
-
{
|
|
10199
|
-
in: 'cookie',
|
|
10200
|
-
name: 'Authentication',
|
|
10201
|
-
type: 'apiKey'
|
|
10202
|
-
},
|
|
10203
|
-
{
|
|
10204
|
-
scheme: 'bearer',
|
|
10205
|
-
type: 'http'
|
|
10206
|
-
}
|
|
10207
|
-
],
|
|
10208
|
-
url: '/api/v2/assets/{idOrName}/interact/cancel',
|
|
10209
|
-
...options,
|
|
10210
|
-
headers: {
|
|
10211
|
-
'Content-Type': 'application/json',
|
|
10212
|
-
...options.headers
|
|
10213
|
-
}
|
|
10214
|
-
});
|
|
10215
|
-
};
|
|
10216
|
-
exports.assetInteractV2ApiControllerCancelCommand = assetInteractV2ApiControllerCancelCommand;
|
|
10217
|
-
/**
|
|
10218
|
-
* Close the InterAct session on an asset
|
|
10219
|
-
* Closes the active/target session; force=true cancels running commands first.
|
|
10220
|
-
*/
|
|
10221
|
-
const assetInteractV2ApiControllerCloseSession = (options) => {
|
|
10222
|
-
return (options.client ?? client_gen_1.client).post({
|
|
10223
|
-
responseType: 'json',
|
|
10224
|
-
security: [
|
|
10225
|
-
{
|
|
10226
|
-
in: 'cookie',
|
|
10227
|
-
name: 'Authentication',
|
|
10228
|
-
type: 'apiKey'
|
|
10229
|
-
},
|
|
10230
|
-
{
|
|
10231
|
-
scheme: 'bearer',
|
|
10232
|
-
type: 'http'
|
|
10233
|
-
}
|
|
10234
|
-
],
|
|
10235
|
-
url: '/api/v2/assets/{idOrName}/interact/close',
|
|
10236
|
-
...options,
|
|
10237
|
-
headers: {
|
|
10238
|
-
'Content-Type': 'application/json',
|
|
10239
|
-
...options.headers
|
|
10240
|
-
}
|
|
10241
|
-
});
|
|
10242
|
-
};
|
|
10243
|
-
exports.assetInteractV2ApiControllerCloseSession = assetInteractV2ApiControllerCloseSession;
|
|
10244
11445
|
/**
|
|
10245
11446
|
* List InterAct sessions for an asset
|
|
10246
|
-
*
|
|
11447
|
+
* List the InterAct shell sessions of EXACTLY ONE Binalyze AIR asset via GET /api/v2/assets/{idOrName}/interact/sessions. Read-only; returns a paginated envelope of sessions (activityState active/idle, createdBy, task, case, messageCount, timestamps). Supports filtering by session, creator, and creation date; sortable by createdAt. Use this when the user asks for an asset's shell sessions. Prefer UUID; names can be ambiguous across organizations. Omit any filter the user did not ask for. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10247
11448
|
*/
|
|
10248
11449
|
const assetInteractMessageV2ApiControllerListSessionsForAsset = (options) => {
|
|
10249
11450
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -10266,7 +11467,7 @@ const assetInteractMessageV2ApiControllerListSessionsForAsset = (options) => {
|
|
|
10266
11467
|
exports.assetInteractMessageV2ApiControllerListSessionsForAsset = assetInteractMessageV2ApiControllerListSessionsForAsset;
|
|
10267
11468
|
/**
|
|
10268
11469
|
* Get an InterAct message scoped to an asset
|
|
10269
|
-
*
|
|
11470
|
+
* Fetch ONE InterAct shell message of a Binalyze AIR asset by message UUID via GET /api/v2/assets/{idOrName}/interact/{messageId}. Read-only; returns the unified message entity (command, status, output/outputUrl, exitCode, timestamps). Use this to poll a 'running' message returned by air-assets-interact-run, or to inspect one specific message. The message must belong to the asset, otherwise the API returns 404. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10270
11471
|
*/
|
|
10271
11472
|
const assetInteractMessageV2ApiControllerGetMessage = (options) => {
|
|
10272
11473
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -10289,7 +11490,7 @@ const assetInteractMessageV2ApiControllerGetMessage = (options) => {
|
|
|
10289
11490
|
exports.assetInteractMessageV2ApiControllerGetMessage = assetInteractMessageV2ApiControllerGetMessage;
|
|
10290
11491
|
/**
|
|
10291
11492
|
* Download an InterAct message output
|
|
10292
|
-
*
|
|
11493
|
+
* Download the output of ONE InterAct shell message of a Binalyze AIR asset via GET /api/v2/assets/{idOrName}/interact/{messageId}/download. Read-only; the endpoint streams the message output as an attachment (it bypasses the JSON envelope). This tool saves the bytes to a file inside the current worktree (outputPath, default artifacts/interact-message-output.bin) and returns { outputPath, byteLength }; read the saved file for the content. Use this for a message whose output is too large to inline (outputUrl is set). The message must be terminal -- a still-running message returns 400. On HTTP 404 the asset name or message id was not found; verify the asset with air-assets-get and the message with air-assets-interact-messages before retrying.
|
|
10293
11494
|
*/
|
|
10294
11495
|
const assetInteractMessageV2ApiControllerDownloadMessageOutput = (options) => {
|
|
10295
11496
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -10312,7 +11513,7 @@ const assetInteractMessageV2ApiControllerDownloadMessageOutput = (options) => {
|
|
|
10312
11513
|
exports.assetInteractMessageV2ApiControllerDownloadMessageOutput = assetInteractMessageV2ApiControllerDownloadMessageOutput;
|
|
10313
11514
|
/**
|
|
10314
11515
|
* Get an InterAct session report scoped to an asset
|
|
10315
|
-
*
|
|
11516
|
+
* Get the InterAct shell session report of a Binalyze AIR asset via GET /api/v2/assets/{idOrName}/interact/sessions/{sessionId}/report. Read-only; returns a self-contained session report. format='json' (default) returns the structured report envelope (session, asset, messages, messageCount, lastActivityAt); format='html' returns the rendered HTML report (this tool returns a preview of the HTML plus its byte length). Use a sessionId from air-assets-interact-sessions. The session must belong to the asset, otherwise the API returns 404. Prefer UUID for the asset. On HTTP 404 with errors[0].details.suggestions, the asset name was not found -- show those suggestions to the user and confirm before retrying, never guess; on HTTP 400 AMBIGUOUS_NAME with errors[0].details.matches, ask which asset by id.
|
|
10316
11517
|
*/
|
|
10317
11518
|
const assetInteractMessageV2ApiControllerGetSessionReport = (options) => {
|
|
10318
11519
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -11256,6 +12457,7 @@ const cloudAcquisitionProfilesUpdate = (options) => {
|
|
|
11256
12457
|
exports.cloudAcquisitionProfilesUpdate = cloudAcquisitionProfilesUpdate;
|
|
11257
12458
|
/**
|
|
11258
12459
|
* List cloud acquisition profiles
|
|
12460
|
+
* List Binalyze AIR cloud (M365) acquisition profiles via GET /api/v2/libraries/acquisition/cloud. Read-only and paginated. Each entity is a profile summary: id, name, organizationIds, averageTime, createdAt/createdBy, lastUsedAt/lastUsedBy, deletable, and a detailsUrl. The m365UserBased/m365TenantWide evidence lists are NOT included; use air-acquisition-cloud-get for one profile's full config. Use this when the user asks to list or search cloud acquisition profiles, or needs a profile id or exact name before get, update, delete, or bulk delete. sortBy accepts only name, createdBy, createdAt, lastUsedAt, lastUsedBy (default createdAt). Profiles with empty organizationIds are global.
|
|
11259
12461
|
*/
|
|
11260
12462
|
const cloudAcquisitionLibraryApiControllerList = (options) => {
|
|
11261
12463
|
return (options?.client ?? client_gen_1.client).get({
|
|
@@ -11278,6 +12480,7 @@ const cloudAcquisitionLibraryApiControllerList = (options) => {
|
|
|
11278
12480
|
exports.cloudAcquisitionLibraryApiControllerList = cloudAcquisitionLibraryApiControllerList;
|
|
11279
12481
|
/**
|
|
11280
12482
|
* Create cloud acquisition profile
|
|
12483
|
+
* Create a Binalyze AIR cloud (M365) acquisition profile via POST /api/v2/libraries/acquisition/cloud. MUTATING: persists a new profile. Returns 200 with entities[0] = the created profile detail. `name` (alphanumeric) plus BOTH m365UserBased and m365TenantWide blocks are required; each block is {evidenceList: string[]} and at least one evidence must be selected across the two blocks. Evidence keys are lowercase M365 collector names, e.g. user-based: outlookmails, onedrive, teams, teamschat, calendar, mfa, user; tenant-wide: ual, adminauditlog, azureadaccountlogon, sharepoint, exchangeadmin, riskyusers. dryRun DEFAULTS TO TRUE: the first call validates and returns the would-be entity without persisting anything; pass dryRun=false only to actually create after the user confirms. Inspect an existing profile with air-acquisition-cloud-get for the full list of valid evidence keys.
|
|
11281
12484
|
*/
|
|
11282
12485
|
const cloudAcquisitionLibraryApiControllerCreate = (options) => {
|
|
11283
12486
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -11304,6 +12507,7 @@ const cloudAcquisitionLibraryApiControllerCreate = (options) => {
|
|
|
11304
12507
|
exports.cloudAcquisitionLibraryApiControllerCreate = cloudAcquisitionLibraryApiControllerCreate;
|
|
11305
12508
|
/**
|
|
11306
12509
|
* Bulk delete cloud acquisition profiles
|
|
12510
|
+
* Bulk delete Binalyze AIR cloud (M365) acquisition profiles via POST /api/v2/libraries/acquisition/cloud/delete. MUTATING and irreversible. Resolution is tolerant: unknown or ambiguous items are skipped and reported in warnings[] (action: 'skipped') instead of failing the whole request. System profiles are also skipped with a warning. dryRun DEFAULTS TO TRUE: the first call returns entities[] of what would be deleted; pass dryRun=false only to actually delete after the user confirms. A real delete returns deletedCount plus warnings[]. Use this for several profiles at once; use air-acquisition-cloud-delete for exactly one. Ids and exact names come from air-acquisition-cloud-list.
|
|
11307
12511
|
*/
|
|
11308
12512
|
const cloudAcquisitionLibraryApiControllerBulkDelete = (options) => {
|
|
11309
12513
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -11330,6 +12534,7 @@ const cloudAcquisitionLibraryApiControllerBulkDelete = (options) => {
|
|
|
11330
12534
|
exports.cloudAcquisitionLibraryApiControllerBulkDelete = cloudAcquisitionLibraryApiControllerBulkDelete;
|
|
11331
12535
|
/**
|
|
11332
12536
|
* Delete cloud acquisition profile
|
|
12537
|
+
* Delete ONE Binalyze AIR cloud (M365) acquisition profile via DELETE /api/v2/libraries/acquisition/cloud/{idOrName}. MUTATING and irreversible. System (predefined) profiles cannot be deleted: the API returns 406 SYSTEM_PROFILE_IMMUTABLE. dryRun DEFAULTS TO TRUE: the first call returns what would be deleted without removing anything; pass dryRun=false only to actually delete after the user confirms. Use air-acquisition-cloud-bulk-delete for several profiles at once. The idOrName comes from air-acquisition-cloud-list or air-acquisition-cloud-get. An unknown idOrName returns 404 NOT_FOUND with suggestions; an ambiguous name returns 400 AMBIGUOUS_NAME.
|
|
11333
12538
|
*/
|
|
11334
12539
|
const cloudAcquisitionLibraryApiControllerDelete = (options) => {
|
|
11335
12540
|
return (options.client ?? client_gen_1.client).delete({
|
|
@@ -11352,6 +12557,7 @@ const cloudAcquisitionLibraryApiControllerDelete = (options) => {
|
|
|
11352
12557
|
exports.cloudAcquisitionLibraryApiControllerDelete = cloudAcquisitionLibraryApiControllerDelete;
|
|
11353
12558
|
/**
|
|
11354
12559
|
* Get cloud acquisition profile by id or name
|
|
12560
|
+
* Get ONE Binalyze AIR cloud (M365) acquisition profile by UUID or exact name via GET /api/v2/libraries/acquisition/cloud/{idOrName}. Read-only. Returns the full profile detail in entities[0]: id, name, organizationIds, m365UserBased.evidenceList, m365TenantWide.evidenceList, deletable, and timestamps. Use this when the user asks to show or inspect a cloud acquisition profile's evidence selection, to clone one, or to discover valid M365 evidence keys. Ids and exact names come from air-acquisition-cloud-list. An unknown idOrName returns 404 NOT_FOUND with did-you-mean suggestions in errors[0].details.suggestions[]; an ambiguous name returns 400 AMBIGUOUS_NAME with candidates in errors[0].details.matches[].
|
|
11355
12561
|
*/
|
|
11356
12562
|
const cloudAcquisitionLibraryApiControllerGet = (options) => {
|
|
11357
12563
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -11374,6 +12580,7 @@ const cloudAcquisitionLibraryApiControllerGet = (options) => {
|
|
|
11374
12580
|
exports.cloudAcquisitionLibraryApiControllerGet = cloudAcquisitionLibraryApiControllerGet;
|
|
11375
12581
|
/**
|
|
11376
12582
|
* Update cloud acquisition profile
|
|
12583
|
+
* Update ONE Binalyze AIR cloud (M365) acquisition profile via PATCH /api/v2/libraries/acquisition/cloud/{idOrName}. MUTATING partial update: only the fields you pass change; omitted fields keep their current value. Updatable fields: name, organizationIds, m365UserBased, m365TenantWide. A passed evidence block REPLACES that whole block. The merged profile must keep at least one M365 evidence selected across the two blocks (a name-only patch is fine). Sending no updatable field returns NOTHING_CHANGED with result null. System (predefined) profiles cannot be updated: the API returns 406 SYSTEM_PROFILE_IMMUTABLE. dryRun DEFAULTS TO TRUE: the first call previews the merged profile without persisting; pass dryRun=false only to actually update after the user confirms. The idOrName comes from air-acquisition-cloud-list or air-acquisition-cloud-get. An unknown idOrName returns 404 NOT_FOUND with suggestions; an ambiguous name returns 400 AMBIGUOUS_NAME.
|
|
11377
12584
|
*/
|
|
11378
12585
|
const cloudAcquisitionLibraryApiControllerUpdate = (options) => {
|
|
11379
12586
|
return (options.client ?? client_gen_1.client).patch({
|
|
@@ -11518,6 +12725,7 @@ const imageEvidenceAcquisitionProfilesDeleteBulk = (options) => {
|
|
|
11518
12725
|
exports.imageEvidenceAcquisitionProfilesDeleteBulk = imageEvidenceAcquisitionProfilesDeleteBulk;
|
|
11519
12726
|
/**
|
|
11520
12727
|
* List disk image acquisition profiles
|
|
12728
|
+
* List Binalyze AIR disk-image acquisition profiles via GET /api/v2/libraries/acquisition/disk-image. Read-only and paginated. Requires the image-evidence-acquisition feature to be enabled on the Console. Each entity is a profile summary: id, name, organizationIds, averageTime, createdAt/updatedAt, createdBy, lastUsedAt/lastUsedBy, deletable, and a detailsUrl. allFiles/paths/evidence config is NOT included; use air-acquisition-disk-image-get for one profile's full config. Use this when the user asks to list or search disk-image (forensic imaging) profiles, or needs a profile id or exact name before get, update, delete, or bulk delete. sortBy accepts only name, createdAt, updatedAt, lastUsedAt, createdBy, lastUsedBy (default createdAt). Profiles with empty organizationIds are global.
|
|
11521
12729
|
*/
|
|
11522
12730
|
const diskImageAcquisitionLibraryApiControllerList = (options) => {
|
|
11523
12731
|
return (options?.client ?? client_gen_1.client).get({
|
|
@@ -11540,6 +12748,7 @@ const diskImageAcquisitionLibraryApiControllerList = (options) => {
|
|
|
11540
12748
|
exports.diskImageAcquisitionLibraryApiControllerList = diskImageAcquisitionLibraryApiControllerList;
|
|
11541
12749
|
/**
|
|
11542
12750
|
* Create disk image acquisition profile
|
|
12751
|
+
* Create a Binalyze AIR disk-image acquisition profile via POST /api/v2/libraries/acquisition/disk-image. MUTATING: persists a new profile. Returns 200 with entities[0] = the created profile detail. Requires the image-evidence-acquisition feature to be enabled on the Console. `name` is required (alphanumeric). Scope is either allFiles=true (full image) OR a `paths` list of directories/files to image; the allFiles/paths combination must be consistent (a profile cannot have both allFiles=true and paths). `imageAcquisitionEvidences` optionally selects extra evidence to collect alongside the image. dryRun DEFAULTS TO TRUE: the first call validates and returns the would-be entity without persisting anything; pass dryRun=false only to actually create after the user confirms. Inspect an existing profile with air-acquisition-disk-image-get when cloning or when unsure of valid evidence keys.
|
|
11543
12752
|
*/
|
|
11544
12753
|
const diskImageAcquisitionLibraryApiControllerCreate = (options) => {
|
|
11545
12754
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -11566,6 +12775,7 @@ const diskImageAcquisitionLibraryApiControllerCreate = (options) => {
|
|
|
11566
12775
|
exports.diskImageAcquisitionLibraryApiControllerCreate = diskImageAcquisitionLibraryApiControllerCreate;
|
|
11567
12776
|
/**
|
|
11568
12777
|
* Bulk delete disk image acquisition profiles
|
|
12778
|
+
* Bulk delete Binalyze AIR disk-image acquisition profiles via POST /api/v2/libraries/acquisition/disk-image/delete. MUTATING and irreversible. Requires the image-evidence-acquisition feature to be enabled on the Console. Resolution is tolerant: unknown or ambiguous items are skipped and reported in warnings[] (action: 'skipped') instead of failing the whole request. System profiles are also skipped with a warning. dryRun DEFAULTS TO TRUE: the first call returns entities[] of what would be deleted; pass dryRun=false only to actually delete after the user confirms. A real delete returns deletedCount plus warnings[]. Use this for several profiles at once; use air-acquisition-disk-image-delete for exactly one. Ids and exact names come from air-acquisition-disk-image-list.
|
|
11569
12779
|
*/
|
|
11570
12780
|
const diskImageAcquisitionLibraryApiControllerBulkDelete = (options) => {
|
|
11571
12781
|
return (options.client ?? client_gen_1.client).post({
|
|
@@ -11592,6 +12802,7 @@ const diskImageAcquisitionLibraryApiControllerBulkDelete = (options) => {
|
|
|
11592
12802
|
exports.diskImageAcquisitionLibraryApiControllerBulkDelete = diskImageAcquisitionLibraryApiControllerBulkDelete;
|
|
11593
12803
|
/**
|
|
11594
12804
|
* Delete disk image acquisition profile
|
|
12805
|
+
* Delete ONE Binalyze AIR disk-image acquisition profile via DELETE /api/v2/libraries/acquisition/disk-image/{idOrName}. MUTATING and irreversible. Requires the image-evidence-acquisition feature to be enabled on the Console. System (predefined) profiles cannot be deleted: the API returns 406 SYSTEM_PROFILE_IMMUTABLE. dryRun DEFAULTS TO TRUE: the first call returns what would be deleted without removing anything; pass dryRun=false only to actually delete after the user confirms. Use air-acquisition-disk-image-bulk-delete for several profiles at once. The idOrName comes from air-acquisition-disk-image-list or air-acquisition-disk-image-get. An unknown idOrName returns 404 NOT_FOUND with suggestions; an ambiguous name returns 400 AMBIGUOUS_NAME.
|
|
11595
12806
|
*/
|
|
11596
12807
|
const diskImageAcquisitionLibraryApiControllerDelete = (options) => {
|
|
11597
12808
|
return (options.client ?? client_gen_1.client).delete({
|
|
@@ -11614,6 +12825,7 @@ const diskImageAcquisitionLibraryApiControllerDelete = (options) => {
|
|
|
11614
12825
|
exports.diskImageAcquisitionLibraryApiControllerDelete = diskImageAcquisitionLibraryApiControllerDelete;
|
|
11615
12826
|
/**
|
|
11616
12827
|
* Get disk image acquisition profile by id or name
|
|
12828
|
+
* Get ONE Binalyze AIR disk-image acquisition profile by UUID or exact name via GET /api/v2/libraries/acquisition/disk-image/{idOrName}. Read-only. Requires the image-evidence-acquisition feature to be enabled on the Console. Returns the full profile detail in entities[0]: id, name, organizationIds, allFiles, paths[] ({path, description}), imageAcquisitionEvidences, deletable, and timestamps. Use this when the user asks to show or inspect a disk-image profile's scope, or to clone one. Ids and exact names come from air-acquisition-disk-image-list. An unknown idOrName returns 404 NOT_FOUND with did-you-mean suggestions in errors[0].details.suggestions[]; an ambiguous name returns 400 AMBIGUOUS_NAME with candidates in errors[0].details.matches[].
|
|
11617
12829
|
*/
|
|
11618
12830
|
const diskImageAcquisitionLibraryApiControllerGet = (options) => {
|
|
11619
12831
|
return (options.client ?? client_gen_1.client).get({
|
|
@@ -11636,6 +12848,7 @@ const diskImageAcquisitionLibraryApiControllerGet = (options) => {
|
|
|
11636
12848
|
exports.diskImageAcquisitionLibraryApiControllerGet = diskImageAcquisitionLibraryApiControllerGet;
|
|
11637
12849
|
/**
|
|
11638
12850
|
* Update disk image acquisition profile
|
|
12851
|
+
* Update ONE Binalyze AIR disk-image acquisition profile via PATCH /api/v2/libraries/acquisition/disk-image/{idOrName}. MUTATING partial update: only the fields you pass change; omitted fields keep their current value. Requires the image-evidence-acquisition feature. Updatable fields: name, organizationIds, allFiles, paths, imageAcquisitionEvidences. The merged profile must stay consistent: allFiles=true cannot coexist with a non-empty paths list. Sending no updatable field returns NOTHING_CHANGED with result null. System (predefined) profiles cannot be updated: the API returns 406 SYSTEM_PROFILE_IMMUTABLE. dryRun DEFAULTS TO TRUE: the first call previews the merged profile without persisting; pass dryRun=false only to actually update after the user confirms. The idOrName comes from air-acquisition-disk-image-list or air-acquisition-disk-image-get. An unknown idOrName returns 404 NOT_FOUND with suggestions; an ambiguous name returns 400 AMBIGUOUS_NAME.
|
|
11639
12852
|
*/
|
|
11640
12853
|
const diskImageAcquisitionLibraryApiControllerUpdate = (options) => {
|
|
11641
12854
|
return (options.client ?? client_gen_1.client).patch({
|