This section of the user guide describes how you can programmatically interact with the MetaDefender Storage Security REST API. Below are some common tasks that can be done using the available REST APIs:

  • Authenticate to obtain a JSON Web Token(JWT)
  • Start or stop a process(scan)
  • Add / remove storage units

About this REST API

The exposed endpoint is located by default at http(s)://md-storage-server/api/ (for example, the authentication endpoint is available at http(s)://md-storage-server/api/user/authenticate). All requests are handled by the NGINX web server before being proxied to the backend API Gateway service.

All endpoints perform authentication and authorization checks. For these checks to succeed, a valid token should be presented in the Authorization header in the form of Bearer.

Please note that all issued tokens have a timestamp and signature associated in order to prevent long-term usage without re - authentication.The lifespan of the token is currently set to 60 minutes, meaning you will have to request a new token before it expires in order to avoid error responses.

Server
http://<MDSS_HOST>
Server Variables
http Bearer

As mentioned earlier, all endpoints perform authentication and authorization checks. In order for these checks to succeed, a valid token should be presented in the Authorization header in the form of Bearer .

Suggested application logic

If you plan to integrate MetaDefender Storage Security in your custom application or workflow, please consider the following scenarios for successfully making REST API requests:

Scenario Possible use cases
Short-lived integration You are building or enhancing an application that requires sporadic or on-demand access to MetaDefender Storage Security REST APIs.
The application is not expected to make more than a few REST API calls per hour.
The application does not need to preserve a session.
Long-lived integration You are building or enhancing an application that requires continuous, uninterrupted, or hard to predict access to MetaDefender for Secure Storage REST APIs.
Requests are being triggered based on external factors and your application should maintain connectivity with MetaDefender Storage Security REST API.
Session preserving is necessary and authentication should happen without user-interaction.
Your application will make a significant number of REST API requests and you need increased performance
API Key integration You are building or enhancing an application that requires continuous, uninterrupted, or hard to predict access to MetaDefender for Secure Storage REST APIs.
Requests are being triggered based on external factors and your application should maintain connectivity with MetaDefender Storage Security REST API.
Authentication should happen without user-interaction.
Your application will make a significant number of REST API requests and you need increased performance.

Short-lived integration

  • Obtain a signed accessToken by calling /api/user/authenticate API

  • Use this token to call your desired REST API by providing it in the Authorization header

  • Expire the token by calling /api/user/logout

  • Repeat steps 1-3 the next time your application needs to call a REST API

Long-lived integration

  • Obtain a signed token by calling /api/user/authenticate API

  • Securely save the received accessToken and the refreshToken

  • Use the accessToken to call your desired REST API by providing it in the Authorization header

  • Add an exception handler in case you receive a 401 Unauthorized response because the JWT has expired call /api/user/refreshToken to obtain a new accessToken by providing the saved refreshToken.

    a) the accessToken expires after an hour of creation; the expiry time is represented in UTC format by the accessTokenExpiryTime value.
    b) the refreshToken expires after an hour of creation; the expiry time is represented in UTC format by the refreshTokenExpiryTime value.
    c) if the refreshToken has expired as well, obtain a signed token by calling /api/user/authenticate API

  • Use the newly issued accessToken to call your desired REST API by providing it in the Authorization header

API Key integration

  • In the MetaDefender Storage Security interface, Navigate to Settings -> Users

  • Find your user entry in the user list, click on the three dots on the right side of the entry, and then click on Generate an API Key

  • Generate the key, copy it, and store it somewhere safe

  • Use the API Key to call your desired REST API by providing it as a header with the Key: "ApiKey" and Value:

General considerations

The access token expiration date cannot be extended. By default, the access token is valid for an hour after calling /api/user/authenticate API to obtain it.The refresh token is also valid for an hour but can be extended by calling /api/user/refreshToken and it is also automatically extended with an hour with each non-GET request.

A refresh token is used to request a new access token when the current one expires without requiring re-authentication using a username and password.

The refresh token is used to forcibly expire any previously issued JWT when the refresh token expires or is removed by calling /api/user/logout.

A 3rd party application that needs persistent connectivity with MetaDefender for Secure Storage should implement a timeout mechanism to ensure that the refresh token is renewed before it expires by calling /api/user/refreshToken whenever the JWT (access token) is expired but before the refresh token expires as well.


Fetch all accounts

Auth
GET /api/account
curl --get \
--url 'http://<MDSS_HOST>/api/account' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
accounts4 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"accounts": [
{
"id": "{string}",
"name": "{string}",
"description": "{string}",
"storages": [
{
"id": "{string}",
"groupId": "{string}",
"name": "{string}",
"storageClientId": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"handlingType": "{integer}",
"scanConfigurationId": "{string}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfigurationStatus": "{integer}",
"sanitizedFileRemediationConfigurationStatus": "{integer}",
"allowedFileRemediationConfigurationStatus": "{integer}",
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}",
"blockedFileHandlingType": "{integer}",
"allowedFileHandlingType": "{integer}",
"sanitizedFileHandlingType": "{integer}",
"blockedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockingStrategy": "{integer}"
}
},
"storageFunctionality": "{string}",
"$type": "{string}"
}
]
}
]
}
Copy

Add an account

Auth
Request Body
objectobject
namestring
descriptionstring
storageIdsarray[string]
userInfo
objectobject
userIdstring
userNamestring
POST /api/account
curl --request POST \
--url 'http://<MDSS_HOST>/api/account' \
--header 'Authorization: Bearer {token}' \
--data '{
"name": "{string}",
"description": "{string}",
"storageIds": [
"{array[string]...}"
],
"userInfo": {
"userId": "{string}",
"userName": "{string}"
}
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
account
objectobject
idstring
namestring
descriptionstring
storageIdsarray[string]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"account": {
"id": "{string}",
"name": "{string}",
"description": "{string}",
"storageIds": [
"{array[string]...}"
]
}
}
Copy

Update an account

Auth
Request Body
objectobject
namestring
descriptionstring
accountIdstring
storageIdstring
userInfo
objectobject
userIdstring
userNamestring
PATCH /api/account
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/account' \
--header 'Authorization: Bearer {token}' \
--data '{
"name": "{string}",
"description": "{string}",
"accountId": "{string}",
"storageId": "{string}",
"userInfo": {
"userId": "{string}",
"userName": "{string}"
}
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedAccount
objectobject
namestring
descriptionstring
storageIdsarray[string]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedAccount": {
"name": "{string}",
"description": "{string}",
"storageIds": [
"{array[string]...}"
]
}
}
Copy

Fetch account by ID

Auth
Path Params
accountIdstring
GET /api/account/{accountId}
curl --get \
--url 'http://<MDSS_HOST>/api/account/{accountId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
account
objectobject
idstring
namestring
descriptionstring
storages9 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"account": {
"id": "{string}",
"name": "{string}",
"description": "{string}",
"storages": [
{
"id": "{string}",
"groupId": "{string}",
"name": "{string}",
"storageClientId": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"handlingType": "{integer}",
"scanConfigurationId": "{string}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfigurationStatus": "{integer}",
"sanitizedFileRemediationConfigurationStatus": "{integer}",
"allowedFileRemediationConfigurationStatus": "{integer}",
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}",
"blockedFileHandlingType": "{integer}",
"allowedFileHandlingType": "{integer}",
"sanitizedFileHandlingType": "{integer}",
"blockedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockingStrategy": "{integer}"
}
},
"storageFunctionality": "{string}",
"$type": "{string}"
}
]
}
}
Copy

Delete an account

Auth
Path Params
accountIdstring
DELETE /api/account/{accountId}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/account/{accountId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
accountIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"accountId": "{string}"
}
Copy

Fetch the number of accounts

Auth
GET /api/account/count
curl --get \
--url 'http://<MDSS_HOST>/api/account/count' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
accountCount
objectobject
countint64
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"accountCount": {
"count": "{int64}"
}
}
Copy

Audit

List audit information

Fetch audit logs

Auth
Path Params
startIndexstring
countstring
Query String
logTypestring
categoryTypestring
logLevelstring
searchTextstring
GET /api/audit/{startIndex}/{count}
curl --get \
--url 'http://<MDSS_HOST>/api/audit/{startIndex}/{count}' \
--header 'Authorization: Bearer {token}' \
--data logType={logType} \
--data categoryType={categoryType} \
--data logLevel={logLevel} \
--data searchText={searchText}
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entries8 fieldsarray[object]
filterCountint64
totalCountint64
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"id": "{string}",
"logLevel": "{integer}",
"details": "{string}",
"logType": "{integer}",
"userId": "{string}",
"category": "{integer}",
"timeStamp": "{date-time}",
"userName": "{string}"
}
],
"filterCount": "{int64}",
"totalCount": "{int64}"
}
Copy

Export configuration file

Auth
Query String
exportLicenseboolean
exportSmtpboolean
exportEmailNotificationsboolean
exportRetentionboolean
GET /api/configuration/export
curl --get \
--url 'http://<MDSS_HOST>/api/configuration/export' \
--header 'Authorization: Bearer {token}' \
--data exportLicense={exportLicense} \
--data exportSmtp={exportSmtp} \
--data exportEmailNotifications={exportEmailNotifications} \
--data exportRetention={exportRetention}
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Import configuration file

Auth
Request Body
objectobject
ConfigurationFilefile
POST /api/configuration/import
curl --request POST \
--url 'http://<MDSS_HOST>/api/configuration/import' \
--header 'Authorization: Bearer {token}' \
--form 'file=@{file}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2,3,4,5,6

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
areSmtpSettingsImportedboolean
isLicenseImportedboolean
isRetentionImportedboolean
activationDto
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"areSmtpSettingsImported": "{boolean}",
"isLicenseImported": "{boolean}",
"isRetentionImported": "{boolean}",
"activationDto": {
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
}
Copy

Get enabled modules

Auth
GET /api/configuration/enabledModules
curl --get \
--url 'http://<MDSS_HOST>/api/configuration/enabledModules' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
enabledModulesarray[integer]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"enabledModules": [
"{array[integer]...}"
]
}
Copy

Deep Cdr

Manage sanitized files

Revert encrypted file

Auth
Path Params
fileIdstring
POST /api/deepcdr/revert/{fileId}
curl --request POST \
--url 'http://<MDSS_HOST>/api/deepcdr/revert/{fileId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Retrieve external loggers

Auth
GET /api/externallogger
curl --get \
--url 'http://<MDSS_HOST>/api/externallogger' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entries4 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"id": "{string}",
"isEnabled": "{boolean}",
"loggerType": "{integer}",
"connectionSettings": {
"$type": "{string}"
}
}
]
}
Copy

Update external logger state

Auth
Request Body
objectobject
idstring
isEnabledboolean
PUT /api/externallogger/status
curl --request PUT \
--url 'http://<MDSS_HOST>/api/externallogger/status' \
--header 'Authorization: Bearer {token}' \
--data '{
"id": "{string}",
"isEnabled": "{boolean}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Update a Syslog server configuration

Auth
Request Body
objectobject
isEnabledboolean
serverAddressstring

minLength: 1

pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$

portint32

pattern: ^()(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})$

loggerTypeinteger

Enum: 0

facilityinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

formatinteger

Enum: 0

$typestring
idstring

minLength: 1

PUT /api/externallogger/udpSyslog
curl --request PUT \
--url 'http://<MDSS_HOST>/api/externallogger/udpSyslog' \
--header 'Authorization: Bearer {token}' \
--data '{
"isEnabled": "{boolean}",
"serverAddress": "{string}",
"port": "{int32}",
"loggerType": "{integer}",
"facility": "{integer}",
"format": "{integer}",
"$type": "{string}",
"id": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Add a new Syslog server configuration

Auth
Request Body
objectobject
isEnabledboolean
serverAddressstring

minLength: 1

pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$

portint32

pattern: ^()(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})$

loggerTypeinteger

Enum: 0

facilityinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

formatinteger

Enum: 0

$typestring
POST /api/externallogger/udpSyslog
curl --request POST \
--url 'http://<MDSS_HOST>/api/externallogger/udpSyslog' \
--header 'Authorization: Bearer {token}' \
--data '{
"isEnabled": "{boolean}",
"serverAddress": "{string}",
"port": "{int32}",
"loggerType": "{integer}",
"facility": "{integer}",
"format": "{integer}",
"$type": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Delete external logger

Auth
Path Params
idstring
DELETE /api/externallogger/{id}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/externallogger/{id}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Scan a file on demand

This request is used to update a scanned file with passwords, in case it is an encrypted archive andit could not be scanned because the passwords to decrypt it were not provided. It can also be used withoutproviding any passwords to simply rescan a specific file from a finished scan.

Auth
Request Body
objectobject
fileIdstring
scanIdstring
storageProtocolTypeint32
passwordsarray[string]
PUT /api/file
curl --request PUT \
--url 'http://<MDSS_HOST>/api/file' \
--header 'Authorization: Bearer {token}' \
--data '{
"fileId": "{string}",
"scanId": "{string}",
"storageProtocolType": "{int32}",
"passwords": [
"{array[string]...}"
]
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Fetch processing results for a file

File processing is done asynchronously and each analysis request is tracked by a file ID. Because processing a file is a potentially time-consuming operation, scheduling a file for processing and retrieving the results needs to be done using two separate API calls.

This request needs to be made multiple times until the analysis is complete. Analysis completion can be tracked using the processingState and the progress values from the response..

Auth
Path Params
fileIdstring
GET /api/file/{fileId}
curl --get \
--url 'http://<MDSS_HOST>/api/file/{fileId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2,3,4

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
idstring
scanIdstring
namestring
pathstring
hashstring
fileOwner
objectobject
userIdstring
fullNamestring
userNamestring
emailAddressstring
sizeint64
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

storageNamestring
storageLocationstring
scanNamestring
progress
objectobject
uploadint32
scanint32
scanResult
objectobject
extractedFiles
objectobject
dataIdstring
scanResultIint32
detectedByint32
filesInArchive11 fieldsarray[object]
filesExtractedCountint32
scanResults
objectobject
scanDetails7 fieldsarray[object]
dataIdstring
scanAllResultIint32
scanAllResultAstring
startTimestring
totalTimenumber
totalAvsint32
progressPercentageint32
fileInfo
objectobject
fileSizeint64
uploadTimestampstring
md5string
sha1string
sha256string
fileTypeCategorystring
fileTypeDescriptionstring
fileTypeExtensionstring
displayNamestring
originalFilePathstring
processInfo
objectobject
postProcessing
objectobject
actionsRanstring
actionsFailedstring
convertedTostring
copyMoveDestinationstring
convertedDestinationstring
sanitizationDetails
objectobject
failureCategorystring
detailsstring
progressPercentageint32
userAgentstring
profilestring
resultstring
blockedReasonstring
fileTypeSkippedScanboolean
processingTimenumber
queueTimenumber
resultIinteger

Enum: 0,1,2

dataIdstring
dlpInfo
objectobject
verdictint64
sbomInfo
objectobject
finalVerdict
objectobject
blockedboolean
severityinteger

Enum: 0,1,2,3,4,5

totalPackageCountint32
verdictstring
vulnerabilityCounts
objectobject
criticalint32
highint32
mediumint32
lowint32
unknownint32
overviewReport
objectobject
isPartialReportboolean
osInfo
objectobject
osNamestring
osVersionstring
scanModestring
steps7 fieldsarray[object]
packages7 fieldsarray[object]
resultTemplateHashstring
vulnerabilityInfo
objectobject
vulnerabilityInfoResult
objectobject
codeint64
hashstring
methodint64
timeStampstring
timingint64
detectedProduct
objectobject
hasVulnerabilityboolean
isCurrentboolean
product
objectobject
idint64
namestring
remediationLinkstring
severitystring
sigNamestring
signatureint64
vendor
objectobject
idint64
namestring
versionstring
versionData
objectobject
countBehindint64
feedIdint64
versionstring
vulnerabilities5 fieldsarray[object]
sessionCookiestring
processingStateinteger

Enum: 0,1,2,3

exception
objectobject
exceptionDetailsstring
exceptionMessagestring
createddate-time
lastModifieddate-time
discoveryStarteddate-time
fileProcessingDetails
objectobject
streamingStartedTimedate-time
streamingCompletedTimedate-time
streamingTimeSpanMsint64
scanCompletedTimedate-time
processingTimeSpanMsint64
coreEngines5 fieldsarray[object]
remediation
objectobject
isTaggedboolean
isDeletedboolean
isMovedboolean
isCopiedboolean
deepCdr
objectobject
isSanitizedboolean
isEncryptedboolean
isOriginalVersionOfSanitizedFileboolean
hasSanitizedFileBeenMovedboolean
hasSanitizedFileBeenCopiedboolean
decryptStatusinteger

Enum: 0,1,2

deepCdrOriginalObjectHandlingTypeinteger

Enum: 0,1,2

sanitizationDetails
objectobject
failureCategorystring
detailsstring
postActionFailedInformationarray[object]
objectActionTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

exception
objectobject
exceptionDetailsstring
exceptionMessagestring
metaDefenderCoreUrlstring
discoveryStartedDaySecint64
Response
{…}
Copy

Enumerate processed files

Auth
Path Params
scanIdstring
startIndexstring
countstring
Query String
sorting_orderstring
searchstring
resultinteger

Enum: 0,1,2,3,4

startDatestring
endDatestring
scanWorkflowSnapshotIdstring
GET /api/file/{scanId}/{startIndex}/{count}
curl --get \
--url 'http://<MDSS_HOST>/api/file/{scanId}/{startIndex}/{count}' \
--header 'Authorization: Bearer {token}' \
--data sorting_order={sorting_order} \
--data search={search} \
--data result={result} \
--data startDate={startDate} \
--data endDate={endDate} \
--data scanWorkflowSnapshotId={scanWorkflowSnapshotId}
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entriesarray
filterCountint64
totalCountint64
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"id": "{string}",
"scanId": "{string}",
"name": "{string}",
"path": "{string}",
"hash": "{string}",
"fileOwner": {
"userId": "{string}",
"fullName": "{string}",
"userName": "{string}",
"emailAddress": "{string}"
},
"size": "{int64}"
}
],
"filterCount": "{int64}",
"totalCount": "{int64}"
}
Copy

Fetch all groups

Auth
GET /api/group
curl --get \
--url 'http://<MDSS_HOST>/api/group' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
groups4 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"groups": [
{
"id": "{string}",
"name": "{string}",
"description": "{string}",
"storages": [
{
"id": "{string}",
"groupId": "{string}",
"name": "{string}",
"storageClientId": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"handlingType": "{integer}",
"scanConfigurationId": "{string}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfigurationStatus": "{integer}",
"sanitizedFileRemediationConfigurationStatus": "{integer}",
"allowedFileRemediationConfigurationStatus": "{integer}",
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}",
"blockedFileHandlingType": "{integer}",
"allowedFileHandlingType": "{integer}",
"sanitizedFileHandlingType": "{integer}",
"blockedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockingStrategy": "{integer}"
}
},
"storageFunctionality": "{string}",
"$type": "{string}"
}
]
}
]
}
Copy

Add a group

Auth
Request Body
objectobject
namestring
descriptionstring
storageIdsarray[string]
userInfo
objectobject
userIdstring
userNamestring
POST /api/group
curl --request POST \
--url 'http://<MDSS_HOST>/api/group' \
--header 'Authorization: Bearer {token}' \
--data '{
"name": "{string}",
"description": "{string}",
"storageIds": [
"{array[string]...}"
],
"userInfo": {
"userId": "{string}",
"userName": "{string}"
}
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
group
objectobject
idstring
namestring
descriptionstring
storageIdsarray[string]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"group": {
"id": "{string}",
"name": "{string}",
"description": "{string}",
"storageIds": [
"{array[string]...}"
]
}
}
Copy

Update a group

Auth
Request Body
objectobject
namestring
descriptionstring
groupIdstring
userInfo
objectobject
userIdstring
userNamestring
PATCH /api/group
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/group' \
--header 'Authorization: Bearer {token}' \
--data '{
"name": "{string}",
"description": "{string}",
"groupId": "{string}",
"userInfo": {
"userId": "{string}",
"userName": "{string}"
}
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedGroup
objectobject
namestring
descriptionstring
storageIdsarray[string]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedGroup": {
"name": "{string}",
"description": "{string}",
"storageIds": [
"{array[string]...}"
]
}
}
Copy

Fetch group by ID

Auth
Path Params
groupIdstring
GET /api/group/{groupId}
curl --get \
--url 'http://<MDSS_HOST>/api/group/{groupId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
group
objectobject
idstring
namestring
descriptionstring
storages9 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"group": {
"id": "{string}",
"name": "{string}",
"description": "{string}",
"storages": [
{
"id": "{string}",
"groupId": "{string}",
"name": "{string}",
"storageClientId": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"handlingType": "{integer}",
"scanConfigurationId": "{string}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfigurationStatus": "{integer}",
"sanitizedFileRemediationConfigurationStatus": "{integer}",
"allowedFileRemediationConfigurationStatus": "{integer}",
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}",
"blockedFileHandlingType": "{integer}",
"allowedFileHandlingType": "{integer}",
"sanitizedFileHandlingType": "{integer}",
"blockedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockingStrategy": "{integer}"
}
},
"storageFunctionality": "{string}",
"$type": "{string}"
}
]
}
}
Copy

Delete a group

Auth
Path Params
groupIdstring
DELETE /api/group/{groupId}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/group/{groupId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
groupIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"groupId": "{string}"
}
Copy

Fetch the number of groups

Auth
GET /api/group/count
curl --get \
--url 'http://<MDSS_HOST>/api/group/count' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
groupCount
objectobject
countint64
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"groupCount": {
"count": "{int64}"
}
}
Copy

Health Status

API that responds with 200 OK if application is running.

Get health status

Auth
Query String
verboseboolean

Default: false

GET /api/health
curl --get \
--url 'http://<MDSS_HOST>/api/health' \
--header 'Authorization: Bearer {token}' \
--data verbose={verbose}
Copy
Responses
200
objectobject
apiStatusstring
Response
{
"apiStatus": "{string}"
}
Copy

Opswat Central Management

Manage OPSWAT Central Management integration

Get OCM configuration

Auth
GET /api/ocm
curl --get \
--url 'http://<MDSS_HOST>/api/ocm' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
ocmInformation
objectobject
idstring
serverApistring
registrationCodestring
connectionStatusinteger

Enum: 0,1

enrollStatusinteger

Enum: 0,1

lastServerConnectionint64
lastConfigurationSyncint64
apiKeystring
cmVersionstring
deploymentIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"ocmInformation": {
"id": "{string}",
"serverApi": "{string}",
"registrationCode": "{string}",
"connectionStatus": "{integer}",
"enrollStatus": "{integer}",
"lastServerConnection": "{int64}",
"lastConfigurationSync": "{int64}",
"apiKey": "{string}",
"cmVersion": "{string}",
"deploymentId": "{string}"
}
}
Copy

Enroll to OCM

Auth
Request Body
objectobject
serverApistring

minLength: 1

regCodestring

minLength: 1

instanceCustomIpstring

maxLength: 2048

minLength: 7

PUT /api/ocm
curl --request PUT \
--url 'http://<MDSS_HOST>/api/ocm' \
--header 'Authorization: Bearer {token}' \
--data '{
"serverApi": "{string}",
"regCode": "{string}",
"instanceCustomIp": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

UnEnroll to OCM

Auth
POST /api/ocm
curl --request POST \
--url 'http://<MDSS_HOST>/api/ocm' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
versionstring
lastSupportedConfigVersionstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"version": "{string}",
"lastSupportedConfigVersion": "{string}"
}
Copy

Get managed status

Check if MDSS is managed by OCM. This is called by OCM v7.

Auth
GET /api/ocm/manage
curl --get \
--url 'http://<MDSS_HOST>/api/ocm/manage' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Set managed status

Notify that MDSS is managed. This is called by OCM v7.

Auth
Query String
forceboolean

Default: false

Request Body
objectobject
serverApistring

minLength: 1

POST /api/ocm/manage
curl --request POST \
--url 'http://<MDSS_HOST>/api/ocm/manage' \
--header 'Authorization: Bearer {token}' \
--data force={force} \
--data '{
"serverApi": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Delete managed status

Remove MDSS from being managed. This is called by OCM v7.

Auth
DELETE /api/ocm/manage
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/ocm/manage' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Fetch onboarding configuration

Auth
Query String
newConfigSetupboolean
GET /api/onboarding
curl --get \
--url 'http://<MDSS_HOST>/api/onboarding' \
--header 'Authorization: Bearer {token}' \
--data newConfigSetup={newConfigSetup}
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
hasUserConfiguredboolean
hasStorageConfiguredboolean
hasScanInstanceConfiguredboolean
isOnboardingDoneboolean
isEulaAgreedboolean
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"hasUserConfigured": "{boolean}",
"hasStorageConfigured": "{boolean}",
"hasScanInstanceConfigured": "{boolean}",
"isOnboardingDone": "{boolean}",
"isEulaAgreed": "{boolean}"
}
Copy

Finish onboarding

Auth
POST /api/onboarding
curl --request POST \
--url 'http://<MDSS_HOST>/api/onboarding' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Accept Eula

Auth
POST /api/onboarding/eula
curl --request POST \
--url 'http://<MDSS_HOST>/api/onboarding/eula' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Report

Generate reports

Get scans report

Auth
Query String
storageIdstring
namestring
scanTypesFilterarray

Enum: 0,1,2

scanStatesFilterarray

Enum: 0,1,2,3,4

startDatestring
endDatestring
sortDirectionFilter
startIndexinteger
countinteger
GET /api/report
curl --get \
--url 'http://<MDSS_HOST>/api/report' \
--header 'Authorization: Bearer {token}' \
--data storageId={storageId} \
--data name={name} \
--data scanTypesFilter={scanTypesFilter} \
--data scanStatesFilter={scanStatesFilter} \
--data startDate={startDate} \
--data endDate={endDate} \
--data sortDirectionFilter={sortDirectionFilter} \
--data startIndex={startIndex} \
--data count={count}
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entriesarray
totalCountint64
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"id": "{string}",
"name": "{string}",
"startTime": "{date-time}",
"stopTime": "{date-time}",
"scanType": "{string}",
"scanningState": "{integer}",
"scanStatusDto": {
"pendingFilesCount": "{int64}",
"allowedFilesCount": "{int64}",
"blockedFilesCount": "{int64}",
"totalFilesCount": "{int64}",
"processingFailedCount": "{int64}",
"processedFilesCount": "{int64}"
},
"scanStatsDto": {
"pciDssComplianceViolationsCount": "{int64}",
"hipaaComplianceViolationsCount": "{int64}",
"gdprComplianceViolationsCount": "{int64}",
"malwareSecurityAlertsCount": "{int64}",
"vulnerabilitiesSecurityAlertsCount": "{int64}",
"piiSecurityAlertsCount": "{int64}",
"pciDssComplianceViolationsPercentageIncrease": "{int64}",
"hipaaComplianceViolationsPercentageIncrease": "{int64}",
"gdprComplianceViolationsPercentageIncrease": "{int64}",
"malwareSecurityAlertsPercentageIncrease": "{int64}",
"vulnerabilitiesSecurityAlertsPercentageIncrease": "{int64}",
"piiSecurityAlertsPercentageIncrease": "{int64}",
"highRiskAccounts": [
{
"id": "{string}",
"displayName": "{string}",
"blockedFilesCount": "{int64}"
}
]
},
"scanSequenceDto": {
"previousScanId": "{string}",
"nextScanId": "{string}"
},
"scanConfigurationId": "{string}",
"errors": [
"{array[string]...}"
]
}
],
"totalCount": "{int64}"
}
Copy

Get Scan Configurations

Auth
GET /api/scanconfiguration
curl --get \
--url 'http://<MDSS_HOST>/api/scanconfiguration' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entries9 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"id": "{string}",
"scanPoolId": "{string}",
"rules": [
"{array[string]...}"
],
"type": "{integer}",
"name": "{string}",
"userAgent": "{string}",
"scanPool": {
"id": "{string}",
"name": "{string}",
"scanPoolType": "{integer}",
"isDefault": "{boolean}",
"scanInstances": [
{
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
]
},
"failOverScanPoolId": "{string}",
"failOverScanPool": {
"id": "{string}",
"name": "{string}",
"scanPoolType": "{integer}",
"isDefault": "{boolean}",
"scanInstances": [
{
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
]
}
}
]
}
Copy

Add a new Scan Configuration

Auth
Request Body
objectobject
scanPoolIdstring
rulesarray[string]
namestring

maxLength: 30

minLength: 3

userAgentstring
failOverScanPoolIdstring
POST /api/scanconfiguration
curl --request POST \
--url 'http://<MDSS_HOST>/api/scanconfiguration' \
--header 'Authorization: Bearer {token}' \
--data '{
"scanPoolId": "{string}",
"rules": [
"{array[string]...}"
],
"name": "{string}",
"userAgent": "{string}",
"failOverScanPoolId": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
scanConfigurationIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"scanConfigurationId": "{string}"
}
Copy

Update an existing Scan Configuration

Auth
Request Body
objectobject
idstring
scanPoolIdstring
rulesarray[string]
namestring

maxLength: 30

minLength: 3

userAgentstring
failOverScanPoolIdstring
failOverDisabledboolean
PATCH /api/scanconfiguration
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/scanconfiguration' \
--header 'Authorization: Bearer {token}' \
--data '{
"id": "{string}",
"scanPoolId": "{string}",
"rules": [
"{array[string]...}"
],
"name": "{string}",
"userAgent": "{string}",
"failOverScanPoolId": "{string}",
"failOverDisabled": "{boolean}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Get Scan Configuration by ID

Auth
Path Params
idstring
GET /api/scanconfiguration/{id}
curl --get \
--url 'http://<MDSS_HOST>/api/scanconfiguration/{id}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entry
objectobject
idstring
scanPoolIdstring
rulesarray[string]
typeinteger

Enum: 0,1

namestring
userAgentstring
scanPool5 fieldsobject
failOverScanPoolIdstring
failOverScanPool
objectobject
idstring
namestring
scanPoolTypeinteger

Enum: 0,1

isDefaultboolean
scanInstances6 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entry": {
"id": "{string}",
"scanPoolId": "{string}",
"rules": [
"{array[string]...}"
],
"type": "{integer}",
"name": "{string}",
"userAgent": "{string}",
"scanPool": {
"id": "{string}",
"name": "{string}",
"scanPoolType": "{integer}",
"isDefault": "{boolean}",
"scanInstances": [
{
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
]
},
"failOverScanPoolId": "{string}",
"failOverScanPool": {
"id": "{string}",
"name": "{string}",
"scanPoolType": "{integer}",
"isDefault": "{boolean}",
"scanInstances": [
{
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
]
}
}
}
Copy

Delete a Scan Configuration

Auth
Path Params
idstring
DELETE /api/scanconfiguration/{id}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/scanconfiguration/{id}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Set a Scan Configuration as default

Auth
Path Params
idstring
POST /api/scanconfiguration/setDefault/{id}
curl --request POST \
--url 'http://<MDSS_HOST>/api/scanconfiguration/setDefault/{id}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Get scan by ID

Auth
Path Params
scanIdstring
GET /api/scan/{scanId}
curl --get \
--url 'http://<MDSS_HOST>/api/scan/{scanId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
scan
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateinteger

Enum: 0,1,2,3,4

scanStatusDto
objectobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDto
objectobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccounts3 fieldsarray[object]
scanSequenceDto
objectobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
errorsarray[string]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"scan": {
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"id": "{string}",
"name": "{string}",
"startTime": "{date-time}",
"stopTime": "{date-time}",
"scanType": "{string}",
"scanningState": "{integer}",
"scanStatusDto": {
"pendingFilesCount": "{int64}",
"allowedFilesCount": "{int64}",
"blockedFilesCount": "{int64}",
"totalFilesCount": "{int64}",
"processingFailedCount": "{int64}",
"processedFilesCount": "{int64}"
},
"scanStatsDto": {
"pciDssComplianceViolationsCount": "{int64}",
"hipaaComplianceViolationsCount": "{int64}",
"gdprComplianceViolationsCount": "{int64}",
"malwareSecurityAlertsCount": "{int64}",
"vulnerabilitiesSecurityAlertsCount": "{int64}",
"piiSecurityAlertsCount": "{int64}",
"pciDssComplianceViolationsPercentageIncrease": "{int64}",
"hipaaComplianceViolationsPercentageIncrease": "{int64}",
"gdprComplianceViolationsPercentageIncrease": "{int64}",
"malwareSecurityAlertsPercentageIncrease": "{int64}",
"vulnerabilitiesSecurityAlertsPercentageIncrease": "{int64}",
"piiSecurityAlertsPercentageIncrease": "{int64}",
"highRiskAccounts": [
{
"id": "{string}",
"displayName": "{string}",
"blockedFilesCount": "{int64}"
}
]
},
"scanSequenceDto": {
"previousScanId": "{string}",
"nextScanId": "{string}"
},
"scanConfigurationId": "{string}",
"errors": [
"{array[string]...}"
]
}
}
Copy

Get scan by ID with information regarding the previous and next scan

Auth
Path Params
scanIdstring
Query String
scanTypesFilterarray

Enum: 0,1,2

scanStatesFilterarray

Enum: 0,1,2,3,4

GET /api/scan/sequence/{scanId}
curl --get \
--url 'http://<MDSS_HOST>/api/scan/sequence/{scanId}' \
--header 'Authorization: Bearer {token}' \
--data scanTypesFilter={scanTypesFilter} \
--data scanStatesFilter={scanStatesFilter}
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
scan
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateinteger

Enum: 0,1,2,3,4

scanStatusDto
objectobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDto
objectobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccounts3 fieldsarray[object]
scanSequenceDto
objectobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
errorsarray[string]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"scan": {
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"id": "{string}",
"name": "{string}",
"startTime": "{date-time}",
"stopTime": "{date-time}",
"scanType": "{string}",
"scanningState": "{integer}",
"scanStatusDto": {
"pendingFilesCount": "{int64}",
"allowedFilesCount": "{int64}",
"blockedFilesCount": "{int64}",
"totalFilesCount": "{int64}",
"processingFailedCount": "{int64}",
"processedFilesCount": "{int64}"
},
"scanStatsDto": {
"pciDssComplianceViolationsCount": "{int64}",
"hipaaComplianceViolationsCount": "{int64}",
"gdprComplianceViolationsCount": "{int64}",
"malwareSecurityAlertsCount": "{int64}",
"vulnerabilitiesSecurityAlertsCount": "{int64}",
"piiSecurityAlertsCount": "{int64}",
"pciDssComplianceViolationsPercentageIncrease": "{int64}",
"hipaaComplianceViolationsPercentageIncrease": "{int64}",
"gdprComplianceViolationsPercentageIncrease": "{int64}",
"malwareSecurityAlertsPercentageIncrease": "{int64}",
"vulnerabilitiesSecurityAlertsPercentageIncrease": "{int64}",
"piiSecurityAlertsPercentageIncrease": "{int64}",
"highRiskAccounts": [
{
"id": "{string}",
"displayName": "{string}",
"blockedFilesCount": "{int64}"
}
]
},
"scanSequenceDto": {
"previousScanId": "{string}",
"nextScanId": "{string}"
},
"scanConfigurationId": "{string}",
"errors": [
"{array[string]...}"
]
}
}
Copy

Start a scan

To scan a specific folder using the optional Folder parameter, provide the folder's name if you're using Box, OneDrive, or SharePoint integrations. For other storage integrations, you should provide the absolute path to the folder you want to scan.

Auth
Request Body
objectobject
storageIdstring
namestring
scanConfigurationIdstring
folderstring
POST /api/scan/start
curl --request POST \
--url 'http://<MDSS_HOST>/api/scan/start' \
--header 'Authorization: Bearer {token}' \
--data '{
"storageId": "{string}",
"name": "{string}",
"scanConfigurationId": "{string}",
"folder": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
scanIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"scanId": "{string}"
}
Copy

Stop a scan

Auth
Path Params
scanIdstring
POST /api/scan/stop/{scanId}
curl --request POST \
--url 'http://<MDSS_HOST>/api/scan/stop/{scanId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Get next scheduled scan

Auth
Path Params
storageIdstring
GET /api/scan/scheduled/{storageId}
curl --get \
--url 'http://<MDSS_HOST>/api/scan/scheduled/{storageId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
nextScheduledScan
objectobject
idstring
namestring
scanConfigurationIdstring
typestring
createdAtdate-time
lastScanTimedate-time
nextScanTimedate-time
recurrencePatternDto
objectobject
hourlyRecurrenceDto
objectobject
everyNumberOfHoursint32
dailyRecurrenceDto
objectobject
everyNumberOfDaysint32
weeklyRecurrenceDto
objectobject
dayOfWeekinteger

Enum: 0,1,2,3,4,5,6

monthlyRecurrenceDto
objectobject
everyNumberOfMonthsint32
dayOfMonthint32
createdBystring
scheduledScansCountint32
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"nextScheduledScan": {
"id": "{string}",
"name": "{string}",
"scanConfigurationId": "{string}",
"type": "{string}",
"createdAt": "{date-time}",
"lastScanTime": "{date-time}",
"nextScanTime": "{date-time}",
"recurrencePatternDto": {
"hourlyRecurrenceDto": {
"everyNumberOfHours": "{int32}"
},
"dailyRecurrenceDto": {
"everyNumberOfDays": "{int32}"
},
"weeklyRecurrenceDto": {
"dayOfWeek": "{integer}"
},
"monthlyRecurrenceDto": {
"everyNumberOfMonths": "{int32}",
"dayOfMonth": "{int32}"
}
},
"createdBy": "{string}"
},
"scheduledScansCount": "{int32}"
}
Copy

Delete scans

Auth
Path Params
storageIdstring
Request Body
arrayarray[string]
DELETE /api/scan/{storageId}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/scan/{storageId}' \
--header 'Authorization: Bearer {token}' \
--data '[
"{array[string]...}"
]'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2,3,4

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
deletedScans15 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"deletedScans": [
{
"id": "{string}",
"storageId": "{string}",
"scanScheduleId": "{string}",
"name": "{string}",
"userId": "{string}",
"discoveryState": "{integer}",
"scanningState": "{integer}",
"scanType": "{integer}",
"startTime": "{date-time}",
"scanStats": {
"pciDssComplianceViolationsCount": "{int64}",
"hipaaComplianceViolationsCount": "{int64}",
"gdprComplianceViolationsCount": "{int64}",
"malwareSecurityAlertsCount": "{int64}",
"vulnerabilitiesSecurityAlertsCount": "{int64}",
"piiSecurityAlertsCount": "{int64}",
"pciDssComplianceViolationsPercentageIncrease": "{int64}",
"hipaaComplianceViolationsPercentageIncrease": "{int64}",
"gdprComplianceViolationsPercentageIncrease": "{int64}",
"malwareSecurityAlertsPercentageIncrease": "{int64}",
"vulnerabilitiesSecurityAlertsPercentageIncrease": "{int64}",
"piiSecurityAlertsPercentageIncrease": "{int64}",
"highRiskAccounts": [
{
"id": "{string}",
"displayName": "{string}",
"blockedFilesCount": "{int64}"
}
],
"totalStatisticsObjectsCount": "{int64}"
},
"stopTime": "{date-time}",
"scanConfigurationId": "{string}",
"executionId": "{string}",
"errors": [
"{array[string]...}"
],
"additionalPropertiesString": "{string}"
}
]
}
Copy

Get Scan Instances

Auth
Query String
scanPoolIdstring
GET /api/scaninstance
curl --get \
--url 'http://<MDSS_HOST>/api/scaninstance' \
--header 'Authorization: Bearer {token}' \
--data scanPoolId={scanPoolId}
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entries6 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
]
}
Copy

Update an existing Scan Instance

Auth
Request Body
objectobject
idstring
urlstring

pattern: ^((?!(^((https?):\/\/)?127(?:\.[0-9]+){0,2}\.[0-9]+(:(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})?)?$)|(^((https?):\/\/)?\[(?:0*\:)*?:?0*1\](:(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})?)?$)).)*$

apiKeystring
timeoutstring
PUT /api/scaninstance
curl --request PUT \
--url 'http://<MDSS_HOST>/api/scaninstance' \
--header 'Authorization: Bearer {token}' \
--data '{
"id": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Add a new Scan Instance

Auth
Request Body
objectobject
scanPoolIdstring
urlstring

pattern: ^((?!(^((https?):\/\/)?127(?:\.[0-9]+){0,2}\.[0-9]+(:(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})?)?$)|(^((https?):\/\/)?\[(?:0*\:)*?:?0*1\](:(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})?)?$)).)*$

apiKeystring
timeoutstring
scanInstanceTypeinteger

Enum: 0,1

POST /api/scaninstance
curl --request POST \
--url 'http://<MDSS_HOST>/api/scaninstance' \
--header 'Authorization: Bearer {token}' \
--data '{
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
scanInstanceIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"scanInstanceId": "{string}"
}
Copy

Get Scan Instance by ID

Auth
Path Params
idstring
GET /api/scaninstance/{id}
curl --get \
--url 'http://<MDSS_HOST>/api/scaninstance/{id}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entry
objectobject
idstring
scanPoolIdstring
urlstring
apiKeystring
timeoutstring
scanInstanceTypeinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entry": {
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
}
Copy

Delete a Scan Instance

Auth
Path Params
idstring
DELETE /api/scaninstance/{id}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/scaninstance/{id}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Test

Auth
Request Body
objectobject
urlstring
rulesarray[string]
apiKeystring
userAgentstring
POST /api/scaninstance/Test
curl --request POST \
--url 'http://<MDSS_HOST>/api/scaninstance/Test' \
--header 'Authorization: Bearer {token}' \
--data '{
"url": "{string}",
"rules": [
"{array[string]...}"
],
"apiKey": "{string}",
"userAgent": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Get Scan Pools

Auth
GET /api/scanpool
curl --get \
--url 'http://<MDSS_HOST>/api/scanpool' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entries5 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"id": "{string}",
"name": "{string}",
"scanPoolType": "{integer}",
"isDefault": "{boolean}",
"scanInstances": [
{
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
]
}
]
}
Copy

Update an existing Scan Pool

Auth
Request Body
objectobject
idstring
namestring

maxLength: 30

minLength: 3

PUT /api/scanpool
curl --request PUT \
--url 'http://<MDSS_HOST>/api/scanpool' \
--header 'Authorization: Bearer {token}' \
--data '{
"id": "{string}",
"name": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Add a new Scan Pool

Auth
Request Body
objectobject
namestring

maxLength: 30

minLength: 3

scanPoolTypeinteger

Enum: 0,1

POST /api/scanpool
curl --request POST \
--url 'http://<MDSS_HOST>/api/scanpool' \
--header 'Authorization: Bearer {token}' \
--data '{
"name": "{string}",
"scanPoolType": "{integer}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
scanPoolIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"scanPoolId": "{string}"
}
Copy

Get Scan Pool by ID

Auth
Path Params
idstring
GET /api/scanpool/{id}
curl --get \
--url 'http://<MDSS_HOST>/api/scanpool/{id}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entry
objectobject
idstring
namestring
scanPoolTypeinteger

Enum: 0,1

isDefaultboolean
scanInstances6 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entry": {
"id": "{string}",
"name": "{string}",
"scanPoolType": "{integer}",
"isDefault": "{boolean}",
"scanInstances": [
{
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
]
}
}
Copy

Delete a Scan Pool

Auth
Path Params
idstring
DELETE /api/scanpool/{id}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/scanpool/{id}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Scan Workflow Snapshot

List scan workflow snapshots

Get all scan workflow snapshots by scan ID

Auth
Path Params
scanIdstring
GET /api/scanworkflowsnapshot/getAllFromScan/{scanId}
curl --get \
--url 'http://<MDSS_HOST>/api/scanworkflowsnapshot/getAllFromScan/{scanId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
scanWorkflowSnapshots5 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"scanWorkflowSnapshots": [
{
"id": "{string}",
"scanId": "{string}",
"scanConfiguration": {
"id": "{string}",
"scanPoolId": "{string}",
"rules": [
"{array[string]...}"
],
"type": "{integer}",
"name": "{string}",
"userAgent": "{string}",
"scanPool": {
"id": "{string}",
"name": "{string}",
"scanPoolType": "{integer}",
"isDefault": "{boolean}",
"scanInstances": [
{
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
]
},
"failOverScanPoolId": "{string}",
"failOverScanPool": {
"id": "{string}",
"name": "{string}",
"scanPoolType": "{integer}",
"isDefault": "{boolean}",
"scanInstances": [
{
"id": "{string}",
"scanPoolId": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"scanInstanceType": "{integer}"
}
]
}
},
"startTimestamp": "{int64}",
"stopTimestamp": "{int64}"
}
]
}
Copy

Fetch storage security checklist

Auth
Path Params
storageIdstring
GET /api/security-checklist/{storageId}
curl --get \
--url 'http://<MDSS_HOST>/api/security-checklist/{storageId}' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
items7 fieldsarray[object]
lastUpdateTimedate-time
scorenumber
isEnabledboolean
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"items": [
{
"id": "{string}",
"title": "{integer}",
"status": "{integer}",
"priority": "{integer}",
"isEnabled": "{boolean}",
"howToFixLink": "{string}",
"failureReason": "{string}"
}
],
"lastUpdateTime": "{date-time}",
"score": "{number}",
"isEnabled": "{boolean}"
}
Copy

Fetch security checklist details

Auth
Path Params
storageIdstring
GET /api/security-checklist/{storageId}/info
curl --get \
--url 'http://<MDSS_HOST>/api/security-checklist/{storageId}/info' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
scorenumber
resolvedItemsCountint32
enabledItemsCountint32
isEnabledboolean
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"score": "{number}",
"resolvedItemsCount": "{int32}",
"enabledItemsCount": "{int32}",
"isEnabled": "{boolean}"
}
Copy

Update security checklist item

Auth
Path Params
storageIdstring
Request Body
objectobject
idstring
isEnabledboolean
PUT /api/security-checklist/{storageId}/item
curl --request PUT \
--url 'http://<MDSS_HOST>/api/security-checklist/{storageId}/item' \
--header 'Authorization: Bearer {token}' \
--data '{
"id": "{string}",
"isEnabled": "{boolean}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2,3,4,5

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
item
objectobject
idstring
titleinteger

Enum: 0,1,2,3,4,5,6,7

statusinteger

Enum: 0,1,2

priorityinteger

Enum: 0,1,2

isEnabledboolean
howToFixLinkstring
failureReasonstring
storage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"item": {
"id": "{string}",
"title": "{integer}",
"status": "{integer}",
"priority": "{integer}",
"isEnabled": "{boolean}",
"howToFixLink": "{string}",
"failureReason": "{string}"
},
"storage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Verify the security checklist for storage

Auth
Path Params
storageIdstring
PUT /api/security-checklist/{storageId}/verify
curl --request PUT \
--url 'http://<MDSS_HOST>/api/security-checklist/{storageId}/verify' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Enable/Disable the security checklist

Auth
Request Body
objectobject
storageIdstring
isEnabledboolean
PATCH /api/security-checklist
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/security-checklist' \
--header 'Authorization: Bearer {token}' \
--data '{
"storageId": "{string}",
"isEnabled": "{boolean}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

isEnabledboolean
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
},
"isEnabled": "{boolean}"
}
Copy

Enable all security checklist items

Auth
Path Params
storageIdstring
PUT /api/security-checklist/{storageId}/enable-all
curl --request PUT \
--url 'http://<MDSS_HOST>/api/security-checklist/{storageId}/enable-all' \
--header 'Authorization: Bearer {token}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Get notifications configuration

Auth
GET /api/settings/notifications
curl --get \
--url 'http://<MDSS_HOST>/api/settings/notifications'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
emailNotificationsConfig
objectobject
generatedReportNotificationsConfig
objectobject
isEnabledboolean
recipientsTypeinteger

Enum: 0,1

userRequestNotificationsConfig
objectobject
isEnabledboolean
blockedFileNotificationsConfig
objectobject
isEnabledboolean
recipientsTypeinteger

Enum: 0,1,2

webhookNotificationsConfig
objectobject
scanCompletedNotificationsConfig
objectobject
isEnabledboolean
destinationAddressstring
headersobject
*string
requestTypeinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"emailNotificationsConfig": {
"generatedReportNotificationsConfig": {
"isEnabled": "{boolean}",
"recipientsType": "{integer}"
},
"userRequestNotificationsConfig": {
"isEnabled": "{boolean}"
},
"blockedFileNotificationsConfig": {
"isEnabled": "{boolean}",
"recipientsType": "{integer}"
}
},
"webhookNotificationsConfig": {
"scanCompletedNotificationsConfig": {
"isEnabled": "{boolean}",
"destinationAddress": "{string}",
"headers": {},
"requestType": "{integer}"
}
}
}
Copy

Update notifications configuration

Auth
Request Body
objectobject
emailNotificationsConfig
objectobject
generatedReportNotificationsConfig
objectobject
isEnabledboolean
recipientsTypeinteger

Enum: 0,1

userRequestNotificationsConfig
objectobject
isEnabledboolean
blockedFileNotificationsConfig
objectobject
isEnabledboolean
recipientsTypeinteger

Enum: 0,1,2

webhookNotificationsConfig
objectobject
scanCompletedNotificationsConfig
objectobject
isEnabledboolean
destinationAddressstring
headersobject
*string
requestTypeinteger

Enum: 0,1

PUT /api/settings/notifications
curl --request PUT \
--url 'http://<MDSS_HOST>/api/settings/notifications' \
--data '{
"emailNotificationsConfig": {
"generatedReportNotificationsConfig": {
"isEnabled": "{boolean}",
"recipientsType": "{integer}"
},
"userRequestNotificationsConfig": {
"isEnabled": "{boolean}"
},
"blockedFileNotificationsConfig": {
"isEnabled": "{boolean}",
"recipientsType": "{integer}"
}
},
"webhookNotificationsConfig": {
"scanCompletedNotificationsConfig": {
"isEnabled": "{boolean}",
"destinationAddress": "{string}",
"headers": {},
"requestType": "{integer}"
}
}
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
newNotificationsConfig
objectobject
idstring
emailNotificationsConfig
objectobject
userRequestNotificationsConfig
objectobject
isEnabledboolean
generatedReportNotificationsConfig
objectobject
isEnabledboolean
recipientsTypeinteger

Enum: 0,1

blockedFileNotificationsConfig
objectobject
isEnabledboolean
recipientsTypeinteger

Enum: 0,1,2

webhookNotificationsConfig
objectobject
scanCompletedNotificationsConfig
objectobject
isEnabledboolean
destinationAddressstring
headersobject
*string
requestTypeinteger

Enum: 0,1

initialNotificationsConfig
objectobject
idstring
emailNotificationsConfig
objectobject
userRequestNotificationsConfig
objectobject
isEnabledboolean
generatedReportNotificationsConfig
objectobject
isEnabledboolean
recipientsTypeinteger

Enum: 0,1

blockedFileNotificationsConfig
objectobject
isEnabledboolean
recipientsTypeinteger

Enum: 0,1,2

webhookNotificationsConfig
objectobject
scanCompletedNotificationsConfig
objectobject
isEnabledboolean
destinationAddressstring
headersobject
*string
requestTypeinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"newNotificationsConfig": {
"id": "{string}",
"emailNotificationsConfig": {
"userRequestNotificationsConfig": {
"isEnabled": "{boolean}"
},
"generatedReportNotificationsConfig": {
"isEnabled": "{boolean}",
"recipientsType": "{integer}"
},
"blockedFileNotificationsConfig": {
"isEnabled": "{boolean}",
"recipientsType": "{integer}"
}
},
"webhookNotificationsConfig": {
"scanCompletedNotificationsConfig": {
"isEnabled": "{boolean}",
"destinationAddress": "{string}",
"headers": {},
"requestType": "{integer}"
}
}
},
"initialNotificationsConfig": {
"id": "{string}",
"emailNotificationsConfig": {
"userRequestNotificationsConfig": {
"isEnabled": "{boolean}"
},
"generatedReportNotificationsConfig": {
"isEnabled": "{boolean}",
"recipientsType": "{integer}"
},
"blockedFileNotificationsConfig": {
"isEnabled": "{boolean}",
"recipientsType": "{integer}"
}
},
"webhookNotificationsConfig": {
"scanCompletedNotificationsConfig": {
"isEnabled": "{boolean}",
"destinationAddress": "{string}",
"headers": {},
"requestType": "{integer}"
}
}
}
}
Copy

Fetch SMTP configuration

Auth
GET /api/settings/smtp
curl --get \
--url 'http://<MDSS_HOST>/api/settings/smtp'
Copy
Responses
200
objectobject
hoststring
portint32
baseUrlstring
senderAddressstring
senderNamestring

maxLength: 320

domainstring
usernamestring
passwordstring
secureSocketOption
integerinteger

Enum: 0,1,2,3,4

ignoreCertWarningsboolean
isSmtpEnabledboolean
Response
{
"host": "{string}",
"port": "{int32}",
"baseUrl": "{string}",
"senderAddress": "{string}",
"senderName": "{string}",
"domain": "{string}",
"username": "{string}",
"password": "{string}",
"secureSocketOption": "{integer}",
"ignoreCertWarnings": "{boolean}",
"isSmtpEnabled": "{boolean}"
}
Copy

Update SMTP configuration

Auth
Request Body
objectobject
hoststring
portint32
baseUrlstring
senderAddressstring
senderNamestring

maxLength: 320

domainstring
usernamestring
passwordstring
secureSocketOption
integerinteger

Enum: 0,1,2,3,4

ignoreCertWarningsboolean
isSmtpEnabledboolean
PATCH /api/settings/smtp
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/settings/smtp' \
--data '{
"host": "{string}",
"port": "{int32}",
"baseUrl": "{string}",
"senderAddress": "{string}",
"senderName": "{string}",
"domain": "{string}",
"username": "{string}",
"password": "{string}",
"secureSocketOption": "{integer}",
"ignoreCertWarnings": "{boolean}",
"isSmtpEnabled": "{boolean}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
newSmtpConfig
objectobject
idstring
hoststring
baseUrlstring
portint32
senderAddressstring
senderNamestring
domainstring
usernamestring
passwordstring
secureSocketOptioninteger

Enum: 0,1,2,3,4

ignoreCertWarningsboolean
isSmtpEnabledboolean
oldSmtpConfig
objectobject
idstring
hoststring
baseUrlstring
portint32
senderAddressstring
senderNamestring
domainstring
usernamestring
passwordstring
secureSocketOptioninteger

Enum: 0,1,2,3,4

ignoreCertWarningsboolean
isSmtpEnabledboolean
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"newSmtpConfig": {
"id": "{string}",
"host": "{string}",
"baseUrl": "{string}",
"port": "{int32}",
"senderAddress": "{string}",
"senderName": "{string}",
"domain": "{string}",
"username": "{string}",
"password": "{string}",
"secureSocketOption": "{integer}",
"ignoreCertWarnings": "{boolean}",
"isSmtpEnabled": "{boolean}"
},
"oldSmtpConfig": {
"id": "{string}",
"host": "{string}",
"baseUrl": "{string}",
"port": "{int32}",
"senderAddress": "{string}",
"senderName": "{string}",
"domain": "{string}",
"username": "{string}",
"password": "{string}",
"secureSocketOption": "{integer}",
"ignoreCertWarnings": "{boolean}",
"isSmtpEnabled": "{boolean}"
}
}
Copy

Online license activation

Auth
Request Body
objectobject
keystring

minLength: 1

POST /api/settings/admin/license/activate/online
curl --request POST \
--url 'http://<MDSS_HOST>/api/settings/admin/license/activate/online' \
--data '{
"key": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Offline license activation

Auth
Request Body
objectobject
LicenseContentfile
POST /api/settings/admin/license/activate/offline
curl --request POST \
--url 'http://<MDSS_HOST>/api/settings/admin/license/activate/offline' \
--form 'file=@{file}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Get license details

Auth
GET /api/settings/admin/license
curl --get \
--url 'http://<MDSS_HOST>/api/settings/admin/license'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Deactivate license

Auth
POST /api/settings/admin/license/deactivate
curl --request POST \
--url 'http://<MDSS_HOST>/api/settings/admin/license/deactivate'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Fetch retention configuration

Auth
GET /api/settings/retention
curl --get \
--url 'http://<MDSS_HOST>/api/settings/retention'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
retentionAuditDaysint32
reportRetentionConfiguration
objectobject
isEnabledboolean
retentionDaysint32
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"retentionAuditDays": "{int32}",
"reportRetentionConfiguration": {
"isEnabled": "{boolean}",
"retentionDays": "{int32}"
}
}
Copy

Update retention configuration

Auth
Request Body
objectobject
retentionAuditDaysint32

maximum: 50000

minimum: 10

reportRetentionobject
isEnabledboolean
retentionDaysint32

maximum: 50000

minimum: 10

PUT /api/settings/retention
curl --request PUT \
--url 'http://<MDSS_HOST>/api/settings/retention' \
--data '{
"retentionAuditDays": "{int32}",
"reportRetention": {
"isEnabled": "{boolean}",
"retentionDays": "{int32}"
}
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Sso

Sso Authentication and Sso configuration update

Get Sso Configuration

Auth
GET /api/sso/config
curl --get \
--url 'http://<MDSS_HOST>/api/sso/config'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
clientIdstring
authoritystring
baseUrlstring
isEnabledboolean
ssoTypeinteger

Enum: 0

ssoProviderinteger

Enum: 0,1,2,3

administratorRoleNamestring
readonlyRoleNamestring
ssoConfig
objectobject
idstring
isEnabledboolean
ssoProviderinteger

Enum: 0,1,2,3

ssoTypeinteger

Enum: 0

baseUrlstring
clientIdstring
clientSecretstring
authoritystring
administratorRoleNamestring
readonlyRoleNamestring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"clientId": "{string}",
"authority": "{string}",
"baseUrl": "{string}",
"isEnabled": "{boolean}",
"ssoType": "{integer}",
"ssoProvider": "{integer}",
"administratorRoleName": "{string}",
"readonlyRoleName": "{string}",
"ssoConfig": {
"id": "{string}",
"isEnabled": "{boolean}",
"ssoProvider": "{integer}",
"ssoType": "{integer}",
"baseUrl": "{string}",
"clientId": "{string}",
"clientSecret": "{string}",
"authority": "{string}",
"administratorRoleName": "{string}",
"readonlyRoleName": "{string}"
}
}
Copy

Update Sso Configuration

Auth
Request Body
objectobject
clientIdstring

maxLength: 255

clientSecretstring

maxLength: 255

authoritystring

maxLength: 255

baseUrlstring

maxLength: 255

isEnabledboolean
ssoTypeint32
ssoProviderint32
administratorRoleNamestring

maxLength: 63

readonlyRoleNamestring

maxLength: 63

PATCH /api/sso
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/sso' \
--data '{
"clientId": "{string}",
"clientSecret": "{string}",
"authority": "{string}",
"baseUrl": "{string}",
"isEnabled": "{boolean}",
"ssoType": "{int32}",
"ssoProvider": "{int32}",
"administratorRoleName": "{string}",
"readonlyRoleName": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
clientIdstring
authoritystring
baseUrlstring
isEnabledboolean
ssoTypeinteger

Enum: 0

ssoProviderinteger

Enum: 0,1,2,3

administratorRoleNamestring
readonlyRoleNamestring
ssoConfig
objectobject
idstring
isEnabledboolean
ssoProviderinteger

Enum: 0,1,2,3

ssoTypeinteger

Enum: 0

baseUrlstring
clientIdstring
clientSecretstring
authoritystring
administratorRoleNamestring
readonlyRoleNamestring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"clientId": "{string}",
"authority": "{string}",
"baseUrl": "{string}",
"isEnabled": "{boolean}",
"ssoType": "{integer}",
"ssoProvider": "{integer}",
"administratorRoleName": "{string}",
"readonlyRoleName": "{string}",
"ssoConfig": {
"id": "{string}",
"isEnabled": "{boolean}",
"ssoProvider": "{integer}",
"ssoType": "{integer}",
"baseUrl": "{string}",
"clientId": "{string}",
"clientSecret": "{string}",
"authority": "{string}",
"administratorRoleName": "{string}",
"readonlyRoleName": "{string}"
}
}
Copy

Fetch all storages

Auth
GET /api/storage/all
curl --get \
--url 'http://<MDSS_HOST>/api/storage/all'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entries9 fieldsarray[object]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"id": "{string}",
"groupId": "{string}",
"name": "{string}",
"storageClientId": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"handlingType": "{integer}",
"scanConfigurationId": "{string}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfigurationStatus": "{integer}",
"sanitizedFileRemediationConfigurationStatus": "{integer}",
"allowedFileRemediationConfigurationStatus": "{integer}",
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}",
"blockedFileHandlingType": "{integer}",
"allowedFileHandlingType": "{integer}",
"sanitizedFileHandlingType": "{integer}",
"blockedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockingStrategy": "{integer}"
}
},
"storageFunctionality": "{string}",
"$type": "{string}"
}
]
}
Copy

Fetch storage by ID

Auth
Path Params
storageIdstring
GET /api/storage/{storageId}
curl --get \
--url 'http://<MDSS_HOST>/api/storage/{storageId}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storage
objectobject
idstring
groupIdstring
namestring
storageClientIdstring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

realTimeScanConfig
objectobject
isEnabledboolean
handlingType
integerinteger

Enum: 0,1

scanConfigurationIdstring
postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingType
integerinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfigurationStatusinteger

Enum: 0,1,2

sanitizedFileRemediationConfigurationStatusinteger

Enum: 0,1,2

allowedFileRemediationConfigurationStatusinteger

Enum: 0,1,2

shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockedFileHandlingType
integerinteger

Enum: 0,1,2

allowedFileHandlingType
integerinteger

Enum: 0,1,2

sanitizedFileHandlingType
integerinteger

Enum: 0,1,2

blockedFileStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockingStrategy
integerinteger

Enum: 0,1

storageFunctionalitystring
$typestring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storage": {
"id": "{string}",
"groupId": "{string}",
"name": "{string}",
"storageClientId": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"handlingType": "{integer}",
"scanConfigurationId": "{string}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfigurationStatus": "{integer}",
"sanitizedFileRemediationConfigurationStatus": "{integer}",
"allowedFileRemediationConfigurationStatus": "{integer}",
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}",
"blockedFileHandlingType": "{integer}",
"allowedFileHandlingType": "{integer}",
"sanitizedFileHandlingType": "{integer}",
"blockedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockingStrategy": "{integer}"
}
},
"storageFunctionality": "{string}",
"$type": "{string}"
}
}
Copy

Delete a storage

Auth
Path Params
storageIdstring
DELETE /api/storage/{storageId}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/storage/{storageId}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Update a storage

Note! The following are templates for what is expected in the Credentials, CredentialsFile and Source fields. Please provide the correct values for your storage integration instead of null/false

Alibaba Cloud storage units:
Credentials: "{"Endpoint":null,"AccessKeyId":null,"AccessKeySecret":null,"UseRamRole":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

Amazon S3 / S3 Compatible storage units:
Credentials: "{"ServiceUrl":null,"AccessKeyId":null,"SecretAccessKey":null,"RegionEndpoint":null,"AssumeRoleArn":null,"UseIamRole":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

Azure Blob storage units:
Credentials: "{"TenantId":null,"ClientId":null,"ClientSecret":null,"StorageAccount":null}"
Source: "{"Container":null}"

Azure Files storage units:
Credentials: "{"AccountName":null,"AccountKey":null,"ShareName":null}"
Source: "{"FolderLocation":null}"

Box storage units:
CredentialsFile: upload the credentials file
Source: "{"FolderLocation":null}"

Dell Isilon / SMB Compatible storage units:
Credentials: "{"User":null,"Password":null,"Server":null}"
Source: "{"SharePath":null}"

Google Cloud storage units:
CredentialsFile: upload the credentials file
Credentials: "{"UseAdc":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

OneDrive storage units:
Credentials: "{"TenantId":null,"ClientId":null,"ClientSecret":null}"
Source: "{"Group":null}"

Auth
Path Params
storageIdstring
Request Body
objectobject
Namestring
StorageVendorTypestring
StorageProtocolTypestring
CredentialsFilefile
Credentialsstring
Sourcestring
GroupIdstring
AccountIdstring
PATCH /api/storage/{storageId}
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/{storageId}' \
--form 'file=@{file}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedStorage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedStorage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Fetch storage users

Auth
Path Params
storageIdstring
Query String
filterstring
GET /api/storage/{storageId}/users
curl --get \
--url 'http://<MDSS_HOST>/api/storage/{storageId}/users' \
--data filter={filter}
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entriesarray[object]
idstring
fullNamestring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"id": "{string}",
"fullName": "{string}"
}
]
}
Copy

Add a storage

Note! The following are templates for what is expected in the Credentials, CredentialsFile and Source fields. Please provide the correct values for your storage integration instead of null/false

Alibaba Cloud storage units:
Credentials: "{"Endpoint":null,"AccessKeyId":null,"AccessKeySecret":null,"UseRamRole":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

Amazon S3 / S3 Compatible storage units:
Credentials: "{"ServiceUrl":null,"AccessKeyId":null,"SecretAccessKey":null,"RegionEndpoint":null,"AssumeRoleArn":null,"UseIamRole":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

Azure Blob storage units:
Credentials: "{"TenantId":null,"ClientId":null,"ClientSecret":null,"StorageAccount":null}"
Source: "{"Container":null}"

Azure Files storage units:
Credentials: "{"AccountName":null,"AccountKey":null,"ShareName":null}"
Source: "{"FolderLocation":null}"

Box storage units:
CredentialsFile: upload the credentials file
Source: "{"FolderLocation":null}"

Dell Isilon / SMB Compatible storage units:
Credentials: "{"User":null,"Password":null,"Server":null}"
Source: "{"SharePath":null}"

Google Cloud storage units:
CredentialsFile: upload the credentials file
Credentials: "{"UseAdc":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

OneDrive storage units:
Credentials: "{"TenantId":null,"ClientId":null,"ClientSecret":null}"
Source: "{"Group":null}"

Auth
Request Body
objectobject
Namestring
StorageVendorTypestring
StorageProtocolTypestring
CredentialsFilefile
Credentialsstring
Sourcestring
GroupIdstring
AccountIdstring
POST /api/storage
curl --request POST \
--url 'http://<MDSS_HOST>/api/storage' \
--form 'file=@{file}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storageIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storageId": "{string}"
}
Copy

Update scan configuration

Auth
Path Params
storageIdstring
Request Body
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
handlingType
integerinteger

Enum: 0,1

scanConfigurationIdstring
postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingType
integerinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfigurationStatusinteger

Enum: 0,1,2

sanitizedFileRemediationConfigurationStatusinteger

Enum: 0,1,2

allowedFileRemediationConfigurationStatusinteger

Enum: 0,1,2

shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockedFileHandlingType
integerinteger

Enum: 0,1,2

allowedFileHandlingType
integerinteger

Enum: 0,1,2

sanitizedFileHandlingType
integerinteger

Enum: 0,1,2

blockedFileStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockingStrategy
integerinteger

Enum: 0,1

PATCH /api/storage/{storageId}/scan_config
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/{storageId}/scan_config' \
--data '{
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"handlingType": "{integer}",
"scanConfigurationId": "{string}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfigurationStatus": "{integer}",
"sanitizedFileRemediationConfigurationStatus": "{integer}",
"allowedFileRemediationConfigurationStatus": "{integer}",
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}",
"blockedFileHandlingType": "{integer}",
"allowedFileHandlingType": "{integer}",
"sanitizedFileHandlingType": "{integer}",
"blockedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Add a scan schedule

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring
scanConfigurationIdstring
recurrencePattern
objectobject
typestring
hourlyRecurrence
objectobject
everyNumberOfHoursint32

maximum: 24

minimum: 1

dailyRecurrence
objectobject
everyNumberOfDaysint32

maximum: 365

minimum: 1

weeklyRecurrence
objectobject
dayOfWeekinteger

Enum: 0,1,2,3,4,5,6

monthlyRecurrence
objectobject
everyNumberOfMonthsint32

maximum: 12

minimum: 1

dayOfMonthint32
$typestring
PUT /api/storage/{storageId}/scan_schedule
curl --request PUT \
--url 'http://<MDSS_HOST>/api/storage/{storageId}/scan_schedule' \
--data '{
"name": "{string}",
"scanConfigurationId": "{string}",
"recurrencePattern": {
"type": "{string}",
"hourlyRecurrence": {
"everyNumberOfHours": "{int32}"
},
"dailyRecurrence": {
"everyNumberOfDays": "{int32}"
},
"weeklyRecurrence": {
"dayOfWeek": "{integer}"
},
"monthlyRecurrence": {
"everyNumberOfMonths": "{int32}",
"dayOfMonth": "{int32}"
}
},
"$type": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Update a scan schedule

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring
scanConfigurationIdstring
recurrencePattern
objectobject
typestring
hourlyRecurrence
objectobject
everyNumberOfHoursint32

maximum: 24

minimum: 1

dailyRecurrence
objectobject
everyNumberOfDaysint32

maximum: 365

minimum: 1

weeklyRecurrence
objectobject
dayOfWeekinteger

Enum: 0,1,2,3,4,5,6

monthlyRecurrence
objectobject
everyNumberOfMonthsint32

maximum: 12

minimum: 1

dayOfMonthint32
$typestring
idstring
PUT /api/storage/scan_schedule/update/{storageId}
curl --request PUT \
--url 'http://<MDSS_HOST>/api/storage/scan_schedule/update/{storageId}' \
--data '{
"name": "{string}",
"scanConfigurationId": "{string}",
"recurrencePattern": {
"type": "{string}",
"hourlyRecurrence": {
"everyNumberOfHours": "{int32}"
},
"dailyRecurrence": {
"everyNumberOfDays": "{int32}"
},
"weeklyRecurrence": {
"dayOfWeek": "{integer}"
},
"monthlyRecurrence": {
"everyNumberOfMonths": "{int32}",
"dayOfMonth": "{int32}"
}
},
"$type": "{string}",
"id": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Fetch scan schedules

Auth
Path Params
storageIdstring
sortDirectioninteger

Enum: 0,1

startIndexinteger
countinteger
Query String
namestring
userstring
typestring
GET /api/storage/scan_schedules/{storageId}/{sortDirection}/{startIndex}/{count}
curl --get \
--url 'http://<MDSS_HOST>/api/storage/scan_schedules/{storageId}/{sortDirection}/{startIndex}/{count}' \
--data name={name} \
--data user={user} \
--data type={type}
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
entries9 fieldsarray[object]
totalCountint64
createdByUsersarray[string]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"entries": [
{
"id": "{string}",
"name": "{string}",
"scanConfigurationId": "{string}",
"type": "{string}",
"createdAt": "{date-time}",
"lastScanTime": "{date-time}",
"nextScanTime": "{date-time}",
"recurrencePatternDto": {
"hourlyRecurrenceDto": {
"everyNumberOfHours": "{int32}"
},
"dailyRecurrenceDto": {
"everyNumberOfDays": "{int32}"
},
"weeklyRecurrenceDto": {
"dayOfWeek": "{integer}"
},
"monthlyRecurrenceDto": {
"everyNumberOfMonths": "{int32}",
"dayOfMonth": "{int32}"
}
},
"createdBy": "{string}"
}
],
"totalCount": "{int64}",
"createdByUsers": [
"{array[string]...}"
]
}
Copy

Delete scan schedules

Auth
Request Body
arrayarray[string]
DELETE /api/storage/scan_schedule
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/storage/scan_schedule' \
--data '[
"{array[string]...}"
]'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
areAllDeletedboolean
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"areAllDeleted": "{boolean}"
}
Copy

Retrieve storage user name

Auth
Path Params
storageIdstring
userIdstring
GET /api/storage/{storageId}/{userId}
curl --get \
--url 'http://<MDSS_HOST>/api/storage/{storageId}/{userId}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
userNamestring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"userName": "{string}"
}
Copy

Fetch active users

Auth
Headers
searchTermstring
Path Params
startIndexstring
countstring
GET /api/user/active/{startIndex}/{count}
curl --get \
--url 'http://<MDSS_HOST>/api/user/active/{startIndex}/{count}' \
--header 'searchTerm: {searchTerm}'
Copy
Responses
200
objectobject
entries5 fieldsarray[object]
totalCountint64
Response
{
"entries": [
{
"id": "{string}",
"userName": "{string}",
"fullName": "{string}",
"email": "{string}",
"role": "{integer}"
}
],
"totalCount": "{int64}"
}
Copy

Register a user

Auth
Request Body
objectobject
fullNamestring
userNamestring
passwordstring
emailstring
POST /api/user/register
curl --request POST \
--url 'http://<MDSS_HOST>/api/user/register' \
--data '{
"fullName": "{string}",
"userName": "{string}",
"password": "{string}",
"email": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Create a user

Auth
Request Body
objectobject
fullNamestring
userNamestring
passwordstring
emailstring
roleinteger

Enum: 0,1,2,4,5

POST /api/user/create
curl --request POST \
--url 'http://<MDSS_HOST>/api/user/create' \
--data '{
"fullName": "{string}",
"userName": "{string}",
"password": "{string}",
"email": "{string}",
"role": "{integer}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Authenticate with a username and password

Authenticate with a username and password to obtain a JWT token,Most of the APIs require authentication in the form of providing a JWT token. Call this API in order to receive a token but please note that it's only valid for an hour so it should be periodically refreshed.

Auth
Request Body
objectobject
userNamestring

minLength: 1

passwordstring

minLength: 1

POST /api/user/authenticate
curl --request POST \
--url 'http://<MDSS_HOST>/api/user/authenticate' \
--data '{
"userName": "{string}",
"password": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2,3,4

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
accessTokenstring
accessTokenExpiryTimedate-time
refreshTokenstring
refreshTokenExpiryTimedate-time
fullNamestring
emailstring
userNamestring
roleinteger

Enum: 0,1,2,4,5

user
objectobject
idstring
fullNamestring
userNamestring
passwordHashstring
passwordSaltstring
emailstring
roleinteger

Enum: 0,1,2,4,5

accountSecurity
objectobject
incrementalDelaystring
failedLoginDatedate-time
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"accessToken": "{string}",
"accessTokenExpiryTime": "{date-time}",
"refreshToken": "{string}",
"refreshTokenExpiryTime": "{date-time}",
"fullName": "{string}",
"email": "{string}",
"userName": "{string}",
"role": "{integer}",
"user": {
"id": "{string}",
"fullName": "{string}",
"userName": "{string}",
"passwordHash": "{string}",
"passwordSalt": "{string}",
"email": "{string}",
"role": "{integer}",
"accountSecurity": {
"incrementalDelay": "{string}",
"failedLoginDate": "{date-time}"
}
}
}
Copy

Refresh user token

Auth
Request Body
objectobject
accessTokenstring
refreshTokenstring
POST /api/user/refreshToken
curl --request POST \
--url 'http://<MDSS_HOST>/api/user/refreshToken' \
--data '{
"accessToken": "{string}",
"refreshToken": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Logout

Auth
POST /api/user/logout
curl --request POST \
--url 'http://<MDSS_HOST>/api/user/logout'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Update user role

Auth
Request Body
objectobject
userIdstring
roleinteger

Enum: 0,1,2,4,5

PUT /api/user/role
curl --request PUT \
--url 'http://<MDSS_HOST>/api/user/role' \
--data '{
"userId": "{string}",
"role": "{integer}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
accessTokenstring
accessTokenExpiryTimedate-time
refreshTokenstring
refreshTokenExpiryTimedate-time
user
objectobject
idstring
fullNamestring
userNamestring
passwordHashstring
passwordSaltstring
emailstring
roleinteger

Enum: 0,1,2,4,5

accountSecurity
objectobject
incrementalDelaystring
failedLoginDatedate-time
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"accessToken": "{string}",
"accessTokenExpiryTime": "{date-time}",
"refreshToken": "{string}",
"refreshTokenExpiryTime": "{date-time}",
"user": {
"id": "{string}",
"fullName": "{string}",
"userName": "{string}",
"passwordHash": "{string}",
"passwordSalt": "{string}",
"email": "{string}",
"role": "{integer}",
"accountSecurity": {
"incrementalDelay": "{string}",
"failedLoginDate": "{date-time}"
}
}
}
Copy

Fetch users

Auth
GET /api/user/requests
curl --get \
--url 'http://<MDSS_HOST>/api/user/requests'
Copy
Responses
200
objectobject
entries5 fieldsarray[object]
totalCountint64
Response
{
"entries": [
{
"id": "{string}",
"userName": "{string}",
"fullName": "{string}",
"email": "{string}",
"role": "{integer}"
}
],
"totalCount": "{int64}"
}
Copy

Delete a user

Auth
Path Params
userIdstring
DELETE /api/user/{userId}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/user/{userId}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
user
objectobject
idstring
fullNamestring
userNamestring
passwordHashstring
passwordSaltstring
emailstring
roleinteger

Enum: 0,1,2,4,5

accountSecurity
objectobject
incrementalDelaystring
failedLoginDatedate-time
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"user": {
"id": "{string}",
"fullName": "{string}",
"userName": "{string}",
"passwordHash": "{string}",
"passwordSalt": "{string}",
"email": "{string}",
"role": "{integer}",
"accountSecurity": {
"incrementalDelay": "{string}",
"failedLoginDate": "{date-time}"
}
}
}
Copy

Update a user

Auth
Request Body
objectobject
userIdstring
roleinteger

Enum: 0,1,2,4,5

userNamestring
fullNamestring
currentPasswordstring
newPasswordstring
emailstring
PUT /api/user
curl --request PUT \
--url 'http://<MDSS_HOST>/api/user' \
--data '{
"userId": "{string}",
"role": "{integer}",
"userName": "{string}",
"fullName": "{string}",
"currentPassword": "{string}",
"newPassword": "{string}",
"email": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
accessTokenstring
accessTokenExpiryTimedate-time
refreshTokenstring
refreshTokenExpiryTimedate-time
user
objectobject
idstring
fullNamestring
userNamestring
passwordHashstring
passwordSaltstring
emailstring
roleinteger

Enum: 0,1,2,4,5

accountSecurity
objectobject
incrementalDelaystring
failedLoginDatedate-time
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"accessToken": "{string}",
"accessTokenExpiryTime": "{date-time}",
"refreshToken": "{string}",
"refreshTokenExpiryTime": "{date-time}",
"user": {
"id": "{string}",
"fullName": "{string}",
"userName": "{string}",
"passwordHash": "{string}",
"passwordSalt": "{string}",
"email": "{string}",
"role": "{integer}",
"accountSecurity": {
"incrementalDelay": "{string}",
"failedLoginDate": "{date-time}"
}
}
}
Copy

Request password reset

Auth
Request Body
objectobject
userInputstring

minLength: 1

POST /api/user/password/reset
curl --request POST \
--url 'http://<MDSS_HOST>/api/user/password/reset' \
--data '{
"userInput": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}"
}
Copy

Reset user password

Auth
Request Body
objectobject
newPasswordstring

minLength: 12

newPasswordConfirmationstring

minLength: 12

secureTokenstring
POST /api/user/password
curl --request POST \
--url 'http://<MDSS_HOST>/api/user/password' \
--data '{
"newPassword": "{string}",
"newPasswordConfirmation": "{string}",
"secureToken": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
user8 fieldsobject
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"user": {
"id": "{string}",
"fullName": "{string}",
"userName": "{string}",
"passwordHash": "{string}",
"passwordSalt": "{string}",
"email": "{string}",
"role": "{integer}",
"accountSecurity": {
"incrementalDelay": "{string}",
"failedLoginDate": "{date-time}"
}
}
}
Copy

Object event trigger of real time processing

This endpoint takes the parameters and tries to find the file in the specified storage and applies the scan configuration for the specified file

Auth
Request Body
objectobject
metadatastring

minLength: 1

storageClientIdstring

minLength: 1

POST /api/webhook/realtime
curl --request POST \
--url 'http://<MDSS_HOST>/api/webhook/realtime' \
--data '{
"metadata": "{string}",
"storageClientId": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
correlationIdstring
400
404
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"correlationId": "{string}"
}
Copy

Object event trigger of real time processing by storage client ID

This endpoint takes the parameter and tries to find the file in the specified storage and applies the scan configuration for the specified file

Auth
Path Params
storageClientIdstring
Request Body
No request body
POST /api/webhook/realtime/{storageClientId}
curl --request POST \
--url 'http://<MDSS_HOST>/api/webhook/realtime/{storageClientId}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
correlationIdstring
400
404
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"correlationId": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

Fetch MetaDefender Core Pools

Auth
GET /api/corepool
curl --get \
--url 'http://<MDSS_HOST>/api/corepool'
Copy
Responses
200
objectobject

Deprecated

entries4 fieldsarray[object]
Response
{
"entries": [
{
"id": "{string}",
"name": "{string}",
"mdCores": [
{
"id": "{string}",
"url": "{string}",
"ip": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"userAgent": "{string}",
"workflowRule": "{string}",
"displayName": "{string}"
}
],
"usedBy": [
{
"name": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
}
}
]
}
]
}
Copy

Deprecated, soon to be removedDeprecated

Update an existing MetaDefender Core Pool

Auth
Request Body
objectobject

Deprecated

idstring

minLength: 1

namestring

maxLength: 30

minLength: 3

PUT /api/corepool
curl --request PUT \
--url 'http://<MDSS_HOST>/api/corepool' \
--data '{
"id": "{string}",
"name": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Deprecated, soon to be removedDeprecated

Add a new MetaDefender Core Pool

Auth
Request Body
objectobject

Deprecated

namestring

maxLength: 30

minLength: 3

POST /api/corepool
curl --request POST \
--url 'http://<MDSS_HOST>/api/corepool' \
--data '{
"name": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Deprecated, soon to be removedDeprecated

Get MetaDefender Core Pool by ID

Auth
Path Params
corePoolIdstring
GET /api/corepool/{corePoolId}
curl --get \
--url 'http://<MDSS_HOST>/api/corepool/{corePoolId}'
Copy
Responses
200
objectobject

Deprecated

resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
corePool
objectobject

Deprecated

idstring
namestring
mdCores8 fieldsarray[object]
usedByarray[object]
namestring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"corePool": {
"id": "{string}",
"name": "{string}",
"mdCores": [
{
"id": "{string}",
"url": "{string}",
"ip": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"userAgent": "{string}",
"workflowRule": "{string}",
"displayName": "{string}"
}
],
"usedBy": [
{
"name": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
}
}
]
}
}
Copy

Deprecated, soon to be removedDeprecated

Delete MetaDefender Core Pool

Auth
Path Params
idstring
DELETE /api/corepool/{id}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/corepool/{id}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Deprecated, soon to be removedDeprecated

Fetch MetaDefender Core servers

Auth
Query String
corePoolIdstring
GET /api/metadefendercore
curl --get \
--url 'http://<MDSS_HOST>/api/metadefendercore' \
--data corePoolId={corePoolId}
Copy
Responses
200
objectobject

Deprecated

entries8 fieldsarray[object]
Response
{
"entries": [
{
"id": "{string}",
"url": "{string}",
"ip": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"userAgent": "{string}",
"workflowRule": "{string}",
"displayName": "{string}"
}
]
}
Copy

Deprecated, soon to be removedDeprecated

Update MetaDefender Core server

Auth
Request Body
objectobject

Deprecated

idstring
urlstring

minLength: 1

pattern: ^((?!(^((https?):\/\/)?127(?:\.[0-9]+){0,2}\.[0-9]+(:(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})?)?$)|(^((https?):\/\/)?\[(?:0*\:)*?:?0*1\](:(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})?)?$)).)*$

apiKeystring
timeoutstring
userAgentstring
workflowRulestring
corePoolIdstring
PUT /api/metadefendercore
curl --request PUT \
--url 'http://<MDSS_HOST>/api/metadefendercore' \
--data '{
"id": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"userAgent": "{string}",
"workflowRule": "{string}",
"corePoolId": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Deprecated, soon to be removedDeprecated

Add a new MetaDefender Core Server

Auth
Request Body
objectobject

Deprecated

idstring
urlstring

minLength: 1

pattern: ^((?!(^((https?):\/\/)?127(?:\.[0-9]+){0,2}\.[0-9]+(:(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})?)?$)|(^((https?):\/\/)?\[(?:0*\:)*?:?0*1\](:(6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]|[1-5][0-9]{4}|[1-9][0-9]{0,3})?)?$)).)*$

apiKeystring
timeoutstring
userAgentstring
workflowRulestring
corePoolIdstring
POST /api/metadefendercore
curl --request POST \
--url 'http://<MDSS_HOST>/api/metadefendercore' \
--data '{
"id": "{string}",
"url": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"userAgent": "{string}",
"workflowRule": "{string}",
"corePoolId": "{string}"
}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Deprecated, soon to be removedDeprecated

Get MetaDefender Core server by ID

Auth
Path Params
metaDefenderIdstring
GET /api/metadefendercore/{metaDefenderId}
curl --get \
--url 'http://<MDSS_HOST>/api/metadefendercore/{metaDefenderId}'
Copy
Responses
200
objectobject

Deprecated

idstring
urlstring
ipstring
apiKeystring
timeoutstring
userAgentstring
workflowRulestring
displayNamestring
Response
{
"id": "{string}",
"url": "{string}",
"ip": "{string}",
"apiKey": "{string}",
"timeout": "{string}",
"userAgent": "{string}",
"workflowRule": "{string}",
"displayName": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

Delete MetaDefender Core server

Auth
Path Params
metaDefenderIdstring
DELETE /api/metadefendercore/{metaDefenderId}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/metadefendercore/{metaDefenderId}'
Copy
Responses
200
filefile
Response
{
"schema": "{file}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated) Get an active scan by scan ID and file ID

Auth
Path Params
scanIdstring
activeFileIdstring
GET /api/scan/active/{scanId}/{activeFileId}
curl --get \
--url 'http://<MDSS_HOST>/api/scan/active/{scanId}/{activeFileId}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateinteger

Enum: 0,1,2,3,4

scanStatusDto
objectobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDto
objectobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccounts3 fieldsarray[object]
scanSequenceDto
objectobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
errorsarray[string]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"id": "{string}",
"name": "{string}",
"startTime": "{date-time}",
"stopTime": "{date-time}",
"scanType": "{string}",
"scanningState": "{integer}",
"scanStatusDto": {
"pendingFilesCount": "{int64}",
"allowedFilesCount": "{int64}",
"blockedFilesCount": "{int64}",
"totalFilesCount": "{int64}",
"processingFailedCount": "{int64}",
"processedFilesCount": "{int64}"
},
"scanStatsDto": {
"pciDssComplianceViolationsCount": "{int64}",
"hipaaComplianceViolationsCount": "{int64}",
"gdprComplianceViolationsCount": "{int64}",
"malwareSecurityAlertsCount": "{int64}",
"vulnerabilitiesSecurityAlertsCount": "{int64}",
"piiSecurityAlertsCount": "{int64}",
"pciDssComplianceViolationsPercentageIncrease": "{int64}",
"hipaaComplianceViolationsPercentageIncrease": "{int64}",
"gdprComplianceViolationsPercentageIncrease": "{int64}",
"malwareSecurityAlertsPercentageIncrease": "{int64}",
"vulnerabilitiesSecurityAlertsPercentageIncrease": "{int64}",
"piiSecurityAlertsPercentageIncrease": "{int64}",
"highRiskAccounts": [
{
"id": "{string}",
"displayName": "{string}",
"blockedFilesCount": "{int64}"
}
]
},
"scanSequenceDto": {
"previousScanId": "{string}",
"nextScanId": "{string}"
},
"scanConfigurationId": "{string}",
"errors": [
"{array[string]...}"
]
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated) Get Real-Time scan

Auth
Path Params
storageIdstring
GET /api/scan/realtime/{storageId}
curl --get \
--url 'http://<MDSS_HOST>/api/scan/realtime/{storageId}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1,2

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateinteger

Enum: 0,1,2,3,4

scanStatusDto
objectobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDto
objectobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccounts3 fieldsarray[object]
scanSequenceDto
objectobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
errorsarray[string]
isRealTimeEnabledboolean
handlingTypeinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"id": "{string}",
"name": "{string}",
"startTime": "{date-time}",
"stopTime": "{date-time}",
"scanType": "{string}",
"scanningState": "{integer}",
"scanStatusDto": {
"pendingFilesCount": "{int64}",
"allowedFilesCount": "{int64}",
"blockedFilesCount": "{int64}",
"totalFilesCount": "{int64}",
"processingFailedCount": "{int64}",
"processedFilesCount": "{int64}"
},
"scanStatsDto": {
"pciDssComplianceViolationsCount": "{int64}",
"hipaaComplianceViolationsCount": "{int64}",
"gdprComplianceViolationsCount": "{int64}",
"malwareSecurityAlertsCount": "{int64}",
"vulnerabilitiesSecurityAlertsCount": "{int64}",
"piiSecurityAlertsCount": "{int64}",
"pciDssComplianceViolationsPercentageIncrease": "{int64}",
"hipaaComplianceViolationsPercentageIncrease": "{int64}",
"gdprComplianceViolationsPercentageIncrease": "{int64}",
"malwareSecurityAlertsPercentageIncrease": "{int64}",
"vulnerabilitiesSecurityAlertsPercentageIncrease": "{int64}",
"piiSecurityAlertsPercentageIncrease": "{int64}",
"highRiskAccounts": [
{
"id": "{string}",
"displayName": "{string}",
"blockedFilesCount": "{int64}"
}
]
},
"scanSequenceDto": {
"previousScanId": "{string}",
"nextScanId": "{string}"
},
"scanConfigurationId": "{string}",
"errors": [
"{array[string]...}"
],
"isRealTimeEnabled": "{boolean}",
"handlingType": "{integer}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated) Fetch last completed scan

Auth
Path Params
storageIdstring
GET /api/scan/last_completed/{storageId}
curl --get \
--url 'http://<MDSS_HOST>/api/scan/last_completed/{storageId}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateinteger

Enum: 0,1,2,3,4

scanStatusDto
objectobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDto
objectobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccounts3 fieldsarray[object]
scanSequenceDto
objectobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
errorsarray[string]
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"id": "{string}",
"name": "{string}",
"startTime": "{date-time}",
"stopTime": "{date-time}",
"scanType": "{string}",
"scanningState": "{integer}",
"scanStatusDto": {
"pendingFilesCount": "{int64}",
"allowedFilesCount": "{int64}",
"blockedFilesCount": "{int64}",
"totalFilesCount": "{int64}",
"processingFailedCount": "{int64}",
"processedFilesCount": "{int64}"
},
"scanStatsDto": {
"pciDssComplianceViolationsCount": "{int64}",
"hipaaComplianceViolationsCount": "{int64}",
"gdprComplianceViolationsCount": "{int64}",
"malwareSecurityAlertsCount": "{int64}",
"vulnerabilitiesSecurityAlertsCount": "{int64}",
"piiSecurityAlertsCount": "{int64}",
"pciDssComplianceViolationsPercentageIncrease": "{int64}",
"hipaaComplianceViolationsPercentageIncrease": "{int64}",
"gdprComplianceViolationsPercentageIncrease": "{int64}",
"malwareSecurityAlertsPercentageIncrease": "{int64}",
"vulnerabilitiesSecurityAlertsPercentageIncrease": "{int64}",
"piiSecurityAlertsPercentageIncrease": "{int64}",
"highRiskAccounts": [
{
"id": "{string}",
"displayName": "{string}",
"blockedFilesCount": "{int64}"
}
]
},
"scanSequenceDto": {
"previousScanId": "{string}",
"nextScanId": "{string}"
},
"scanConfigurationId": "{string}",
"errors": [
"{array[string]...}"
]
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage) Add an Amazon S3 storage

Auth
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
serviceUrlstring
accessKeyIdstring
secretAccessKeystring
regionEndpointstring
bucketNamestring

minLength: 1

folderLocationstring
useIamRoleboolean
assumeRoleArnstring

pattern: ^arn:aws(-cn|-us-gov)?:iam::\d+:role/[a-zA-Z0-9_+=,.@-]+$

useClientSideEncryptionboolean
secretNamestring
storageVendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

usePathStyleAddressingboolean
POST /api/storage/amazons3
curl --request POST \
--url 'http://<MDSS_HOST>/api/storage/amazons3' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"serviceUrl": "{string}",
"accessKeyId": "{string}",
"secretAccessKey": "{string}",
"regionEndpoint": "{string}",
"bucketName": "{string}",
"folderLocation": "{string}",
"useIamRole": "{boolean}",
"assumeRoleArn": "{string}",
"useClientSideEncryption": "{boolean}",
"secretName": "{string}",
"storageVendorType": "{integer}",
"usePathStyleAddressing": "{boolean}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storageIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storageId": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage/{storageId}) Update an Amazon S3 storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
serviceUrlstring
accessKeyIdstring
secretAccessKeystring
regionEndpointstring
bucketNamestring

minLength: 1

folderLocationstring
useIamRoleboolean
assumeRoleArnstring

pattern: ^arn:aws(-cn|-us-gov)?:iam::\d+:role/[a-zA-Z0-9_+=,.@-]+$

useClientSideEncryptionboolean
secretNamestring
storageVendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

usePathStyleAddressingboolean
PATCH /api/storage/amazons3/{storageId}
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/amazons3/{storageId}' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"serviceUrl": "{string}",
"accessKeyId": "{string}",
"secretAccessKey": "{string}",
"regionEndpoint": "{string}",
"bucketName": "{string}",
"folderLocation": "{string}",
"useIamRole": "{boolean}",
"assumeRoleArn": "{string}",
"useClientSideEncryption": "{boolean}",
"secretName": "{string}",
"storageVendorType": "{integer}",
"usePathStyleAddressing": "{boolean}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedStorage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedStorage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage) Add an One Drive storage

Auth
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
tenantIdstring

maxLength: 36

minLength: 36

clientIdstring

maxLength: 36

minLength: 36

clientSecretstring

maxLength: 50

minLength: 1

groupstring
POST /api/storage/onedrive
curl --request POST \
--url 'http://<MDSS_HOST>/api/storage/onedrive' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"tenantId": "{string}",
"clientId": "{string}",
"clientSecret": "{string}",
"group": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storageIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storageId": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage/{storageId}) Update an One Drive storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
tenantIdstring

maxLength: 36

minLength: 36

clientIdstring

maxLength: 36

minLength: 36

clientSecretstring

maxLength: 50

minLength: 1

groupstring
PATCH /api/storage/onedrive/{storageId}
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/onedrive/{storageId}' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"tenantId": "{string}",
"clientId": "{string}",
"clientSecret": "{string}",
"group": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedStorage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedStorage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage) Add a Box storage

Auth
Request Body
objectobject
Credentialsfile
UserNamestring
FolderPathstring
GroupNamestring
Namestring
GroupIdstring
AccountIdstring
POST /api/storage/box
curl --request POST \
--url 'http://<MDSS_HOST>/api/storage/box' \
--form 'file=@{file}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storageIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storageId": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage/{storageId}) Update a Box storage

Auth
Path Params
storageIdstring
Request Body
objectobject
Credentialsfile
UserNamestring
FolderPathstring
GroupNamestring
Namestring
GroupIdstring
AccountIdstring
PATCH /api/storage/box/{storageId}
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/box/{storageId}' \
--form 'file=@{file}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedStorage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedStorage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage) Add Dell Isilon/SMB Compatibile

Auth
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
storageVendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

userstring

minLength: 1

passwordstring

minLength: 1

sharePathstring

minLength: 1

POST /api/storage/smb
curl --request POST \
--url 'http://<MDSS_HOST>/api/storage/smb' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"storageVendorType": "{integer}",
"user": "{string}",
"password": "{string}",
"sharePath": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storageIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storageId": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage/{storageId}) Update a Dell Isilon/SMB Compatibile

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
storageVendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

userstring

minLength: 1

passwordstring

minLength: 1

sharePathstring

minLength: 1

PATCH /api/storage/smb/{storageId}
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/smb/{storageId}' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"storageVendorType": "{integer}",
"user": "{string}",
"password": "{string}",
"sharePath": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedStorage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedStorage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage) Add an Azure Blob storage

Auth
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
tenantIdstring

maxLength: 36

minLength: 36

storageAccountstring

maxLength: 24

minLength: 3

clientIdstring

maxLength: 36

minLength: 36

clientSecretstring

maxLength: 50

minLength: 1

containerstring

maxLength: 63

minLength: 0

cloudTypestring

maxLength: 63

minLength: 0

POST /api/storage/azureblob
curl --request POST \
--url 'http://<MDSS_HOST>/api/storage/azureblob' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"tenantId": "{string}",
"storageAccount": "{string}",
"clientId": "{string}",
"clientSecret": "{string}",
"container": "{string}",
"cloudType": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storageIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storageId": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage/{storageId}) Update an Azure Blob storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
tenantIdstring

maxLength: 36

minLength: 36

storageAccountstring

maxLength: 24

minLength: 3

clientIdstring

maxLength: 36

minLength: 36

clientSecretstring

maxLength: 50

minLength: 1

containerstring

maxLength: 63

minLength: 0

cloudTypestring

maxLength: 63

minLength: 0

PATCH /api/storage/azureblob/{storageId}
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/azureblob/{storageId}' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"tenantId": "{string}",
"storageAccount": "{string}",
"clientId": "{string}",
"clientSecret": "{string}",
"container": "{string}",
"cloudType": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedStorage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedStorage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage) Add an Alibaba Cloud storage

Auth
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
endpointstring

minLength: 1

accessKeyIdstring
accessKeySecretstring
bucketNamestring

minLength: 1

folderLocationstring
useRamRoleboolean
POST /api/storage/alibabacloud
curl --request POST \
--url 'http://<MDSS_HOST>/api/storage/alibabacloud' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"endpoint": "{string}",
"accessKeyId": "{string}",
"accessKeySecret": "{string}",
"bucketName": "{string}",
"folderLocation": "{string}",
"useRamRole": "{boolean}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storageIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storageId": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage/{storageId}) Update an Alibaba Cloud storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
endpointstring

minLength: 1

accessKeyIdstring
accessKeySecretstring
bucketNamestring

minLength: 1

folderLocationstring
useRamRoleboolean
PATCH /api/storage/alibabacloud/{storageId}
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/alibabacloud/{storageId}' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"endpoint": "{string}",
"accessKeyId": "{string}",
"accessKeySecret": "{string}",
"bucketName": "{string}",
"folderLocation": "{string}",
"useRamRole": "{boolean}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedStorage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedStorage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage) Add a Google Cloud storage

Auth
Request Body
objectobject
Credentialsfile
BucketNamestring
FolderLocationstring
UseAdcboolean
Namestring
GroupIdstring
AccountIdstring
POST /api/storage/googlecloud
curl --request POST \
--url 'http://<MDSS_HOST>/api/storage/googlecloud' \
--form 'file=@{file}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storageIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storageId": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage/{storageId}) Update a Google Cloud storage

Auth
Path Params
storageIdstring
Request Body
objectobject
Credentialsfile
BucketNamestring
FolderLocationstring
UseAdcboolean
Namestring
GroupIdstring
AccountIdstring
PATCH /api/storage/googlecloud/{storageId}
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/googlecloud/{storageId}' \
--form 'file=@{file}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedStorage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedStorage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage) Add an Azure Files storage

Auth
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
accountNamestring

minLength: 1

accountKeystring

minLength: 1

shareNamestring

minLength: 1

folderLocationstring
POST /api/storage/azurefiles
curl --request POST \
--url 'http://<MDSS_HOST>/api/storage/azurefiles' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"accountName": "{string}",
"accountKey": "{string}",
"shareName": "{string}",
"folderLocation": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
storageIdstring
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"storageId": "{string}"
}
Copy

Deprecated, soon to be removedDeprecated

(Deprecated - use /storage/{storageId}) Update an Azure Files storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 60

minLength: 1

groupIdstring
accountIdstring
accountNamestring

minLength: 1

accountKeystring

minLength: 1

shareNamestring

minLength: 1

folderLocationstring
PATCH /api/storage/azurefiles/{storageId}
curl --request PATCH \
--url 'http://<MDSS_HOST>/api/storage/azurefiles/{storageId}' \
--data '{
"name": "{string}",
"groupId": "{string}",
"accountId": "{string}",
"accountName": "{string}",
"accountKey": "{string}",
"shareName": "{string}",
"folderLocation": "{string}"
}'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
updatedStorage
objectobject
idstring
namestring
groupIdstring
clientIdstring
accountIdstring
storageCredentialsstring
sourcestring
storageFunctionalitystring
storageType
objectobject
namestring
categoryTypeinteger

Enum: 0,1,2

protocolTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,100,101,102,103,104,105,106,107

vendorTypeinteger

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101,102,103,104,105,106,107

scanConfig
objectobject
realTimeScanConfig
objectobject
isEnabledboolean
startDatedate-time
handlingTypeinteger

Enum: 0,1

postActionsScanConfig
objectobject
fileTaggingConfig
objectobject
isTaggingPostActionEnabledboolean
fileTags4 fieldsarray[object]
deepCdrConfig
objectobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeinteger

Enum: 0,1,2

moveDeleteRemediationConfig
objectobject
blockedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockedFileHandlingTypeinteger

Enum: 0,1,2

sanitizedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileHandlingTypeinteger

Enum: 0,1,2

allowedFileRemediationConfig
objectobject
isEnabledboolean
moveRemediationStorageConfig
objectobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileHandlingTypeinteger

Enum: 0,1,2

configurableBlockingStrategy
objectobject
shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockingStrategyinteger

Enum: 0,1

Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"updatedStorage": {
"id": "{string}",
"name": "{string}",
"groupId": "{string}",
"clientId": "{string}",
"accountId": "{string}",
"storageCredentials": "{string}",
"source": "{string}",
"storageFunctionality": "{string}",
"storageType": {
"name": "{string}",
"categoryType": "{integer}",
"protocolType": "{integer}",
"vendorType": "{integer}"
},
"scanConfig": {
"realTimeScanConfig": {
"isEnabled": "{boolean}",
"startDate": "{date-time}",
"handlingType": "{integer}"
},
"postActionsScanConfig": {
"fileTaggingConfig": {
"isTaggingPostActionEnabled": "{boolean}",
"fileTags": [
{
"fileTagKey": {
"defaultName": "{string}",
"customName": "{string}"
},
"customValues": [
{
"defaultName": "{string}",
"customName": "{string}"
}
],
"isEnabled": "{boolean}",
"fileTagType": "{integer}"
}
]
},
"deepCdrConfig": {
"isDeepCdrPostActionEnabled": "{boolean}",
"deepCdrOriginalFileHandlingType": "{integer}"
},
"moveDeleteRemediationConfig": {
"blockedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"blockedFileHandlingType": "{integer}"
},
"sanitizedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"sanitizedFileHandlingType": "{integer}"
},
"allowedFileRemediationConfig": {
"isEnabled": "{boolean}",
"moveRemediationStorageConfig": {
"storageId": "{string}",
"userId": "{string}",
"keepFolderStructure": "{boolean}"
},
"allowedFileHandlingType": "{integer}"
},
"configurableBlockingStrategy": {
"shouldTreatFilesWithSensitiveDataAsBlocked": "{boolean}",
"shouldTreatFilesWithVulnerabilitiesAsBlocked": "{boolean}"
},
"blockingStrategy": "{integer}"
}
}
}
}
}
Copy

Delete scan schedulesDeprecated

Auth
Path Params
storageIdstring
Request Body
arrayarray[string]
DELETE /api/storage/scan_schedule/{storageId}
curl --request DELETE \
--url 'http://<MDSS_HOST>/api/storage/scan_schedule/{storageId}' \
--data '[
"{array[string]...}"
]'
Copy
Responses
200
objectobject
resultinteger

Enum: 0,1,2,3,0,1

responseKeystring
responseMessagestring
responseMessageParamsobject
*string
success
RestResponseRestResponse
error
RestResponseRestResponse
areAllDeletedboolean
Response
{
"result": "{integer}",
"responseKey": "{string}",
"responseMessage": "{string}",
"responseMessageParams": {},
"success": "{RestResponse}",
"error": "{RestResponse}",
"areAllDeleted": "{boolean}"
}
Copy