Class: Azure::Consumption::Mgmt::V2018_03_31::ConsumptionManagementClient

Inherits:
MsRestAzure::AzureServiceClient
  • Object
show all
Includes:
MsRestAzure, MsRestAzure::Serialization
Defined in:
lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb

Overview

A service client - single point of access to the REST API.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(credentials = nil, base_url = nil, options = nil) ⇒ ConsumptionManagementClient

Creates initializes a new instance of the ConsumptionManagementClient class.

Parameters:

  • credentials (MsRest::ServiceClientCredentials) (defaults to: nil)

    credentials to authorize HTTP requests made by the service client.

  • base_url (String) (defaults to: nil)

    the base URI of the service.

  • options (Array) (defaults to: nil)

    filters to be applied to the HTTP requests.



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 99

def initialize(credentials = nil, base_url = nil, options = nil)
  super(credentials, options)
  @base_url = base_url || 'https://management.azure.com'

  fail ArgumentError, 'invalid type of credentials input parameter' unless credentials.is_a?(MsRest::ServiceClientCredentials) unless credentials.nil?
  @credentials = credentials

  @usage_details = UsageDetails.new(self)
  @usage_details_by_billing_account = UsageDetailsByBillingAccount.new(self)
  @usage_details_by_department = UsageDetailsByDepartment.new(self)
  @usage_details_by_enrollment_account = UsageDetailsByEnrollmentAccount.new(self)
  @marketplaces = Marketplaces.new(self)
  @marketplaces_by_billing_account = MarketplacesByBillingAccount.new(self)
  @marketplaces_by_department = MarketplacesByDepartment.new(self)
  @marketplaces_by_enrollment_accounts = MarketplacesByEnrollmentAccounts.new(self)
  @get_balances_by_billing_account = GetBalancesByBillingAccount.new(self)
  @reservations_summaries = ReservationsSummaries.new(self)
  @reservations_details = ReservationsDetails.new(self)
  @reservation_recommendations_operations = ReservationRecommendationsOperations.new(self)
  @budgets = Budgets.new(self)
  @operations = Operations.new(self)
  @price_sheet = PriceSheet.new(self)
  @cost_tags_operations = CostTagsOperations.new(self)
  @tags_operations = TagsOperations.new(self)
  @api_version = '2018-03-31'
  @accept_language = 'en-US'
  @long_running_operation_retry_timeout = 30
  @generate_client_request_id = true
  add_telemetry
end

Instance Attribute Details

#accept_languageString

Returns The preferred language for the response.

Returns:

  • (String)

    The preferred language for the response.



28
29
30
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 28

def accept_language
  @accept_language
end

#api_versionString (readonly)

The current version is 2018-03-31.

Returns:

  • (String)

    Version of the API to be used with the client request.



22
23
24
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 22

def api_version
  @api_version
end

#base_urlString

Returns the base URI of the service.

Returns:

  • (String)

    the base URI of the service.



15
16
17
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 15

def base_url
  @base_url
end

#budgetsBudgets (readonly)

Returns budgets.

Returns:



79
80
81
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 79

def budgets
  @budgets
end

#cost_tags_operationsCostTagsOperations (readonly)

Returns cost_tags_operations.

Returns:



88
89
90
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 88

def cost_tags_operations
  @cost_tags_operations
end

#credentialsObject (readonly)

Returns Credentials needed for the client to connect to Azure.

Returns:

  • Credentials needed for the client to connect to Azure.



18
19
20
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 18

def credentials
  @credentials
end

#generate_client_request_idBoolean

generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.

Returns:

  • (Boolean)

    Whether a unique x-ms-client-request-id should be



37
38
39
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 37

def generate_client_request_id
  @generate_client_request_id
end

#get_balances_by_billing_account(billing_account_id, custom_headers: nil) ⇒ Balance (readonly)

Gets the balances for a scope by billingAccountId. Balances are available via this API only for May 1, 2014 or later.

will be added to the HTTP request.

Parameters:

  • billing_account_id (String)

    BillingAccount ID

  • custom_headers (Hash{String => String}) (defaults to: nil)

    A hash of custom headers that

Returns:

  • (Balance)

    operation results.



66
67
68
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 66

def 
  @get_balances_by_billing_account
end

#long_running_operation_retry_timeoutInteger

Operations. Default value is 30.

Returns:

  • (Integer)

    The retry timeout in seconds for Long Running



32
33
34
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 32

def long_running_operation_retry_timeout
  @long_running_operation_retry_timeout
end

#marketplacesMarketplaces (readonly)

Returns marketplaces.

Returns:



53
54
55
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 53

def marketplaces
  @marketplaces
end

#marketplaces_by_billing_accountMarketplacesByBillingAccount (readonly)

Returns marketplaces_by_billing_account.

Returns:



56
57
58
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 56

def 
  @marketplaces_by_billing_account
end

#marketplaces_by_departmentMarketplacesByDepartment (readonly)

Returns marketplaces_by_department.

Returns:



59
60
61
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 59

def marketplaces_by_department
  @marketplaces_by_department
end

#marketplaces_by_enrollment_accountsMarketplacesByEnrollmentAccounts (readonly)

marketplaces_by_enrollment_accounts



63
64
65
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 63

def marketplaces_by_enrollment_accounts
  @marketplaces_by_enrollment_accounts
end

#operationsOperations (readonly)

Returns operations.

Returns:



82
83
84
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 82

def operations
  @operations
end

#price_sheetPriceSheet (readonly)

Returns price_sheet.

Returns:



85
86
87
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 85

def price_sheet
  @price_sheet
end

#reservation_recommendations_operationsReservationRecommendationsOperations (readonly)

reservation_recommendations_operations



76
77
78
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 76

def reservation_recommendations_operations
  @reservation_recommendations_operations
end

#reservations_detailsReservationsDetails (readonly)

Returns reservations_details.

Returns:



72
73
74
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 72

def reservations_details
  @reservations_details
end

#reservations_summariesReservationsSummaries (readonly)

Returns reservations_summaries.

Returns:



69
70
71
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 69

def reservations_summaries
  @reservations_summaries
end

#subscription_idString

Returns Azure Subscription ID.

Returns:

  • (String)

    Azure Subscription ID.



25
26
27
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 25

def subscription_id
  @subscription_id
end

#tags_operationsTagsOperations (readonly)

Returns tags_operations.

Returns:



91
92
93
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 91

def tags_operations
  @tags_operations
end

#usage_detailsUsageDetails (readonly)

Returns usage_details.

Returns:



40
41
42
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 40

def usage_details
  @usage_details
end

#usage_details_by_billing_accountUsageDetailsByBillingAccount (readonly)

Returns usage_details_by_billing_account.

Returns:



43
44
45
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 43

def 
  @usage_details_by_billing_account
end

#usage_details_by_departmentUsageDetailsByDepartment (readonly)

Returns usage_details_by_department.

Returns:



46
47
48
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 46

def usage_details_by_department
  @usage_details_by_department
end

#usage_details_by_enrollment_accountUsageDetailsByEnrollmentAccount (readonly)

usage_details_by_enrollment_account



50
51
52
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 50

def 
  @usage_details_by_enrollment_account
end

Instance Method Details

#get_balances_by_billing_account_async(billing_account_id, custom_headers: nil) ⇒ Concurrent::Promise

Gets the balances for a scope by billingAccountId. Balances are available via this API only for May 1, 2014 or later.

to the HTTP request.

Parameters:

  • billing_account_id (String)

    BillingAccount ID

  • A (Hash{String => String})

    hash of custom headers that will be added

Returns:

  • (Concurrent::Promise)

    Promise object which holds the HTTP response.



227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 227

def (, custom_headers:nil)
  fail ArgumentError, 'api_version is nil' if api_version.nil?
  fail ArgumentError, 'billing_account_id is nil' if .nil?


  request_headers = {}
  request_headers['Content-Type'] = 'application/json; charset=utf-8'

  # Set Headers
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
  request_headers['accept-language'] = accept_language unless accept_language.nil?
  path_template = 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.Consumption/balances'

  request_url = @base_url || self.base_url

  options = {
      middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
      path_params: {'billingAccountId' => },
      query_params: {'api-version' => api_version},
      headers: request_headers.merge(custom_headers || {}),
      base_url: request_url
  }
  promise = self.make_request_async(:get, path_template, options)

  promise = promise.then do |result|
    http_response = result.response
    status_code = http_response.status
    response_content = http_response.body
    unless status_code == 200
      error_model = JSON.load(response_content)
      fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
    end

    result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
    result.correlation_request_id = http_response['x-ms-correlation-request-id'] unless http_response['x-ms-correlation-request-id'].nil?
    result.client_request_id = http_response['x-ms-client-request-id'] unless http_response['x-ms-client-request-id'].nil?
    # Deserialize Response
    if status_code == 200
      begin
        parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
        result_mapper = Azure::Consumption::Mgmt::V2018_03_31::Models::Balance.mapper()
        result.body = self.deserialize(result_mapper, parsed_response)
      rescue Exception => e
        fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
      end
    end

    result
  end

  promise.execute
end

#get_balances_by_billing_account_with_http_info(billing_account_id, custom_headers: nil) ⇒ MsRestAzure::AzureOperationResponse

Gets the balances for a scope by billingAccountId. Balances are available via this API only for May 1, 2014 or later.

will be added to the HTTP request.

Parameters:

  • billing_account_id (String)

    BillingAccount ID

  • custom_headers (Hash{String => String}) (defaults to: nil)

    A hash of custom headers that

Returns:

  • (MsRestAzure::AzureOperationResponse)

    HTTP response information.



213
214
215
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 213

def (, custom_headers:nil)
  (, custom_headers:custom_headers).value!
end

#make_request(method, path, options = {}) ⇒ Hash{String=>String}

Makes a request and returns the body of the response. Example:

request_content = "{'location':'westus','tags':{'tag1':'val1','tag2':'val2'}}"
path = "/path"
options = {
  body: request_content,
  query_params: {'api-version' => '2016-02-01'}
}
result = @client.make_request(:put, path, options)

Parameters:

  • method (Symbol)

    with any of the following values :get, :put, :post, :patch, :delete.

  • path (String)

    the path, relative to #base_url.

  • options (Hash{String=>String}) (defaults to: {})

    specifying any request options like :body.

Returns:

  • (Hash{String=>String})

    containing the body of the response.



146
147
148
149
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 146

def make_request(method, path, options = {})
  result = make_request_with_http_info(method, path, options)
  result.body unless result.nil?
end

#make_request_async(method, path, options = {}) ⇒ Concurrent::Promise

Makes a request asynchronously.

Parameters:

  • method (Symbol)

    with any of the following values :get, :put, :post, :patch, :delete.

  • path (String)

    the path, relative to #base_url.

  • options (Hash{String=>String}) (defaults to: {})

    specifying any request options like :body.

Returns:

  • (Concurrent::Promise)

    Promise object which holds the HTTP response.



171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 171

def make_request_async(method, path, options = {})
  fail ArgumentError, 'method is nil' if method.nil?
  fail ArgumentError, 'path is nil' if path.nil?

  request_url = options[:base_url] || @base_url
  if(!options[:headers].nil? && !options[:headers]['Content-Type'].nil?)
    @request_headers['Content-Type'] = options[:headers]['Content-Type']
  end

  request_headers = @request_headers
  request_headers.merge!({'accept-language' => @accept_language}) unless @accept_language.nil?
  options.merge!({headers: request_headers.merge(options[:headers] || {})})
  options.merge!({credentials: @credentials}) unless @credentials.nil?

  super(request_url, method, path, options)
end

#make_request_with_http_info(method, path, options = {}) ⇒ MsRestAzure::AzureOperationResponse

Makes a request and returns the operation response.

Parameters:

  • method (Symbol)

    with any of the following values :get, :put, :post, :patch, :delete.

  • path (String)

    the path, relative to #base_url.

  • options (Hash{String=>String}) (defaults to: {})

    specifying any request options like :body.

Returns:

  • (MsRestAzure::AzureOperationResponse)

    Operation response containing the request, response and status.



158
159
160
161
162
# File 'lib/2018-03-31/generated/azure_mgmt_consumption/consumption_management_client.rb', line 158

def make_request_with_http_info(method, path, options = {})
  result = make_request_async(method, path, options).value!
  result.body = result.response.body.to_s.empty? ? nil : JSON.load(result.response.body)
  result
end