azure_mgmt_reservations 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/lib/2017-11-01/generated/azure_mgmt_reservations.rb +53 -0
  4. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/applied_reservation_list.rb +66 -0
  5. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/applied_reservations.rb +85 -0
  6. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/catalog.rb +166 -0
  7. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/error.rb +48 -0
  8. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/extended_error_info.rb +84 -0
  9. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/extended_status_info.rb +61 -0
  10. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/kind.rb +15 -0
  11. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/merge_request.rb +56 -0
  12. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/operation_display.rb +80 -0
  13. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/operation_list.rb +98 -0
  14. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/operation_response.rb +70 -0
  15. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/patch.rb +66 -0
  16. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/reservation_list.rb +98 -0
  17. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/reservation_merge_properties.rb +70 -0
  18. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/reservation_order_list.rb +98 -0
  19. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/reservation_order_response.rb +187 -0
  20. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/reservation_properties.rb +176 -0
  21. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/reservation_response.rb +137 -0
  22. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/reservation_split_properties.rb +70 -0
  23. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/sku_capability.rb +58 -0
  24. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/sku_name.rb +47 -0
  25. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/sku_restriction.rb +79 -0
  26. data/lib/2017-11-01/generated/azure_mgmt_reservations/models/split_request.rb +69 -0
  27. data/lib/2017-11-01/generated/azure_mgmt_reservations/module_definition.rb +9 -0
  28. data/lib/2017-11-01/generated/azure_mgmt_reservations/operation.rb +228 -0
  29. data/lib/2017-11-01/generated/azure_mgmt_reservations/reservation.rb +1109 -0
  30. data/lib/2017-11-01/generated/azure_mgmt_reservations/reservation_order.rb +332 -0
  31. data/lib/2017-11-01/generated/azure_mgmt_reservations/reservations_management_client.rb +335 -0
  32. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations.rb +58 -0
  33. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/applied_reservation_list.rb +66 -0
  34. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/applied_reservations.rb +85 -0
  35. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/applied_scope_type.rb +16 -0
  36. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/catalog.rb +143 -0
  37. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/error.rb +48 -0
  38. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/error_response_code.rb +69 -0
  39. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/extended_error_info.rb +84 -0
  40. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/extended_status_info.rb +61 -0
  41. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/instance_flexibility.rb +17 -0
  42. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/merge_request.rb +56 -0
  43. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/operation_display.rb +80 -0
  44. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/operation_list.rb +98 -0
  45. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/operation_response.rb +70 -0
  46. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/patch.rb +89 -0
  47. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reservation_list.rb +98 -0
  48. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reservation_merge_properties.rb +70 -0
  49. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reservation_order_list.rb +98 -0
  50. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reservation_order_response.rb +184 -0
  51. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reservation_properties.rb +208 -0
  52. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reservation_response.rb +120 -0
  53. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reservation_split_properties.rb +70 -0
  54. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reservation_status_code.rb +23 -0
  55. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reservation_term.rb +16 -0
  56. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/reserved_resource_type.rb +19 -0
  57. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/sku_name.rb +47 -0
  58. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/sku_property.rb +58 -0
  59. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/sku_restriction.rb +79 -0
  60. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/models/split_request.rb +69 -0
  61. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/module_definition.rb +9 -0
  62. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/operation.rb +228 -0
  63. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/reservation.rb +1109 -0
  64. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/reservation_order.rb +332 -0
  65. data/lib/2018-06-01-preview/generated/azure_mgmt_reservations/reservations_management_client.rb +348 -0
  66. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations.rb +64 -0
  67. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/applied_reservation_list.rb +66 -0
  68. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/applied_reservations.rb +85 -0
  69. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/applied_scope_type.rb +16 -0
  70. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/calculate_price_response.rb +48 -0
  71. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/calculate_price_response_properties.rb +110 -0
  72. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/calculate_price_response_properties_billing_currency_total.rb +59 -0
  73. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/calculate_price_response_properties_pricing_currency_total.rb +59 -0
  74. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/catalog.rb +143 -0
  75. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/error.rb +48 -0
  76. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/error_response_code.rb +69 -0
  77. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/extended_error_info.rb +84 -0
  78. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/extended_status_info.rb +61 -0
  79. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/instance_flexibility.rb +16 -0
  80. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/merge_request.rb +56 -0
  81. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/operation_display.rb +80 -0
  82. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/operation_list.rb +98 -0
  83. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/operation_response.rb +70 -0
  84. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/patch.rb +88 -0
  85. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/purchase_request.rb +159 -0
  86. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/purchase_request_properties_reserved_resource_properties.rb +48 -0
  87. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reservation_list.rb +98 -0
  88. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reservation_merge_properties.rb +70 -0
  89. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reservation_order_list.rb +98 -0
  90. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reservation_order_response.rb +183 -0
  91. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reservation_properties.rb +206 -0
  92. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reservation_response.rb +120 -0
  93. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reservation_split_properties.rb +70 -0
  94. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reservation_status_code.rb +23 -0
  95. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reservation_term.rb +16 -0
  96. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/reserved_resource_type.rb +18 -0
  97. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/sku_name.rb +47 -0
  98. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/sku_property.rb +58 -0
  99. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/sku_restriction.rb +79 -0
  100. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/models/split_request.rb +69 -0
  101. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/module_definition.rb +9 -0
  102. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/operation.rb +228 -0
  103. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/reservation.rb +1072 -0
  104. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/reservation_order.rb +594 -0
  105. data/lib/2019-04-01-preview/generated/azure_mgmt_reservations/reservations_management_client.rb +348 -0
  106. data/lib/azure_mgmt_reservations.rb +8 -0
  107. data/lib/module_definition.rb +7 -0
  108. data/lib/profiles/latest/modules/reservations_profile_module.rb +201 -0
  109. data/lib/profiles/latest/reservations_latest_profile_client.rb +40 -0
  110. data/lib/profiles/latest/reservations_module_definition.rb +8 -0
  111. data/lib/version.rb +7 -0
  112. metadata +227 -0
@@ -0,0 +1,1072 @@
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::Reservations::Mgmt::V2019_04_01_preview
7
+ #
8
+ # This API describe Azure Reservation
9
+ #
10
+ class Reservation
11
+ include MsRestAzure
12
+
13
+ #
14
+ # Creates and initializes a new instance of the Reservation class.
15
+ # @param client service class for accessing basic functionality.
16
+ #
17
+ def initialize(client)
18
+ @client = client
19
+ end
20
+
21
+ # @return [ReservationsManagementClient] reference to the ReservationsManagementClient
22
+ attr_reader :client
23
+
24
+ #
25
+ # Split the `Reservation`.
26
+ #
27
+ # Split a `Reservation` into two `Reservation`s with specified quantity
28
+ # distribution.
29
+ #
30
+ # @param reservation_order_id [String] Order Id of the reservation
31
+ # @param body [SplitRequest] Information needed to Split a reservation item
32
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
33
+ # will be added to the HTTP request.
34
+ #
35
+ # @return [Array] operation results.
36
+ #
37
+ def split(reservation_order_id, body, custom_headers:nil)
38
+ response = split_async(reservation_order_id, body, custom_headers:custom_headers).value!
39
+ response.body unless response.nil?
40
+ end
41
+
42
+ #
43
+ # @param reservation_order_id [String] Order Id of the reservation
44
+ # @param body [SplitRequest] Information needed to Split a reservation item
45
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
46
+ # will be added to the HTTP request.
47
+ #
48
+ # @return [Concurrent::Promise] promise which provides async access to http
49
+ # response.
50
+ #
51
+ def split_async(reservation_order_id, body, custom_headers:nil)
52
+ # Send request
53
+ promise = begin_split_async(reservation_order_id, body, custom_headers:custom_headers)
54
+
55
+ promise = promise.then do |response|
56
+ # Defining deserialization method.
57
+ deserialize_method = lambda do |parsed_response|
58
+ result_mapper = {
59
+ client_side_validation: true,
60
+ required: false,
61
+ serialized_name: 'parsed_response',
62
+ type: {
63
+ name: 'Sequence',
64
+ element: {
65
+ client_side_validation: true,
66
+ required: false,
67
+ serialized_name: 'ReservationResponseElementType',
68
+ type: {
69
+ name: 'Composite',
70
+ class_name: 'ReservationResponse'
71
+ }
72
+ }
73
+ }
74
+ }
75
+ parsed_response = @client.deserialize(result_mapper, parsed_response)
76
+ end
77
+
78
+ # Waiting for response.
79
+ @client.get_long_running_operation_result(response, deserialize_method)
80
+ end
81
+
82
+ promise
83
+ end
84
+
85
+ #
86
+ # Merges two `Reservation`s.
87
+ #
88
+ # Merge the specified `Reservation`s into a new `Reservation`. The two
89
+ # `Reservation`s being merged must have same properties.
90
+ #
91
+ # @param reservation_order_id [String] Order Id of the reservation
92
+ # @param body [MergeRequest] Information needed for commercial request for a
93
+ # reservation
94
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
95
+ # will be added to the HTTP request.
96
+ #
97
+ # @return [Array] operation results.
98
+ #
99
+ def merge(reservation_order_id, body, custom_headers:nil)
100
+ response = merge_async(reservation_order_id, body, custom_headers:custom_headers).value!
101
+ response.body unless response.nil?
102
+ end
103
+
104
+ #
105
+ # @param reservation_order_id [String] Order Id of the reservation
106
+ # @param body [MergeRequest] Information needed for commercial request for a
107
+ # reservation
108
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
109
+ # will be added to the HTTP request.
110
+ #
111
+ # @return [Concurrent::Promise] promise which provides async access to http
112
+ # response.
113
+ #
114
+ def merge_async(reservation_order_id, body, custom_headers:nil)
115
+ # Send request
116
+ promise = begin_merge_async(reservation_order_id, body, custom_headers:custom_headers)
117
+
118
+ promise = promise.then do |response|
119
+ # Defining deserialization method.
120
+ deserialize_method = lambda do |parsed_response|
121
+ result_mapper = {
122
+ client_side_validation: true,
123
+ required: false,
124
+ serialized_name: 'parsed_response',
125
+ type: {
126
+ name: 'Sequence',
127
+ element: {
128
+ client_side_validation: true,
129
+ required: false,
130
+ serialized_name: 'ReservationResponseElementType',
131
+ type: {
132
+ name: 'Composite',
133
+ class_name: 'ReservationResponse'
134
+ }
135
+ }
136
+ }
137
+ }
138
+ parsed_response = @client.deserialize(result_mapper, parsed_response)
139
+ end
140
+
141
+ # Waiting for response.
142
+ @client.get_long_running_operation_result(response, deserialize_method)
143
+ end
144
+
145
+ promise
146
+ end
147
+
148
+ #
149
+ # Get `Reservation`s in a given reservation Order
150
+ #
151
+ # List `Reservation`s within a single `ReservationOrder`.
152
+ #
153
+ # @param reservation_order_id [String] Order Id of the reservation
154
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
155
+ # will be added to the HTTP request.
156
+ #
157
+ # @return [Array<ReservationResponse>] operation results.
158
+ #
159
+ def list(reservation_order_id, custom_headers:nil)
160
+ first_page = list_as_lazy(reservation_order_id, custom_headers:custom_headers)
161
+ first_page.get_all_items
162
+ end
163
+
164
+ #
165
+ # Get `Reservation`s in a given reservation Order
166
+ #
167
+ # List `Reservation`s within a single `ReservationOrder`.
168
+ #
169
+ # @param reservation_order_id [String] Order Id of the reservation
170
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
171
+ # will be added to the HTTP request.
172
+ #
173
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
174
+ #
175
+ def list_with_http_info(reservation_order_id, custom_headers:nil)
176
+ list_async(reservation_order_id, custom_headers:custom_headers).value!
177
+ end
178
+
179
+ #
180
+ # Get `Reservation`s in a given reservation Order
181
+ #
182
+ # List `Reservation`s within a single `ReservationOrder`.
183
+ #
184
+ # @param reservation_order_id [String] Order Id of the reservation
185
+ # @param [Hash{String => String}] A hash of custom headers that will be added
186
+ # to the HTTP request.
187
+ #
188
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
189
+ #
190
+ def list_async(reservation_order_id, custom_headers:nil)
191
+ fail ArgumentError, 'reservation_order_id is nil' if reservation_order_id.nil?
192
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
193
+
194
+
195
+ request_headers = {}
196
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
197
+
198
+ # Set Headers
199
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
200
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
201
+ path_template = 'providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations'
202
+
203
+ request_url = @base_url || @client.base_url
204
+
205
+ options = {
206
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
207
+ path_params: {'reservationOrderId' => reservation_order_id},
208
+ query_params: {'api-version' => @client.api_version},
209
+ headers: request_headers.merge(custom_headers || {}),
210
+ base_url: request_url
211
+ }
212
+ promise = @client.make_request_async(:get, path_template, options)
213
+
214
+ promise = promise.then do |result|
215
+ http_response = result.response
216
+ status_code = http_response.status
217
+ response_content = http_response.body
218
+ unless status_code == 200
219
+ error_model = JSON.load(response_content)
220
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
221
+ end
222
+
223
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
224
+ # Deserialize Response
225
+ if status_code == 200
226
+ begin
227
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
228
+ result_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::ReservationList.mapper()
229
+ result.body = @client.deserialize(result_mapper, parsed_response)
230
+ rescue Exception => e
231
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
232
+ end
233
+ end
234
+
235
+ result
236
+ end
237
+
238
+ promise.execute
239
+ end
240
+
241
+ #
242
+ # Get `Reservation` details.
243
+ #
244
+ # Get specific `Reservation` details.
245
+ #
246
+ # @param reservation_id [String] Id of the Reservation Item
247
+ # @param reservation_order_id [String] Order Id of the reservation
248
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
249
+ # will be added to the HTTP request.
250
+ #
251
+ # @return [ReservationResponse] operation results.
252
+ #
253
+ def get(reservation_id, reservation_order_id, custom_headers:nil)
254
+ response = get_async(reservation_id, reservation_order_id, custom_headers:custom_headers).value!
255
+ response.body unless response.nil?
256
+ end
257
+
258
+ #
259
+ # Get `Reservation` details.
260
+ #
261
+ # Get specific `Reservation` details.
262
+ #
263
+ # @param reservation_id [String] Id of the Reservation Item
264
+ # @param reservation_order_id [String] Order Id of the reservation
265
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
266
+ # will be added to the HTTP request.
267
+ #
268
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
269
+ #
270
+ def get_with_http_info(reservation_id, reservation_order_id, custom_headers:nil)
271
+ get_async(reservation_id, reservation_order_id, custom_headers:custom_headers).value!
272
+ end
273
+
274
+ #
275
+ # Get `Reservation` details.
276
+ #
277
+ # Get specific `Reservation` details.
278
+ #
279
+ # @param reservation_id [String] Id of the Reservation Item
280
+ # @param reservation_order_id [String] Order Id of the reservation
281
+ # @param [Hash{String => String}] A hash of custom headers that will be added
282
+ # to the HTTP request.
283
+ #
284
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
285
+ #
286
+ def get_async(reservation_id, reservation_order_id, custom_headers:nil)
287
+ fail ArgumentError, 'reservation_id is nil' if reservation_id.nil?
288
+ fail ArgumentError, 'reservation_order_id is nil' if reservation_order_id.nil?
289
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
290
+
291
+
292
+ request_headers = {}
293
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
294
+
295
+ # Set Headers
296
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
297
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
298
+ path_template = 'providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}'
299
+
300
+ request_url = @base_url || @client.base_url
301
+
302
+ options = {
303
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
304
+ path_params: {'reservationId' => reservation_id,'reservationOrderId' => reservation_order_id},
305
+ query_params: {'api-version' => @client.api_version},
306
+ headers: request_headers.merge(custom_headers || {}),
307
+ base_url: request_url
308
+ }
309
+ promise = @client.make_request_async(:get, path_template, options)
310
+
311
+ promise = promise.then do |result|
312
+ http_response = result.response
313
+ status_code = http_response.status
314
+ response_content = http_response.body
315
+ unless status_code == 200
316
+ error_model = JSON.load(response_content)
317
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
318
+ end
319
+
320
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
321
+ # Deserialize Response
322
+ if status_code == 200
323
+ begin
324
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
325
+ result_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::ReservationResponse.mapper()
326
+ result.body = @client.deserialize(result_mapper, parsed_response)
327
+ rescue Exception => e
328
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
329
+ end
330
+ end
331
+
332
+ result
333
+ end
334
+
335
+ promise.execute
336
+ end
337
+
338
+ #
339
+ # Updates a `Reservation`.
340
+ #
341
+ # Updates the applied scopes of the `Reservation`.
342
+ #
343
+ # @param reservation_order_id [String] Order Id of the reservation
344
+ # @param reservation_id [String] Id of the Reservation Item
345
+ # @param parameters [Patch] Information needed to patch a reservation item
346
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
347
+ # will be added to the HTTP request.
348
+ #
349
+ # @return [ReservationResponse] operation results.
350
+ #
351
+ def update(reservation_order_id, reservation_id, parameters, custom_headers:nil)
352
+ response = update_async(reservation_order_id, reservation_id, parameters, custom_headers:custom_headers).value!
353
+ response.body unless response.nil?
354
+ end
355
+
356
+ #
357
+ # @param reservation_order_id [String] Order Id of the reservation
358
+ # @param reservation_id [String] Id of the Reservation Item
359
+ # @param parameters [Patch] Information needed to patch a reservation item
360
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
361
+ # will be added to the HTTP request.
362
+ #
363
+ # @return [Concurrent::Promise] promise which provides async access to http
364
+ # response.
365
+ #
366
+ def update_async(reservation_order_id, reservation_id, parameters, custom_headers:nil)
367
+ # Send request
368
+ promise = begin_update_async(reservation_order_id, reservation_id, parameters, custom_headers:custom_headers)
369
+
370
+ promise = promise.then do |response|
371
+ # Defining deserialization method.
372
+ deserialize_method = lambda do |parsed_response|
373
+ result_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::ReservationResponse.mapper()
374
+ parsed_response = @client.deserialize(result_mapper, parsed_response)
375
+ end
376
+
377
+ # Waiting for response.
378
+ @client.get_long_running_operation_result(response, deserialize_method)
379
+ end
380
+
381
+ promise
382
+ end
383
+
384
+ #
385
+ # Get `Reservation` revisions.
386
+ #
387
+ # List of all the revisions for the `Reservation`.
388
+ #
389
+ # @param reservation_id [String] Id of the Reservation Item
390
+ # @param reservation_order_id [String] Order Id of the reservation
391
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
392
+ # will be added to the HTTP request.
393
+ #
394
+ # @return [Array<ReservationResponse>] operation results.
395
+ #
396
+ def list_revisions(reservation_id, reservation_order_id, custom_headers:nil)
397
+ first_page = list_revisions_as_lazy(reservation_id, reservation_order_id, custom_headers:custom_headers)
398
+ first_page.get_all_items
399
+ end
400
+
401
+ #
402
+ # Get `Reservation` revisions.
403
+ #
404
+ # List of all the revisions for the `Reservation`.
405
+ #
406
+ # @param reservation_id [String] Id of the Reservation Item
407
+ # @param reservation_order_id [String] Order Id of the reservation
408
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
409
+ # will be added to the HTTP request.
410
+ #
411
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
412
+ #
413
+ def list_revisions_with_http_info(reservation_id, reservation_order_id, custom_headers:nil)
414
+ list_revisions_async(reservation_id, reservation_order_id, custom_headers:custom_headers).value!
415
+ end
416
+
417
+ #
418
+ # Get `Reservation` revisions.
419
+ #
420
+ # List of all the revisions for the `Reservation`.
421
+ #
422
+ # @param reservation_id [String] Id of the Reservation Item
423
+ # @param reservation_order_id [String] Order Id of the reservation
424
+ # @param [Hash{String => String}] A hash of custom headers that will be added
425
+ # to the HTTP request.
426
+ #
427
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
428
+ #
429
+ def list_revisions_async(reservation_id, reservation_order_id, custom_headers:nil)
430
+ fail ArgumentError, 'reservation_id is nil' if reservation_id.nil?
431
+ fail ArgumentError, 'reservation_order_id is nil' if reservation_order_id.nil?
432
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
433
+
434
+
435
+ request_headers = {}
436
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
437
+
438
+ # Set Headers
439
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
440
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
441
+ path_template = 'providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}/revisions'
442
+
443
+ request_url = @base_url || @client.base_url
444
+
445
+ options = {
446
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
447
+ path_params: {'reservationId' => reservation_id,'reservationOrderId' => reservation_order_id},
448
+ query_params: {'api-version' => @client.api_version},
449
+ headers: request_headers.merge(custom_headers || {}),
450
+ base_url: request_url
451
+ }
452
+ promise = @client.make_request_async(:get, path_template, options)
453
+
454
+ promise = promise.then do |result|
455
+ http_response = result.response
456
+ status_code = http_response.status
457
+ response_content = http_response.body
458
+ unless status_code == 200
459
+ error_model = JSON.load(response_content)
460
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
461
+ end
462
+
463
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
464
+ # Deserialize Response
465
+ if status_code == 200
466
+ begin
467
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
468
+ result_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::ReservationList.mapper()
469
+ result.body = @client.deserialize(result_mapper, parsed_response)
470
+ rescue Exception => e
471
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
472
+ end
473
+ end
474
+
475
+ result
476
+ end
477
+
478
+ promise.execute
479
+ end
480
+
481
+ #
482
+ # Split the `Reservation`.
483
+ #
484
+ # Split a `Reservation` into two `Reservation`s with specified quantity
485
+ # distribution.
486
+ #
487
+ # @param reservation_order_id [String] Order Id of the reservation
488
+ # @param body [SplitRequest] Information needed to Split a reservation item
489
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
490
+ # will be added to the HTTP request.
491
+ #
492
+ # @return [Array] operation results.
493
+ #
494
+ def begin_split(reservation_order_id, body, custom_headers:nil)
495
+ response = begin_split_async(reservation_order_id, body, custom_headers:custom_headers).value!
496
+ response.body unless response.nil?
497
+ end
498
+
499
+ #
500
+ # Split the `Reservation`.
501
+ #
502
+ # Split a `Reservation` into two `Reservation`s with specified quantity
503
+ # distribution.
504
+ #
505
+ # @param reservation_order_id [String] Order Id of the reservation
506
+ # @param body [SplitRequest] Information needed to Split a reservation item
507
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
508
+ # will be added to the HTTP request.
509
+ #
510
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
511
+ #
512
+ def begin_split_with_http_info(reservation_order_id, body, custom_headers:nil)
513
+ begin_split_async(reservation_order_id, body, custom_headers:custom_headers).value!
514
+ end
515
+
516
+ #
517
+ # Split the `Reservation`.
518
+ #
519
+ # Split a `Reservation` into two `Reservation`s with specified quantity
520
+ # distribution.
521
+ #
522
+ # @param reservation_order_id [String] Order Id of the reservation
523
+ # @param body [SplitRequest] Information needed to Split a reservation item
524
+ # @param [Hash{String => String}] A hash of custom headers that will be added
525
+ # to the HTTP request.
526
+ #
527
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
528
+ #
529
+ def begin_split_async(reservation_order_id, body, custom_headers:nil)
530
+ fail ArgumentError, 'reservation_order_id is nil' if reservation_order_id.nil?
531
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
532
+ fail ArgumentError, 'body is nil' if body.nil?
533
+
534
+
535
+ request_headers = {}
536
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
537
+
538
+ # Set Headers
539
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
540
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
541
+
542
+ # Serialize Request
543
+ request_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::SplitRequest.mapper()
544
+ request_content = @client.serialize(request_mapper, body)
545
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
546
+
547
+ path_template = 'providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/split'
548
+
549
+ request_url = @base_url || @client.base_url
550
+
551
+ options = {
552
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
553
+ path_params: {'reservationOrderId' => reservation_order_id},
554
+ query_params: {'api-version' => @client.api_version},
555
+ body: request_content,
556
+ headers: request_headers.merge(custom_headers || {}),
557
+ base_url: request_url
558
+ }
559
+ promise = @client.make_request_async(:post, path_template, options)
560
+
561
+ promise = promise.then do |result|
562
+ http_response = result.response
563
+ status_code = http_response.status
564
+ response_content = http_response.body
565
+ unless status_code == 200 || status_code == 202
566
+ error_model = JSON.load(response_content)
567
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
568
+ end
569
+
570
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
571
+ # Deserialize Response
572
+ if status_code == 200
573
+ begin
574
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
575
+ result_mapper = {
576
+ client_side_validation: true,
577
+ required: false,
578
+ serialized_name: 'parsed_response',
579
+ type: {
580
+ name: 'Sequence',
581
+ element: {
582
+ client_side_validation: true,
583
+ required: false,
584
+ serialized_name: 'ReservationResponseElementType',
585
+ type: {
586
+ name: 'Composite',
587
+ class_name: 'ReservationResponse'
588
+ }
589
+ }
590
+ }
591
+ }
592
+ result.body = @client.deserialize(result_mapper, parsed_response)
593
+ rescue Exception => e
594
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
595
+ end
596
+ end
597
+
598
+ result
599
+ end
600
+
601
+ promise.execute
602
+ end
603
+
604
+ #
605
+ # Merges two `Reservation`s.
606
+ #
607
+ # Merge the specified `Reservation`s into a new `Reservation`. The two
608
+ # `Reservation`s being merged must have same properties.
609
+ #
610
+ # @param reservation_order_id [String] Order Id of the reservation
611
+ # @param body [MergeRequest] Information needed for commercial request for a
612
+ # reservation
613
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
614
+ # will be added to the HTTP request.
615
+ #
616
+ # @return [Array] operation results.
617
+ #
618
+ def begin_merge(reservation_order_id, body, custom_headers:nil)
619
+ response = begin_merge_async(reservation_order_id, body, custom_headers:custom_headers).value!
620
+ response.body unless response.nil?
621
+ end
622
+
623
+ #
624
+ # Merges two `Reservation`s.
625
+ #
626
+ # Merge the specified `Reservation`s into a new `Reservation`. The two
627
+ # `Reservation`s being merged must have same properties.
628
+ #
629
+ # @param reservation_order_id [String] Order Id of the reservation
630
+ # @param body [MergeRequest] Information needed for commercial request for a
631
+ # reservation
632
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
633
+ # will be added to the HTTP request.
634
+ #
635
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
636
+ #
637
+ def begin_merge_with_http_info(reservation_order_id, body, custom_headers:nil)
638
+ begin_merge_async(reservation_order_id, body, custom_headers:custom_headers).value!
639
+ end
640
+
641
+ #
642
+ # Merges two `Reservation`s.
643
+ #
644
+ # Merge the specified `Reservation`s into a new `Reservation`. The two
645
+ # `Reservation`s being merged must have same properties.
646
+ #
647
+ # @param reservation_order_id [String] Order Id of the reservation
648
+ # @param body [MergeRequest] Information needed for commercial request for a
649
+ # reservation
650
+ # @param [Hash{String => String}] A hash of custom headers that will be added
651
+ # to the HTTP request.
652
+ #
653
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
654
+ #
655
+ def begin_merge_async(reservation_order_id, body, custom_headers:nil)
656
+ fail ArgumentError, 'reservation_order_id is nil' if reservation_order_id.nil?
657
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
658
+ fail ArgumentError, 'body is nil' if body.nil?
659
+
660
+
661
+ request_headers = {}
662
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
663
+
664
+ # Set Headers
665
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
666
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
667
+
668
+ # Serialize Request
669
+ request_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::MergeRequest.mapper()
670
+ request_content = @client.serialize(request_mapper, body)
671
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
672
+
673
+ path_template = 'providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/merge'
674
+
675
+ request_url = @base_url || @client.base_url
676
+
677
+ options = {
678
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
679
+ path_params: {'reservationOrderId' => reservation_order_id},
680
+ query_params: {'api-version' => @client.api_version},
681
+ body: request_content,
682
+ headers: request_headers.merge(custom_headers || {}),
683
+ base_url: request_url
684
+ }
685
+ promise = @client.make_request_async(:post, path_template, options)
686
+
687
+ promise = promise.then do |result|
688
+ http_response = result.response
689
+ status_code = http_response.status
690
+ response_content = http_response.body
691
+ unless status_code == 200 || status_code == 202
692
+ error_model = JSON.load(response_content)
693
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
694
+ end
695
+
696
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
697
+ # Deserialize Response
698
+ if status_code == 200
699
+ begin
700
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
701
+ result_mapper = {
702
+ client_side_validation: true,
703
+ required: false,
704
+ serialized_name: 'parsed_response',
705
+ type: {
706
+ name: 'Sequence',
707
+ element: {
708
+ client_side_validation: true,
709
+ required: false,
710
+ serialized_name: 'ReservationResponseElementType',
711
+ type: {
712
+ name: 'Composite',
713
+ class_name: 'ReservationResponse'
714
+ }
715
+ }
716
+ }
717
+ }
718
+ result.body = @client.deserialize(result_mapper, parsed_response)
719
+ rescue Exception => e
720
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
721
+ end
722
+ end
723
+
724
+ result
725
+ end
726
+
727
+ promise.execute
728
+ end
729
+
730
+ #
731
+ # Updates a `Reservation`.
732
+ #
733
+ # Updates the applied scopes of the `Reservation`.
734
+ #
735
+ # @param reservation_order_id [String] Order Id of the reservation
736
+ # @param reservation_id [String] Id of the Reservation Item
737
+ # @param parameters [Patch] Information needed to patch a reservation item
738
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
739
+ # will be added to the HTTP request.
740
+ #
741
+ # @return [ReservationResponse] operation results.
742
+ #
743
+ def begin_update(reservation_order_id, reservation_id, parameters, custom_headers:nil)
744
+ response = begin_update_async(reservation_order_id, reservation_id, parameters, custom_headers:custom_headers).value!
745
+ response.body unless response.nil?
746
+ end
747
+
748
+ #
749
+ # Updates a `Reservation`.
750
+ #
751
+ # Updates the applied scopes of the `Reservation`.
752
+ #
753
+ # @param reservation_order_id [String] Order Id of the reservation
754
+ # @param reservation_id [String] Id of the Reservation Item
755
+ # @param parameters [Patch] Information needed to patch a reservation item
756
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
757
+ # will be added to the HTTP request.
758
+ #
759
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
760
+ #
761
+ def begin_update_with_http_info(reservation_order_id, reservation_id, parameters, custom_headers:nil)
762
+ begin_update_async(reservation_order_id, reservation_id, parameters, custom_headers:custom_headers).value!
763
+ end
764
+
765
+ #
766
+ # Updates a `Reservation`.
767
+ #
768
+ # Updates the applied scopes of the `Reservation`.
769
+ #
770
+ # @param reservation_order_id [String] Order Id of the reservation
771
+ # @param reservation_id [String] Id of the Reservation Item
772
+ # @param parameters [Patch] Information needed to patch a reservation item
773
+ # @param [Hash{String => String}] A hash of custom headers that will be added
774
+ # to the HTTP request.
775
+ #
776
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
777
+ #
778
+ def begin_update_async(reservation_order_id, reservation_id, parameters, custom_headers:nil)
779
+ fail ArgumentError, 'reservation_order_id is nil' if reservation_order_id.nil?
780
+ fail ArgumentError, 'reservation_id is nil' if reservation_id.nil?
781
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
782
+ fail ArgumentError, 'parameters is nil' if parameters.nil?
783
+
784
+
785
+ request_headers = {}
786
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
787
+
788
+ # Set Headers
789
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
790
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
791
+
792
+ # Serialize Request
793
+ request_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::Patch.mapper()
794
+ request_content = @client.serialize(request_mapper, parameters)
795
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
796
+
797
+ path_template = 'providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}'
798
+
799
+ request_url = @base_url || @client.base_url
800
+
801
+ options = {
802
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
803
+ path_params: {'reservationOrderId' => reservation_order_id,'reservationId' => reservation_id},
804
+ query_params: {'api-version' => @client.api_version},
805
+ body: request_content,
806
+ headers: request_headers.merge(custom_headers || {}),
807
+ base_url: request_url
808
+ }
809
+ promise = @client.make_request_async(:patch, path_template, options)
810
+
811
+ promise = promise.then do |result|
812
+ http_response = result.response
813
+ status_code = http_response.status
814
+ response_content = http_response.body
815
+ unless status_code == 200 || status_code == 202
816
+ error_model = JSON.load(response_content)
817
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
818
+ end
819
+
820
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
821
+ # Deserialize Response
822
+ if status_code == 200
823
+ begin
824
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
825
+ result_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::ReservationResponse.mapper()
826
+ result.body = @client.deserialize(result_mapper, parsed_response)
827
+ rescue Exception => e
828
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
829
+ end
830
+ end
831
+
832
+ result
833
+ end
834
+
835
+ promise.execute
836
+ end
837
+
838
+ #
839
+ # Get `Reservation`s in a given reservation Order
840
+ #
841
+ # List `Reservation`s within a single `ReservationOrder`.
842
+ #
843
+ # @param next_page_link [String] The NextLink from the previous successful call
844
+ # to List operation.
845
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
846
+ # will be added to the HTTP request.
847
+ #
848
+ # @return [ReservationList] operation results.
849
+ #
850
+ def list_next(next_page_link, custom_headers:nil)
851
+ response = list_next_async(next_page_link, custom_headers:custom_headers).value!
852
+ response.body unless response.nil?
853
+ end
854
+
855
+ #
856
+ # Get `Reservation`s in a given reservation Order
857
+ #
858
+ # List `Reservation`s within a single `ReservationOrder`.
859
+ #
860
+ # @param next_page_link [String] The NextLink from the previous successful call
861
+ # to List operation.
862
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
863
+ # will be added to the HTTP request.
864
+ #
865
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
866
+ #
867
+ def list_next_with_http_info(next_page_link, custom_headers:nil)
868
+ list_next_async(next_page_link, custom_headers:custom_headers).value!
869
+ end
870
+
871
+ #
872
+ # Get `Reservation`s in a given reservation Order
873
+ #
874
+ # List `Reservation`s within a single `ReservationOrder`.
875
+ #
876
+ # @param next_page_link [String] The NextLink from the previous successful call
877
+ # to List operation.
878
+ # @param [Hash{String => String}] A hash of custom headers that will be added
879
+ # to the HTTP request.
880
+ #
881
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
882
+ #
883
+ def list_next_async(next_page_link, custom_headers:nil)
884
+ fail ArgumentError, 'next_page_link is nil' if next_page_link.nil?
885
+
886
+
887
+ request_headers = {}
888
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
889
+
890
+ # Set Headers
891
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
892
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
893
+ path_template = '{nextLink}'
894
+
895
+ request_url = @base_url || @client.base_url
896
+
897
+ options = {
898
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
899
+ skip_encoding_path_params: {'nextLink' => next_page_link},
900
+ headers: request_headers.merge(custom_headers || {}),
901
+ base_url: request_url
902
+ }
903
+ promise = @client.make_request_async(:get, path_template, options)
904
+
905
+ promise = promise.then do |result|
906
+ http_response = result.response
907
+ status_code = http_response.status
908
+ response_content = http_response.body
909
+ unless status_code == 200
910
+ error_model = JSON.load(response_content)
911
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
912
+ end
913
+
914
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
915
+ # Deserialize Response
916
+ if status_code == 200
917
+ begin
918
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
919
+ result_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::ReservationList.mapper()
920
+ result.body = @client.deserialize(result_mapper, parsed_response)
921
+ rescue Exception => e
922
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
923
+ end
924
+ end
925
+
926
+ result
927
+ end
928
+
929
+ promise.execute
930
+ end
931
+
932
+ #
933
+ # Get `Reservation` revisions.
934
+ #
935
+ # List of all the revisions for the `Reservation`.
936
+ #
937
+ # @param next_page_link [String] The NextLink from the previous successful call
938
+ # to List operation.
939
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
940
+ # will be added to the HTTP request.
941
+ #
942
+ # @return [ReservationList] operation results.
943
+ #
944
+ def list_revisions_next(next_page_link, custom_headers:nil)
945
+ response = list_revisions_next_async(next_page_link, custom_headers:custom_headers).value!
946
+ response.body unless response.nil?
947
+ end
948
+
949
+ #
950
+ # Get `Reservation` revisions.
951
+ #
952
+ # List of all the revisions for the `Reservation`.
953
+ #
954
+ # @param next_page_link [String] The NextLink from the previous successful call
955
+ # to List operation.
956
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
957
+ # will be added to the HTTP request.
958
+ #
959
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
960
+ #
961
+ def list_revisions_next_with_http_info(next_page_link, custom_headers:nil)
962
+ list_revisions_next_async(next_page_link, custom_headers:custom_headers).value!
963
+ end
964
+
965
+ #
966
+ # Get `Reservation` revisions.
967
+ #
968
+ # List of all the revisions for the `Reservation`.
969
+ #
970
+ # @param next_page_link [String] The NextLink from the previous successful call
971
+ # to List operation.
972
+ # @param [Hash{String => String}] A hash of custom headers that will be added
973
+ # to the HTTP request.
974
+ #
975
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
976
+ #
977
+ def list_revisions_next_async(next_page_link, custom_headers:nil)
978
+ fail ArgumentError, 'next_page_link is nil' if next_page_link.nil?
979
+
980
+
981
+ request_headers = {}
982
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
983
+
984
+ # Set Headers
985
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
986
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
987
+ path_template = '{nextLink}'
988
+
989
+ request_url = @base_url || @client.base_url
990
+
991
+ options = {
992
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
993
+ skip_encoding_path_params: {'nextLink' => next_page_link},
994
+ headers: request_headers.merge(custom_headers || {}),
995
+ base_url: request_url
996
+ }
997
+ promise = @client.make_request_async(:get, path_template, options)
998
+
999
+ promise = promise.then do |result|
1000
+ http_response = result.response
1001
+ status_code = http_response.status
1002
+ response_content = http_response.body
1003
+ unless status_code == 200
1004
+ error_model = JSON.load(response_content)
1005
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
1006
+ end
1007
+
1008
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
1009
+ # Deserialize Response
1010
+ if status_code == 200
1011
+ begin
1012
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
1013
+ result_mapper = Azure::Reservations::Mgmt::V2019_04_01_preview::Models::ReservationList.mapper()
1014
+ result.body = @client.deserialize(result_mapper, parsed_response)
1015
+ rescue Exception => e
1016
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
1017
+ end
1018
+ end
1019
+
1020
+ result
1021
+ end
1022
+
1023
+ promise.execute
1024
+ end
1025
+
1026
+ #
1027
+ # Get `Reservation`s in a given reservation Order
1028
+ #
1029
+ # List `Reservation`s within a single `ReservationOrder`.
1030
+ #
1031
+ # @param reservation_order_id [String] Order Id of the reservation
1032
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
1033
+ # will be added to the HTTP request.
1034
+ #
1035
+ # @return [ReservationList] which provide lazy access to pages of the response.
1036
+ #
1037
+ def list_as_lazy(reservation_order_id, custom_headers:nil)
1038
+ response = list_async(reservation_order_id, custom_headers:custom_headers).value!
1039
+ unless response.nil?
1040
+ page = response.body
1041
+ page.next_method = Proc.new do |next_page_link|
1042
+ list_next_async(next_page_link, custom_headers:custom_headers)
1043
+ end
1044
+ page
1045
+ end
1046
+ end
1047
+
1048
+ #
1049
+ # Get `Reservation` revisions.
1050
+ #
1051
+ # List of all the revisions for the `Reservation`.
1052
+ #
1053
+ # @param reservation_id [String] Id of the Reservation Item
1054
+ # @param reservation_order_id [String] Order Id of the reservation
1055
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
1056
+ # will be added to the HTTP request.
1057
+ #
1058
+ # @return [ReservationList] which provide lazy access to pages of the response.
1059
+ #
1060
+ def list_revisions_as_lazy(reservation_id, reservation_order_id, custom_headers:nil)
1061
+ response = list_revisions_async(reservation_id, reservation_order_id, custom_headers:custom_headers).value!
1062
+ unless response.nil?
1063
+ page = response.body
1064
+ page.next_method = Proc.new do |next_page_link|
1065
+ list_revisions_next_async(next_page_link, custom_headers:custom_headers)
1066
+ end
1067
+ page
1068
+ end
1069
+ end
1070
+
1071
+ end
1072
+ end