🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

armclient

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

armclient

An easy to use client for Azure Resource Manager

1.1.0
latest
Source
npm
Version published
Maintainers
1
Created
Source

node-armclient

node-armclient is a very simple client to interact with the Azure Resource Manager API.

npm install --save armclient

Usage

Initialization

ES5:

var ArmClient = require('armclient');

var client = ArmClient({ 
  subscriptionId: '111111-2222-3333333',
  auth: ArmClient.clientCredentials({
    tenantId: '444444-555555-666666666',
    clientId: '777777-888888-999999999',
    clientSecret: 'aaaabbbbbccccc' // or servicePrincipalPassword
  })
});

ES6:

import ArmClient, { clientCredentials } from 'armclient';

const client = ArmClient({ 
  subscriptionId: '111111-2222-3333333',
  auth: clientCredentials({
    tenantId: '444444-555555-666666666',
    clientId: '777777-888888-999999999',
    clientSecret: 'aaaabbbbbccccc' // or servicePrincipalPassword
  })
});

If you already have a token for the API (eg: through an OAuth2 consent flow), you can also initialize the client with that token:

import ArmClient, { tokenCredentials } from 'armclient';

const client = ArmClient({ 
  subscriptionId: '111111-2222-3333333',
  auth: ArmClient.tokenCredentials({
    accessToken: 'abcdefg'
  })
});

GET

An example of how you can get resources in your subscription and how you can specify the querystring:

client.get('/resourceGroups/lab/providers/Microsoft.Automation/automationAccounts', { 'api-version': '2015-10-31' })
  .then((res) => {
    console.log(res.body);
    console.log(res.headers);
  })
  .catch((err) => {
    console.log(err);
  });

Or you can also specify the full path:

client.get('https://management.azure.com/subscriptions/111-222-333-444/resourceGroups/lab/providers/Microsoft.Automation/automationAccounts', { 'api-version': '2015-10-31' })
  .then((res) => {
    console.log(res.body);
    console.log(res.headers);
  })
  .catch((err) => {
    console.log(err);
  });

POST/PUT/DELETE

For POST/PUT/DELETE the syntax is the same but you also specify the body of the request (the payload you want to send to the API):

const payload = {
  name: 'abc',
  storageAccount: 'def' 
};

client.post('/resourceGroups/lab/providers/Something/register', { 'api-version': '2015-10-31' }, payload)
  .then((res) => {
    console.log(res.body);
    console.log(res.headers);
  })
  .catch((err) => {
    console.log(err);
  });

client.put('/resourceGroups/lab/providers/Something/register', { 'api-version': '2015-10-31' }, payload)
  .then((res) => {
    console.log(res.body);
    console.log(res.headers);
  })
  .catch((err) => {
    console.log(err);
  });

client.del('/resourceGroups/lab/providers/Something/register', { 'api-version': '2015-10-31' }, payload)
  .then((res) => {
    console.log(res.body);
    console.log(res.headers);
  })
  .catch((err) => {
    console.log(err);
  });

Provider

You can also create a client which is scoped to a Resource Group and a Resource Provider, eg:

client.provider('my-resource-group', 'Microsoft.Compute')
  .put('/virtualMachines/myvm1', { 'api-version': '2015-01-01' }, payload)
  .then((res) => {
    console.log(res.body);
    console.log(res.headers);
  });

Keywords

azure

FAQs

Package last updated on 06 Feb 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts