Veeam backup API
This is a wrapper for the Veeam Service Provider Console rest API. You can see the API endpoints here
Currently only the GET requests to get a list of tenants and backup job reports are implemented.
Installation
Add this line to your application's Gemfile:
gem 'veeam'And then execute:
> bundle installOr install it yourself as:
> gem install veeamUsage
Before you start making the requests to API provide the client id and client secret and email/password using the configuration wrapping.
require 'veeam'
# use do block
Veeam.configure do |config|
config.endpoint = ENV["VEEAM_API_HOST"]
config.access_token = ENV["VEEAM_API_KEY"]
config.page_size = 100
end
# or configure with options hash
@client = Veeam.client({ logger: Logger.new(CLIENT_LOGGER) })
client = Veeam.client
client.login
companies = client.companies
companies.each do |t|
puts "#{t.name}"
endResources
Authentication
# setup configuration
#
client.login| Resource | API endpoint | Description |
|---|---|---|
| .login | /api/v3/about | to check if creentials are correct |
About
Endpoint returns general information about the currently installed version of Veeam Service Provider Console.
puts client.about.serverVersion| Resource | API endpoint |
|---|---|
| .about | /api/v3/about |
Companies
Endpoint for companies related requests
companies = client.companies| Resource | API endpoint |
|---|---|
| .companies | /api/v3/organizations/companies |
| .company | /api/v3/organizations/companies/{id} |
| TODO other endpoints | ... |
Infrastructure
Get list of backup servers
server = client.backup_server(id)| Resource | API endpoint |
|---|---|
| .backup_servers | /api/v3/backupServers |
| .backup_server | /api/v3/backupServers/{id} |
| TODO other endpoints | ... |
Alarms
This resource collection represents Veeam Service Provider Console alarms.
client.active_alarms.each do |alarm|
if alarms.alarmTemplateUid.eql? "<templateUid>"
:
end
end| Resource | API endpoint |
|---|---|
| .all_triggered_alarms .active_alarms | /api/v3/alarms/active |
| .triggered_alarm .active_alarm | /api/v3/alarms/active/#{alarm_id} |
| .triggered_alarm_history .alarm_history | /api/v3/alarms/active#{alarm_id}/history |
| .all_alarm_templates .alarm_templates | /api/v3/alarms/templates |
| .alarm_template | /api/v3/alarms/templates/#{template_id} |
| .alarm_status_changes .alarm_template_events | /api/v3/alarms/templates/#{template_id}/events |
Contributing
Bug reports and pull requests are welcome on GitHub.
License
The gem is available as open source under the terms of the MIT License.