Sending, Saving, Copying and Restoring OneDrive Items
This section explains how to send, save, copy and restore a backed-up OneDrive item with the specified OneDrive ID.
Request
POST https://<hostname>:4443/v5/RestoreSessions/{restoreSessionId}/Organization/OneDrives/{oneDriveId}/Action |
Request Headers
The request header must contain an authorization token of the current session.
Request Body
Restore to the original location
To restore backed-up OneDrive data to the same production server, the request body must contain the restoreToOriginalLocation action properties:
Property | Type | Description |
---|---|---|
UserName | string | Specifies the user name you want to use for authenticating with the organization. |
UserPassword | string | Specifies the user password you want to use for authenticating with the organization. |
DocumentVersion | DocumentVersion | Specifies, which of the following versions of the OneDrive document will be restored:
|
DocumentAction | DocumentAction | Specifies, which one of the following actions will be performed in case the restore destination contains the restored document:
|
userCode | string | An authentication code. Can be obtained, as described in Getting Device Code. |
ApplicationId | string | An identification number of the Azure AD application that you want to use for a 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 | A password for the SSL certificate being used. |
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:
- Get the certificate content from a PFX file.
- 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:
- <path_to_cert> — path to the PFX file that you want to convert to a Base64 string.
- <path_to_file> — path to a file that that will contain the resulting Base64 string. You will be able to copy the Base64 string from the file and provide the string in the body of a request to Veeam Backup for Microsoft Office 365 RESTful API.
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 for a restore.
{ "restoreToOriginalLocation" : { "username" : "admin", "userpassword" : "12345678", "DocumentVersion" : "last", "documentAction" : "keep" } }
|
Request Example 2
The following example shows how to use a device code for a restore.
{ "restoretoOriginallocation": { "userCode": "C6A9DB737", "DocumentVersion" : "last", "documentAction" : "keep" } } |
Request Example 3
The following example shows how to use a certificate for a restore.
{ "restoretoOriginallocation": { "ApplicationId" : <app_id>, "ApplicationCertificate": "MIIKEgIBAzCCCc4GCSqGSIb3DQEHAaCCCb8Eggm7MIIJtzCCBggGCSqGSIb3DQEHAaCCBfkEggX1MIIF8TCCBe0GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAg7S8DZJqMJuwICB9AEggTYsQotlTjAJnBl4ssVRewseXE+zDTZgr8i0FwJdrUYaR4pnmD/eKkcjIMmxLgBXF/yEUEPpBOUxksmtABLADc6+sY9L7OOPJPPuB+XtMOW0xBlLPHrf4AM18gsAjW116BmMP8Haf4nYAQHJ39idxF+7haVDNSYJJTgs0ijmyNxOJLqYQElHJYE9KshqT0lLDtc007EhyG2fh5/fcMeRg7iQpENkkBhtC86FXS1qmNtkUXNVWy8tnXkY2jy5DTi3Aqvb+1fAJpfbGIQRakYyA6fDWhpg/5pYJWSJCmStrbGpMiUlvuqqiGp1Ivwi+3kou6/DFYxA0SJ5pjUOBaLbibcHNReYU/Rszo+rG2jCKfRaD8O8DSdVeqoXruNtSQtzg0wr7/revx9BSJnq0qfEJXD2j4XO99fbw8i6chHkJbY5ABFKWLGQbx6DOB5kjYQKqNKluoKSUctN0H5I8w+miDOUf9sDu5UoiuMbpXoVewaOo76ftijYLBRcTJVFNVvxXBkScGX0NaQoUUywFpDiD402Y/B2z84ikb+h4WSmJQYEtSQY6VgoO+XdONX5ApNvMsAWwqef8awn4DngKzzFgcyVA7O2UDV6bY6F4Dj9ewd0OUMpqgHGpUBQub+hUvVAUfDIegPXo+2juR7zniNe+TXIWEXyA5frNa47ESTt6BgD4jpfdeG8al7R1BA2J8K/GRnKgwqwRKvoOrgC7rwS81xk6qb9DKZEgQJNrC5w2UOAO505wM/RiFglt5dVSrXr3IrTonRBewWY/lfIGXPPiqPLnO4gQuCa9AD2XSpsQAstbdpWdIuHFwCsmIXCZrlaNYE9pJn1lbliB/rL3DvawHdYlxT+7uRBTiDM+oVynG0EXCIE5uFl0Y71odlXZGK62HeB/LcjmdYCdiRs1RU5hLGw04Ap2RI4aQR3MOlVHEo9nXsXvfYMLpbcvuU2hCMIrmBtUfGaz+YV8M2tkKovRujmhYhDIyO4vRouP/S3lI6WnhSmSBdgO9YNDMGxglMi4aXTGBG2g7Ue3XIEx1hj6Ef5cGaCDH7ZRChc3SEQcGf6JcQirzKPnyWwU8fN8+AO4I88LngyfzPiiDlkiHWZ9hQe7aFa50o8Pu4xxOMokNzZr/HPYhe+ltG0Iz7n/cjSkhLZhXcpyt+qGcrVVuiGpYC5OOZ2lWnZoqsHN1uSoApCTrKudGAMKJ7aWNLTWtDAQyGbHAsmNUBIJxdj8Lh83L9KkcbdNbsgFCaL2gF05lYNizzMG/Ua7NUtZz+lUhXWURbALx/o6slS8WqWsGyMk8u65LqAk/Zzli3oS7GkRaMw8ilYGy3XOzdC5F4PimalbLJK0J844ijvv4nqdH77g76HNylamvDcAt01akomjIqeXaIFeXUrugHypOdCM//y82rmtNYJeflehmtUk2VbGO+4KXnrEkmRUYhL8GY38V1cqN1c3lKp59JIsqrdzopcuGCAKgpUi+EMQ7FcVzCXFmFPgyqbPn5C6N5DATCxBhLKLZc/AcQN4X3MKkONE2U3l2khJg7PaL623cYXgC5K8HJK1DdfkZnS9iBnXPwarh7LpHfgEJ3xw/EVYbud3dUkiA20D90925v0TjQ+jUcZYmqnOmOgf4VghY5oUgLC9gVuKaPLxj4l6DYEjGB2zATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IADEANgBmADcAMwAxADAAYQAtADkANAAzADEALQA0ADMANABkAC0AOAA1AGQAMwAtAGUAMwAzAGEAZQA2ADIAMgAyADcAZgAxMGsGCSsGAQQBgjcRATFeHlwATQBpAGMAcgBvAHMAbwBmAHQAIABFAG4AaABhAG4AYwBlAGQAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByACAAdgAxAC4AMDCCA6cGCSqGSIb3DQEHBqCCA5gwggOUAgEAMIIDjQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQMwDgQIUnOtZxD5VBYCAgfQgIIDYOHSBxukmjmDHzJKupc8NjDzUHOT5siLEhiFN7AFnbdnqZtM3fF11oCQ+uXMFlWNWv42SlKOz6Th0qUj5FsNz6YLCm7kKDAutx1CFAA+UiNXS7Ea15e4IjLS/Rdeo7iGbt15oiHNeOhR/OSK30cbrAjiVIIvIM3c51qoKNNy+t6Of5B1enD7m7c+4Vlfd3pZh1cZw1TLD7Ht9FgizDh2/FwlgsBbkvvkWFTWcIg/+wz8GEMkQZO60iUCwqekFh2KJO27xNF226QLhPiH6dz5TBZOnUbgtz29ehAxZ4ivFJ4aJWI3+L2u1Eu1FdQHKjC4XBp7jbT/1K5KGeqkGYQ4P+wHVdzZYUWmlg2fPshn2DVOLdMFRL9j9+XWdPB+NF1KeiOo2rENYBl0WMonYdn9vgKLXedsQhmpLHsNyLmSCVcaSTBEFyRR6hlxL77flFhpTn1aJ7TiOCqAI1T25npOAQxdMfhwTwhrwaq5lYGr7EyWaOHakxHBQQRuWHun26asGxyz6YPU2vpFj9K1lCZ+TrDmKQS2wYUv/L5kYzDo8T66GukR0XCgpavCC2gzP9stfbgct1uvgDnnDq8KJrR0sEA/v68A03NIUdnyH4wa6HQfMZ8SUfdIOvMYejNUzxqm3en15NAhiAcd3xN7D/EXk1SNn4agZhyPPiqOCSXDhL30AjyNPsPB6kEimGxQKHy+oI90xwtK86t69oOkhGaJTVNulFH2G+mg2end+XeOAcR0Jj8JxGOcuFbhQVAZDGgljCEm94DmCHtYzz6ZP9GwVmgJGuRNGtJn8/5brv+ibL+Zpqe7dG5YY+BXDY2KoRnZSn2QMOKrQOgTu+/oQKspx4o5NCL2dOypP1pFjBNvSqXCxIu4nqOr9dCXc2f63XJ0S7HejUj4Ep3D1Vi6/Nh2mkZWNhiqtI7Cc9QAjo5DRd+OqjCIfP9s8FIXYnA5znyuQFNFVWDJ37AL2y/DFxPQTCosGCKnztZ/Ycurob+/FufJW7/gwmuFD6lgirWaSMaqc5JK2FZVvLS5VDd4k92/WKk+luxUdzEzGn4/PZfGrNJJcbQ6pLZS5c8QRc8rGYormvJIFUn2u4RJaRZGhLzRu2fpmIhWqWgwXtt8XVvrGJ3sdl1lHxPH+Cl+saXK0TTD7jA7MB8wBwYFKw4DAhoEFKcrbAfmDaDdM8n0qonvDola5JVsBBSOBZavEN2v/i1YfP42r9vRTMqXTwICB9A=", "ApplicationCertificatePassword": "xxx", "DocumentVersion" : "last", "documentAction" : "keep" } } |
Send as an email attachment
To send the backed-up OneDrive data from a defined email address to a selected email, the request body must contain the sendTo action properties:
Property | Type | Description |
---|---|---|
From | string | Specifies the email address from which the attachments will be sent. |
To | string | Specifies the email address to which the attachments will be sent. |
Subject | string | Specifies the subject of the email message used for sending the attachments. |
Text | string | Specifies the body of the email message used for sending the attachments. |
For example:
{ "sendTo": {"from": "j_smith@bestsupport.onmicrosoft.com", "to": "r.clark@bestsupport.onmicrosoft.com", "subject": "Support Ticket", "text": "Please find attached the files you requested" } } |
|
To be able to send item attachments you must specify the Veeam Explorer for Microsoft SharePoint email settings by sending PUT HTTPS request to the /VESPEmailSettings URL. For more information, see (PUT) /VESPEmailSettings. |
Copy to a different location
To restore backed-up OneDrive data to a different production server, the request body must contain the copyTo action properties:
Property | Type | Description |
---|---|---|
UserName | string | Specifies the user name you want to use for authenticating with the organization. |
UserPassword | string | Specifies the user password you want to use for authenticating with the organization. |
ChangedItems | boolean | If set to True, indicates that all versions of OneDrive items will be copied. |
DeletedItems | boolean | If set to True, indicates that deleted OneDrive items will be copied. |
RestorePermissions | boolean | If set to True, indicates that the OneDrive items will be restored with all permissions. |
SendSharedLinksNotification | boolean | If set to True, indicates that shared links notifications will be sent. |
DocumentVersion | DocumentVersion | Specifies, which of the following versions of the OneDrive document will be restored:
|
DocumentLastVersionAction | DocumentLastVersionAction | Specifies, which one of the following actions will be performed with the last version of the restored OneDrive document on the production server:
|
For example:
{ "copyTo" : { "username" : "admin", "userpassword" : "12345678", "DocumentVersion" : "last", "documentLastVersionAction" : "Merge", "folder" : "newFolder", "OneDrive" : .. , "changedItems" : true, "deletedItems" : true, "restorePermissions" : true } } |
Save
To save a OneDrive item, the request body must contain the save action:
{ "save": null } |
The request command will place the document to a temporary folder on the Veeam Backup for Microsoft Office 365 server. After that, the document 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.
|
You can use Swagger UI to download the document from the stream by clicking Download action link in the response body. |
Response
The server returns the following response to the client.
Response Codes
A successfully completed operation returns a 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 request body message for the requests with the export action: application/octet-stream. The media type and syntax of the request body message for the requests with the restore actions: null. |
Response Body
None.
Example 1
The following request restores backed-up OneDrive item with a specified ID.
Request: POST https://<hostname>:4443/v5/RestoreSessions/61954db6-7278-4d26-86f7-888bda5a4ec4/Organization/OneDrives/724011c3-a540-4684-b24f-3e2ab4ef6380df26ea7d-6468-4846-bdf5-4e88d871ed11/Action
Request Header: Authorization: Bearer <Access-Token>
Request Body: { "restoreToOriginalLocation" : { "username" : "admin", "userpassword" : "12345678", "DocumentVersion" : "last", "documentAction" : "keep" } }
Response: 200 OK |
Example 2
The following request copies backed-up OneDrive item with a specified ID.
Request: POST https://<hostname>:4443/v5/RestoreSessions/61954db6-7278-4d26-86f7-888bda5a4ec4/Organization/OneDrives/724011c3-a540-4684-b24f-3e2ab4ef6380df26ea7d-6468-4846-bdf5-4e88d871ed11/Action
Request Header: Authorization: Bearer <Access-Token>
Request Body: { "copyTo" : { "username" : "admin", "userpassword" : "12345678", "DocumentVersion" : "last", "documentLastVersionAction" : "Merge", "folder" : "newFolder", "OneDrive" :
{ "id": "724011c3-a540-4684-b24f-3e2ab4ef6380df26ea7d-6468-4846-bdf5-4e88d871ed11", "name": "CopyTo User", "url": "http://server/personal/orgUser", "_links": { "self": { "href": "https://support.north.local:4443/v5/organizations/a602e179-a821-4544-b653-f4aa03b39817/users/00000000-0000-0000-0000-000000000000d6d5c441-6c14-411a-9147-53f31a16d225AQUAAAAAAAUVAAAApgPzBIixQ2kafNW0dAQAAA==/onedrives/724011c3-a540-4684-b24f-3e2ab4ef6380df26ea7d-6468-4846-bdf5-4e88d871ed11" }, "user": { "href": "https://support.north.local:4443/v5/organizations/a602e179-a821-4544-b653-f4aa03b39817/users/00000000-0000-0000-0000-000000000000d6d5c441-6c14-411a-9147-53f31a16d225AQUAAAAAAAUVAAAApgPzBIixQ2kafNW0dAQAAA==" } } }
, "changedItems" : true, "deletedItems" : true, "restorePermissions" : true } }
Response: 200 OK |
Example 3
The following request saves backed-up OneDrive item with a specified ID.
Request: POST https://<hostname>:4443/v5/RestoreSessions/61954db6-7278-4d26-86f7-888bda5a4ec4/Organization/OneDrives/724011c3-a540-4684-b24f-3e2ab4ef6380df26ea7d-6468-4846-bdf5-4e88d871ed11/Action
Request Header: Authorization: Bearer <Access-Token>
Request Body: { “save” : null }
Response: 200 OK |
Example 4
The following request sends backed-up OneDrive item with a specified ID via email.
Request: POST https://<hostname>:4443/v5/RestoreSessions/61954db6-7278-4d26-86f7-888bda5a4ec4/Organization/OneDrives/724011c3-a540-4684-b24f-3e2ab4ef6380df26ea7d-6468-4846-bdf5-4e88d871ed11/Action
Request Header: Authorization: Bearer <Access-Token>
Request Body: { "sendTo": {"from": "j_smith@bestsupport.onmicrosoft.com", "to": "r.clark@bestsupport.onmicrosoft.com", "subject": "Support Ticket", "text": "Please find attached the files you requested" } }
Response: 200 OK |