azure_mgmt_consumption 0.15.2 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/lib/2017-04-24-preview/generated/azure_mgmt_consumption/consumption_management_client.rb +4 -1
  3. data/lib/2017-04-24-preview/generated/azure_mgmt_consumption/operations.rb +15 -13
  4. data/lib/2017-04-24-preview/generated/azure_mgmt_consumption/usage_details.rb +15 -13
  5. data/lib/2017-11-30/generated/azure_mgmt_consumption.rb +12 -5
  6. data/lib/2017-11-30/generated/azure_mgmt_consumption/consumption_management_client.rb +12 -1
  7. data/lib/2017-11-30/generated/azure_mgmt_consumption/models/datagrain.rb +16 -0
  8. data/lib/2017-11-30/generated/azure_mgmt_consumption/models/reservation_details.rb +187 -0
  9. data/lib/2017-11-30/generated/azure_mgmt_consumption/models/reservation_details_list_result.rb +56 -0
  10. data/lib/2017-11-30/generated/azure_mgmt_consumption/models/reservation_summaries.rb +205 -0
  11. data/lib/2017-11-30/generated/azure_mgmt_consumption/models/reservation_summaries_list_result.rb +57 -0
  12. data/lib/2017-11-30/generated/azure_mgmt_consumption/operations.rb +15 -13
  13. data/lib/2017-11-30/generated/azure_mgmt_consumption/reservations_details.rb +129 -0
  14. data/lib/2017-11-30/generated/azure_mgmt_consumption/reservations_summaries.rb +135 -0
  15. data/lib/2017-11-30/generated/azure_mgmt_consumption/usage_details.rb +15 -13
  16. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption.rb +42 -0
  17. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/budgets.rb +384 -0
  18. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/consumption_management_client.rb +138 -0
  19. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/budget.rb +160 -0
  20. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/budget_time_period.rb +58 -0
  21. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/budgets_list_result.rb +57 -0
  22. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/current_spend.rb +59 -0
  23. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/error_details.rb +59 -0
  24. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/error_response.rb +48 -0
  25. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/notification.rb +115 -0
  26. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/operation.rb +59 -0
  27. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/operation_display.rb +72 -0
  28. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/operation_list_result.rb +103 -0
  29. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/operator_type.rb +17 -0
  30. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/proxy_resource.rb +84 -0
  31. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/models/time_grain_type.rb +17 -0
  32. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/module_definition.rb +9 -0
  33. data/lib/2017-12-30-preview/generated/azure_mgmt_consumption/operations.rb +216 -0
  34. data/lib/2018-01-31/generated/azure_mgmt_consumption.rb +62 -0
  35. data/lib/2018-01-31/generated/azure_mgmt_consumption/budgets.rb +993 -0
  36. data/lib/2018-01-31/generated/azure_mgmt_consumption/consumption_management_client.rb +155 -0
  37. data/lib/2018-01-31/generated/azure_mgmt_consumption/marketplaces.rb +521 -0
  38. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/budget.rb +171 -0
  39. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/budget_time_period.rb +58 -0
  40. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/budgets_list_result.rb +101 -0
  41. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/category_type.rb +16 -0
  42. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/current_spend.rb +59 -0
  43. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/datagrain.rb +16 -0
  44. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/error_details.rb +59 -0
  45. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/error_response.rb +48 -0
  46. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/filters.rb +106 -0
  47. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/marketplace.rb +375 -0
  48. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/marketplaces_list_result.rb +101 -0
  49. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/meter_details.rb +122 -0
  50. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/notification.rb +139 -0
  51. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/operation.rb +59 -0
  52. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/operation_display.rb +72 -0
  53. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/operation_list_result.rb +103 -0
  54. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/operator_type.rb +17 -0
  55. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/price_sheet_properties.rb +134 -0
  56. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/price_sheet_result.rb +112 -0
  57. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/proxy_resource.rb +84 -0
  58. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/reservation_details.rb +187 -0
  59. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/reservation_details_list_result.rb +100 -0
  60. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/reservation_summaries.rb +205 -0
  61. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/reservation_summaries_list_result.rb +101 -0
  62. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/resource.rb +91 -0
  63. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/time_grain_type.rb +17 -0
  64. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/usage_detail.rb +355 -0
  65. data/lib/2018-01-31/generated/azure_mgmt_consumption/models/usage_details_list_result.rb +101 -0
  66. data/lib/2018-01-31/generated/azure_mgmt_consumption/module_definition.rb +9 -0
  67. data/lib/2018-01-31/generated/azure_mgmt_consumption/operations.rb +216 -0
  68. data/lib/2018-01-31/generated/azure_mgmt_consumption/price_sheet.rb +246 -0
  69. data/lib/2018-01-31/generated/azure_mgmt_consumption/reservations_details.rb +449 -0
  70. data/lib/2018-01-31/generated/azure_mgmt_consumption/reservations_summaries.rb +465 -0
  71. data/lib/2018-01-31/generated/azure_mgmt_consumption/usage_details.rb +553 -0
  72. data/lib/azure_mgmt_consumption.rb +2 -0
  73. data/lib/profiles/latest/consumption_latest_profile_client.rb +28 -9
  74. data/lib/profiles/latest/consumption_module_definition.rb +0 -1
  75. data/lib/profiles/latest/modules/consumption_profile_module.rb +153 -48
  76. data/lib/version.rb +1 -1
  77. metadata +65 -2
@@ -0,0 +1,135 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::Consumption::Mgmt::V2017_11_30
7
+ #
8
+ # Consumption management client provides access to consumption resources for
9
+ # Azure Enterprise Subscriptions.
10
+ #
11
+ class ReservationsSummaries
12
+ include MsRestAzure
13
+
14
+ #
15
+ # Creates and initializes a new instance of the ReservationsSummaries class.
16
+ # @param client service class for accessing basic functionality.
17
+ #
18
+ def initialize(client)
19
+ @client = client
20
+ end
21
+
22
+ # @return [ConsumptionManagementClient] reference to the ConsumptionManagementClient
23
+ attr_reader :client
24
+
25
+ #
26
+ # Lists the reservations summaries for daily or monthly grain.
27
+ #
28
+ # @param scope [String] The scope of the reservation summaries. The scope can
29
+ # be 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}' or
30
+ # 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}/reservations/{ReservationId}'
31
+ # @param grain [Datagrain] Can be daily or monthly. Possible values include:
32
+ # 'DailyGrain', 'MonthlyGrain'
33
+ # @param filter [String] Required only for daily grain. The
34
+ # properties/UsageDate for start date and end date. The filter supports 'le'
35
+ # and 'ge'
36
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
37
+ # will be added to the HTTP request.
38
+ #
39
+ # @return [ReservationSummariesListResult] operation results.
40
+ #
41
+ def list(scope, grain, filter:nil, custom_headers:nil)
42
+ response = list_async(scope, grain, filter:filter, custom_headers:custom_headers).value!
43
+ response.body unless response.nil?
44
+ end
45
+
46
+ #
47
+ # Lists the reservations summaries for daily or monthly grain.
48
+ #
49
+ # @param scope [String] The scope of the reservation summaries. The scope can
50
+ # be 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}' or
51
+ # 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}/reservations/{ReservationId}'
52
+ # @param grain [Datagrain] Can be daily or monthly. Possible values include:
53
+ # 'DailyGrain', 'MonthlyGrain'
54
+ # @param filter [String] Required only for daily grain. The
55
+ # properties/UsageDate for start date and end date. The filter supports 'le'
56
+ # and 'ge'
57
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
58
+ # will be added to the HTTP request.
59
+ #
60
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
61
+ #
62
+ def list_with_http_info(scope, grain, filter:nil, custom_headers:nil)
63
+ list_async(scope, grain, filter:filter, custom_headers:custom_headers).value!
64
+ end
65
+
66
+ #
67
+ # Lists the reservations summaries for daily or monthly grain.
68
+ #
69
+ # @param scope [String] The scope of the reservation summaries. The scope can
70
+ # be 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}' or
71
+ # 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}/reservations/{ReservationId}'
72
+ # @param grain [Datagrain] Can be daily or monthly. Possible values include:
73
+ # 'DailyGrain', 'MonthlyGrain'
74
+ # @param filter [String] Required only for daily grain. The
75
+ # properties/UsageDate for start date and end date. The filter supports 'le'
76
+ # and 'ge'
77
+ # @param [Hash{String => String}] A hash of custom headers that will be added
78
+ # to the HTTP request.
79
+ #
80
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
81
+ #
82
+ def list_async(scope, grain, filter:nil, custom_headers:nil)
83
+ fail ArgumentError, 'scope is nil' if scope.nil?
84
+ fail ArgumentError, 'grain is nil' if grain.nil?
85
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
86
+
87
+
88
+ request_headers = {}
89
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
90
+
91
+ # Set Headers
92
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
93
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
94
+ path_template = '{scope}/providers/Microsoft.Consumption/reservationSummaries'
95
+
96
+ request_url = @base_url || @client.base_url
97
+
98
+ options = {
99
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
100
+ skip_encoding_path_params: {'scope' => scope},
101
+ query_params: {'grain' => grain,'$filter' => filter,'api-version' => @client.api_version},
102
+ headers: request_headers.merge(custom_headers || {}),
103
+ base_url: request_url
104
+ }
105
+ promise = @client.make_request_async(:get, path_template, options)
106
+
107
+ promise = promise.then do |result|
108
+ http_response = result.response
109
+ status_code = http_response.status
110
+ response_content = http_response.body
111
+ unless status_code == 200
112
+ error_model = JSON.load(response_content)
113
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
114
+ end
115
+
116
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
117
+ # Deserialize Response
118
+ if status_code == 200
119
+ begin
120
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
121
+ result_mapper = Azure::Consumption::Mgmt::V2017_11_30::Models::ReservationSummariesListResult.mapper()
122
+ result.body = @client.deserialize(result_mapper, parsed_response)
123
+ rescue Exception => e
124
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
125
+ end
126
+ end
127
+
128
+ result
129
+ end
130
+
131
+ promise.execute
132
+ end
133
+
134
+ end
135
+ end
@@ -50,8 +50,8 @@ module Azure::Consumption::Mgmt::V2017_11_30
50
50
  #
51
51
  # @return [Array<UsageDetail>] operation results.
52
52
  #
53
- def list(scope, expand = nil, filter = nil, skiptoken = nil, top = nil, custom_headers = nil)
54
- first_page = list_as_lazy(scope, expand, filter, skiptoken, top, custom_headers)
53
+ def list(scope, expand:nil, filter:nil, skiptoken:nil, top:nil, custom_headers:nil)
54
+ first_page = list_as_lazy(scope, expand:expand, filter:filter, skiptoken:skiptoken, top:top, custom_headers:custom_headers)
55
55
  first_page.get_all_items
56
56
  end
57
57
 
@@ -83,8 +83,8 @@ module Azure::Consumption::Mgmt::V2017_11_30
83
83
  #
84
84
  # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
85
85
  #
86
- def list_with_http_info(scope, expand = nil, filter = nil, skiptoken = nil, top = nil, custom_headers = nil)
87
- list_async(scope, expand, filter, skiptoken, top, custom_headers).value!
86
+ def list_with_http_info(scope, expand:nil, filter:nil, skiptoken:nil, top:nil, custom_headers:nil)
87
+ list_async(scope, expand:expand, filter:filter, skiptoken:skiptoken, top:top, custom_headers:custom_headers).value!
88
88
  end
89
89
 
90
90
  #
@@ -115,7 +115,7 @@ module Azure::Consumption::Mgmt::V2017_11_30
115
115
  #
116
116
  # @return [Concurrent::Promise] Promise object which holds the HTTP response.
117
117
  #
118
- def list_async(scope, expand = nil, filter = nil, skiptoken = nil, top = nil, custom_headers = nil)
118
+ def list_async(scope, expand:nil, filter:nil, skiptoken:nil, top:nil, custom_headers:nil)
119
119
  fail ArgumentError, 'scope is nil' if scope.nil?
120
120
  fail ArgumentError, "'top' should satisfy the constraint - 'InclusiveMaximum': '1000'" if !top.nil? && top > 1000
121
121
  fail ArgumentError, "'top' should satisfy the constraint - 'InclusiveMinimum': '1'" if !top.nil? && top < 1
@@ -123,6 +123,7 @@ module Azure::Consumption::Mgmt::V2017_11_30
123
123
 
124
124
 
125
125
  request_headers = {}
126
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
126
127
 
127
128
  # Set Headers
128
129
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
@@ -178,8 +179,8 @@ module Azure::Consumption::Mgmt::V2017_11_30
178
179
  #
179
180
  # @return [UsageDetailsListResult] operation results.
180
181
  #
181
- def list_next(next_page_link, custom_headers = nil)
182
- response = list_next_async(next_page_link, custom_headers).value!
182
+ def list_next(next_page_link, custom_headers:nil)
183
+ response = list_next_async(next_page_link, custom_headers:custom_headers).value!
183
184
  response.body unless response.nil?
184
185
  end
185
186
 
@@ -194,8 +195,8 @@ module Azure::Consumption::Mgmt::V2017_11_30
194
195
  #
195
196
  # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
196
197
  #
197
- def list_next_with_http_info(next_page_link, custom_headers = nil)
198
- list_next_async(next_page_link, custom_headers).value!
198
+ def list_next_with_http_info(next_page_link, custom_headers:nil)
199
+ list_next_async(next_page_link, custom_headers:custom_headers).value!
199
200
  end
200
201
 
201
202
  #
@@ -209,11 +210,12 @@ module Azure::Consumption::Mgmt::V2017_11_30
209
210
  #
210
211
  # @return [Concurrent::Promise] Promise object which holds the HTTP response.
211
212
  #
212
- def list_next_async(next_page_link, custom_headers = nil)
213
+ def list_next_async(next_page_link, custom_headers:nil)
213
214
  fail ArgumentError, 'next_page_link is nil' if next_page_link.nil?
214
215
 
215
216
 
216
217
  request_headers = {}
218
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
217
219
 
218
220
  # Set Headers
219
221
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
@@ -286,12 +288,12 @@ module Azure::Consumption::Mgmt::V2017_11_30
286
288
  # @return [UsageDetailsListResult] which provide lazy access to pages of the
287
289
  # response.
288
290
  #
289
- def list_as_lazy(scope, expand = nil, filter = nil, skiptoken = nil, top = nil, custom_headers = nil)
290
- response = list_async(scope, expand, filter, skiptoken, top, custom_headers).value!
291
+ def list_as_lazy(scope, expand:nil, filter:nil, skiptoken:nil, top:nil, custom_headers:nil)
292
+ response = list_async(scope, expand:expand, filter:filter, skiptoken:skiptoken, top:top, custom_headers:custom_headers).value!
291
293
  unless response.nil?
292
294
  page = response.body
293
295
  page.next_method = Proc.new do |next_page_link|
294
- list_next_async(next_page_link, custom_headers)
296
+ list_next_async(next_page_link, custom_headers:custom_headers)
295
297
  end
296
298
  page
297
299
  end
@@ -0,0 +1,42 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ require 'uri'
7
+ require 'cgi'
8
+ require 'date'
9
+ require 'json'
10
+ require 'base64'
11
+ require 'erb'
12
+ require 'securerandom'
13
+ require 'time'
14
+ require 'timeliness'
15
+ require 'faraday'
16
+ require 'faraday-cookie_jar'
17
+ require 'concurrent'
18
+ require 'ms_rest'
19
+ require '2017-12-30-preview/generated/azure_mgmt_consumption/module_definition'
20
+ require 'ms_rest_azure'
21
+
22
+ module Azure::Consumption::Mgmt::V2017_12_30_preview
23
+ autoload :Budgets, '2017-12-30-preview/generated/azure_mgmt_consumption/budgets.rb'
24
+ autoload :Operations, '2017-12-30-preview/generated/azure_mgmt_consumption/operations.rb'
25
+ autoload :ConsumptionManagementClient, '2017-12-30-preview/generated/azure_mgmt_consumption/consumption_management_client.rb'
26
+
27
+ module Models
28
+ autoload :OperationDisplay, '2017-12-30-preview/generated/azure_mgmt_consumption/models/operation_display.rb'
29
+ autoload :Operation, '2017-12-30-preview/generated/azure_mgmt_consumption/models/operation.rb'
30
+ autoload :CurrentSpend, '2017-12-30-preview/generated/azure_mgmt_consumption/models/current_spend.rb'
31
+ autoload :OperationListResult, '2017-12-30-preview/generated/azure_mgmt_consumption/models/operation_list_result.rb'
32
+ autoload :BudgetsListResult, '2017-12-30-preview/generated/azure_mgmt_consumption/models/budgets_list_result.rb'
33
+ autoload :ErrorDetails, '2017-12-30-preview/generated/azure_mgmt_consumption/models/error_details.rb'
34
+ autoload :Notification, '2017-12-30-preview/generated/azure_mgmt_consumption/models/notification.rb'
35
+ autoload :ErrorResponse, '2017-12-30-preview/generated/azure_mgmt_consumption/models/error_response.rb'
36
+ autoload :BudgetTimePeriod, '2017-12-30-preview/generated/azure_mgmt_consumption/models/budget_time_period.rb'
37
+ autoload :ProxyResource, '2017-12-30-preview/generated/azure_mgmt_consumption/models/proxy_resource.rb'
38
+ autoload :Budget, '2017-12-30-preview/generated/azure_mgmt_consumption/models/budget.rb'
39
+ autoload :TimeGrainType, '2017-12-30-preview/generated/azure_mgmt_consumption/models/time_grain_type.rb'
40
+ autoload :OperatorType, '2017-12-30-preview/generated/azure_mgmt_consumption/models/operator_type.rb'
41
+ end
42
+ end
@@ -0,0 +1,384 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::Consumption::Mgmt::V2017_12_30_preview
7
+ #
8
+ # Consumption management client provides access to consumption resources for
9
+ # Azure Enterprise Subscriptions.
10
+ #
11
+ class Budgets
12
+ include MsRestAzure
13
+
14
+ #
15
+ # Creates and initializes a new instance of the Budgets class.
16
+ # @param client service class for accessing basic functionality.
17
+ #
18
+ def initialize(client)
19
+ @client = client
20
+ end
21
+
22
+ # @return [ConsumptionManagementClient] reference to the ConsumptionManagementClient
23
+ attr_reader :client
24
+
25
+ #
26
+ # Lists all budgets for a subscription.
27
+ #
28
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
29
+ # will be added to the HTTP request.
30
+ #
31
+ # @return [BudgetsListResult] operation results.
32
+ #
33
+ def list(custom_headers:nil)
34
+ response = list_async(custom_headers:custom_headers).value!
35
+ response.body unless response.nil?
36
+ end
37
+
38
+ #
39
+ # Lists all budgets for a subscription.
40
+ #
41
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
42
+ # will be added to the HTTP request.
43
+ #
44
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
45
+ #
46
+ def list_with_http_info(custom_headers:nil)
47
+ list_async(custom_headers:custom_headers).value!
48
+ end
49
+
50
+ #
51
+ # Lists all budgets for a subscription.
52
+ #
53
+ # @param [Hash{String => String}] A hash of custom headers that will be added
54
+ # to the HTTP request.
55
+ #
56
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
57
+ #
58
+ def list_async(custom_headers:nil)
59
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
60
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
61
+
62
+
63
+ request_headers = {}
64
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
65
+
66
+ # Set Headers
67
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
68
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
69
+ path_template = 'subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets'
70
+
71
+ request_url = @base_url || @client.base_url
72
+
73
+ options = {
74
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
75
+ path_params: {'subscriptionId' => @client.subscription_id},
76
+ query_params: {'api-version' => @client.api_version},
77
+ headers: request_headers.merge(custom_headers || {}),
78
+ base_url: request_url
79
+ }
80
+ promise = @client.make_request_async(:get, path_template, options)
81
+
82
+ promise = promise.then do |result|
83
+ http_response = result.response
84
+ status_code = http_response.status
85
+ response_content = http_response.body
86
+ unless status_code == 200
87
+ error_model = JSON.load(response_content)
88
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
89
+ end
90
+
91
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
92
+ # Deserialize Response
93
+ if status_code == 200
94
+ begin
95
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
96
+ result_mapper = Azure::Consumption::Mgmt::V2017_12_30_preview::Models::BudgetsListResult.mapper()
97
+ result.body = @client.deserialize(result_mapper, parsed_response)
98
+ rescue Exception => e
99
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
100
+ end
101
+ end
102
+
103
+ result
104
+ end
105
+
106
+ promise.execute
107
+ end
108
+
109
+ #
110
+ # Gets the budget for a subscription by budget name.
111
+ #
112
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
113
+ # will be added to the HTTP request.
114
+ #
115
+ # @return [Budget] operation results.
116
+ #
117
+ def get(custom_headers:nil)
118
+ response = get_async(custom_headers:custom_headers).value!
119
+ response.body unless response.nil?
120
+ end
121
+
122
+ #
123
+ # Gets the budget for a subscription by budget name.
124
+ #
125
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
126
+ # will be added to the HTTP request.
127
+ #
128
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
129
+ #
130
+ def get_with_http_info(custom_headers:nil)
131
+ get_async(custom_headers:custom_headers).value!
132
+ end
133
+
134
+ #
135
+ # Gets the budget for a subscription by budget name.
136
+ #
137
+ # @param [Hash{String => String}] A hash of custom headers that will be added
138
+ # to the HTTP request.
139
+ #
140
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
141
+ #
142
+ def get_async(custom_headers:nil)
143
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
144
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
145
+ fail ArgumentError, '@client.name is nil' if @client.name.nil?
146
+
147
+
148
+ request_headers = {}
149
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
150
+
151
+ # Set Headers
152
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
153
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
154
+ path_template = 'subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets/{name}'
155
+
156
+ request_url = @base_url || @client.base_url
157
+
158
+ options = {
159
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
160
+ path_params: {'subscriptionId' => @client.subscription_id,'name' => @client.name},
161
+ query_params: {'api-version' => @client.api_version},
162
+ headers: request_headers.merge(custom_headers || {}),
163
+ base_url: request_url
164
+ }
165
+ promise = @client.make_request_async(:get, path_template, options)
166
+
167
+ promise = promise.then do |result|
168
+ http_response = result.response
169
+ status_code = http_response.status
170
+ response_content = http_response.body
171
+ unless status_code == 200
172
+ error_model = JSON.load(response_content)
173
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
174
+ end
175
+
176
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
177
+ # Deserialize Response
178
+ if status_code == 200
179
+ begin
180
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
181
+ result_mapper = Azure::Consumption::Mgmt::V2017_12_30_preview::Models::Budget.mapper()
182
+ result.body = @client.deserialize(result_mapper, parsed_response)
183
+ rescue Exception => e
184
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
185
+ end
186
+ end
187
+
188
+ result
189
+ end
190
+
191
+ promise.execute
192
+ end
193
+
194
+ #
195
+ # The operation to create or update a budget. Update operation requires latest
196
+ # eTag to be set in the request mandatorily. You may obtain the latest eTag by
197
+ # performing a get operation. Create operation does not require eTag.
198
+ #
199
+ # @param parameters [Budget] Parameters supplied to the Create Budget
200
+ # operation.
201
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
202
+ # will be added to the HTTP request.
203
+ #
204
+ # @return [Budget] operation results.
205
+ #
206
+ def create_or_update(parameters, custom_headers:nil)
207
+ response = create_or_update_async(parameters, custom_headers:custom_headers).value!
208
+ response.body unless response.nil?
209
+ end
210
+
211
+ #
212
+ # The operation to create or update a budget. Update operation requires latest
213
+ # eTag to be set in the request mandatorily. You may obtain the latest eTag by
214
+ # performing a get operation. Create operation does not require eTag.
215
+ #
216
+ # @param parameters [Budget] Parameters supplied to the Create Budget
217
+ # operation.
218
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
219
+ # will be added to the HTTP request.
220
+ #
221
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
222
+ #
223
+ def create_or_update_with_http_info(parameters, custom_headers:nil)
224
+ create_or_update_async(parameters, custom_headers:custom_headers).value!
225
+ end
226
+
227
+ #
228
+ # The operation to create or update a budget. Update operation requires latest
229
+ # eTag to be set in the request mandatorily. You may obtain the latest eTag by
230
+ # performing a get operation. Create operation does not require eTag.
231
+ #
232
+ # @param parameters [Budget] Parameters supplied to the Create Budget
233
+ # operation.
234
+ # @param [Hash{String => String}] A hash of custom headers that will be added
235
+ # to the HTTP request.
236
+ #
237
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
238
+ #
239
+ def create_or_update_async(parameters, custom_headers:nil)
240
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
241
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
242
+ fail ArgumentError, '@client.name is nil' if @client.name.nil?
243
+ fail ArgumentError, 'parameters is nil' if parameters.nil?
244
+
245
+
246
+ request_headers = {}
247
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
248
+
249
+ # Set Headers
250
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
251
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
252
+
253
+ # Serialize Request
254
+ request_mapper = Azure::Consumption::Mgmt::V2017_12_30_preview::Models::Budget.mapper()
255
+ request_content = @client.serialize(request_mapper, parameters)
256
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
257
+
258
+ path_template = 'subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets/{name}'
259
+
260
+ request_url = @base_url || @client.base_url
261
+
262
+ options = {
263
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
264
+ path_params: {'subscriptionId' => @client.subscription_id,'name' => @client.name},
265
+ query_params: {'api-version' => @client.api_version},
266
+ body: request_content,
267
+ headers: request_headers.merge(custom_headers || {}),
268
+ base_url: request_url
269
+ }
270
+ promise = @client.make_request_async(:put, path_template, options)
271
+
272
+ promise = promise.then do |result|
273
+ http_response = result.response
274
+ status_code = http_response.status
275
+ response_content = http_response.body
276
+ unless status_code == 200 || status_code == 201
277
+ error_model = JSON.load(response_content)
278
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
279
+ end
280
+
281
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
282
+ # Deserialize Response
283
+ if status_code == 200
284
+ begin
285
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
286
+ result_mapper = Azure::Consumption::Mgmt::V2017_12_30_preview::Models::Budget.mapper()
287
+ result.body = @client.deserialize(result_mapper, parsed_response)
288
+ rescue Exception => e
289
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
290
+ end
291
+ end
292
+ # Deserialize Response
293
+ if status_code == 201
294
+ begin
295
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
296
+ result_mapper = Azure::Consumption::Mgmt::V2017_12_30_preview::Models::Budget.mapper()
297
+ result.body = @client.deserialize(result_mapper, parsed_response)
298
+ rescue Exception => e
299
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
300
+ end
301
+ end
302
+
303
+ result
304
+ end
305
+
306
+ promise.execute
307
+ end
308
+
309
+ #
310
+ # The operation to delete a budget.
311
+ #
312
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
313
+ # will be added to the HTTP request.
314
+ #
315
+ #
316
+ def delete(custom_headers:nil)
317
+ response = delete_async(custom_headers:custom_headers).value!
318
+ nil
319
+ end
320
+
321
+ #
322
+ # The operation to delete a budget.
323
+ #
324
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
325
+ # will be added to the HTTP request.
326
+ #
327
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
328
+ #
329
+ def delete_with_http_info(custom_headers:nil)
330
+ delete_async(custom_headers:custom_headers).value!
331
+ end
332
+
333
+ #
334
+ # The operation to delete a budget.
335
+ #
336
+ # @param [Hash{String => String}] A hash of custom headers that will be added
337
+ # to the HTTP request.
338
+ #
339
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
340
+ #
341
+ def delete_async(custom_headers:nil)
342
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
343
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
344
+ fail ArgumentError, '@client.name is nil' if @client.name.nil?
345
+
346
+
347
+ request_headers = {}
348
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
349
+
350
+ # Set Headers
351
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
352
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
353
+ path_template = 'subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets/{name}'
354
+
355
+ request_url = @base_url || @client.base_url
356
+
357
+ options = {
358
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
359
+ path_params: {'subscriptionId' => @client.subscription_id,'name' => @client.name},
360
+ query_params: {'api-version' => @client.api_version},
361
+ headers: request_headers.merge(custom_headers || {}),
362
+ base_url: request_url
363
+ }
364
+ promise = @client.make_request_async(:delete, path_template, options)
365
+
366
+ promise = promise.then do |result|
367
+ http_response = result.response
368
+ status_code = http_response.status
369
+ response_content = http_response.body
370
+ unless status_code == 200
371
+ error_model = JSON.load(response_content)
372
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
373
+ end
374
+
375
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
376
+
377
+ result
378
+ end
379
+
380
+ promise.execute
381
+ end
382
+
383
+ end
384
+ end