• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
The Blog of Jorge de la Cruz

The Blog of Jorge de la Cruz

Everything about VMware, Veeam, InfluxData, Grafana, Zimbra, etc.

  • Home
  • VMWARE
  • VEEAM
    • Veeam Content Recap 2021
    • Veeam v11a
      • Veeam Backup and Replication v11a
    • Veeam Backup for AWS
      • Veeam Backup for AWS v4
    • Veeam Backup for Azure
      • Veeam Backup for Azure v3
    • VeeamON 2021
      • Veeam Announces Support for Red Hat Enterprise Virtualization (RHEV/KVM)
      • Veeam announces enhancements for new versions of Veeam Backup for AWS v4/Azure v3/GVP v2
      • VBO v6 – Self-Service Portal and Native Integration with Azure Archive and AWS S3 Glacier
  • Grafana
    • Part I (Installing InfluxDB, Telegraf and Grafana on Ubuntu 20.04 LTS)
    • Part VIII (Monitoring Veeam using Veeam Enterprise Manager)
    • Part XII (Native Telegraf Plugin for vSphere)
    • Part XIII – Veeam Backup for Microsoft Office 365 v4
    • Part XIV – Veeam Availability Console
    • Part XV – IPMI Monitoring of our ESXi Hosts
    • Part XVI – Performance and Advanced Security of Veeam Backup for Microsoft Office 365
    • Part XVII – Showing Dashboards on Two Monitors Using Raspberry Pi 4
    • Part XIX (Monitoring Veeam with Enterprise Manager) Shell Script
    • Part XXII (Monitoring Cloudflare, include beautiful Maps)
    • Part XXIII (Monitoring WordPress with Jetpack RESTful API)
    • Part XXIV (Monitoring Veeam Backup for Microsoft Azure)
    • Part XXV (Monitoring Power Consumption)
    • Part XXVI (Monitoring Veeam Backup for Nutanix)
    • Part XXVII (Monitoring ReFS and XFS (block-cloning and reflink)
    • Part XXVIII (Monitoring HPE StoreOnce)
    • Part XXIX (Monitoring Pi-hole)
    • Part XXXI (Monitoring Unifi Protect)
    • Part XXXII (Monitoring Veeam ONE – experimental)
    • Part XXXIII (Monitoring NetApp ONTAP)
    • Part XXXIV (Monitoring Runecast)
  • Nutanix
  • ZIMBRA
  • PRTG
  • LINUX
  • MICROSOFT

Veeam: Deep Overview of What’s New in the RESTful API of Veeam Backup for Microsoft Office 365 v4 – Beta

19th November 2019 - Written in: veeam

Greetings friends, a few weeks ago I showed you that Veeam had released its Veeam Beta Backup for Microsoft Office 365 v4, and if you are testing it and want to give it a little deeper through API, I think you will like this post.

Enable RestAPI in Veeam Backup for Microsoft Office 365

We’ll have to run several steps before we start downloading anything, or even touching Grafana, from our Veeam Backup for Microsoft Office 365, we’ll go in the Console to the menu icon, and then General Settings:We will go to the sub-menu called REST API and enable the REST service, also here we could install our own SSL, and change the timeout of the tokens and SSL port, in my case I have not changed anything:

With this we can go to our browser and explore the SWAGGER that Veeam Backup for Microsoft Office 365 comes standard, we will find it at https://VBOURL:4443/swagger and should look like this:
Now with this we are ready to continue with the post.

What’s New in RESTful API in Veeam Backup for Microsoft Office 365 v4 – Beta

Comparing this new REST with version 3 of the same one, we found very interesting novelties. As expected, we can configure and review everything related to Object Storage that this version allows, as well as some more new features. Let’s see them one by one.

Account

This new API allows us to view, add, and remove Object Storage accounts:

Let’s see the example of my local FreeNAS account using MinIO, which is amazonS3CompatibleAccount type:

[
  {
    "accountType": "amazonS3CompatibleAccount",
    "userName": "VEEAMS3BUCKETFREENAS",
    "id": "92434b99-ad79-49d1-8c41-71d8a4bac1a4",
    "description": "Object Storage Credentials",
    "_links": {
      "self": {
        "href": "https://192.168.1.31:4443/v4/accounts/92434b99-ad79-49d1-8c41-71d8a4bac1a4"
      }
    }
  }
]

As you can imagine, we could introduce new credentials automatically also using PUT or POST.

AmazonS3CompatibleObjectStorage

As we have three different ways to use Object Storage which are Amazon S3 Compatible, AWS S3, or Microsoft Azure Blob, we will find three different APIs for each of the services, this is S3 Compatible:In my case it’s perfect, since it’s the way I’m using, so I can know some more information about my bucket, it’s true that we will have to introduce in this API our accountID, which we have in the previous API, in addition to the service point, which we have to know, and the region, which by default is usually us-east-1 in on-prem services such as FreeNAS using MinIO:

The result of this API is the following, where it shows us the name of the bucket in VBO, in addition to two additional links to other APIs, the account that we have already seen and the one of more bucket information:

[
  {
    "servicePoint": "freenas.jorgedelacruz.es:9000",
    "customRegionId": "us-east-1",
    "name": "veeam-bucket",
    "location": "us-east-1",
    "region": "us-east-1",
    "links": {
      "self": {
        "href": "https://192.168.1.31:4443/v4/S3CompatibleResources/buckets/veeam-bucket?accountId=92434b99-ad79-49d1-8c41-71d8a4bac1a4&ServicePoint=freenas.jorgedelacruz.es:9000&CustomRegionId=us-east-1"
      },
      "account": {
        "href": "https://192.168.1.31:4443/v4/accounts/92434b99-ad79-49d1-8c41-71d8a4bac1a4"
      }
    }
  }
]

That we would be as follows when we fill everything, we can know more about this bucket:

The result of this API is similar to the above, only detailed for this particular bucket:

{
  "servicePoint": "freenas.jorgedelacruz.es:9000",
  "customRegionId": "us-east-1",
  "name": "veeam-bucket",
  "location": "us-east-1",
  "region": "us-east-1",
  "links": {
    "self": {
      "href": "https://192.168.1.31:4443/v4/S3CompatibleResources/buckets/veeam-bucket?accountId=92434b99-ad79-49d1-8c41-71d8a4bac1a4&ServicePoint=freenas.jorgedelacruz.es:9000&CustomRegionId=us-east-1"
    },
    "account": {
      "href": "https://192.168.1.31:4443/v4/accounts/92434b99-ad79-49d1-8c41-71d8a4bac1a4"
    }
  }
}

Inside the API to see the folders that lodge inside the bucket, if we fill all the fields it would be something like this:

That will return us the exact folder where all our backup is housed inside this bucket, in my case it would be like this:

[
  {
    "path": "Veeam/Backup365/VBO4/",
    "name": "VBO4",
    "links": {
      "self": {
        "href": "https://192.168.1.31:4443/v4/S3CompatibleResources/buckets/veeam-bucket/folders/VBO4?accountId=92434b99-ad79-49d1-8c41-71d8a4bac1a4&ServicePoint=freenas.jorgedelacruz.es:9000&CustomRegionId=us-east-1"
      },
      "account": {
        "href": "https://192.168.1.31:4443/v4/accounts/92434b99-ad79-49d1-8c41-71d8a4bac1a4"
      },
      "bucket": {
        "href": "https://192.168.1.31:4443/v4/S3CompatibleResources/buckets/veeam-bucket?accountId=92434b99-ad79-49d1-8c41-71d8a4bac1a4&ServicePoint=freenas.jorgedelacruz.es:9000&CustomRegionId=us-east-1"
      }
    }
  }
]

If we continue inside this API, we will see one in concrete to see even inside the folder that we have just discovered, we would remain of the following way when filling everything:The result of the call is similar to the previous one, but it would only show us this folder instead of showing several in case we were using the bucket for another backup.

AmazonS3ObjectStorage

In this new API and its different methods we will be able to use exactly the same as all the previous API, but it is dedicated exclusively to the buckets that we host in Amazon S3, there is no API or different method, so if you have doubts use the section above.

AzureObjectStorage

In this new API and its different methods, we will be able to use exactly the same as all the previous API, but it is dedicated exclusively to the containers that we host in Azure blob, there is no API or a different method, so if you have doubts use the section above. It is true that what in Amazon is called bucket, here is called container, otherwise, everything is the same.

BackupRepository

This API is not new, only has improved the result of it, since we remember that now we can combine a local repository with one of Object Storage, storing the local metadata and cache, and the object storage metadata and information in turn, so we can expect that the result of the API is different.

Result of BackupRepository v3

In the query result we will be able to see the capacity in bytes, the free space, id, name, path, and the retention:

[
  {
    "capacityBytes": 107370971136,
    "freeSpaceBytes": 96614940672,
    "id": "992ddd4c-7572-4332-9958-1425fa261f1b",
    "name": "NTFS-REPO-001",
    "description": "VBO Backup Repo on NTFS",
    "path": "E:\\REPO001",
    "retentionType": "ItemLevel",
    "retentionPeriodType": "Yearly",
    "yearlyRetentionPeriod": "Years3",
    "retentionFrequencyType": "Daily",
    "dailyTime": "07:00:00",
    "dailyType": "Everyday",
    "proxyId": "b710e407-b498-4e71-846d-facaba0f26fa",
    "_links": {
      "self": {
        "href": "https://192.168.1.32:4443/v3/backuprepositories/992ddd4c-7572-4332-9958-1425fa261f1b"
      },
      "proxy": {
        "href": "https://192.168.1.32:4443/v3/proxies/b710e407-b498-4e71-846d-facaba0f26fa"
      }
    }
  }
]

Result of BackupRepository v4

The result in this new version is much more complete, we can see the first five results talk about the new functionality of object storage, as is the ID of the object storage, where we store the cache, whether encryption is enabled, plus the ID of the encryption key, and whether it is unsynchronized or not, otherwise everything the same as before:

[
  {
    "objectStorageId": "830155a2-b6f7-4f9c-9a5b-8329aba888f0",
    "objectStorageCachePath": "E:\\VEEAM-REPO-001",
    "objectStorageEncryptionEnabled": true,
    "encryptionKeyId": "f0fe962d-00d0-4d39-8df4-392013828fc9",
    "isOutOfSync": false,
    "capacityBytes": 107237863424,
    "freeSpaceBytes": 106852098048,
    "id": "e0f7657e-2a7e-4d37-857c-e25d245484c0",
    "name": "VEEAM-REPO-001",
    "description": "Local Backup Repository 001",
    "retentionType": "ItemLevel",
    "retentionPeriodType": "Yearly",
    "yearlyRetentionPeriod": "Keep",
    "retentionFrequencyType": "Daily",
    "dailyTime": "23:00:00",
    "dailyType": "Everyday",
    "proxyId": "a28ccf22-2de3-436e-88ed-6e91878499f9",
    "_links": {
      "self": {
        "href": "https://192.168.1.31:4443/v4/backuprepositories/e0f7657e-2a7e-4d37-857c-e25d245484c0"
      },
      "proxy": {
        "href": "https://192.168.1.31:4443/v4/proxies/a28ccf22-2de3-436e-88ed-6e91878499f9"
      }
    }
  }
]

EncryptionKey

This new API allows us to view, create and remove Encryption Keys for our Object Storage in a very simple way:For example, if we wanted to see all the Encryption Keys, this would be the result:

[
  {
    "id": "f0fe962d-00d0-4d39-8df4-392013828fc9",
    "description": "Object Storage Password to Encrypt",
    "_links": {
      "self": {
        "href": "https://192.168.1.31:4443/v4/encryptionkeys/f0fe962d-00d0-4d39-8df4-392013828fc9"
      }
    }
  }
]

GlobalRetentionExclusionSettings

This new API allows us to see if we have excluded the contacts and calendar from the retention rules, for example, imagine that we have a retention rule of 5 years, if we do not activate this and we have contacts created 10 years ago, they will not be able to recover them from our backup, this is the API:That’s what it would look like if we executed it:

{
  "contacts": false,
  "calendar": false
}

Luckily we don’t need to be an API expert, these values can be changed in the GUI as well:

ObjectStorageRepository

Being one of the most important features of this version, it is not surprising that we have a new API and methods for this need, specifically, these are all methods:

If we launch the GET objectstoragerepositories method we can see something similar to this, where we find the bucket, servicepoint, customRegionId, bucket name, region, within the section we can see the S3 folder, along with the name of the logical repository in VBO, as well as the size consumed (very important) in this bucket, and the type of object storage what it is:

[
  {
    "bucket": {
      "servicePoint": "freenas.jorgedelacruz.es:9000",
      "customRegionId": "us-east-1",
      "name": "veeam-bucket",
      "location": "us-east-1",
      "region": "us-east-1"
    },
    "s3Folder": "VBO4",
    "id": "830155a2-b6f7-4f9c-9a5b-8329aba888f0",
    "name": "VEEAM-OBJECT-001",
    "description": "Object Storage Repository 001",
    "accountId": "92434b99-ad79-49d1-8c41-71d8a4bac1a4",
    "sizeLimitEnabled": false,
    "usedSpaceGB": 4067721842,
    "type": "AmazonS3Compatible",
    "_links": {
      "self": {
        "href": "https://192.168.1.31:4443/v4/objectstoragerepositories/830155a2-b6f7-4f9c-9a5b-8329aba888f0"
      },
      "account": {
        "href": "https://192.168.1.31:4443/v4/accounts/92434b99-ad79-49d1-8c41-71d8a4bac1a4"
      },
      "bucket": {
        "href": "https://192.168.1.31:4443/v4/S3CompatibleResources/buckets/veeam-bucket?accountId=92434b99-ad79-49d1-8c41-71d8a4bac1a4&ServicePoint=freenas.jorgedelacruz.es:9000&CustomRegionId=us-east-1"
      },
      "folder": {
        "href": "https://192.168.1.31:4443/v4/S3CompatibleResources/buckets/veeam-bucket/folders/VBO4?accountId=92434b99-ad79-49d1-8c41-71d8a4bac1a4&ServicePoint=freenas.jorgedelacruz.es:9000&CustomRegionId=us-east-1"
      }
    }
  }
]

With this, we have already looked at all the news that includes the new Veeam Backup for Microsoft Office 365 v4, ne beta phase for now.

As you can imagine, I’m already working to have Grafana’s Dashboard updated for when the product is GA. I hope it serves you.

Filed Under: veeam Tagged With: vbo 4, vbo v4, veeam, veeam backup office 365 s3, veeam backup s3 compatible, veeam office 365 blob, veeam office 365 object storage

Reader Interactions

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

  • E-mail
  • GitHub
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

Posts Calendar

November 2019
M T W T F S S
 123
45678910
11121314151617
18192021222324
252627282930  
« Oct   Dec »

Disclaimer

All opinions expressed on this site are my own and do not represent the opinions of any company I have worked with, am working with, or will be working with.

Copyright © 2025 · The Blog of Jorge de la Cruz