azure-retail-prices
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

azure-retail-prices

npm version npm downloads MIT License Build Status Coverage Status

This is wrapper of Azure Retail Prices API.
You can easily get the retail price of Azure without authenticating.

Installation

# via npm
npm install --save azure-retail-prices

# via yarn
yarn add azure-retail-prices

Examples

After having cloned this repository, run the following commands:

cd example/
npm install
npm run import-sample
# # or
# npm run require-sample

Usage

import arp from "azure-retail-prices";
// // or
// const arp = require("azure-retail-prices").default;

async function getRetailPrices() {
  // without currencyCode option (It will return USD)
  let retailPrices = await arp({
    serviceName: "Virtual Machines",
    location: "EU West",
    priceType: "Reservation",
  });
  console.dir(retailPrices);

  // with currencyCode option
  retailPrices = await arp(
    {
      serviceName: "Virtual Machines",
      location: "EU West",
      priceType: "Reservation",
    },
    "JPY"
  );
  console.dir(retailPrices);
}

Sample calls

Here are some examples:

// Compute resources
//  - Response count: 150K+
//  - Response time: 25 minutes
const retailPrices = await arp({
  serviceFamily: "Compute",
});

// Virtual machines
//  - Response count: 130K+
//  - Response time: 20 minutes
const retailPrices = await arp({
  serviceName: "Virtual Machines",
});

// Virtual machines located "EU West"
//  - Response count: 4K+
//  - Response time: 40 seconds
const retailPrices = await arp({
  serviceName: "Virtual Machines",
  location: "EU West",
});

// Virtual machines located "EU West" with currency in EUR
//  - Response count: 4K+
//  - Response time: 40 seconds
const retailPrices = await arp(
  {
    serviceName: "Virtual Machines",
    location: "EU West",
  },
  "EUR"
);

// Reserved virtual machines located "EU West"
//  - Response count: 700+
//  - Response time: 8 seconds
const retailPrices = await arp({
  serviceName: "Virtual Machines",
  location: "EU West",
  priceType: "Reservation",
});

// Identify by unique ID
//  - Response count: 2
//  - Response time: 1 second
const retailPrices = await arp({
  meterId: "000a794b-bdb0-58be-a0cd-0c3a0f222923",
});

Response examples

Here's a sample response, without reservation prices.

[
  {
    "currencyCode": "USD",
    "tierMinimumUnits": 0.0,
    "retailPrice": 0.176346,
    "unitPrice": 0.176346,
    "armRegionName": "westeurope",
    "location": "EU West",
    "effectiveStartDate": "2020-08-01T00:00:00Z",
    "meterId": "000a794b-bdb0-58be-a0cd-0c3a0f222923",
    "meterName": "F16s Spot",
    "productId": "DZH318Z0BQPS",
    "skuId": "DZH318Z0BQPS/00TG",
    "productName": "Virtual Machines FS Series Windows",
    "skuName": "F16s Spot",
    "serviceName": "Virtual Machines",
    "serviceId": "DZH313Z7MMC8",
    "serviceFamily": "Compute",
    "unitOfMeasure": "1 Hour",
    "type": "DevTestConsumption",
    "isPrimaryMeterRegion": true,
    "armSkuName": "Standard_F16s"
  }
]

Here's a sample response with reservation prices and term in the response.

[
  {
    "currencyCode": "USD",
    "tierMinimumUnits": 0.0,
    "reservationTerm": "1 Year",
    "retailPrice": 25007.0,
    "unitPrice": 25007.0,
    "armRegionName": "southcentralus",
    "location": "US South Central",
    "effectiveStartDate": "2020-08-01T00:00:00Z",
    "meterId": "0016083a-928f-56fd-8eeb-39287dcf676d",
    "meterName": "E64 v4",
    "productId": "DZH318Z0D1L7",
    "skuId": "DZH318Z0D1L7/018J",
    "productName": "Virtual Machines Ev4 Series",
    "skuName": "E64 v4",
    "serviceName": "Virtual Machines",
    "serviceId": "DZH313Z7MMC8",
    "serviceFamily": "Compute",
    "unitOfMeasure": "1 Hour",
    "type": "Reservation",
    "isPrimaryMeterRegion": true,
    "armSkuName": "Standard_E64_v4"
  }
]

Filters

You can append the filters to function call, as shown in the Sample calls.

Filters are supported for the following fields:

Fields Example Values Definition
armRegionName westeurope ARM region where the service is available. This version only supports prices on Commercial Cloud.
location EU West Azure data center where the resource is deployed
meterId 000a794b-bdb0-58be-a0cd-0c3a0f222923 Unique identifier of the resource
meterName F16s Spot Name of the meter
productId DZH318Z0BQPS UniqueID of the product
skuId DZH318Z0BQPS/00TG UniqueID for the SKU
productName Virtual Machines FS Series Windows Product name
skuName F16s Spot SKU name
serviceName Virtual Machines Name of the service
serviceId DZH313Z7MMC8 UniqueID of the service
serviceFamily Compute Service family of the SKU
priceType DevTestConsumption Meter consumption type. Other types are Reservation, Consumption.
armSkuName Standard_F16s SKU name registered in Azure

Supported currencies

You append the currency code to the API endpoint, as shown in the API sample call.

Currency code Detail
USD US dollar
AUD Australian dollar
BRL Brazilian real
CAD Canadian dollar
CHF Swiss franc
CNY Chinese yuan
DKK Danish krone
EUR Euro
GBP British pound
INR Indian rupee
JPY Japanese yen
KRW Korean won
NOK Norwegian krone
NZD New Zealand dollar
RUB Russian ruble
SEK Swedish krona
TWD Taiwan dollar

License

This library is licensed under the MIT License.

Package Sidebar

Install

npm i azure-retail-prices

Weekly Downloads

0

Version

1.1.2

License

MIT

Unpacked Size

15.8 kB

Total Files

6

Last publish

Collaborators

  • ittkm