This is an archive version of the document. To get the most up-to-date information, see the current version.

Restoring, Sending and Saving Files

You can restore, send and save a backed-up Microsoft Teams file with the specified ID.

Request

POST https://<hostname>:4443/v5/RestoreSessions/{restoreSessionId}/organization/teams/{teamId}/files/{fileId}/action

Request Headers

The request header must contain an authorization token of the current session.

Request Parameters

The following parameters must be specified in the URL of the request:

Parameter

Type

Description

restoreSessionId

string

Specifies the identification number of the restore session. For more information on how to get this parameter, see Getting Restore Sessions.

teamId

string

Specifies the identification number of the team. For more information on how to get this parameter, see Getting Teams.

fileId

string

Specifies the identification number of the file. For more information on how to get this parameter, see Getting Files.

Request Body

Restore

To restore a specific backed-up file, the request body must contain the restore action properties:

Property

Type

Description

userName

string

Specifies the user name that you want to use for authenticating with the organization.

This property is required if you want to use credentials of a user account for data restore.

userPassword

string

Specifies the password of the user account that you want to use for authenticating with the organization.

This property is required if you want to use credentials of a user account for data restore.

userCode

string

Specifies the authentication code. For more information on how to get a device code, see Getting Device Code.

This property is required if you want to use a device code for data restore.

applicationId

string

Specifies the identification number of an Azure AD application that you want to use for data restore.

This property is required if you want to use a certificate for data restore.

applicationCertificate

base64

Specifies the SSL certificate configured for the Azure AD application that you want to use for data restore.

You must provide the certificate as a Base64 string. For more information on how to obtain a Base64 string, see Converting Certificate to Base64 String.

applicationCertificatePassword

string

Specifies the password for the SSL certificate that you want to use for data restore.

restoreChangedItems

boolean

Defines whether to restore items that have changed in the original location since the time when the backup was created.

restoreMissingItems

boolean

Defines whether to restore items that are missing in the original location.

fileVersion

fileVersion

Specifies what versions of files to restore. Possible values:

  • all
  • last

fileLastVersionAction

fileLastVersionAction

Specifies what action to perform with the file in the original location when restoring the latest version of the file in the backup. Possible values:

  • overwrite
  • merge

Converting Certificate to Base64 String

If you want to use a certificate to access an Azure AD application, you must provide the certificate as a Base64 string. To obtain a Base64 string, perform the following steps:

  1. Get the certificate content from a PFX file.
  2. Convert the certificate to a Base64 string.

To do this, you can use the following PowerShell cmdlets:

$pfx_cert = get-content '<path_to_cert>' -Encoding Byte

[System.Convert]::ToBase64String($pfx_cert) | Out-File '<path_to_file>'

where:

For example:

$pfx_cert = get-content 'C:\cert.pfx' -Encoding Byte

[System.Convert]::ToBase64String($pfx_cert) | Out-File 'C:\base64.txt'

Request Example 1

The following example shows how to use a user name and password to restore a file.

Request Body:

{

    "restore": {

       "userName": "admin",

       "userPassword": "password",

       "restoreChangedItems": true,

        "restoreMissingItems": true,

       "fileVersion": "last",

       "fileLastVersionAction": "overwrite"

   }

}

Request Example 2

The following example shows how to use a device code to restore a file.

Request Body:

{
    "restore": {
       "userCode": "C6A9DB737",
       "restoreChangedItems": true,

        "restoreMissingItems": true,

       "fileVersion": "last",

       "fileLastVersionAction": "overwrite"
   }
}

Request Example 3

The following example shows how to use a certificate to restore a file.

Request Body:

{

"restore":

 {

     "applicationId" : <app_id>,

     "applicationCertificate": "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",

   "applicationCertificatePassword": "xxx",      

   "restoreChangedItems": true,

    "restoreMissingItems": true,

   "fileVersion": "last",

   "fileLastVersionAction": "overwrite"

 }

}

Send

To send a backed-up file as an attachment in an email message, the request body must contain the send action properties:

Property

Type

Description

from

string

Specifies the email address from which the restored file will be sent.

to

string

Specifies the email address to which the restored file will be sent.

subject

string

Specifies the subject of the email message used for sending the restored file.

text

string

Specifies the body of the email message used for sending the restored file.

For example:

Request Body:

{

   "send": {

       "from": "admin@tech.com",

       "to": "user@tech.com",

       "subject": "teams recovery",

       "text": "sent by rest api"

   }

}

 

Restoring, Sending and Saving Files Note

If you omit the from property, the default sender email address specified in Veeam Explorer for Microsoft Teams email settings will be used. To specify Veeam Explorer for Microsoft Teams email settings, send the PUT HTTPS request to the /VETEmailSettings URL. For more information, see Editing Notification Settings.

Save

To save a backed-up Microsoft Teams file, the request body must contain the save action property:

Property

Type

Description

asZip

boolean

If set to true, indicates that the Microsoft Teams file will be saved in a Zip archive.

For example, "asZip": true.

The request command will place the file to a temporary folder on the Veeam Backup for Microsoft Office 365 server. After that, the file will be transferred as application/octet-stream media to the client. To download, read or perform other actions with the octet-stream, use features of programming languages.

Restoring, Sending and Saving Files Tip

You can use Swagger UI to download the document from the stream by clicking Download action link in the response body. For more information, see Evaluation in Swagger UI.

Response

The server returns the following response to the client.

Response Codes

A successfully completed operation returns response code 200 OK.

Response Headers

The response to this request contains the following headers. The response may also include additional standard HTTPS headers.

Header

Description

Content-length

The length of the response body.

Content-type

The media type and syntax of the response body message for the requests with the export and save actions: application/octet-stream.

The media type and syntax of the response body message for the requests with the restore and send actions: null.

Response Body

In the response body, the server returns the following data:

The response body for the restore operation has the following properties:

Property

Type

Description

totalItemsCount

integer

Total number of items in the backup.

restoredItemsCount

integer

Number of items restored from the backup.

failedItemsCount

integer

Number of items for which the restore operation failed.

skippedItemsCount

integer

Number of items that were not changed or missing in the original location. Such items are skipped during the restore operation.

restoreIssues

Array of string values

Description of issues that occurred during the restore operation.

Examples

Example 1

The following request restores a backed-up file with the ID 9d939133-0c2c-4f8f-b317-6a3270229d32.

Request:

POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf738d3d9f-268b-435b-93e2-64e70f8032b6/organization/teams/448c5b66-8dcd-4c75-b636-d3b500bce36f/files/9d939133-0c2c-4f8f-b317-6a3270229d32/action

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

    "restore": {

       "userName": "admin",

       "userPassword": "password",

       "restoreChangedItems": true,

        "restoreMissingItems": true,

       "fileVersion": "last",

       "fileLastVersionAction": "overwrite"

   }

}

 

Response:

200 OK

 

Response Body:

{

"totalItemsCount": 38,

"restoredItemsCount": 3,

"failedItemsCount": 0,

"skippedItemsCount": 35,

"restoreIssues": []

}

Example 2

The following request sends a backed-up file as an attachment in an email message.

Request:

POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf738d3d9f-268b-435b-93e2-64e70f8032b6/organization/teams/448c5b66-8dcd-4c75-b636-d3b500bce36f/files/9d939133-0c2c-4f8f-b317-6a3270229d32/action

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

   "send": {

       "from": "admin@tech.com",

       "to": "user@tech.com",

       "subject": "teams recovery",

       "text": "sent by rest api"

   }

}

 

Response:

200 OK

Example 3

The following request saves a backed-up file.

Request:

POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf738d3d9f-268b-435b-93e2-64e70f8032b6/organization/teams/448c5b66-8dcd-4c75-b636-d3b500bce36f/files/9d939133-0c2c-4f8f-b317-6a3270229d32/action

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

"save" :

{

 "asZip" : true

}

}

 

Response:

200 OK