1package compute
2
3// Copyright (c) Microsoft and contributors.  All rights reserved.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13//
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
17// Code generated by Microsoft (R) AutoRest Code Generator.
18// Changes may cause incorrect behavior and will be lost if the code is regenerated.
19
20import (
21	"context"
22	"github.com/Azure/go-autorest/autorest"
23	"github.com/Azure/go-autorest/autorest/azure"
24	"github.com/Azure/go-autorest/tracing"
25	"net/http"
26)
27
28// AvailabilitySetsClient is the compute Client
29type AvailabilitySetsClient struct {
30	BaseClient
31}
32
33// NewAvailabilitySetsClient creates an instance of the AvailabilitySetsClient client.
34func NewAvailabilitySetsClient(subscriptionID string) AvailabilitySetsClient {
35	return NewAvailabilitySetsClientWithBaseURI(DefaultBaseURI, subscriptionID)
36}
37
38// NewAvailabilitySetsClientWithBaseURI creates an instance of the AvailabilitySetsClient client.
39func NewAvailabilitySetsClientWithBaseURI(baseURI string, subscriptionID string) AvailabilitySetsClient {
40	return AvailabilitySetsClient{NewWithBaseURI(baseURI, subscriptionID)}
41}
42
43// CreateOrUpdate create or update an availability set.
44// Parameters:
45// resourceGroupName - the name of the resource group.
46// name - the name of the availability set.
47// parameters - parameters supplied to the Create Availability Set operation.
48func (client AvailabilitySetsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, name string, parameters AvailabilitySet) (result AvailabilitySet, err error) {
49	if tracing.IsEnabled() {
50		ctx = tracing.StartSpan(ctx, fqdn+"/AvailabilitySetsClient.CreateOrUpdate")
51		defer func() {
52			sc := -1
53			if result.Response.Response != nil {
54				sc = result.Response.Response.StatusCode
55			}
56			tracing.EndSpan(ctx, sc, err)
57		}()
58	}
59	req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, name, parameters)
60	if err != nil {
61		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "CreateOrUpdate", nil, "Failure preparing request")
62		return
63	}
64
65	resp, err := client.CreateOrUpdateSender(req)
66	if err != nil {
67		result.Response = autorest.Response{Response: resp}
68		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "CreateOrUpdate", resp, "Failure sending request")
69		return
70	}
71
72	result, err = client.CreateOrUpdateResponder(resp)
73	if err != nil {
74		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "CreateOrUpdate", resp, "Failure responding to request")
75	}
76
77	return
78}
79
80// CreateOrUpdatePreparer prepares the CreateOrUpdate request.
81func (client AvailabilitySetsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, name string, parameters AvailabilitySet) (*http.Request, error) {
82	pathParameters := map[string]interface{}{
83		"availabilitySetName": autorest.Encode("path", name),
84		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
85		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
86	}
87
88	const APIVersion = "2016-04-30-preview"
89	queryParameters := map[string]interface{}{
90		"api-version": APIVersion,
91	}
92
93	preparer := autorest.CreatePreparer(
94		autorest.AsContentType("application/json; charset=utf-8"),
95		autorest.AsPut(),
96		autorest.WithBaseURL(client.BaseURI),
97		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}", pathParameters),
98		autorest.WithJSON(parameters),
99		autorest.WithQueryParameters(queryParameters))
100	return preparer.Prepare((&http.Request{}).WithContext(ctx))
101}
102
103// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
104// http.Response Body if it receives an error.
105func (client AvailabilitySetsClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) {
106	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
107	return autorest.SendWithSender(client, req, sd...)
108}
109
110// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
111// closes the http.Response Body.
112func (client AvailabilitySetsClient) CreateOrUpdateResponder(resp *http.Response) (result AvailabilitySet, err error) {
113	err = autorest.Respond(
114		resp,
115		client.ByInspecting(),
116		azure.WithErrorUnlessStatusCode(http.StatusOK),
117		autorest.ByUnmarshallingJSON(&result),
118		autorest.ByClosing())
119	result.Response = autorest.Response{Response: resp}
120	return
121}
122
123// Delete delete an availability set.
124// Parameters:
125// resourceGroupName - the name of the resource group.
126// availabilitySetName - the name of the availability set.
127func (client AvailabilitySetsClient) Delete(ctx context.Context, resourceGroupName string, availabilitySetName string) (result OperationStatusResponse, err error) {
128	if tracing.IsEnabled() {
129		ctx = tracing.StartSpan(ctx, fqdn+"/AvailabilitySetsClient.Delete")
130		defer func() {
131			sc := -1
132			if result.Response.Response != nil {
133				sc = result.Response.Response.StatusCode
134			}
135			tracing.EndSpan(ctx, sc, err)
136		}()
137	}
138	req, err := client.DeletePreparer(ctx, resourceGroupName, availabilitySetName)
139	if err != nil {
140		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "Delete", nil, "Failure preparing request")
141		return
142	}
143
144	resp, err := client.DeleteSender(req)
145	if err != nil {
146		result.Response = autorest.Response{Response: resp}
147		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "Delete", resp, "Failure sending request")
148		return
149	}
150
151	result, err = client.DeleteResponder(resp)
152	if err != nil {
153		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "Delete", resp, "Failure responding to request")
154	}
155
156	return
157}
158
159// DeletePreparer prepares the Delete request.
160func (client AvailabilitySetsClient) DeletePreparer(ctx context.Context, resourceGroupName string, availabilitySetName string) (*http.Request, error) {
161	pathParameters := map[string]interface{}{
162		"availabilitySetName": autorest.Encode("path", availabilitySetName),
163		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
164		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
165	}
166
167	const APIVersion = "2016-04-30-preview"
168	queryParameters := map[string]interface{}{
169		"api-version": APIVersion,
170	}
171
172	preparer := autorest.CreatePreparer(
173		autorest.AsDelete(),
174		autorest.WithBaseURL(client.BaseURI),
175		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}", pathParameters),
176		autorest.WithQueryParameters(queryParameters))
177	return preparer.Prepare((&http.Request{}).WithContext(ctx))
178}
179
180// DeleteSender sends the Delete request. The method will close the
181// http.Response Body if it receives an error.
182func (client AvailabilitySetsClient) DeleteSender(req *http.Request) (*http.Response, error) {
183	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
184	return autorest.SendWithSender(client, req, sd...)
185}
186
187// DeleteResponder handles the response to the Delete request. The method always
188// closes the http.Response Body.
189func (client AvailabilitySetsClient) DeleteResponder(resp *http.Response) (result OperationStatusResponse, err error) {
190	err = autorest.Respond(
191		resp,
192		client.ByInspecting(),
193		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
194		autorest.ByUnmarshallingJSON(&result),
195		autorest.ByClosing())
196	result.Response = autorest.Response{Response: resp}
197	return
198}
199
200// Get retrieves information about an availability set.
201// Parameters:
202// resourceGroupName - the name of the resource group.
203// availabilitySetName - the name of the availability set.
204func (client AvailabilitySetsClient) Get(ctx context.Context, resourceGroupName string, availabilitySetName string) (result AvailabilitySet, err error) {
205	if tracing.IsEnabled() {
206		ctx = tracing.StartSpan(ctx, fqdn+"/AvailabilitySetsClient.Get")
207		defer func() {
208			sc := -1
209			if result.Response.Response != nil {
210				sc = result.Response.Response.StatusCode
211			}
212			tracing.EndSpan(ctx, sc, err)
213		}()
214	}
215	req, err := client.GetPreparer(ctx, resourceGroupName, availabilitySetName)
216	if err != nil {
217		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "Get", nil, "Failure preparing request")
218		return
219	}
220
221	resp, err := client.GetSender(req)
222	if err != nil {
223		result.Response = autorest.Response{Response: resp}
224		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "Get", resp, "Failure sending request")
225		return
226	}
227
228	result, err = client.GetResponder(resp)
229	if err != nil {
230		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "Get", resp, "Failure responding to request")
231	}
232
233	return
234}
235
236// GetPreparer prepares the Get request.
237func (client AvailabilitySetsClient) GetPreparer(ctx context.Context, resourceGroupName string, availabilitySetName string) (*http.Request, error) {
238	pathParameters := map[string]interface{}{
239		"availabilitySetName": autorest.Encode("path", availabilitySetName),
240		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
241		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
242	}
243
244	const APIVersion = "2016-04-30-preview"
245	queryParameters := map[string]interface{}{
246		"api-version": APIVersion,
247	}
248
249	preparer := autorest.CreatePreparer(
250		autorest.AsGet(),
251		autorest.WithBaseURL(client.BaseURI),
252		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}", pathParameters),
253		autorest.WithQueryParameters(queryParameters))
254	return preparer.Prepare((&http.Request{}).WithContext(ctx))
255}
256
257// GetSender sends the Get request. The method will close the
258// http.Response Body if it receives an error.
259func (client AvailabilitySetsClient) GetSender(req *http.Request) (*http.Response, error) {
260	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
261	return autorest.SendWithSender(client, req, sd...)
262}
263
264// GetResponder handles the response to the Get request. The method always
265// closes the http.Response Body.
266func (client AvailabilitySetsClient) GetResponder(resp *http.Response) (result AvailabilitySet, err error) {
267	err = autorest.Respond(
268		resp,
269		client.ByInspecting(),
270		azure.WithErrorUnlessStatusCode(http.StatusOK),
271		autorest.ByUnmarshallingJSON(&result),
272		autorest.ByClosing())
273	result.Response = autorest.Response{Response: resp}
274	return
275}
276
277// List lists all availability sets in a resource group.
278// Parameters:
279// resourceGroupName - the name of the resource group.
280func (client AvailabilitySetsClient) List(ctx context.Context, resourceGroupName string) (result AvailabilitySetListResultPage, err error) {
281	if tracing.IsEnabled() {
282		ctx = tracing.StartSpan(ctx, fqdn+"/AvailabilitySetsClient.List")
283		defer func() {
284			sc := -1
285			if result.aslr.Response.Response != nil {
286				sc = result.aslr.Response.Response.StatusCode
287			}
288			tracing.EndSpan(ctx, sc, err)
289		}()
290	}
291	result.fn = client.listNextResults
292	req, err := client.ListPreparer(ctx, resourceGroupName)
293	if err != nil {
294		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "List", nil, "Failure preparing request")
295		return
296	}
297
298	resp, err := client.ListSender(req)
299	if err != nil {
300		result.aslr.Response = autorest.Response{Response: resp}
301		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "List", resp, "Failure sending request")
302		return
303	}
304
305	result.aslr, err = client.ListResponder(resp)
306	if err != nil {
307		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "List", resp, "Failure responding to request")
308	}
309
310	return
311}
312
313// ListPreparer prepares the List request.
314func (client AvailabilitySetsClient) ListPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) {
315	pathParameters := map[string]interface{}{
316		"resourceGroupName": autorest.Encode("path", resourceGroupName),
317		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
318	}
319
320	const APIVersion = "2016-04-30-preview"
321	queryParameters := map[string]interface{}{
322		"api-version": APIVersion,
323	}
324
325	preparer := autorest.CreatePreparer(
326		autorest.AsGet(),
327		autorest.WithBaseURL(client.BaseURI),
328		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets", pathParameters),
329		autorest.WithQueryParameters(queryParameters))
330	return preparer.Prepare((&http.Request{}).WithContext(ctx))
331}
332
333// ListSender sends the List request. The method will close the
334// http.Response Body if it receives an error.
335func (client AvailabilitySetsClient) ListSender(req *http.Request) (*http.Response, error) {
336	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
337	return autorest.SendWithSender(client, req, sd...)
338}
339
340// ListResponder handles the response to the List request. The method always
341// closes the http.Response Body.
342func (client AvailabilitySetsClient) ListResponder(resp *http.Response) (result AvailabilitySetListResult, err error) {
343	err = autorest.Respond(
344		resp,
345		client.ByInspecting(),
346		azure.WithErrorUnlessStatusCode(http.StatusOK),
347		autorest.ByUnmarshallingJSON(&result),
348		autorest.ByClosing())
349	result.Response = autorest.Response{Response: resp}
350	return
351}
352
353// listNextResults retrieves the next set of results, if any.
354func (client AvailabilitySetsClient) listNextResults(ctx context.Context, lastResults AvailabilitySetListResult) (result AvailabilitySetListResult, err error) {
355	req, err := lastResults.availabilitySetListResultPreparer(ctx)
356	if err != nil {
357		return result, autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "listNextResults", nil, "Failure preparing next results request")
358	}
359	if req == nil {
360		return
361	}
362	resp, err := client.ListSender(req)
363	if err != nil {
364		result.Response = autorest.Response{Response: resp}
365		return result, autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "listNextResults", resp, "Failure sending next results request")
366	}
367	result, err = client.ListResponder(resp)
368	if err != nil {
369		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "listNextResults", resp, "Failure responding to next results request")
370	}
371	return
372}
373
374// ListComplete enumerates all values, automatically crossing page boundaries as required.
375func (client AvailabilitySetsClient) ListComplete(ctx context.Context, resourceGroupName string) (result AvailabilitySetListResultIterator, err error) {
376	if tracing.IsEnabled() {
377		ctx = tracing.StartSpan(ctx, fqdn+"/AvailabilitySetsClient.List")
378		defer func() {
379			sc := -1
380			if result.Response().Response.Response != nil {
381				sc = result.page.Response().Response.Response.StatusCode
382			}
383			tracing.EndSpan(ctx, sc, err)
384		}()
385	}
386	result.page, err = client.List(ctx, resourceGroupName)
387	return
388}
389
390// ListAvailableSizes lists all available virtual machine sizes that can be used to create a new virtual machine in an
391// existing availability set.
392// Parameters:
393// resourceGroupName - the name of the resource group.
394// availabilitySetName - the name of the availability set.
395func (client AvailabilitySetsClient) ListAvailableSizes(ctx context.Context, resourceGroupName string, availabilitySetName string) (result VirtualMachineSizeListResult, err error) {
396	if tracing.IsEnabled() {
397		ctx = tracing.StartSpan(ctx, fqdn+"/AvailabilitySetsClient.ListAvailableSizes")
398		defer func() {
399			sc := -1
400			if result.Response.Response != nil {
401				sc = result.Response.Response.StatusCode
402			}
403			tracing.EndSpan(ctx, sc, err)
404		}()
405	}
406	req, err := client.ListAvailableSizesPreparer(ctx, resourceGroupName, availabilitySetName)
407	if err != nil {
408		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "ListAvailableSizes", nil, "Failure preparing request")
409		return
410	}
411
412	resp, err := client.ListAvailableSizesSender(req)
413	if err != nil {
414		result.Response = autorest.Response{Response: resp}
415		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "ListAvailableSizes", resp, "Failure sending request")
416		return
417	}
418
419	result, err = client.ListAvailableSizesResponder(resp)
420	if err != nil {
421		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "ListAvailableSizes", resp, "Failure responding to request")
422	}
423
424	return
425}
426
427// ListAvailableSizesPreparer prepares the ListAvailableSizes request.
428func (client AvailabilitySetsClient) ListAvailableSizesPreparer(ctx context.Context, resourceGroupName string, availabilitySetName string) (*http.Request, error) {
429	pathParameters := map[string]interface{}{
430		"availabilitySetName": autorest.Encode("path", availabilitySetName),
431		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
432		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
433	}
434
435	const APIVersion = "2016-04-30-preview"
436	queryParameters := map[string]interface{}{
437		"api-version": APIVersion,
438	}
439
440	preparer := autorest.CreatePreparer(
441		autorest.AsGet(),
442		autorest.WithBaseURL(client.BaseURI),
443		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}/vmSizes", pathParameters),
444		autorest.WithQueryParameters(queryParameters))
445	return preparer.Prepare((&http.Request{}).WithContext(ctx))
446}
447
448// ListAvailableSizesSender sends the ListAvailableSizes request. The method will close the
449// http.Response Body if it receives an error.
450func (client AvailabilitySetsClient) ListAvailableSizesSender(req *http.Request) (*http.Response, error) {
451	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
452	return autorest.SendWithSender(client, req, sd...)
453}
454
455// ListAvailableSizesResponder handles the response to the ListAvailableSizes request. The method always
456// closes the http.Response Body.
457func (client AvailabilitySetsClient) ListAvailableSizesResponder(resp *http.Response) (result VirtualMachineSizeListResult, err error) {
458	err = autorest.Respond(
459		resp,
460		client.ByInspecting(),
461		azure.WithErrorUnlessStatusCode(http.StatusOK),
462		autorest.ByUnmarshallingJSON(&result),
463		autorest.ByClosing())
464	result.Response = autorest.Response{Response: resp}
465	return
466}
467
468// ListBySubscription lists all availability sets in a subscription.
469func (client AvailabilitySetsClient) ListBySubscription(ctx context.Context) (result AvailabilitySetListResultPage, err error) {
470	if tracing.IsEnabled() {
471		ctx = tracing.StartSpan(ctx, fqdn+"/AvailabilitySetsClient.ListBySubscription")
472		defer func() {
473			sc := -1
474			if result.aslr.Response.Response != nil {
475				sc = result.aslr.Response.Response.StatusCode
476			}
477			tracing.EndSpan(ctx, sc, err)
478		}()
479	}
480	result.fn = client.listBySubscriptionNextResults
481	req, err := client.ListBySubscriptionPreparer(ctx)
482	if err != nil {
483		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "ListBySubscription", nil, "Failure preparing request")
484		return
485	}
486
487	resp, err := client.ListBySubscriptionSender(req)
488	if err != nil {
489		result.aslr.Response = autorest.Response{Response: resp}
490		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "ListBySubscription", resp, "Failure sending request")
491		return
492	}
493
494	result.aslr, err = client.ListBySubscriptionResponder(resp)
495	if err != nil {
496		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "ListBySubscription", resp, "Failure responding to request")
497	}
498
499	return
500}
501
502// ListBySubscriptionPreparer prepares the ListBySubscription request.
503func (client AvailabilitySetsClient) ListBySubscriptionPreparer(ctx context.Context) (*http.Request, error) {
504	pathParameters := map[string]interface{}{
505		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
506	}
507
508	const APIVersion = "2016-04-30-preview"
509	queryParameters := map[string]interface{}{
510		"api-version": APIVersion,
511	}
512
513	preparer := autorest.CreatePreparer(
514		autorest.AsGet(),
515		autorest.WithBaseURL(client.BaseURI),
516		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Compute/availabilitySets", pathParameters),
517		autorest.WithQueryParameters(queryParameters))
518	return preparer.Prepare((&http.Request{}).WithContext(ctx))
519}
520
521// ListBySubscriptionSender sends the ListBySubscription request. The method will close the
522// http.Response Body if it receives an error.
523func (client AvailabilitySetsClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) {
524	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
525	return autorest.SendWithSender(client, req, sd...)
526}
527
528// ListBySubscriptionResponder handles the response to the ListBySubscription request. The method always
529// closes the http.Response Body.
530func (client AvailabilitySetsClient) ListBySubscriptionResponder(resp *http.Response) (result AvailabilitySetListResult, err error) {
531	err = autorest.Respond(
532		resp,
533		client.ByInspecting(),
534		azure.WithErrorUnlessStatusCode(http.StatusOK),
535		autorest.ByUnmarshallingJSON(&result),
536		autorest.ByClosing())
537	result.Response = autorest.Response{Response: resp}
538	return
539}
540
541// listBySubscriptionNextResults retrieves the next set of results, if any.
542func (client AvailabilitySetsClient) listBySubscriptionNextResults(ctx context.Context, lastResults AvailabilitySetListResult) (result AvailabilitySetListResult, err error) {
543	req, err := lastResults.availabilitySetListResultPreparer(ctx)
544	if err != nil {
545		return result, autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "listBySubscriptionNextResults", nil, "Failure preparing next results request")
546	}
547	if req == nil {
548		return
549	}
550	resp, err := client.ListBySubscriptionSender(req)
551	if err != nil {
552		result.Response = autorest.Response{Response: resp}
553		return result, autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "listBySubscriptionNextResults", resp, "Failure sending next results request")
554	}
555	result, err = client.ListBySubscriptionResponder(resp)
556	if err != nil {
557		err = autorest.NewErrorWithError(err, "compute.AvailabilitySetsClient", "listBySubscriptionNextResults", resp, "Failure responding to next results request")
558	}
559	return
560}
561
562// ListBySubscriptionComplete enumerates all values, automatically crossing page boundaries as required.
563func (client AvailabilitySetsClient) ListBySubscriptionComplete(ctx context.Context) (result AvailabilitySetListResultIterator, err error) {
564	if tracing.IsEnabled() {
565		ctx = tracing.StartSpan(ctx, fqdn+"/AvailabilitySetsClient.ListBySubscription")
566		defer func() {
567			sc := -1
568			if result.Response().Response.Response != nil {
569				sc = result.page.Response().Response.Response.StatusCode
570			}
571			tracing.EndSpan(ctx, sc, err)
572		}()
573	}
574	result.page, err = client.ListBySubscription(ctx)
575	return
576}
577