Restoring, Sending and Saving Files

In this article

    You can restore, send and save backed-up Microsoft Teams files.

    Request

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

    Request Headers

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

    Request Body

    Restore

    To restore backed-up files, 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 information about how to obtain the 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 information on how to obtain a 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

    channelId

    string

    Specifies the ID of the channel whose files you want to restore. Veeam Explorer for Microsoft Teams will restore all files of this channel.

    You do not need to use this property if you use the Files property to specify what files to restore.

    files

    files

    Specifies IDs of files that you want to restore. The files must reside in the same channel.

    You do not need to use this property if you use the channelId property to specify a channel whose files to restore.

    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 specific files of a channel.

    Request Body:

    {

        "restore": {

           "userName": "admin",

           "userPassword": "password",

           "restoreChangedItems": true,

            "restoreMissingItems": true,

           "fileVersion": "last",

           "fileLastVersionAction": "overwrite",

           "files": [{

                   "id": "94e5f006-77da-4c52-8f1e-1051a195844a"

               }, {

                   "id": "1c750ff5-f22f-4c42-8522-97925a5a2e5e"

               }

           ]

       }

    }

    Request Example 2

    The following example shows how to use a device code to restore specific files of a channel.

    Request Body:

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

            "restoreMissingItems": true,

           "fileVersion": "last",

           "fileLastVersionAction": "overwrite",

           "files": [{

                   "id": "94e5f006-77da-4c52-8f1e-1051a195844a"

               }, {

                   "id": "1c750ff5-f22f-4c42-8522-97925a5a2e5e"

               }

           ]
       }
    }

    Request Example 3

    The following example shows how to use a certificate to restore specific files of a channel.

    Request Body:

    {

    "restore":

     {

         "applicationId" : <app_id>,

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

       "applicationCertificatePassword": "xxx",      

       "restoreChangedItems": true,

        "restoreMissingItems": true,

       "fileVersion": "last",

       "fileLastVersionAction": "overwrite",

       "files": [{

               "id": "94e5f006-77da-4c52-8f1e-1051a195844a"

           }, {

               "id": "1c750ff5-f22f-4c42-8522-97925a5a2e5e"

           }

       ]

     }

    }

    Send

    To send backed-up files as attachments 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 files will be sent.

    to

    string

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

    subject

    string

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

    text

    string

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

    channelId

    string

    Specifies the ID of the channel whose files you want to send. Veeam Explorer for Microsoft Teams will send all files of this channel.

    You do not need to use this property if you use the files property to specify what files to send.

    files

    files

    Specifies IDs of files that you want to send. The files must reside in the same channel.

    You do not need to use this property if you use the channelId property to specify a channel whose files to send.

    Request Example 1

    The following example shows how to send backed-up files of a specified channel.

    Request Body:

    {

       "send": {

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

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

           "subject": "teams recovery",

           "text": "sent by rest api",

           "channelId": "19:94e57dbfaa634f999353b374b69b5800@thread.tacv2"

       }

    }

    Request Example 2

    The following example shows how to send the selected backed-up files.

    Request Body:

    {

       "send": {

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

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

           "subject": "teams recovery",

           "text": "sent by rest api",

           "files": [{

                   "id": 94e5f006-77da-4c52-8f1e-1051a195844a

               }, {

                   "id": 1c750ff5-f22f-4c42-8522-97925a5a2e5e

               }

           ]

       }

    }

     

    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 backed-up files, the request body must contain the save action. You can specify the following optional action properties:

    Property

    Type

    Description

    asZip

    boolean

    Defines whether to save a file in a ZIP archive.

    Note: When you save multiple files, the files are always saved in a ZIP archive.

    channelId

    string

    Specifies the ID of the channel whose files you want to save. Veeam Explorer for Microsoft Teams will save all files of this channel.

    You do not need to use this property if you use the files property to specify what files to save.

    Files

    files

    Specifies IDs of files that you want to save. The files must reside in the same channel.

    You do not need to use this property if you use the channelId property to specify a channel whose files to save.

    Request Example 1

    The following example shows how to save backed-up files of a specified channel.

    Request Body:

    {

       "save": {
                   "channelId": "19:94e57dbfaa634f999353b374b69b5800@thread.tacv2"

               }

    }

    Request Example 2

    The following example shows how to save the selected backed-up files.

    Request Body:

    {

       "save": {
                   "files": [{

                   "id": 94e5f006-77da-4c52-8f1e-1051a195844a

               }, {

                   "id": 1c750ff5-f22f-4c42-8522-97925a5a2e5e

               }

           ]

       }

    }

    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 backed-up files of a team with the ID 448c5b66-8dcd-4c75-b636-d3b500bce36f.

    Request:

    POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf738d3d9f-268b-435b-93e2-64e70f8032b6/organization/teams/448c5b66-8dcd-4c75-b636-d3b500bce36f/files/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 backed-up files with the IDs 94e5f006-77da-4c52-8f1e-1051a195844a and 1c750ff5-f22f-4c42-8522-97925a5a2e5e as attachments 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/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",

           "files": [{

                   "id": 94e5f006-77da-4c52-8f1e-1051a195844a

               }, {

                   "id": 1c750ff5-f22f-4c42-8522-97925a5a2e5e

               }

           ]

       }

    }

     

    Response:

    200 OK

    Example 3

    The following request saves backed-up files with the IDs 94e5f006-77da-4c52-8f1e-1051a195844a and 1c750ff5-f22f-4c42-8522-97925a5a2e5e.

    Request:

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

     

    Request Header:

    Authorization: Bearer <Access-Token>

     

    Request Body:

    {

       "save": {

           "files": [{

                   "id": 94e5f006-77da-4c52-8f1e-1051a195844a

               }, {

                   "id": 1c750ff5-f22f-4c42-8522-97925a5a2e5e

               }

           ]

       }

    }

     

    Response:

    200 OK

    I want to report a typo

    There is a misspelling right here:

     

    I want to let the Veeam Documentation Team know about that.