@binalyze/air-sdk 5.25.2 → 5.26.2

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.
@@ -3,8 +3,9 @@
3
3
  // This file is auto-generated by @hey-api/openapi-ts
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  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 = exports.caseActivityV2ApiControllerFilterCaseActivities = exports.caseActivityV2ApiControllerFilterGlobalActivities = exports.organizationV2ApiControllerGetOrganizationByIdOrName = exports.organizationV2ApiControllerListOrganizations = exports.organizationUserV2ApiControllerListOrganizationUsers = exports.triageLibraryExportV2ApiControllerDownload = exports.triageLibraryExportV2ApiControllerExport = exports.triageLibraryV2ApiControllerUpdate = exports.triageLibraryV2ApiControllerGet = exports.triageLibraryV2ApiControllerDelete = exports.triageLibraryV2ApiControllerValidate = exports.triageLibraryV2ApiControllerBulkDelete = exports.triageLibraryV2ApiControllerCreate = exports.triageLibraryV2ApiControllerList = exports.acquisitionLibraryDeviceV2ApiControllerUpdate = exports.acquisitionLibraryDeviceV2ApiControllerGet = exports.acquisitionLibraryDeviceV2ApiControllerDelete = exports.acquisitionLibraryDeviceV2ApiControllerBulkDelete = exports.acquisitionLibraryDeviceV2ApiControllerCreate = exports.acquisitionLibraryDeviceV2ApiControllerList = exports.tasksTriageV2ApiControllerDeleteOne = exports.tasksTriageV2ApiControllerCancelOne = exports.tasksTriageV2ApiControllerDelete = exports.tasksTriageV2ApiControllerCancel = exports.tasksTriageV2ApiControllerListHuntTasks = exports.tasksV2ApiControllerListTaskAssignments = exports.tasksV2ApiControllerListTaskAssets = exports.tasksV2ApiControllerUpdateTask = exports.tasksV2ApiControllerGetTaskById = exports.openApiAliasV2ApiControllerGet = exports.capabilitiesV2ApiControllerGet = void 0;
6
- 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 = exports.assetActionV2ApiControllerUnisolate = exports.assetActionV2ApiControllerIsolate = exports.assetActionV2ApiControllerShutdown = exports.assetActionV2ApiControllerReboot = exports.investigationSqlV2ApiControllerExecuteSqlQuery = exports.investigationSqlV2ApiControllerGetSchema = exports.investigationEvidenceFlagV2ApiControllerUnflagEvidence = exports.investigationEvidenceFlagV2ApiControllerFlagEvidence = exports.flagsLibraryV2ApiControllerUpdate = exports.flagsLibraryV2ApiControllerGet = exports.flagsLibraryV2ApiControllerDelete = exports.flagsLibraryV2ApiControllerCreate = exports.flagsLibraryV2ApiControllerList = 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 = exports.interactLibrarySnippetV2ApiControllerGet = exports.interactLibrarySnippetV2ApiControllerDelete = exports.interactLibrarySnippetV2ApiControllerBulkDelete = exports.interactLibrarySnippetV2ApiControllerCreate = exports.interactLibrarySnippetV2ApiControllerList = exports.caseV2ApiControllerUpdateCase = exports.caseV2ApiControllerGetCaseByIdOrName = void 0;
7
- exports.diskImageAcquisitionLibraryApiControllerUpdate = exports.diskImageAcquisitionLibraryApiControllerGet = exports.diskImageAcquisitionLibraryApiControllerDelete = exports.diskImageAcquisitionLibraryApiControllerBulkDelete = exports.diskImageAcquisitionLibraryApiControllerCreate = exports.diskImageAcquisitionLibraryApiControllerList = exports.cloudAcquisitionLibraryApiControllerUpdate = exports.cloudAcquisitionLibraryApiControllerGet = exports.cloudAcquisitionLibraryApiControllerDelete = exports.cloudAcquisitionLibraryApiControllerBulkDelete = exports.cloudAcquisitionLibraryApiControllerCreate = exports.cloudAcquisitionLibraryApiControllerList = 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 = void 0;
6
+ exports.assetActionV2ApiControllerShutdown = exports.assetActionV2ApiControllerReboot = exports.investigationsDirectoryV2ApiControllerRetryFailedImports = exports.investigationsDirectoryV2ApiControllerMigrationsSummary = exports.investigationsDirectoryV2ApiControllerImportProgress = exports.investigationsDirectoryV2ApiControllerGet = exports.investigationsDirectoryV2ApiControllerList = exports.investigationSqlV2ApiControllerExecuteSqlQuery = exports.investigationSqlV2ApiControllerGetSchema = exports.investigationFindingV2ApiControllerUpdateFinding = exports.investigationFindingV2ApiControllerUnmarkFinding = exports.investigationFindingV2ApiControllerMarkAsFinding = exports.investigationEvidenceFlagV2ApiControllerUnflagEvidence = exports.investigationEvidenceFlagV2ApiControllerFlagEvidence = exports.investigationAnnotationV2ApiControllerDeleteComment = exports.investigationAnnotationV2ApiControllerCommentEvidence = exports.investigationAnnotationV2ApiControllerListComments = exports.investigationAnnotationV2ApiControllerUpdateNote = exports.flagsLibraryV2ApiControllerUpdate = exports.flagsLibraryV2ApiControllerGet = exports.flagsLibraryV2ApiControllerDelete = exports.flagsLibraryV2ApiControllerCreate = exports.flagsLibraryV2ApiControllerList = exports.exclusionRulesLibraryV2ApiControllerDeleteIndividual = exports.exclusionRulesLibraryV2ApiControllerApply = exports.exclusionRulesLibraryV2ApiControllerMatches = exports.exclusionRulesLibraryV2ApiControllerListReasons = exports.exclusionRulesLibraryV2ApiControllerCreate = exports.exclusionRulesLibraryV2ApiControllerList = exports.exclusionRulesLibraryV2ApiControllerDelete = 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 = exports.interactLibrarySnippetV2ApiControllerGet = exports.interactLibrarySnippetV2ApiControllerDelete = exports.interactLibrarySnippetV2ApiControllerBulkDelete = exports.interactLibrarySnippetV2ApiControllerCreate = exports.interactLibrarySnippetV2ApiControllerList = exports.caseV2ApiControllerUpdateCase = exports.caseV2ApiControllerGetCaseByIdOrName = void 0;
7
+ exports.cloudAcquisitionLibraryApiControllerBulkDelete = exports.cloudAcquisitionLibraryApiControllerCreate = exports.cloudAcquisitionLibraryApiControllerList = 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.assetDeploymentV2ApiControllerDeploy = 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 = exports.assetActionV2ApiControllerUnisolate = exports.assetActionV2ApiControllerIsolate = void 0;
8
+ exports.diskImageAcquisitionLibraryApiControllerUpdate = exports.diskImageAcquisitionLibraryApiControllerGet = exports.diskImageAcquisitionLibraryApiControllerDelete = exports.diskImageAcquisitionLibraryApiControllerBulkDelete = exports.diskImageAcquisitionLibraryApiControllerCreate = exports.diskImageAcquisitionLibraryApiControllerList = exports.cloudAcquisitionLibraryApiControllerUpdate = exports.cloudAcquisitionLibraryApiControllerGet = exports.cloudAcquisitionLibraryApiControllerDelete = void 0;
8
9
  const client_1 = require("./client");
9
10
  const client_gen_1 = require("./client.gen");
10
11
  /**
@@ -25,7 +26,7 @@ const capabilitiesV2ApiControllerGet = (options) => {
25
26
  type: 'http'
26
27
  }
27
28
  ],
28
- url: '/api/v2/_/capabilities',
29
+ url: '/api/v2/token/capabilities',
29
30
  ...options
30
31
  });
31
32
  };
@@ -48,7 +49,7 @@ const openApiAliasV2ApiControllerGet = (options) => {
48
49
  type: 'apiKey'
49
50
  }
50
51
  ],
51
- url: '/api/v2/_/openapi',
52
+ url: '/api/v2/openapi',
52
53
  ...options
53
54
  });
54
55
  };
@@ -1730,6 +1731,187 @@ const interactCommandV2ApiControllerList = (options) => {
1730
1731
  });
1731
1732
  };
1732
1733
  exports.interactCommandV2ApiControllerList = interactCommandV2ApiControllerList;
1734
+ /**
1735
+ * Delete exclusion rules
1736
+ * Removes exclusion rules by id. The findings they were suppressing become visible again. Ids that do not exist are reported under warnings[] code=RULES_NOT_FOUND rather than counted as deleted; a request where none exist is a 404. `dryRun` previews without deleting.
1737
+ */
1738
+ const exclusionRulesLibraryV2ApiControllerDelete = (options) => {
1739
+ return (options.client ?? client_gen_1.client).delete({
1740
+ responseType: 'json',
1741
+ security: [
1742
+ {
1743
+ in: 'cookie',
1744
+ name: 'Authentication',
1745
+ type: 'apiKey'
1746
+ },
1747
+ {
1748
+ scheme: 'bearer',
1749
+ type: 'http'
1750
+ }
1751
+ ],
1752
+ url: '/api/v2/libraries/exclusion-rules',
1753
+ ...options,
1754
+ headers: {
1755
+ 'Content-Type': 'application/json',
1756
+ ...options.headers
1757
+ }
1758
+ });
1759
+ };
1760
+ exports.exclusionRulesLibraryV2ApiControllerDelete = exclusionRulesLibraryV2ApiControllerDelete;
1761
+ /**
1762
+ * List the exclusion rules of one organization
1763
+ * Returns the finding-exclusion rules visible in one organization, with offset pagination, a case-insensitive `filter[searchTerm]` contains match on the reason and optional `filter[sourceType]` narrowing. Investigation-scoped rules are included only for investigations the caller can reach. Only RULE-type exclusions are listed: individual, per-row suppressions live on the findings that carry them, not in the library.
1764
+ */
1765
+ const exclusionRulesLibraryV2ApiControllerList = (options) => {
1766
+ return (options.client ?? client_gen_1.client).get({
1767
+ responseType: 'json',
1768
+ security: [
1769
+ {
1770
+ in: 'cookie',
1771
+ name: 'Authentication',
1772
+ type: 'apiKey'
1773
+ },
1774
+ {
1775
+ scheme: 'bearer',
1776
+ type: 'http'
1777
+ }
1778
+ ],
1779
+ url: '/api/v2/libraries/exclusion-rules',
1780
+ ...options
1781
+ });
1782
+ };
1783
+ exports.exclusionRulesLibraryV2ApiControllerList = exclusionRulesLibraryV2ApiControllerList;
1784
+ /**
1785
+ * Create exclusion rules
1786
+ * Creates one or many exclusion rules in a single call; each rule carries its own scope, and the request-level `reason` is recorded on all of them. Creating a rule SUPPRESSES matching findings from analysis, so the `dryRun` preview reports how many findings would disappear rather than only echoing the request.
1787
+ */
1788
+ const exclusionRulesLibraryV2ApiControllerCreate = (options) => {
1789
+ return (options.client ?? client_gen_1.client).post({
1790
+ responseType: 'json',
1791
+ security: [
1792
+ {
1793
+ in: 'cookie',
1794
+ name: 'Authentication',
1795
+ type: 'apiKey'
1796
+ },
1797
+ {
1798
+ scheme: 'bearer',
1799
+ type: 'http'
1800
+ }
1801
+ ],
1802
+ url: '/api/v2/libraries/exclusion-rules',
1803
+ ...options,
1804
+ headers: {
1805
+ 'Content-Type': 'application/json',
1806
+ ...options.headers
1807
+ }
1808
+ });
1809
+ };
1810
+ exports.exclusionRulesLibraryV2ApiControllerCreate = exclusionRulesLibraryV2ApiControllerCreate;
1811
+ /**
1812
+ * List the exclusion reasons already in use
1813
+ * Returns the built-in reasons plus the reasons recorded on the rules of ONE organization, so a new rule can reuse the wording the team already agreed on instead of inventing another. Scoped like the rule listing: reasons are analyst-written free text and are not shared across organizations.
1814
+ */
1815
+ const exclusionRulesLibraryV2ApiControllerListReasons = (options) => {
1816
+ return (options.client ?? client_gen_1.client).get({
1817
+ responseType: 'json',
1818
+ security: [
1819
+ {
1820
+ in: 'cookie',
1821
+ name: 'Authentication',
1822
+ type: 'apiKey'
1823
+ },
1824
+ {
1825
+ scheme: 'bearer',
1826
+ type: 'http'
1827
+ }
1828
+ ],
1829
+ url: '/api/v2/libraries/exclusion-rules/reasons',
1830
+ ...options
1831
+ });
1832
+ };
1833
+ exports.exclusionRulesLibraryV2ApiControllerListReasons = exclusionRulesLibraryV2ApiControllerListReasons;
1834
+ /**
1835
+ * Count the findings some rules would suppress
1836
+ * Evaluates draft rules against the existing findings and returns how many they would suppress. Read-only: nothing is created. The scan covers only the investigations the caller can reach, so an organization-scoped rule is sized over the caller's own view of that organization rather than all of it. Use it to size the effect of a rule before committing to it.
1837
+ */
1838
+ const exclusionRulesLibraryV2ApiControllerMatches = (options) => {
1839
+ return (options.client ?? client_gen_1.client).post({
1840
+ responseType: 'json',
1841
+ security: [
1842
+ {
1843
+ in: 'cookie',
1844
+ name: 'Authentication',
1845
+ type: 'apiKey'
1846
+ },
1847
+ {
1848
+ scheme: 'bearer',
1849
+ type: 'http'
1850
+ }
1851
+ ],
1852
+ url: '/api/v2/libraries/exclusion-rules/matches',
1853
+ ...options,
1854
+ headers: {
1855
+ 'Content-Type': 'application/json',
1856
+ ...options.headers
1857
+ }
1858
+ });
1859
+ };
1860
+ exports.exclusionRulesLibraryV2ApiControllerMatches = exclusionRulesLibraryV2ApiControllerMatches;
1861
+ /**
1862
+ * Widen an existing exclusion rule
1863
+ * Broadens an existing rule: `scope=organization` re-scopes it to a whole organization, `scope=allAssets` drops its asset restriction. Both widen what the rule suppresses and neither can be narrowed back through this endpoint -- delete and recreate instead. Widening an already organization-scoped rule to an organization is a 409, since there is nothing to widen. `dryRun` previews without applying.
1864
+ */
1865
+ const exclusionRulesLibraryV2ApiControllerApply = (options) => {
1866
+ return (options.client ?? client_gen_1.client).post({
1867
+ responseType: 'json',
1868
+ security: [
1869
+ {
1870
+ in: 'cookie',
1871
+ name: 'Authentication',
1872
+ type: 'apiKey'
1873
+ },
1874
+ {
1875
+ scheme: 'bearer',
1876
+ type: 'http'
1877
+ }
1878
+ ],
1879
+ url: '/api/v2/libraries/exclusion-rules/{ruleId}/apply',
1880
+ ...options,
1881
+ headers: {
1882
+ 'Content-Type': 'application/json',
1883
+ ...options.headers
1884
+ }
1885
+ });
1886
+ };
1887
+ exports.exclusionRulesLibraryV2ApiControllerApply = exclusionRulesLibraryV2ApiControllerApply;
1888
+ /**
1889
+ * Remove individual per-row exclusions from one investigation
1890
+ * Removes individual exclusions -- the ones that hide a single finding row -- from one investigation, making those findings visible again. Addressed by investigation because that is the scope an individual exclusion lives in. `dryRun` previews without removing.
1891
+ */
1892
+ const exclusionRulesLibraryV2ApiControllerDeleteIndividual = (options) => {
1893
+ return (options.client ?? client_gen_1.client).delete({
1894
+ responseType: 'json',
1895
+ security: [
1896
+ {
1897
+ in: 'cookie',
1898
+ name: 'Authentication',
1899
+ type: 'apiKey'
1900
+ },
1901
+ {
1902
+ scheme: 'bearer',
1903
+ type: 'http'
1904
+ }
1905
+ ],
1906
+ url: '/api/v2/libraries/exclusion-rules/individual',
1907
+ ...options,
1908
+ headers: {
1909
+ 'Content-Type': 'application/json',
1910
+ ...options.headers
1911
+ }
1912
+ });
1913
+ };
1914
+ exports.exclusionRulesLibraryV2ApiControllerDeleteIndividual = exclusionRulesLibraryV2ApiControllerDeleteIndividual;
1733
1915
  /**
1734
1916
  * List investigation flags
1735
1917
  * Lists the shared investigation flag library, scoped by `organizations`. Supports offset pagination, a case-insensitive `filter[name]` contains match and sorting by name, createdAt or updatedAt (default name ascending). Each entry carries the flag's id, name, color, description and owning organization.
@@ -1853,6 +2035,106 @@ const flagsLibraryV2ApiControllerUpdate = (options) => {
1853
2035
  });
1854
2036
  };
1855
2037
  exports.flagsLibraryV2ApiControllerUpdate = flagsLibraryV2ApiControllerUpdate;
2038
+ /**
2039
+ * Write or clear the note on evidence rows
2040
+ * Sets the note carried by one or more rows of an investigation. A row holds exactly ONE note, so writing replaces whatever was there; sending an empty `note` clears it. The note is keyed by the evidence coordinate, which means the same note is visible from the evidence grid, the Findings view and the timeline -- `source` only records where it was written. Coordinates that match no row are skipped and reported under warnings[] code=ROWS_SKIPPED. `dryRun` previews without writing.
2041
+ */
2042
+ const investigationAnnotationV2ApiControllerUpdateNote = (options) => {
2043
+ return (options.client ?? client_gen_1.client).put({
2044
+ responseType: 'json',
2045
+ security: [
2046
+ {
2047
+ in: 'cookie',
2048
+ name: 'Authentication',
2049
+ type: 'apiKey'
2050
+ },
2051
+ {
2052
+ scheme: 'bearer',
2053
+ type: 'http'
2054
+ }
2055
+ ],
2056
+ url: '/api/v2/investigations/{idOrName}/note',
2057
+ ...options,
2058
+ headers: {
2059
+ 'Content-Type': 'application/json',
2060
+ ...options.headers
2061
+ }
2062
+ });
2063
+ };
2064
+ exports.investigationAnnotationV2ApiControllerUpdateNote = investigationAnnotationV2ApiControllerUpdateNote;
2065
+ /**
2066
+ * List the comments on one evidence row
2067
+ * Returns the analyst comments on a single row, oldest first, each with its id (what the delete route takes), author and mentioned users. Identify the row with evidence (table name as SQL discovery shows it, or its bare section), taskAssignmentId and objectId (the evidence row air_object_id, NOT air_id). A coordinate that resolves to no row simply has no comments and returns an empty list.
2068
+ */
2069
+ const investigationAnnotationV2ApiControllerListComments = (options) => {
2070
+ return (options.client ?? client_gen_1.client).get({
2071
+ responseType: 'json',
2072
+ security: [
2073
+ {
2074
+ in: 'cookie',
2075
+ name: 'Authentication',
2076
+ type: 'apiKey'
2077
+ },
2078
+ {
2079
+ scheme: 'bearer',
2080
+ type: 'http'
2081
+ }
2082
+ ],
2083
+ url: '/api/v2/investigations/{idOrName}/comments',
2084
+ ...options
2085
+ });
2086
+ };
2087
+ exports.investigationAnnotationV2ApiControllerListComments = investigationAnnotationV2ApiControllerListComments;
2088
+ /**
2089
+ * Post a comment on evidence rows
2090
+ * Adds an analyst comment to one or more rows. Unlike the note, comments accumulate: each post is a new comment and nothing is replaced. Mentioned users are NOTIFIED, so a live call reaches real people -- preview with `dryRun` first, which resolves the coordinates and notifies nobody. Coordinates that match no row are skipped and reported under warnings[] code=ROWS_SKIPPED.
2091
+ */
2092
+ const investigationAnnotationV2ApiControllerCommentEvidence = (options) => {
2093
+ return (options.client ?? client_gen_1.client).post({
2094
+ responseType: 'json',
2095
+ security: [
2096
+ {
2097
+ in: 'cookie',
2098
+ name: 'Authentication',
2099
+ type: 'apiKey'
2100
+ },
2101
+ {
2102
+ scheme: 'bearer',
2103
+ type: 'http'
2104
+ }
2105
+ ],
2106
+ url: '/api/v2/investigations/{idOrName}/comments',
2107
+ ...options,
2108
+ headers: {
2109
+ 'Content-Type': 'application/json',
2110
+ ...options.headers
2111
+ }
2112
+ });
2113
+ };
2114
+ exports.investigationAnnotationV2ApiControllerCommentEvidence = investigationAnnotationV2ApiControllerCommentEvidence;
2115
+ /**
2116
+ * Delete one comment
2117
+ * Removes a single comment, addressed by the id the list route returns. Only its author may delete it (403 otherwise); a comment id from another investigation is a leak-safe 404. Irreversible. `dryRun` previews without deleting.
2118
+ */
2119
+ const investigationAnnotationV2ApiControllerDeleteComment = (options) => {
2120
+ return (options.client ?? client_gen_1.client).delete({
2121
+ responseType: 'json',
2122
+ security: [
2123
+ {
2124
+ in: 'cookie',
2125
+ name: 'Authentication',
2126
+ type: 'apiKey'
2127
+ },
2128
+ {
2129
+ scheme: 'bearer',
2130
+ type: 'http'
2131
+ }
2132
+ ],
2133
+ url: '/api/v2/investigations/{idOrName}/comments/{commentId}',
2134
+ ...options
2135
+ });
2136
+ };
2137
+ exports.investigationAnnotationV2ApiControllerDeleteComment = investigationAnnotationV2ApiControllerDeleteComment;
1856
2138
  /**
1857
2139
  * Flag evidence rows in an investigation
1858
2140
  * Marks evidence, finding or timeline rows of one investigation with a flag from the flags library, identified by numeric id or exact name; a flag name that does not exist yet is auto-created in the investigation's organization. Each row is addressed by its evidence table or section name, objectId and taskAssignmentId, and `source` selects the surface (EVIDENCE, FINDING or TIMELINE). Returns a receipt with the resolved flag and the number of rows flagged, plus warnings for skipped rows and flag auto-creation; `dryRun` previews the outcome without changing anything.
@@ -1907,6 +2189,87 @@ const investigationEvidenceFlagV2ApiControllerUnflagEvidence = (options) => {
1907
2189
  });
1908
2190
  };
1909
2191
  exports.investigationEvidenceFlagV2ApiControllerUnflagEvidence = investigationEvidenceFlagV2ApiControllerUnflagEvidence;
2192
+ /**
2193
+ * Mark evidence rows as findings
2194
+ * Records the analyst verdict on evidence rows of one investigation, turning each row into a finding. Rows are addressed by their evidence table or section name, taskAssignmentId and objectId, where objectId is the row air_object_id -- NOT air_id and NOT the full-text-search id. An optional request-level `note` is attached to every row this call marks, in the same request. Coordinates that match no row are skipped and reported under warnings[] code=ROWS_SKIPPED; rows that already carry a finding are left untouched and reported as ALREADY_FINDING (use the update endpoint to change those). If the findings are written but the note is not, the response still succeeds with noteAttached=false, a NOTE_FAILED warning and the coordinates to retry the note with -- nothing is rolled back. `dryRun` previews the outcome without changing anything. Discover coordinates with air-investigations-sql-query first.
2195
+ */
2196
+ const investigationFindingV2ApiControllerMarkAsFinding = (options) => {
2197
+ return (options.client ?? client_gen_1.client).post({
2198
+ responseType: 'json',
2199
+ security: [
2200
+ {
2201
+ in: 'cookie',
2202
+ name: 'Authentication',
2203
+ type: 'apiKey'
2204
+ },
2205
+ {
2206
+ scheme: 'bearer',
2207
+ type: 'http'
2208
+ }
2209
+ ],
2210
+ url: '/api/v2/investigations/{idOrName}/mark-as-finding',
2211
+ ...options,
2212
+ headers: {
2213
+ 'Content-Type': 'application/json',
2214
+ ...options.headers
2215
+ }
2216
+ });
2217
+ };
2218
+ exports.investigationFindingV2ApiControllerMarkAsFinding = investigationFindingV2ApiControllerMarkAsFinding;
2219
+ /**
2220
+ * Remove a finding
2221
+ * Removes exactly one analyst finding, addressed by the same coordinate mark-as-finding took, together with the timeline entry derived from it. Irreversible: re-marking the row creates a new finding, it does not restore this one. Only findings created through mark-as-finding can be removed, and only by the analyst who created them (403 otherwise); automatically produced findings return 404. The justification note and any flags on the coordinate are NOT removed -- both belong to the evidence row and stay visible on the evidence surface. `dryRun` previews without deleting anything.
2222
+ */
2223
+ const investigationFindingV2ApiControllerUnmarkFinding = (options) => {
2224
+ return (options.client ?? client_gen_1.client).delete({
2225
+ responseType: 'json',
2226
+ security: [
2227
+ {
2228
+ in: 'cookie',
2229
+ name: 'Authentication',
2230
+ type: 'apiKey'
2231
+ },
2232
+ {
2233
+ scheme: 'bearer',
2234
+ type: 'http'
2235
+ }
2236
+ ],
2237
+ url: '/api/v2/investigations/{idOrName}/finding',
2238
+ ...options,
2239
+ headers: {
2240
+ 'Content-Type': 'application/json',
2241
+ ...options.headers
2242
+ }
2243
+ });
2244
+ };
2245
+ exports.investigationFindingV2ApiControllerUnmarkFinding = investigationFindingV2ApiControllerUnmarkFinding;
2246
+ /**
2247
+ * Update a finding
2248
+ * Replaces the editable fields of exactly one finding -- verdict, category, path, date/dateSource and MITRE mapping -- and optionally its justification note. The finding is addressed by the SAME coordinate mark-as-finding took: the evidence table or section name, taskAssignmentId and the evidence row air_object_id (which the findings surface stores as air_evidence_object_id, NOT the findings row own air_object_id). Unlike marking, a coordinate that resolves to no editable finding is a 404 rather than a skipped row: only findings created through mark-as-finding are editable, and only by the analyst who created them (403 otherwise). Omitted optional fields are cleared; omit `note` entirely to leave the existing note alone, or send an empty string to clear it. `dryRun` previews the outcome without changing anything.
2249
+ */
2250
+ const investigationFindingV2ApiControllerUpdateFinding = (options) => {
2251
+ return (options.client ?? client_gen_1.client).patch({
2252
+ responseType: 'json',
2253
+ security: [
2254
+ {
2255
+ in: 'cookie',
2256
+ name: 'Authentication',
2257
+ type: 'apiKey'
2258
+ },
2259
+ {
2260
+ scheme: 'bearer',
2261
+ type: 'http'
2262
+ }
2263
+ ],
2264
+ url: '/api/v2/investigations/{idOrName}/finding',
2265
+ ...options,
2266
+ headers: {
2267
+ 'Content-Type': 'application/json',
2268
+ ...options.headers
2269
+ }
2270
+ });
2271
+ };
2272
+ exports.investigationFindingV2ApiControllerUpdateFinding = investigationFindingV2ApiControllerUpdateFinding;
1910
2273
  /**
1911
2274
  * Discover investigation tables and columns
1912
2275
  * 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.
@@ -1961,6 +2324,125 @@ const investigationSqlV2ApiControllerExecuteSqlQuery = (options) => {
1961
2324
  });
1962
2325
  };
1963
2326
  exports.investigationSqlV2ApiControllerExecuteSqlQuery = investigationSqlV2ApiControllerExecuteSqlQuery;
2327
+ /**
2328
+ * List investigations
2329
+ * Lists investigations visible to the caller, scoped by `organizations`. Supports offset pagination, a case-insensitive `filter[name]` contains match on the backing case name and sorting by createdAt or lastAccessedAt (default createdAt descending). Rows are relevance-filtered: callers only see investigations they are related to via an accessible task assignment or a case they can access.
2330
+ */
2331
+ const investigationsDirectoryV2ApiControllerList = (options) => {
2332
+ return (options?.client ?? client_gen_1.client).get({
2333
+ responseType: 'json',
2334
+ security: [
2335
+ {
2336
+ in: 'cookie',
2337
+ name: 'Authentication',
2338
+ type: 'apiKey'
2339
+ },
2340
+ {
2341
+ scheme: 'bearer',
2342
+ type: 'http'
2343
+ }
2344
+ ],
2345
+ url: '/api/v2/investigations',
2346
+ ...options
2347
+ });
2348
+ };
2349
+ exports.investigationsDirectoryV2ApiControllerList = investigationsDirectoryV2ApiControllerList;
2350
+ /**
2351
+ * Get investigation by id or case name
2352
+ * Fetches one investigation by investigation UUID, case UUID or exact case name and returns its detail in entities[0]. Callers unrelated to the investigation receive the same leak-safe 404 as an unknown identifier; a case name shared across organizations returns 400 AMBIGUOUS_NAME.
2353
+ */
2354
+ const investigationsDirectoryV2ApiControllerGet = (options) => {
2355
+ return (options.client ?? client_gen_1.client).get({
2356
+ responseType: 'json',
2357
+ security: [
2358
+ {
2359
+ in: 'cookie',
2360
+ name: 'Authentication',
2361
+ type: 'apiKey'
2362
+ },
2363
+ {
2364
+ scheme: 'bearer',
2365
+ type: 'http'
2366
+ }
2367
+ ],
2368
+ url: '/api/v2/investigations/{idOrName}',
2369
+ ...options
2370
+ });
2371
+ };
2372
+ exports.investigationsDirectoryV2ApiControllerGet = investigationsDirectoryV2ApiControllerGet;
2373
+ /**
2374
+ * Get evidence-import progress
2375
+ * Readiness check: without `taskAssignmentId` returns task-assignment counts grouped by data-import status for the whole investigation; with it, per-table import progress for that assignment. SQL queries return meaningful data only after imports complete.
2376
+ */
2377
+ const investigationsDirectoryV2ApiControllerImportProgress = (options) => {
2378
+ return (options.client ?? client_gen_1.client).get({
2379
+ responseType: 'json',
2380
+ security: [
2381
+ {
2382
+ in: 'cookie',
2383
+ name: 'Authentication',
2384
+ type: 'apiKey'
2385
+ },
2386
+ {
2387
+ scheme: 'bearer',
2388
+ type: 'http'
2389
+ }
2390
+ ],
2391
+ url: '/api/v2/investigations/{idOrName}/import-progress',
2392
+ ...options
2393
+ });
2394
+ };
2395
+ exports.investigationsDirectoryV2ApiControllerImportProgress = investigationsDirectoryV2ApiControllerImportProgress;
2396
+ /**
2397
+ * Get schema/data migration status
2398
+ * Readiness check: per-migration status (pending/in-progress/completed/failed) for the investigation's internal schema and data migrations. `registryState: "unknown"` means the investigation is not tracked by the migration registry yet. Until migrations complete, views or columns may be missing and SQL queries can fail with UNKNOWN_TABLE.
2399
+ */
2400
+ const investigationsDirectoryV2ApiControllerMigrationsSummary = (options) => {
2401
+ return (options.client ?? client_gen_1.client).get({
2402
+ responseType: 'json',
2403
+ security: [
2404
+ {
2405
+ in: 'cookie',
2406
+ name: 'Authentication',
2407
+ type: 'apiKey'
2408
+ },
2409
+ {
2410
+ scheme: 'bearer',
2411
+ type: 'http'
2412
+ }
2413
+ ],
2414
+ url: '/api/v2/investigations/{idOrName}/migrations-summary',
2415
+ ...options
2416
+ });
2417
+ };
2418
+ exports.investigationsDirectoryV2ApiControllerMigrationsSummary = investigationsDirectoryV2ApiControllerMigrationsSummary;
2419
+ /**
2420
+ * Retry failed evidence imports
2421
+ * Re-enqueues failed task-assignment evidence imports for the investigation, optionally narrowed by taskAssignmentId and/or investigationDataType. `?dryRun=true` previews the assignments that would be retried without enqueueing anything. Duplicate in-flight retries are deduplicated downstream by the deterministic per-assignment import job id. An assignment the job queue does not accept is left in its failed (retryable) state and reported under `warnings` with code `ENQUEUE_FAILED` instead of being counted.
2422
+ */
2423
+ const investigationsDirectoryV2ApiControllerRetryFailedImports = (options) => {
2424
+ return (options.client ?? client_gen_1.client).post({
2425
+ responseType: 'json',
2426
+ security: [
2427
+ {
2428
+ in: 'cookie',
2429
+ name: 'Authentication',
2430
+ type: 'apiKey'
2431
+ },
2432
+ {
2433
+ scheme: 'bearer',
2434
+ type: 'http'
2435
+ }
2436
+ ],
2437
+ url: '/api/v2/investigations/{idOrName}/retry-failed-imports',
2438
+ ...options,
2439
+ headers: {
2440
+ 'Content-Type': 'application/json',
2441
+ ...options.headers
2442
+ }
2443
+ });
2444
+ };
2445
+ exports.investigationsDirectoryV2ApiControllerRetryFailedImports = investigationsDirectoryV2ApiControllerRetryFailedImports;
1964
2446
  /**
1965
2447
  * Reboot a single asset
1966
2448
  * Sends a reboot signal to one asset, identified by UUID or exact name. Returns the created task assignment; dryRun=true returns a same-shape preview without dispatching anything.
@@ -2638,6 +3120,33 @@ const assetBulkTriageV2ApiControllerRunTriage = (options) => {
2638
3120
  });
2639
3121
  };
2640
3122
  exports.assetBulkTriageV2ApiControllerRunTriage = assetBulkTriageV2ApiControllerRunTriage;
3123
+ /**
3124
+ * Deploy the AIR Responder to cloud assets
3125
+ * Resolves cloud assets by id or exact name, previews eligible targets with dryRun=true, and creates one agent-deployment task per organization with dryRun=false.
3126
+ */
3127
+ const assetDeploymentV2ApiControllerDeploy = (options) => {
3128
+ return (options.client ?? client_gen_1.client).post({
3129
+ responseType: 'json',
3130
+ security: [
3131
+ {
3132
+ in: 'cookie',
3133
+ name: 'Authentication',
3134
+ type: 'apiKey'
3135
+ },
3136
+ {
3137
+ scheme: 'bearer',
3138
+ type: 'http'
3139
+ }
3140
+ ],
3141
+ url: '/api/v2/deploy',
3142
+ ...options,
3143
+ headers: {
3144
+ 'Content-Type': 'application/json',
3145
+ ...options.headers
3146
+ }
3147
+ });
3148
+ };
3149
+ exports.assetDeploymentV2ApiControllerDeploy = assetDeploymentV2ApiControllerDeploy;
2641
3150
  /**
2642
3151
  * List InterAct messages for an asset
2643
3152
  * Lists the InterAct shell messages recorded for one asset, identified by UUID or exact name, across all of its sessions. Supports offset pagination, sorting, and filtering by session and creation date range. Each entry carries the command, its status, and the output inline or via outputUrl.