class Azure::Armrest::Billing::UsageService

Public Class Methods

new(configuration, options = {}) click to toggle source

Creates and returns a new UsageService object.

Calls superclass method Azure::Armrest::ArmrestService::new
# File lib/azure/armrest/billing/usage_service.rb, line 7
def initialize(configuration, options = {})
  options = options.merge('api_version' => '2015-06-01-preview')
  super(configuration, 'subscriptions', 'Microsoft.Commerce', options)
end

Public Instance Methods

list(options = {}) click to toggle source

List usage details. The options hash may include the following filters:

:reportedStartTime        # e.g. 2016-05-30T00:00:00Z. Mandatory.
:reportedEndTime          # e.g. 2016-06-01T00:00:00Z. Mandatory.
:aggregationGranularity   # Either 'Daily' or 'Hourly'. Default is Daily.
:showDetails              # Either true or false. Default is true.
:continuationToken        # Token received from previous call. No default.

You may also pass ‘:all => true’ to retrieve all records instead of dealing with continuation tokens yourself. By default Azure will only return the first 1000 records.

The :reportedStartTime and :reportedEndTime values should be in UTC + iso8601 format. For “Daily” aggregation, the time should be set to midnight. For “Hourly” aggregation, only the hour should be set, with minutes and seconds set to “00”.

Example:

require 'azure-armrest'
require 'time'

conf = Azure::Armrest::Configuration.new(<your_credentials>)
bill = Azure::Armrest::Billing::UsageService.new(conf)

options = {
  :reportedStartTime      => Time.new(2016,10,1,0,0,0,0).utc.iso8601,
  :reportedEndTime        => Time.new(2016,10,31,0,0,0,0).utc.iso8601,
  :showDetails            => true,
  :aggregationGranularity => 'Daily',
  :all                    => true
}

list = bill.list(options)
# File lib/azure/armrest/billing/usage_service.rb, line 48
def list(options = {})
  url = build_url(options)
  response = rest_get(url)

  if options[:all]
    get_all_results(response)
  else
    Azure::Armrest::ArmrestCollection.create_from_response(response, Azure::Armrest::Billing::Usage)
  end
end

Private Instance Methods

build_url(options = {}) click to toggle source
# File lib/azure/armrest/billing/usage_service.rb, line 61
def build_url(options = {})
  url = File.join(base_url, 'providers', @provider, 'UsageAggregates')
  url << "?api-version=#{@api_version}"

  options.each do |key, value|
    url << "&#{key}=#{value}"
  end

  url
end