@binalyze/air-sdk 5.22.4 → 5.24.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/generated/bindings-v2.d.ts +3 -0
  2. package/dist/generated/bindings-v2.js +44 -0
  3. package/dist/generated/bindings-v2.js.map +1 -0
  4. package/dist/index.d.ts +7 -0
  5. package/dist/index.js +9 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/sdk/typescript-axios/sdk.gen.d.ts +441 -73
  8. package/dist/sdk/typescript-axios/sdk.gen.js +2014 -552
  9. package/dist/sdk/typescript-axios/sdk.gen.js.map +1 -1
  10. package/dist/sdk/typescript-axios/types.gen.d.ts +10683 -6110
  11. package/dist/sdk/typescript-axios-v2/client/client.gen.d.ts +2 -0
  12. package/dist/sdk/typescript-axios-v2/client/client.gen.js +141 -0
  13. package/dist/sdk/typescript-axios-v2/client/client.gen.js.map +1 -0
  14. package/dist/sdk/typescript-axios-v2/client/index.d.ts +7 -0
  15. package/dist/sdk/typescript-axios-v2/client/index.js +16 -0
  16. package/dist/sdk/typescript-axios-v2/client/index.js.map +1 -0
  17. package/dist/sdk/typescript-axios-v2/client/types.gen.d.ts +95 -0
  18. package/dist/sdk/typescript-axios-v2/client/types.gen.js +5 -0
  19. package/dist/sdk/typescript-axios-v2/client/types.gen.js.map +1 -0
  20. package/dist/sdk/typescript-axios-v2/client/utils.gen.d.ts +14 -0
  21. package/dist/sdk/typescript-axios-v2/client/utils.gen.js +175 -0
  22. package/dist/sdk/typescript-axios-v2/client/utils.gen.js.map +1 -0
  23. package/dist/sdk/typescript-axios-v2/client.gen.d.ts +12 -0
  24. package/dist/sdk/typescript-axios-v2/client.gen.js +8 -0
  25. package/dist/sdk/typescript-axios-v2/client.gen.js.map +1 -0
  26. package/dist/sdk/typescript-axios-v2/core/auth.gen.d.ts +18 -0
  27. package/dist/sdk/typescript-axios-v2/core/auth.gen.js +20 -0
  28. package/dist/sdk/typescript-axios-v2/core/auth.gen.js.map +1 -0
  29. package/dist/sdk/typescript-axios-v2/core/bodySerializer.gen.d.ts +17 -0
  30. package/dist/sdk/typescript-axios-v2/core/bodySerializer.gen.js +62 -0
  31. package/dist/sdk/typescript-axios-v2/core/bodySerializer.gen.js.map +1 -0
  32. package/dist/sdk/typescript-axios-v2/core/params.gen.d.ts +33 -0
  33. package/dist/sdk/typescript-axios-v2/core/params.gen.js +94 -0
  34. package/dist/sdk/typescript-axios-v2/core/params.gen.js.map +1 -0
  35. package/dist/sdk/typescript-axios-v2/core/pathSerializer.gen.d.ts +33 -0
  36. package/dist/sdk/typescript-axios-v2/core/pathSerializer.gen.js +125 -0
  37. package/dist/sdk/typescript-axios-v2/core/pathSerializer.gen.js.map +1 -0
  38. package/dist/sdk/typescript-axios-v2/core/serverSentEvents.gen.d.ts +71 -0
  39. package/dist/sdk/typescript-axios-v2/core/serverSentEvents.gen.js +141 -0
  40. package/dist/sdk/typescript-axios-v2/core/serverSentEvents.gen.js.map +1 -0
  41. package/dist/sdk/typescript-axios-v2/core/types.gen.d.ts +78 -0
  42. package/dist/sdk/typescript-axios-v2/core/types.gen.js +5 -0
  43. package/dist/sdk/typescript-axios-v2/core/types.gen.js.map +1 -0
  44. package/dist/sdk/typescript-axios-v2/core/utils.gen.d.ts +19 -0
  45. package/dist/sdk/typescript-axios-v2/core/utils.gen.js +95 -0
  46. package/dist/sdk/typescript-axios-v2/core/utils.gen.js.map +1 -0
  47. package/dist/sdk/typescript-axios-v2/index.d.ts +2 -0
  48. package/dist/sdk/typescript-axios-v2/index.js +21 -0
  49. package/dist/sdk/typescript-axios-v2/index.js.map +1 -0
  50. package/dist/sdk/typescript-axios-v2/sdk.gen.d.ts +695 -0
  51. package/dist/sdk/typescript-axios-v2/sdk.gen.js +3435 -0
  52. package/dist/sdk/typescript-axios-v2/sdk.gen.js.map +1 -0
  53. package/dist/sdk/typescript-axios-v2/types.gen.d.ts +8221 -0
  54. package/dist/sdk/typescript-axios-v2/types.gen.js +5 -0
  55. package/dist/sdk/typescript-axios-v2/types.gen.js.map +1 -0
  56. package/dist/utils/index.d.ts +3 -0
  57. package/dist/utils/index.js +3 -0
  58. package/dist/utils/index.js.map +1 -1
  59. package/dist/utils/page-iterator.d.ts +12 -0
  60. package/dist/utils/page-iterator.js +23 -0
  61. package/dist/utils/page-iterator.js.map +1 -0
  62. package/dist/utils/retry.d.ts +29 -0
  63. package/dist/utils/retry.js +70 -0
  64. package/dist/utils/retry.js.map +1 -0
  65. package/dist/utils/typed-errors.d.ts +44 -0
  66. package/dist/utils/typed-errors.js +82 -0
  67. package/dist/utils/typed-errors.js.map +1 -0
  68. package/dist/v2/AIR.d.ts +56 -0
  69. package/dist/v2/AIR.js +80 -0
  70. package/dist/v2/AIR.js.map +1 -0
  71. package/dist/v2/index.d.ts +1 -0
  72. package/dist/v2/index.js +18 -0
  73. package/dist/v2/index.js.map +1 -0
  74. 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.endpointExportCasesByEndpointId0 = exports.endpointGetCasesById1 = 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.paramsGetMitreAttackTactics = exports.paramsEvidenceList = exports.paramsEventLogRecordTypes = exports.paramsEDiscoveryPatterns = exports.paramsGetDroneAnalyzers = exports.loggerDownloadLogsDir = exports.appGetBasicInfo = void 0;
6
- exports.endpointTaskRetryUpload1 = exports.endpointTaskRetryUpload0 = 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 = void 0;
7
- exports.settingsSaveConsoleAddress = exports.settingsValidateConsoleAddress = 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 = void 0;
8
- exports.licenseSetLicense = exports.licenseGetLicense = 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 = void 0;
9
- 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 = exports.getManyTriageRules = exports.gitRepositoriesGetRepositoryBranches = exports.gitRepositoriesTestConnection = exports.gitRepositoriesBrowseTree = exports.gitRepositoriesGetSyncLogs = 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 = void 0;
10
- 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 = 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 = void 0;
11
- 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.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 = void 0;
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.endpointGetEndpointsWithTaskCount = exports.assetsGetManyByFilterExpression2 = exports.assetsGetManyByFilterExpression = 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.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.endpointTagRenameAssetTag = exports.endpointTagDeleteAssetTag = exports.endpointTagDeleteAllAssetTags = exports.endpointTagCreateAssetTag = exports.endpointTagFilterAssetTags = 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.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 = exports.endpointTaskPurgeLocalData1 = exports.endpointTaskPurgeLocalData0 = void 0;
8
+ 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 = exports.settingsSaveRfc3161 = exports.settingsSaveLocard = void 0;
9
+ 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 = exports.userPatTokensDelete = exports.userPatTokensRotate = void 0;
10
+ 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 = exports.getManyTriageRules = exports.taxiiFeedsBulkDelete = void 0;
11
+ 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 = exports.evidenceRepositoryUpdateBox = exports.evidenceRepositoryCreateBox = exports.evidenceRepositoryValidateBox = exports.evidenceRepositoryUpdateGoogleCloudStorage = exports.evidenceRepositoryCreateGoogleCloudStorage = void 0;
12
+ exports.caseDeleteCaseNote = exports.caseAddCaseNote = exports.caseExportActivities = exports.casesGetActivities = exports.casesGetAssetsByFilterExpression2 = exports.casesGetAssetsByFilterExpression = 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.casesCreateAssetsExpressionExport2 = exports.casesDownloadAssetsExpressionExport2 = exports.casesCreateAssetsExpressionExport = exports.casesDownloadAssetsExpressionExport = 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 = exports.caseUserV2ApiControllerFilterUsers = exports.caseAssetV2ApiControllerFilterAssets = exports.caseBulkActionV2ApiControllerArchive = exports.caseBulkActionV2ApiControllerClose = exports.caseExportV2ApiControllerExportCases = void 0;
12
13
  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 = exports.caseCategoriesCreate = exports.caseCategoriesFilter = exports.caseTagsDelete = exports.caseTagsCreate = exports.caseTagsFilter = exports.caseRemoveTaskAssignmentFromCase = exports.caseRemoveEndpointsFromCaseByFilter1 = exports.caseRemoveEndpointsFromCaseByFilter0 = exports.casesGetUsers = exports.caseImportTaskAssignment = exports.caseEditCaseNote = void 0;
13
- exports.investigationExportFlags = exports.investigationGetEvidenceRelationData = exports.investigationGetEvidenceData = exports.investigationGetEvidenceDataStructure = exports.investigationGetInvestigationMigrationsSummary = exports.investigationUpdateInvestigation = exports.investigationGetInvestigationById = 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.interactLibraryFileV2ApiControllerDownload = exports.interactLibraryFileV2ApiControllerDelete = exports.interactLibraryFileV2ApiControllerBulkDelete = exports.interactLibraryFileV2ApiControllerUpload = exports.interactLibraryFileV2ApiControllerList = exports.interactLibraryTagV2ApiControllerUpdate = exports.interactLibraryTagV2ApiControllerGet = exports.interactLibraryTagV2ApiControllerDelete = exports.interactLibraryTagV2ApiControllerBulkDelete = exports.interactLibraryTagV2ApiControllerCreate = exports.interactLibraryTagV2ApiControllerList = exports.interactLibrarySnippetV2ApiControllerUpdate = void 0;
14
- 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 = exports.investigationCreateExportRequestForFlags = void 0;
15
- exports.assetActionV2ApiControllerEnableMaintenance = exports.assetActionV2ApiControllerVersionUpdate = exports.assetActionV2ApiControllerRetrieveLogs = exports.assetActionV2ApiControllerUnisolate = exports.assetActionV2ApiControllerIsolate = exports.assetActionV2ApiControllerShutdown = exports.assetActionV2ApiControllerReboot = exports.assetV2ApiControllerUpdateLabel = exports.assetV2ApiControllerReplaceTags = exports.assetV2ApiControllerGetAsset = exports.assetV2ApiControllerDeleteAsset = exports.assetV2ApiControllerFilterAssets = exports.assetV2ApiControllerExportAssets = exports.assetV2ApiControllerGetStats = 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 = exports.investigationFlagCreateFlag = void 0;
16
- 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.assetInteractV2ApiControllerCloseSession = exports.assetInteractV2ApiControllerCancelCommand = exports.assetInteractV2ApiControllerRunCommand = exports.assetInteractMessageV2ApiControllerListForAsset = exports.assetAcquisitionV2ApiControllerFilterAcquisitionTasks = exports.assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment = exports.assetAcquisitionV2ApiControllerCancelAcquisition = exports.assetAcquisitionV2ApiControllerAcquire = exports.assetTriageV2ApiControllerDeleteTriageAssignment = exports.assetTriageV2ApiControllerCancelTriage = exports.assetTriageV2ApiControllerRunTriage = exports.assetTriageV2ApiControllerFilterTriageTasks = exports.assetBulkTriageV2ApiControllerRunTriage = exports.assetBulkMetadataV2ApiControllerImportOffNetworkPpc = exports.assetBulkMetadataV2ApiControllerDeleteAssets = exports.assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = exports.assetBulkMetadataV2ApiControllerSetConnectionRoute = exports.assetBulkMetadataV2ApiControllerSetUpdateExclusion = exports.assetBulkMetadataV2ApiControllerRemoveTags = exports.assetBulkMetadataV2ApiControllerAddTags = exports.assetBulkActionV2ApiControllerDisableMaintenance = exports.assetBulkActionV2ApiControllerEnableMaintenance = exports.assetBulkActionV2ApiControllerVersionUpdate = exports.assetBulkActionV2ApiControllerRetrieveLogs = exports.assetBulkActionV2ApiControllerUnisolate = exports.assetBulkActionV2ApiControllerIsolate = exports.assetBulkActionV2ApiControllerShutdown = exports.assetBulkActionV2ApiControllerReboot = exports.assetActionV2ApiControllerImportPpcToExistingAsset = exports.assetActionV2ApiControllerDisableMaintenance = void 0;
17
- 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 = exports.investigationDataUsageExportActualDataUsages = void 0;
18
- exports.diskImageAcquisitionTasksDownload = exports.diskImageAcquisitionTasksCreate = exports.diskImageAcquisitionLibraryApiControllerUpdate = exports.diskImageAcquisitionLibraryApiControllerGet = exports.diskImageAcquisitionLibraryApiControllerDelete = exports.diskImageAcquisitionLibraryApiControllerBulkDelete = exports.diskImageAcquisitionLibraryApiControllerCreate = exports.diskImageAcquisitionLibraryApiControllerList = exports.imageEvidenceAcquisitionProfilesDeleteBulk = exports.imageEvidenceAcquisitionProfilesUpdate = exports.imageEvidenceAcquisitionProfilesGetOne = exports.imageEvidenceAcquisitionProfilesDelete = void 0;
14
+ 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 = exports.interactLibraryFileV2ApiControllerDelete = exports.interactLibraryFileV2ApiControllerBulkDelete = exports.interactLibraryFileV2ApiControllerUpload = exports.interactLibraryFileV2ApiControllerList = exports.interactLibraryTagV2ApiControllerUpdate = exports.interactLibraryTagV2ApiControllerGet = exports.interactLibraryTagV2ApiControllerDelete = exports.interactLibraryTagV2ApiControllerBulkDelete = exports.interactLibraryTagV2ApiControllerCreate = exports.interactLibraryTagV2ApiControllerList = exports.interactLibrarySnippetV2ApiControllerUpdate = void 0;
15
+ 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 = exports.investigationCreateExportRequestForFlags = exports.investigationExportFlags = exports.investigationGetEvidenceRelationData = exports.investigationGetEvidenceData = exports.investigationGetEvidenceDataStructure = exports.investigationGetInvestigationMigrationsSummary = exports.investigationUpdateInvestigation = exports.investigationGetInvestigationById = exports.investigationSqlV2ApiControllerExecuteSqlQuery = exports.investigationSqlV2ApiControllerGetSchema = exports.investigationEvidenceFlagV2ApiControllerUnflagEvidence = void 0;
16
+ 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 = exports.investigationFlagCreateFlag = exports.investigationFlagFilterFlags = exports.investigationReportDownloadPdfReport = exports.investigationReportGeneratePdfReport = exports.investigationReportUpdateReport = exports.investigationReportGetReport = exports.investigationReportDeleteReport = exports.investigationReportCreateReport = exports.investigationReportFilterReports = exports.investigationReportExportReports = exports.investigationExclusionDeleteIndividualFindingExclusionRule = void 0;
17
+ 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 = exports.assetBulkActionV2ApiControllerVersionUpdate = exports.assetBulkActionV2ApiControllerRetrieveLogs = exports.assetBulkActionV2ApiControllerUnisolate = exports.assetBulkActionV2ApiControllerIsolate = exports.assetBulkActionV2ApiControllerShutdown = exports.assetBulkActionV2ApiControllerReboot = exports.assetActionV2ApiControllerImportPpcToExistingAsset = exports.assetActionV2ApiControllerDisableMaintenance = exports.assetActionV2ApiControllerEnableMaintenance = exports.assetActionV2ApiControllerVersionUpdate = exports.assetActionV2ApiControllerRetrieveLogs = void 0;
18
+ 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.automationHubGenerateTriggerSecret = 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 = exports.investigationDataUsageExportActualDataUsages = exports.investigationDataUsageGetActualDataUsages = exports.eventSubscriptionTestEventSubscription = exports.eventSubscriptionDeleteBulkEventSubscriptions = exports.eventSubscriptionSubscriptionEventNames = exports.eventSubscriptionUpdateEventSubscription = exports.eventSubscriptionGetEventSubscription = exports.eventSubscriptionDeleteEventSubscription = exports.eventSubscriptionCreateEventSubscription = exports.eventSubscriptionFilterEventSubscriptions = exports.webhookDeleteBulk = 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 = exports.imageEvidenceAcquisitionProfilesDelete = exports.imageEvidenceAcquisitionProfilesCreate = exports.imageEvidenceAcquisitionProfilesGetMany = exports.cloudAcquisitionLibraryApiControllerUpdate = exports.cloudAcquisitionLibraryApiControllerGet = exports.cloudAcquisitionLibraryApiControllerDelete = exports.cloudAcquisitionLibraryApiControllerBulkDelete = exports.cloudAcquisitionLibraryApiControllerCreate = exports.cloudAcquisitionLibraryApiControllerList = exports.cloudAcquisitionProfilesUpdate = exports.cloudAcquisitionProfilesGetOne = exports.cloudAcquisitionProfilesDelete = 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: [
@@ -300,33 +346,51 @@ const assetsGetManyByFilter2 = (options) => {
300
346
  });
301
347
  };
302
348
  exports.assetsGetManyByFilter2 = assetsGetManyByFilter2;
303
- const endpointGetEndpointsWithTaskCount = (options) => {
304
- return (options.client ?? client_gen_1.client).get({
349
+ /**
350
+ * Retrieve many assets by expression filter
351
+ * Retrieve a paginated list of assets by a flexible filter expression
352
+ */
353
+ const assetsGetManyByFilterExpression = (options) => {
354
+ return (options.client ?? client_gen_1.client).post({
355
+ responseType: 'json',
305
356
  security: [
306
357
  {
307
358
  scheme: 'bearer',
308
359
  type: 'http'
309
360
  }
310
361
  ],
311
- url: '/api/public/assets/with-task-count',
312
- ...options
362
+ url: '/api/public/endpoints/filter-query',
363
+ ...options,
364
+ headers: {
365
+ 'Content-Type': 'application/json',
366
+ ...options.headers
367
+ }
313
368
  });
314
369
  };
315
- exports.endpointGetEndpointsWithTaskCount = endpointGetEndpointsWithTaskCount;
316
- const endpointGetEndpointsStats0 = (options) => {
317
- return (options.client ?? client_gen_1.client).get({
370
+ exports.assetsGetManyByFilterExpression = assetsGetManyByFilterExpression;
371
+ /**
372
+ * Retrieve many assets by expression filter
373
+ * Retrieve a paginated list of assets by a flexible filter expression
374
+ */
375
+ const assetsGetManyByFilterExpression2 = (options) => {
376
+ return (options.client ?? client_gen_1.client).post({
377
+ responseType: 'json',
318
378
  security: [
319
379
  {
320
380
  scheme: 'bearer',
321
381
  type: 'http'
322
382
  }
323
383
  ],
324
- url: '/api/public/endpoints/stats',
325
- ...options
384
+ url: '/api/public/assets/filter-query',
385
+ ...options,
386
+ headers: {
387
+ 'Content-Type': 'application/json',
388
+ ...options.headers
389
+ }
326
390
  });
327
391
  };
328
- exports.endpointGetEndpointsStats0 = endpointGetEndpointsStats0;
329
- const endpointGetEndpointsStats1 = (options) => {
392
+ exports.assetsGetManyByFilterExpression2 = assetsGetManyByFilterExpression2;
393
+ const endpointGetEndpointsWithTaskCount = (options) => {
330
394
  return (options.client ?? client_gen_1.client).get({
331
395
  security: [
332
396
  {
@@ -334,11 +398,11 @@ const endpointGetEndpointsStats1 = (options) => {
334
398
  type: 'http'
335
399
  }
336
400
  ],
337
- url: '/api/public/assets/stats',
401
+ url: '/api/public/assets/with-task-count',
338
402
  ...options
339
403
  });
340
404
  };
341
- exports.endpointGetEndpointsStats1 = endpointGetEndpointsStats1;
405
+ exports.endpointGetEndpointsWithTaskCount = endpointGetEndpointsWithTaskCount;
342
406
  const endpointGetDeviceNameConflicts0 = (options) => {
343
407
  return (options.client ?? client_gen_1.client).get({
344
408
  security: [
@@ -707,7 +771,7 @@ const assetsSetMitreAttackDatabaseVersion2 = (options) => {
707
771
  };
708
772
  exports.assetsSetMitreAttackDatabaseVersion2 = assetsSetMitreAttackDatabaseVersion2;
709
773
  const endpointFilterDisks0 = (options) => {
710
- return (options.client ?? client_gen_1.client).get({
774
+ return (options.client ?? client_gen_1.client).post({
711
775
  security: [
712
776
  {
713
777
  scheme: 'bearer',
@@ -715,12 +779,16 @@ const endpointFilterDisks0 = (options) => {
715
779
  }
716
780
  ],
717
781
  url: '/api/public/endpoints/disks',
718
- ...options
782
+ ...options,
783
+ headers: {
784
+ 'Content-Type': 'application/json',
785
+ ...options.headers
786
+ }
719
787
  });
720
788
  };
721
789
  exports.endpointFilterDisks0 = endpointFilterDisks0;
722
790
  const endpointFilterDisks1 = (options) => {
723
- return (options.client ?? client_gen_1.client).get({
791
+ return (options.client ?? client_gen_1.client).post({
724
792
  security: [
725
793
  {
726
794
  scheme: 'bearer',
@@ -728,7 +796,11 @@ const endpointFilterDisks1 = (options) => {
728
796
  }
729
797
  ],
730
798
  url: '/api/public/assets/disks',
731
- ...options
799
+ ...options,
800
+ headers: {
801
+ 'Content-Type': 'application/json',
802
+ ...options.headers
803
+ }
732
804
  });
733
805
  };
734
806
  exports.endpointFilterDisks1 = endpointFilterDisks1;
@@ -1058,7 +1130,7 @@ const endpointSetMaintenanceMode1 = (options) => {
1058
1130
  });
1059
1131
  };
1060
1132
  exports.endpointSetMaintenanceMode1 = endpointSetMaintenanceMode1;
1061
- const endpointTagFilterTags = (options) => {
1133
+ const endpointTagFilterAssetTags = (options) => {
1062
1134
  return (options.client ?? client_gen_1.client).get({
1063
1135
  security: [
1064
1136
  {
@@ -1070,8 +1142,25 @@ const endpointTagFilterTags = (options) => {
1070
1142
  ...options
1071
1143
  });
1072
1144
  };
1073
- exports.endpointTagFilterTags = endpointTagFilterTags;
1074
- const endpointTagDeleteAllTags = (options) => {
1145
+ exports.endpointTagFilterAssetTags = endpointTagFilterAssetTags;
1146
+ const endpointTagCreateAssetTag = (options) => {
1147
+ return (options.client ?? client_gen_1.client).post({
1148
+ security: [
1149
+ {
1150
+ scheme: 'bearer',
1151
+ type: 'http'
1152
+ }
1153
+ ],
1154
+ url: '/api/public/asset-tags',
1155
+ ...options,
1156
+ headers: {
1157
+ 'Content-Type': 'application/json',
1158
+ ...options.headers
1159
+ }
1160
+ });
1161
+ };
1162
+ exports.endpointTagCreateAssetTag = endpointTagCreateAssetTag;
1163
+ const endpointTagDeleteAllAssetTags = (options) => {
1075
1164
  return (options?.client ?? client_gen_1.client).delete({
1076
1165
  security: [
1077
1166
  {
@@ -1083,8 +1172,8 @@ const endpointTagDeleteAllTags = (options) => {
1083
1172
  ...options
1084
1173
  });
1085
1174
  };
1086
- exports.endpointTagDeleteAllTags = endpointTagDeleteAllTags;
1087
- const endpointTagDeleteTag = (options) => {
1175
+ exports.endpointTagDeleteAllAssetTags = endpointTagDeleteAllAssetTags;
1176
+ const endpointTagDeleteAssetTag = (options) => {
1088
1177
  return (options?.client ?? client_gen_1.client).delete({
1089
1178
  security: [
1090
1179
  {
@@ -1096,7 +1185,24 @@ const endpointTagDeleteTag = (options) => {
1096
1185
  ...options
1097
1186
  });
1098
1187
  };
1099
- exports.endpointTagDeleteTag = endpointTagDeleteTag;
1188
+ exports.endpointTagDeleteAssetTag = endpointTagDeleteAssetTag;
1189
+ const endpointTagRenameAssetTag = (options) => {
1190
+ return (options.client ?? client_gen_1.client).put({
1191
+ security: [
1192
+ {
1193
+ scheme: 'bearer',
1194
+ type: 'http'
1195
+ }
1196
+ ],
1197
+ url: '/api/public/asset-tags/{organizationId}/{id}',
1198
+ ...options,
1199
+ headers: {
1200
+ 'Content-Type': 'application/json',
1201
+ ...options.headers
1202
+ }
1203
+ });
1204
+ };
1205
+ exports.endpointTagRenameAssetTag = endpointTagRenameAssetTag;
1100
1206
  const endpointGroupGetChildGroupsOfGroup = (options) => {
1101
1207
  return (options?.client ?? client_gen_1.client).get({
1102
1208
  security: [
@@ -1743,7 +1849,7 @@ const taskAssignmentGenerateTaskAssignmentReport = (options) => {
1743
1849
  exports.taskAssignmentGenerateTaskAssignmentReport = taskAssignmentGenerateTaskAssignmentReport;
1744
1850
  /**
1745
1851
  * Get task by id
1746
- * Returns a single task wrapped in entities[0], type-discriminated. 404 leak-safe.
1852
+ * 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}, organizations[{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
1853
  */
1748
1854
  const tasksV2ApiControllerGetTaskById = (options) => {
1749
1855
  return (options.client ?? client_gen_1.client).get({
@@ -1766,6 +1872,7 @@ const tasksV2ApiControllerGetTaskById = (options) => {
1766
1872
  exports.tasksV2ApiControllerGetTaskById = tasksV2ApiControllerGetTaskById;
1767
1873
  /**
1768
1874
  * Update a task (rename + schedule; dryRun query preview)
1875
+ * 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
1876
  */
1770
1877
  const tasksV2ApiControllerUpdateTask = (options) => {
1771
1878
  return (options.client ?? client_gen_1.client).patch({
@@ -1792,7 +1899,7 @@ const tasksV2ApiControllerUpdateTask = (options) => {
1792
1899
  exports.tasksV2ApiControllerUpdateTask = tasksV2ApiControllerUpdateTask;
1793
1900
  /**
1794
1901
  * List a task assets
1795
- * Paginated assets targeted by the task, in the shared GET /v2/assets shape.
1902
+ * 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
1903
  */
1797
1904
  const tasksV2ApiControllerListTaskAssets = (options) => {
1798
1905
  return (options.client ?? client_gen_1.client).get({
@@ -1815,7 +1922,7 @@ const tasksV2ApiControllerListTaskAssets = (options) => {
1815
1922
  exports.tasksV2ApiControllerListTaskAssets = tasksV2ApiControllerListTaskAssets;
1816
1923
  /**
1817
1924
  * List a task assignments
1818
- * Paginated task assignments for the task, with resolved organization and cases.
1925
+ * 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, organizations[{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
1926
  */
1820
1927
  const tasksV2ApiControllerListTaskAssignments = (options) => {
1821
1928
  return (options.client ?? client_gen_1.client).get({
@@ -1838,7 +1945,7 @@ const tasksV2ApiControllerListTaskAssignments = (options) => {
1838
1945
  exports.tasksV2ApiControllerListTaskAssignments = tasksV2ApiControllerListTaskAssignments;
1839
1946
  /**
1840
1947
  * List hunt (triage) tasks
1841
- * Paginated task-centric hunt (triage) list. Also served at /api/v2/triage.
1948
+ * 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
1949
  */
1843
1950
  const tasksTriageV2ApiControllerListHuntTasks = (options) => {
1844
1951
  return (options?.client ?? client_gen_1.client).get({
@@ -1861,6 +1968,7 @@ const tasksTriageV2ApiControllerListHuntTasks = (options) => {
1861
1968
  exports.tasksTriageV2ApiControllerListHuntTasks = tasksTriageV2ApiControllerListHuntTasks;
1862
1969
  /**
1863
1970
  * Bulk cancel hunt (triage) tasks (body dryRun preview)
1971
+ * 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 is opt-in at the API level (defaults to false); the OpenCode tools send dryRun=true by default. 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
1972
  */
1865
1973
  const tasksTriageV2ApiControllerCancel = (options) => {
1866
1974
  return (options.client ?? client_gen_1.client).post({
@@ -1887,6 +1995,7 @@ const tasksTriageV2ApiControllerCancel = (options) => {
1887
1995
  exports.tasksTriageV2ApiControllerCancel = tasksTriageV2ApiControllerCancel;
1888
1996
  /**
1889
1997
  * Bulk delete hunt (triage) tasks (body dryRun preview)
1998
+ * 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 is opt-in at the API level (defaults to false); the OpenCode tools send dryRun=true by default. 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
1999
  */
1891
2000
  const tasksTriageV2ApiControllerDelete = (options) => {
1892
2001
  return (options.client ?? client_gen_1.client).post({
@@ -1913,6 +2022,7 @@ const tasksTriageV2ApiControllerDelete = (options) => {
1913
2022
  exports.tasksTriageV2ApiControllerDelete = tasksTriageV2ApiControllerDelete;
1914
2023
  /**
1915
2024
  * Cancel a single hunt (triage) task (dryRun query preview)
2025
+ * 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
2026
  */
1917
2027
  const tasksTriageV2ApiControllerCancelOne = (options) => {
1918
2028
  return (options.client ?? client_gen_1.client).post({
@@ -1935,6 +2045,7 @@ const tasksTriageV2ApiControllerCancelOne = (options) => {
1935
2045
  exports.tasksTriageV2ApiControllerCancelOne = tasksTriageV2ApiControllerCancelOne;
1936
2046
  /**
1937
2047
  * Delete a single hunt (triage) task (dryRun query preview)
2048
+ * 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 is opt-in at the API level (defaults to false) and is sent as the ?dryRun=true query parameter; the OpenCode tools send it by default. 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
2049
  */
1939
2050
  const tasksTriageV2ApiControllerDeleteOne = (options) => {
1940
2051
  return (options.client ?? client_gen_1.client).post({
@@ -3008,6 +3119,7 @@ const userChangePassword = (options) => {
3008
3119
  exports.userChangePassword = userChangePassword;
3009
3120
  const userResetUserPassword = (options) => {
3010
3121
  return (options.client ?? client_gen_1.client).post({
3122
+ responseType: 'json',
3011
3123
  security: [
3012
3124
  {
3013
3125
  scheme: 'bearer',
@@ -3568,6 +3680,7 @@ const acquisitionValidateOsQueries = (options) => {
3568
3680
  exports.acquisitionValidateOsQueries = acquisitionValidateOsQueries;
3569
3681
  /**
3570
3682
  * List device acquisition profiles
3683
+ * 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, organizations[{id,name}], 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 an empty organizations array are global.
3571
3684
  */
3572
3685
  const acquisitionLibraryDeviceV2ApiControllerList = (options) => {
3573
3686
  return (options?.client ?? client_gen_1.client).get({
@@ -3590,6 +3703,7 @@ const acquisitionLibraryDeviceV2ApiControllerList = (options) => {
3590
3703
  exports.acquisitionLibraryDeviceV2ApiControllerList = acquisitionLibraryDeviceV2ApiControllerList;
3591
3704
  /**
3592
3705
  * Create device acquisition profile
3706
+ * 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. Body `organizationIds` controls which organizations own the profile; common query `organizations`, `orgs`, and `org` parameters are rejected. 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
3707
  */
3594
3708
  const acquisitionLibraryDeviceV2ApiControllerCreate = (options) => {
3595
3709
  return (options.client ?? client_gen_1.client).post({
@@ -3616,6 +3730,7 @@ const acquisitionLibraryDeviceV2ApiControllerCreate = (options) => {
3616
3730
  exports.acquisitionLibraryDeviceV2ApiControllerCreate = acquisitionLibraryDeviceV2ApiControllerCreate;
3617
3731
  /**
3618
3732
  * Bulk delete device acquisition profiles
3733
+ * 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
3734
  */
3620
3735
  const acquisitionLibraryDeviceV2ApiControllerBulkDelete = (options) => {
3621
3736
  return (options.client ?? client_gen_1.client).post({
@@ -3642,6 +3757,7 @@ const acquisitionLibraryDeviceV2ApiControllerBulkDelete = (options) => {
3642
3757
  exports.acquisitionLibraryDeviceV2ApiControllerBulkDelete = acquisitionLibraryDeviceV2ApiControllerBulkDelete;
3643
3758
  /**
3644
3759
  * Delete device acquisition profile
3760
+ * 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
3761
  */
3646
3762
  const acquisitionLibraryDeviceV2ApiControllerDelete = (options) => {
3647
3763
  return (options.client ?? client_gen_1.client).delete({
@@ -3664,6 +3780,7 @@ const acquisitionLibraryDeviceV2ApiControllerDelete = (options) => {
3664
3780
  exports.acquisitionLibraryDeviceV2ApiControllerDelete = acquisitionLibraryDeviceV2ApiControllerDelete;
3665
3781
  /**
3666
3782
  * Get device acquisition profile by id or name
3783
+ * 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, organizations[{id,name}], 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
3784
  */
3668
3785
  const acquisitionLibraryDeviceV2ApiControllerGet = (options) => {
3669
3786
  return (options.client ?? client_gen_1.client).get({
@@ -3686,6 +3803,7 @@ const acquisitionLibraryDeviceV2ApiControllerGet = (options) => {
3686
3803
  exports.acquisitionLibraryDeviceV2ApiControllerGet = acquisitionLibraryDeviceV2ApiControllerGet;
3687
3804
  /**
3688
3805
  * Update device acquisition profile
3806
+ * 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
3807
  */
3690
3808
  const acquisitionLibraryDeviceV2ApiControllerUpdate = (options) => {
3691
3809
  return (options.client ?? client_gen_1.client).patch({
@@ -3845,6 +3963,23 @@ const gitRepositoriesTriggerSync = (options) => {
3845
3963
  });
3846
3964
  };
3847
3965
  exports.gitRepositoriesTriggerSync = gitRepositoriesTriggerSync;
3966
+ /**
3967
+ * Cancel repository sync
3968
+ * Cancel an in-progress synchronization for the specified repository connection
3969
+ */
3970
+ const gitRepositoriesCancelSync = (options) => {
3971
+ return (options.client ?? client_gen_1.client).post({
3972
+ security: [
3973
+ {
3974
+ scheme: 'bearer',
3975
+ type: 'http'
3976
+ }
3977
+ ],
3978
+ url: '/api/public/git-repositories/{id}/sync/cancel',
3979
+ ...options
3980
+ });
3981
+ };
3982
+ exports.gitRepositoriesCancelSync = gitRepositoriesCancelSync;
3848
3983
  /**
3849
3984
  * Get sync logs for a repository connection
3850
3985
  * Retrieve the synchronization history for a specific repository connection
@@ -3858,7 +3993,7 @@ const gitRepositoriesGetSyncLogs = (options) => {
3858
3993
  type: 'http'
3859
3994
  }
3860
3995
  ],
3861
- url: '/api/public/git-repositories/{id}/sync-logs',
3996
+ url: '/api/public/git-repositories/{id}/sync/logs',
3862
3997
  ...options
3863
3998
  });
3864
3999
  };
@@ -3928,10 +4063,10 @@ const gitRepositoriesGetRepositoryBranches = (options) => {
3928
4063
  };
3929
4064
  exports.gitRepositoriesGetRepositoryBranches = gitRepositoriesGetRepositoryBranches;
3930
4065
  /**
3931
- * Get Many
3932
- * Retrieve a paginated list of triage rules
4066
+ * Filter TAXII feeds
4067
+ * Retrieve all TAXII feeds with optional filters
3933
4068
  */
3934
- const getManyTriageRules = (options) => {
4069
+ const taxiiFeedsGetMany = (options) => {
3935
4070
  return (options.client ?? client_gen_1.client).get({
3936
4071
  responseType: 'json',
3937
4072
  security: [
@@ -3940,16 +4075,16 @@ const getManyTriageRules = (options) => {
3940
4075
  type: 'http'
3941
4076
  }
3942
4077
  ],
3943
- url: '/api/public/triages/rules',
4078
+ url: '/api/public/taxii-feeds',
3944
4079
  ...options
3945
4080
  });
3946
4081
  };
3947
- exports.getManyTriageRules = getManyTriageRules;
4082
+ exports.taxiiFeedsGetMany = taxiiFeedsGetMany;
3948
4083
  /**
3949
- * Create Triage Rule
3950
- * Create a new triage rule that defines conditions and criteria
4084
+ * Create a new TAXII feed
4085
+ * Create a new TAXII feed for syncing threat intelligence indicators
3951
4086
  */
3952
- const createTriageRule = (options) => {
4087
+ const taxiiFeedsCreate = (options) => {
3953
4088
  return (options.client ?? client_gen_1.client).post({
3954
4089
  responseType: 'json',
3955
4090
  security: [
@@ -3958,7 +4093,7 @@ const createTriageRule = (options) => {
3958
4093
  type: 'http'
3959
4094
  }
3960
4095
  ],
3961
- url: '/api/public/triages/rules',
4096
+ url: '/api/public/taxii-feeds',
3962
4097
  ...options,
3963
4098
  headers: {
3964
4099
  'Content-Type': 'application/json',
@@ -3966,12 +4101,46 @@ const createTriageRule = (options) => {
3966
4101
  }
3967
4102
  });
3968
4103
  };
3969
- exports.createTriageRule = createTriageRule;
4104
+ exports.taxiiFeedsCreate = taxiiFeedsCreate;
3970
4105
  /**
3971
- * Delete Triage Rule
3972
- * Permanently delete a triage rule from the system
4106
+ * Filter TAXII indicators
4107
+ * Retrieve all indicators across TAXII feeds with optional filters
3973
4108
  */
3974
- const deleteTriageRule = (options) => {
4109
+ const taxiiFeedsGetIndicators = (options) => {
4110
+ return (options.client ?? client_gen_1.client).get({
4111
+ security: [
4112
+ {
4113
+ scheme: 'bearer',
4114
+ type: 'http'
4115
+ }
4116
+ ],
4117
+ url: '/api/public/taxii-feeds/indicators',
4118
+ ...options
4119
+ });
4120
+ };
4121
+ exports.taxiiFeedsGetIndicators = taxiiFeedsGetIndicators;
4122
+ /**
4123
+ * Get TAXII indicator summary
4124
+ * Retrieve aggregated statistics for indicators across TAXII feeds
4125
+ */
4126
+ const taxiiFeedsGetIndicatorSummary = (options) => {
4127
+ return (options.client ?? client_gen_1.client).get({
4128
+ security: [
4129
+ {
4130
+ scheme: 'bearer',
4131
+ type: 'http'
4132
+ }
4133
+ ],
4134
+ url: '/api/public/taxii-feeds/indicators/summary',
4135
+ ...options
4136
+ });
4137
+ };
4138
+ exports.taxiiFeedsGetIndicatorSummary = taxiiFeedsGetIndicatorSummary;
4139
+ /**
4140
+ * Delete a TAXII feed
4141
+ * Delete an existing TAXII feed by ID
4142
+ */
4143
+ const taxiiFeedsDelete = (options) => {
3975
4144
  return (options.client ?? client_gen_1.client).delete({
3976
4145
  security: [
3977
4146
  {
@@ -3979,16 +4148,16 @@ const deleteTriageRule = (options) => {
3979
4148
  type: 'http'
3980
4149
  }
3981
4150
  ],
3982
- url: '/api/public/triages/rules/{id}',
4151
+ url: '/api/public/taxii-feeds/{id}',
3983
4152
  ...options
3984
4153
  });
3985
4154
  };
3986
- exports.deleteTriageRule = deleteTriageRule;
4155
+ exports.taxiiFeedsDelete = taxiiFeedsDelete;
3987
4156
  /**
3988
- * Get
3989
- * Retrieve detailed information about a specific triage rule by its ID
4157
+ * Get TAXII feed by ID
4158
+ * Retrieve a specific TAXII feed
3990
4159
  */
3991
- const getTriageRule = (options) => {
4160
+ const taxiiFeedsGetOne = (options) => {
3992
4161
  return (options.client ?? client_gen_1.client).get({
3993
4162
  responseType: 'json',
3994
4163
  security: [
@@ -3997,16 +4166,16 @@ const getTriageRule = (options) => {
3997
4166
  type: 'http'
3998
4167
  }
3999
4168
  ],
4000
- url: '/api/public/triages/rules/{id}',
4169
+ url: '/api/public/taxii-feeds/{id}',
4001
4170
  ...options
4002
4171
  });
4003
4172
  };
4004
- exports.getTriageRule = getTriageRule;
4173
+ exports.taxiiFeedsGetOne = taxiiFeedsGetOne;
4005
4174
  /**
4006
- * Update Triage Rule
4007
- * Update an existing triage rule by modifying its conditions
4175
+ * Update a TAXII feed
4176
+ * Update an existing TAXII feed configuration
4008
4177
  */
4009
- const updateTriageRule = (options) => {
4178
+ const taxiiFeedsUpdate = (options) => {
4010
4179
  return (options.client ?? client_gen_1.client).put({
4011
4180
  responseType: 'json',
4012
4181
  security: [
@@ -4015,7 +4184,7 @@ const updateTriageRule = (options) => {
4015
4184
  type: 'http'
4016
4185
  }
4017
4186
  ],
4018
- url: '/api/public/triages/rules/{id}',
4187
+ url: '/api/public/taxii-feeds/{id}',
4019
4188
  ...options,
4020
4189
  headers: {
4021
4190
  'Content-Type': 'application/json',
@@ -4023,42 +4192,38 @@ const updateTriageRule = (options) => {
4023
4192
  }
4024
4193
  });
4025
4194
  };
4026
- exports.updateTriageRule = updateTriageRule;
4195
+ exports.taxiiFeedsUpdate = taxiiFeedsUpdate;
4027
4196
  /**
4028
- * Delete Triage Rule Bulk
4029
- * Permanently delete a triage rules from the system
4197
+ * Get sync logs for a TAXII feed
4198
+ * Retrieve the synchronization history for a specific TAXII feed
4030
4199
  */
4031
- const deleteBulkTriageRules = (options) => {
4032
- return (options.client ?? client_gen_1.client).delete({
4200
+ const taxiiFeedsGetSyncLogs = (options) => {
4201
+ return (options.client ?? client_gen_1.client).get({
4202
+ responseType: 'json',
4033
4203
  security: [
4034
4204
  {
4035
4205
  scheme: 'bearer',
4036
4206
  type: 'http'
4037
4207
  }
4038
4208
  ],
4039
- url: '/api/public/triages/rules/bulk-delete',
4040
- ...options,
4041
- headers: {
4042
- 'Content-Type': 'application/json',
4043
- ...options.headers
4044
- }
4209
+ url: '/api/public/taxii-feeds/{id}/sync/logs',
4210
+ ...options
4045
4211
  });
4046
4212
  };
4047
- exports.deleteBulkTriageRules = deleteBulkTriageRules;
4213
+ exports.taxiiFeedsGetSyncLogs = taxiiFeedsGetSyncLogs;
4048
4214
  /**
4049
- * Validate Triage Rule
4050
- * Validate the syntax and structure of a triage rule
4215
+ * Discover TAXII collections
4216
+ * Connect to a TAXII server and list the collections available for subscription
4051
4217
  */
4052
- const validateTriageRule = (options) => {
4218
+ const taxiiFeedsDiscoverCollections = (options) => {
4053
4219
  return (options.client ?? client_gen_1.client).post({
4054
- responseType: 'json',
4055
4220
  security: [
4056
4221
  {
4057
4222
  scheme: 'bearer',
4058
4223
  type: 'http'
4059
4224
  }
4060
4225
  ],
4061
- url: '/api/public/triages/rules/validate',
4226
+ url: '/api/public/taxii-feeds/discover',
4062
4227
  ...options,
4063
4228
  headers: {
4064
4229
  'Content-Type': 'application/json',
@@ -4066,42 +4231,54 @@ const validateTriageRule = (options) => {
4066
4231
  }
4067
4232
  });
4068
4233
  };
4069
- exports.validateTriageRule = validateTriageRule;
4234
+ exports.taxiiFeedsDiscoverCollections = taxiiFeedsDiscoverCollections;
4070
4235
  /**
4071
- * Assign Triage Task
4072
- * Assign and execute triage tasks on filtered endpoints
4236
+ * Trigger TAXII feed sync
4237
+ * Manually trigger a synchronization for the specified TAXII feed
4073
4238
  */
4074
- const assignTriageTask = (options) => {
4239
+ const taxiiFeedsTriggerSync = (options) => {
4075
4240
  return (options.client ?? client_gen_1.client).post({
4076
- responseType: 'json',
4077
4241
  security: [
4078
4242
  {
4079
4243
  scheme: 'bearer',
4080
4244
  type: 'http'
4081
4245
  }
4082
4246
  ],
4083
- url: '/api/public/triages/triage',
4084
- ...options,
4085
- headers: {
4086
- 'Content-Type': 'application/json',
4087
- ...options.headers
4088
- }
4247
+ url: '/api/public/taxii-feeds/{id}/sync',
4248
+ ...options
4089
4249
  });
4090
4250
  };
4091
- exports.assignTriageTask = assignTriageTask;
4251
+ exports.taxiiFeedsTriggerSync = taxiiFeedsTriggerSync;
4092
4252
  /**
4093
- * Update Scheduled Triage Task
4094
- * Update a scheduled triage task
4253
+ * Cancel TAXII feed sync
4254
+ * Cancel an in-progress synchronization for the specified TAXII feed
4095
4255
  */
4096
- const updateScheduledTriageTask = (options) => {
4097
- return (options.client ?? client_gen_1.client).put({
4256
+ const taxiiFeedsCancelSync = (options) => {
4257
+ return (options.client ?? client_gen_1.client).post({
4098
4258
  security: [
4099
4259
  {
4100
4260
  scheme: 'bearer',
4101
4261
  type: 'http'
4102
4262
  }
4103
4263
  ],
4104
- url: '/api/public/triages/schedule/triage/{id}',
4264
+ url: '/api/public/taxii-feeds/{id}/sync/cancel',
4265
+ ...options
4266
+ });
4267
+ };
4268
+ exports.taxiiFeedsCancelSync = taxiiFeedsCancelSync;
4269
+ /**
4270
+ * Enable or disable a TAXII feed
4271
+ * Toggle the active state of a TAXII feed
4272
+ */
4273
+ const taxiiFeedsUpdateStatus = (options) => {
4274
+ return (options.client ?? client_gen_1.client).patch({
4275
+ security: [
4276
+ {
4277
+ scheme: 'bearer',
4278
+ type: 'http'
4279
+ }
4280
+ ],
4281
+ url: '/api/public/taxii-feeds/{id}/update-status',
4105
4282
  ...options,
4106
4283
  headers: {
4107
4284
  'Content-Type': 'application/json',
@@ -4109,21 +4286,20 @@ const updateScheduledTriageTask = (options) => {
4109
4286
  }
4110
4287
  });
4111
4288
  };
4112
- exports.updateScheduledTriageTask = updateScheduledTriageTask;
4289
+ exports.taxiiFeedsUpdateStatus = taxiiFeedsUpdateStatus;
4113
4290
  /**
4114
- * Create Off Network Triage Task File
4115
- * Create a triage task file for off network access
4291
+ * Delete multiple TAXII feeds
4292
+ * Delete multiple TAXII feeds by their IDs
4116
4293
  */
4117
- const createOffNetworkTriageTaskFile = (options) => {
4118
- return (options.client ?? client_gen_1.client).post({
4119
- responseType: 'json',
4294
+ const taxiiFeedsBulkDelete = (options) => {
4295
+ return (options.client ?? client_gen_1.client).delete({
4120
4296
  security: [
4121
4297
  {
4122
4298
  scheme: 'bearer',
4123
4299
  type: 'http'
4124
4300
  }
4125
4301
  ],
4126
- url: '/api/public/triages/triage/off-network',
4302
+ url: '/api/public/taxii-feeds/bulk-delete',
4127
4303
  ...options,
4128
4304
  headers: {
4129
4305
  'Content-Type': 'application/json',
@@ -4131,12 +4307,12 @@ const createOffNetworkTriageTaskFile = (options) => {
4131
4307
  }
4132
4308
  });
4133
4309
  };
4134
- exports.createOffNetworkTriageTaskFile = createOffNetworkTriageTaskFile;
4310
+ exports.taxiiFeedsBulkDelete = taxiiFeedsBulkDelete;
4135
4311
  /**
4136
- * Filter Triage Rule Tags
4137
- * Filter triage rule tags
4312
+ * Get Many
4313
+ * Retrieve a paginated list of triage rules
4138
4314
  */
4139
- const filterTriageRuleTags = (options) => {
4315
+ const getManyTriageRules = (options) => {
4140
4316
  return (options.client ?? client_gen_1.client).get({
4141
4317
  responseType: 'json',
4142
4318
  security: [
@@ -4145,16 +4321,16 @@ const filterTriageRuleTags = (options) => {
4145
4321
  type: 'http'
4146
4322
  }
4147
4323
  ],
4148
- url: '/api/public/triages/tags',
4324
+ url: '/api/public/triages/rules',
4149
4325
  ...options
4150
4326
  });
4151
4327
  };
4152
- exports.filterTriageRuleTags = filterTriageRuleTags;
4328
+ exports.getManyTriageRules = getManyTriageRules;
4153
4329
  /**
4154
- * Create Triage Rule Tag
4155
- * Create a new triage rule tag
4330
+ * Create Triage Rule
4331
+ * Create a new triage rule that defines conditions and criteria
4156
4332
  */
4157
- const createTriageRuleTag = (options) => {
4333
+ const createTriageRule = (options) => {
4158
4334
  return (options.client ?? client_gen_1.client).post({
4159
4335
  responseType: 'json',
4160
4336
  security: [
@@ -4163,7 +4339,7 @@ const createTriageRuleTag = (options) => {
4163
4339
  type: 'http'
4164
4340
  }
4165
4341
  ],
4166
- url: '/api/public/triages/tags',
4342
+ url: '/api/public/triages/rules',
4167
4343
  ...options,
4168
4344
  headers: {
4169
4345
  'Content-Type': 'application/json',
@@ -4171,12 +4347,217 @@ const createTriageRuleTag = (options) => {
4171
4347
  }
4172
4348
  });
4173
4349
  };
4174
- exports.createTriageRuleTag = createTriageRuleTag;
4350
+ exports.createTriageRule = createTriageRule;
4175
4351
  /**
4176
- * Delete Triage Rule Tag
4177
- * Delete a triage rule tag
4352
+ * Delete Triage Rule
4353
+ * Permanently delete a triage rule from the system
4178
4354
  */
4179
- const deleteTriageRuleTag = (options) => {
4355
+ const deleteTriageRule = (options) => {
4356
+ return (options.client ?? client_gen_1.client).delete({
4357
+ security: [
4358
+ {
4359
+ scheme: 'bearer',
4360
+ type: 'http'
4361
+ }
4362
+ ],
4363
+ url: '/api/public/triages/rules/{id}',
4364
+ ...options
4365
+ });
4366
+ };
4367
+ exports.deleteTriageRule = deleteTriageRule;
4368
+ /**
4369
+ * Get
4370
+ * Retrieve detailed information about a specific triage rule by its ID
4371
+ */
4372
+ const getTriageRule = (options) => {
4373
+ return (options.client ?? client_gen_1.client).get({
4374
+ responseType: 'json',
4375
+ security: [
4376
+ {
4377
+ scheme: 'bearer',
4378
+ type: 'http'
4379
+ }
4380
+ ],
4381
+ url: '/api/public/triages/rules/{id}',
4382
+ ...options
4383
+ });
4384
+ };
4385
+ exports.getTriageRule = getTriageRule;
4386
+ /**
4387
+ * Update Triage Rule
4388
+ * Update an existing triage rule by modifying its conditions
4389
+ */
4390
+ const updateTriageRule = (options) => {
4391
+ return (options.client ?? client_gen_1.client).put({
4392
+ responseType: 'json',
4393
+ security: [
4394
+ {
4395
+ scheme: 'bearer',
4396
+ type: 'http'
4397
+ }
4398
+ ],
4399
+ url: '/api/public/triages/rules/{id}',
4400
+ ...options,
4401
+ headers: {
4402
+ 'Content-Type': 'application/json',
4403
+ ...options.headers
4404
+ }
4405
+ });
4406
+ };
4407
+ exports.updateTriageRule = updateTriageRule;
4408
+ /**
4409
+ * Delete Triage Rule Bulk
4410
+ * Permanently delete a triage rules from the system
4411
+ */
4412
+ const deleteBulkTriageRules = (options) => {
4413
+ return (options.client ?? client_gen_1.client).delete({
4414
+ security: [
4415
+ {
4416
+ scheme: 'bearer',
4417
+ type: 'http'
4418
+ }
4419
+ ],
4420
+ url: '/api/public/triages/rules/bulk-delete',
4421
+ ...options,
4422
+ headers: {
4423
+ 'Content-Type': 'application/json',
4424
+ ...options.headers
4425
+ }
4426
+ });
4427
+ };
4428
+ exports.deleteBulkTriageRules = deleteBulkTriageRules;
4429
+ /**
4430
+ * Validate Triage Rule
4431
+ * Validate the syntax and structure of a triage rule
4432
+ */
4433
+ const validateTriageRule = (options) => {
4434
+ return (options.client ?? client_gen_1.client).post({
4435
+ responseType: 'json',
4436
+ security: [
4437
+ {
4438
+ scheme: 'bearer',
4439
+ type: 'http'
4440
+ }
4441
+ ],
4442
+ url: '/api/public/triages/rules/validate',
4443
+ ...options,
4444
+ headers: {
4445
+ 'Content-Type': 'application/json',
4446
+ ...options.headers
4447
+ }
4448
+ });
4449
+ };
4450
+ exports.validateTriageRule = validateTriageRule;
4451
+ /**
4452
+ * Assign Triage Task
4453
+ * Assign and execute triage tasks on filtered endpoints
4454
+ */
4455
+ const assignTriageTask = (options) => {
4456
+ return (options.client ?? client_gen_1.client).post({
4457
+ responseType: 'json',
4458
+ security: [
4459
+ {
4460
+ scheme: 'bearer',
4461
+ type: 'http'
4462
+ }
4463
+ ],
4464
+ url: '/api/public/triages/triage',
4465
+ ...options,
4466
+ headers: {
4467
+ 'Content-Type': 'application/json',
4468
+ ...options.headers
4469
+ }
4470
+ });
4471
+ };
4472
+ exports.assignTriageTask = assignTriageTask;
4473
+ /**
4474
+ * Update Scheduled Triage Task
4475
+ * Update a scheduled triage task
4476
+ */
4477
+ const updateScheduledTriageTask = (options) => {
4478
+ return (options.client ?? client_gen_1.client).put({
4479
+ security: [
4480
+ {
4481
+ scheme: 'bearer',
4482
+ type: 'http'
4483
+ }
4484
+ ],
4485
+ url: '/api/public/triages/schedule/triage/{id}',
4486
+ ...options,
4487
+ headers: {
4488
+ 'Content-Type': 'application/json',
4489
+ ...options.headers
4490
+ }
4491
+ });
4492
+ };
4493
+ exports.updateScheduledTriageTask = updateScheduledTriageTask;
4494
+ /**
4495
+ * Create Off Network Triage Task File
4496
+ * Create a triage task file for off network access
4497
+ */
4498
+ const createOffNetworkTriageTaskFile = (options) => {
4499
+ return (options.client ?? client_gen_1.client).post({
4500
+ responseType: 'json',
4501
+ security: [
4502
+ {
4503
+ scheme: 'bearer',
4504
+ type: 'http'
4505
+ }
4506
+ ],
4507
+ url: '/api/public/triages/triage/off-network',
4508
+ ...options,
4509
+ headers: {
4510
+ 'Content-Type': 'application/json',
4511
+ ...options.headers
4512
+ }
4513
+ });
4514
+ };
4515
+ exports.createOffNetworkTriageTaskFile = createOffNetworkTriageTaskFile;
4516
+ /**
4517
+ * Filter Triage Rule Tags
4518
+ * Filter triage rule tags
4519
+ */
4520
+ const filterTriageRuleTags = (options) => {
4521
+ return (options.client ?? client_gen_1.client).get({
4522
+ responseType: 'json',
4523
+ security: [
4524
+ {
4525
+ scheme: 'bearer',
4526
+ type: 'http'
4527
+ }
4528
+ ],
4529
+ url: '/api/public/triages/tags',
4530
+ ...options
4531
+ });
4532
+ };
4533
+ exports.filterTriageRuleTags = filterTriageRuleTags;
4534
+ /**
4535
+ * Create Triage Rule Tag
4536
+ * Create a new triage rule tag
4537
+ */
4538
+ const createTriageRuleTag = (options) => {
4539
+ return (options.client ?? client_gen_1.client).post({
4540
+ responseType: 'json',
4541
+ security: [
4542
+ {
4543
+ scheme: 'bearer',
4544
+ type: 'http'
4545
+ }
4546
+ ],
4547
+ url: '/api/public/triages/tags',
4548
+ ...options,
4549
+ headers: {
4550
+ 'Content-Type': 'application/json',
4551
+ ...options.headers
4552
+ }
4553
+ });
4554
+ };
4555
+ exports.createTriageRuleTag = createTriageRuleTag;
4556
+ /**
4557
+ * Delete Triage Rule Tag
4558
+ * Delete a triage rule tag
4559
+ */
4560
+ const deleteTriageRuleTag = (options) => {
4180
4561
  return (options.client ?? client_gen_1.client).delete({
4181
4562
  security: [
4182
4563
  {
@@ -4191,6 +4572,7 @@ const deleteTriageRuleTag = (options) => {
4191
4572
  exports.deleteTriageRuleTag = deleteTriageRuleTag;
4192
4573
  /**
4193
4574
  * List triage rules
4575
+ * 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
4576
  */
4195
4577
  const triageLibraryV2ApiControllerList = (options) => {
4196
4578
  return (options?.client ?? client_gen_1.client).get({
@@ -4213,6 +4595,7 @@ const triageLibraryV2ApiControllerList = (options) => {
4213
4595
  exports.triageLibraryV2ApiControllerList = triageLibraryV2ApiControllerList;
4214
4596
  /**
4215
4597
  * Create triage rule
4598
+ * 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
4599
  */
4217
4600
  const triageLibraryV2ApiControllerCreate = (options) => {
4218
4601
  return (options.client ?? client_gen_1.client).post({
@@ -4239,6 +4622,7 @@ const triageLibraryV2ApiControllerCreate = (options) => {
4239
4622
  exports.triageLibraryV2ApiControllerCreate = triageLibraryV2ApiControllerCreate;
4240
4623
  /**
4241
4624
  * Bulk delete triage rules
4625
+ * 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
4626
  */
4243
4627
  const triageLibraryV2ApiControllerBulkDelete = (options) => {
4244
4628
  return (options.client ?? client_gen_1.client).post({
@@ -4265,6 +4649,7 @@ const triageLibraryV2ApiControllerBulkDelete = (options) => {
4265
4649
  exports.triageLibraryV2ApiControllerBulkDelete = triageLibraryV2ApiControllerBulkDelete;
4266
4650
  /**
4267
4651
  * Validate triage rule
4652
+ * 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
4653
  */
4269
4654
  const triageLibraryV2ApiControllerValidate = (options) => {
4270
4655
  return (options.client ?? client_gen_1.client).post({
@@ -4291,6 +4676,7 @@ const triageLibraryV2ApiControllerValidate = (options) => {
4291
4676
  exports.triageLibraryV2ApiControllerValidate = triageLibraryV2ApiControllerValidate;
4292
4677
  /**
4293
4678
  * Delete triage rule
4679
+ * 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
4680
  */
4295
4681
  const triageLibraryV2ApiControllerDelete = (options) => {
4296
4682
  return (options.client ?? client_gen_1.client).delete({
@@ -4313,6 +4699,7 @@ const triageLibraryV2ApiControllerDelete = (options) => {
4313
4699
  exports.triageLibraryV2ApiControllerDelete = triageLibraryV2ApiControllerDelete;
4314
4700
  /**
4315
4701
  * Get triage rule by id or name
4702
+ * 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
4703
  */
4317
4704
  const triageLibraryV2ApiControllerGet = (options) => {
4318
4705
  return (options.client ?? client_gen_1.client).get({
@@ -4335,6 +4722,7 @@ const triageLibraryV2ApiControllerGet = (options) => {
4335
4722
  exports.triageLibraryV2ApiControllerGet = triageLibraryV2ApiControllerGet;
4336
4723
  /**
4337
4724
  * Update triage rule
4725
+ * 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
4726
  */
4339
4727
  const triageLibraryV2ApiControllerUpdate = (options) => {
4340
4728
  return (options.client ?? client_gen_1.client).patch({
@@ -4361,6 +4749,7 @@ const triageLibraryV2ApiControllerUpdate = (options) => {
4361
4749
  exports.triageLibraryV2ApiControllerUpdate = triageLibraryV2ApiControllerUpdate;
4362
4750
  /**
4363
4751
  * Export triage rules to an off-network package
4752
+ * 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
4753
  */
4365
4754
  const triageLibraryExportV2ApiControllerExport = (options) => {
4366
4755
  return (options.client ?? client_gen_1.client).post({
@@ -4387,6 +4776,7 @@ const triageLibraryExportV2ApiControllerExport = (options) => {
4387
4776
  exports.triageLibraryExportV2ApiControllerExport = triageLibraryExportV2ApiControllerExport;
4388
4777
  /**
4389
4778
  * Download an exported off-network package
4779
+ * 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
4780
  */
4391
4781
  const triageLibraryExportV2ApiControllerDownload = (options) => {
4392
4782
  return (options.client ?? client_gen_1.client).get({
@@ -4873,6 +5263,57 @@ const evidenceRepositoryUpdateGoogleCloudStorage = (options) => {
4873
5263
  });
4874
5264
  };
4875
5265
  exports.evidenceRepositoryUpdateGoogleCloudStorage = evidenceRepositoryUpdateGoogleCloudStorage;
5266
+ const evidenceRepositoryValidateBox = (options) => {
5267
+ return (options.client ?? client_gen_1.client).post({
5268
+ security: [
5269
+ {
5270
+ scheme: 'bearer',
5271
+ type: 'http'
5272
+ }
5273
+ ],
5274
+ url: '/api/public/evidences/repositories/validate/box',
5275
+ ...options,
5276
+ headers: {
5277
+ 'Content-Type': 'application/json',
5278
+ ...options.headers
5279
+ }
5280
+ });
5281
+ };
5282
+ exports.evidenceRepositoryValidateBox = evidenceRepositoryValidateBox;
5283
+ const evidenceRepositoryCreateBox = (options) => {
5284
+ return (options.client ?? client_gen_1.client).post({
5285
+ security: [
5286
+ {
5287
+ scheme: 'bearer',
5288
+ type: 'http'
5289
+ }
5290
+ ],
5291
+ url: '/api/public/evidences/repositories/box',
5292
+ ...options,
5293
+ headers: {
5294
+ 'Content-Type': 'application/json',
5295
+ ...options.headers
5296
+ }
5297
+ });
5298
+ };
5299
+ exports.evidenceRepositoryCreateBox = evidenceRepositoryCreateBox;
5300
+ const evidenceRepositoryUpdateBox = (options) => {
5301
+ return (options.client ?? client_gen_1.client).put({
5302
+ security: [
5303
+ {
5304
+ scheme: 'bearer',
5305
+ type: 'http'
5306
+ }
5307
+ ],
5308
+ url: '/api/public/evidences/repositories/box/{id}',
5309
+ ...options,
5310
+ headers: {
5311
+ 'Content-Type': 'application/json',
5312
+ ...options.headers
5313
+ }
5314
+ });
5315
+ };
5316
+ exports.evidenceRepositoryUpdateBox = evidenceRepositoryUpdateBox;
4876
5317
  const notificationDeleteAll = (options) => {
4877
5318
  return (options?.client ?? client_gen_1.client).delete({
4878
5319
  security: [
@@ -5598,18 +6039,583 @@ const autoAssetTagUpdateScheduledAatTask = (options) => {
5598
6039
  };
5599
6040
  exports.autoAssetTagUpdateScheduledAatTask = autoAssetTagUpdateScheduledAatTask;
5600
6041
  /**
5601
- * Check if a case name is available
5602
- * Validates whether a given case name is exists
6042
+ * List case activities across visible cases
6043
+ * 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
6044
  */
5604
- const casesCheckName = (options) => {
5605
- return (options.client ?? client_gen_1.client).get({
6045
+ const caseActivityV2ApiControllerFilterGlobalActivities = (options) => {
6046
+ return (options?.client ?? client_gen_1.client).get({
5606
6047
  responseType: 'json',
5607
6048
  security: [
5608
6049
  {
5609
- scheme: 'bearer',
5610
- type: 'http'
5611
- }
5612
- ],
6050
+ in: 'cookie',
6051
+ name: 'Authentication',
6052
+ type: 'apiKey'
6053
+ },
6054
+ {
6055
+ scheme: 'bearer',
6056
+ type: 'http'
6057
+ }
6058
+ ],
6059
+ url: '/api/v2/cases/activities',
6060
+ ...options
6061
+ });
6062
+ };
6063
+ exports.caseActivityV2ApiControllerFilterGlobalActivities = caseActivityV2ApiControllerFilterGlobalActivities;
6064
+ /**
6065
+ * List activities for case
6066
+ * 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.
6067
+ */
6068
+ const caseActivityV2ApiControllerFilterCaseActivities = (options) => {
6069
+ return (options.client ?? client_gen_1.client).get({
6070
+ responseType: 'json',
6071
+ security: [
6072
+ {
6073
+ in: 'cookie',
6074
+ name: 'Authentication',
6075
+ type: 'apiKey'
6076
+ },
6077
+ {
6078
+ scheme: 'bearer',
6079
+ type: 'http'
6080
+ }
6081
+ ],
6082
+ url: '/api/v2/cases/{idOrName}/activities',
6083
+ ...options
6084
+ });
6085
+ };
6086
+ exports.caseActivityV2ApiControllerFilterCaseActivities = caseActivityV2ApiControllerFilterCaseActivities;
6087
+ /**
6088
+ * Export cases
6089
+ * 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.
6090
+ */
6091
+ const caseExportV2ApiControllerExportCases = (options) => {
6092
+ return (options?.client ?? client_gen_1.client).get({
6093
+ responseType: 'text',
6094
+ security: [
6095
+ {
6096
+ in: 'cookie',
6097
+ name: 'Authentication',
6098
+ type: 'apiKey'
6099
+ },
6100
+ {
6101
+ scheme: 'bearer',
6102
+ type: 'http'
6103
+ }
6104
+ ],
6105
+ url: '/api/v2/cases/export',
6106
+ ...options
6107
+ });
6108
+ };
6109
+ exports.caseExportV2ApiControllerExportCases = caseExportV2ApiControllerExportCases;
6110
+ /**
6111
+ * Close cases in bulk
6112
+ * 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.
6113
+ */
6114
+ const caseBulkActionV2ApiControllerClose = (options) => {
6115
+ return (options.client ?? client_gen_1.client).post({
6116
+ responseType: 'json',
6117
+ security: [
6118
+ {
6119
+ in: 'cookie',
6120
+ name: 'Authentication',
6121
+ type: 'apiKey'
6122
+ },
6123
+ {
6124
+ scheme: 'bearer',
6125
+ type: 'http'
6126
+ }
6127
+ ],
6128
+ url: '/api/v2/cases/close',
6129
+ ...options,
6130
+ headers: {
6131
+ 'Content-Type': 'application/json',
6132
+ ...options.headers
6133
+ }
6134
+ });
6135
+ };
6136
+ exports.caseBulkActionV2ApiControllerClose = caseBulkActionV2ApiControllerClose;
6137
+ /**
6138
+ * Archive cases in bulk
6139
+ * 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.
6140
+ */
6141
+ const caseBulkActionV2ApiControllerArchive = (options) => {
6142
+ return (options.client ?? client_gen_1.client).post({
6143
+ responseType: 'json',
6144
+ security: [
6145
+ {
6146
+ in: 'cookie',
6147
+ name: 'Authentication',
6148
+ type: 'apiKey'
6149
+ },
6150
+ {
6151
+ scheme: 'bearer',
6152
+ type: 'http'
6153
+ }
6154
+ ],
6155
+ url: '/api/v2/cases/archive',
6156
+ ...options,
6157
+ headers: {
6158
+ 'Content-Type': 'application/json',
6159
+ ...options.headers
6160
+ }
6161
+ });
6162
+ };
6163
+ exports.caseBulkActionV2ApiControllerArchive = caseBulkActionV2ApiControllerArchive;
6164
+ /**
6165
+ * List assets linked to case
6166
+ * 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. Use format=json (default) for a paginated response or format=csv to stream the linked assets as text/csv.
6167
+ */
6168
+ const caseAssetV2ApiControllerFilterAssets = (options) => {
6169
+ return (options.client ?? client_gen_1.client).get({
6170
+ responseType: 'json',
6171
+ security: [
6172
+ {
6173
+ in: 'cookie',
6174
+ name: 'Authentication',
6175
+ type: 'apiKey'
6176
+ },
6177
+ {
6178
+ scheme: 'bearer',
6179
+ type: 'http'
6180
+ }
6181
+ ],
6182
+ url: '/api/v2/cases/{idOrName}/assets',
6183
+ ...options
6184
+ });
6185
+ };
6186
+ exports.caseAssetV2ApiControllerFilterAssets = caseAssetV2ApiControllerFilterAssets;
6187
+ /**
6188
+ * List users for case
6189
+ * 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.
6190
+ */
6191
+ const caseUserV2ApiControllerFilterUsers = (options) => {
6192
+ return (options.client ?? client_gen_1.client).get({
6193
+ responseType: 'json',
6194
+ security: [
6195
+ {
6196
+ in: 'cookie',
6197
+ name: 'Authentication',
6198
+ type: 'apiKey'
6199
+ },
6200
+ {
6201
+ scheme: 'bearer',
6202
+ type: 'http'
6203
+ }
6204
+ ],
6205
+ url: '/api/v2/cases/{idOrName}/users',
6206
+ ...options
6207
+ });
6208
+ };
6209
+ exports.caseUserV2ApiControllerFilterUsers = caseUserV2ApiControllerFilterUsers;
6210
+ /**
6211
+ * List task assignments for case
6212
+ * 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.
6213
+ */
6214
+ const caseTaskV2ApiControllerFilterTasks = (options) => {
6215
+ return (options.client ?? client_gen_1.client).get({
6216
+ responseType: 'json',
6217
+ security: [
6218
+ {
6219
+ in: 'cookie',
6220
+ name: 'Authentication',
6221
+ type: 'apiKey'
6222
+ },
6223
+ {
6224
+ scheme: 'bearer',
6225
+ type: 'http'
6226
+ }
6227
+ ],
6228
+ url: '/api/v2/cases/{idOrName}/tasks',
6229
+ ...options
6230
+ });
6231
+ };
6232
+ exports.caseTaskV2ApiControllerFilterTasks = caseTaskV2ApiControllerFilterTasks;
6233
+ /**
6234
+ * List case notes
6235
+ * 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.
6236
+ */
6237
+ const caseNoteV2ApiControllerFilterNotes = (options) => {
6238
+ return (options.client ?? client_gen_1.client).get({
6239
+ responseType: 'json',
6240
+ security: [
6241
+ {
6242
+ in: 'cookie',
6243
+ name: 'Authentication',
6244
+ type: 'apiKey'
6245
+ },
6246
+ {
6247
+ scheme: 'bearer',
6248
+ type: 'http'
6249
+ }
6250
+ ],
6251
+ url: '/api/v2/cases/{idOrName}/notes',
6252
+ ...options
6253
+ });
6254
+ };
6255
+ exports.caseNoteV2ApiControllerFilterNotes = caseNoteV2ApiControllerFilterNotes;
6256
+ /**
6257
+ * Create case note
6258
+ * 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.
6259
+ */
6260
+ const caseNoteV2ApiControllerCreateNote = (options) => {
6261
+ return (options.client ?? client_gen_1.client).post({
6262
+ responseType: 'json',
6263
+ security: [
6264
+ {
6265
+ in: 'cookie',
6266
+ name: 'Authentication',
6267
+ type: 'apiKey'
6268
+ },
6269
+ {
6270
+ scheme: 'bearer',
6271
+ type: 'http'
6272
+ }
6273
+ ],
6274
+ url: '/api/v2/cases/{idOrName}/notes',
6275
+ ...options,
6276
+ headers: {
6277
+ 'Content-Type': 'application/json',
6278
+ ...options.headers
6279
+ }
6280
+ });
6281
+ };
6282
+ exports.caseNoteV2ApiControllerCreateNote = caseNoteV2ApiControllerCreateNote;
6283
+ /**
6284
+ * Delete case note
6285
+ * 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.
6286
+ */
6287
+ const caseNoteV2ApiControllerDeleteNote = (options) => {
6288
+ return (options.client ?? client_gen_1.client).delete({
6289
+ responseType: 'json',
6290
+ security: [
6291
+ {
6292
+ in: 'cookie',
6293
+ name: 'Authentication',
6294
+ type: 'apiKey'
6295
+ },
6296
+ {
6297
+ scheme: 'bearer',
6298
+ type: 'http'
6299
+ }
6300
+ ],
6301
+ url: '/api/v2/cases/{idOrName}/notes/{noteId}',
6302
+ ...options
6303
+ });
6304
+ };
6305
+ exports.caseNoteV2ApiControllerDeleteNote = caseNoteV2ApiControllerDeleteNote;
6306
+ /**
6307
+ * Update case note
6308
+ * 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].
6309
+ */
6310
+ const caseNoteV2ApiControllerUpdateNote = (options) => {
6311
+ return (options.client ?? client_gen_1.client).patch({
6312
+ responseType: 'json',
6313
+ security: [
6314
+ {
6315
+ in: 'cookie',
6316
+ name: 'Authentication',
6317
+ type: 'apiKey'
6318
+ },
6319
+ {
6320
+ scheme: 'bearer',
6321
+ type: 'http'
6322
+ }
6323
+ ],
6324
+ url: '/api/v2/cases/{idOrName}/notes/{noteId}',
6325
+ ...options,
6326
+ headers: {
6327
+ 'Content-Type': 'application/json',
6328
+ ...options.headers
6329
+ }
6330
+ });
6331
+ };
6332
+ exports.caseNoteV2ApiControllerUpdateNote = caseNoteV2ApiControllerUpdateNote;
6333
+ /**
6334
+ * List task assignments for case
6335
+ * 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.
6336
+ */
6337
+ const caseTaskAssignmentV2ApiControllerFilterTaskAssignments = (options) => {
6338
+ return (options.client ?? client_gen_1.client).get({
6339
+ responseType: 'json',
6340
+ security: [
6341
+ {
6342
+ in: 'cookie',
6343
+ name: 'Authentication',
6344
+ type: 'apiKey'
6345
+ },
6346
+ {
6347
+ scheme: 'bearer',
6348
+ type: 'http'
6349
+ }
6350
+ ],
6351
+ url: '/api/v2/cases/{idOrName}/task-assignments',
6352
+ ...options
6353
+ });
6354
+ };
6355
+ exports.caseTaskAssignmentV2ApiControllerFilterTaskAssignments = caseTaskAssignmentV2ApiControllerFilterTaskAssignments;
6356
+ /**
6357
+ * Import task assignments into case
6358
+ * 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.
6359
+ */
6360
+ const caseTaskAssignmentV2ApiControllerImportTaskAssignments = (options) => {
6361
+ return (options.client ?? client_gen_1.client).post({
6362
+ responseType: 'json',
6363
+ security: [
6364
+ {
6365
+ in: 'cookie',
6366
+ name: 'Authentication',
6367
+ type: 'apiKey'
6368
+ },
6369
+ {
6370
+ scheme: 'bearer',
6371
+ type: 'http'
6372
+ }
6373
+ ],
6374
+ url: '/api/v2/cases/{idOrName}/task-assignments/import',
6375
+ ...options,
6376
+ headers: {
6377
+ 'Content-Type': 'application/json',
6378
+ ...options.headers
6379
+ }
6380
+ });
6381
+ };
6382
+ exports.caseTaskAssignmentV2ApiControllerImportTaskAssignments = caseTaskAssignmentV2ApiControllerImportTaskAssignments;
6383
+ /**
6384
+ * Detach a task assignment from case
6385
+ * 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.
6386
+ */
6387
+ const caseTaskAssignmentV2ApiControllerRemoveTaskAssignment = (options) => {
6388
+ return (options.client ?? client_gen_1.client).delete({
6389
+ responseType: 'json',
6390
+ security: [
6391
+ {
6392
+ in: 'cookie',
6393
+ name: 'Authentication',
6394
+ type: 'apiKey'
6395
+ },
6396
+ {
6397
+ scheme: 'bearer',
6398
+ type: 'http'
6399
+ }
6400
+ ],
6401
+ url: '/api/v2/cases/{idOrName}/task-assignments/{taskAssignmentId}',
6402
+ ...options
6403
+ });
6404
+ };
6405
+ exports.caseTaskAssignmentV2ApiControllerRemoveTaskAssignment = caseTaskAssignmentV2ApiControllerRemoveTaskAssignment;
6406
+ /**
6407
+ * Close a case
6408
+ * 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.
6409
+ */
6410
+ const caseActionV2ApiControllerClose = (options) => {
6411
+ return (options.client ?? client_gen_1.client).post({
6412
+ responseType: 'json',
6413
+ security: [
6414
+ {
6415
+ in: 'cookie',
6416
+ name: 'Authentication',
6417
+ type: 'apiKey'
6418
+ },
6419
+ {
6420
+ scheme: 'bearer',
6421
+ type: 'http'
6422
+ }
6423
+ ],
6424
+ url: '/api/v2/cases/{idOrName}/close',
6425
+ ...options,
6426
+ headers: {
6427
+ 'Content-Type': 'application/json',
6428
+ ...options.headers
6429
+ }
6430
+ });
6431
+ };
6432
+ exports.caseActionV2ApiControllerClose = caseActionV2ApiControllerClose;
6433
+ /**
6434
+ * Reopen a case
6435
+ * 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].
6436
+ */
6437
+ const caseActionV2ApiControllerReopen = (options) => {
6438
+ return (options.client ?? client_gen_1.client).post({
6439
+ responseType: 'json',
6440
+ security: [
6441
+ {
6442
+ in: 'cookie',
6443
+ name: 'Authentication',
6444
+ type: 'apiKey'
6445
+ },
6446
+ {
6447
+ scheme: 'bearer',
6448
+ type: 'http'
6449
+ }
6450
+ ],
6451
+ url: '/api/v2/cases/{idOrName}/open',
6452
+ ...options
6453
+ });
6454
+ };
6455
+ exports.caseActionV2ApiControllerReopen = caseActionV2ApiControllerReopen;
6456
+ /**
6457
+ * Archive a case
6458
+ * 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.
6459
+ */
6460
+ const caseActionV2ApiControllerArchive = (options) => {
6461
+ return (options.client ?? client_gen_1.client).post({
6462
+ responseType: 'json',
6463
+ security: [
6464
+ {
6465
+ in: 'cookie',
6466
+ name: 'Authentication',
6467
+ type: 'apiKey'
6468
+ },
6469
+ {
6470
+ scheme: 'bearer',
6471
+ type: 'http'
6472
+ }
6473
+ ],
6474
+ url: '/api/v2/cases/{idOrName}/archive',
6475
+ ...options
6476
+ });
6477
+ };
6478
+ exports.caseActionV2ApiControllerArchive = caseActionV2ApiControllerArchive;
6479
+ /**
6480
+ * Unlink assets from a case
6481
+ * 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.
6482
+ */
6483
+ const caseActionV2ApiControllerRemoveAssets = (options) => {
6484
+ return (options.client ?? client_gen_1.client).post({
6485
+ responseType: 'json',
6486
+ security: [
6487
+ {
6488
+ in: 'cookie',
6489
+ name: 'Authentication',
6490
+ type: 'apiKey'
6491
+ },
6492
+ {
6493
+ scheme: 'bearer',
6494
+ type: 'http'
6495
+ }
6496
+ ],
6497
+ url: '/api/v2/cases/{idOrName}/remove-assets',
6498
+ ...options,
6499
+ headers: {
6500
+ 'Content-Type': 'application/json',
6501
+ ...options.headers
6502
+ }
6503
+ });
6504
+ };
6505
+ exports.caseActionV2ApiControllerRemoveAssets = caseActionV2ApiControllerRemoveAssets;
6506
+ /**
6507
+ * List cases
6508
+ * List Binalyze AIR cases using GET /api/v2/cases. Read-only, paginated. Each entity uses object refs: owner{id,name}, organizations[{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.
6509
+ */
6510
+ const caseV2ApiControllerFilterCases = (options) => {
6511
+ return (options?.client ?? client_gen_1.client).get({
6512
+ responseType: 'json',
6513
+ security: [
6514
+ {
6515
+ in: 'cookie',
6516
+ name: 'Authentication',
6517
+ type: 'apiKey'
6518
+ },
6519
+ {
6520
+ scheme: 'bearer',
6521
+ type: 'http'
6522
+ }
6523
+ ],
6524
+ url: '/api/v2/cases',
6525
+ ...options
6526
+ });
6527
+ };
6528
+ exports.caseV2ApiControllerFilterCases = caseV2ApiControllerFilterCases;
6529
+ /**
6530
+ * Create a case
6531
+ * 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].
6532
+ */
6533
+ const caseV2ApiControllerCreateCase = (options) => {
6534
+ return (options.client ?? client_gen_1.client).post({
6535
+ responseType: 'json',
6536
+ security: [
6537
+ {
6538
+ in: 'cookie',
6539
+ name: 'Authentication',
6540
+ type: 'apiKey'
6541
+ },
6542
+ {
6543
+ scheme: 'bearer',
6544
+ type: 'http'
6545
+ }
6546
+ ],
6547
+ url: '/api/v2/cases',
6548
+ ...options,
6549
+ headers: {
6550
+ 'Content-Type': 'application/json',
6551
+ ...options.headers
6552
+ }
6553
+ });
6554
+ };
6555
+ exports.caseV2ApiControllerCreateCase = caseV2ApiControllerCreateCase;
6556
+ /**
6557
+ * Get case by id or name
6558
+ * 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{}, organizations[{id,name}], 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.
6559
+ */
6560
+ const caseV2ApiControllerGetCaseByIdOrName = (options) => {
6561
+ return (options.client ?? client_gen_1.client).get({
6562
+ responseType: 'json',
6563
+ security: [
6564
+ {
6565
+ in: 'cookie',
6566
+ name: 'Authentication',
6567
+ type: 'apiKey'
6568
+ },
6569
+ {
6570
+ scheme: 'bearer',
6571
+ type: 'http'
6572
+ }
6573
+ ],
6574
+ url: '/api/v2/cases/{idOrName}',
6575
+ ...options
6576
+ });
6577
+ };
6578
+ exports.caseV2ApiControllerGetCaseByIdOrName = caseV2ApiControllerGetCaseByIdOrName;
6579
+ /**
6580
+ * Update a case
6581
+ * 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.
6582
+ */
6583
+ const caseV2ApiControllerUpdateCase = (options) => {
6584
+ return (options.client ?? client_gen_1.client).patch({
6585
+ responseType: 'json',
6586
+ security: [
6587
+ {
6588
+ in: 'cookie',
6589
+ name: 'Authentication',
6590
+ type: 'apiKey'
6591
+ },
6592
+ {
6593
+ scheme: 'bearer',
6594
+ type: 'http'
6595
+ }
6596
+ ],
6597
+ url: '/api/v2/cases/{idOrName}',
6598
+ ...options,
6599
+ headers: {
6600
+ 'Content-Type': 'application/json',
6601
+ ...options.headers
6602
+ }
6603
+ });
6604
+ };
6605
+ exports.caseV2ApiControllerUpdateCase = caseV2ApiControllerUpdateCase;
6606
+ /**
6607
+ * Check if a case name is available
6608
+ * Validates whether a given case name is exists
6609
+ */
6610
+ const casesCheckName = (options) => {
6611
+ return (options.client ?? client_gen_1.client).get({
6612
+ responseType: 'json',
6613
+ security: [
6614
+ {
6615
+ scheme: 'bearer',
6616
+ type: 'http'
6617
+ }
6618
+ ],
5613
6619
  url: '/api/public/cases/check',
5614
6620
  ...options
5615
6621
  });
@@ -5667,6 +6673,84 @@ const caseExportCaseEndpoints1 = (options) => {
5667
6673
  });
5668
6674
  };
5669
6675
  exports.caseExportCaseEndpoints1 = caseExportCaseEndpoints1;
6676
+ /**
6677
+ * Download a case assets expression export
6678
+ * Downloads CSV for a previously created case assets expression export
6679
+ */
6680
+ const casesDownloadAssetsExpressionExport = (options) => {
6681
+ return (options.client ?? client_gen_1.client).get({
6682
+ security: [
6683
+ {
6684
+ scheme: 'bearer',
6685
+ type: 'http'
6686
+ }
6687
+ ],
6688
+ url: '/api/public/cases/{id}/endpoints/export-query',
6689
+ ...options
6690
+ });
6691
+ };
6692
+ exports.casesDownloadAssetsExpressionExport = casesDownloadAssetsExpressionExport;
6693
+ /**
6694
+ * Create a case assets expression export
6695
+ * Caches an expression filter for downloading case-linked assets as CSV. Use the returned exportUrl within 60 seconds.
6696
+ */
6697
+ const casesCreateAssetsExpressionExport = (options) => {
6698
+ return (options.client ?? client_gen_1.client).post({
6699
+ responseType: 'json',
6700
+ security: [
6701
+ {
6702
+ scheme: 'bearer',
6703
+ type: 'http'
6704
+ }
6705
+ ],
6706
+ url: '/api/public/cases/{id}/endpoints/export-query',
6707
+ ...options,
6708
+ headers: {
6709
+ 'Content-Type': 'application/json',
6710
+ ...options.headers
6711
+ }
6712
+ });
6713
+ };
6714
+ exports.casesCreateAssetsExpressionExport = casesCreateAssetsExpressionExport;
6715
+ /**
6716
+ * Download a case assets expression export
6717
+ * Downloads CSV for a previously created case assets expression export
6718
+ */
6719
+ const casesDownloadAssetsExpressionExport2 = (options) => {
6720
+ return (options.client ?? client_gen_1.client).get({
6721
+ security: [
6722
+ {
6723
+ scheme: 'bearer',
6724
+ type: 'http'
6725
+ }
6726
+ ],
6727
+ url: '/api/public/cases/{id}/assets/export-query',
6728
+ ...options
6729
+ });
6730
+ };
6731
+ exports.casesDownloadAssetsExpressionExport2 = casesDownloadAssetsExpressionExport2;
6732
+ /**
6733
+ * Create a case assets expression export
6734
+ * Caches an expression filter for downloading case-linked assets as CSV. Use the returned exportUrl within 60 seconds.
6735
+ */
6736
+ const casesCreateAssetsExpressionExport2 = (options) => {
6737
+ return (options.client ?? client_gen_1.client).post({
6738
+ responseType: 'json',
6739
+ security: [
6740
+ {
6741
+ scheme: 'bearer',
6742
+ type: 'http'
6743
+ }
6744
+ ],
6745
+ url: '/api/public/cases/{id}/assets/export-query',
6746
+ ...options,
6747
+ headers: {
6748
+ 'Content-Type': 'application/json',
6749
+ ...options.headers
6750
+ }
6751
+ });
6752
+ };
6753
+ exports.casesCreateAssetsExpressionExport2 = casesCreateAssetsExpressionExport2;
5670
6754
  /**
5671
6755
  * Retrieve a specific case
5672
6756
  * Fetches detailed information about a specific case
@@ -5900,13 +6984,53 @@ const casesGetEndpoints = (options) => {
5900
6984
  ...options
5901
6985
  });
5902
6986
  };
5903
- exports.casesGetEndpoints = casesGetEndpoints;
6987
+ exports.casesGetEndpoints = casesGetEndpoints;
6988
+ /**
6989
+ * Get endpoints for a specific case
6990
+ * Retrieves a paginated list of endpoints/assets linked to the specified case
6991
+ */
6992
+ const casesGetEndpoints2 = (options) => {
6993
+ return (options.client ?? client_gen_1.client).get({
6994
+ responseType: 'json',
6995
+ security: [
6996
+ {
6997
+ scheme: 'bearer',
6998
+ type: 'http'
6999
+ }
7000
+ ],
7001
+ url: '/api/public/cases/{id}/assets',
7002
+ ...options
7003
+ });
7004
+ };
7005
+ exports.casesGetEndpoints2 = casesGetEndpoints2;
7006
+ /**
7007
+ * Get case assets by expression filter
7008
+ * Retrieves a paginated list of endpoints/assets linked to the specified case using a filter expression
7009
+ */
7010
+ const casesGetAssetsByFilterExpression = (options) => {
7011
+ return (options.client ?? client_gen_1.client).post({
7012
+ responseType: 'json',
7013
+ security: [
7014
+ {
7015
+ scheme: 'bearer',
7016
+ type: 'http'
7017
+ }
7018
+ ],
7019
+ url: '/api/public/cases/{id}/endpoints/filter-query',
7020
+ ...options,
7021
+ headers: {
7022
+ 'Content-Type': 'application/json',
7023
+ ...options.headers
7024
+ }
7025
+ });
7026
+ };
7027
+ exports.casesGetAssetsByFilterExpression = casesGetAssetsByFilterExpression;
5904
7028
  /**
5905
- * Get endpoints for a specific case
5906
- * Retrieves a paginated list of endpoints/assets linked to the specified case
7029
+ * Get case assets by expression filter
7030
+ * Retrieves a paginated list of endpoints/assets linked to the specified case using a filter expression
5907
7031
  */
5908
- const casesGetEndpoints2 = (options) => {
5909
- return (options.client ?? client_gen_1.client).get({
7032
+ const casesGetAssetsByFilterExpression2 = (options) => {
7033
+ return (options.client ?? client_gen_1.client).post({
5910
7034
  responseType: 'json',
5911
7035
  security: [
5912
7036
  {
@@ -5914,11 +7038,15 @@ const casesGetEndpoints2 = (options) => {
5914
7038
  type: 'http'
5915
7039
  }
5916
7040
  ],
5917
- url: '/api/public/cases/{id}/assets',
5918
- ...options
7041
+ url: '/api/public/cases/{id}/assets/filter-query',
7042
+ ...options,
7043
+ headers: {
7044
+ 'Content-Type': 'application/json',
7045
+ ...options.headers
7046
+ }
5919
7047
  });
5920
7048
  };
5921
- exports.casesGetEndpoints2 = casesGetEndpoints2;
7049
+ exports.casesGetAssetsByFilterExpression2 = casesGetAssetsByFilterExpression2;
5922
7050
  /**
5923
7051
  * Get activities for a specific case
5924
7052
  * Retrieves a paginated list of activities for a case
@@ -6762,6 +7890,7 @@ const interactCommandSnippetTagsUpdate = (options) => {
6762
7890
  exports.interactCommandSnippetTagsUpdate = interactCommandSnippetTagsUpdate;
6763
7891
  /**
6764
7892
  * List InterAct command snippets
7893
+ * 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
7894
  */
6766
7895
  const interactLibrarySnippetV2ApiControllerList = (options) => {
6767
7896
  return (options?.client ?? client_gen_1.client).get({
@@ -6784,6 +7913,7 @@ const interactLibrarySnippetV2ApiControllerList = (options) => {
6784
7913
  exports.interactLibrarySnippetV2ApiControllerList = interactLibrarySnippetV2ApiControllerList;
6785
7914
  /**
6786
7915
  * Create InterAct command snippet
7916
+ * 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
7917
  */
6788
7918
  const interactLibrarySnippetV2ApiControllerCreate = (options) => {
6789
7919
  return (options.client ?? client_gen_1.client).post({
@@ -6810,6 +7940,7 @@ const interactLibrarySnippetV2ApiControllerCreate = (options) => {
6810
7940
  exports.interactLibrarySnippetV2ApiControllerCreate = interactLibrarySnippetV2ApiControllerCreate;
6811
7941
  /**
6812
7942
  * Bulk delete InterAct command snippets
7943
+ * 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
7944
  */
6814
7945
  const interactLibrarySnippetV2ApiControllerBulkDelete = (options) => {
6815
7946
  return (options.client ?? client_gen_1.client).post({
@@ -6836,6 +7967,7 @@ const interactLibrarySnippetV2ApiControllerBulkDelete = (options) => {
6836
7967
  exports.interactLibrarySnippetV2ApiControllerBulkDelete = interactLibrarySnippetV2ApiControllerBulkDelete;
6837
7968
  /**
6838
7969
  * Delete InterAct command snippet
7970
+ * 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
7971
  */
6840
7972
  const interactLibrarySnippetV2ApiControllerDelete = (options) => {
6841
7973
  return (options.client ?? client_gen_1.client).delete({
@@ -6858,6 +7990,7 @@ const interactLibrarySnippetV2ApiControllerDelete = (options) => {
6858
7990
  exports.interactLibrarySnippetV2ApiControllerDelete = interactLibrarySnippetV2ApiControllerDelete;
6859
7991
  /**
6860
7992
  * Get InterAct command snippet by id or name
7993
+ * 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
7994
  */
6862
7995
  const interactLibrarySnippetV2ApiControllerGet = (options) => {
6863
7996
  return (options.client ?? client_gen_1.client).get({
@@ -6880,6 +8013,7 @@ const interactLibrarySnippetV2ApiControllerGet = (options) => {
6880
8013
  exports.interactLibrarySnippetV2ApiControllerGet = interactLibrarySnippetV2ApiControllerGet;
6881
8014
  /**
6882
8015
  * Update InterAct command snippet
8016
+ * 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
8017
  */
6884
8018
  const interactLibrarySnippetV2ApiControllerUpdate = (options) => {
6885
8019
  return (options.client ?? client_gen_1.client).patch({
@@ -6906,6 +8040,7 @@ const interactLibrarySnippetV2ApiControllerUpdate = (options) => {
6906
8040
  exports.interactLibrarySnippetV2ApiControllerUpdate = interactLibrarySnippetV2ApiControllerUpdate;
6907
8041
  /**
6908
8042
  * List InterAct command snippet tags
8043
+ * 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
8044
  */
6910
8045
  const interactLibraryTagV2ApiControllerList = (options) => {
6911
8046
  return (options?.client ?? client_gen_1.client).get({
@@ -6928,6 +8063,7 @@ const interactLibraryTagV2ApiControllerList = (options) => {
6928
8063
  exports.interactLibraryTagV2ApiControllerList = interactLibraryTagV2ApiControllerList;
6929
8064
  /**
6930
8065
  * Create InterAct command snippet tag
8066
+ * 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
8067
  */
6932
8068
  const interactLibraryTagV2ApiControllerCreate = (options) => {
6933
8069
  return (options.client ?? client_gen_1.client).post({
@@ -6954,6 +8090,7 @@ const interactLibraryTagV2ApiControllerCreate = (options) => {
6954
8090
  exports.interactLibraryTagV2ApiControllerCreate = interactLibraryTagV2ApiControllerCreate;
6955
8091
  /**
6956
8092
  * Bulk delete InterAct command snippet tags
8093
+ * 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
8094
  */
6958
8095
  const interactLibraryTagV2ApiControllerBulkDelete = (options) => {
6959
8096
  return (options.client ?? client_gen_1.client).post({
@@ -6980,6 +8117,7 @@ const interactLibraryTagV2ApiControllerBulkDelete = (options) => {
6980
8117
  exports.interactLibraryTagV2ApiControllerBulkDelete = interactLibraryTagV2ApiControllerBulkDelete;
6981
8118
  /**
6982
8119
  * Delete InterAct command snippet tag
8120
+ * 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
8121
  */
6984
8122
  const interactLibraryTagV2ApiControllerDelete = (options) => {
6985
8123
  return (options.client ?? client_gen_1.client).delete({
@@ -7002,7 +8140,7 @@ const interactLibraryTagV2ApiControllerDelete = (options) => {
7002
8140
  exports.interactLibraryTagV2ApiControllerDelete = interactLibraryTagV2ApiControllerDelete;
7003
8141
  /**
7004
8142
  * Get InterAct command snippet tag by id or name
7005
- * v2-only endpoint. Returns a single tag wrapped in entities[0].
8143
+ * 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
8144
  */
7007
8145
  const interactLibraryTagV2ApiControllerGet = (options) => {
7008
8146
  return (options.client ?? client_gen_1.client).get({
@@ -7025,6 +8163,7 @@ const interactLibraryTagV2ApiControllerGet = (options) => {
7025
8163
  exports.interactLibraryTagV2ApiControllerGet = interactLibraryTagV2ApiControllerGet;
7026
8164
  /**
7027
8165
  * Update InterAct command snippet tag
8166
+ * 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
8167
  */
7029
8168
  const interactLibraryTagV2ApiControllerUpdate = (options) => {
7030
8169
  return (options.client ?? client_gen_1.client).patch({
@@ -7051,6 +8190,7 @@ const interactLibraryTagV2ApiControllerUpdate = (options) => {
7051
8190
  exports.interactLibraryTagV2ApiControllerUpdate = interactLibraryTagV2ApiControllerUpdate;
7052
8191
  /**
7053
8192
  * List InterAct library files
8193
+ * 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
8194
  */
7055
8195
  const interactLibraryFileV2ApiControllerList = (options) => {
7056
8196
  return (options?.client ?? client_gen_1.client).get({
@@ -7073,9 +8213,11 @@ const interactLibraryFileV2ApiControllerList = (options) => {
7073
8213
  exports.interactLibraryFileV2ApiControllerList = interactLibraryFileV2ApiControllerList;
7074
8214
  /**
7075
8215
  * Upload InterAct library file
8216
+ * 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
8217
  */
7077
8218
  const interactLibraryFileV2ApiControllerUpload = (options) => {
7078
8219
  return (options.client ?? client_gen_1.client).post({
8220
+ ...client_1.formDataBodySerializer,
7079
8221
  responseType: 'json',
7080
8222
  security: [
7081
8223
  {
@@ -7091,7 +8233,7 @@ const interactLibraryFileV2ApiControllerUpload = (options) => {
7091
8233
  url: '/api/v2/libraries/interact/files',
7092
8234
  ...options,
7093
8235
  headers: {
7094
- 'Content-Type': 'application/json',
8236
+ 'Content-Type': null,
7095
8237
  ...options.headers
7096
8238
  }
7097
8239
  });
@@ -7099,6 +8241,7 @@ const interactLibraryFileV2ApiControllerUpload = (options) => {
7099
8241
  exports.interactLibraryFileV2ApiControllerUpload = interactLibraryFileV2ApiControllerUpload;
7100
8242
  /**
7101
8243
  * Bulk delete InterAct library files
8244
+ * 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
8245
  */
7103
8246
  const interactLibraryFileV2ApiControllerBulkDelete = (options) => {
7104
8247
  return (options.client ?? client_gen_1.client).post({
@@ -7125,6 +8268,7 @@ const interactLibraryFileV2ApiControllerBulkDelete = (options) => {
7125
8268
  exports.interactLibraryFileV2ApiControllerBulkDelete = interactLibraryFileV2ApiControllerBulkDelete;
7126
8269
  /**
7127
8270
  * Delete InterAct library file
8271
+ * 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
8272
  */
7129
8273
  const interactLibraryFileV2ApiControllerDelete = (options) => {
7130
8274
  return (options.client ?? client_gen_1.client).delete({
@@ -7147,6 +8291,7 @@ const interactLibraryFileV2ApiControllerDelete = (options) => {
7147
8291
  exports.interactLibraryFileV2ApiControllerDelete = interactLibraryFileV2ApiControllerDelete;
7148
8292
  /**
7149
8293
  * Download InterAct library file by id or name
8294
+ * 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
8295
  */
7151
8296
  const interactLibraryFileV2ApiControllerDownload = (options) => {
7152
8297
  return (options.client ?? client_gen_1.client).get({
@@ -7167,6 +8312,29 @@ const interactLibraryFileV2ApiControllerDownload = (options) => {
7167
8312
  });
7168
8313
  };
7169
8314
  exports.interactLibraryFileV2ApiControllerDownload = interactLibraryFileV2ApiControllerDownload;
8315
+ /**
8316
+ * List native InterAct shell commands
8317
+ * 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.
8318
+ */
8319
+ const interactCommandV2ApiControllerList = (options) => {
8320
+ return (options?.client ?? client_gen_1.client).get({
8321
+ responseType: 'json',
8322
+ security: [
8323
+ {
8324
+ in: 'cookie',
8325
+ name: 'Authentication',
8326
+ type: 'apiKey'
8327
+ },
8328
+ {
8329
+ scheme: 'bearer',
8330
+ type: 'http'
8331
+ }
8332
+ ],
8333
+ url: '/api/v2/interact/commands',
8334
+ ...options
8335
+ });
8336
+ };
8337
+ exports.interactCommandV2ApiControllerList = interactCommandV2ApiControllerList;
7170
8338
  const multipartUploadInitializeHead = (options) => {
7171
8339
  return (options?.client ?? client_gen_1.client).head({
7172
8340
  security: [
@@ -7474,25 +8642,257 @@ const systemApiTokensGetMany = (options) => {
7474
8642
  type: 'http'
7475
8643
  }
7476
8644
  ],
7477
- url: '/api/public/system-tokens',
8645
+ url: '/api/public/system-tokens',
8646
+ ...options
8647
+ });
8648
+ };
8649
+ exports.systemApiTokensGetMany = systemApiTokensGetMany;
8650
+ /**
8651
+ * Create a new system API token
8652
+ * Create a new system API token with the specified name, description, expiration date, and role
8653
+ */
8654
+ const systemApiTokensCreate = (options) => {
8655
+ return (options.client ?? client_gen_1.client).post({
8656
+ responseType: 'json',
8657
+ security: [
8658
+ {
8659
+ scheme: 'bearer',
8660
+ type: 'http'
8661
+ }
8662
+ ],
8663
+ url: '/api/public/system-tokens',
8664
+ ...options,
8665
+ headers: {
8666
+ 'Content-Type': 'application/json',
8667
+ ...options.headers
8668
+ }
8669
+ });
8670
+ };
8671
+ exports.systemApiTokensCreate = systemApiTokensCreate;
8672
+ /**
8673
+ * Delete a system API token
8674
+ * Delete an existing system API token by ID
8675
+ */
8676
+ const systemApiTokensDelete = (options) => {
8677
+ return (options.client ?? client_gen_1.client).delete({
8678
+ security: [
8679
+ {
8680
+ scheme: 'bearer',
8681
+ type: 'http'
8682
+ }
8683
+ ],
8684
+ url: '/api/public/system-tokens/{id}',
8685
+ ...options
8686
+ });
8687
+ };
8688
+ exports.systemApiTokensDelete = systemApiTokensDelete;
8689
+ /**
8690
+ * Get system API token by ID
8691
+ * Retrieve a specific system API token
8692
+ */
8693
+ const systemApiTokensGetOne = (options) => {
8694
+ return (options.client ?? client_gen_1.client).get({
8695
+ responseType: 'json',
8696
+ security: [
8697
+ {
8698
+ scheme: 'bearer',
8699
+ type: 'http'
8700
+ }
8701
+ ],
8702
+ url: '/api/public/system-tokens/{id}',
8703
+ ...options
8704
+ });
8705
+ };
8706
+ exports.systemApiTokensGetOne = systemApiTokensGetOne;
8707
+ /**
8708
+ * Update an existing system API token
8709
+ * Update an existing system API token
8710
+ */
8711
+ const systemApiTokensUpdate = (options) => {
8712
+ return (options.client ?? client_gen_1.client).put({
8713
+ responseType: 'json',
8714
+ security: [
8715
+ {
8716
+ scheme: 'bearer',
8717
+ type: 'http'
8718
+ }
8719
+ ],
8720
+ url: '/api/public/system-tokens/{id}',
8721
+ ...options,
8722
+ headers: {
8723
+ 'Content-Type': 'application/json',
8724
+ ...options.headers
8725
+ }
8726
+ });
8727
+ };
8728
+ exports.systemApiTokensUpdate = systemApiTokensUpdate;
8729
+ const cloudAccountsFilter = (options) => {
8730
+ return (options.client ?? client_gen_1.client).get({
8731
+ security: [
8732
+ {
8733
+ scheme: 'bearer',
8734
+ type: 'http'
8735
+ }
8736
+ ],
8737
+ url: '/api/public/cloud-forensics/accounts',
8738
+ ...options
8739
+ });
8740
+ };
8741
+ exports.cloudAccountsFilter = cloudAccountsFilter;
8742
+ const cloudAccountsCreateCloudAccount = (options) => {
8743
+ return (options.client ?? client_gen_1.client).post({
8744
+ security: [
8745
+ {
8746
+ scheme: 'bearer',
8747
+ type: 'http'
8748
+ }
8749
+ ],
8750
+ url: '/api/public/cloud-forensics/accounts',
8751
+ ...options,
8752
+ headers: {
8753
+ 'Content-Type': 'application/json',
8754
+ ...options.headers
8755
+ }
8756
+ });
8757
+ };
8758
+ exports.cloudAccountsCreateCloudAccount = cloudAccountsCreateCloudAccount;
8759
+ const cloudAccountsGetConfig = (options) => {
8760
+ return (options?.client ?? client_gen_1.client).get({
8761
+ security: [
8762
+ {
8763
+ scheme: 'bearer',
8764
+ type: 'http'
8765
+ }
8766
+ ],
8767
+ url: '/api/public/cloud-forensics/accounts/config',
8768
+ ...options
8769
+ });
8770
+ };
8771
+ exports.cloudAccountsGetConfig = cloudAccountsGetConfig;
8772
+ const cloudAccountsExport = (options) => {
8773
+ return (options.client ?? client_gen_1.client).get({
8774
+ security: [
8775
+ {
8776
+ scheme: 'bearer',
8777
+ type: 'http'
8778
+ }
8779
+ ],
8780
+ url: '/api/public/cloud-forensics/accounts/export',
8781
+ ...options
8782
+ });
8783
+ };
8784
+ exports.cloudAccountsExport = cloudAccountsExport;
8785
+ const cloudAccountsDelete = (options) => {
8786
+ return (options.client ?? client_gen_1.client).delete({
8787
+ security: [
8788
+ {
8789
+ scheme: 'bearer',
8790
+ type: 'http'
8791
+ }
8792
+ ],
8793
+ url: '/api/public/cloud-forensics/accounts/{id}',
8794
+ ...options
8795
+ });
8796
+ };
8797
+ exports.cloudAccountsDelete = cloudAccountsDelete;
8798
+ const cloudAccountsGetCloudAccountById = (options) => {
8799
+ return (options.client ?? client_gen_1.client).get({
8800
+ security: [
8801
+ {
8802
+ scheme: 'bearer',
8803
+ type: 'http'
8804
+ }
8805
+ ],
8806
+ url: '/api/public/cloud-forensics/accounts/{id}',
8807
+ ...options
8808
+ });
8809
+ };
8810
+ exports.cloudAccountsGetCloudAccountById = cloudAccountsGetCloudAccountById;
8811
+ const cloudAccountsUpdateCloudAccount = (options) => {
8812
+ return (options.client ?? client_gen_1.client).patch({
8813
+ security: [
8814
+ {
8815
+ scheme: 'bearer',
8816
+ type: 'http'
8817
+ }
8818
+ ],
8819
+ url: '/api/public/cloud-forensics/accounts/{id}',
8820
+ ...options,
8821
+ headers: {
8822
+ 'Content-Type': 'application/json',
8823
+ ...options.headers
8824
+ }
8825
+ });
8826
+ };
8827
+ exports.cloudAccountsUpdateCloudAccount = cloudAccountsUpdateCloudAccount;
8828
+ const cloudAccountsSyncCloudAccount = (options) => {
8829
+ return (options.client ?? client_gen_1.client).get({
8830
+ security: [
8831
+ {
8832
+ scheme: 'bearer',
8833
+ type: 'http'
8834
+ }
8835
+ ],
8836
+ url: '/api/public/cloud-forensics/accounts/sync/{id}',
8837
+ ...options
8838
+ });
8839
+ };
8840
+ exports.cloudAccountsSyncCloudAccount = cloudAccountsSyncCloudAccount;
8841
+ const cloudAccountsSyncAllCloudAccount = (options) => {
8842
+ return (options.client ?? client_gen_1.client).get({
8843
+ security: [
8844
+ {
8845
+ scheme: 'bearer',
8846
+ type: 'http'
8847
+ }
8848
+ ],
8849
+ url: '/api/public/cloud-forensics/accounts/sync/{cloudVendor}/all',
8850
+ ...options
8851
+ });
8852
+ };
8853
+ exports.cloudAccountsSyncAllCloudAccount = cloudAccountsSyncAllCloudAccount;
8854
+ /**
8855
+ * List investigation flags
8856
+ * 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.
8857
+ */
8858
+ const flagsLibraryV2ApiControllerList = (options) => {
8859
+ return (options?.client ?? client_gen_1.client).get({
8860
+ responseType: 'json',
8861
+ security: [
8862
+ {
8863
+ in: 'cookie',
8864
+ name: 'Authentication',
8865
+ type: 'apiKey'
8866
+ },
8867
+ {
8868
+ scheme: 'bearer',
8869
+ type: 'http'
8870
+ }
8871
+ ],
8872
+ url: '/api/v2/libraries/flags',
7478
8873
  ...options
7479
8874
  });
7480
8875
  };
7481
- exports.systemApiTokensGetMany = systemApiTokensGetMany;
8876
+ exports.flagsLibraryV2ApiControllerList = flagsLibraryV2ApiControllerList;
7482
8877
  /**
7483
- * Create a new system API token
7484
- * Create a new system API token with the specified name, description, expiration date, and role
8878
+ * Create investigation flag
8879
+ * 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; multi-organization and all-organization callers must pass it explicitly or receive 400 ORGANIZATION_REQUIRED). 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
8880
  */
7486
- const systemApiTokensCreate = (options) => {
8881
+ const flagsLibraryV2ApiControllerCreate = (options) => {
7487
8882
  return (options.client ?? client_gen_1.client).post({
7488
8883
  responseType: 'json',
7489
8884
  security: [
8885
+ {
8886
+ in: 'cookie',
8887
+ name: 'Authentication',
8888
+ type: 'apiKey'
8889
+ },
7490
8890
  {
7491
8891
  scheme: 'bearer',
7492
8892
  type: 'http'
7493
8893
  }
7494
8894
  ],
7495
- url: '/api/public/system-tokens',
8895
+ url: '/api/v2/libraries/flags',
7496
8896
  ...options,
7497
8897
  headers: {
7498
8898
  'Content-Type': 'application/json',
@@ -7500,56 +8900,72 @@ const systemApiTokensCreate = (options) => {
7500
8900
  }
7501
8901
  });
7502
8902
  };
7503
- exports.systemApiTokensCreate = systemApiTokensCreate;
8903
+ exports.flagsLibraryV2ApiControllerCreate = flagsLibraryV2ApiControllerCreate;
7504
8904
  /**
7505
- * Delete a system API token
7506
- * Delete an existing system API token by ID
8905
+ * Delete investigation flag
8906
+ * 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
8907
  */
7508
- const systemApiTokensDelete = (options) => {
8908
+ const flagsLibraryV2ApiControllerDelete = (options) => {
7509
8909
  return (options.client ?? client_gen_1.client).delete({
8910
+ responseType: 'json',
7510
8911
  security: [
8912
+ {
8913
+ in: 'cookie',
8914
+ name: 'Authentication',
8915
+ type: 'apiKey'
8916
+ },
7511
8917
  {
7512
8918
  scheme: 'bearer',
7513
8919
  type: 'http'
7514
8920
  }
7515
8921
  ],
7516
- url: '/api/public/system-tokens/{id}',
8922
+ url: '/api/v2/libraries/flags/{idOrName}',
7517
8923
  ...options
7518
8924
  });
7519
8925
  };
7520
- exports.systemApiTokensDelete = systemApiTokensDelete;
8926
+ exports.flagsLibraryV2ApiControllerDelete = flagsLibraryV2ApiControllerDelete;
7521
8927
  /**
7522
- * Get system API token by ID
7523
- * Retrieve a specific system API token
8928
+ * Get investigation flag by id or name
8929
+ * 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
8930
  */
7525
- const systemApiTokensGetOne = (options) => {
8931
+ const flagsLibraryV2ApiControllerGet = (options) => {
7526
8932
  return (options.client ?? client_gen_1.client).get({
7527
8933
  responseType: 'json',
7528
8934
  security: [
8935
+ {
8936
+ in: 'cookie',
8937
+ name: 'Authentication',
8938
+ type: 'apiKey'
8939
+ },
7529
8940
  {
7530
8941
  scheme: 'bearer',
7531
8942
  type: 'http'
7532
8943
  }
7533
8944
  ],
7534
- url: '/api/public/system-tokens/{id}',
8945
+ url: '/api/v2/libraries/flags/{idOrName}',
7535
8946
  ...options
7536
8947
  });
7537
8948
  };
7538
- exports.systemApiTokensGetOne = systemApiTokensGetOne;
8949
+ exports.flagsLibraryV2ApiControllerGet = flagsLibraryV2ApiControllerGet;
7539
8950
  /**
7540
- * Update an existing system API token
7541
- * Update an existing system API token
8951
+ * Update investigation flag
8952
+ * 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
8953
  */
7543
- const systemApiTokensUpdate = (options) => {
7544
- return (options.client ?? client_gen_1.client).put({
8954
+ const flagsLibraryV2ApiControllerUpdate = (options) => {
8955
+ return (options.client ?? client_gen_1.client).patch({
7545
8956
  responseType: 'json',
7546
8957
  security: [
8958
+ {
8959
+ in: 'cookie',
8960
+ name: 'Authentication',
8961
+ type: 'apiKey'
8962
+ },
7547
8963
  {
7548
8964
  scheme: 'bearer',
7549
8965
  type: 'http'
7550
8966
  }
7551
8967
  ],
7552
- url: '/api/public/system-tokens/{id}',
8968
+ url: '/api/v2/libraries/flags/{idOrName}',
7553
8969
  ...options,
7554
8970
  headers: {
7555
8971
  'Content-Type': 'application/json',
@@ -7557,29 +8973,26 @@ const systemApiTokensUpdate = (options) => {
7557
8973
  }
7558
8974
  });
7559
8975
  };
7560
- exports.systemApiTokensUpdate = systemApiTokensUpdate;
7561
- const cloudAccountsFilter = (options) => {
7562
- return (options.client ?? client_gen_1.client).get({
7563
- security: [
7564
- {
7565
- scheme: 'bearer',
7566
- type: 'http'
7567
- }
7568
- ],
7569
- url: '/api/public/cloud-forensics/accounts',
7570
- ...options
7571
- });
7572
- };
7573
- exports.cloudAccountsFilter = cloudAccountsFilter;
7574
- const cloudAccountsCreateCloudAccount = (options) => {
8976
+ exports.flagsLibraryV2ApiControllerUpdate = flagsLibraryV2ApiControllerUpdate;
8977
+ /**
8978
+ * Flag evidence rows in an investigation
8979
+ * 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.
8980
+ */
8981
+ const investigationEvidenceFlagV2ApiControllerFlagEvidence = (options) => {
7575
8982
  return (options.client ?? client_gen_1.client).post({
8983
+ responseType: 'json',
7576
8984
  security: [
8985
+ {
8986
+ in: 'cookie',
8987
+ name: 'Authentication',
8988
+ type: 'apiKey'
8989
+ },
7577
8990
  {
7578
8991
  scheme: 'bearer',
7579
8992
  type: 'http'
7580
8993
  }
7581
8994
  ],
7582
- url: '/api/public/cloud-forensics/accounts',
8995
+ url: '/api/v2/investigations/{idOrName}/flag',
7583
8996
  ...options,
7584
8997
  headers: {
7585
8998
  'Content-Type': 'application/json',
@@ -7587,68 +9000,53 @@ const cloudAccountsCreateCloudAccount = (options) => {
7587
9000
  }
7588
9001
  });
7589
9002
  };
7590
- exports.cloudAccountsCreateCloudAccount = cloudAccountsCreateCloudAccount;
7591
- const cloudAccountsGetConfig = (options) => {
7592
- return (options?.client ?? client_gen_1.client).get({
7593
- security: [
7594
- {
7595
- scheme: 'bearer',
7596
- type: 'http'
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({
9003
+ exports.investigationEvidenceFlagV2ApiControllerFlagEvidence = investigationEvidenceFlagV2ApiControllerFlagEvidence;
9004
+ /**
9005
+ * Remove a flag from evidence rows in an investigation
9006
+ * 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.
9007
+ */
9008
+ const investigationEvidenceFlagV2ApiControllerUnflagEvidence = (options) => {
9009
+ return (options.client ?? client_gen_1.client).post({
9010
+ responseType: 'json',
7606
9011
  security: [
7607
9012
  {
7608
- scheme: 'bearer',
7609
- type: 'http'
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: [
9013
+ in: 'cookie',
9014
+ name: 'Authentication',
9015
+ type: 'apiKey'
9016
+ },
7620
9017
  {
7621
9018
  scheme: 'bearer',
7622
9019
  type: 'http'
7623
9020
  }
7624
9021
  ],
7625
- url: '/api/public/cloud-forensics/accounts/{id}',
7626
- ...options
9022
+ url: '/api/v2/investigations/{idOrName}/unflag',
9023
+ ...options,
9024
+ headers: {
9025
+ 'Content-Type': 'application/json',
9026
+ ...options.headers
9027
+ }
7627
9028
  });
7628
9029
  };
7629
- exports.cloudAccountsDelete = cloudAccountsDelete;
7630
- const cloudAccountsGetCloudAccountById = (options) => {
7631
- return (options.client ?? client_gen_1.client).get({
9030
+ exports.investigationEvidenceFlagV2ApiControllerUnflagEvidence = investigationEvidenceFlagV2ApiControllerUnflagEvidence;
9031
+ /**
9032
+ * Discover investigation tables and columns
9033
+ * 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.
9034
+ */
9035
+ const investigationSqlV2ApiControllerGetSchema = (options) => {
9036
+ return (options.client ?? client_gen_1.client).post({
9037
+ responseType: 'json',
7632
9038
  security: [
7633
9039
  {
7634
- scheme: 'bearer',
7635
- type: 'http'
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: [
9040
+ in: 'cookie',
9041
+ name: 'Authentication',
9042
+ type: 'apiKey'
9043
+ },
7646
9044
  {
7647
9045
  scheme: 'bearer',
7648
9046
  type: 'http'
7649
9047
  }
7650
9048
  ],
7651
- url: '/api/public/cloud-forensics/accounts/{id}',
9049
+ url: '/api/v2/investigations/{idOrName}/schema',
7652
9050
  ...options,
7653
9051
  headers: {
7654
9052
  'Content-Type': 'application/json',
@@ -7656,33 +9054,34 @@ const cloudAccountsUpdateCloudAccount = (options) => {
7656
9054
  }
7657
9055
  });
7658
9056
  };
7659
- exports.cloudAccountsUpdateCloudAccount = cloudAccountsUpdateCloudAccount;
7660
- const cloudAccountsSyncCloudAccount = (options) => {
7661
- return (options.client ?? client_gen_1.client).get({
9057
+ exports.investigationSqlV2ApiControllerGetSchema = investigationSqlV2ApiControllerGetSchema;
9058
+ /**
9059
+ * Run a read-only SQL query on an investigation
9060
+ * 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. Every result-producing branch must be anchored to at least one relation in the selected investigation. Functions are admitted through PostgreSQL catalog capability checks; volatile, dangerous, user-schema and object-reference functions are rejected. Use the schema endpoint to discover the selected investigation tables and columns; PostgreSQL catalog, object-reference, and cross-schema introspection 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. Documented row-analysis functions (94): abs, age, array_agg, array_cat, array_length, array_position, array_remove, array_to_string, ascii, avg, bit_length, bool_and, bool_or, btrim, cardinality, ceil, ceiling, char_length, chr, concat, concat_ws, corr, count, date_part, date_trunc, dense_rank, div, first_value, floor, initcap, json_array_length, json_typeof, jsonb_array_elements, jsonb_array_elements_text, jsonb_array_length, jsonb_path_exists, jsonb_typeof, lag, last_value, lead, left, length, lower, lpad, ltrim, max, md5, min, mod, mode, now, nth_value, ntile, octet_length, percentile_cont, percentile_disc, plainto_tsquery, position, power, rank, regexp_matches, regexp_replace, regexp_split_to_array, repeat, replace, reverse, right, round, row_number, rpad, rtrim, split_part, sqrt, starts_with, stddev, stddev_pop, string_agg, string_to_array, strpos, substr, substring, sum, to_char, to_date, to_timestamp, to_tsquery, to_tsvector, translate, trim, trunc, unnest, upper, var_pop, variance. Allowed cast types: bigint, boolean, character, character varying, date, double precision, integer, interval, json, jsonb, numeric, real, smallint, text, time, time with time zone, time without time zone, timestamp with time zone, timestamp without time zone, uuid (plus the usual aliases such as int, varchar, timestamptz). Additional functions are admitted only when PostgreSQL catalog metadata proves they are safe, non-volatile built-ins; unknown, extension, user-schema and dangerous functions are rejected. Object-reference (regclass/oid), catalog, session, filesystem, network and *_to_xml* capabilities are rejected. Safe set-returning functions may expand rows in SELECT, FROM or LATERAL. GROUP BY accepts ROLLUP and GROUPING SETS; CUBE is not supported because the name doubles as an extension function. Execution-context expressions (current_user, current_schema, current_catalog) are rejected.
9061
+ */
9062
+ const investigationSqlV2ApiControllerExecuteSqlQuery = (options) => {
9063
+ return (options.client ?? client_gen_1.client).post({
9064
+ responseType: 'json',
7662
9065
  security: [
7663
9066
  {
7664
- scheme: 'bearer',
7665
- type: 'http'
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: [
9067
+ in: 'cookie',
9068
+ name: 'Authentication',
9069
+ type: 'apiKey'
9070
+ },
7676
9071
  {
7677
9072
  scheme: 'bearer',
7678
9073
  type: 'http'
7679
9074
  }
7680
9075
  ],
7681
- url: '/api/public/cloud-forensics/accounts/sync/{cloudVendor}/all',
7682
- ...options
9076
+ url: '/api/v2/investigations/{idOrName}/sql-query',
9077
+ ...options,
9078
+ headers: {
9079
+ 'Content-Type': 'application/json',
9080
+ ...options.headers
9081
+ }
7683
9082
  });
7684
9083
  };
7685
- exports.cloudAccountsSyncAllCloudAccount = cloudAccountsSyncAllCloudAccount;
9084
+ exports.investigationSqlV2ApiControllerExecuteSqlQuery = investigationSqlV2ApiControllerExecuteSqlQuery;
7686
9085
  const investigationGetInvestigationById = (options) => {
7687
9086
  return (options.client ?? client_gen_1.client).get({
7688
9087
  security: [
@@ -9122,17 +10521,125 @@ const processorGetProcessorTypeByAssetType = (options) => {
9122
10521
  type: 'http'
9123
10522
  }
9124
10523
  ],
9125
- url: '/api/public/processors/type/{assetType}',
9126
- ...options
10524
+ url: '/api/public/processors/type/{assetType}',
10525
+ ...options
10526
+ });
10527
+ };
10528
+ exports.processorGetProcessorTypeByAssetType = processorGetProcessorTypeByAssetType;
10529
+ /**
10530
+ * Reboot a single asset
10531
+ * 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.
10532
+ */
10533
+ const assetActionV2ApiControllerReboot = (options) => {
10534
+ return (options.client ?? client_gen_1.client).post({
10535
+ responseType: 'json',
10536
+ security: [
10537
+ {
10538
+ in: 'cookie',
10539
+ name: 'Authentication',
10540
+ type: 'apiKey'
10541
+ },
10542
+ {
10543
+ scheme: 'bearer',
10544
+ type: 'http'
10545
+ }
10546
+ ],
10547
+ url: '/api/v2/assets/{idOrName}/reboot',
10548
+ ...options,
10549
+ headers: {
10550
+ 'Content-Type': 'application/json',
10551
+ ...options.headers
10552
+ }
10553
+ });
10554
+ };
10555
+ exports.assetActionV2ApiControllerReboot = assetActionV2ApiControllerReboot;
10556
+ /**
10557
+ * Shut down a single asset
10558
+ * 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.
10559
+ */
10560
+ const assetActionV2ApiControllerShutdown = (options) => {
10561
+ return (options.client ?? client_gen_1.client).post({
10562
+ responseType: 'json',
10563
+ security: [
10564
+ {
10565
+ in: 'cookie',
10566
+ name: 'Authentication',
10567
+ type: 'apiKey'
10568
+ },
10569
+ {
10570
+ scheme: 'bearer',
10571
+ type: 'http'
10572
+ }
10573
+ ],
10574
+ url: '/api/v2/assets/{idOrName}/shutdown',
10575
+ ...options,
10576
+ headers: {
10577
+ 'Content-Type': 'application/json',
10578
+ ...options.headers
10579
+ }
10580
+ });
10581
+ };
10582
+ exports.assetActionV2ApiControllerShutdown = assetActionV2ApiControllerShutdown;
10583
+ /**
10584
+ * Isolate a single asset
10585
+ * 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.
10586
+ */
10587
+ const assetActionV2ApiControllerIsolate = (options) => {
10588
+ return (options.client ?? client_gen_1.client).post({
10589
+ responseType: 'json',
10590
+ security: [
10591
+ {
10592
+ in: 'cookie',
10593
+ name: 'Authentication',
10594
+ type: 'apiKey'
10595
+ },
10596
+ {
10597
+ scheme: 'bearer',
10598
+ type: 'http'
10599
+ }
10600
+ ],
10601
+ url: '/api/v2/assets/{idOrName}/isolate',
10602
+ ...options,
10603
+ headers: {
10604
+ 'Content-Type': 'application/json',
10605
+ ...options.headers
10606
+ }
10607
+ });
10608
+ };
10609
+ exports.assetActionV2ApiControllerIsolate = assetActionV2ApiControllerIsolate;
10610
+ /**
10611
+ * Unisolate a single asset
10612
+ * 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.
10613
+ */
10614
+ const assetActionV2ApiControllerUnisolate = (options) => {
10615
+ return (options.client ?? client_gen_1.client).post({
10616
+ responseType: 'json',
10617
+ security: [
10618
+ {
10619
+ in: 'cookie',
10620
+ name: 'Authentication',
10621
+ type: 'apiKey'
10622
+ },
10623
+ {
10624
+ scheme: 'bearer',
10625
+ type: 'http'
10626
+ }
10627
+ ],
10628
+ url: '/api/v2/assets/{idOrName}/unisolate',
10629
+ ...options,
10630
+ headers: {
10631
+ 'Content-Type': 'application/json',
10632
+ ...options.headers
10633
+ }
9127
10634
  });
9128
10635
  };
9129
- exports.processorGetProcessorTypeByAssetType = processorGetProcessorTypeByAssetType;
10636
+ exports.assetActionV2ApiControllerUnisolate = assetActionV2ApiControllerUnisolate;
9130
10637
  /**
9131
- * Get asset issue/actionability stats
9132
- * Aggregated counts (version/connectivity/deployment/assignment/isolation) for assets matching the same filter set as GET /api/v2/assets. organizations defaults to allAccessible when omitted.
10638
+ * Retrieve the agent logs of a single asset
10639
+ * 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
10640
  */
9134
- const assetV2ApiControllerGetStats = (options) => {
9135
- return (options?.client ?? client_gen_1.client).get({
10641
+ const assetActionV2ApiControllerRetrieveLogs = (options) => {
10642
+ return (options.client ?? client_gen_1.client).post({
9136
10643
  responseType: 'json',
9137
10644
  security: [
9138
10645
  {
@@ -9145,18 +10652,22 @@ const assetV2ApiControllerGetStats = (options) => {
9145
10652
  type: 'http'
9146
10653
  }
9147
10654
  ],
9148
- url: '/api/v2/assets/stats',
9149
- ...options
10655
+ url: '/api/v2/assets/{idOrName}/log-retrieval',
10656
+ ...options,
10657
+ headers: {
10658
+ 'Content-Type': 'application/json',
10659
+ ...options.headers
10660
+ }
9150
10661
  });
9151
10662
  };
9152
- exports.assetV2ApiControllerGetStats = assetV2ApiControllerGetStats;
10663
+ exports.assetActionV2ApiControllerRetrieveLogs = assetActionV2ApiControllerRetrieveLogs;
9153
10664
  /**
9154
- * Export assets as CSV
9155
- * Streams assets matching the GET /api/v2/assets filter/sort model as text/csv. Successful response bypasses the JSON envelope. Note: tag filtering (tagIds) is not applied on export.
10665
+ * Update the agent version on a single asset
10666
+ * 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
10667
  */
9157
- const assetV2ApiControllerExportAssets = (options) => {
9158
- return (options.client ?? client_gen_1.client).get({
9159
- responseType: 'text',
10668
+ const assetActionV2ApiControllerVersionUpdate = (options) => {
10669
+ return (options.client ?? client_gen_1.client).post({
10670
+ responseType: 'json',
9160
10671
  security: [
9161
10672
  {
9162
10673
  in: 'cookie',
@@ -9168,17 +10679,21 @@ const assetV2ApiControllerExportAssets = (options) => {
9168
10679
  type: 'http'
9169
10680
  }
9170
10681
  ],
9171
- url: '/api/v2/assets/export',
9172
- ...options
10682
+ url: '/api/v2/assets/{idOrName}/update',
10683
+ ...options,
10684
+ headers: {
10685
+ 'Content-Type': 'application/json',
10686
+ ...options.headers
10687
+ }
9173
10688
  });
9174
10689
  };
9175
- exports.assetV2ApiControllerExportAssets = assetV2ApiControllerExportAssets;
10690
+ exports.assetActionV2ApiControllerVersionUpdate = assetActionV2ApiControllerVersionUpdate;
9176
10691
  /**
9177
- * List assets
9178
- * Paginated (offset) list of assets visible to the caller. Supports pageNumber/pageSize/sortBy/sortType, filter[*] params, and organizations (defaults to allAccessible when omitted).
10692
+ * Enable maintenance mode on a single asset
10693
+ * 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
10694
  */
9180
- const assetV2ApiControllerFilterAssets = (options) => {
9181
- return (options?.client ?? client_gen_1.client).get({
10695
+ const assetActionV2ApiControllerEnableMaintenance = (options) => {
10696
+ return (options.client ?? client_gen_1.client).post({
9182
10697
  responseType: 'json',
9183
10698
  security: [
9184
10699
  {
@@ -9191,17 +10706,21 @@ const assetV2ApiControllerFilterAssets = (options) => {
9191
10706
  type: 'http'
9192
10707
  }
9193
10708
  ],
9194
- url: '/api/v2/assets',
9195
- ...options
10709
+ url: '/api/v2/assets/{idOrName}/enable-maintenance',
10710
+ ...options,
10711
+ headers: {
10712
+ 'Content-Type': 'application/json',
10713
+ ...options.headers
10714
+ }
9196
10715
  });
9197
10716
  };
9198
- exports.assetV2ApiControllerFilterAssets = assetV2ApiControllerFilterAssets;
10717
+ exports.assetActionV2ApiControllerEnableMaintenance = assetActionV2ApiControllerEnableMaintenance;
9199
10718
  /**
9200
- * Delete an asset by id or name
9201
- * Deletes the asset. `mode` selects purge / uninstall / purge-and-uninstall. `dryRun=true` returns a would-delete preview and executes nothing.
10719
+ * Disable maintenance mode on a single asset
10720
+ * 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
10721
  */
9203
- const assetV2ApiControllerDeleteAsset = (options) => {
9204
- return (options.client ?? client_gen_1.client).delete({
10722
+ const assetActionV2ApiControllerDisableMaintenance = (options) => {
10723
+ return (options.client ?? client_gen_1.client).post({
9205
10724
  responseType: 'json',
9206
10725
  security: [
9207
10726
  {
@@ -9214,17 +10733,22 @@ const assetV2ApiControllerDeleteAsset = (options) => {
9214
10733
  type: 'http'
9215
10734
  }
9216
10735
  ],
9217
- url: '/api/v2/assets/{idOrName}',
9218
- ...options
10736
+ url: '/api/v2/assets/{idOrName}/disable-maintenance',
10737
+ ...options,
10738
+ headers: {
10739
+ 'Content-Type': 'application/json',
10740
+ ...options.headers
10741
+ }
9219
10742
  });
9220
10743
  };
9221
- exports.assetV2ApiControllerDeleteAsset = assetV2ApiControllerDeleteAsset;
10744
+ exports.assetActionV2ApiControllerDisableMaintenance = assetActionV2ApiControllerDisableMaintenance;
9222
10745
  /**
9223
- * Get asset by id or name
9224
- * Looks up a single asset by canonical UUID `_id` or by name. UUID lookup ignores `organizations`; name lookup searches every accessible org and returns one entry per match.
10746
+ * Import a PPC file into an existing asset
10747
+ * 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
10748
  */
9226
- const assetV2ApiControllerGetAsset = (options) => {
9227
- return (options.client ?? client_gen_1.client).get({
10749
+ const assetActionV2ApiControllerImportPpcToExistingAsset = (options) => {
10750
+ return (options.client ?? client_gen_1.client).post({
10751
+ ...client_1.formDataBodySerializer,
9228
10752
  responseType: 'json',
9229
10753
  security: [
9230
10754
  {
@@ -9237,17 +10761,21 @@ const assetV2ApiControllerGetAsset = (options) => {
9237
10761
  type: 'http'
9238
10762
  }
9239
10763
  ],
9240
- url: '/api/v2/assets/{idOrName}',
9241
- ...options
10764
+ url: '/api/v2/assets/{idOrName}/import',
10765
+ ...options,
10766
+ headers: {
10767
+ 'Content-Type': null,
10768
+ ...options.headers
10769
+ }
9242
10770
  });
9243
10771
  };
9244
- exports.assetV2ApiControllerGetAsset = assetV2ApiControllerGetAsset;
10772
+ exports.assetActionV2ApiControllerImportPpcToExistingAsset = assetActionV2ApiControllerImportPpcToExistingAsset;
9245
10773
  /**
9246
- * Replace asset tags
9247
- * Full replace: the asset tag set becomes exactly `tags`. Empty array clears all.
10774
+ * Reboot multiple assets
10775
+ * 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
10776
  */
9249
- const assetV2ApiControllerReplaceTags = (options) => {
9250
- return (options.client ?? client_gen_1.client).patch({
10777
+ const assetBulkActionV2ApiControllerReboot = (options) => {
10778
+ return (options.client ?? client_gen_1.client).post({
9251
10779
  responseType: 'json',
9252
10780
  security: [
9253
10781
  {
@@ -9260,7 +10788,7 @@ const assetV2ApiControllerReplaceTags = (options) => {
9260
10788
  type: 'http'
9261
10789
  }
9262
10790
  ],
9263
- url: '/api/v2/assets/{idOrName}/tags',
10791
+ url: '/api/v2/reboot',
9264
10792
  ...options,
9265
10793
  headers: {
9266
10794
  'Content-Type': 'application/json',
@@ -9268,13 +10796,13 @@ const assetV2ApiControllerReplaceTags = (options) => {
9268
10796
  }
9269
10797
  });
9270
10798
  };
9271
- exports.assetV2ApiControllerReplaceTags = assetV2ApiControllerReplaceTags;
10799
+ exports.assetBulkActionV2ApiControllerReboot = assetBulkActionV2ApiControllerReboot;
9272
10800
  /**
9273
- * Update asset label
9274
- * Sets the user-friendly label. Sending null clears it.
10801
+ * Shut down multiple assets
10802
+ * 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
10803
  */
9276
- const assetV2ApiControllerUpdateLabel = (options) => {
9277
- return (options.client ?? client_gen_1.client).patch({
10804
+ const assetBulkActionV2ApiControllerShutdown = (options) => {
10805
+ return (options.client ?? client_gen_1.client).post({
9278
10806
  responseType: 'json',
9279
10807
  security: [
9280
10808
  {
@@ -9287,7 +10815,7 @@ const assetV2ApiControllerUpdateLabel = (options) => {
9287
10815
  type: 'http'
9288
10816
  }
9289
10817
  ],
9290
- url: '/api/v2/assets/{idOrName}/label',
10818
+ url: '/api/v2/shutdown',
9291
10819
  ...options,
9292
10820
  headers: {
9293
10821
  'Content-Type': 'application/json',
@@ -9295,11 +10823,12 @@ const assetV2ApiControllerUpdateLabel = (options) => {
9295
10823
  }
9296
10824
  });
9297
10825
  };
9298
- exports.assetV2ApiControllerUpdateLabel = assetV2ApiControllerUpdateLabel;
10826
+ exports.assetBulkActionV2ApiControllerShutdown = assetBulkActionV2ApiControllerShutdown;
9299
10827
  /**
9300
- * Reboot a single asset
10828
+ * Isolate multiple assets
10829
+ * 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
10830
  */
9302
- const assetActionV2ApiControllerReboot = (options) => {
10831
+ const assetBulkActionV2ApiControllerIsolate = (options) => {
9303
10832
  return (options.client ?? client_gen_1.client).post({
9304
10833
  responseType: 'json',
9305
10834
  security: [
@@ -9313,7 +10842,7 @@ const assetActionV2ApiControllerReboot = (options) => {
9313
10842
  type: 'http'
9314
10843
  }
9315
10844
  ],
9316
- url: '/api/v2/assets/{idOrName}/reboot',
10845
+ url: '/api/v2/isolate',
9317
10846
  ...options,
9318
10847
  headers: {
9319
10848
  'Content-Type': 'application/json',
@@ -9321,11 +10850,12 @@ const assetActionV2ApiControllerReboot = (options) => {
9321
10850
  }
9322
10851
  });
9323
10852
  };
9324
- exports.assetActionV2ApiControllerReboot = assetActionV2ApiControllerReboot;
10853
+ exports.assetBulkActionV2ApiControllerIsolate = assetBulkActionV2ApiControllerIsolate;
9325
10854
  /**
9326
- * Shut down a single asset
10855
+ * Unisolate multiple assets
10856
+ * 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
10857
  */
9328
- const assetActionV2ApiControllerShutdown = (options) => {
10858
+ const assetBulkActionV2ApiControllerUnisolate = (options) => {
9329
10859
  return (options.client ?? client_gen_1.client).post({
9330
10860
  responseType: 'json',
9331
10861
  security: [
@@ -9339,7 +10869,7 @@ const assetActionV2ApiControllerShutdown = (options) => {
9339
10869
  type: 'http'
9340
10870
  }
9341
10871
  ],
9342
- url: '/api/v2/assets/{idOrName}/shutdown',
10872
+ url: '/api/v2/unisolate',
9343
10873
  ...options,
9344
10874
  headers: {
9345
10875
  'Content-Type': 'application/json',
@@ -9347,11 +10877,12 @@ const assetActionV2ApiControllerShutdown = (options) => {
9347
10877
  }
9348
10878
  });
9349
10879
  };
9350
- exports.assetActionV2ApiControllerShutdown = assetActionV2ApiControllerShutdown;
10880
+ exports.assetBulkActionV2ApiControllerUnisolate = assetBulkActionV2ApiControllerUnisolate;
9351
10881
  /**
9352
- * Isolate a single asset
10882
+ * Retrieve the agent logs of multiple assets
10883
+ * 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
10884
  */
9354
- const assetActionV2ApiControllerIsolate = (options) => {
10885
+ const assetBulkActionV2ApiControllerRetrieveLogs = (options) => {
9355
10886
  return (options.client ?? client_gen_1.client).post({
9356
10887
  responseType: 'json',
9357
10888
  security: [
@@ -9365,7 +10896,7 @@ const assetActionV2ApiControllerIsolate = (options) => {
9365
10896
  type: 'http'
9366
10897
  }
9367
10898
  ],
9368
- url: '/api/v2/assets/{idOrName}/isolate',
10899
+ url: '/api/v2/log-retrieval',
9369
10900
  ...options,
9370
10901
  headers: {
9371
10902
  'Content-Type': 'application/json',
@@ -9373,11 +10904,12 @@ const assetActionV2ApiControllerIsolate = (options) => {
9373
10904
  }
9374
10905
  });
9375
10906
  };
9376
- exports.assetActionV2ApiControllerIsolate = assetActionV2ApiControllerIsolate;
10907
+ exports.assetBulkActionV2ApiControllerRetrieveLogs = assetBulkActionV2ApiControllerRetrieveLogs;
9377
10908
  /**
9378
- * Unisolate a single asset
10909
+ * Update the agent version on multiple assets
10910
+ * 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
10911
  */
9380
- const assetActionV2ApiControllerUnisolate = (options) => {
10912
+ const assetBulkActionV2ApiControllerVersionUpdate = (options) => {
9381
10913
  return (options.client ?? client_gen_1.client).post({
9382
10914
  responseType: 'json',
9383
10915
  security: [
@@ -9391,7 +10923,7 @@ const assetActionV2ApiControllerUnisolate = (options) => {
9391
10923
  type: 'http'
9392
10924
  }
9393
10925
  ],
9394
- url: '/api/v2/assets/{idOrName}/unisolate',
10926
+ url: '/api/v2/version-update',
9395
10927
  ...options,
9396
10928
  headers: {
9397
10929
  'Content-Type': 'application/json',
@@ -9399,11 +10931,12 @@ const assetActionV2ApiControllerUnisolate = (options) => {
9399
10931
  }
9400
10932
  });
9401
10933
  };
9402
- exports.assetActionV2ApiControllerUnisolate = assetActionV2ApiControllerUnisolate;
10934
+ exports.assetBulkActionV2ApiControllerVersionUpdate = assetBulkActionV2ApiControllerVersionUpdate;
9403
10935
  /**
9404
- * Retrieve the agent logs of a single asset
10936
+ * Enable maintenance mode on multiple assets
10937
+ * 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
10938
  */
9406
- const assetActionV2ApiControllerRetrieveLogs = (options) => {
10939
+ const assetBulkActionV2ApiControllerEnableMaintenance = (options) => {
9407
10940
  return (options.client ?? client_gen_1.client).post({
9408
10941
  responseType: 'json',
9409
10942
  security: [
@@ -9417,7 +10950,7 @@ const assetActionV2ApiControllerRetrieveLogs = (options) => {
9417
10950
  type: 'http'
9418
10951
  }
9419
10952
  ],
9420
- url: '/api/v2/assets/{idOrName}/log-retrieval',
10953
+ url: '/api/v2/enable-maintenance',
9421
10954
  ...options,
9422
10955
  headers: {
9423
10956
  'Content-Type': 'application/json',
@@ -9425,11 +10958,12 @@ const assetActionV2ApiControllerRetrieveLogs = (options) => {
9425
10958
  }
9426
10959
  });
9427
10960
  };
9428
- exports.assetActionV2ApiControllerRetrieveLogs = assetActionV2ApiControllerRetrieveLogs;
10961
+ exports.assetBulkActionV2ApiControllerEnableMaintenance = assetBulkActionV2ApiControllerEnableMaintenance;
9429
10962
  /**
9430
- * Update the agent version on a single asset
10963
+ * Disable maintenance mode on multiple assets
10964
+ * 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
10965
  */
9432
- const assetActionV2ApiControllerVersionUpdate = (options) => {
10966
+ const assetBulkActionV2ApiControllerDisableMaintenance = (options) => {
9433
10967
  return (options.client ?? client_gen_1.client).post({
9434
10968
  responseType: 'json',
9435
10969
  security: [
@@ -9443,7 +10977,7 @@ const assetActionV2ApiControllerVersionUpdate = (options) => {
9443
10977
  type: 'http'
9444
10978
  }
9445
10979
  ],
9446
- url: '/api/v2/assets/{idOrName}/update',
10980
+ url: '/api/v2/disable-maintenance',
9447
10981
  ...options,
9448
10982
  headers: {
9449
10983
  'Content-Type': 'application/json',
@@ -9451,11 +10985,12 @@ const assetActionV2ApiControllerVersionUpdate = (options) => {
9451
10985
  }
9452
10986
  });
9453
10987
  };
9454
- exports.assetActionV2ApiControllerVersionUpdate = assetActionV2ApiControllerVersionUpdate;
10988
+ exports.assetBulkActionV2ApiControllerDisableMaintenance = assetBulkActionV2ApiControllerDisableMaintenance;
9455
10989
  /**
9456
- * Enable maintenance mode on a single asset
10990
+ * Add tag(s) to multiple assets
10991
+ * 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
10992
  */
9458
- const assetActionV2ApiControllerEnableMaintenance = (options) => {
10993
+ const assetBulkMetadataV2ApiControllerAddTags = (options) => {
9459
10994
  return (options.client ?? client_gen_1.client).post({
9460
10995
  responseType: 'json',
9461
10996
  security: [
@@ -9469,7 +11004,7 @@ const assetActionV2ApiControllerEnableMaintenance = (options) => {
9469
11004
  type: 'http'
9470
11005
  }
9471
11006
  ],
9472
- url: '/api/v2/assets/{idOrName}/enable-maintenance',
11007
+ url: '/api/v2/assets/tags',
9473
11008
  ...options,
9474
11009
  headers: {
9475
11010
  'Content-Type': 'application/json',
@@ -9477,11 +11012,12 @@ const assetActionV2ApiControllerEnableMaintenance = (options) => {
9477
11012
  }
9478
11013
  });
9479
11014
  };
9480
- exports.assetActionV2ApiControllerEnableMaintenance = assetActionV2ApiControllerEnableMaintenance;
11015
+ exports.assetBulkMetadataV2ApiControllerAddTags = assetBulkMetadataV2ApiControllerAddTags;
9481
11016
  /**
9482
- * Disable maintenance mode on a single asset
11017
+ * Remove tag(s) from multiple assets
11018
+ * 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
11019
  */
9484
- const assetActionV2ApiControllerDisableMaintenance = (options) => {
11020
+ const assetBulkMetadataV2ApiControllerRemoveTags = (options) => {
9485
11021
  return (options.client ?? client_gen_1.client).post({
9486
11022
  responseType: 'json',
9487
11023
  security: [
@@ -9495,7 +11031,7 @@ const assetActionV2ApiControllerDisableMaintenance = (options) => {
9495
11031
  type: 'http'
9496
11032
  }
9497
11033
  ],
9498
- url: '/api/v2/assets/{idOrName}/disable-maintenance',
11034
+ url: '/api/v2/assets/tags/delete',
9499
11035
  ...options,
9500
11036
  headers: {
9501
11037
  'Content-Type': 'application/json',
@@ -9503,12 +11039,13 @@ const assetActionV2ApiControllerDisableMaintenance = (options) => {
9503
11039
  }
9504
11040
  });
9505
11041
  };
9506
- exports.assetActionV2ApiControllerDisableMaintenance = assetActionV2ApiControllerDisableMaintenance;
11042
+ exports.assetBulkMetadataV2ApiControllerRemoveTags = assetBulkMetadataV2ApiControllerRemoveTags;
9507
11043
  /**
9508
- * Import a PPC file into an existing asset
11044
+ * Set the update-exclusion flag on multiple assets
11045
+ * 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
11046
  */
9510
- const assetActionV2ApiControllerImportPpcToExistingAsset = (options) => {
9511
- return (options.client ?? client_gen_1.client).post({
11047
+ const assetBulkMetadataV2ApiControllerSetUpdateExclusion = (options) => {
11048
+ return (options.client ?? client_gen_1.client).patch({
9512
11049
  responseType: 'json',
9513
11050
  security: [
9514
11051
  {
@@ -9521,16 +11058,21 @@ const assetActionV2ApiControllerImportPpcToExistingAsset = (options) => {
9521
11058
  type: 'http'
9522
11059
  }
9523
11060
  ],
9524
- url: '/api/v2/assets/{idOrName}/import',
9525
- ...options
11061
+ url: '/api/v2/assets/update-exclusion',
11062
+ ...options,
11063
+ headers: {
11064
+ 'Content-Type': 'application/json',
11065
+ ...options.headers
11066
+ }
9526
11067
  });
9527
11068
  };
9528
- exports.assetActionV2ApiControllerImportPpcToExistingAsset = assetActionV2ApiControllerImportPpcToExistingAsset;
11069
+ exports.assetBulkMetadataV2ApiControllerSetUpdateExclusion = assetBulkMetadataV2ApiControllerSetUpdateExclusion;
9529
11070
  /**
9530
- * Reboot multiple assets
11071
+ * Set or clear the relay connection route on multiple assets
11072
+ * 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
11073
  */
9532
- const assetBulkActionV2ApiControllerReboot = (options) => {
9533
- return (options.client ?? client_gen_1.client).post({
11074
+ const assetBulkMetadataV2ApiControllerSetConnectionRoute = (options) => {
11075
+ return (options.client ?? client_gen_1.client).patch({
9534
11076
  responseType: 'json',
9535
11077
  security: [
9536
11078
  {
@@ -9543,7 +11085,7 @@ const assetBulkActionV2ApiControllerReboot = (options) => {
9543
11085
  type: 'http'
9544
11086
  }
9545
11087
  ],
9546
- url: '/api/v2/reboot',
11088
+ url: '/api/v2/assets/connection-route',
9547
11089
  ...options,
9548
11090
  headers: {
9549
11091
  'Content-Type': 'application/json',
@@ -9551,12 +11093,13 @@ const assetBulkActionV2ApiControllerReboot = (options) => {
9551
11093
  }
9552
11094
  });
9553
11095
  };
9554
- exports.assetBulkActionV2ApiControllerReboot = assetBulkActionV2ApiControllerReboot;
11096
+ exports.assetBulkMetadataV2ApiControllerSetConnectionRoute = assetBulkMetadataV2ApiControllerSetConnectionRoute;
9555
11097
  /**
9556
- * Shut down multiple assets
11098
+ * Set the demanded MITRE ATT&CK Database version on multiple assets
11099
+ * 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
11100
  */
9558
- const assetBulkActionV2ApiControllerShutdown = (options) => {
9559
- return (options.client ?? client_gen_1.client).post({
11101
+ const assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = (options) => {
11102
+ return (options.client ?? client_gen_1.client).patch({
9560
11103
  responseType: 'json',
9561
11104
  security: [
9562
11105
  {
@@ -9569,7 +11112,7 @@ const assetBulkActionV2ApiControllerShutdown = (options) => {
9569
11112
  type: 'http'
9570
11113
  }
9571
11114
  ],
9572
- url: '/api/v2/shutdown',
11115
+ url: '/api/v2/assets/mitre-attack-database/version',
9573
11116
  ...options,
9574
11117
  headers: {
9575
11118
  'Content-Type': 'application/json',
@@ -9577,11 +11120,12 @@ const assetBulkActionV2ApiControllerShutdown = (options) => {
9577
11120
  }
9578
11121
  });
9579
11122
  };
9580
- exports.assetBulkActionV2ApiControllerShutdown = assetBulkActionV2ApiControllerShutdown;
11123
+ exports.assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion;
9581
11124
  /**
9582
- * Isolate multiple assets
11125
+ * Bulk delete assets (purge / uninstall / purge-and-uninstall)
11126
+ * 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
11127
  */
9584
- const assetBulkActionV2ApiControllerIsolate = (options) => {
11128
+ const assetBulkMetadataV2ApiControllerDeleteAssets = (options) => {
9585
11129
  return (options.client ?? client_gen_1.client).post({
9586
11130
  responseType: 'json',
9587
11131
  security: [
@@ -9595,7 +11139,7 @@ const assetBulkActionV2ApiControllerIsolate = (options) => {
9595
11139
  type: 'http'
9596
11140
  }
9597
11141
  ],
9598
- url: '/api/v2/isolate',
11142
+ url: '/api/v2/assets/delete',
9599
11143
  ...options,
9600
11144
  headers: {
9601
11145
  'Content-Type': 'application/json',
@@ -9603,12 +11147,14 @@ const assetBulkActionV2ApiControllerIsolate = (options) => {
9603
11147
  }
9604
11148
  });
9605
11149
  };
9606
- exports.assetBulkActionV2ApiControllerIsolate = assetBulkActionV2ApiControllerIsolate;
11150
+ exports.assetBulkMetadataV2ApiControllerDeleteAssets = assetBulkMetadataV2ApiControllerDeleteAssets;
9607
11151
  /**
9608
- * Unisolate multiple assets
11152
+ * Import an off-network PPC (find-or-create asset + offline task)
11153
+ * 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, organizations: [{ id, name }], 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
11154
  */
9610
- const assetBulkActionV2ApiControllerUnisolate = (options) => {
11155
+ const assetBulkMetadataV2ApiControllerImportOffNetworkPpc = (options) => {
9611
11156
  return (options.client ?? client_gen_1.client).post({
11157
+ ...client_1.formDataBodySerializer,
9612
11158
  responseType: 'json',
9613
11159
  security: [
9614
11160
  {
@@ -9621,19 +11167,20 @@ const assetBulkActionV2ApiControllerUnisolate = (options) => {
9621
11167
  type: 'http'
9622
11168
  }
9623
11169
  ],
9624
- url: '/api/v2/unisolate',
11170
+ url: '/api/v2/assets/import',
9625
11171
  ...options,
9626
11172
  headers: {
9627
- 'Content-Type': 'application/json',
11173
+ 'Content-Type': null,
9628
11174
  ...options.headers
9629
11175
  }
9630
11176
  });
9631
11177
  };
9632
- exports.assetBulkActionV2ApiControllerUnisolate = assetBulkActionV2ApiControllerUnisolate;
11178
+ exports.assetBulkMetadataV2ApiControllerImportOffNetworkPpc = assetBulkMetadataV2ApiControllerImportOffNetworkPpc;
9633
11179
  /**
9634
- * Retrieve the agent logs of multiple assets
11180
+ * Run triage rule(s) on multiple assets
11181
+ * 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
11182
  */
9636
- const assetBulkActionV2ApiControllerRetrieveLogs = (options) => {
11183
+ const assetBulkTriageV2ApiControllerRunTriage = (options) => {
9637
11184
  return (options.client ?? client_gen_1.client).post({
9638
11185
  responseType: 'json',
9639
11186
  security: [
@@ -9647,7 +11194,7 @@ const assetBulkActionV2ApiControllerRetrieveLogs = (options) => {
9647
11194
  type: 'http'
9648
11195
  }
9649
11196
  ],
9650
- url: '/api/v2/log-retrieval',
11197
+ url: '/api/v2/triage',
9651
11198
  ...options,
9652
11199
  headers: {
9653
11200
  'Content-Type': 'application/json',
@@ -9655,12 +11202,13 @@ const assetBulkActionV2ApiControllerRetrieveLogs = (options) => {
9655
11202
  }
9656
11203
  });
9657
11204
  };
9658
- exports.assetBulkActionV2ApiControllerRetrieveLogs = assetBulkActionV2ApiControllerRetrieveLogs;
11205
+ exports.assetBulkTriageV2ApiControllerRunTriage = assetBulkTriageV2ApiControllerRunTriage;
9659
11206
  /**
9660
- * Update the agent version on multiple assets
11207
+ * List InterAct messages for an asset
11208
+ * 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 and creation date range. Use this when the user asks for an asset's shell command history. 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
11209
  */
9662
- const assetBulkActionV2ApiControllerVersionUpdate = (options) => {
9663
- return (options.client ?? client_gen_1.client).post({
11210
+ const assetInteractMessageV2ApiControllerListForAsset = (options) => {
11211
+ return (options.client ?? client_gen_1.client).get({
9664
11212
  responseType: 'json',
9665
11213
  security: [
9666
11214
  {
@@ -9673,19 +11221,16 @@ const assetBulkActionV2ApiControllerVersionUpdate = (options) => {
9673
11221
  type: 'http'
9674
11222
  }
9675
11223
  ],
9676
- url: '/api/v2/version-update',
9677
- ...options,
9678
- headers: {
9679
- 'Content-Type': 'application/json',
9680
- ...options.headers
9681
- }
11224
+ url: '/api/v2/assets/{idOrName}/interact',
11225
+ ...options
9682
11226
  });
9683
11227
  };
9684
- exports.assetBulkActionV2ApiControllerVersionUpdate = assetBulkActionV2ApiControllerVersionUpdate;
11228
+ exports.assetInteractMessageV2ApiControllerListForAsset = assetInteractMessageV2ApiControllerListForAsset;
9685
11229
  /**
9686
- * Enable maintenance mode on multiple assets
11230
+ * Run an InterAct command on an asset
11231
+ * 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
11232
  */
9688
- const assetBulkActionV2ApiControllerEnableMaintenance = (options) => {
11233
+ const assetInteractV2ApiControllerRunCommand = (options) => {
9689
11234
  return (options.client ?? client_gen_1.client).post({
9690
11235
  responseType: 'json',
9691
11236
  security: [
@@ -9699,7 +11244,7 @@ const assetBulkActionV2ApiControllerEnableMaintenance = (options) => {
9699
11244
  type: 'http'
9700
11245
  }
9701
11246
  ],
9702
- url: '/api/v2/enable-maintenance',
11247
+ url: '/api/v2/assets/{idOrName}/interact',
9703
11248
  ...options,
9704
11249
  headers: {
9705
11250
  'Content-Type': 'application/json',
@@ -9707,11 +11252,12 @@ const assetBulkActionV2ApiControllerEnableMaintenance = (options) => {
9707
11252
  }
9708
11253
  });
9709
11254
  };
9710
- exports.assetBulkActionV2ApiControllerEnableMaintenance = assetBulkActionV2ApiControllerEnableMaintenance;
11255
+ exports.assetInteractV2ApiControllerRunCommand = assetInteractV2ApiControllerRunCommand;
9711
11256
  /**
9712
- * Disable maintenance mode on multiple assets
11257
+ * Cancel the running InterAct command on an asset
11258
+ * 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
11259
  */
9714
- const assetBulkActionV2ApiControllerDisableMaintenance = (options) => {
11260
+ const assetInteractV2ApiControllerCancelCommand = (options) => {
9715
11261
  return (options.client ?? client_gen_1.client).post({
9716
11262
  responseType: 'json',
9717
11263
  security: [
@@ -9725,7 +11271,7 @@ const assetBulkActionV2ApiControllerDisableMaintenance = (options) => {
9725
11271
  type: 'http'
9726
11272
  }
9727
11273
  ],
9728
- url: '/api/v2/disable-maintenance',
11274
+ url: '/api/v2/assets/{idOrName}/interact/cancel',
9729
11275
  ...options,
9730
11276
  headers: {
9731
11277
  'Content-Type': 'application/json',
@@ -9733,11 +11279,12 @@ const assetBulkActionV2ApiControllerDisableMaintenance = (options) => {
9733
11279
  }
9734
11280
  });
9735
11281
  };
9736
- exports.assetBulkActionV2ApiControllerDisableMaintenance = assetBulkActionV2ApiControllerDisableMaintenance;
11282
+ exports.assetInteractV2ApiControllerCancelCommand = assetInteractV2ApiControllerCancelCommand;
9737
11283
  /**
9738
- * Add tag(s) to multiple assets
11284
+ * Close the InterAct session on an asset
11285
+ * 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
11286
  */
9740
- const assetBulkMetadataV2ApiControllerAddTags = (options) => {
11287
+ const assetInteractV2ApiControllerCloseSession = (options) => {
9741
11288
  return (options.client ?? client_gen_1.client).post({
9742
11289
  responseType: 'json',
9743
11290
  security: [
@@ -9751,7 +11298,7 @@ const assetBulkMetadataV2ApiControllerAddTags = (options) => {
9751
11298
  type: 'http'
9752
11299
  }
9753
11300
  ],
9754
- url: '/api/v2/assets/tags',
11301
+ url: '/api/v2/assets/{idOrName}/interact/close',
9755
11302
  ...options,
9756
11303
  headers: {
9757
11304
  'Content-Type': 'application/json',
@@ -9759,12 +11306,13 @@ const assetBulkMetadataV2ApiControllerAddTags = (options) => {
9759
11306
  }
9760
11307
  });
9761
11308
  };
9762
- exports.assetBulkMetadataV2ApiControllerAddTags = assetBulkMetadataV2ApiControllerAddTags;
11309
+ exports.assetInteractV2ApiControllerCloseSession = assetInteractV2ApiControllerCloseSession;
9763
11310
  /**
9764
- * Remove tag(s) from multiple assets
11311
+ * Get asset issue/actionability stats
11312
+ * 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
11313
  */
9766
- const assetBulkMetadataV2ApiControllerRemoveTags = (options) => {
9767
- return (options.client ?? client_gen_1.client).post({
11314
+ const assetV2ApiControllerGetStats = (options) => {
11315
+ return (options?.client ?? client_gen_1.client).get({
9768
11316
  responseType: 'json',
9769
11317
  security: [
9770
11318
  {
@@ -9777,21 +11325,18 @@ const assetBulkMetadataV2ApiControllerRemoveTags = (options) => {
9777
11325
  type: 'http'
9778
11326
  }
9779
11327
  ],
9780
- url: '/api/v2/assets/tags/delete',
9781
- ...options,
9782
- headers: {
9783
- 'Content-Type': 'application/json',
9784
- ...options.headers
9785
- }
11328
+ url: '/api/v2/assets/stats',
11329
+ ...options
9786
11330
  });
9787
11331
  };
9788
- exports.assetBulkMetadataV2ApiControllerRemoveTags = assetBulkMetadataV2ApiControllerRemoveTags;
11332
+ exports.assetV2ApiControllerGetStats = assetV2ApiControllerGetStats;
9789
11333
  /**
9790
- * Set the update-exclusion flag on multiple assets
11334
+ * Export assets as CSV
11335
+ * 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
11336
  */
9792
- const assetBulkMetadataV2ApiControllerSetUpdateExclusion = (options) => {
9793
- return (options.client ?? client_gen_1.client).patch({
9794
- responseType: 'json',
11337
+ const assetV2ApiControllerExportAssets = (options) => {
11338
+ return (options?.client ?? client_gen_1.client).get({
11339
+ responseType: 'text',
9795
11340
  security: [
9796
11341
  {
9797
11342
  in: 'cookie',
@@ -9803,20 +11348,17 @@ const assetBulkMetadataV2ApiControllerSetUpdateExclusion = (options) => {
9803
11348
  type: 'http'
9804
11349
  }
9805
11350
  ],
9806
- url: '/api/v2/assets/update-exclusion',
9807
- ...options,
9808
- headers: {
9809
- 'Content-Type': 'application/json',
9810
- ...options.headers
9811
- }
11351
+ url: '/api/v2/assets/export',
11352
+ ...options
9812
11353
  });
9813
11354
  };
9814
- exports.assetBulkMetadataV2ApiControllerSetUpdateExclusion = assetBulkMetadataV2ApiControllerSetUpdateExclusion;
11355
+ exports.assetV2ApiControllerExportAssets = assetV2ApiControllerExportAssets;
9815
11356
  /**
9816
- * Set or clear the relay connection route on multiple assets
11357
+ * List assets
11358
+ * 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
11359
  */
9818
- const assetBulkMetadataV2ApiControllerSetConnectionRoute = (options) => {
9819
- return (options.client ?? client_gen_1.client).patch({
11360
+ const assetV2ApiControllerFilterAssets = (options) => {
11361
+ return (options?.client ?? client_gen_1.client).get({
9820
11362
  responseType: 'json',
9821
11363
  security: [
9822
11364
  {
@@ -9829,20 +11371,17 @@ const assetBulkMetadataV2ApiControllerSetConnectionRoute = (options) => {
9829
11371
  type: 'http'
9830
11372
  }
9831
11373
  ],
9832
- url: '/api/v2/assets/connection-route',
9833
- ...options,
9834
- headers: {
9835
- 'Content-Type': 'application/json',
9836
- ...options.headers
9837
- }
11374
+ url: '/api/v2/assets',
11375
+ ...options
9838
11376
  });
9839
11377
  };
9840
- exports.assetBulkMetadataV2ApiControllerSetConnectionRoute = assetBulkMetadataV2ApiControllerSetConnectionRoute;
11378
+ exports.assetV2ApiControllerFilterAssets = assetV2ApiControllerFilterAssets;
9841
11379
  /**
9842
- * Set the demanded MITRE ATT&CK Database version on multiple assets
11380
+ * Delete an asset by id or name
11381
+ * 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
11382
  */
9844
- const assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = (options) => {
9845
- return (options.client ?? client_gen_1.client).patch({
11383
+ const assetV2ApiControllerDeleteAsset = (options) => {
11384
+ return (options.client ?? client_gen_1.client).delete({
9846
11385
  responseType: 'json',
9847
11386
  security: [
9848
11387
  {
@@ -9855,20 +11394,17 @@ const assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = (options) => {
9855
11394
  type: 'http'
9856
11395
  }
9857
11396
  ],
9858
- url: '/api/v2/assets/mitre-attack-database/version',
9859
- ...options,
9860
- headers: {
9861
- 'Content-Type': 'application/json',
9862
- ...options.headers
9863
- }
11397
+ url: '/api/v2/assets/{idOrName}',
11398
+ ...options
9864
11399
  });
9865
11400
  };
9866
- exports.assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion = assetBulkMetadataV2ApiControllerSetMitreDatabaseVersion;
11401
+ exports.assetV2ApiControllerDeleteAsset = assetV2ApiControllerDeleteAsset;
9867
11402
  /**
9868
- * Bulk delete assets (purge / uninstall / purge-and-uninstall)
11403
+ * Get asset by id or name
11404
+ * 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
11405
  */
9870
- const assetBulkMetadataV2ApiControllerDeleteAssets = (options) => {
9871
- return (options.client ?? client_gen_1.client).post({
11406
+ const assetV2ApiControllerGetAsset = (options) => {
11407
+ return (options.client ?? client_gen_1.client).get({
9872
11408
  responseType: 'json',
9873
11409
  security: [
9874
11410
  {
@@ -9881,21 +11417,17 @@ const assetBulkMetadataV2ApiControllerDeleteAssets = (options) => {
9881
11417
  type: 'http'
9882
11418
  }
9883
11419
  ],
9884
- url: '/api/v2/assets/delete',
9885
- ...options,
9886
- headers: {
9887
- 'Content-Type': 'application/json',
9888
- ...options.headers
9889
- }
11420
+ url: '/api/v2/assets/{idOrName}',
11421
+ ...options
9890
11422
  });
9891
11423
  };
9892
- exports.assetBulkMetadataV2ApiControllerDeleteAssets = assetBulkMetadataV2ApiControllerDeleteAssets;
11424
+ exports.assetV2ApiControllerGetAsset = assetV2ApiControllerGetAsset;
9893
11425
  /**
9894
- * Import an off-network PPC (find-or-create asset + offline task)
11426
+ * Replace asset tags
11427
+ * 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
11428
  */
9896
- const assetBulkMetadataV2ApiControllerImportOffNetworkPpc = (options) => {
9897
- return (options.client ?? client_gen_1.client).post({
9898
- ...client_1.formDataBodySerializer,
11429
+ const assetV2ApiControllerReplaceTags = (options) => {
11430
+ return (options.client ?? client_gen_1.client).patch({
9899
11431
  responseType: 'json',
9900
11432
  security: [
9901
11433
  {
@@ -9908,20 +11440,21 @@ const assetBulkMetadataV2ApiControllerImportOffNetworkPpc = (options) => {
9908
11440
  type: 'http'
9909
11441
  }
9910
11442
  ],
9911
- url: '/api/v2/assets/import',
11443
+ url: '/api/v2/assets/{idOrName}/tags',
9912
11444
  ...options,
9913
11445
  headers: {
9914
- 'Content-Type': null,
11446
+ 'Content-Type': 'application/json',
9915
11447
  ...options.headers
9916
11448
  }
9917
11449
  });
9918
11450
  };
9919
- exports.assetBulkMetadataV2ApiControllerImportOffNetworkPpc = assetBulkMetadataV2ApiControllerImportOffNetworkPpc;
11451
+ exports.assetV2ApiControllerReplaceTags = assetV2ApiControllerReplaceTags;
9920
11452
  /**
9921
- * Run triage rule(s) on multiple assets
11453
+ * Update asset label
11454
+ * 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
11455
  */
9923
- const assetBulkTriageV2ApiControllerRunTriage = (options) => {
9924
- return (options.client ?? client_gen_1.client).post({
11456
+ const assetV2ApiControllerUpdateLabel = (options) => {
11457
+ return (options.client ?? client_gen_1.client).patch({
9925
11458
  responseType: 'json',
9926
11459
  security: [
9927
11460
  {
@@ -9934,7 +11467,7 @@ const assetBulkTriageV2ApiControllerRunTriage = (options) => {
9934
11467
  type: 'http'
9935
11468
  }
9936
11469
  ],
9937
- url: '/api/v2/triage',
11470
+ url: '/api/v2/assets/{idOrName}/label',
9938
11471
  ...options,
9939
11472
  headers: {
9940
11473
  'Content-Type': 'application/json',
@@ -9942,10 +11475,10 @@ const assetBulkTriageV2ApiControllerRunTriage = (options) => {
9942
11475
  }
9943
11476
  });
9944
11477
  };
9945
- exports.assetBulkTriageV2ApiControllerRunTriage = assetBulkTriageV2ApiControllerRunTriage;
11478
+ exports.assetV2ApiControllerUpdateLabel = assetV2ApiControllerUpdateLabel;
9946
11479
  /**
9947
- * List the triage task history of a single asset
9948
- * List the triage task history of a single asset
11480
+ * List the hunt task history of a single asset
11481
+ * 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
11482
  */
9950
11483
  const assetTriageV2ApiControllerFilterTriageTasks = (options) => {
9951
11484
  return (options.client ?? client_gen_1.client).get({
@@ -9961,13 +11494,14 @@ const assetTriageV2ApiControllerFilterTriageTasks = (options) => {
9961
11494
  type: 'http'
9962
11495
  }
9963
11496
  ],
9964
- url: '/api/v2/assets/{idOrName}/triage',
11497
+ url: '/api/v2/assets/{idOrName}/hunt',
9965
11498
  ...options
9966
11499
  });
9967
11500
  };
9968
11501
  exports.assetTriageV2ApiControllerFilterTriageTasks = assetTriageV2ApiControllerFilterTriageTasks;
9969
11502
  /**
9970
11503
  * Run triage rule(s) on a single asset
11504
+ * 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
11505
  */
9972
11506
  const assetTriageV2ApiControllerRunTriage = (options) => {
9973
11507
  return (options.client ?? client_gen_1.client).post({
@@ -9983,7 +11517,7 @@ const assetTriageV2ApiControllerRunTriage = (options) => {
9983
11517
  type: 'http'
9984
11518
  }
9985
11519
  ],
9986
- url: '/api/v2/assets/{idOrName}/triage',
11520
+ url: '/api/v2/assets/{idOrName}/hunt',
9987
11521
  ...options,
9988
11522
  headers: {
9989
11523
  'Content-Type': 'application/json',
@@ -9994,6 +11528,7 @@ const assetTriageV2ApiControllerRunTriage = (options) => {
9994
11528
  exports.assetTriageV2ApiControllerRunTriage = assetTriageV2ApiControllerRunTriage;
9995
11529
  /**
9996
11530
  * Cancel triage tasks on a single asset
11531
+ * 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
11532
  */
9998
11533
  const assetTriageV2ApiControllerCancelTriage = (options) => {
9999
11534
  return (options.client ?? client_gen_1.client).post({
@@ -10009,7 +11544,7 @@ const assetTriageV2ApiControllerCancelTriage = (options) => {
10009
11544
  type: 'http'
10010
11545
  }
10011
11546
  ],
10012
- url: '/api/v2/assets/{idOrName}/triage/cancel',
11547
+ url: '/api/v2/assets/{idOrName}/hunt/cancel',
10013
11548
  ...options,
10014
11549
  headers: {
10015
11550
  'Content-Type': 'application/json',
@@ -10020,6 +11555,7 @@ const assetTriageV2ApiControllerCancelTriage = (options) => {
10020
11555
  exports.assetTriageV2ApiControllerCancelTriage = assetTriageV2ApiControllerCancelTriage;
10021
11556
  /**
10022
11557
  * Delete one asset's triage task assignment
11558
+ * 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
11559
  */
10024
11560
  const assetTriageV2ApiControllerDeleteTriageAssignment = (options) => {
10025
11561
  return (options.client ?? client_gen_1.client).delete({
@@ -10035,13 +11571,14 @@ const assetTriageV2ApiControllerDeleteTriageAssignment = (options) => {
10035
11571
  type: 'http'
10036
11572
  }
10037
11573
  ],
10038
- url: '/api/v2/assets/{idOrName}/triage/{taskId}',
11574
+ url: '/api/v2/assets/{idOrName}/hunt/{taskId}',
10039
11575
  ...options
10040
11576
  });
10041
11577
  };
10042
11578
  exports.assetTriageV2ApiControllerDeleteTriageAssignment = assetTriageV2ApiControllerDeleteTriageAssignment;
10043
11579
  /**
10044
11580
  * Start an evidence or image acquisition on a single asset
11581
+ * 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
11582
  */
10046
11583
  const assetAcquisitionV2ApiControllerAcquire = (options) => {
10047
11584
  return (options.client ?? client_gen_1.client).post({
@@ -10068,6 +11605,7 @@ const assetAcquisitionV2ApiControllerAcquire = (options) => {
10068
11605
  exports.assetAcquisitionV2ApiControllerAcquire = assetAcquisitionV2ApiControllerAcquire;
10069
11606
  /**
10070
11607
  * Cancel acquisition tasks on a single asset
11608
+ * 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
11609
  */
10072
11610
  const assetAcquisitionV2ApiControllerCancelAcquisition = (options) => {
10073
11611
  return (options.client ?? client_gen_1.client).post({
@@ -10094,6 +11632,7 @@ const assetAcquisitionV2ApiControllerCancelAcquisition = (options) => {
10094
11632
  exports.assetAcquisitionV2ApiControllerCancelAcquisition = assetAcquisitionV2ApiControllerCancelAcquisition;
10095
11633
  /**
10096
11634
  * Delete one asset's acquisition task assignment
11635
+ * 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
11636
  */
10098
11637
  const assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment = (options) => {
10099
11638
  return (options.client ?? client_gen_1.client).delete({
@@ -10116,7 +11655,7 @@ const assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment = (options) =>
10116
11655
  exports.assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment = assetAcquisitionV2ApiControllerDeleteAcquisitionAssignment;
10117
11656
  /**
10118
11657
  * List the acquisition task history of a single asset
10119
- * List the acquisition task history of a single asset
11658
+ * 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
11659
  */
10121
11660
  const assetAcquisitionV2ApiControllerFilterAcquisitionTasks = (options) => {
10122
11661
  return (options.client ?? client_gen_1.client).get({
@@ -10137,113 +11676,9 @@ const assetAcquisitionV2ApiControllerFilterAcquisitionTasks = (options) => {
10137
11676
  });
10138
11677
  };
10139
11678
  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
11679
  /**
10245
11680
  * List InterAct sessions for an asset
10246
- * Paginated InterAct sessions for the asset with derived activity state.
11681
+ * 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
11682
  */
10248
11683
  const assetInteractMessageV2ApiControllerListSessionsForAsset = (options) => {
10249
11684
  return (options.client ?? client_gen_1.client).get({
@@ -10266,7 +11701,7 @@ const assetInteractMessageV2ApiControllerListSessionsForAsset = (options) => {
10266
11701
  exports.assetInteractMessageV2ApiControllerListSessionsForAsset = assetInteractMessageV2ApiControllerListSessionsForAsset;
10267
11702
  /**
10268
11703
  * Get an InterAct message scoped to an asset
10269
- * Single InterAct message wrapped in entities[0]; cross-asset mismatch returns 404.
11704
+ * 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
11705
  */
10271
11706
  const assetInteractMessageV2ApiControllerGetMessage = (options) => {
10272
11707
  return (options.client ?? client_gen_1.client).get({
@@ -10289,7 +11724,7 @@ const assetInteractMessageV2ApiControllerGetMessage = (options) => {
10289
11724
  exports.assetInteractMessageV2ApiControllerGetMessage = assetInteractMessageV2ApiControllerGetMessage;
10290
11725
  /**
10291
11726
  * Download an InterAct message output
10292
- * Streams the message output as an attachment; bypasses the JSON envelope.
11727
+ * 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
11728
  */
10294
11729
  const assetInteractMessageV2ApiControllerDownloadMessageOutput = (options) => {
10295
11730
  return (options.client ?? client_gen_1.client).get({
@@ -10312,7 +11747,7 @@ const assetInteractMessageV2ApiControllerDownloadMessageOutput = (options) => {
10312
11747
  exports.assetInteractMessageV2ApiControllerDownloadMessageOutput = assetInteractMessageV2ApiControllerDownloadMessageOutput;
10313
11748
  /**
10314
11749
  * Get an InterAct session report scoped to an asset
10315
- * Self-contained session report; JSON by default, HTML when format=html.
11750
+ * 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
11751
  */
10317
11752
  const assetInteractMessageV2ApiControllerGetSessionReport = (options) => {
10318
11753
  return (options.client ?? client_gen_1.client).get({
@@ -10830,6 +12265,7 @@ const automationHubFilterAutomations = (options) => {
10830
12265
  exports.automationHubFilterAutomations = automationHubFilterAutomations;
10831
12266
  const automationHubCreateAutomation = (options) => {
10832
12267
  return (options.client ?? client_gen_1.client).post({
12268
+ responseType: 'json',
10833
12269
  security: [
10834
12270
  {
10835
12271
  scheme: 'bearer',
@@ -10979,6 +12415,20 @@ const automationHubGetAutomationChangeHistory = (options) => {
10979
12415
  });
10980
12416
  };
10981
12417
  exports.automationHubGetAutomationChangeHistory = automationHubGetAutomationChangeHistory;
12418
+ const automationHubGenerateTriggerSecret = (options) => {
12419
+ return (options.client ?? client_gen_1.client).post({
12420
+ responseType: 'json',
12421
+ security: [
12422
+ {
12423
+ scheme: 'bearer',
12424
+ type: 'http'
12425
+ }
12426
+ ],
12427
+ url: '/api/public/automation-hub/{id}/trigger/secret',
12428
+ ...options
12429
+ });
12430
+ };
12431
+ exports.automationHubGenerateTriggerSecret = automationHubGenerateTriggerSecret;
10982
12432
  const automationHubEnableAutomation = (options) => {
10983
12433
  return (options.client ?? client_gen_1.client).patch({
10984
12434
  security: [
@@ -11256,6 +12706,7 @@ const cloudAcquisitionProfilesUpdate = (options) => {
11256
12706
  exports.cloudAcquisitionProfilesUpdate = cloudAcquisitionProfilesUpdate;
11257
12707
  /**
11258
12708
  * List cloud acquisition profiles
12709
+ * 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, organizations[{id,name}], 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 an empty organizations array are global.
11259
12710
  */
11260
12711
  const cloudAcquisitionLibraryApiControllerList = (options) => {
11261
12712
  return (options?.client ?? client_gen_1.client).get({
@@ -11278,6 +12729,7 @@ const cloudAcquisitionLibraryApiControllerList = (options) => {
11278
12729
  exports.cloudAcquisitionLibraryApiControllerList = cloudAcquisitionLibraryApiControllerList;
11279
12730
  /**
11280
12731
  * Create cloud acquisition profile
12732
+ * 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. Body `organizationIds` controls which organizations own the profile; common query `organizations`, `orgs`, and `org` parameters are rejected. 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
12733
  */
11282
12734
  const cloudAcquisitionLibraryApiControllerCreate = (options) => {
11283
12735
  return (options.client ?? client_gen_1.client).post({
@@ -11304,6 +12756,7 @@ const cloudAcquisitionLibraryApiControllerCreate = (options) => {
11304
12756
  exports.cloudAcquisitionLibraryApiControllerCreate = cloudAcquisitionLibraryApiControllerCreate;
11305
12757
  /**
11306
12758
  * Bulk delete cloud acquisition profiles
12759
+ * 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
12760
  */
11308
12761
  const cloudAcquisitionLibraryApiControllerBulkDelete = (options) => {
11309
12762
  return (options.client ?? client_gen_1.client).post({
@@ -11330,6 +12783,7 @@ const cloudAcquisitionLibraryApiControllerBulkDelete = (options) => {
11330
12783
  exports.cloudAcquisitionLibraryApiControllerBulkDelete = cloudAcquisitionLibraryApiControllerBulkDelete;
11331
12784
  /**
11332
12785
  * Delete cloud acquisition profile
12786
+ * 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
12787
  */
11334
12788
  const cloudAcquisitionLibraryApiControllerDelete = (options) => {
11335
12789
  return (options.client ?? client_gen_1.client).delete({
@@ -11352,6 +12806,7 @@ const cloudAcquisitionLibraryApiControllerDelete = (options) => {
11352
12806
  exports.cloudAcquisitionLibraryApiControllerDelete = cloudAcquisitionLibraryApiControllerDelete;
11353
12807
  /**
11354
12808
  * Get cloud acquisition profile by id or name
12809
+ * 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, organizations[{id,name}], 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
12810
  */
11356
12811
  const cloudAcquisitionLibraryApiControllerGet = (options) => {
11357
12812
  return (options.client ?? client_gen_1.client).get({
@@ -11374,6 +12829,7 @@ const cloudAcquisitionLibraryApiControllerGet = (options) => {
11374
12829
  exports.cloudAcquisitionLibraryApiControllerGet = cloudAcquisitionLibraryApiControllerGet;
11375
12830
  /**
11376
12831
  * Update cloud acquisition profile
12832
+ * 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
12833
  */
11378
12834
  const cloudAcquisitionLibraryApiControllerUpdate = (options) => {
11379
12835
  return (options.client ?? client_gen_1.client).patch({
@@ -11518,6 +12974,7 @@ const imageEvidenceAcquisitionProfilesDeleteBulk = (options) => {
11518
12974
  exports.imageEvidenceAcquisitionProfilesDeleteBulk = imageEvidenceAcquisitionProfilesDeleteBulk;
11519
12975
  /**
11520
12976
  * List disk image acquisition profiles
12977
+ * 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, organizations[{id,name}], 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 an empty organizations array are global.
11521
12978
  */
11522
12979
  const diskImageAcquisitionLibraryApiControllerList = (options) => {
11523
12980
  return (options?.client ?? client_gen_1.client).get({
@@ -11540,6 +12997,7 @@ const diskImageAcquisitionLibraryApiControllerList = (options) => {
11540
12997
  exports.diskImageAcquisitionLibraryApiControllerList = diskImageAcquisitionLibraryApiControllerList;
11541
12998
  /**
11542
12999
  * Create disk image acquisition profile
13000
+ * 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. Body `organizationIds` controls which organizations own the profile; common query `organizations`, `orgs`, and `org` parameters are rejected. 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
13001
  */
11544
13002
  const diskImageAcquisitionLibraryApiControllerCreate = (options) => {
11545
13003
  return (options.client ?? client_gen_1.client).post({
@@ -11566,6 +13024,7 @@ const diskImageAcquisitionLibraryApiControllerCreate = (options) => {
11566
13024
  exports.diskImageAcquisitionLibraryApiControllerCreate = diskImageAcquisitionLibraryApiControllerCreate;
11567
13025
  /**
11568
13026
  * Bulk delete disk image acquisition profiles
13027
+ * 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
13028
  */
11570
13029
  const diskImageAcquisitionLibraryApiControllerBulkDelete = (options) => {
11571
13030
  return (options.client ?? client_gen_1.client).post({
@@ -11592,6 +13051,7 @@ const diskImageAcquisitionLibraryApiControllerBulkDelete = (options) => {
11592
13051
  exports.diskImageAcquisitionLibraryApiControllerBulkDelete = diskImageAcquisitionLibraryApiControllerBulkDelete;
11593
13052
  /**
11594
13053
  * Delete disk image acquisition profile
13054
+ * 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
13055
  */
11596
13056
  const diskImageAcquisitionLibraryApiControllerDelete = (options) => {
11597
13057
  return (options.client ?? client_gen_1.client).delete({
@@ -11614,6 +13074,7 @@ const diskImageAcquisitionLibraryApiControllerDelete = (options) => {
11614
13074
  exports.diskImageAcquisitionLibraryApiControllerDelete = diskImageAcquisitionLibraryApiControllerDelete;
11615
13075
  /**
11616
13076
  * Get disk image acquisition profile by id or name
13077
+ * 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, organizations[{id,name}], 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
13078
  */
11618
13079
  const diskImageAcquisitionLibraryApiControllerGet = (options) => {
11619
13080
  return (options.client ?? client_gen_1.client).get({
@@ -11636,6 +13097,7 @@ const diskImageAcquisitionLibraryApiControllerGet = (options) => {
11636
13097
  exports.diskImageAcquisitionLibraryApiControllerGet = diskImageAcquisitionLibraryApiControllerGet;
11637
13098
  /**
11638
13099
  * Update disk image acquisition profile
13100
+ * 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
13101
  */
11640
13102
  const diskImageAcquisitionLibraryApiControllerUpdate = (options) => {
11641
13103
  return (options.client ?? client_gen_1.client).patch({