openapi: 3.0.1 info: title: NUIX ECC REST API Command Reference Case Collection Configuration API description: 'Welcome to the Nuix ECC REST API command reference. From here you can access all available ECC REST APIs. You can also send REST commands to your running ECC Server, as well as view the responses. **Note\:** The Nuix ECC User Guide includes a gloassary which defines specialized terms such as `Case`, `Custodian` and `Target` which are mentioned throughout this command reference. **Note\:** This command reference has been updated for Nuix ECC version 9.12.0.' contact: name: Nuix url: https://nuix.github.io/sdk-docs/latest/ email: APISupport@nuix.com license: name: Licence url: https://www.nuix.com/sites/default/files/20200210_EULA_v1.pdf version: ${customer.version} servers: - url: '{protocol}://{address}:{port}/api/ecc' variables: protocol: default: https description: protocol for communication enum: - http - https address: default: 127.0.0.1 description: The location which the ECC resides port: default: '80' description: 80, 443 or alternative security: - BasicAuth: [] tags: - name: Collection Configuration paths: /v2/configurations: get: tags: - Collection Configuration summary: Lists all Collection Configurations description: 'Lists all Collection Configurations defined on the connected server, or a filtered list if optional query params are used. **Note\:** In the response body, a Collect task type will be followed by an Evidence object, and optionally a FileType, DateRange, AdvancedSearch, Hash, Volatile, and RAM object.' operationId: listConfigurations parameters: - name: id in: query description: 'The id of the configuration to list. **Note\:** if `id` is specified, the `category` query parameter is ignored.' required: false schema: type: integer format: int32 - name: category in: query description: Optional category assigned to one or more configurations. required: false schema: type: string responses: '200': description: Successful Listing of Configurations content: application/json: schema: $ref: '#/components/schemas/listConfigurationsResponse' examples: targets_and_computers: summary: Configuration with targets and computers value: - configurations: - id: 101 name: Configuration Example description: Example configuration with both targets and computers template: Default category: '' targets: - 106 - 142 computers: - 5B05C769-6368-4608-A387-9525C4332B50 - E594B78A-15AD-4BA5-AB9D-68905B657DC6 hasInputs: false tasks: - taskNum: 0 taskType: Collect impersonation: None label: '' Evidence: destination: c:\collection credentials: false createFileSafe: true compression: High segmentSize: 2 segmentSizeUnit: GB validateCollection: true FileType: analyzeSignatures: false mode: Include extensions: - extension: ai collectAll: false - taskNum: 1 taskType: Relocate impersonation: None label: '' SmartMover: destinationFolder: c:\collection destComputerName: AUSYD-L-NX0142 destComputerId: E21287F5-9E96-6CFF-0624-056AFA28E902 moveOrCopy: Move relocateData: true relocateLogs: true '400': description: Invalid Configuration ID content: application/json: schema: $ref: '#/components/schemas/standardResponse' example: code: 400 id: 101 message: Invalid Configuration ID supplied '504': description: Waiting for the model to load content: application/json: schema: $ref: '#/components/schemas/standardResponse' example: code: 504 id: 101 message: Waiting for the model to load post: tags: - Collection Configuration summary: Creates a new Collection Configuration based on an existing Collection Configuration description: 'The new Collection Configuration is created with all tasks removed. Tasks can be created in the new Collection Configuration by either creating a new task from scratch, or referencing an existing Task in any other Collection Configuration, which is then copied into the new Collection Configuration. Copied tasks can be used as is, or modified. **Note\:** credentials used for the destination are stored in the task (Collect or Relocate) part of a Collection Configuration, so if credentials are needed, the appropriate task should be copied into the new Collection Configuration. ### The following objects vary depending on the value of taskType\: ### taskType = Collect If `parentConfigId` and `taskNum` values are *not* specified (i.e. a new task is being created), then an `Evidence` object must follow, with `FileType`, `DateRange`, `AdvancedSearch`, `Hash`, `Volatile`, and `RAM` objects optional. However, if a `parentConfigId` and `taskNum` *are* specified, then all following objects are optional, and required only to override what is already defined in the task being copied. **Note\:** existing criteria within a task are retained. For example, copying a task that contains `FileType` criteria and then adding `DateRange` criteria will result in a task that has both `FileType` and `DateRange`. ### taskType = Relocate If `parentConfigId` and `taskNum` values are *not* specified (i.e. a new task is being created), then a `SmartMover` object must follow. However, if `parentConfigId` and `taskNum` *are* specified, then no additional fields are required if the Relocate task is to be used ''as is''. See the GET configurations call for a definition of the objects within a task.' operationId: createConfiguration requestBody: content: application/json: schema: $ref: '#/components/schemas/createConfigurationRequest' examples: from_existing_task: summary: Create a configuration based on an existing Configuration and its Task. value: baseConfigId: -1 newConfigName: some config name description: new description category: optional tasks: - parentConfigId: 101 taskNum: 0 taskType: Collect label: new Label responses: '200': description: Configuration was created successfully content: application/json: schema: $ref: '#/components/schemas/createConfigurationResponse' example: id: 116 name: some config name description: new description template: Default category: optional targets: [] hasInputs: true tasks: - taskNum: 0 taskType: Collect impersonation: None label: new Label Evidence: destination: c:\collection credentials: false createFileSafe: true compression: High segmentSize: 2 segmentSizeUnit: GB validateCollection: true FileType: analyzeSignatures: false mode: Include extensions: - extension: contact collectAll: false - extension: dbx collectAll: false - extension: eml collectAll: false - extension: group collectAll: false - extension: idx collectAll: false - extension: MailDB collectAll: false - extension: mbx collectAll: false - extension: msf collectAll: false - extension: msg collectAll: false - extension: msmessagestore collectAll: false - extension: ns2 collectAll: false - extension: ns3 collectAll: false - extension: ns4 collectAll: false - extension: nsf collectAll: false - extension: nws collectAll: false - extension: oeaccount collectAll: false - extension: ost collectAll: false - extension: pbx collectAll: false - extension: pst collectAll: false - extension: slt collectAll: false - extension: snm collectAll: false - extension: wab collectAll: false '400': description: No JSON body, config field missing, no new tasks, name is missing etc. content: application/json: schema: $ref: '#/components/schemas/standardResponse' example: code: 400 id: 101 message: Invalid Configuration ID supplied /v2/configurations/{id}: delete: tags: - Collection Configuration summary: Delete the Configuration description: Delete the configuration identified by `{id}` operationId: deleteConfiguration parameters: - name: id in: path description: Collection Configuration id required: true schema: type: integer responses: '200': description: Case was deleted successfully content: application/json: schema: $ref: '#/components/schemas/standardResponse' example: code: 200 id: 101 message: OK '400': description: Configuration {id} could not be deleted content: application/json: schema: $ref: '#/components/schemas/standardResponse' example: code: 400 id: 101 message: Configuration {id} could not be deleted '504': description: Waiting for the model to load content: application/json: schema: $ref: '#/components/schemas/standardResponse' example: code: 504 id: 101 message: Waiting for the model to load components: schemas: standardResponse: type: object properties: code: type: integer description: http response status code id: type: integer description: id of the affected Object message: type: string description: http status message Hash: type: object properties: hashValue: type: string description: 32-character MD5 hash value fileSize: type: number description: 'Optional file size. If provided, will be used to match before calculating hash' microHash: type: string description: 'Optional MD5 hash value of the first 64 KB of a file. Used to match before calculating a full hash' createConfigurationResponse: type: object properties: id: type: integer description: id of the new Collection Configuration name: type: string description: name of the new Collection Configuration description: type: string description: description of the new Collection Configuration template: type: string description: template of the new Collection Configuration category: type: string description: Optional category of the new Collection Configuration targets: type: array description: Array of targets specified in this Collection Configuration items: $ref: '#/components/schemas/Target' hasInputs: type: boolean description: whether any input paths are specified within any of the Targets or Computers in this Collection Configuration tasks: type: array description: Array of tasks specified in this Collection Configuration items: $ref: '#/components/schemas/TaskCreated' Configuration: type: object properties: id: type: integer description: id of the collection configuration name: type: string description: name of the collection configuration description: type: string description: description of the collection configuration nullable: true template: type: string description: name of the Template used by the collection configuration nullable: true category: type: string description: name of the Category (optional value attached to a collection configuration) nullable: true targets: type: array description: array of Target IDs used in this collection configuration items: type: integer description: Target ID nullable: true computers: type: array description: array of Computer GUIDs used in this collection configuration items: type: string description: computer GUID nullable: true hasInputs: type: boolean description: true if any input paths exist within the targets or computers specified in this collection configuration tasks: type: array description: array of Tasks used in this collection configuration items: $ref: '#/components/schemas/Task' FileType: type: object description: describes the file type filters used in the collection (this object is optional) properties: analyzeSignatures: type: boolean description: when `true`, read the beginning of each file to determine file type. When `false` use filename extension only to determine file type. mode: type: string description: One of `Include` or `Exclude` - include or exclude the file types listed in the `extensions` array enum: - Include - Exclude extensions: type: array description: array of one or more file type extensions items: $ref: '#/components/schemas/Extension' Evidence: type: object properties: destination: type: string description: destination where evidence is to be saved credentials: type: boolean description: Set to `true` if credentials are supplied to access the destination createFileSafe: type: boolean description: Set to `true` to create a FileSafe, `false` save native copies of the files compression: type: string description: Compression setting for saved data. One of `None`, `Medium`, `High` (used only if createFileSafe = `true`) enum: - None - Medium - High segmentSize: type: integer description: size of each FileSafe segment (used only if createFileSafe = `true`) segmentSizeUnit: type: string description: unit of measure which applies to segmentSize. One of `KB`, `MB`, or `GB` (used only if createFileSafe = `true`) enum: - KB - MB - GB overwrite: type: boolean description: whether to overwrite existing files at the destination (used only if createFileSafe = `false`) maintainFullPath: type: boolean description: whether to maintain the full path of the file at the destination (used only if createFieSafe = false) validateCollection: type: boolean description: whether to validate the entire FileSafe after collection is completed TaskCreated: type: object properties: parentConfigId: type: integer description: Optional, id of the parent Collection Configuration of the new task to be copied. If omitted, the task is created from given params. taskNum: type: integer description: Optional, id of the task to be copied (within the parent conf specified above). Required if parentConfigId is specified. taskType: type: string description: 'Type of task\: one of `Collect`, `Relocate`, `Deploy`, or `Launch` (currently only `Collect` and `Relocate` are supported). NOTE\: If copying an Existing task, the `taskType` cannot be changed in the new task.' enum: - Collect - Relocate - Deploy - Launch label: type: string description: 'Optional, user-defined label for this job. Can be used as search criteria for jobs.' Task: type: object properties: taskNum: type: integer description: 0-based index of tasks (jobs) to be run in this collection configuration label: type: string description: 'user-defined label for this job. Can be used as search criteria for jobs' impersonation: type: string description: The enumeration value `None` or `Logged on User` enum: - None - Logged on User taskType: type: string description: 'The type of task. One of `Collect`, `Relocate`, `Deploy` or `Launch`. This value will determine which fields follow.' enum: - Collect - Relocate - Deploy - Launch Evidence: $ref: '#/components/schemas/Evidence' FileType: $ref: '#/components/schemas/FileType' DateRange: type: object properties: dates: type: array description: array of one or more date criteria items: $ref: '#/components/schemas/DateCriteria' AdvancedSearch: type: object properties: keywords: type: array description: array of keywords items: $ref: '#/components/schemas/Keyword' Hash: type: object properties: hashType: type: string description: always `MD5` enum: - MD5 hashes: type: array description: array of hash values used to identify files to be collected items: $ref: '#/components/schemas/Hash' Volatile: type: object description: Describes a volatile configuration properties: collectVolatile: type: boolean description: Whether to collect volatile information, When `false` the remaining fields are ignored collectHandles: type: boolean description: Whether to collect handles as part of the collection (collectVolatile must be `true`) collectionScreenShots: type: boolean description: Whether to capture screen shots of all windows (requires impersonation, collectVolatile must be `true`) screenShotFormat: type: string description: The graphic file format to save screen shot images. One of `PNG` or `JPG` (collectScreenShots must be `true`) enum: - PNG - JPG RAM: type: object description: Describes RAM collection properties: collectRAM: type: boolean description: When `true` saves a bit-for-bit image of the RAM SmartMover: type: object description: For a `Deploy` or `Relocate` task. Specifies the copying or moving of files from one ECC Client to another properties: destinationFolder: type: string description: folder on the destination computer where evidence is to be copied destComputerName: type: string description: name of the destination computer destComputerId: type: string description: GUID of the destination computer moveOrCopy: type: string description: '`Move` or `Copy`. Either setting will copy files to the destination computer. `Move` will delete evidence from the source after the copy is complete.' enum: - Move - Copy relocateData: type: boolean description: When `true` relocate the evidence (data files) relocateLogs: type: boolean description: When `true` relocate the collection logs TargetInputs: type: object properties: types: type: string description: Path, Local Path, or AutoDetect enum: - Path - Local Path - AutoDetect location: type: string description: full path or AutoDetect setting for the source exclusion: type: string description: excluded subfolders in the location (only for Path type) TaskToCreate: type: object properties: parentConfigId: type: integer description: optional, id of the parent Collection Configuration which holds the task to be copied. If omitted, the task is created from given parameters. taskNum: type: integer description: optional, id of the task to be copied (within the parent conf specified above). Required if `parentConfigId` is specified. taskType: type: string description: 'type of task\: one of `Collect`, `Relocate`, `Deploy`, or `Launch` (currently only `Collect` and `Relocate` are supported). **Note\:** If copying an existing task, the `taskType` cannot be changed in the new task.' enum: - Collect - Relocate - Deploy - Launch label: type: string description: 'optional, user-defined label for this job. Can be used as search criteria for jobs' impersonation: type: string description: None or Logged on User enum: - None - Logged on User Evidence: $ref: '#/components/schemas/Evidence' FileType: $ref: '#/components/schemas/FileType' DateRange: type: object properties: dates: type: array description: array of one or more date criteria items: $ref: '#/components/schemas/DateCriteria' AdvancedSearch: type: object properties: keywords: type: array description: array of keywords items: $ref: '#/components/schemas/Keyword' Hash: type: object properties: hashType: type: string description: always MD5 enum: - MD5 hashes: type: array description: array of hashes items: $ref: '#/components/schemas/Hash' Volatile: type: object description: Describes a volatile configuration properties: collectVolatile: type: boolean description: Whether to collect volatile information, When `false` the remaining fields are ignored collectHandles: type: boolean description: Whether to collect handles as part of the collection (collectVolatile must be `true`) collectionScreenShots: type: boolean description: Whether to capture screen shots of all windows (requires impersonation, collectVolatile must be `true`) screenShotFormat: type: string description: The graphic file format to save screen shot images. One of `PNG` or `JPG` (collectScreenShots must be `true`) enum: - PNG - JPG RAM: type: object description: Describes RAM collection properties: collectRAM: type: boolean description: When `true` saves a bit-for-bit image of the RAM SmartMover: type: object description: For a `Deploy` or `Relocate` task. Specifies the copying or moving of files from one ECC Client to another properties: destinationFolder: type: string description: folder on the destination computer where evidence is to be copied destComputerName: type: string description: name of the destination computer destComputerId: type: string description: GUID of the destination computer moveOrCopy: type: string description: 'Move or Copy. Move to delete evidence from the source after the copy is complete' enum: - Move - Copy relocateData: type: boolean description: true to relocate the evidence (data) relocateLogs: type: boolean description: true to relocate the logs Target: type: object properties: id: type: integer description: id of the Target name: type: string description: name of the target description: type: string description: description of the target custodianId: type: integer description: id of the Custodian this target belongs to computerName: type: string description: name of the Computer this target belongs to computerGUID: type: string description: GUID of the Computer this target belongs to Inputs: type: array description: array of inputs in the target items: $ref: '#/components/schemas/TargetInputs' Extension: type: object description: Describes a File Extension properties: extension: type: string description: file type extension (do not include the preceding dot) collectAll: type: boolean description: If `true`, collect this file type regardless of keyword search Keyword: type: object properties: expressionName: type: string description: human-readable description of the search expression expression: type: string description: search expression caseSensitive: type: boolean description: When `true` specifies the search should be case-sensitive regExpression: type: boolean description: When `true` specifies the `expression` is interpreted as a Regular Expression listConfigurationsResponse: type: object properties: configurations: type: array items: $ref: '#/components/schemas/Configuration' createConfigurationRequest: type: object properties: baseConfigId: type: integer description: Id of an existing Collection Configuration to use as the basis for a new Collection Configuration, or -1 to create a new Collection Configuration from scratch newConfigName: type: string description: New Collection Configuration name description: type: string description: New Collection Configuration description category: type: string description: Optional. A Category associated with this Collection Configuration (a GET call can filter by Category) tasks: type: array description: Array of new tasks to add to the new collection configuration. At least one task must be specified. items: $ref: '#/components/schemas/TaskToCreate' DateCriteria: type: object properties: type: type: string description: 'One of `From` or `Last`. `From` specifies absolute start/end dates. `Last` specifies last number of days back from the current date' enum: - From - Last useGMT: type: boolean description: '`true` specifies GMT for time, `false` specifies local time' startDate: type: string description: inclusive start date in the format `yyyy-mm-ddThh:mm:ss` (only used if type = `From`) endDate: type: string description: inclusive end date in the format `yyyy-mm-ddThh:mm:ss` (only used if type = `From`) numDays: type: integer description: number of days back from the current date (only used if type = `Last`) checkCreation: type: boolean description: When `true`, apply date criteria to creation date checkModification: type: boolean description: When `true` apply date criteria to modification date checkAccess: type: boolean description: When `true`, apply date criteria to access date securitySchemes: BasicAuth: type: http scheme: basic