NAV Navigation
Shell HTTP JavaScript Ruby Python PHP Java Go

CDR Platform Sync REST API v3.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Authentication

Analyse and Rebuild

API endpoints to remove threats from files

Rebuilds a binary file

Code samples

# You can also use wget
curl -X POST /api/v3/cdr-file \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json' \
-H 'X-Session-Id: ' \
-H 'password: '
POST /api/v3/cdr-file HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json
X-Session-Id:
password:
const inputBody = '{
"ContentManagementPolicy": "{\"ContentManagementFlags\":{\"PdfContentManagement\":{\"Acroform\":1,\"ActionsAll\":1,\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Javascript\":1,\"Metadata\":1,\"Watermark\":\"\",\"DigitalSignatures\":1,\"ValueOutsideReasonableLimits\":1,\"RetainExportedStreams\":1},\"WordContentManagement\":{\"DynamicDataExchange\":1,\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Macros\":1,\"Metadata\":1,\"ReviewComments\":1},\"ExcelContentManagement\":{\"DynamicDataExchange\":1,\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Macros\":1,\"Metadata\":1,\"ReviewComments\":1, \"Connections\":1},\"PowerPointContentManagement\":{\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Macros\":1,\"Metadata\":1,\"ReviewComments\":1},\"ArchiveConfig\":{\"bmp\":1,\"doc\":1,\"docx\":1,\"emf\":1,\"gif\":1,\"jpeg\":1,\"wav\":1,\"elf\":1,\"pe\":1,\"mp4\":1,\"mpg\":1,\"pdf\":1,\"png\":1,\"ppt\":1,\"pptx\":1,\"tiff\":1,\"wmf\":1,\"xls\":1,\"xlsx\":1,\"mp3\":1,\"rtf\":1,\"coff\":1,\"macho\":1,\"unknown\":1},\"SvgConfig\":{\"ForeignObjects\":1,\"Hyperlinks\":1,\"Scripts\":1},\"WebpConfig\":{\"Metadata\":1},\"TiffConfig\":{\"GeoTiff\":1}}}",
"file": "string"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json',
'X-Session-Id':'',
'password':''
};

fetch('/api/v3/cdr-file',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
'X-Session-Id' => '',
'password' => ''
}

result = RestClient.post '/api/v3/cdr-file',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'X-Session-Id': '',
'password': ''
}

r = requests.post('/api/v3/cdr-file', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
'X-Session-Id' => '',
'password' => '',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','/api/v3/cdr-file', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v3/cdr-file");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"multipart/form-data"},
"Accept": []string{"application/json"},
"X-Session-Id": []string{""},
"password": []string{""},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/api/v3/cdr-file", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/cdr-file

The endpoint accepts requests to rebuild files. The file is sent in the request body as a field in ‘multipart/form-data’. On success, the response is a zip with the rebuilt file and either an XML or JSON report. The response ‘Content-Type’ is ‘application/octet-stream’ If an archive is sent int the request body, the response is a zip with the rebuild archive and an accompanying report archive, at the root level of this archive is a manifest file detailing the outcome of each processed file with the archive.

Body parameter

ContentManagementPolicy: '{"ContentManagementFlags":{"PdfContentManagement":{"Acroform":1,"ActionsAll":1,"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Javascript":1,"Metadata":1,"Watermark":"","DigitalSignatures":1,"ValueOutsideReasonableLimits":1,"RetainExportedStreams":1},"WordContentManagement":{"DynamicDataExchange":1,"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Macros":1,"Metadata":1,"ReviewComments":1},"ExcelContentManagement":{"DynamicDataExchange":1,"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Macros":1,"Metadata":1,"ReviewComments":1,
"Connections":1},"PowerPointContentManagement":{"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Macros":1,"Metadata":1,"ReviewComments":1},"ArchiveConfig":{"bmp":1,"doc":1,"docx":1,"emf":1,"gif":1,"jpeg":1,"wav":1,"elf":1,"pe":1,"mp4":1,"mpg":1,"pdf":1,"png":1,"ppt":1,"pptx":1,"tiff":1,"wmf":1,"xls":1,"xlsx":1,"mp3":1,"rtf":1,"coff":1,"macho":1,"unknown":1},"SvgConfig":{"ForeignObjects":1,"Hyperlinks":1,"Scripts":1},"WebpConfig":{"Metadata":1},"TiffConfig":{"GeoTiff":1}}}'
file: string

Parameters

Name In Type Required Description
X-Session-Id header string false A string that can be used to group requests in reports
policyName query string false Specifies the named policy to be applied during the CDR process. Alternatively a ‘dynamic policy’ can be provided in the message body, dynamic policy refers to any valid policy structure passed at the point of the request being made. If no policy is specified then the default policy is applied, this is the default behaviour.
response-content query string false Defines the output required for the request and depending on the value will determine what Glasswall will do to your file.
generate-hash-types query string false For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
format query ReportFormat false The format of the anaylsis report to be returned if an analysis report is requested
return-executable-file query boolean false Allow the return of software file types that are structurally repaired, but where the
password header string false If processing an encrypted zip archive file the password can be passed in as a base 64 encoded string in the header
body body object false none
» ContentManagementPolicy body object false This field contains each of the Content Management Flags for the file types that the engine supports.
» file body string(binary) true The file to be processed in binary format

Detailed descriptions

response-content: Defines the output required for the request and depending on the value will determine what Glasswall will do to your file.
Available values: noAnalysisReport, noRebuiltFile.
Multiple values can be provided in a comma seperated list.
If you set noAnalysisReport you will just receive the rebuilt file (Rebuild Mode). If you set noRebuiltFile you will receive the analysis report (Analysis Mode). If you set noRebuiltFile,noAnalysisReport you will receive the file type as a response header (File Type Detection). Leaving this value blank you will recieve both the analysis and rebuilt file along with the file type in the header (Composite Mode), this is the default behaviour.

generate-hash-types: For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
Available values: SHA256, SHA1, MD5.

return-executable-file: Allow the return of software file types that are structurally repaired, but where the CDR process does not inspect, validate or disarm any malware that may be contained in specific streams that comprise the software file.

» ContentManagementPolicy: This field contains each of the Content Management Flags for the file types that the engine supports. This determines how the engine will behave on each request and affords dynamic policy adaptation. The server treats this field as a JSON string. All the properties including the field itself are optional. Content Management Flag Key: 0 - Allow 1 - Sanitise 2 - Disallow

Enumerated Values

Parameter Value
format XML
format JSON

Example responses

400 Error returned if the body of the request is invalid

{
"Errors": [
{
"ErrorCode": 4001,
"ErrorDescription": "The request body was invalid"
}
]
}

400 Error returned if the form file contained no data or is null

{
"Errors": [
{
"ErrorCode": 4002,
"ErrorDescription": "File did not contain any data."
},
{
"ErrorCode": 4002,
"ErrorDescription": "File cannot be null"
}
]
}

400 Error returned if the policy is invalid

{
"Errors": [
{
"ErrorCode": 4004,
"ErrorDescription": "Invalid content management policy"
}
]
}

400 Error if archive processing fails during unpacking

{
"Errors": [
{
"ErrorCode": 4005,
"ErrorDescription": "Failed to Unpack Archive"
}
]
}

400 Error if archive processing fails during repacking

{
"Errors": [
{
"ErrorCode": 4006,
"ErrorDescription": "Failed to Repack Archive"
}
]
}

400 Error if the password provided is invalid for the protected archive

{
"Errors": [
{
"ErrorCode": 4007,
"ErrorDescription": "Failed to Unpack Archive Due to an incorrect password"
}
]
}

400 Error if protected archive is an unsupported format

{
"Errors": [
{
"ErrorCode": 4007,
"ErrorDescription": "Protected Archives must be a Zip file"
}
]
}

400 if the File is an executable file type and the allow query parameter was not set

{
"Errors": [
{
"ErrorCode": 4010,
"ErrorDescription": "File is an executable file type and not allowed by default"
}
]
}

The system cannot accept new requests as it is currently at max load. Inspect the “Retry-After” header for a time to wait before retrying

{
"Errors": [
{
"ErrorCode": 4029,
"ErrorDescription": "Too many requests"
}
]
}

500 Error if Glasswall engine timesout during processing

{
"Errors": [
{
"ErrorCode": 5001,
"ErrorDescription": "Internal server error: Server timed out processing this request."
}
]
}

500 Error if Glasswall engine is unable to determine file type

{
"Errors": [
{
"ErrorCode": 5003,
"ErrorDescription": "Failed to detect file type"
}
]
}

500 Error if Glasswall engine fails to rebuild file

{
"Errors": [
{
"ErrorCode": 5004,
"ErrorDescription": "Failed to rebuild file"
}
]
}

500 Error if Glasswall engine fails to generate an analysis report

{
"Errors": [
{
"ErrorCode": 5006,
"ErrorDescription": "Failed to generate analysis report"
}
]
}

500 Error if the original file fails to save to storage

{
"Errors": [
{
"ErrorCode": 5007,
"ErrorDescription": "Failed to upload original file"
}
]
}

500 Error if there is not enough information to build a composite response

{
"Errors": [
{
"ErrorCode": 5008,
"ErrorDescription": "Not Enough Information to build composite response"
}
]
}

Responses

Status Meaning Description Schema
201 Created Created None
206 Partial Content Partial Response None
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Server Error ErrorResponse

Response Headers

Status Header Type Format Description
201 x-hash-{algo}-input string Value of the input file hash. {algo} is replaced with the chosen hashing algorithm
201 x-hash-{algo}-output string Value of the output file hash. {algo} is replaced with the chosen hashing algorithm
201 x-file-size string The size in bytes of the original input file
201 x-applied-policy string Identifies the policy applied during the CDR Process.

Rebuilds a Base64 encoded file

Code samples

# You can also use wget
curl -X POST /api/v3/cdr \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Session-Id: string'
POST /api/v3/cdr HTTP/1.1

Content-Type: application/json
Accept: application/json
X-Session-Id: string
const inputBody = '{
"base64": "string",
"contentManagementPolicyDetail": {
"ContentManagementFlags": {
"PdfContentManagement": {
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
},
"WordContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ExcelContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
},
"PowerPointContentManagement": {
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ArchiveConfig": {
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
},
"tiffConfig": {
"geoTiff": 1
},
"svgConfig": {
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
},
"webpConfig": {
"Metadata": 1
}
}
},
"fileName": "Hello I am a filename example",
"password": ""
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'X-Session-Id':'string'
};

fetch('/api/v3/cdr',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Session-Id' => 'string'
}

result = RestClient.post '/api/v3/cdr',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-Session-Id': 'string'
}

r = requests.post('/api/v3/cdr', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Session-Id' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','/api/v3/cdr', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v3/cdr");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"X-Session-Id": []string{"string"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/api/v3/cdr", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/cdr

The endpoint accepts requests to rebuild Base64 encoded files. The request body is a JSON that contains Base64 representation of the file. The request ‘Content-Type’ must be ‘application/json’. On success, the response is a zip with the rebuilt file and either an XML or JSON report. The response ‘Content-Type’ is ‘application/json’. If an archive is sent in the request body, the response is a zip with the rebuild archive and an accompanying report archive, at the root level of this archive is a manifest file detailing the outcome of each processed file with the archive.

Body parameter

{
"base64": "string",
"contentManagementPolicyDetail": {
"ContentManagementFlags": {
"PdfContentManagement": {
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
},
"WordContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ExcelContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
},
"PowerPointContentManagement": {
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ArchiveConfig": {
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
},
"tiffConfig": {
"geoTiff": 1
},
"svgConfig": {
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
},
"webpConfig": {
"Metadata": 1
}
}
},
"fileName": "Hello I am a filename example",
"password": ""
}

Parameters

Name In Type Required Description
X-Session-Id header string false A string that can be used to group requests in reports
policyName query string false Specifies the named policy to be applied during the CDR process. Alternatively a ‘dynamic policy’ can be provided in the message body, dynamic policy refers to any valid policy structure passed at the point of the request being made. If no policy is specified then the default policy is applied, this is the default behaviour.
response-content query string false Defines the output required for the request and depending on the value will determine what Glasswall will do to your file.
generate-hash-types query string false For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
format query ReportFormat false The format of the anaylsis report to be returned if an analysis report is requested
return-executable-file query boolean false Allow the return of software file types that are structurally repaired, but where the
body body RebuildBase64Request true none

Detailed descriptions

response-content: Defines the output required for the request and depending on the value will determine what Glasswall will do to your file.
Available values: noAnalysisReport, noRebuiltFile.
Multiple values can be provided in a comma seperated list.
If you set noAnalysisReport you will just receive the rebuilt file (Rebuild Mode). If you set noRebuiltFile you will receive the analysis report (Analysis Mode). If you set noRebuiltFile,noAnalysisReport you will receive the file type as a response header (File Type Detection). Leaving this value blank you will recieve both the analysis and rebuilt file along with the file type in the header (Composite Mode).

generate-hash-types: For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
Available values: SHA256, SHA1, MD5.

return-executable-file: Allow the return of software file types that are structurally repaired, but where the CDR process does not inspect, validate or disarm any malware that may be contained in specific streams that comprise the software file.

Enumerated Values

Parameter Value
format XML
format JSON

Example responses

Analysis Report is returned and describes basic file metadata (size, hash, ‘unknown’)

{
"ErrorReason": "file type unsupported",
"ProcessingId": "5cdba78f-71cc-4e95-b20c-291c1d7b47f7",
"ProcessingStatus": "failed",
"FileType": "unknown",
"AnalysisReport": {
"Content": "QmFzZTY0IHN0cmluZw==",
"ContentType": "application/xml",
"ContentEncoding": "base64"
},
"RebuiltFile": null
}

Analysis Report is included in the response

{
"ErrorReason": "Failed to rebuild file",
"ProcessingId": "5cdba78f-71cc-4e95-b20c-291c1d7b47f7",
"ProcessingStatus": "failed",
"FileType": "pdf",
"AnalysisReport": {
"Content": "QmFzZTY0IHN0cmluZw==",
"ContentType": "application/xml",
"ContentEncoding": "base64"
},
"RebuiltFile": null
}

Archive file containing analysis reports and manifest file is included in response, along with an archive file containing the rebuilt files and info substitution files (for those files that could not be rebuilt)

{
"ErrorReason": " Failed to rebuild item",
"ProcessingId": "5cdba78f-71cc-4e95-b20c-291c1d7b47f7",
"ProcessingStatus": "failed",
"FileType": "zip",
"AnalysisReport": {
"Content": "QmFzZTY0IHN0cmluZw==",
"ContentType": "application/zip",
"ContentEncoding": "base64"
},
"RebuiltFile": {
"Content": "QW50b2hlciBCYXNlNjQgc3RyaW5n",
"ContentType": "application/octet-stream",
"ContentEncoding": "base64"
}
}

400 Error returned if base64 string is incorrect

{
"Errors": [
{
"ErrorCode": 4003,
"ErrorDescription": "Unable to parse base64 file"
}
]
}

400 Error returned if the policy is invalid

{
"Errors": [
{
"ErrorCode": 4004,
"ErrorDescription": "Invalid content management policy"
}
]
}

400 Error if archive processing fails during unpacking

{
"Errors": [
{
"ErrorCode": 4005,
"ErrorDescription": "Failed to Unpack Archive"
}
]
}

400 Error if archive processing fails during repacking

{
"Errors": [
{
"ErrorCode": 4006,
"ErrorDescription": "Failed to Repack Archive"
}
]
}

400 Error if the password provided is invalid for the protected archive

{
"Errors": [
{
"ErrorCode": 4007,
"ErrorDescription": "Failed to Unpack Archive Due to an incorrect password"
}
]
}

400 Error if protected archive is an unsupported format

{
"Errors": [
{
"ErrorCode": 4007,
"ErrorDescription": "Protected Archives must be a Zip file"
}
]
}

400 if the File is an executable file type and the allow query parameter was not set

{
"Errors": [
{
"ErrorCode": 4010,
"ErrorDescription": "File is an executable file type and not allowed by default"
}
]
}

The system cannot accept new requests as it is currently at max load. Inspect the “Retry-After” header for a time to wait before retrying

{
"Errors": [
{
"ErrorCode": 4029,
"ErrorDescription": "Too many requests"
}
]
}

500 Error if Glasswall engine timesout during processing

{
"Errors": [
{
"ErrorCode": 5001,
"ErrorDescription": "Internal server error: Server timed out processing this request."
}
]
}

500 Error if Glasswall engine is unable to determine file type

{
"Errors": [
{
"ErrorCode": 5003,
"ErrorDescription": "Failed to detect file type"
}
]
}

500 Error if Glasswall engine fails to rebuild file

{
"Errors": [
{
"ErrorCode": 5004,
"ErrorDescription": "Failed to rebuild file"
}
]
}

500 Error if Glasswall engine fails to generate an analysis report

{
"Errors": [
{
"ErrorCode": 5006,
"ErrorDescription": "Failed to generate analysis report"
}
]
}

500 Error if the original file fails to save to storage

{
"Errors": [
{
"ErrorCode": 5007,
"ErrorDescription": "Failed to upload original file"
}
]
}

500 Error if there is not enough information to build a composite response

{
"Errors": [
{
"ErrorCode": 5008,
"ErrorDescription": "Not Enough Information to build composite response"
}
]
}

Responses

Status Meaning Description Schema
201 Created Created None
206 Partial Content Partial Response Base64Output
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Server Error ErrorResponse

Response Headers

Status Header Type Format Description
201 x-hash-{algo}-input string Value of the input file hash. {algo} is replaced with the chosen hashing algorithm
201 x-hash-{algo}-output string Value of the output file hash. {algo} is replaced with the chosen hashing algorithm
201 x-file-size string The size in bytes of the original input file
201 x-applied-policy string Identifies the policy applied during the CDR Process.

Import and Export

Alpha API endpoints to export and import a file to and from XML/SISL file(s)

Exports a binary file as a zip containing SISL/XML file(s)

Code samples

# You can also use wget
curl -X POST /api/v3/export-file \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json' \
-H 'X-Session-Id: string'
POST /api/v3/export-file HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json
X-Session-Id: string
const inputBody = '{
"ContentManagementPolicy": "{\"ContentManagementFlags\":{\"PdfContentManagement\":{\"Acroform\":1,\"ActionsAll\":1,\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Javascript\":1,\"Metadata\":1,\"Watermark\":\"\",\"DigitalSignatures\":1,\"ValueOutsideReasonableLimits\":1,\"RetainExportedStreams\":1},\"WordContentManagement\":{\"DynamicDataExchange\":1,\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Macros\":1,\"Metadata\":1,\"ReviewComments\":1},\"ExcelContentManagement\":{\"DynamicDataExchange\":1,\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Macros\":1,\"Metadata\":1,\"ReviewComments\":1, \"Connections\":1},\"PowerPointContentManagement\":{\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Macros\":1,\"Metadata\":1,\"ReviewComments\":1},\"ArchiveConfig\":{\"bmp\":1,\"doc\":1,\"docx\":1,\"emf\":1,\"gif\":1,\"jpeg\":1,\"wav\":1,\"elf\":1,\"pe\":1,\"mp4\":1,\"mpg\":1,\"pdf\":1,\"png\":1,\"ppt\":1,\"pptx\":1,\"tiff\":1,\"wmf\":1,\"xls\":1,\"xlsx\":1,\"mp3\":1,\"rtf\":1,\"coff\":1,\"macho\":1,\"unknown\":1},\"SvgConfig\":{\"ForeignObjects\":1,\"Hyperlinks\":1,\"Scripts\":1},\"WebpConfig\":{\"Metadata\":1},\"TiffConfig\":{\"GeoTiff\":1}}}",
"file": "string"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json',
'X-Session-Id':'string'
};

fetch('/api/v3/export-file',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
'X-Session-Id' => 'string'
}

result = RestClient.post '/api/v3/export-file',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'X-Session-Id': 'string'
}

r = requests.post('/api/v3/export-file', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
'X-Session-Id' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','/api/v3/export-file', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v3/export-file");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"multipart/form-data"},
"Accept": []string{"application/json"},
"X-Session-Id": []string{"string"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/api/v3/export-file", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/export-file

The endpoint accepts requests to export files as SISL/XML files.
The file is sent in the request body as a field in ‘multipart/form-data’.
On success, the response is a zip containing SISL/XML file(s).
The response ‘Content-Type’ is ‘application/octet-stream’
File Limit : 10MB

Body parameter

ContentManagementPolicy: '{"ContentManagementFlags":{"PdfContentManagement":{"Acroform":1,"ActionsAll":1,"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Javascript":1,"Metadata":1,"Watermark":"","DigitalSignatures":1,"ValueOutsideReasonableLimits":1,"RetainExportedStreams":1},"WordContentManagement":{"DynamicDataExchange":1,"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Macros":1,"Metadata":1,"ReviewComments":1},"ExcelContentManagement":{"DynamicDataExchange":1,"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Macros":1,"Metadata":1,"ReviewComments":1,
"Connections":1},"PowerPointContentManagement":{"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Macros":1,"Metadata":1,"ReviewComments":1},"ArchiveConfig":{"bmp":1,"doc":1,"docx":1,"emf":1,"gif":1,"jpeg":1,"wav":1,"elf":1,"pe":1,"mp4":1,"mpg":1,"pdf":1,"png":1,"ppt":1,"pptx":1,"tiff":1,"wmf":1,"xls":1,"xlsx":1,"mp3":1,"rtf":1,"coff":1,"macho":1,"unknown":1},"SvgConfig":{"ForeignObjects":1,"Hyperlinks":1,"Scripts":1},"WebpConfig":{"Metadata":1},"TiffConfig":{"GeoTiff":1}}}'
file: string

Parameters

Name In Type Required Description
X-Session-Id header string false A string that can be used to group requests in reports
policyName query string false Specifies the named policy to be applied during the CDR process. Alternatively a ‘dynamic policy’ can be provided in the message body, dynamic policy refers to any valid policy structure passed at the point of the request being made. If no policy is specified then the default policy is applied, this is the default behaviour.
generateHashTypes query string false For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
exportEmbeddedImages query boolean false Specifies for the export process how Glasswall should deal with images within a document being exported. When this value is set to true Glasswall will export any embeded images to the defined interchange type (SISL/XML). When this value is set to false Glasswall will export the image in it’s native type which is defined in the file.
interchangeType query InterchangeType false Specifies what the exported file types are. If XML then the file will be exported into XML format. If SISL the file will be exported into SISL format
body body object false none
» ContentManagementPolicy body object false This field contains each of the Content Management Flags for the file types that the engine supports.
» file body string(binary) true The file to be processed in binary format

Detailed descriptions

generateHashTypes: For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
Valid Parameters: SHA256, SHA1, MD5.

» ContentManagementPolicy: This field contains each of the Content Management Flags for the file types that the engine supports. This determines how the engine will behave on each request and affords dynamic policy adaptation. The server treats this field as a JSON string. All the properties including the field itself are optional. Content Management Flag Key: 0 - Allow 1 - Sanitise 2 - Disallow

Enumerated Values

Parameter Value
interchangeType XML
interchangeType SISL

Example responses

400 Response

{
"errors": [
{
"errorCode": 0,
"errorDescription": "string"
}
]
}

Responses

Status Meaning Description Schema
201 Created Created None
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Server Error ErrorResponse

Response Headers

Status Header Type Format Description
201 x-hash-{algo}-input string Value of the input file hash. {algo} is replaced with the chosen hashing algorithm
201 x-hash-{algo}-output string Value of the output file hash. {algo} is replaced with the chosen hashing algorithm
201 x-file-size string The size in bytes of the original input file

Exports a Base64 encoded file as a Base64 encoded zip containing SISL/XML file(s)

Code samples

# You can also use wget
curl -X POST /api/v3/export \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Session-Id: string'
POST /api/v3/export HTTP/1.1

Content-Type: application/json
Accept: application/json
X-Session-Id: string
const inputBody = '{
"base64": "string",
"contentManagementPolicyDetail": {
"ContentManagementFlags": {
"PdfContentManagement": {
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
},
"WordContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ExcelContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
},
"PowerPointContentManagement": {
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ArchiveConfig": {
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
},
"tiffConfig": {
"geoTiff": 1
},
"svgConfig": {
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
},
"webpConfig": {
"Metadata": 1
}
}
},
"fileName": "Hello I am a filename example",
"password": ""
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'X-Session-Id':'string'
};

fetch('/api/v3/export',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Session-Id' => 'string'
}

result = RestClient.post '/api/v3/export',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-Session-Id': 'string'
}

r = requests.post('/api/v3/export', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Session-Id' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','/api/v3/export', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v3/export");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"X-Session-Id": []string{"string"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/api/v3/export", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/export

The endpoint accepts requests to export files as SISL/XML file(s).
The request ‘Content-Type’ must be ‘application/json’.
On success, the response is a Base64 encoded zip containing SISL/XML file(s).
The response ‘Content-Type’ is ‘application/json’.
File Limit : 10MB

Body parameter

{
"base64": "string",
"contentManagementPolicyDetail": {
"ContentManagementFlags": {
"PdfContentManagement": {
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
},
"WordContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ExcelContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
},
"PowerPointContentManagement": {
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ArchiveConfig": {
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
},
"tiffConfig": {
"geoTiff": 1
},
"svgConfig": {
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
},
"webpConfig": {
"Metadata": 1
}
}
},
"fileName": "Hello I am a filename example",
"password": ""
}

Parameters

Name In Type Required Description
X-Session-Id header string false A string that can be used to group requests in reports
policyName query string false Specifies the named policy to be applied during the CDR process. Alternatively a ‘dynamic policy’ can be provided in the message body, dynamic policy refers to any valid policy structure passed at the point of the request being made. If no policy is specified then the default policy is applied, this is the default behaviour.
generateHashTypes query string false For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
exportEmbeddedImages query boolean false Specifies for the export process how Glasswall should deal with images within a document being exported. When this value is set to true Glasswall will export any embeded images to the defined interchange type (SISL/XML). When this value is set to false Glasswall will export the image in it’s native type which is defined in the file.
interchangeType query InterchangeType false Specifies what the exported file types are. If XML then the file will be exported into XML format. If SISL the file will be exported into SISL format
body body RebuildBase64Request true none

Detailed descriptions

generateHashTypes: For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
Valid Parameters: SHA256, SHA1, MD5.

Enumerated Values

Parameter Value
interchangeType XML
interchangeType SISL

Example responses

400 Response

{
"errors": [
{
"errorCode": 0,
"errorDescription": "string"
}
]
}

Responses

Status Meaning Description Schema
201 Created Created None
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Server Error ErrorResponse

Response Headers

Status Header Type Format Description
201 x-hash-{algo}-input string Value of the input file hash. {algo} is replaced with the chosen hashing algorithm
201 x-hash-{algo}-output string Value of the output file hash. {algo} is replaced with the chosen hashing algorithm
201 x-file-size string The size in bytes of the original input file

Imports a zip containing SISL/XML file(s) from the export endpoint and returns a binary file

Code samples

# You can also use wget
curl -X POST /api/v3/import-file \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json' \
-H 'X-Session-Id: string'
POST /api/v3/import-file HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json
X-Session-Id: string
const inputBody = '{
"ContentManagementPolicy": "{\"ContentManagementFlags\":{\"PdfContentManagement\":{\"Acroform\":1,\"ActionsAll\":1,\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Javascript\":1,\"Metadata\":1,\"Watermark\":\"\",\"DigitalSignatures\":1,\"ValueOutsideReasonableLimits\":1,\"RetainExportedStreams\":1},\"WordContentManagement\":{\"DynamicDataExchange\":1,\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Macros\":1,\"Metadata\":1,\"ReviewComments\":1},\"ExcelContentManagement\":{\"DynamicDataExchange\":1,\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Macros\":1,\"Metadata\":1,\"ReviewComments\":1, \"Connections\":1},\"PowerPointContentManagement\":{\"EmbeddedFiles\":1,\"EmbeddedImages\":1,\"ExternalHyperlinks\":1,\"InternalHyperlinks\":1,\"Macros\":1,\"Metadata\":1,\"ReviewComments\":1},\"ArchiveConfig\":{\"bmp\":1,\"doc\":1,\"docx\":1,\"emf\":1,\"gif\":1,\"jpeg\":1,\"wav\":1,\"elf\":1,\"pe\":1,\"mp4\":1,\"mpg\":1,\"pdf\":1,\"png\":1,\"ppt\":1,\"pptx\":1,\"tiff\":1,\"wmf\":1,\"xls\":1,\"xlsx\":1,\"mp3\":1,\"rtf\":1,\"coff\":1,\"macho\":1,\"unknown\":1},\"SvgConfig\":{\"ForeignObjects\":1,\"Hyperlinks\":1,\"Scripts\":1},\"WebpConfig\":{\"Metadata\":1},\"TiffConfig\":{\"GeoTiff\":1}}}",
"file": "string"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json',
'X-Session-Id':'string'
};

fetch('/api/v3/import-file',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
'X-Session-Id' => 'string'
}

result = RestClient.post '/api/v3/import-file',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'X-Session-Id': 'string'
}

r = requests.post('/api/v3/import-file', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
'X-Session-Id' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','/api/v3/import-file', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v3/import-file");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"multipart/form-data"},
"Accept": []string{"application/json"},
"X-Session-Id": []string{"string"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/api/v3/import-file", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/import-file

The endpoint accepts requests to import a zip containing SISL/XML file(s). The file is sent in the request body as a field in ‘multipart/form-data’. On success, the response is a binary file. The response ‘Content-Type’ is ‘application/octet-stream’

Body parameter

ContentManagementPolicy: '{"ContentManagementFlags":{"PdfContentManagement":{"Acroform":1,"ActionsAll":1,"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Javascript":1,"Metadata":1,"Watermark":"","DigitalSignatures":1,"ValueOutsideReasonableLimits":1,"RetainExportedStreams":1},"WordContentManagement":{"DynamicDataExchange":1,"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Macros":1,"Metadata":1,"ReviewComments":1},"ExcelContentManagement":{"DynamicDataExchange":1,"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Macros":1,"Metadata":1,"ReviewComments":1,
"Connections":1},"PowerPointContentManagement":{"EmbeddedFiles":1,"EmbeddedImages":1,"ExternalHyperlinks":1,"InternalHyperlinks":1,"Macros":1,"Metadata":1,"ReviewComments":1},"ArchiveConfig":{"bmp":1,"doc":1,"docx":1,"emf":1,"gif":1,"jpeg":1,"wav":1,"elf":1,"pe":1,"mp4":1,"mpg":1,"pdf":1,"png":1,"ppt":1,"pptx":1,"tiff":1,"wmf":1,"xls":1,"xlsx":1,"mp3":1,"rtf":1,"coff":1,"macho":1,"unknown":1},"SvgConfig":{"ForeignObjects":1,"Hyperlinks":1,"Scripts":1},"WebpConfig":{"Metadata":1},"TiffConfig":{"GeoTiff":1}}}'
file: string

Parameters

Name In Type Required Description
X-Session-Id header string false A string that can be used to group requests in reports
policyName query string false Specifies the named policy to be applied during the CDR process. Alternatively a ‘dynamic policy’ can be provided in the message body, dynamic policy refers to any valid policy structure passed at the point of the request being made. If no policy is specified then the default policy is applied, this is the default behaviour.
generateHashTypes query string false For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
exportEmbeddedImages query boolean false Specifies for the import process how the images were exported during the export process. If set to true Glasswall is expecting the images in the format relating to the interchange type. If false Glasswall is expecting the images to be in the original image format.
interchangeType query InterchangeType false Specifies what the exported file types are. If XML then the file will be exported into XML format. If SISL the file will be exported into SISL format
body body object false none
» ContentManagementPolicy body object false This field contains each of the Content Management Flags for the file types that the engine supports.
» file body string(binary) true The file to be processed in binary format

Detailed descriptions

generateHashTypes: For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
Valid Parameters: SHA256, SHA1, MD5.

» ContentManagementPolicy: This field contains each of the Content Management Flags for the file types that the engine supports. This determines how the engine will behave on each request and affords dynamic policy adaptation. The server treats this field as a JSON string. All the properties including the field itself are optional. Content Management Flag Key: 0 - Allow 1 - Sanitise 2 - Disallow

Enumerated Values

Parameter Value
interchangeType XML
interchangeType SISL

Example responses

400 Response

{
"errors": [
{
"errorCode": 0,
"errorDescription": "string"
}
]
}

Responses

Status Meaning Description Schema
201 Created Created None
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Server Error ErrorResponse

Response Headers

Status Header Type Format Description
201 x-hash-{algo}-input string Value of the input file hash. {algo} is replaced with the chosen hashing algorithm
201 x-hash-{algo}-output string Value of the output file hash. {algo} is replaced with the chosen hashing algorithm
201 x-file-size string The size in bytes of the original input file

Imports a Base64 encoded zip containing SISL/XML file(s) from the export endpoint and returns a Base64 encoded file

Code samples

# You can also use wget
curl -X POST /api/v3/import \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Session-Id: string'
POST /api/v3/import HTTP/1.1

Content-Type: application/json
Accept: application/json
X-Session-Id: string
const inputBody = '{
"base64": "string",
"contentManagementPolicyDetail": {
"ContentManagementFlags": {
"PdfContentManagement": {
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
},
"WordContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ExcelContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
},
"PowerPointContentManagement": {
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ArchiveConfig": {
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
},
"tiffConfig": {
"geoTiff": 1
},
"svgConfig": {
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
},
"webpConfig": {
"Metadata": 1
}
}
},
"fileName": "Hello I am a filename example",
"password": ""
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'X-Session-Id':'string'
};

fetch('/api/v3/import',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Session-Id' => 'string'
}

result = RestClient.post '/api/v3/import',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-Session-Id': 'string'
}

r = requests.post('/api/v3/import', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Session-Id' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','/api/v3/import', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v3/import");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"X-Session-Id": []string{"string"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/api/v3/import", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/import

The endpoint accepts requests to import Base64 encoded zip containing SISL/XML file(s). The request ‘Content-Type’ must be ‘application/json’. On success, the response is a Base64 encoded file. The response ‘Content-Type’ is ‘application/json’.

Body parameter

{
"base64": "string",
"contentManagementPolicyDetail": {
"ContentManagementFlags": {
"PdfContentManagement": {
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
},
"WordContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ExcelContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
},
"PowerPointContentManagement": {
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ArchiveConfig": {
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
},
"tiffConfig": {
"geoTiff": 1
},
"svgConfig": {
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
},
"webpConfig": {
"Metadata": 1
}
}
},
"fileName": "Hello I am a filename example",
"password": ""
}

Parameters

Name In Type Required Description
X-Session-Id header string false A string that can be used to group requests in reports
policyName query string false Specifies the named policy to be applied during the CDR process. Alternatively a ‘dynamic policy’ can be provided in the message body, dynamic policy refers to any valid policy structure passed at the point of the request being made. If no policy is specified then the default policy is applied, this is the default behaviour.
generateHashTypes query string false For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
exportEmbeddedImages query boolean false Specifies for the import process how the images were exported during the export process. If set to true Glasswall is expecting the images in the format relating to the interchange type. If false Glasswall is expecting the images to be in the original image format.
interchangeType query InterchangeType false Specifies what the exported file types are. If XML then the zip input should contain the XML files which were produced during the export process. If SISL then the zip input should contain the SISL files which were produced during the export process.
body body RebuildBase64Request true none

Detailed descriptions

generateHashTypes: For each of the given hashing algorithms in this comma separated list, an input and output file hash string will be created and placed in the response header. If the value is blank no hash values will be returned, this is the default value.
Valid Parameters: SHA256, SHA1, MD5.

Enumerated Values

Parameter Value
interchangeType XML
interchangeType SISL

Example responses

400 Response

{
"errors": [
{
"errorCode": 0,
"errorDescription": "string"
}
]
}

Responses

Status Meaning Description Schema
201 Created Created None
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Server Error ErrorResponse

Response Headers

Status Header Type Format Description
201 x-hash-{algo}-input string Value of the input file hash. {algo} is replaced with the chosen hashing algorithm
201 x-hash-{algo}-output string Value of the output file hash. {algo} is replaced with the chosen hashing algorithm
201 x-file-size string The size in bytes of the original input file

Schemas

XAppliedPolicy

"(name)"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous (name)
anonymous default
anonymous service-dynamic
anonymous glasswall-fallback)

ArchiveConfig

{
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
}

Properties

Name Type Required Restrictions Description
bmp ContentManagementFlagAction false none none
doc ContentManagementFlagAction false none none
docx ContentManagementFlagAction false none none
emf ContentManagementFlagAction false none none
gif ContentManagementFlagAction false none none
jpeg ContentManagementFlagAction false none none
wav ContentManagementFlagAction false none none
elf ContentManagementFlagAction false none none
pe ContentManagementFlagAction false none none
mp4 ContentManagementFlagAction false none none
mpg ContentManagementFlagAction false none none
pdf ContentManagementFlagAction false none none
png ContentManagementFlagAction false none none
ppt ContentManagementFlagAction false none none
pptx ContentManagementFlagAction false none none
tiff ContentManagementFlagAction false none none
wmf ContentManagementFlagAction false none none
xls ContentManagementFlagAction false none none
xlsx ContentManagementFlagAction false none none
mp3 ContentManagementFlagAction false none none
rtf ContentManagementFlagAction false none none
coff ContentManagementFlagAction false none none
macho ContentManagementFlagAction false none none
unknown ContentManagementFlagAction false none none

Base64Output

{
"errorReason": "string",
"processingId": "string",
"processingStatus": "string",
"fileType": "string",
"analysisReport": {
"content": "string",
"contentType": "string",
"contentEncoding": "string"
},
"rebuiltFile": {
"content": "string",
"contentType": "string",
"contentEncoding": "string"
}
}

Properties

Name Type Required Restrictions Description
errorReason string¦null false none none
processingId string¦null false none none
processingStatus string¦null false none none
fileType string¦null false none none
analysisReport Base64ResponseFile false none none
rebuiltFile Base64ResponseFile false none none

Base64ResponseFile

{
"content": "string",
"contentType": "string",
"contentEncoding": "string"
}

Properties

Name Type Required Restrictions Description
content string¦null false none none
contentType string¦null false none none
contentEncoding string¦null false none none

WordContentManagement

{
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
}

Properties

Name Type Required Restrictions Description
DynamicDataExchange ContentManagementFlagAction false none none
EmbeddedFiles ContentManagementFlagAction false none none
EmbeddedImages ContentManagementFlagAction false none none
ExternalHyperlinks ContentManagementFlagAction false none none
InternalHyperlinks ContentManagementFlagAction false none none
Macros ContentManagementFlagAction false none none
Metadata ContentManagementFlagAction false none none
ReviewComments ContentManagementFlagAction false none none

ExcelContentManagement

{
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
}

Properties

Name Type Required Restrictions Description
DynamicDataExchange ContentManagementFlagAction false none none
EmbeddedFiles ContentManagementFlagAction false none none
EmbeddedImages ContentManagementFlagAction false none none
ExternalHyperlinks ContentManagementFlagAction false none none
InternalHyperlinks ContentManagementFlagAction false none none
Macros ContentManagementFlagAction false none none
Metadata ContentManagementFlagAction false none none
ReviewComments ContentManagementFlagAction false none none
Connections ContentManagementFlagAction false none none

PowerPointContentManagement

{
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
}

Properties

Name Type Required Restrictions Description
EmbeddedFiles ContentManagementFlagAction false none none
EmbeddedImages ContentManagementFlagAction false none none
ExternalHyperlinks ContentManagementFlagAction false none none
InternalHyperlinks ContentManagementFlagAction false none none
Macros ContentManagementFlagAction false none none
Metadata ContentManagementFlagAction false none none
ReviewComments ContentManagementFlagAction false none none

ContentManagementFlagAction

1

Properties

Name Type Required Restrictions Description
anonymous integer(int32) false none none

Enumerated Values

Property Value
anonymous 0
anonymous 1
anonymous 2

ContentManagementFlags

{
"PdfContentManagement": {
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
},
"WordContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ExcelContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
},
"PowerPointContentManagement": {
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ArchiveConfig": {
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
},
"tiffConfig": {
"geoTiff": 1
},
"svgConfig": {
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
},
"webpConfig": {
"Metadata": 1
}
}

Properties

Name Type Required Restrictions Description
PdfContentManagement PdfContentManagement false none none
WordContentManagement WordContentManagement false none none
ExcelContentManagement ExcelContentManagement false none none
PowerPointContentManagement PowerPointContentManagement false none none
ArchiveConfig ArchiveConfig false none none
tiffConfig TiffConfig false none none
svgConfig SvgConfig false none none
webpConfig WebpConfig false none none

ContentManagementPolicy

{
"ContentManagementFlags": {
"PdfContentManagement": {
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
},
"WordContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ExcelContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
},
"PowerPointContentManagement": {
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ArchiveConfig": {
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
},
"tiffConfig": {
"geoTiff": 1
},
"svgConfig": {
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
},
"webpConfig": {
"Metadata": 1
}
}
}

Required.Default is optional The Policy JSON used by the api to configure the engine

NOTE: Due to XML being order dependent the property ordering of these classes should not be changed. Tests are in place to ensure they arent changed

Properties

Name Type Required Restrictions Description
ContentManagementFlags ContentManagementFlags false none none

Error

{
"errorCode": 0,
"errorDescription": "string"
}

Properties

Name Type Required Restrictions Description
errorCode integer(int32)¦null false none The Glasswall error code
errorDescription string¦null false none none

ErrorResponse

{
"errors": [
{
"errorCode": 0,
"errorDescription": "string"
}
]
}

Properties

Name Type Required Restrictions Description
errors [Error]¦null false none The error text relating to the particular error

InterchangeType

"XML"

This field can accept either a string or number representation of the enum

Properties

Name Type Required Restrictions Description
anonymous string false none This field can accept either a string or number representation of the enum

Enumerated Values

Property Value
anonymous XML
anonymous SISL

PdfContentManagement

{
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
}

Properties

Name Type Required Restrictions Description
Acroform ContentManagementFlagAction false none none
ActionsAll ContentManagementFlagAction false none none
EmbeddedFiles ContentManagementFlagAction false none none
EmbeddedImages ContentManagementFlagAction false none none
ExternalHyperlinks ContentManagementFlagAction false none none
InternalHyperlinks ContentManagementFlagAction false none none
Javascript ContentManagementFlagAction false none none
Metadata ContentManagementFlagAction false none none
Watermark string¦null false none none
DigitalSignatures ContentManagementFlagAction false none none
ValueOutsideReasonableLimits ContentManagementFlagAction false none none
RetainExportedStreams ContentManagementFlagAction false none none

RebuildBase64Request

{
"base64": "string",
"contentManagementPolicyDetail": {
"ContentManagementFlags": {
"PdfContentManagement": {
"Acroform": 1,
"ActionsAll": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Javascript": 1,
"Metadata": 1,
"Watermark": "",
"DigitalSignatures": 1,
"ValueOutsideReasonableLimits": 1,
"RetainExportedStreams": 1
},
"WordContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ExcelContentManagement": {
"DynamicDataExchange": 1,
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1,
"Connections": 1
},
"PowerPointContentManagement": {
"EmbeddedFiles": 1,
"EmbeddedImages": 1,
"ExternalHyperlinks": 1,
"InternalHyperlinks": 1,
"Macros": 1,
"Metadata": 1,
"ReviewComments": 1
},
"ArchiveConfig": {
"bmp": 1,
"doc": 1,
"docx": 1,
"emf": 1,
"gif": 1,
"jpeg": 1,
"wav": 1,
"elf": 1,
"pe": 1,
"mp4": 1,
"mpg": 1,
"pdf": 1,
"png": 1,
"ppt": 1,
"pptx": 1,
"tiff": 1,
"wmf": 1,
"xls": 1,
"xlsx": 1,
"mp3": 1,
"rtf": 1,
"coff": 1,
"macho": 1,
"unknown": 1
},
"tiffConfig": {
"geoTiff": 1
},
"svgConfig": {
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
},
"webpConfig": {
"Metadata": 1
}
}
},
"fileName": "Hello I am a filename example",
"password": ""
}

Properties

Name Type Required Restrictions Description
base64 string true none none
contentManagementPolicyDetail ContentManagementPolicy false none Required.Default is optional
The Policy JSON used by the api to configure the engine


NOTE: Due to XML being order dependent the property ordering of these classes should not be changed.
Tests are in place to ensure they arent changed
fileName string true none File Name
password string¦null false none none

ReportFormat

"XML"

This field can accept either a string or number representation of the enum

Properties

Name Type Required Restrictions Description
anonymous string false none This field can accept either a string or number representation of the enum

Enumerated Values

Property Value
anonymous XML
anonymous JSON

SvgConfig

{
"Scripts": 1,
"ForeignObjects": 1,
"Hyperlinks": 1
}

Properties

Name Type Required Restrictions Description
Scripts ContentManagementFlagAction false none none
ForeignObjects ContentManagementFlagAction false none none
Hyperlinks ContentManagementFlagAction false none none

TiffConfig

{
"geoTiff": 1
}

Properties

Name Type Required Restrictions Description
geoTiff ContentManagementFlagAction false none none

WebpConfig

{
"Metadata": 1
}

Properties

Name Type Required Restrictions Description
Metadata ContentManagementFlagAction false none none