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,56 @@
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
+ module Models
8
+ #
9
+ # Result of listing reservation details.
10
+ #
11
+ class ReservationDetailsListResult
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [Array<ReservationDetails>] The list of reservation details.
16
+ attr_accessor :value
17
+
18
+
19
+ #
20
+ # Mapper for ReservationDetailsListResult class as Ruby Hash.
21
+ # This will be used for serialization/deserialization.
22
+ #
23
+ def self.mapper()
24
+ {
25
+ client_side_validation: true,
26
+ required: false,
27
+ serialized_name: 'ReservationDetailsListResult',
28
+ type: {
29
+ name: 'Composite',
30
+ class_name: 'ReservationDetailsListResult',
31
+ model_properties: {
32
+ value: {
33
+ client_side_validation: true,
34
+ required: false,
35
+ read_only: true,
36
+ serialized_name: 'value',
37
+ type: {
38
+ name: 'Sequence',
39
+ element: {
40
+ client_side_validation: true,
41
+ required: false,
42
+ serialized_name: 'ReservationDetailsElementType',
43
+ type: {
44
+ name: 'Composite',
45
+ class_name: 'ReservationDetails'
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,205 @@
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
+ module Models
8
+ #
9
+ # reservation summaries resource.
10
+ #
11
+ class ReservationSummaries < Resource
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] The reservation order ID is the identifier for a
16
+ # reservation purchase. Each reservation order ID represents a single
17
+ # purchase transaction. A reservation order contains reservations. The
18
+ # reservation order specifies the VM size and region for the
19
+ # reservations.
20
+ attr_accessor :reservation_order_id
21
+
22
+ # @return [String] The reservation ID is the identifier of a reservation
23
+ # within a reservation order. Each reservation is the grouping for
24
+ # applying the benefit scope and also specifies the number of instances
25
+ # to which the reservation benefit can be applied to.
26
+ attr_accessor :reservation_id
27
+
28
+ # @return [String] This is the ARM Sku name. It can be used to join with
29
+ # the servicetype field in additoinalinfo in usage records.
30
+ attr_accessor :sku_name
31
+
32
+ # @return This is the total hours reserved. E.g. if reservation for 1
33
+ # instance was made on 1 PM, this will be 11 hours for that day and 24
34
+ # hours from subsequent days
35
+ attr_accessor :reserved_hours
36
+
37
+ # @return [DateTime] Data corresponding to the utilization record. If the
38
+ # grain of data is monthly, it will be first day of month.
39
+ attr_accessor :usage_date
40
+
41
+ # @return Total used hours by the reservation
42
+ attr_accessor :used_hours
43
+
44
+ # @return This is the minimum hourly utilization in the usage time (day
45
+ # or month). E.g. if usage record corresponds to 12/10/2017 and on that
46
+ # for hour 4 and 5, utilization was 10%, this field will return 10% for
47
+ # that day
48
+ attr_accessor :min_utilization_percentage
49
+
50
+ # @return This is average utilization for the entire time range. (day or
51
+ # month depending on the grain)
52
+ attr_accessor :avg_utilization_percentage
53
+
54
+ # @return This is the maximum hourly utilization in the usage time (day
55
+ # or month). E.g. if usage record corresponds to 12/10/2017 and on that
56
+ # for hour 4 and 5, utilization was 100%, this field will return 100% for
57
+ # that day.
58
+ attr_accessor :max_utilization_percentage
59
+
60
+
61
+ #
62
+ # Mapper for ReservationSummaries class as Ruby Hash.
63
+ # This will be used for serialization/deserialization.
64
+ #
65
+ def self.mapper()
66
+ {
67
+ client_side_validation: true,
68
+ required: false,
69
+ serialized_name: 'ReservationSummaries',
70
+ type: {
71
+ name: 'Composite',
72
+ class_name: 'ReservationSummaries',
73
+ model_properties: {
74
+ id: {
75
+ client_side_validation: true,
76
+ required: false,
77
+ read_only: true,
78
+ serialized_name: 'id',
79
+ type: {
80
+ name: 'String'
81
+ }
82
+ },
83
+ name: {
84
+ client_side_validation: true,
85
+ required: false,
86
+ read_only: true,
87
+ serialized_name: 'name',
88
+ type: {
89
+ name: 'String'
90
+ }
91
+ },
92
+ type: {
93
+ client_side_validation: true,
94
+ required: false,
95
+ read_only: true,
96
+ serialized_name: 'type',
97
+ type: {
98
+ name: 'String'
99
+ }
100
+ },
101
+ tags: {
102
+ client_side_validation: true,
103
+ required: false,
104
+ read_only: true,
105
+ serialized_name: 'tags',
106
+ type: {
107
+ name: 'Dictionary',
108
+ value: {
109
+ client_side_validation: true,
110
+ required: false,
111
+ serialized_name: 'StringElementType',
112
+ type: {
113
+ name: 'String'
114
+ }
115
+ }
116
+ }
117
+ },
118
+ reservation_order_id: {
119
+ client_side_validation: true,
120
+ required: false,
121
+ read_only: true,
122
+ serialized_name: 'properties.reservationOrderId',
123
+ type: {
124
+ name: 'String'
125
+ }
126
+ },
127
+ reservation_id: {
128
+ client_side_validation: true,
129
+ required: false,
130
+ read_only: true,
131
+ serialized_name: 'properties.reservationId',
132
+ type: {
133
+ name: 'String'
134
+ }
135
+ },
136
+ sku_name: {
137
+ client_side_validation: true,
138
+ required: false,
139
+ read_only: true,
140
+ serialized_name: 'properties.skuName',
141
+ type: {
142
+ name: 'String'
143
+ }
144
+ },
145
+ reserved_hours: {
146
+ client_side_validation: true,
147
+ required: false,
148
+ read_only: true,
149
+ serialized_name: 'properties.reservedHours',
150
+ type: {
151
+ name: 'Number'
152
+ }
153
+ },
154
+ usage_date: {
155
+ client_side_validation: true,
156
+ required: false,
157
+ read_only: true,
158
+ serialized_name: 'properties.usageDate',
159
+ type: {
160
+ name: 'DateTime'
161
+ }
162
+ },
163
+ used_hours: {
164
+ client_side_validation: true,
165
+ required: false,
166
+ read_only: true,
167
+ serialized_name: 'properties.usedHours',
168
+ type: {
169
+ name: 'Number'
170
+ }
171
+ },
172
+ min_utilization_percentage: {
173
+ client_side_validation: true,
174
+ required: false,
175
+ read_only: true,
176
+ serialized_name: 'properties.minUtilizationPercentage',
177
+ type: {
178
+ name: 'Number'
179
+ }
180
+ },
181
+ avg_utilization_percentage: {
182
+ client_side_validation: true,
183
+ required: false,
184
+ read_only: true,
185
+ serialized_name: 'properties.avgUtilizationPercentage',
186
+ type: {
187
+ name: 'Number'
188
+ }
189
+ },
190
+ max_utilization_percentage: {
191
+ client_side_validation: true,
192
+ required: false,
193
+ read_only: true,
194
+ serialized_name: 'properties.maxUtilizationPercentage',
195
+ type: {
196
+ name: 'Number'
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
202
+ end
203
+ end
204
+ end
205
+ end
@@ -0,0 +1,57 @@
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
+ module Models
8
+ #
9
+ # Result of listing reservation summaries.
10
+ #
11
+ class ReservationSummariesListResult
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [Array<ReservationSummaries>] The list of reservation
16
+ # summaries.
17
+ attr_accessor :value
18
+
19
+
20
+ #
21
+ # Mapper for ReservationSummariesListResult class as Ruby Hash.
22
+ # This will be used for serialization/deserialization.
23
+ #
24
+ def self.mapper()
25
+ {
26
+ client_side_validation: true,
27
+ required: false,
28
+ serialized_name: 'ReservationSummariesListResult',
29
+ type: {
30
+ name: 'Composite',
31
+ class_name: 'ReservationSummariesListResult',
32
+ model_properties: {
33
+ value: {
34
+ client_side_validation: true,
35
+ required: false,
36
+ read_only: true,
37
+ serialized_name: 'value',
38
+ type: {
39
+ name: 'Sequence',
40
+ element: {
41
+ client_side_validation: true,
42
+ required: false,
43
+ serialized_name: 'ReservationSummariesElementType',
44
+ type: {
45
+ name: 'Composite',
46
+ class_name: 'ReservationSummaries'
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ end
55
+ end
56
+ end
57
+ end
@@ -30,8 +30,8 @@ module Azure::Consumption::Mgmt::V2017_11_30
30
30
  #
31
31
  # @return [Array<Operation>] operation results.
32
32
  #
33
- def list(custom_headers = nil)
34
- first_page = list_as_lazy(custom_headers)
33
+ def list(custom_headers:nil)
34
+ first_page = list_as_lazy(custom_headers:custom_headers)
35
35
  first_page.get_all_items
36
36
  end
37
37
 
@@ -43,8 +43,8 @@ module Azure::Consumption::Mgmt::V2017_11_30
43
43
  #
44
44
  # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
45
45
  #
46
- def list_with_http_info(custom_headers = nil)
47
- list_async(custom_headers).value!
46
+ def list_with_http_info(custom_headers:nil)
47
+ list_async(custom_headers:custom_headers).value!
48
48
  end
49
49
 
50
50
  #
@@ -55,11 +55,12 @@ module Azure::Consumption::Mgmt::V2017_11_30
55
55
  #
56
56
  # @return [Concurrent::Promise] Promise object which holds the HTTP response.
57
57
  #
58
- def list_async(custom_headers = nil)
58
+ def list_async(custom_headers:nil)
59
59
  fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
60
60
 
61
61
 
62
62
  request_headers = {}
63
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
63
64
 
64
65
  # Set Headers
65
66
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
@@ -113,8 +114,8 @@ module Azure::Consumption::Mgmt::V2017_11_30
113
114
  #
114
115
  # @return [OperationListResult] operation results.
115
116
  #
116
- def list_next(next_page_link, custom_headers = nil)
117
- response = list_next_async(next_page_link, custom_headers).value!
117
+ def list_next(next_page_link, custom_headers:nil)
118
+ response = list_next_async(next_page_link, custom_headers:custom_headers).value!
118
119
  response.body unless response.nil?
119
120
  end
120
121
 
@@ -128,8 +129,8 @@ module Azure::Consumption::Mgmt::V2017_11_30
128
129
  #
129
130
  # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
130
131
  #
131
- def list_next_with_http_info(next_page_link, custom_headers = nil)
132
- list_next_async(next_page_link, custom_headers).value!
132
+ def list_next_with_http_info(next_page_link, custom_headers:nil)
133
+ list_next_async(next_page_link, custom_headers:custom_headers).value!
133
134
  end
134
135
 
135
136
  #
@@ -142,11 +143,12 @@ module Azure::Consumption::Mgmt::V2017_11_30
142
143
  #
143
144
  # @return [Concurrent::Promise] Promise object which holds the HTTP response.
144
145
  #
145
- def list_next_async(next_page_link, custom_headers = nil)
146
+ def list_next_async(next_page_link, custom_headers:nil)
146
147
  fail ArgumentError, 'next_page_link is nil' if next_page_link.nil?
147
148
 
148
149
 
149
150
  request_headers = {}
151
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
150
152
 
151
153
  # Set Headers
152
154
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
@@ -199,12 +201,12 @@ module Azure::Consumption::Mgmt::V2017_11_30
199
201
  # @return [OperationListResult] which provide lazy access to pages of the
200
202
  # response.
201
203
  #
202
- def list_as_lazy(custom_headers = nil)
203
- response = list_async(custom_headers).value!
204
+ def list_as_lazy(custom_headers:nil)
205
+ response = list_async(custom_headers:custom_headers).value!
204
206
  unless response.nil?
205
207
  page = response.body
206
208
  page.next_method = Proc.new do |next_page_link|
207
- list_next_async(next_page_link, custom_headers)
209
+ list_next_async(next_page_link, custom_headers:custom_headers)
208
210
  end
209
211
  page
210
212
  end
@@ -0,0 +1,129 @@
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 ReservationsDetails
12
+ include MsRestAzure
13
+
14
+ #
15
+ # Creates and initializes a new instance of the ReservationsDetails 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 details for provided date range.
27
+ #
28
+ # @param scope [String] The scope of the reservation details. The scope can be
29
+ # 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}' or
30
+ # 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}/reservations/{ReservationId}'
31
+ # @param filter [String] Filter reservation details by date range. The
32
+ # properties/UsageDate for start date and end date. The filter supports 'le'
33
+ # and 'ge'
34
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
35
+ # will be added to the HTTP request.
36
+ #
37
+ # @return [ReservationDetailsListResult] operation results.
38
+ #
39
+ def list(scope, filter, custom_headers:nil)
40
+ response = list_async(scope, filter, custom_headers:custom_headers).value!
41
+ response.body unless response.nil?
42
+ end
43
+
44
+ #
45
+ # Lists the reservations details for provided date range.
46
+ #
47
+ # @param scope [String] The scope of the reservation details. The scope can be
48
+ # 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}' or
49
+ # 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}/reservations/{ReservationId}'
50
+ # @param filter [String] Filter reservation details by date range. The
51
+ # properties/UsageDate for start date and end date. The filter supports 'le'
52
+ # and 'ge'
53
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
54
+ # will be added to the HTTP request.
55
+ #
56
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
57
+ #
58
+ def list_with_http_info(scope, filter, custom_headers:nil)
59
+ list_async(scope, filter, custom_headers:custom_headers).value!
60
+ end
61
+
62
+ #
63
+ # Lists the reservations details for provided date range.
64
+ #
65
+ # @param scope [String] The scope of the reservation details. The scope can be
66
+ # 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}' or
67
+ # 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}/reservations/{ReservationId}'
68
+ # @param filter [String] Filter reservation details by date range. The
69
+ # properties/UsageDate for start date and end date. The filter supports 'le'
70
+ # and 'ge'
71
+ # @param [Hash{String => String}] A hash of custom headers that will be added
72
+ # to the HTTP request.
73
+ #
74
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
75
+ #
76
+ def list_async(scope, filter, custom_headers:nil)
77
+ fail ArgumentError, 'scope is nil' if scope.nil?
78
+ fail ArgumentError, 'filter is nil' if filter.nil?
79
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
80
+
81
+
82
+ request_headers = {}
83
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
84
+
85
+ # Set Headers
86
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
87
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
88
+ path_template = '{scope}/providers/Microsoft.Consumption/reservationDetails'
89
+
90
+ request_url = @base_url || @client.base_url
91
+
92
+ options = {
93
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
94
+ skip_encoding_path_params: {'scope' => scope},
95
+ query_params: {'$filter' => filter,'api-version' => @client.api_version},
96
+ headers: request_headers.merge(custom_headers || {}),
97
+ base_url: request_url
98
+ }
99
+ promise = @client.make_request_async(:get, path_template, options)
100
+
101
+ promise = promise.then do |result|
102
+ http_response = result.response
103
+ status_code = http_response.status
104
+ response_content = http_response.body
105
+ unless status_code == 200
106
+ error_model = JSON.load(response_content)
107
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
108
+ end
109
+
110
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
111
+ # Deserialize Response
112
+ if status_code == 200
113
+ begin
114
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
115
+ result_mapper = Azure::Consumption::Mgmt::V2017_11_30::Models::ReservationDetailsListResult.mapper()
116
+ result.body = @client.deserialize(result_mapper, parsed_response)
117
+ rescue Exception => e
118
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
119
+ end
120
+ end
121
+
122
+ result
123
+ end
124
+
125
+ promise.execute
126
+ end
127
+
128
+ end
129
+ end