openapi: 3.2.0
info:
version: '3.0'
title: inSync Cloud Federated Search API
description: Quickly find backed-up files and emails of end-users using metadata attributes.
servers:
- url: https://apis.druva.com/insync
tags:
- name: Federated Search
description: Quickly find backed-up files and emails of end-users using metadata attributes.
paths:
/search/mds/v1/user/files:
get:
tags:
- Federated Search
summary: Search for files
description: 'Search for backed-up files using the SHA1 checksum value and view their details.
While using this API, ensure the following:
1. Make repeated API calls until the next page token is empty
2. For each response, append the previous search results into the list until the next page token yields empty results
3. This list is the final search result across the entire dataset
Note :
SaaS Apps such as SharePoint Online and Shared Drive are not supported'
security:
- Bearer: []
parameters:
- in: query
name: sha1Checksum
required: true
description: Specify the SHA1 value of the file that you want to search. To know how to get SHA1 value of a file, see Search files using checksums.
schema:
type: string
- in: query
name: minCreationTime
description: Filter to list the files which are created after a particular date and time. Format - YYYY-MM-DDTHH:MM:SSZ
schema:
type: string
- in: query
name: maxCreationTime
description: Filter to list the files which are created before a particular date and time. Format - YYYY-MM-DDTHH:MM:SSZ
schema:
type: string
- in: query
name: minModificationTime
description: Specify the minimum cut-off value of modification time to filter the list of files after a specific date and time. Format - YYYY-MM-DDTHH:MM:SSZ
schema:
type: string
- in: query
name: maxModificationTime
description: Specify the maximum cut-off value of modification time to filter the list of files before a specific date and time. Format - YYYY-MM-DDTHH:MM:SSZ
schema:
type: string
- in: query
name: fileType
description: Specify the file extensions by which you intend to filter the file search list. For e.g .txt
style: form
explode: false
schema:
type: array
items:
type: string
- in: query
name: minFileSize
description: Filter to list the files based on their minimum file size (in bytes). All files with a size greater than mentioned value will be listed.
schema:
type: integer
- in: query
name: maxFileSize
description: Filter to list the files based on their maximum file size (in bytes). All files with a size less than mentioned value will be listed.
schema:
type: integer
- in: query
name: dataSource
description: Select a data source from which you want to list the files.
style: form
explode: false
schema:
type: array
items:
type: string
enum:
- Devices
- Google Drive
- OneDrive
- in: query
name: userID
description: Specify the User ID of the user for whom you want to filter and list the file results. Get the ID of a user using the ‘List all users’ API.
style: form
explode: false
schema:
type: array
items:
type: integer
- in: query
name: pageToken
description: The token to access the next page of results. Use the token value received in the previous response's parameter nextPageToken.
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
deviceID:
type: integer
description: The device ID of the device from which the file is backed up.
example: 12345
userID:
type: integer
description: The user ID of the user to which the file belongs.
example: 12345
storageID:
type: integer
description: The storage ID of the storage associated with the user.
example: 1
sha1Checksum:
type: string
description: The SHA1 value of the file.
example: 3ac242e17d884c9aa442aaee324dab316cddefa1
fileName:
type: string
description: The name of the file.
example: abc.txt
fileSize:
type: integer
description: The size of the file in Bytes.
example: 408
creationTime:
type: string
description: The date on which the file was created (in UTC timezone).
example: '2022-07-25T00:00:00Z'
modificationTime:
type: string
description: The date on which the file was last updated (in UTC timezone).
example: '2022-07-25T00:00:00Z'
folderPath:
type: string
description: The absolute path of the file on the user device.
example: C:\Users\johnd\Desktop\scan\
objectID:
type: string
description: The unique identifier of the file to take further action based on the result.
nextPageToken:
type: string
description: The token to access the next page of results. This parameter will be empty for the last page of results.
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
code:
type: integer
enum:
- MDS-1001
- MDS-1002
- MDS-1003
- MDS-1004
- MDS-1005
- MDS-1007
- MDS-1008
- MDS-1009
- MDS-1010
- MDS-1011
message:
type: string
data:
type: object
retryable:
type: boolean
enum:
- false
- true
'401':
description: The request did not include an authentication token or an expired authentication token was supplied.
content:
application/json:
schema:
$ref: '#/components/schemas/FS_HTTP_401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/FS_HTTP_403'
'404':
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/FS_HTTP_404'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/FS_HTTP_500'
operationId: getSearchMdsV1UserFiles
x-operation-id-source: derived
/search/mds/v1/user/emails:
get:
tags:
- Federated Search
summary: Search for emails
description: 'Search for backed-up emails using the email attachments’ SHA1 checksum value and view their details.
While using this API, ensure the following:
1. Make repeated API calls until the next page token is empty
2. For each response, append the previous search results into the list until the next page token yields empty results
3. This list is the final search result across the entire dataset
Note :
SaaS Apps such as SharePoint Online and Shared Drive are not supported'
security:
- Bearer: []
parameters:
- in: query
name: attachmentSha1Checksum
required: true
description: Specify the SHA1 value of the email attachment that you want to search. To know how to get SHA1 value of an email, see Search emails using checksums .
schema:
type: string
- in: query
name: minReceiveTime
description: Filter to list the emails which are received after a particular date and time. Format - YYYY-MM-DDTHH:MM:SSZ
schema:
type: string
- in: query
name: maxReceiveTime
description: Filter to list the emails which are received before a particular date and time. Format - YYYY-MM-DDTHH:MM:SSZ
schema:
type: string
- in: query
name: attachmentType
description: Specify the attachment file extensions by which you intend to filter the email search list.
style: form
explode: false
schema:
type: array
items:
type: string
- in: query
name: minAttachmentSize
description: Filter to list the emails based on their minimum attachment file size (in bytes). All emails with an attachment file size greater than mentioned value will be listed.
schema:
type: integer
- in: query
name: maxAttachmentSize
description: Filter to list the emails based on their maximum attachment file size (in bytes). All emails with an attachment file size less than mentioned value will be listed.
schema:
type: integer
- in: query
name: dataSource
description: Select a data source from which you want to search and list emails.
style: form
explode: false
schema:
type: array
items:
type: string
enum:
- Exchange Online
- Gmail
- Outlook
- in: query
name: userID
description: Specify the User ID of the user for whom you want to filter and list the email results. Get the ID of a user using the ‘List all users’ API.
style: form
explode: false
schema:
type: array
items:
type: integer
- in: query
name: pageToken
description: The token to access the next page of results. Use the token value received in the previous response's parameter nextPageToken.
schema:
type: string
responses:
'200':
description: List of emails.
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
deviceID:
type: integer
description: The device ID of the device from which the email is backed up
example: 12345
userID:
type: integer
description: The user ID of the user to which the email belongs.
example: 12345
storageID:
type: integer
description: The storage ID of the storage associated with the user.
example: 1
attachments:
type: array
description: The attachments of the email.
items:
type: object
properties:
attachmentName:
type: string
example: abc.txt
attachmentSize:
type: integer
example: 500
attachmentSha1Checksum:
type: string
description: The checksum (SHA1) value of the email attachment.
example: AQAAAAEAAAAwQDAwMDAxQDAwMDBA
recieveTime:
type: string
description: The date on which the email was received (in UTC timezone).
example: '2022-07-25T00:00:00Z'
messagePath:
type: string
description: The absolute path of the email on the user device.
example: Outlook Advanced/john.smith@druva.org/Inbox/Inbox/Druva inSync.eml
objectID:
type: string
description: The unique identifier of the email to take further action based on the result.
nextPageToken:
type: string
description: The token to access the next page of results. This parameter will be empty for the last page of results.
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
code:
type: integer
enum:
- MDS-1001
- MDS-1002
- MDS-1003
- MDS-1006
- MDS-1007
- MDS-1008
- MDS-1009
- MDS-1011
- MDS-1012
message:
type: string
data:
type: object
retryable:
type: boolean
enum:
- false
- true
'401':
description: The request did not include an authentication token or an expired authentication token was supplied.
content:
application/json:
schema:
$ref: '#/components/schemas/FS_HTTP_401'
'403':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/FS_HTTP_403'
'404':
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/FS_HTTP_404'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/FS_HTTP_500'
operationId: getSearchMdsV1UserEmails
x-operation-id-source: derived
components:
schemas:
FS_HTTP_500:
type: object
properties:
code:
type: integer
enum:
- MDS-1000
message:
type: string
data:
type: object
retryable:
type: boolean
enum:
- false
- true
FS_HTTP_404:
type: string
enum:
- 404 page not found
FS_HTTP_403:
type: object
properties:
code:
type: integer
enum:
- MDS-1205
message:
type: string
data:
type: object
retryable:
type: boolean
enum:
- false
- true
FS_HTTP_401:
type: object
properties:
code:
type: integer
enum:
- MDS-1201
- MDS-1202
- MDS-1203
- MDS-1204
- MDS-1206
message:
type: string
data:
type: object
retryable:
type: boolean
enum:
- false
- true
securitySchemes:
OAuth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://apis.druva.com/token
scopes:
read: Grants read access
Bearer:
type: apiKey
name: Authorization
in: header