Microsoft Azure SDK for Ruby - Resource Management (preview)

Build Status Code Climate

This project provides a Ruby package for Azure Resource Management (ARM). If you're looking for Azure Service Management (ASM) please refer to this repo

Additional info on Azure deployment models

Azure Resource Management (preview)

  • Authorization Azure Resource Manager role based authorization
  • Batch Azure Batch Management Account & Application operations management
  • CDN Azure Content Delivery Network
  • Cognitive Services Azure Cognitive Services Account management
  • Commerce Azure Commerce Usage aggregates & Rate card management
  • Compute Virtual Machines, Images, Extensions, Availability Sets, etc...
  • Datalake Analytics Azure Datalake Analytics Account, Catalog and Job management
  • Datalake Store Azure Datalake Store Account and FileSystem management
  • DevTest Labs Azure DevTest Labs LabOperations, ArtifactSourceOperations, ArtifactOperations, CostOperations etc...
  • DNS Azure DNS Record Set and Zone management
  • Features Feature Exposure Controls
  • Graph Azure Active Directory Applications, Users, etc...
  • IoTHub Azure IoTHub's Resource Management
  • Key Vault Azure Key Vault's vault management
  • Locks Management locks for Azure Resources
  • Logic Integration Accounts, AccountSchemas, AccountMaps, AccountPartners etc...
  • Machine Learning Azure Machine Learning web services management
  • Media Services Media Services resource management APIs
  • Mobile Engagement Azure Mobile Engagement's Apps, App Collections, Devices management APIs
  • Network Load Balancers, Network Gateways, Security Groups, etc...
  • Notification Hubs Notification Hubs management
  • Policy Policy Assignment & Policy definition operations
  • Powerbi Embedded Azure Powerbi Embedded Workspace & WorkspaceCollection management
  • Redis Redis resource management
  • Resources Resource Groups, Resource Providers, Template Deployments, Operations, etc...
  • Scheduler Manage scheduled jobs in Azure
  • Search Manage Search resources
  • Server Management Azure Server Management Service like node, gateway, powershell etc..
  • SQL Manage Azure SQL resources
  • Storage Account Creation, Usage Operations, etc...
  • Subscriptions Manage Azure subscriptions
  • Traffic Manager Azure Traffic Manager's profile & endpoint management
  • WebApps Manage WebApps, formally known as WebSites

Azure Services

Supported Ruby Versions

  • Ruby 2+

Note: x64 Ruby for Windows is known to have some compatibility issues.

Getting Started with Azure Resource Manager Usage (Preview)

Install the rubygem packages

You can install the azure rubygem packages directly.

gem install azure_mgmt_compute
gem install azure_mgmt_storage
gem install azure_mgmt_resources
gem install azure_mgmt_network

Or use them in your Gemfile.

gem 'azure_mgmt_storage'
gem 'azure_mgmt_compute'
gem 'azure_mgmt_resources'
gem 'azure_mgmt_network'

Be aware the Azure Resource Manager Ruby SDK is in preview and will likely have breaking interface changes in upcoming releases. An increased number in Minor version may indicate breaking changes.


The first step to using the SDK is authentication and permissions. For people unfamilar with Azure this may be one of the more difficult concepts. For a reference on setting up a service principal from the command line see Authenticating a service principal with Azure Resource Manager or Unattended Authentication. For a more robust explanation of authentication in Azure, see Developer’s guide to auth with Azure Resource Manager API.

After creating the service principal, you should have three pieces of information, a client id (GUID), client secret (string) and tenant id (GUID) or domain name (string).

Getting Started Samples

The tests for the libraries should provide a good example of how to get started with the clients. You can also see the readme for each of the libraries Compute, Network, Storage, or Resources.

For more getting started samples go to Azure-Samples. Please make sure to look for the azure_mgmt_* gem versions for samples.

Contribute Code or Provide Feedback

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Development Environment Setup

Download Source Code

To get the source code of the SDK via git just type:

git clone
cd ./azure-sdk-for-ruby

Then, run bundler to install all the gem dependencies:

bundle install

Run Recorded Integration Tests

  • Set the environment variable INTEG_RECORDED = true
  • Run rake arm:spec

Re-Record Integration Tests

  • Set the environment variable INTEG_RECORDED = false or un-set it
  • Copy .env_sample to .env
  • Update .env with your Azure credentials .env is in the .gitignore, so should only reside locally
  • Run specific test using rspec example: bash cd ./azure_mgmt_compute rspec spec/virtual_machines_spec.rb If vcr cassette exist then it'll replay the test otherwise it'll record it.

Generate Documentation

Running the command yard will generate the API documentation in the ./doc directory.

Provide Feedback

If you encounter any bugs with the library please file an issue in the Issues section of the project. Please make sure to label the issues with either arm or asm to help us expedite the process.


Azure CLI Tooling

For documentation on Azure PowerShell. For documentation on Azure CLI.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.