1package web
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5//
6// Code generated by Microsoft (R) AutoRest Code Generator.
7// Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
9import (
10	"context"
11	"github.com/Azure/go-autorest/autorest"
12	"github.com/Azure/go-autorest/autorest/azure"
13	"github.com/Azure/go-autorest/tracing"
14	"net/http"
15)
16
17// HostingEnvironmentsClient is the webSite Management Client
18type HostingEnvironmentsClient struct {
19	BaseClient
20}
21
22// NewHostingEnvironmentsClient creates an instance of the HostingEnvironmentsClient client.
23func NewHostingEnvironmentsClient(subscriptionID string) HostingEnvironmentsClient {
24	return NewHostingEnvironmentsClientWithBaseURI(DefaultBaseURI, subscriptionID)
25}
26
27// NewHostingEnvironmentsClientWithBaseURI creates an instance of the HostingEnvironmentsClient client using a custom
28// endpoint.  Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure
29// stack).
30func NewHostingEnvironmentsClientWithBaseURI(baseURI string, subscriptionID string) HostingEnvironmentsClient {
31	return HostingEnvironmentsClient{NewWithBaseURI(baseURI, subscriptionID)}
32}
33
34// CreateOrUpdateHostingEnvironment sends the create or update hosting environment request.
35// Parameters:
36// resourceGroupName - name of resource group
37// name - name of hostingEnvironment (App Service Environment)
38// hostingEnvironmentEnvelope - properties of hostingEnvironment (App Service Environment)
39func (client HostingEnvironmentsClient) CreateOrUpdateHostingEnvironment(ctx context.Context, resourceGroupName string, name string, hostingEnvironmentEnvelope HostingEnvironment) (result HostingEnvironmentsCreateOrUpdateHostingEnvironmentFuture, err error) {
40	if tracing.IsEnabled() {
41		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.CreateOrUpdateHostingEnvironment")
42		defer func() {
43			sc := -1
44			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
45				sc = result.FutureAPI.Response().StatusCode
46			}
47			tracing.EndSpan(ctx, sc, err)
48		}()
49	}
50	req, err := client.CreateOrUpdateHostingEnvironmentPreparer(ctx, resourceGroupName, name, hostingEnvironmentEnvelope)
51	if err != nil {
52		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "CreateOrUpdateHostingEnvironment", nil, "Failure preparing request")
53		return
54	}
55
56	result, err = client.CreateOrUpdateHostingEnvironmentSender(req)
57	if err != nil {
58		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "CreateOrUpdateHostingEnvironment", nil, "Failure sending request")
59		return
60	}
61
62	return
63}
64
65// CreateOrUpdateHostingEnvironmentPreparer prepares the CreateOrUpdateHostingEnvironment request.
66func (client HostingEnvironmentsClient) CreateOrUpdateHostingEnvironmentPreparer(ctx context.Context, resourceGroupName string, name string, hostingEnvironmentEnvelope HostingEnvironment) (*http.Request, error) {
67	pathParameters := map[string]interface{}{
68		"name":              autorest.Encode("path", name),
69		"resourceGroupName": autorest.Encode("path", resourceGroupName),
70		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
71	}
72
73	const APIVersion = "2015-08-01"
74	queryParameters := map[string]interface{}{
75		"api-version": APIVersion,
76	}
77
78	preparer := autorest.CreatePreparer(
79		autorest.AsContentType("application/json; charset=utf-8"),
80		autorest.AsPut(),
81		autorest.WithBaseURL(client.BaseURI),
82		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}", pathParameters),
83		autorest.WithJSON(hostingEnvironmentEnvelope),
84		autorest.WithQueryParameters(queryParameters))
85	return preparer.Prepare((&http.Request{}).WithContext(ctx))
86}
87
88// CreateOrUpdateHostingEnvironmentSender sends the CreateOrUpdateHostingEnvironment request. The method will close the
89// http.Response Body if it receives an error.
90func (client HostingEnvironmentsClient) CreateOrUpdateHostingEnvironmentSender(req *http.Request) (future HostingEnvironmentsCreateOrUpdateHostingEnvironmentFuture, err error) {
91	var resp *http.Response
92	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
93	if err != nil {
94		return
95	}
96	var azf azure.Future
97	azf, err = azure.NewFutureFromResponse(resp)
98	future.FutureAPI = &azf
99	future.Result = future.result
100	return
101}
102
103// CreateOrUpdateHostingEnvironmentResponder handles the response to the CreateOrUpdateHostingEnvironment request. The method always
104// closes the http.Response Body.
105func (client HostingEnvironmentsClient) CreateOrUpdateHostingEnvironmentResponder(resp *http.Response) (result HostingEnvironment, err error) {
106	err = autorest.Respond(
107		resp,
108		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusBadRequest, http.StatusNotFound, http.StatusConflict),
109		autorest.ByUnmarshallingJSON(&result),
110		autorest.ByClosing())
111	result.Response = autorest.Response{Response: resp}
112	return
113}
114
115// CreateOrUpdateMultiRolePool sends the create or update multi role pool request.
116// Parameters:
117// resourceGroupName - name of resource group
118// name - name of hostingEnvironment (App Service Environment)
119// multiRolePoolEnvelope - properties of multiRole pool
120func (client HostingEnvironmentsClient) CreateOrUpdateMultiRolePool(ctx context.Context, resourceGroupName string, name string, multiRolePoolEnvelope WorkerPool) (result HostingEnvironmentsCreateOrUpdateMultiRolePoolFuture, err error) {
121	if tracing.IsEnabled() {
122		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.CreateOrUpdateMultiRolePool")
123		defer func() {
124			sc := -1
125			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
126				sc = result.FutureAPI.Response().StatusCode
127			}
128			tracing.EndSpan(ctx, sc, err)
129		}()
130	}
131	req, err := client.CreateOrUpdateMultiRolePoolPreparer(ctx, resourceGroupName, name, multiRolePoolEnvelope)
132	if err != nil {
133		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "CreateOrUpdateMultiRolePool", nil, "Failure preparing request")
134		return
135	}
136
137	result, err = client.CreateOrUpdateMultiRolePoolSender(req)
138	if err != nil {
139		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "CreateOrUpdateMultiRolePool", nil, "Failure sending request")
140		return
141	}
142
143	return
144}
145
146// CreateOrUpdateMultiRolePoolPreparer prepares the CreateOrUpdateMultiRolePool request.
147func (client HostingEnvironmentsClient) CreateOrUpdateMultiRolePoolPreparer(ctx context.Context, resourceGroupName string, name string, multiRolePoolEnvelope WorkerPool) (*http.Request, error) {
148	pathParameters := map[string]interface{}{
149		"name":              autorest.Encode("path", name),
150		"resourceGroupName": autorest.Encode("path", resourceGroupName),
151		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
152	}
153
154	const APIVersion = "2015-08-01"
155	queryParameters := map[string]interface{}{
156		"api-version": APIVersion,
157	}
158
159	preparer := autorest.CreatePreparer(
160		autorest.AsContentType("application/json; charset=utf-8"),
161		autorest.AsPut(),
162		autorest.WithBaseURL(client.BaseURI),
163		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default", pathParameters),
164		autorest.WithJSON(multiRolePoolEnvelope),
165		autorest.WithQueryParameters(queryParameters))
166	return preparer.Prepare((&http.Request{}).WithContext(ctx))
167}
168
169// CreateOrUpdateMultiRolePoolSender sends the CreateOrUpdateMultiRolePool request. The method will close the
170// http.Response Body if it receives an error.
171func (client HostingEnvironmentsClient) CreateOrUpdateMultiRolePoolSender(req *http.Request) (future HostingEnvironmentsCreateOrUpdateMultiRolePoolFuture, err error) {
172	var resp *http.Response
173	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
174	if err != nil {
175		return
176	}
177	var azf azure.Future
178	azf, err = azure.NewFutureFromResponse(resp)
179	future.FutureAPI = &azf
180	future.Result = future.result
181	return
182}
183
184// CreateOrUpdateMultiRolePoolResponder handles the response to the CreateOrUpdateMultiRolePool request. The method always
185// closes the http.Response Body.
186func (client HostingEnvironmentsClient) CreateOrUpdateMultiRolePoolResponder(resp *http.Response) (result WorkerPool, err error) {
187	err = autorest.Respond(
188		resp,
189		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusBadRequest, http.StatusNotFound, http.StatusConflict),
190		autorest.ByUnmarshallingJSON(&result),
191		autorest.ByClosing())
192	result.Response = autorest.Response{Response: resp}
193	return
194}
195
196// CreateOrUpdateWorkerPool sends the create or update worker pool request.
197// Parameters:
198// resourceGroupName - name of resource group
199// name - name of hostingEnvironment (App Service Environment)
200// workerPoolName - name of worker pool
201// workerPoolEnvelope - properties of worker pool
202func (client HostingEnvironmentsClient) CreateOrUpdateWorkerPool(ctx context.Context, resourceGroupName string, name string, workerPoolName string, workerPoolEnvelope WorkerPool) (result HostingEnvironmentsCreateOrUpdateWorkerPoolFuture, err error) {
203	if tracing.IsEnabled() {
204		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.CreateOrUpdateWorkerPool")
205		defer func() {
206			sc := -1
207			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
208				sc = result.FutureAPI.Response().StatusCode
209			}
210			tracing.EndSpan(ctx, sc, err)
211		}()
212	}
213	req, err := client.CreateOrUpdateWorkerPoolPreparer(ctx, resourceGroupName, name, workerPoolName, workerPoolEnvelope)
214	if err != nil {
215		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "CreateOrUpdateWorkerPool", nil, "Failure preparing request")
216		return
217	}
218
219	result, err = client.CreateOrUpdateWorkerPoolSender(req)
220	if err != nil {
221		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "CreateOrUpdateWorkerPool", nil, "Failure sending request")
222		return
223	}
224
225	return
226}
227
228// CreateOrUpdateWorkerPoolPreparer prepares the CreateOrUpdateWorkerPool request.
229func (client HostingEnvironmentsClient) CreateOrUpdateWorkerPoolPreparer(ctx context.Context, resourceGroupName string, name string, workerPoolName string, workerPoolEnvelope WorkerPool) (*http.Request, error) {
230	pathParameters := map[string]interface{}{
231		"name":              autorest.Encode("path", name),
232		"resourceGroupName": autorest.Encode("path", resourceGroupName),
233		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
234		"workerPoolName":    autorest.Encode("path", workerPoolName),
235	}
236
237	const APIVersion = "2015-08-01"
238	queryParameters := map[string]interface{}{
239		"api-version": APIVersion,
240	}
241
242	preparer := autorest.CreatePreparer(
243		autorest.AsContentType("application/json; charset=utf-8"),
244		autorest.AsPut(),
245		autorest.WithBaseURL(client.BaseURI),
246		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}", pathParameters),
247		autorest.WithJSON(workerPoolEnvelope),
248		autorest.WithQueryParameters(queryParameters))
249	return preparer.Prepare((&http.Request{}).WithContext(ctx))
250}
251
252// CreateOrUpdateWorkerPoolSender sends the CreateOrUpdateWorkerPool request. The method will close the
253// http.Response Body if it receives an error.
254func (client HostingEnvironmentsClient) CreateOrUpdateWorkerPoolSender(req *http.Request) (future HostingEnvironmentsCreateOrUpdateWorkerPoolFuture, err error) {
255	var resp *http.Response
256	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
257	if err != nil {
258		return
259	}
260	var azf azure.Future
261	azf, err = azure.NewFutureFromResponse(resp)
262	future.FutureAPI = &azf
263	future.Result = future.result
264	return
265}
266
267// CreateOrUpdateWorkerPoolResponder handles the response to the CreateOrUpdateWorkerPool request. The method always
268// closes the http.Response Body.
269func (client HostingEnvironmentsClient) CreateOrUpdateWorkerPoolResponder(resp *http.Response) (result WorkerPool, err error) {
270	err = autorest.Respond(
271		resp,
272		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusBadRequest, http.StatusNotFound, http.StatusConflict),
273		autorest.ByUnmarshallingJSON(&result),
274		autorest.ByClosing())
275	result.Response = autorest.Response{Response: resp}
276	return
277}
278
279// DeleteHostingEnvironment sends the delete hosting environment request.
280// Parameters:
281// resourceGroupName - name of resource group
282// name - name of hostingEnvironment (App Service Environment)
283// forceDelete - delete even if the hostingEnvironment (App Service Environment) contains resources
284func (client HostingEnvironmentsClient) DeleteHostingEnvironment(ctx context.Context, resourceGroupName string, name string, forceDelete *bool) (result HostingEnvironmentsDeleteHostingEnvironmentFuture, err error) {
285	if tracing.IsEnabled() {
286		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.DeleteHostingEnvironment")
287		defer func() {
288			sc := -1
289			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
290				sc = result.FutureAPI.Response().StatusCode
291			}
292			tracing.EndSpan(ctx, sc, err)
293		}()
294	}
295	req, err := client.DeleteHostingEnvironmentPreparer(ctx, resourceGroupName, name, forceDelete)
296	if err != nil {
297		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "DeleteHostingEnvironment", nil, "Failure preparing request")
298		return
299	}
300
301	result, err = client.DeleteHostingEnvironmentSender(req)
302	if err != nil {
303		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "DeleteHostingEnvironment", nil, "Failure sending request")
304		return
305	}
306
307	return
308}
309
310// DeleteHostingEnvironmentPreparer prepares the DeleteHostingEnvironment request.
311func (client HostingEnvironmentsClient) DeleteHostingEnvironmentPreparer(ctx context.Context, resourceGroupName string, name string, forceDelete *bool) (*http.Request, error) {
312	pathParameters := map[string]interface{}{
313		"name":              autorest.Encode("path", name),
314		"resourceGroupName": autorest.Encode("path", resourceGroupName),
315		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
316	}
317
318	const APIVersion = "2015-08-01"
319	queryParameters := map[string]interface{}{
320		"api-version": APIVersion,
321	}
322	if forceDelete != nil {
323		queryParameters["forceDelete"] = autorest.Encode("query", *forceDelete)
324	}
325
326	preparer := autorest.CreatePreparer(
327		autorest.AsDelete(),
328		autorest.WithBaseURL(client.BaseURI),
329		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}", pathParameters),
330		autorest.WithQueryParameters(queryParameters))
331	return preparer.Prepare((&http.Request{}).WithContext(ctx))
332}
333
334// DeleteHostingEnvironmentSender sends the DeleteHostingEnvironment request. The method will close the
335// http.Response Body if it receives an error.
336func (client HostingEnvironmentsClient) DeleteHostingEnvironmentSender(req *http.Request) (future HostingEnvironmentsDeleteHostingEnvironmentFuture, err error) {
337	var resp *http.Response
338	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
339	if err != nil {
340		return
341	}
342	var azf azure.Future
343	azf, err = azure.NewFutureFromResponse(resp)
344	future.FutureAPI = &azf
345	future.Result = future.result
346	return
347}
348
349// DeleteHostingEnvironmentResponder handles the response to the DeleteHostingEnvironment request. The method always
350// closes the http.Response Body.
351func (client HostingEnvironmentsClient) DeleteHostingEnvironmentResponder(resp *http.Response) (result SetObject, err error) {
352	err = autorest.Respond(
353		resp,
354		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusBadRequest, http.StatusNotFound, http.StatusConflict),
355		autorest.ByUnmarshallingJSON(&result),
356		autorest.ByClosing())
357	result.Response = autorest.Response{Response: resp}
358	return
359}
360
361// GetHostingEnvironment sends the get hosting environment request.
362// Parameters:
363// resourceGroupName - name of resource group
364// name - name of hostingEnvironment (App Service Environment)
365func (client HostingEnvironmentsClient) GetHostingEnvironment(ctx context.Context, resourceGroupName string, name string) (result HostingEnvironment, err error) {
366	if tracing.IsEnabled() {
367		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironment")
368		defer func() {
369			sc := -1
370			if result.Response.Response != nil {
371				sc = result.Response.Response.StatusCode
372			}
373			tracing.EndSpan(ctx, sc, err)
374		}()
375	}
376	req, err := client.GetHostingEnvironmentPreparer(ctx, resourceGroupName, name)
377	if err != nil {
378		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironment", nil, "Failure preparing request")
379		return
380	}
381
382	resp, err := client.GetHostingEnvironmentSender(req)
383	if err != nil {
384		result.Response = autorest.Response{Response: resp}
385		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironment", resp, "Failure sending request")
386		return
387	}
388
389	result, err = client.GetHostingEnvironmentResponder(resp)
390	if err != nil {
391		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironment", resp, "Failure responding to request")
392		return
393	}
394
395	return
396}
397
398// GetHostingEnvironmentPreparer prepares the GetHostingEnvironment request.
399func (client HostingEnvironmentsClient) GetHostingEnvironmentPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
400	pathParameters := map[string]interface{}{
401		"name":              autorest.Encode("path", name),
402		"resourceGroupName": autorest.Encode("path", resourceGroupName),
403		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
404	}
405
406	const APIVersion = "2015-08-01"
407	queryParameters := map[string]interface{}{
408		"api-version": APIVersion,
409	}
410
411	preparer := autorest.CreatePreparer(
412		autorest.AsGet(),
413		autorest.WithBaseURL(client.BaseURI),
414		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}", pathParameters),
415		autorest.WithQueryParameters(queryParameters))
416	return preparer.Prepare((&http.Request{}).WithContext(ctx))
417}
418
419// GetHostingEnvironmentSender sends the GetHostingEnvironment request. The method will close the
420// http.Response Body if it receives an error.
421func (client HostingEnvironmentsClient) GetHostingEnvironmentSender(req *http.Request) (*http.Response, error) {
422	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
423}
424
425// GetHostingEnvironmentResponder handles the response to the GetHostingEnvironment request. The method always
426// closes the http.Response Body.
427func (client HostingEnvironmentsClient) GetHostingEnvironmentResponder(resp *http.Response) (result HostingEnvironment, err error) {
428	err = autorest.Respond(
429		resp,
430		azure.WithErrorUnlessStatusCode(http.StatusOK),
431		autorest.ByUnmarshallingJSON(&result),
432		autorest.ByClosing())
433	result.Response = autorest.Response{Response: resp}
434	return
435}
436
437// GetHostingEnvironmentCapacities sends the get hosting environment capacities request.
438// Parameters:
439// resourceGroupName - name of resource group
440// name - name of hostingEnvironment (App Service Environment)
441func (client HostingEnvironmentsClient) GetHostingEnvironmentCapacities(ctx context.Context, resourceGroupName string, name string) (result StampCapacityCollectionPage, err error) {
442	if tracing.IsEnabled() {
443		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentCapacities")
444		defer func() {
445			sc := -1
446			if result.scc.Response.Response != nil {
447				sc = result.scc.Response.Response.StatusCode
448			}
449			tracing.EndSpan(ctx, sc, err)
450		}()
451	}
452	result.fn = client.getHostingEnvironmentCapacitiesNextResults
453	req, err := client.GetHostingEnvironmentCapacitiesPreparer(ctx, resourceGroupName, name)
454	if err != nil {
455		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentCapacities", nil, "Failure preparing request")
456		return
457	}
458
459	resp, err := client.GetHostingEnvironmentCapacitiesSender(req)
460	if err != nil {
461		result.scc.Response = autorest.Response{Response: resp}
462		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentCapacities", resp, "Failure sending request")
463		return
464	}
465
466	result.scc, err = client.GetHostingEnvironmentCapacitiesResponder(resp)
467	if err != nil {
468		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentCapacities", resp, "Failure responding to request")
469		return
470	}
471	if result.scc.hasNextLink() && result.scc.IsEmpty() {
472		err = result.NextWithContext(ctx)
473		return
474	}
475
476	return
477}
478
479// GetHostingEnvironmentCapacitiesPreparer prepares the GetHostingEnvironmentCapacities request.
480func (client HostingEnvironmentsClient) GetHostingEnvironmentCapacitiesPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
481	pathParameters := map[string]interface{}{
482		"name":              autorest.Encode("path", name),
483		"resourceGroupName": autorest.Encode("path", resourceGroupName),
484		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
485	}
486
487	const APIVersion = "2015-08-01"
488	queryParameters := map[string]interface{}{
489		"api-version": APIVersion,
490	}
491
492	preparer := autorest.CreatePreparer(
493		autorest.AsGet(),
494		autorest.WithBaseURL(client.BaseURI),
495		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/capacities/compute", pathParameters),
496		autorest.WithQueryParameters(queryParameters))
497	return preparer.Prepare((&http.Request{}).WithContext(ctx))
498}
499
500// GetHostingEnvironmentCapacitiesSender sends the GetHostingEnvironmentCapacities request. The method will close the
501// http.Response Body if it receives an error.
502func (client HostingEnvironmentsClient) GetHostingEnvironmentCapacitiesSender(req *http.Request) (*http.Response, error) {
503	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
504}
505
506// GetHostingEnvironmentCapacitiesResponder handles the response to the GetHostingEnvironmentCapacities request. The method always
507// closes the http.Response Body.
508func (client HostingEnvironmentsClient) GetHostingEnvironmentCapacitiesResponder(resp *http.Response) (result StampCapacityCollection, err error) {
509	err = autorest.Respond(
510		resp,
511		azure.WithErrorUnlessStatusCode(http.StatusOK),
512		autorest.ByUnmarshallingJSON(&result),
513		autorest.ByClosing())
514	result.Response = autorest.Response{Response: resp}
515	return
516}
517
518// getHostingEnvironmentCapacitiesNextResults retrieves the next set of results, if any.
519func (client HostingEnvironmentsClient) getHostingEnvironmentCapacitiesNextResults(ctx context.Context, lastResults StampCapacityCollection) (result StampCapacityCollection, err error) {
520	req, err := lastResults.stampCapacityCollectionPreparer(ctx)
521	if err != nil {
522		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentCapacitiesNextResults", nil, "Failure preparing next results request")
523	}
524	if req == nil {
525		return
526	}
527	resp, err := client.GetHostingEnvironmentCapacitiesSender(req)
528	if err != nil {
529		result.Response = autorest.Response{Response: resp}
530		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentCapacitiesNextResults", resp, "Failure sending next results request")
531	}
532	result, err = client.GetHostingEnvironmentCapacitiesResponder(resp)
533	if err != nil {
534		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentCapacitiesNextResults", resp, "Failure responding to next results request")
535	}
536	return
537}
538
539// GetHostingEnvironmentCapacitiesComplete enumerates all values, automatically crossing page boundaries as required.
540func (client HostingEnvironmentsClient) GetHostingEnvironmentCapacitiesComplete(ctx context.Context, resourceGroupName string, name string) (result StampCapacityCollectionIterator, err error) {
541	if tracing.IsEnabled() {
542		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentCapacities")
543		defer func() {
544			sc := -1
545			if result.Response().Response.Response != nil {
546				sc = result.page.Response().Response.Response.StatusCode
547			}
548			tracing.EndSpan(ctx, sc, err)
549		}()
550	}
551	result.page, err = client.GetHostingEnvironmentCapacities(ctx, resourceGroupName, name)
552	return
553}
554
555// GetHostingEnvironmentDiagnostics sends the get hosting environment diagnostics request.
556// Parameters:
557// resourceGroupName - name of resource group
558// name - name of hostingEnvironment (App Service Environment)
559func (client HostingEnvironmentsClient) GetHostingEnvironmentDiagnostics(ctx context.Context, resourceGroupName string, name string) (result ListHostingEnvironmentDiagnostics, err error) {
560	if tracing.IsEnabled() {
561		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentDiagnostics")
562		defer func() {
563			sc := -1
564			if result.Response.Response != nil {
565				sc = result.Response.Response.StatusCode
566			}
567			tracing.EndSpan(ctx, sc, err)
568		}()
569	}
570	req, err := client.GetHostingEnvironmentDiagnosticsPreparer(ctx, resourceGroupName, name)
571	if err != nil {
572		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentDiagnostics", nil, "Failure preparing request")
573		return
574	}
575
576	resp, err := client.GetHostingEnvironmentDiagnosticsSender(req)
577	if err != nil {
578		result.Response = autorest.Response{Response: resp}
579		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentDiagnostics", resp, "Failure sending request")
580		return
581	}
582
583	result, err = client.GetHostingEnvironmentDiagnosticsResponder(resp)
584	if err != nil {
585		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentDiagnostics", resp, "Failure responding to request")
586		return
587	}
588
589	return
590}
591
592// GetHostingEnvironmentDiagnosticsPreparer prepares the GetHostingEnvironmentDiagnostics request.
593func (client HostingEnvironmentsClient) GetHostingEnvironmentDiagnosticsPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
594	pathParameters := map[string]interface{}{
595		"name":              autorest.Encode("path", name),
596		"resourceGroupName": autorest.Encode("path", resourceGroupName),
597		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
598	}
599
600	const APIVersion = "2015-08-01"
601	queryParameters := map[string]interface{}{
602		"api-version": APIVersion,
603	}
604
605	preparer := autorest.CreatePreparer(
606		autorest.AsGet(),
607		autorest.WithBaseURL(client.BaseURI),
608		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/diagnostics", pathParameters),
609		autorest.WithQueryParameters(queryParameters))
610	return preparer.Prepare((&http.Request{}).WithContext(ctx))
611}
612
613// GetHostingEnvironmentDiagnosticsSender sends the GetHostingEnvironmentDiagnostics request. The method will close the
614// http.Response Body if it receives an error.
615func (client HostingEnvironmentsClient) GetHostingEnvironmentDiagnosticsSender(req *http.Request) (*http.Response, error) {
616	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
617}
618
619// GetHostingEnvironmentDiagnosticsResponder handles the response to the GetHostingEnvironmentDiagnostics request. The method always
620// closes the http.Response Body.
621func (client HostingEnvironmentsClient) GetHostingEnvironmentDiagnosticsResponder(resp *http.Response) (result ListHostingEnvironmentDiagnostics, err error) {
622	err = autorest.Respond(
623		resp,
624		azure.WithErrorUnlessStatusCode(http.StatusOK),
625		autorest.ByUnmarshallingJSON(&result.Value),
626		autorest.ByClosing())
627	result.Response = autorest.Response{Response: resp}
628	return
629}
630
631// GetHostingEnvironmentDiagnosticsItem sends the get hosting environment diagnostics item request.
632// Parameters:
633// resourceGroupName - name of resource group
634// name - name of hostingEnvironment (App Service Environment)
635// diagnosticsName - name of the diagnostics
636func (client HostingEnvironmentsClient) GetHostingEnvironmentDiagnosticsItem(ctx context.Context, resourceGroupName string, name string, diagnosticsName string) (result HostingEnvironmentDiagnostics, err error) {
637	if tracing.IsEnabled() {
638		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentDiagnosticsItem")
639		defer func() {
640			sc := -1
641			if result.Response.Response != nil {
642				sc = result.Response.Response.StatusCode
643			}
644			tracing.EndSpan(ctx, sc, err)
645		}()
646	}
647	req, err := client.GetHostingEnvironmentDiagnosticsItemPreparer(ctx, resourceGroupName, name, diagnosticsName)
648	if err != nil {
649		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentDiagnosticsItem", nil, "Failure preparing request")
650		return
651	}
652
653	resp, err := client.GetHostingEnvironmentDiagnosticsItemSender(req)
654	if err != nil {
655		result.Response = autorest.Response{Response: resp}
656		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentDiagnosticsItem", resp, "Failure sending request")
657		return
658	}
659
660	result, err = client.GetHostingEnvironmentDiagnosticsItemResponder(resp)
661	if err != nil {
662		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentDiagnosticsItem", resp, "Failure responding to request")
663		return
664	}
665
666	return
667}
668
669// GetHostingEnvironmentDiagnosticsItemPreparer prepares the GetHostingEnvironmentDiagnosticsItem request.
670func (client HostingEnvironmentsClient) GetHostingEnvironmentDiagnosticsItemPreparer(ctx context.Context, resourceGroupName string, name string, diagnosticsName string) (*http.Request, error) {
671	pathParameters := map[string]interface{}{
672		"diagnosticsName":   autorest.Encode("path", diagnosticsName),
673		"name":              autorest.Encode("path", name),
674		"resourceGroupName": autorest.Encode("path", resourceGroupName),
675		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
676	}
677
678	const APIVersion = "2015-08-01"
679	queryParameters := map[string]interface{}{
680		"api-version": APIVersion,
681	}
682
683	preparer := autorest.CreatePreparer(
684		autorest.AsGet(),
685		autorest.WithBaseURL(client.BaseURI),
686		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/diagnostics/{diagnosticsName}", pathParameters),
687		autorest.WithQueryParameters(queryParameters))
688	return preparer.Prepare((&http.Request{}).WithContext(ctx))
689}
690
691// GetHostingEnvironmentDiagnosticsItemSender sends the GetHostingEnvironmentDiagnosticsItem request. The method will close the
692// http.Response Body if it receives an error.
693func (client HostingEnvironmentsClient) GetHostingEnvironmentDiagnosticsItemSender(req *http.Request) (*http.Response, error) {
694	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
695}
696
697// GetHostingEnvironmentDiagnosticsItemResponder handles the response to the GetHostingEnvironmentDiagnosticsItem request. The method always
698// closes the http.Response Body.
699func (client HostingEnvironmentsClient) GetHostingEnvironmentDiagnosticsItemResponder(resp *http.Response) (result HostingEnvironmentDiagnostics, err error) {
700	err = autorest.Respond(
701		resp,
702		azure.WithErrorUnlessStatusCode(http.StatusOK),
703		autorest.ByUnmarshallingJSON(&result),
704		autorest.ByClosing())
705	result.Response = autorest.Response{Response: resp}
706	return
707}
708
709// GetHostingEnvironmentMetricDefinitions sends the get hosting environment metric definitions request.
710// Parameters:
711// resourceGroupName - name of resource group
712// name - name of hostingEnvironment (App Service Environment)
713func (client HostingEnvironmentsClient) GetHostingEnvironmentMetricDefinitions(ctx context.Context, resourceGroupName string, name string) (result MetricDefinition, err error) {
714	if tracing.IsEnabled() {
715		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentMetricDefinitions")
716		defer func() {
717			sc := -1
718			if result.Response.Response != nil {
719				sc = result.Response.Response.StatusCode
720			}
721			tracing.EndSpan(ctx, sc, err)
722		}()
723	}
724	req, err := client.GetHostingEnvironmentMetricDefinitionsPreparer(ctx, resourceGroupName, name)
725	if err != nil {
726		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMetricDefinitions", nil, "Failure preparing request")
727		return
728	}
729
730	resp, err := client.GetHostingEnvironmentMetricDefinitionsSender(req)
731	if err != nil {
732		result.Response = autorest.Response{Response: resp}
733		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMetricDefinitions", resp, "Failure sending request")
734		return
735	}
736
737	result, err = client.GetHostingEnvironmentMetricDefinitionsResponder(resp)
738	if err != nil {
739		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMetricDefinitions", resp, "Failure responding to request")
740		return
741	}
742
743	return
744}
745
746// GetHostingEnvironmentMetricDefinitionsPreparer prepares the GetHostingEnvironmentMetricDefinitions request.
747func (client HostingEnvironmentsClient) GetHostingEnvironmentMetricDefinitionsPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
748	pathParameters := map[string]interface{}{
749		"name":              autorest.Encode("path", name),
750		"resourceGroupName": autorest.Encode("path", resourceGroupName),
751		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
752	}
753
754	const APIVersion = "2015-08-01"
755	queryParameters := map[string]interface{}{
756		"api-version": APIVersion,
757	}
758
759	preparer := autorest.CreatePreparer(
760		autorest.AsGet(),
761		autorest.WithBaseURL(client.BaseURI),
762		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/metricdefinitions", pathParameters),
763		autorest.WithQueryParameters(queryParameters))
764	return preparer.Prepare((&http.Request{}).WithContext(ctx))
765}
766
767// GetHostingEnvironmentMetricDefinitionsSender sends the GetHostingEnvironmentMetricDefinitions request. The method will close the
768// http.Response Body if it receives an error.
769func (client HostingEnvironmentsClient) GetHostingEnvironmentMetricDefinitionsSender(req *http.Request) (*http.Response, error) {
770	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
771}
772
773// GetHostingEnvironmentMetricDefinitionsResponder handles the response to the GetHostingEnvironmentMetricDefinitions request. The method always
774// closes the http.Response Body.
775func (client HostingEnvironmentsClient) GetHostingEnvironmentMetricDefinitionsResponder(resp *http.Response) (result MetricDefinition, err error) {
776	err = autorest.Respond(
777		resp,
778		azure.WithErrorUnlessStatusCode(http.StatusOK),
779		autorest.ByUnmarshallingJSON(&result),
780		autorest.ByClosing())
781	result.Response = autorest.Response{Response: resp}
782	return
783}
784
785// GetHostingEnvironmentMetrics sends the get hosting environment metrics request.
786// Parameters:
787// resourceGroupName - name of resource group
788// name - name of hostingEnvironment (App Service Environment)
789// details - include instance details
790// filter - return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example:
791// $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq '2014-01-01T00:00:00Z' and
792// endTime eq '2014-12-31T23:59:59Z' and timeGrain eq duration'[Hour|Minute|Day]'.
793func (client HostingEnvironmentsClient) GetHostingEnvironmentMetrics(ctx context.Context, resourceGroupName string, name string, details *bool, filter string) (result ResourceMetricCollectionPage, err error) {
794	if tracing.IsEnabled() {
795		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentMetrics")
796		defer func() {
797			sc := -1
798			if result.rmc.Response.Response != nil {
799				sc = result.rmc.Response.Response.StatusCode
800			}
801			tracing.EndSpan(ctx, sc, err)
802		}()
803	}
804	result.fn = client.getHostingEnvironmentMetricsNextResults
805	req, err := client.GetHostingEnvironmentMetricsPreparer(ctx, resourceGroupName, name, details, filter)
806	if err != nil {
807		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMetrics", nil, "Failure preparing request")
808		return
809	}
810
811	resp, err := client.GetHostingEnvironmentMetricsSender(req)
812	if err != nil {
813		result.rmc.Response = autorest.Response{Response: resp}
814		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMetrics", resp, "Failure sending request")
815		return
816	}
817
818	result.rmc, err = client.GetHostingEnvironmentMetricsResponder(resp)
819	if err != nil {
820		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMetrics", resp, "Failure responding to request")
821		return
822	}
823	if result.rmc.hasNextLink() && result.rmc.IsEmpty() {
824		err = result.NextWithContext(ctx)
825		return
826	}
827
828	return
829}
830
831// GetHostingEnvironmentMetricsPreparer prepares the GetHostingEnvironmentMetrics request.
832func (client HostingEnvironmentsClient) GetHostingEnvironmentMetricsPreparer(ctx context.Context, resourceGroupName string, name string, details *bool, filter string) (*http.Request, error) {
833	pathParameters := map[string]interface{}{
834		"name":              autorest.Encode("path", name),
835		"resourceGroupName": autorest.Encode("path", resourceGroupName),
836		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
837	}
838
839	const APIVersion = "2015-08-01"
840	queryParameters := map[string]interface{}{
841		"api-version": APIVersion,
842	}
843	if details != nil {
844		queryParameters["details"] = autorest.Encode("query", *details)
845	}
846	if len(filter) > 0 {
847		queryParameters["$filter"] = filter
848	}
849
850	preparer := autorest.CreatePreparer(
851		autorest.AsGet(),
852		autorest.WithBaseURL(client.BaseURI),
853		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/metrics", pathParameters),
854		autorest.WithQueryParameters(queryParameters))
855	return preparer.Prepare((&http.Request{}).WithContext(ctx))
856}
857
858// GetHostingEnvironmentMetricsSender sends the GetHostingEnvironmentMetrics request. The method will close the
859// http.Response Body if it receives an error.
860func (client HostingEnvironmentsClient) GetHostingEnvironmentMetricsSender(req *http.Request) (*http.Response, error) {
861	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
862}
863
864// GetHostingEnvironmentMetricsResponder handles the response to the GetHostingEnvironmentMetrics request. The method always
865// closes the http.Response Body.
866func (client HostingEnvironmentsClient) GetHostingEnvironmentMetricsResponder(resp *http.Response) (result ResourceMetricCollection, err error) {
867	err = autorest.Respond(
868		resp,
869		azure.WithErrorUnlessStatusCode(http.StatusOK),
870		autorest.ByUnmarshallingJSON(&result),
871		autorest.ByClosing())
872	result.Response = autorest.Response{Response: resp}
873	return
874}
875
876// getHostingEnvironmentMetricsNextResults retrieves the next set of results, if any.
877func (client HostingEnvironmentsClient) getHostingEnvironmentMetricsNextResults(ctx context.Context, lastResults ResourceMetricCollection) (result ResourceMetricCollection, err error) {
878	req, err := lastResults.resourceMetricCollectionPreparer(ctx)
879	if err != nil {
880		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMetricsNextResults", nil, "Failure preparing next results request")
881	}
882	if req == nil {
883		return
884	}
885	resp, err := client.GetHostingEnvironmentMetricsSender(req)
886	if err != nil {
887		result.Response = autorest.Response{Response: resp}
888		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMetricsNextResults", resp, "Failure sending next results request")
889	}
890	result, err = client.GetHostingEnvironmentMetricsResponder(resp)
891	if err != nil {
892		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMetricsNextResults", resp, "Failure responding to next results request")
893	}
894	return
895}
896
897// GetHostingEnvironmentMetricsComplete enumerates all values, automatically crossing page boundaries as required.
898func (client HostingEnvironmentsClient) GetHostingEnvironmentMetricsComplete(ctx context.Context, resourceGroupName string, name string, details *bool, filter string) (result ResourceMetricCollectionIterator, err error) {
899	if tracing.IsEnabled() {
900		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentMetrics")
901		defer func() {
902			sc := -1
903			if result.Response().Response.Response != nil {
904				sc = result.page.Response().Response.Response.StatusCode
905			}
906			tracing.EndSpan(ctx, sc, err)
907		}()
908	}
909	result.page, err = client.GetHostingEnvironmentMetrics(ctx, resourceGroupName, name, details, filter)
910	return
911}
912
913// GetHostingEnvironmentMultiRoleMetricDefinitions sends the get hosting environment multi role metric definitions
914// request.
915// Parameters:
916// resourceGroupName - name of resource group
917// name - name of hostingEnvironment (App Service Environment)
918func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetricDefinitions(ctx context.Context, resourceGroupName string, name string) (result MetricDefinitionCollectionPage, err error) {
919	if tracing.IsEnabled() {
920		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentMultiRoleMetricDefinitions")
921		defer func() {
922			sc := -1
923			if result.mdc.Response.Response != nil {
924				sc = result.mdc.Response.Response.StatusCode
925			}
926			tracing.EndSpan(ctx, sc, err)
927		}()
928	}
929	result.fn = client.getHostingEnvironmentMultiRoleMetricDefinitionsNextResults
930	req, err := client.GetHostingEnvironmentMultiRoleMetricDefinitionsPreparer(ctx, resourceGroupName, name)
931	if err != nil {
932		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMultiRoleMetricDefinitions", nil, "Failure preparing request")
933		return
934	}
935
936	resp, err := client.GetHostingEnvironmentMultiRoleMetricDefinitionsSender(req)
937	if err != nil {
938		result.mdc.Response = autorest.Response{Response: resp}
939		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMultiRoleMetricDefinitions", resp, "Failure sending request")
940		return
941	}
942
943	result.mdc, err = client.GetHostingEnvironmentMultiRoleMetricDefinitionsResponder(resp)
944	if err != nil {
945		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMultiRoleMetricDefinitions", resp, "Failure responding to request")
946		return
947	}
948	if result.mdc.hasNextLink() && result.mdc.IsEmpty() {
949		err = result.NextWithContext(ctx)
950		return
951	}
952
953	return
954}
955
956// GetHostingEnvironmentMultiRoleMetricDefinitionsPreparer prepares the GetHostingEnvironmentMultiRoleMetricDefinitions request.
957func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetricDefinitionsPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
958	pathParameters := map[string]interface{}{
959		"name":              autorest.Encode("path", name),
960		"resourceGroupName": autorest.Encode("path", resourceGroupName),
961		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
962	}
963
964	const APIVersion = "2015-08-01"
965	queryParameters := map[string]interface{}{
966		"api-version": APIVersion,
967	}
968
969	preparer := autorest.CreatePreparer(
970		autorest.AsGet(),
971		autorest.WithBaseURL(client.BaseURI),
972		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/metricdefinitions", pathParameters),
973		autorest.WithQueryParameters(queryParameters))
974	return preparer.Prepare((&http.Request{}).WithContext(ctx))
975}
976
977// GetHostingEnvironmentMultiRoleMetricDefinitionsSender sends the GetHostingEnvironmentMultiRoleMetricDefinitions request. The method will close the
978// http.Response Body if it receives an error.
979func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetricDefinitionsSender(req *http.Request) (*http.Response, error) {
980	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
981}
982
983// GetHostingEnvironmentMultiRoleMetricDefinitionsResponder handles the response to the GetHostingEnvironmentMultiRoleMetricDefinitions request. The method always
984// closes the http.Response Body.
985func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetricDefinitionsResponder(resp *http.Response) (result MetricDefinitionCollection, err error) {
986	err = autorest.Respond(
987		resp,
988		azure.WithErrorUnlessStatusCode(http.StatusOK),
989		autorest.ByUnmarshallingJSON(&result),
990		autorest.ByClosing())
991	result.Response = autorest.Response{Response: resp}
992	return
993}
994
995// getHostingEnvironmentMultiRoleMetricDefinitionsNextResults retrieves the next set of results, if any.
996func (client HostingEnvironmentsClient) getHostingEnvironmentMultiRoleMetricDefinitionsNextResults(ctx context.Context, lastResults MetricDefinitionCollection) (result MetricDefinitionCollection, err error) {
997	req, err := lastResults.metricDefinitionCollectionPreparer(ctx)
998	if err != nil {
999		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMultiRoleMetricDefinitionsNextResults", nil, "Failure preparing next results request")
1000	}
1001	if req == nil {
1002		return
1003	}
1004	resp, err := client.GetHostingEnvironmentMultiRoleMetricDefinitionsSender(req)
1005	if err != nil {
1006		result.Response = autorest.Response{Response: resp}
1007		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMultiRoleMetricDefinitionsNextResults", resp, "Failure sending next results request")
1008	}
1009	result, err = client.GetHostingEnvironmentMultiRoleMetricDefinitionsResponder(resp)
1010	if err != nil {
1011		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMultiRoleMetricDefinitionsNextResults", resp, "Failure responding to next results request")
1012	}
1013	return
1014}
1015
1016// GetHostingEnvironmentMultiRoleMetricDefinitionsComplete enumerates all values, automatically crossing page boundaries as required.
1017func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetricDefinitionsComplete(ctx context.Context, resourceGroupName string, name string) (result MetricDefinitionCollectionIterator, err error) {
1018	if tracing.IsEnabled() {
1019		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentMultiRoleMetricDefinitions")
1020		defer func() {
1021			sc := -1
1022			if result.Response().Response.Response != nil {
1023				sc = result.page.Response().Response.Response.StatusCode
1024			}
1025			tracing.EndSpan(ctx, sc, err)
1026		}()
1027	}
1028	result.page, err = client.GetHostingEnvironmentMultiRoleMetricDefinitions(ctx, resourceGroupName, name)
1029	return
1030}
1031
1032// GetHostingEnvironmentMultiRoleMetrics sends the get hosting environment multi role metrics request.
1033// Parameters:
1034// resourceGroupName - name of resource group
1035// name - name of hostingEnvironment (App Service Environment)
1036// startTime - beginning time of metrics query
1037// endTime - end time of metrics query
1038// timeGrain - time granularity of metrics query
1039// details - include instance details
1040// filter - return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example:
1041// $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq '2014-01-01T00:00:00Z' and
1042// endTime eq '2014-12-31T23:59:59Z' and timeGrain eq duration'[Hour|Minute|Day]'.
1043func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetrics(ctx context.Context, resourceGroupName string, name string, startTime string, endTime string, timeGrain string, details *bool, filter string) (result ResourceMetricCollectionPage, err error) {
1044	if tracing.IsEnabled() {
1045		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentMultiRoleMetrics")
1046		defer func() {
1047			sc := -1
1048			if result.rmc.Response.Response != nil {
1049				sc = result.rmc.Response.Response.StatusCode
1050			}
1051			tracing.EndSpan(ctx, sc, err)
1052		}()
1053	}
1054	result.fn = client.getHostingEnvironmentMultiRoleMetricsNextResults
1055	req, err := client.GetHostingEnvironmentMultiRoleMetricsPreparer(ctx, resourceGroupName, name, startTime, endTime, timeGrain, details, filter)
1056	if err != nil {
1057		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMultiRoleMetrics", nil, "Failure preparing request")
1058		return
1059	}
1060
1061	resp, err := client.GetHostingEnvironmentMultiRoleMetricsSender(req)
1062	if err != nil {
1063		result.rmc.Response = autorest.Response{Response: resp}
1064		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMultiRoleMetrics", resp, "Failure sending request")
1065		return
1066	}
1067
1068	result.rmc, err = client.GetHostingEnvironmentMultiRoleMetricsResponder(resp)
1069	if err != nil {
1070		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMultiRoleMetrics", resp, "Failure responding to request")
1071		return
1072	}
1073	if result.rmc.hasNextLink() && result.rmc.IsEmpty() {
1074		err = result.NextWithContext(ctx)
1075		return
1076	}
1077
1078	return
1079}
1080
1081// GetHostingEnvironmentMultiRoleMetricsPreparer prepares the GetHostingEnvironmentMultiRoleMetrics request.
1082func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetricsPreparer(ctx context.Context, resourceGroupName string, name string, startTime string, endTime string, timeGrain string, details *bool, filter string) (*http.Request, error) {
1083	pathParameters := map[string]interface{}{
1084		"name":              autorest.Encode("path", name),
1085		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1086		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1087	}
1088
1089	const APIVersion = "2015-08-01"
1090	queryParameters := map[string]interface{}{
1091		"api-version": APIVersion,
1092	}
1093	if len(startTime) > 0 {
1094		queryParameters["startTime"] = autorest.Encode("query", startTime)
1095	}
1096	if len(endTime) > 0 {
1097		queryParameters["endTime"] = autorest.Encode("query", endTime)
1098	}
1099	if len(timeGrain) > 0 {
1100		queryParameters["timeGrain"] = autorest.Encode("query", timeGrain)
1101	}
1102	if details != nil {
1103		queryParameters["details"] = autorest.Encode("query", *details)
1104	}
1105	if len(filter) > 0 {
1106		queryParameters["$filter"] = filter
1107	}
1108
1109	preparer := autorest.CreatePreparer(
1110		autorest.AsGet(),
1111		autorest.WithBaseURL(client.BaseURI),
1112		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/metrics", pathParameters),
1113		autorest.WithQueryParameters(queryParameters))
1114	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1115}
1116
1117// GetHostingEnvironmentMultiRoleMetricsSender sends the GetHostingEnvironmentMultiRoleMetrics request. The method will close the
1118// http.Response Body if it receives an error.
1119func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetricsSender(req *http.Request) (*http.Response, error) {
1120	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1121}
1122
1123// GetHostingEnvironmentMultiRoleMetricsResponder handles the response to the GetHostingEnvironmentMultiRoleMetrics request. The method always
1124// closes the http.Response Body.
1125func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetricsResponder(resp *http.Response) (result ResourceMetricCollection, err error) {
1126	err = autorest.Respond(
1127		resp,
1128		azure.WithErrorUnlessStatusCode(http.StatusOK),
1129		autorest.ByUnmarshallingJSON(&result),
1130		autorest.ByClosing())
1131	result.Response = autorest.Response{Response: resp}
1132	return
1133}
1134
1135// getHostingEnvironmentMultiRoleMetricsNextResults retrieves the next set of results, if any.
1136func (client HostingEnvironmentsClient) getHostingEnvironmentMultiRoleMetricsNextResults(ctx context.Context, lastResults ResourceMetricCollection) (result ResourceMetricCollection, err error) {
1137	req, err := lastResults.resourceMetricCollectionPreparer(ctx)
1138	if err != nil {
1139		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMultiRoleMetricsNextResults", nil, "Failure preparing next results request")
1140	}
1141	if req == nil {
1142		return
1143	}
1144	resp, err := client.GetHostingEnvironmentMultiRoleMetricsSender(req)
1145	if err != nil {
1146		result.Response = autorest.Response{Response: resp}
1147		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMultiRoleMetricsNextResults", resp, "Failure sending next results request")
1148	}
1149	result, err = client.GetHostingEnvironmentMultiRoleMetricsResponder(resp)
1150	if err != nil {
1151		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMultiRoleMetricsNextResults", resp, "Failure responding to next results request")
1152	}
1153	return
1154}
1155
1156// GetHostingEnvironmentMultiRoleMetricsComplete enumerates all values, automatically crossing page boundaries as required.
1157func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleMetricsComplete(ctx context.Context, resourceGroupName string, name string, startTime string, endTime string, timeGrain string, details *bool, filter string) (result ResourceMetricCollectionIterator, err error) {
1158	if tracing.IsEnabled() {
1159		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentMultiRoleMetrics")
1160		defer func() {
1161			sc := -1
1162			if result.Response().Response.Response != nil {
1163				sc = result.page.Response().Response.Response.StatusCode
1164			}
1165			tracing.EndSpan(ctx, sc, err)
1166		}()
1167	}
1168	result.page, err = client.GetHostingEnvironmentMultiRoleMetrics(ctx, resourceGroupName, name, startTime, endTime, timeGrain, details, filter)
1169	return
1170}
1171
1172// GetHostingEnvironmentMultiRoleUsages sends the get hosting environment multi role usages request.
1173// Parameters:
1174// resourceGroupName - name of resource group
1175// name - name of hostingEnvironment (App Service Environment)
1176func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleUsages(ctx context.Context, resourceGroupName string, name string) (result UsageCollectionPage, err error) {
1177	if tracing.IsEnabled() {
1178		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentMultiRoleUsages")
1179		defer func() {
1180			sc := -1
1181			if result.uc.Response.Response != nil {
1182				sc = result.uc.Response.Response.StatusCode
1183			}
1184			tracing.EndSpan(ctx, sc, err)
1185		}()
1186	}
1187	result.fn = client.getHostingEnvironmentMultiRoleUsagesNextResults
1188	req, err := client.GetHostingEnvironmentMultiRoleUsagesPreparer(ctx, resourceGroupName, name)
1189	if err != nil {
1190		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMultiRoleUsages", nil, "Failure preparing request")
1191		return
1192	}
1193
1194	resp, err := client.GetHostingEnvironmentMultiRoleUsagesSender(req)
1195	if err != nil {
1196		result.uc.Response = autorest.Response{Response: resp}
1197		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMultiRoleUsages", resp, "Failure sending request")
1198		return
1199	}
1200
1201	result.uc, err = client.GetHostingEnvironmentMultiRoleUsagesResponder(resp)
1202	if err != nil {
1203		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentMultiRoleUsages", resp, "Failure responding to request")
1204		return
1205	}
1206	if result.uc.hasNextLink() && result.uc.IsEmpty() {
1207		err = result.NextWithContext(ctx)
1208		return
1209	}
1210
1211	return
1212}
1213
1214// GetHostingEnvironmentMultiRoleUsagesPreparer prepares the GetHostingEnvironmentMultiRoleUsages request.
1215func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleUsagesPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
1216	pathParameters := map[string]interface{}{
1217		"name":              autorest.Encode("path", name),
1218		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1219		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1220	}
1221
1222	const APIVersion = "2015-08-01"
1223	queryParameters := map[string]interface{}{
1224		"api-version": APIVersion,
1225	}
1226
1227	preparer := autorest.CreatePreparer(
1228		autorest.AsGet(),
1229		autorest.WithBaseURL(client.BaseURI),
1230		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/usages", pathParameters),
1231		autorest.WithQueryParameters(queryParameters))
1232	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1233}
1234
1235// GetHostingEnvironmentMultiRoleUsagesSender sends the GetHostingEnvironmentMultiRoleUsages request. The method will close the
1236// http.Response Body if it receives an error.
1237func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleUsagesSender(req *http.Request) (*http.Response, error) {
1238	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1239}
1240
1241// GetHostingEnvironmentMultiRoleUsagesResponder handles the response to the GetHostingEnvironmentMultiRoleUsages request. The method always
1242// closes the http.Response Body.
1243func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleUsagesResponder(resp *http.Response) (result UsageCollection, err error) {
1244	err = autorest.Respond(
1245		resp,
1246		azure.WithErrorUnlessStatusCode(http.StatusOK),
1247		autorest.ByUnmarshallingJSON(&result),
1248		autorest.ByClosing())
1249	result.Response = autorest.Response{Response: resp}
1250	return
1251}
1252
1253// getHostingEnvironmentMultiRoleUsagesNextResults retrieves the next set of results, if any.
1254func (client HostingEnvironmentsClient) getHostingEnvironmentMultiRoleUsagesNextResults(ctx context.Context, lastResults UsageCollection) (result UsageCollection, err error) {
1255	req, err := lastResults.usageCollectionPreparer(ctx)
1256	if err != nil {
1257		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMultiRoleUsagesNextResults", nil, "Failure preparing next results request")
1258	}
1259	if req == nil {
1260		return
1261	}
1262	resp, err := client.GetHostingEnvironmentMultiRoleUsagesSender(req)
1263	if err != nil {
1264		result.Response = autorest.Response{Response: resp}
1265		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMultiRoleUsagesNextResults", resp, "Failure sending next results request")
1266	}
1267	result, err = client.GetHostingEnvironmentMultiRoleUsagesResponder(resp)
1268	if err != nil {
1269		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentMultiRoleUsagesNextResults", resp, "Failure responding to next results request")
1270	}
1271	return
1272}
1273
1274// GetHostingEnvironmentMultiRoleUsagesComplete enumerates all values, automatically crossing page boundaries as required.
1275func (client HostingEnvironmentsClient) GetHostingEnvironmentMultiRoleUsagesComplete(ctx context.Context, resourceGroupName string, name string) (result UsageCollectionIterator, err error) {
1276	if tracing.IsEnabled() {
1277		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentMultiRoleUsages")
1278		defer func() {
1279			sc := -1
1280			if result.Response().Response.Response != nil {
1281				sc = result.page.Response().Response.Response.StatusCode
1282			}
1283			tracing.EndSpan(ctx, sc, err)
1284		}()
1285	}
1286	result.page, err = client.GetHostingEnvironmentMultiRoleUsages(ctx, resourceGroupName, name)
1287	return
1288}
1289
1290// GetHostingEnvironmentOperation sends the get hosting environment operation request.
1291// Parameters:
1292// resourceGroupName - name of resource group
1293// name - name of hostingEnvironment (App Service Environment)
1294// operationID - operation identifier GUID
1295func (client HostingEnvironmentsClient) GetHostingEnvironmentOperation(ctx context.Context, resourceGroupName string, name string, operationID string) (result SetObject, err error) {
1296	if tracing.IsEnabled() {
1297		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentOperation")
1298		defer func() {
1299			sc := -1
1300			if result.Response.Response != nil {
1301				sc = result.Response.Response.StatusCode
1302			}
1303			tracing.EndSpan(ctx, sc, err)
1304		}()
1305	}
1306	req, err := client.GetHostingEnvironmentOperationPreparer(ctx, resourceGroupName, name, operationID)
1307	if err != nil {
1308		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentOperation", nil, "Failure preparing request")
1309		return
1310	}
1311
1312	resp, err := client.GetHostingEnvironmentOperationSender(req)
1313	if err != nil {
1314		result.Response = autorest.Response{Response: resp}
1315		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentOperation", resp, "Failure sending request")
1316		return
1317	}
1318
1319	result, err = client.GetHostingEnvironmentOperationResponder(resp)
1320	if err != nil {
1321		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentOperation", resp, "Failure responding to request")
1322		return
1323	}
1324
1325	return
1326}
1327
1328// GetHostingEnvironmentOperationPreparer prepares the GetHostingEnvironmentOperation request.
1329func (client HostingEnvironmentsClient) GetHostingEnvironmentOperationPreparer(ctx context.Context, resourceGroupName string, name string, operationID string) (*http.Request, error) {
1330	pathParameters := map[string]interface{}{
1331		"name":              autorest.Encode("path", name),
1332		"operationId":       autorest.Encode("path", operationID),
1333		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1334		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1335	}
1336
1337	const APIVersion = "2015-08-01"
1338	queryParameters := map[string]interface{}{
1339		"api-version": APIVersion,
1340	}
1341
1342	preparer := autorest.CreatePreparer(
1343		autorest.AsGet(),
1344		autorest.WithBaseURL(client.BaseURI),
1345		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/operations/{operationId}", pathParameters),
1346		autorest.WithQueryParameters(queryParameters))
1347	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1348}
1349
1350// GetHostingEnvironmentOperationSender sends the GetHostingEnvironmentOperation request. The method will close the
1351// http.Response Body if it receives an error.
1352func (client HostingEnvironmentsClient) GetHostingEnvironmentOperationSender(req *http.Request) (*http.Response, error) {
1353	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1354}
1355
1356// GetHostingEnvironmentOperationResponder handles the response to the GetHostingEnvironmentOperation request. The method always
1357// closes the http.Response Body.
1358func (client HostingEnvironmentsClient) GetHostingEnvironmentOperationResponder(resp *http.Response) (result SetObject, err error) {
1359	err = autorest.Respond(
1360		resp,
1361		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNotFound, http.StatusInternalServerError),
1362		autorest.ByUnmarshallingJSON(&result.Value),
1363		autorest.ByClosing())
1364	result.Response = autorest.Response{Response: resp}
1365	return
1366}
1367
1368// GetHostingEnvironmentOperations sends the get hosting environment operations request.
1369// Parameters:
1370// resourceGroupName - name of resource group
1371// name - name of hostingEnvironment (App Service Environment)
1372func (client HostingEnvironmentsClient) GetHostingEnvironmentOperations(ctx context.Context, resourceGroupName string, name string) (result SetObject, err error) {
1373	if tracing.IsEnabled() {
1374		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentOperations")
1375		defer func() {
1376			sc := -1
1377			if result.Response.Response != nil {
1378				sc = result.Response.Response.StatusCode
1379			}
1380			tracing.EndSpan(ctx, sc, err)
1381		}()
1382	}
1383	req, err := client.GetHostingEnvironmentOperationsPreparer(ctx, resourceGroupName, name)
1384	if err != nil {
1385		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentOperations", nil, "Failure preparing request")
1386		return
1387	}
1388
1389	resp, err := client.GetHostingEnvironmentOperationsSender(req)
1390	if err != nil {
1391		result.Response = autorest.Response{Response: resp}
1392		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentOperations", resp, "Failure sending request")
1393		return
1394	}
1395
1396	result, err = client.GetHostingEnvironmentOperationsResponder(resp)
1397	if err != nil {
1398		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentOperations", resp, "Failure responding to request")
1399		return
1400	}
1401
1402	return
1403}
1404
1405// GetHostingEnvironmentOperationsPreparer prepares the GetHostingEnvironmentOperations request.
1406func (client HostingEnvironmentsClient) GetHostingEnvironmentOperationsPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
1407	pathParameters := map[string]interface{}{
1408		"name":              autorest.Encode("path", name),
1409		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1410		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1411	}
1412
1413	const APIVersion = "2015-08-01"
1414	queryParameters := map[string]interface{}{
1415		"api-version": APIVersion,
1416	}
1417
1418	preparer := autorest.CreatePreparer(
1419		autorest.AsGet(),
1420		autorest.WithBaseURL(client.BaseURI),
1421		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/operations", pathParameters),
1422		autorest.WithQueryParameters(queryParameters))
1423	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1424}
1425
1426// GetHostingEnvironmentOperationsSender sends the GetHostingEnvironmentOperations request. The method will close the
1427// http.Response Body if it receives an error.
1428func (client HostingEnvironmentsClient) GetHostingEnvironmentOperationsSender(req *http.Request) (*http.Response, error) {
1429	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1430}
1431
1432// GetHostingEnvironmentOperationsResponder handles the response to the GetHostingEnvironmentOperations request. The method always
1433// closes the http.Response Body.
1434func (client HostingEnvironmentsClient) GetHostingEnvironmentOperationsResponder(resp *http.Response) (result SetObject, err error) {
1435	err = autorest.Respond(
1436		resp,
1437		azure.WithErrorUnlessStatusCode(http.StatusOK),
1438		autorest.ByUnmarshallingJSON(&result.Value),
1439		autorest.ByClosing())
1440	result.Response = autorest.Response{Response: resp}
1441	return
1442}
1443
1444// GetHostingEnvironments sends the get hosting environments request.
1445// Parameters:
1446// resourceGroupName - name of resource group
1447func (client HostingEnvironmentsClient) GetHostingEnvironments(ctx context.Context, resourceGroupName string) (result HostingEnvironmentCollectionPage, err error) {
1448	if tracing.IsEnabled() {
1449		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironments")
1450		defer func() {
1451			sc := -1
1452			if result.hec.Response.Response != nil {
1453				sc = result.hec.Response.Response.StatusCode
1454			}
1455			tracing.EndSpan(ctx, sc, err)
1456		}()
1457	}
1458	result.fn = client.getHostingEnvironmentsNextResults
1459	req, err := client.GetHostingEnvironmentsPreparer(ctx, resourceGroupName)
1460	if err != nil {
1461		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironments", nil, "Failure preparing request")
1462		return
1463	}
1464
1465	resp, err := client.GetHostingEnvironmentsSender(req)
1466	if err != nil {
1467		result.hec.Response = autorest.Response{Response: resp}
1468		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironments", resp, "Failure sending request")
1469		return
1470	}
1471
1472	result.hec, err = client.GetHostingEnvironmentsResponder(resp)
1473	if err != nil {
1474		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironments", resp, "Failure responding to request")
1475		return
1476	}
1477	if result.hec.hasNextLink() && result.hec.IsEmpty() {
1478		err = result.NextWithContext(ctx)
1479		return
1480	}
1481
1482	return
1483}
1484
1485// GetHostingEnvironmentsPreparer prepares the GetHostingEnvironments request.
1486func (client HostingEnvironmentsClient) GetHostingEnvironmentsPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) {
1487	pathParameters := map[string]interface{}{
1488		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1489		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1490	}
1491
1492	const APIVersion = "2015-08-01"
1493	queryParameters := map[string]interface{}{
1494		"api-version": APIVersion,
1495	}
1496
1497	preparer := autorest.CreatePreparer(
1498		autorest.AsGet(),
1499		autorest.WithBaseURL(client.BaseURI),
1500		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments", pathParameters),
1501		autorest.WithQueryParameters(queryParameters))
1502	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1503}
1504
1505// GetHostingEnvironmentsSender sends the GetHostingEnvironments request. The method will close the
1506// http.Response Body if it receives an error.
1507func (client HostingEnvironmentsClient) GetHostingEnvironmentsSender(req *http.Request) (*http.Response, error) {
1508	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1509}
1510
1511// GetHostingEnvironmentsResponder handles the response to the GetHostingEnvironments request. The method always
1512// closes the http.Response Body.
1513func (client HostingEnvironmentsClient) GetHostingEnvironmentsResponder(resp *http.Response) (result HostingEnvironmentCollection, err error) {
1514	err = autorest.Respond(
1515		resp,
1516		azure.WithErrorUnlessStatusCode(http.StatusOK),
1517		autorest.ByUnmarshallingJSON(&result),
1518		autorest.ByClosing())
1519	result.Response = autorest.Response{Response: resp}
1520	return
1521}
1522
1523// getHostingEnvironmentsNextResults retrieves the next set of results, if any.
1524func (client HostingEnvironmentsClient) getHostingEnvironmentsNextResults(ctx context.Context, lastResults HostingEnvironmentCollection) (result HostingEnvironmentCollection, err error) {
1525	req, err := lastResults.hostingEnvironmentCollectionPreparer(ctx)
1526	if err != nil {
1527		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentsNextResults", nil, "Failure preparing next results request")
1528	}
1529	if req == nil {
1530		return
1531	}
1532	resp, err := client.GetHostingEnvironmentsSender(req)
1533	if err != nil {
1534		result.Response = autorest.Response{Response: resp}
1535		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentsNextResults", resp, "Failure sending next results request")
1536	}
1537	result, err = client.GetHostingEnvironmentsResponder(resp)
1538	if err != nil {
1539		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentsNextResults", resp, "Failure responding to next results request")
1540	}
1541	return
1542}
1543
1544// GetHostingEnvironmentsComplete enumerates all values, automatically crossing page boundaries as required.
1545func (client HostingEnvironmentsClient) GetHostingEnvironmentsComplete(ctx context.Context, resourceGroupName string) (result HostingEnvironmentCollectionIterator, err error) {
1546	if tracing.IsEnabled() {
1547		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironments")
1548		defer func() {
1549			sc := -1
1550			if result.Response().Response.Response != nil {
1551				sc = result.page.Response().Response.Response.StatusCode
1552			}
1553			tracing.EndSpan(ctx, sc, err)
1554		}()
1555	}
1556	result.page, err = client.GetHostingEnvironments(ctx, resourceGroupName)
1557	return
1558}
1559
1560// GetHostingEnvironmentServerFarms sends the get hosting environment server farms request.
1561// Parameters:
1562// resourceGroupName - name of resource group
1563// name - name of hostingEnvironment (App Service Environment)
1564func (client HostingEnvironmentsClient) GetHostingEnvironmentServerFarms(ctx context.Context, resourceGroupName string, name string) (result ServerFarmCollectionPage, err error) {
1565	if tracing.IsEnabled() {
1566		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentServerFarms")
1567		defer func() {
1568			sc := -1
1569			if result.sfc.Response.Response != nil {
1570				sc = result.sfc.Response.Response.StatusCode
1571			}
1572			tracing.EndSpan(ctx, sc, err)
1573		}()
1574	}
1575	result.fn = client.getHostingEnvironmentServerFarmsNextResults
1576	req, err := client.GetHostingEnvironmentServerFarmsPreparer(ctx, resourceGroupName, name)
1577	if err != nil {
1578		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentServerFarms", nil, "Failure preparing request")
1579		return
1580	}
1581
1582	resp, err := client.GetHostingEnvironmentServerFarmsSender(req)
1583	if err != nil {
1584		result.sfc.Response = autorest.Response{Response: resp}
1585		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentServerFarms", resp, "Failure sending request")
1586		return
1587	}
1588
1589	result.sfc, err = client.GetHostingEnvironmentServerFarmsResponder(resp)
1590	if err != nil {
1591		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentServerFarms", resp, "Failure responding to request")
1592		return
1593	}
1594	if result.sfc.hasNextLink() && result.sfc.IsEmpty() {
1595		err = result.NextWithContext(ctx)
1596		return
1597	}
1598
1599	return
1600}
1601
1602// GetHostingEnvironmentServerFarmsPreparer prepares the GetHostingEnvironmentServerFarms request.
1603func (client HostingEnvironmentsClient) GetHostingEnvironmentServerFarmsPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
1604	pathParameters := map[string]interface{}{
1605		"name":              autorest.Encode("path", name),
1606		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1607		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1608	}
1609
1610	const APIVersion = "2015-08-01"
1611	queryParameters := map[string]interface{}{
1612		"api-version": APIVersion,
1613	}
1614
1615	preparer := autorest.CreatePreparer(
1616		autorest.AsGet(),
1617		autorest.WithBaseURL(client.BaseURI),
1618		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/serverfarms", pathParameters),
1619		autorest.WithQueryParameters(queryParameters))
1620	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1621}
1622
1623// GetHostingEnvironmentServerFarmsSender sends the GetHostingEnvironmentServerFarms request. The method will close the
1624// http.Response Body if it receives an error.
1625func (client HostingEnvironmentsClient) GetHostingEnvironmentServerFarmsSender(req *http.Request) (*http.Response, error) {
1626	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1627}
1628
1629// GetHostingEnvironmentServerFarmsResponder handles the response to the GetHostingEnvironmentServerFarms request. The method always
1630// closes the http.Response Body.
1631func (client HostingEnvironmentsClient) GetHostingEnvironmentServerFarmsResponder(resp *http.Response) (result ServerFarmCollection, err error) {
1632	err = autorest.Respond(
1633		resp,
1634		azure.WithErrorUnlessStatusCode(http.StatusOK),
1635		autorest.ByUnmarshallingJSON(&result),
1636		autorest.ByClosing())
1637	result.Response = autorest.Response{Response: resp}
1638	return
1639}
1640
1641// getHostingEnvironmentServerFarmsNextResults retrieves the next set of results, if any.
1642func (client HostingEnvironmentsClient) getHostingEnvironmentServerFarmsNextResults(ctx context.Context, lastResults ServerFarmCollection) (result ServerFarmCollection, err error) {
1643	req, err := lastResults.serverFarmCollectionPreparer(ctx)
1644	if err != nil {
1645		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentServerFarmsNextResults", nil, "Failure preparing next results request")
1646	}
1647	if req == nil {
1648		return
1649	}
1650	resp, err := client.GetHostingEnvironmentServerFarmsSender(req)
1651	if err != nil {
1652		result.Response = autorest.Response{Response: resp}
1653		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentServerFarmsNextResults", resp, "Failure sending next results request")
1654	}
1655	result, err = client.GetHostingEnvironmentServerFarmsResponder(resp)
1656	if err != nil {
1657		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentServerFarmsNextResults", resp, "Failure responding to next results request")
1658	}
1659	return
1660}
1661
1662// GetHostingEnvironmentServerFarmsComplete enumerates all values, automatically crossing page boundaries as required.
1663func (client HostingEnvironmentsClient) GetHostingEnvironmentServerFarmsComplete(ctx context.Context, resourceGroupName string, name string) (result ServerFarmCollectionIterator, err error) {
1664	if tracing.IsEnabled() {
1665		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentServerFarms")
1666		defer func() {
1667			sc := -1
1668			if result.Response().Response.Response != nil {
1669				sc = result.page.Response().Response.Response.StatusCode
1670			}
1671			tracing.EndSpan(ctx, sc, err)
1672		}()
1673	}
1674	result.page, err = client.GetHostingEnvironmentServerFarms(ctx, resourceGroupName, name)
1675	return
1676}
1677
1678// GetHostingEnvironmentSites sends the get hosting environment sites request.
1679// Parameters:
1680// resourceGroupName - name of resource group
1681// name - name of hostingEnvironment (App Service Environment)
1682// propertiesToInclude - comma separated list of site properties to include
1683func (client HostingEnvironmentsClient) GetHostingEnvironmentSites(ctx context.Context, resourceGroupName string, name string, propertiesToInclude string) (result SiteCollectionPage, err error) {
1684	if tracing.IsEnabled() {
1685		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentSites")
1686		defer func() {
1687			sc := -1
1688			if result.sc.Response.Response != nil {
1689				sc = result.sc.Response.Response.StatusCode
1690			}
1691			tracing.EndSpan(ctx, sc, err)
1692		}()
1693	}
1694	result.fn = client.getHostingEnvironmentSitesNextResults
1695	req, err := client.GetHostingEnvironmentSitesPreparer(ctx, resourceGroupName, name, propertiesToInclude)
1696	if err != nil {
1697		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentSites", nil, "Failure preparing request")
1698		return
1699	}
1700
1701	resp, err := client.GetHostingEnvironmentSitesSender(req)
1702	if err != nil {
1703		result.sc.Response = autorest.Response{Response: resp}
1704		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentSites", resp, "Failure sending request")
1705		return
1706	}
1707
1708	result.sc, err = client.GetHostingEnvironmentSitesResponder(resp)
1709	if err != nil {
1710		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentSites", resp, "Failure responding to request")
1711		return
1712	}
1713	if result.sc.hasNextLink() && result.sc.IsEmpty() {
1714		err = result.NextWithContext(ctx)
1715		return
1716	}
1717
1718	return
1719}
1720
1721// GetHostingEnvironmentSitesPreparer prepares the GetHostingEnvironmentSites request.
1722func (client HostingEnvironmentsClient) GetHostingEnvironmentSitesPreparer(ctx context.Context, resourceGroupName string, name string, propertiesToInclude string) (*http.Request, error) {
1723	pathParameters := map[string]interface{}{
1724		"name":              autorest.Encode("path", name),
1725		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1726		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1727	}
1728
1729	const APIVersion = "2015-08-01"
1730	queryParameters := map[string]interface{}{
1731		"api-version": APIVersion,
1732	}
1733	if len(propertiesToInclude) > 0 {
1734		queryParameters["propertiesToInclude"] = autorest.Encode("query", propertiesToInclude)
1735	}
1736
1737	preparer := autorest.CreatePreparer(
1738		autorest.AsGet(),
1739		autorest.WithBaseURL(client.BaseURI),
1740		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/sites", pathParameters),
1741		autorest.WithQueryParameters(queryParameters))
1742	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1743}
1744
1745// GetHostingEnvironmentSitesSender sends the GetHostingEnvironmentSites request. The method will close the
1746// http.Response Body if it receives an error.
1747func (client HostingEnvironmentsClient) GetHostingEnvironmentSitesSender(req *http.Request) (*http.Response, error) {
1748	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1749}
1750
1751// GetHostingEnvironmentSitesResponder handles the response to the GetHostingEnvironmentSites request. The method always
1752// closes the http.Response Body.
1753func (client HostingEnvironmentsClient) GetHostingEnvironmentSitesResponder(resp *http.Response) (result SiteCollection, err error) {
1754	err = autorest.Respond(
1755		resp,
1756		azure.WithErrorUnlessStatusCode(http.StatusOK),
1757		autorest.ByUnmarshallingJSON(&result),
1758		autorest.ByClosing())
1759	result.Response = autorest.Response{Response: resp}
1760	return
1761}
1762
1763// getHostingEnvironmentSitesNextResults retrieves the next set of results, if any.
1764func (client HostingEnvironmentsClient) getHostingEnvironmentSitesNextResults(ctx context.Context, lastResults SiteCollection) (result SiteCollection, err error) {
1765	req, err := lastResults.siteCollectionPreparer(ctx)
1766	if err != nil {
1767		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentSitesNextResults", nil, "Failure preparing next results request")
1768	}
1769	if req == nil {
1770		return
1771	}
1772	resp, err := client.GetHostingEnvironmentSitesSender(req)
1773	if err != nil {
1774		result.Response = autorest.Response{Response: resp}
1775		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentSitesNextResults", resp, "Failure sending next results request")
1776	}
1777	result, err = client.GetHostingEnvironmentSitesResponder(resp)
1778	if err != nil {
1779		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentSitesNextResults", resp, "Failure responding to next results request")
1780	}
1781	return
1782}
1783
1784// GetHostingEnvironmentSitesComplete enumerates all values, automatically crossing page boundaries as required.
1785func (client HostingEnvironmentsClient) GetHostingEnvironmentSitesComplete(ctx context.Context, resourceGroupName string, name string, propertiesToInclude string) (result SiteCollectionIterator, err error) {
1786	if tracing.IsEnabled() {
1787		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentSites")
1788		defer func() {
1789			sc := -1
1790			if result.Response().Response.Response != nil {
1791				sc = result.page.Response().Response.Response.StatusCode
1792			}
1793			tracing.EndSpan(ctx, sc, err)
1794		}()
1795	}
1796	result.page, err = client.GetHostingEnvironmentSites(ctx, resourceGroupName, name, propertiesToInclude)
1797	return
1798}
1799
1800// GetHostingEnvironmentUsages sends the get hosting environment usages request.
1801// Parameters:
1802// resourceGroupName - name of resource group
1803// name - name of hostingEnvironment (App Service Environment)
1804// filter - return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example:
1805// $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq '2014-01-01T00:00:00Z' and
1806// endTime eq '2014-12-31T23:59:59Z' and timeGrain eq duration'[Hour|Minute|Day]'.
1807func (client HostingEnvironmentsClient) GetHostingEnvironmentUsages(ctx context.Context, resourceGroupName string, name string, filter string) (result CsmUsageQuotaCollectionPage, err error) {
1808	if tracing.IsEnabled() {
1809		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentUsages")
1810		defer func() {
1811			sc := -1
1812			if result.cuqc.Response.Response != nil {
1813				sc = result.cuqc.Response.Response.StatusCode
1814			}
1815			tracing.EndSpan(ctx, sc, err)
1816		}()
1817	}
1818	result.fn = client.getHostingEnvironmentUsagesNextResults
1819	req, err := client.GetHostingEnvironmentUsagesPreparer(ctx, resourceGroupName, name, filter)
1820	if err != nil {
1821		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentUsages", nil, "Failure preparing request")
1822		return
1823	}
1824
1825	resp, err := client.GetHostingEnvironmentUsagesSender(req)
1826	if err != nil {
1827		result.cuqc.Response = autorest.Response{Response: resp}
1828		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentUsages", resp, "Failure sending request")
1829		return
1830	}
1831
1832	result.cuqc, err = client.GetHostingEnvironmentUsagesResponder(resp)
1833	if err != nil {
1834		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentUsages", resp, "Failure responding to request")
1835		return
1836	}
1837	if result.cuqc.hasNextLink() && result.cuqc.IsEmpty() {
1838		err = result.NextWithContext(ctx)
1839		return
1840	}
1841
1842	return
1843}
1844
1845// GetHostingEnvironmentUsagesPreparer prepares the GetHostingEnvironmentUsages request.
1846func (client HostingEnvironmentsClient) GetHostingEnvironmentUsagesPreparer(ctx context.Context, resourceGroupName string, name string, filter string) (*http.Request, error) {
1847	pathParameters := map[string]interface{}{
1848		"name":              autorest.Encode("path", name),
1849		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1850		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1851	}
1852
1853	const APIVersion = "2015-08-01"
1854	queryParameters := map[string]interface{}{
1855		"api-version": APIVersion,
1856	}
1857	if len(filter) > 0 {
1858		queryParameters["$filter"] = filter
1859	}
1860
1861	preparer := autorest.CreatePreparer(
1862		autorest.AsGet(),
1863		autorest.WithBaseURL(client.BaseURI),
1864		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/usages", pathParameters),
1865		autorest.WithQueryParameters(queryParameters))
1866	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1867}
1868
1869// GetHostingEnvironmentUsagesSender sends the GetHostingEnvironmentUsages request. The method will close the
1870// http.Response Body if it receives an error.
1871func (client HostingEnvironmentsClient) GetHostingEnvironmentUsagesSender(req *http.Request) (*http.Response, error) {
1872	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1873}
1874
1875// GetHostingEnvironmentUsagesResponder handles the response to the GetHostingEnvironmentUsages request. The method always
1876// closes the http.Response Body.
1877func (client HostingEnvironmentsClient) GetHostingEnvironmentUsagesResponder(resp *http.Response) (result CsmUsageQuotaCollection, err error) {
1878	err = autorest.Respond(
1879		resp,
1880		azure.WithErrorUnlessStatusCode(http.StatusOK),
1881		autorest.ByUnmarshallingJSON(&result),
1882		autorest.ByClosing())
1883	result.Response = autorest.Response{Response: resp}
1884	return
1885}
1886
1887// getHostingEnvironmentUsagesNextResults retrieves the next set of results, if any.
1888func (client HostingEnvironmentsClient) getHostingEnvironmentUsagesNextResults(ctx context.Context, lastResults CsmUsageQuotaCollection) (result CsmUsageQuotaCollection, err error) {
1889	req, err := lastResults.csmUsageQuotaCollectionPreparer(ctx)
1890	if err != nil {
1891		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentUsagesNextResults", nil, "Failure preparing next results request")
1892	}
1893	if req == nil {
1894		return
1895	}
1896	resp, err := client.GetHostingEnvironmentUsagesSender(req)
1897	if err != nil {
1898		result.Response = autorest.Response{Response: resp}
1899		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentUsagesNextResults", resp, "Failure sending next results request")
1900	}
1901	result, err = client.GetHostingEnvironmentUsagesResponder(resp)
1902	if err != nil {
1903		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentUsagesNextResults", resp, "Failure responding to next results request")
1904	}
1905	return
1906}
1907
1908// GetHostingEnvironmentUsagesComplete enumerates all values, automatically crossing page boundaries as required.
1909func (client HostingEnvironmentsClient) GetHostingEnvironmentUsagesComplete(ctx context.Context, resourceGroupName string, name string, filter string) (result CsmUsageQuotaCollectionIterator, err error) {
1910	if tracing.IsEnabled() {
1911		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentUsages")
1912		defer func() {
1913			sc := -1
1914			if result.Response().Response.Response != nil {
1915				sc = result.page.Response().Response.Response.StatusCode
1916			}
1917			tracing.EndSpan(ctx, sc, err)
1918		}()
1919	}
1920	result.page, err = client.GetHostingEnvironmentUsages(ctx, resourceGroupName, name, filter)
1921	return
1922}
1923
1924// GetHostingEnvironmentVips sends the get hosting environment vips request.
1925// Parameters:
1926// resourceGroupName - name of resource group
1927// name - name of hostingEnvironment (App Service Environment)
1928func (client HostingEnvironmentsClient) GetHostingEnvironmentVips(ctx context.Context, resourceGroupName string, name string) (result AddressResponse, err error) {
1929	if tracing.IsEnabled() {
1930		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentVips")
1931		defer func() {
1932			sc := -1
1933			if result.Response.Response != nil {
1934				sc = result.Response.Response.StatusCode
1935			}
1936			tracing.EndSpan(ctx, sc, err)
1937		}()
1938	}
1939	req, err := client.GetHostingEnvironmentVipsPreparer(ctx, resourceGroupName, name)
1940	if err != nil {
1941		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentVips", nil, "Failure preparing request")
1942		return
1943	}
1944
1945	resp, err := client.GetHostingEnvironmentVipsSender(req)
1946	if err != nil {
1947		result.Response = autorest.Response{Response: resp}
1948		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentVips", resp, "Failure sending request")
1949		return
1950	}
1951
1952	result, err = client.GetHostingEnvironmentVipsResponder(resp)
1953	if err != nil {
1954		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentVips", resp, "Failure responding to request")
1955		return
1956	}
1957
1958	return
1959}
1960
1961// GetHostingEnvironmentVipsPreparer prepares the GetHostingEnvironmentVips request.
1962func (client HostingEnvironmentsClient) GetHostingEnvironmentVipsPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
1963	pathParameters := map[string]interface{}{
1964		"name":              autorest.Encode("path", name),
1965		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1966		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1967	}
1968
1969	const APIVersion = "2015-08-01"
1970	queryParameters := map[string]interface{}{
1971		"api-version": APIVersion,
1972	}
1973
1974	preparer := autorest.CreatePreparer(
1975		autorest.AsGet(),
1976		autorest.WithBaseURL(client.BaseURI),
1977		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/capacities/virtualip", pathParameters),
1978		autorest.WithQueryParameters(queryParameters))
1979	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1980}
1981
1982// GetHostingEnvironmentVipsSender sends the GetHostingEnvironmentVips request. The method will close the
1983// http.Response Body if it receives an error.
1984func (client HostingEnvironmentsClient) GetHostingEnvironmentVipsSender(req *http.Request) (*http.Response, error) {
1985	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1986}
1987
1988// GetHostingEnvironmentVipsResponder handles the response to the GetHostingEnvironmentVips request. The method always
1989// closes the http.Response Body.
1990func (client HostingEnvironmentsClient) GetHostingEnvironmentVipsResponder(resp *http.Response) (result AddressResponse, err error) {
1991	err = autorest.Respond(
1992		resp,
1993		azure.WithErrorUnlessStatusCode(http.StatusOK),
1994		autorest.ByUnmarshallingJSON(&result),
1995		autorest.ByClosing())
1996	result.Response = autorest.Response{Response: resp}
1997	return
1998}
1999
2000// GetHostingEnvironmentWebHostingPlans sends the get hosting environment web hosting plans request.
2001// Parameters:
2002// resourceGroupName - name of resource group
2003// name - name of hostingEnvironment (App Service Environment)
2004func (client HostingEnvironmentsClient) GetHostingEnvironmentWebHostingPlans(ctx context.Context, resourceGroupName string, name string) (result ServerFarmCollectionPage, err error) {
2005	if tracing.IsEnabled() {
2006		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentWebHostingPlans")
2007		defer func() {
2008			sc := -1
2009			if result.sfc.Response.Response != nil {
2010				sc = result.sfc.Response.Response.StatusCode
2011			}
2012			tracing.EndSpan(ctx, sc, err)
2013		}()
2014	}
2015	result.fn = client.getHostingEnvironmentWebHostingPlansNextResults
2016	req, err := client.GetHostingEnvironmentWebHostingPlansPreparer(ctx, resourceGroupName, name)
2017	if err != nil {
2018		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebHostingPlans", nil, "Failure preparing request")
2019		return
2020	}
2021
2022	resp, err := client.GetHostingEnvironmentWebHostingPlansSender(req)
2023	if err != nil {
2024		result.sfc.Response = autorest.Response{Response: resp}
2025		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebHostingPlans", resp, "Failure sending request")
2026		return
2027	}
2028
2029	result.sfc, err = client.GetHostingEnvironmentWebHostingPlansResponder(resp)
2030	if err != nil {
2031		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebHostingPlans", resp, "Failure responding to request")
2032		return
2033	}
2034	if result.sfc.hasNextLink() && result.sfc.IsEmpty() {
2035		err = result.NextWithContext(ctx)
2036		return
2037	}
2038
2039	return
2040}
2041
2042// GetHostingEnvironmentWebHostingPlansPreparer prepares the GetHostingEnvironmentWebHostingPlans request.
2043func (client HostingEnvironmentsClient) GetHostingEnvironmentWebHostingPlansPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
2044	pathParameters := map[string]interface{}{
2045		"name":              autorest.Encode("path", name),
2046		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2047		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2048	}
2049
2050	const APIVersion = "2015-08-01"
2051	queryParameters := map[string]interface{}{
2052		"api-version": APIVersion,
2053	}
2054
2055	preparer := autorest.CreatePreparer(
2056		autorest.AsGet(),
2057		autorest.WithBaseURL(client.BaseURI),
2058		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/webhostingplans", pathParameters),
2059		autorest.WithQueryParameters(queryParameters))
2060	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2061}
2062
2063// GetHostingEnvironmentWebHostingPlansSender sends the GetHostingEnvironmentWebHostingPlans request. The method will close the
2064// http.Response Body if it receives an error.
2065func (client HostingEnvironmentsClient) GetHostingEnvironmentWebHostingPlansSender(req *http.Request) (*http.Response, error) {
2066	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2067}
2068
2069// GetHostingEnvironmentWebHostingPlansResponder handles the response to the GetHostingEnvironmentWebHostingPlans request. The method always
2070// closes the http.Response Body.
2071func (client HostingEnvironmentsClient) GetHostingEnvironmentWebHostingPlansResponder(resp *http.Response) (result ServerFarmCollection, err error) {
2072	err = autorest.Respond(
2073		resp,
2074		azure.WithErrorUnlessStatusCode(http.StatusOK),
2075		autorest.ByUnmarshallingJSON(&result),
2076		autorest.ByClosing())
2077	result.Response = autorest.Response{Response: resp}
2078	return
2079}
2080
2081// getHostingEnvironmentWebHostingPlansNextResults retrieves the next set of results, if any.
2082func (client HostingEnvironmentsClient) getHostingEnvironmentWebHostingPlansNextResults(ctx context.Context, lastResults ServerFarmCollection) (result ServerFarmCollection, err error) {
2083	req, err := lastResults.serverFarmCollectionPreparer(ctx)
2084	if err != nil {
2085		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebHostingPlansNextResults", nil, "Failure preparing next results request")
2086	}
2087	if req == nil {
2088		return
2089	}
2090	resp, err := client.GetHostingEnvironmentWebHostingPlansSender(req)
2091	if err != nil {
2092		result.Response = autorest.Response{Response: resp}
2093		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebHostingPlansNextResults", resp, "Failure sending next results request")
2094	}
2095	result, err = client.GetHostingEnvironmentWebHostingPlansResponder(resp)
2096	if err != nil {
2097		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebHostingPlansNextResults", resp, "Failure responding to next results request")
2098	}
2099	return
2100}
2101
2102// GetHostingEnvironmentWebHostingPlansComplete enumerates all values, automatically crossing page boundaries as required.
2103func (client HostingEnvironmentsClient) GetHostingEnvironmentWebHostingPlansComplete(ctx context.Context, resourceGroupName string, name string) (result ServerFarmCollectionIterator, err error) {
2104	if tracing.IsEnabled() {
2105		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentWebHostingPlans")
2106		defer func() {
2107			sc := -1
2108			if result.Response().Response.Response != nil {
2109				sc = result.page.Response().Response.Response.StatusCode
2110			}
2111			tracing.EndSpan(ctx, sc, err)
2112		}()
2113	}
2114	result.page, err = client.GetHostingEnvironmentWebHostingPlans(ctx, resourceGroupName, name)
2115	return
2116}
2117
2118// GetHostingEnvironmentWebWorkerMetricDefinitions sends the get hosting environment web worker metric definitions
2119// request.
2120// Parameters:
2121// resourceGroupName - name of resource group
2122// name - name of hostingEnvironment (App Service Environment)
2123// workerPoolName - name of worker pool
2124func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetricDefinitions(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (result MetricDefinitionCollectionPage, err error) {
2125	if tracing.IsEnabled() {
2126		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentWebWorkerMetricDefinitions")
2127		defer func() {
2128			sc := -1
2129			if result.mdc.Response.Response != nil {
2130				sc = result.mdc.Response.Response.StatusCode
2131			}
2132			tracing.EndSpan(ctx, sc, err)
2133		}()
2134	}
2135	result.fn = client.getHostingEnvironmentWebWorkerMetricDefinitionsNextResults
2136	req, err := client.GetHostingEnvironmentWebWorkerMetricDefinitionsPreparer(ctx, resourceGroupName, name, workerPoolName)
2137	if err != nil {
2138		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebWorkerMetricDefinitions", nil, "Failure preparing request")
2139		return
2140	}
2141
2142	resp, err := client.GetHostingEnvironmentWebWorkerMetricDefinitionsSender(req)
2143	if err != nil {
2144		result.mdc.Response = autorest.Response{Response: resp}
2145		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebWorkerMetricDefinitions", resp, "Failure sending request")
2146		return
2147	}
2148
2149	result.mdc, err = client.GetHostingEnvironmentWebWorkerMetricDefinitionsResponder(resp)
2150	if err != nil {
2151		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebWorkerMetricDefinitions", resp, "Failure responding to request")
2152		return
2153	}
2154	if result.mdc.hasNextLink() && result.mdc.IsEmpty() {
2155		err = result.NextWithContext(ctx)
2156		return
2157	}
2158
2159	return
2160}
2161
2162// GetHostingEnvironmentWebWorkerMetricDefinitionsPreparer prepares the GetHostingEnvironmentWebWorkerMetricDefinitions request.
2163func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetricDefinitionsPreparer(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (*http.Request, error) {
2164	pathParameters := map[string]interface{}{
2165		"name":              autorest.Encode("path", name),
2166		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2167		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2168		"workerPoolName":    autorest.Encode("path", workerPoolName),
2169	}
2170
2171	const APIVersion = "2015-08-01"
2172	queryParameters := map[string]interface{}{
2173		"api-version": APIVersion,
2174	}
2175
2176	preparer := autorest.CreatePreparer(
2177		autorest.AsGet(),
2178		autorest.WithBaseURL(client.BaseURI),
2179		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/metricdefinitions", pathParameters),
2180		autorest.WithQueryParameters(queryParameters))
2181	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2182}
2183
2184// GetHostingEnvironmentWebWorkerMetricDefinitionsSender sends the GetHostingEnvironmentWebWorkerMetricDefinitions request. The method will close the
2185// http.Response Body if it receives an error.
2186func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetricDefinitionsSender(req *http.Request) (*http.Response, error) {
2187	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2188}
2189
2190// GetHostingEnvironmentWebWorkerMetricDefinitionsResponder handles the response to the GetHostingEnvironmentWebWorkerMetricDefinitions request. The method always
2191// closes the http.Response Body.
2192func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetricDefinitionsResponder(resp *http.Response) (result MetricDefinitionCollection, err error) {
2193	err = autorest.Respond(
2194		resp,
2195		azure.WithErrorUnlessStatusCode(http.StatusOK),
2196		autorest.ByUnmarshallingJSON(&result),
2197		autorest.ByClosing())
2198	result.Response = autorest.Response{Response: resp}
2199	return
2200}
2201
2202// getHostingEnvironmentWebWorkerMetricDefinitionsNextResults retrieves the next set of results, if any.
2203func (client HostingEnvironmentsClient) getHostingEnvironmentWebWorkerMetricDefinitionsNextResults(ctx context.Context, lastResults MetricDefinitionCollection) (result MetricDefinitionCollection, err error) {
2204	req, err := lastResults.metricDefinitionCollectionPreparer(ctx)
2205	if err != nil {
2206		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebWorkerMetricDefinitionsNextResults", nil, "Failure preparing next results request")
2207	}
2208	if req == nil {
2209		return
2210	}
2211	resp, err := client.GetHostingEnvironmentWebWorkerMetricDefinitionsSender(req)
2212	if err != nil {
2213		result.Response = autorest.Response{Response: resp}
2214		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebWorkerMetricDefinitionsNextResults", resp, "Failure sending next results request")
2215	}
2216	result, err = client.GetHostingEnvironmentWebWorkerMetricDefinitionsResponder(resp)
2217	if err != nil {
2218		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebWorkerMetricDefinitionsNextResults", resp, "Failure responding to next results request")
2219	}
2220	return
2221}
2222
2223// GetHostingEnvironmentWebWorkerMetricDefinitionsComplete enumerates all values, automatically crossing page boundaries as required.
2224func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetricDefinitionsComplete(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (result MetricDefinitionCollectionIterator, err error) {
2225	if tracing.IsEnabled() {
2226		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentWebWorkerMetricDefinitions")
2227		defer func() {
2228			sc := -1
2229			if result.Response().Response.Response != nil {
2230				sc = result.page.Response().Response.Response.StatusCode
2231			}
2232			tracing.EndSpan(ctx, sc, err)
2233		}()
2234	}
2235	result.page, err = client.GetHostingEnvironmentWebWorkerMetricDefinitions(ctx, resourceGroupName, name, workerPoolName)
2236	return
2237}
2238
2239// GetHostingEnvironmentWebWorkerMetrics sends the get hosting environment web worker metrics request.
2240// Parameters:
2241// resourceGroupName - name of resource group
2242// name - name of hostingEnvironment (App Service Environment)
2243// workerPoolName - name of worker pool
2244// details - include instance details
2245// filter - return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example:
2246// $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq '2014-01-01T00:00:00Z' and
2247// endTime eq '2014-12-31T23:59:59Z' and timeGrain eq duration'[Hour|Minute|Day]'.
2248func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetrics(ctx context.Context, resourceGroupName string, name string, workerPoolName string, details *bool, filter string) (result ResourceMetricCollectionPage, err error) {
2249	if tracing.IsEnabled() {
2250		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentWebWorkerMetrics")
2251		defer func() {
2252			sc := -1
2253			if result.rmc.Response.Response != nil {
2254				sc = result.rmc.Response.Response.StatusCode
2255			}
2256			tracing.EndSpan(ctx, sc, err)
2257		}()
2258	}
2259	result.fn = client.getHostingEnvironmentWebWorkerMetricsNextResults
2260	req, err := client.GetHostingEnvironmentWebWorkerMetricsPreparer(ctx, resourceGroupName, name, workerPoolName, details, filter)
2261	if err != nil {
2262		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebWorkerMetrics", nil, "Failure preparing request")
2263		return
2264	}
2265
2266	resp, err := client.GetHostingEnvironmentWebWorkerMetricsSender(req)
2267	if err != nil {
2268		result.rmc.Response = autorest.Response{Response: resp}
2269		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebWorkerMetrics", resp, "Failure sending request")
2270		return
2271	}
2272
2273	result.rmc, err = client.GetHostingEnvironmentWebWorkerMetricsResponder(resp)
2274	if err != nil {
2275		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebWorkerMetrics", resp, "Failure responding to request")
2276		return
2277	}
2278	if result.rmc.hasNextLink() && result.rmc.IsEmpty() {
2279		err = result.NextWithContext(ctx)
2280		return
2281	}
2282
2283	return
2284}
2285
2286// GetHostingEnvironmentWebWorkerMetricsPreparer prepares the GetHostingEnvironmentWebWorkerMetrics request.
2287func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetricsPreparer(ctx context.Context, resourceGroupName string, name string, workerPoolName string, details *bool, filter string) (*http.Request, error) {
2288	pathParameters := map[string]interface{}{
2289		"name":              autorest.Encode("path", name),
2290		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2291		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2292		"workerPoolName":    autorest.Encode("path", workerPoolName),
2293	}
2294
2295	const APIVersion = "2015-08-01"
2296	queryParameters := map[string]interface{}{
2297		"api-version": APIVersion,
2298	}
2299	if details != nil {
2300		queryParameters["details"] = autorest.Encode("query", *details)
2301	}
2302	if len(filter) > 0 {
2303		queryParameters["$filter"] = filter
2304	}
2305
2306	preparer := autorest.CreatePreparer(
2307		autorest.AsGet(),
2308		autorest.WithBaseURL(client.BaseURI),
2309		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/metrics", pathParameters),
2310		autorest.WithQueryParameters(queryParameters))
2311	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2312}
2313
2314// GetHostingEnvironmentWebWorkerMetricsSender sends the GetHostingEnvironmentWebWorkerMetrics request. The method will close the
2315// http.Response Body if it receives an error.
2316func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetricsSender(req *http.Request) (*http.Response, error) {
2317	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2318}
2319
2320// GetHostingEnvironmentWebWorkerMetricsResponder handles the response to the GetHostingEnvironmentWebWorkerMetrics request. The method always
2321// closes the http.Response Body.
2322func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetricsResponder(resp *http.Response) (result ResourceMetricCollection, err error) {
2323	err = autorest.Respond(
2324		resp,
2325		azure.WithErrorUnlessStatusCode(http.StatusOK),
2326		autorest.ByUnmarshallingJSON(&result),
2327		autorest.ByClosing())
2328	result.Response = autorest.Response{Response: resp}
2329	return
2330}
2331
2332// getHostingEnvironmentWebWorkerMetricsNextResults retrieves the next set of results, if any.
2333func (client HostingEnvironmentsClient) getHostingEnvironmentWebWorkerMetricsNextResults(ctx context.Context, lastResults ResourceMetricCollection) (result ResourceMetricCollection, err error) {
2334	req, err := lastResults.resourceMetricCollectionPreparer(ctx)
2335	if err != nil {
2336		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebWorkerMetricsNextResults", nil, "Failure preparing next results request")
2337	}
2338	if req == nil {
2339		return
2340	}
2341	resp, err := client.GetHostingEnvironmentWebWorkerMetricsSender(req)
2342	if err != nil {
2343		result.Response = autorest.Response{Response: resp}
2344		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebWorkerMetricsNextResults", resp, "Failure sending next results request")
2345	}
2346	result, err = client.GetHostingEnvironmentWebWorkerMetricsResponder(resp)
2347	if err != nil {
2348		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebWorkerMetricsNextResults", resp, "Failure responding to next results request")
2349	}
2350	return
2351}
2352
2353// GetHostingEnvironmentWebWorkerMetricsComplete enumerates all values, automatically crossing page boundaries as required.
2354func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerMetricsComplete(ctx context.Context, resourceGroupName string, name string, workerPoolName string, details *bool, filter string) (result ResourceMetricCollectionIterator, err error) {
2355	if tracing.IsEnabled() {
2356		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentWebWorkerMetrics")
2357		defer func() {
2358			sc := -1
2359			if result.Response().Response.Response != nil {
2360				sc = result.page.Response().Response.Response.StatusCode
2361			}
2362			tracing.EndSpan(ctx, sc, err)
2363		}()
2364	}
2365	result.page, err = client.GetHostingEnvironmentWebWorkerMetrics(ctx, resourceGroupName, name, workerPoolName, details, filter)
2366	return
2367}
2368
2369// GetHostingEnvironmentWebWorkerUsages sends the get hosting environment web worker usages request.
2370// Parameters:
2371// resourceGroupName - name of resource group
2372// name - name of hostingEnvironment (App Service Environment)
2373// workerPoolName - name of worker pool
2374func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerUsages(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (result UsageCollectionPage, err error) {
2375	if tracing.IsEnabled() {
2376		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentWebWorkerUsages")
2377		defer func() {
2378			sc := -1
2379			if result.uc.Response.Response != nil {
2380				sc = result.uc.Response.Response.StatusCode
2381			}
2382			tracing.EndSpan(ctx, sc, err)
2383		}()
2384	}
2385	result.fn = client.getHostingEnvironmentWebWorkerUsagesNextResults
2386	req, err := client.GetHostingEnvironmentWebWorkerUsagesPreparer(ctx, resourceGroupName, name, workerPoolName)
2387	if err != nil {
2388		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebWorkerUsages", nil, "Failure preparing request")
2389		return
2390	}
2391
2392	resp, err := client.GetHostingEnvironmentWebWorkerUsagesSender(req)
2393	if err != nil {
2394		result.uc.Response = autorest.Response{Response: resp}
2395		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebWorkerUsages", resp, "Failure sending request")
2396		return
2397	}
2398
2399	result.uc, err = client.GetHostingEnvironmentWebWorkerUsagesResponder(resp)
2400	if err != nil {
2401		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetHostingEnvironmentWebWorkerUsages", resp, "Failure responding to request")
2402		return
2403	}
2404	if result.uc.hasNextLink() && result.uc.IsEmpty() {
2405		err = result.NextWithContext(ctx)
2406		return
2407	}
2408
2409	return
2410}
2411
2412// GetHostingEnvironmentWebWorkerUsagesPreparer prepares the GetHostingEnvironmentWebWorkerUsages request.
2413func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerUsagesPreparer(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (*http.Request, error) {
2414	pathParameters := map[string]interface{}{
2415		"name":              autorest.Encode("path", name),
2416		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2417		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2418		"workerPoolName":    autorest.Encode("path", workerPoolName),
2419	}
2420
2421	const APIVersion = "2015-08-01"
2422	queryParameters := map[string]interface{}{
2423		"api-version": APIVersion,
2424	}
2425
2426	preparer := autorest.CreatePreparer(
2427		autorest.AsGet(),
2428		autorest.WithBaseURL(client.BaseURI),
2429		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/usages", pathParameters),
2430		autorest.WithQueryParameters(queryParameters))
2431	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2432}
2433
2434// GetHostingEnvironmentWebWorkerUsagesSender sends the GetHostingEnvironmentWebWorkerUsages request. The method will close the
2435// http.Response Body if it receives an error.
2436func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerUsagesSender(req *http.Request) (*http.Response, error) {
2437	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2438}
2439
2440// GetHostingEnvironmentWebWorkerUsagesResponder handles the response to the GetHostingEnvironmentWebWorkerUsages request. The method always
2441// closes the http.Response Body.
2442func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerUsagesResponder(resp *http.Response) (result UsageCollection, err error) {
2443	err = autorest.Respond(
2444		resp,
2445		azure.WithErrorUnlessStatusCode(http.StatusOK),
2446		autorest.ByUnmarshallingJSON(&result),
2447		autorest.ByClosing())
2448	result.Response = autorest.Response{Response: resp}
2449	return
2450}
2451
2452// getHostingEnvironmentWebWorkerUsagesNextResults retrieves the next set of results, if any.
2453func (client HostingEnvironmentsClient) getHostingEnvironmentWebWorkerUsagesNextResults(ctx context.Context, lastResults UsageCollection) (result UsageCollection, err error) {
2454	req, err := lastResults.usageCollectionPreparer(ctx)
2455	if err != nil {
2456		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebWorkerUsagesNextResults", nil, "Failure preparing next results request")
2457	}
2458	if req == nil {
2459		return
2460	}
2461	resp, err := client.GetHostingEnvironmentWebWorkerUsagesSender(req)
2462	if err != nil {
2463		result.Response = autorest.Response{Response: resp}
2464		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebWorkerUsagesNextResults", resp, "Failure sending next results request")
2465	}
2466	result, err = client.GetHostingEnvironmentWebWorkerUsagesResponder(resp)
2467	if err != nil {
2468		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getHostingEnvironmentWebWorkerUsagesNextResults", resp, "Failure responding to next results request")
2469	}
2470	return
2471}
2472
2473// GetHostingEnvironmentWebWorkerUsagesComplete enumerates all values, automatically crossing page boundaries as required.
2474func (client HostingEnvironmentsClient) GetHostingEnvironmentWebWorkerUsagesComplete(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (result UsageCollectionIterator, err error) {
2475	if tracing.IsEnabled() {
2476		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetHostingEnvironmentWebWorkerUsages")
2477		defer func() {
2478			sc := -1
2479			if result.Response().Response.Response != nil {
2480				sc = result.page.Response().Response.Response.StatusCode
2481			}
2482			tracing.EndSpan(ctx, sc, err)
2483		}()
2484	}
2485	result.page, err = client.GetHostingEnvironmentWebWorkerUsages(ctx, resourceGroupName, name, workerPoolName)
2486	return
2487}
2488
2489// GetMultiRolePool sends the get multi role pool request.
2490// Parameters:
2491// resourceGroupName - name of resource group
2492// name - name of hostingEnvironment (App Service Environment)
2493func (client HostingEnvironmentsClient) GetMultiRolePool(ctx context.Context, resourceGroupName string, name string) (result WorkerPool, err error) {
2494	if tracing.IsEnabled() {
2495		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetMultiRolePool")
2496		defer func() {
2497			sc := -1
2498			if result.Response.Response != nil {
2499				sc = result.Response.Response.StatusCode
2500			}
2501			tracing.EndSpan(ctx, sc, err)
2502		}()
2503	}
2504	req, err := client.GetMultiRolePoolPreparer(ctx, resourceGroupName, name)
2505	if err != nil {
2506		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePool", nil, "Failure preparing request")
2507		return
2508	}
2509
2510	resp, err := client.GetMultiRolePoolSender(req)
2511	if err != nil {
2512		result.Response = autorest.Response{Response: resp}
2513		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePool", resp, "Failure sending request")
2514		return
2515	}
2516
2517	result, err = client.GetMultiRolePoolResponder(resp)
2518	if err != nil {
2519		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePool", resp, "Failure responding to request")
2520		return
2521	}
2522
2523	return
2524}
2525
2526// GetMultiRolePoolPreparer prepares the GetMultiRolePool request.
2527func (client HostingEnvironmentsClient) GetMultiRolePoolPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
2528	pathParameters := map[string]interface{}{
2529		"name":              autorest.Encode("path", name),
2530		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2531		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2532	}
2533
2534	const APIVersion = "2015-08-01"
2535	queryParameters := map[string]interface{}{
2536		"api-version": APIVersion,
2537	}
2538
2539	preparer := autorest.CreatePreparer(
2540		autorest.AsGet(),
2541		autorest.WithBaseURL(client.BaseURI),
2542		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default", pathParameters),
2543		autorest.WithQueryParameters(queryParameters))
2544	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2545}
2546
2547// GetMultiRolePoolSender sends the GetMultiRolePool request. The method will close the
2548// http.Response Body if it receives an error.
2549func (client HostingEnvironmentsClient) GetMultiRolePoolSender(req *http.Request) (*http.Response, error) {
2550	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2551}
2552
2553// GetMultiRolePoolResponder handles the response to the GetMultiRolePool request. The method always
2554// closes the http.Response Body.
2555func (client HostingEnvironmentsClient) GetMultiRolePoolResponder(resp *http.Response) (result WorkerPool, err error) {
2556	err = autorest.Respond(
2557		resp,
2558		azure.WithErrorUnlessStatusCode(http.StatusOK),
2559		autorest.ByUnmarshallingJSON(&result),
2560		autorest.ByClosing())
2561	result.Response = autorest.Response{Response: resp}
2562	return
2563}
2564
2565// GetMultiRolePoolInstanceMetricDefinitions sends the get multi role pool instance metric definitions request.
2566// Parameters:
2567// resourceGroupName - name of resource group
2568// name - name of hostingEnvironment (App Service Environment)
2569// instance - name of instance in the multiRole pool>
2570func (client HostingEnvironmentsClient) GetMultiRolePoolInstanceMetricDefinitions(ctx context.Context, resourceGroupName string, name string, instance string) (result SetObject, err error) {
2571	if tracing.IsEnabled() {
2572		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetMultiRolePoolInstanceMetricDefinitions")
2573		defer func() {
2574			sc := -1
2575			if result.Response.Response != nil {
2576				sc = result.Response.Response.StatusCode
2577			}
2578			tracing.EndSpan(ctx, sc, err)
2579		}()
2580	}
2581	req, err := client.GetMultiRolePoolInstanceMetricDefinitionsPreparer(ctx, resourceGroupName, name, instance)
2582	if err != nil {
2583		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePoolInstanceMetricDefinitions", nil, "Failure preparing request")
2584		return
2585	}
2586
2587	resp, err := client.GetMultiRolePoolInstanceMetricDefinitionsSender(req)
2588	if err != nil {
2589		result.Response = autorest.Response{Response: resp}
2590		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePoolInstanceMetricDefinitions", resp, "Failure sending request")
2591		return
2592	}
2593
2594	result, err = client.GetMultiRolePoolInstanceMetricDefinitionsResponder(resp)
2595	if err != nil {
2596		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePoolInstanceMetricDefinitions", resp, "Failure responding to request")
2597		return
2598	}
2599
2600	return
2601}
2602
2603// GetMultiRolePoolInstanceMetricDefinitionsPreparer prepares the GetMultiRolePoolInstanceMetricDefinitions request.
2604func (client HostingEnvironmentsClient) GetMultiRolePoolInstanceMetricDefinitionsPreparer(ctx context.Context, resourceGroupName string, name string, instance string) (*http.Request, error) {
2605	pathParameters := map[string]interface{}{
2606		"instance":          autorest.Encode("path", instance),
2607		"name":              autorest.Encode("path", name),
2608		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2609		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2610	}
2611
2612	const APIVersion = "2015-08-01"
2613	queryParameters := map[string]interface{}{
2614		"api-version": APIVersion,
2615	}
2616
2617	preparer := autorest.CreatePreparer(
2618		autorest.AsGet(),
2619		autorest.WithBaseURL(client.BaseURI),
2620		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/instances/{instance}/metricdefinitions", pathParameters),
2621		autorest.WithQueryParameters(queryParameters))
2622	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2623}
2624
2625// GetMultiRolePoolInstanceMetricDefinitionsSender sends the GetMultiRolePoolInstanceMetricDefinitions request. The method will close the
2626// http.Response Body if it receives an error.
2627func (client HostingEnvironmentsClient) GetMultiRolePoolInstanceMetricDefinitionsSender(req *http.Request) (*http.Response, error) {
2628	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2629}
2630
2631// GetMultiRolePoolInstanceMetricDefinitionsResponder handles the response to the GetMultiRolePoolInstanceMetricDefinitions request. The method always
2632// closes the http.Response Body.
2633func (client HostingEnvironmentsClient) GetMultiRolePoolInstanceMetricDefinitionsResponder(resp *http.Response) (result SetObject, err error) {
2634	err = autorest.Respond(
2635		resp,
2636		azure.WithErrorUnlessStatusCode(http.StatusOK),
2637		autorest.ByUnmarshallingJSON(&result.Value),
2638		autorest.ByClosing())
2639	result.Response = autorest.Response{Response: resp}
2640	return
2641}
2642
2643// GetMultiRolePoolInstanceMetrics sends the get multi role pool instance metrics request.
2644// Parameters:
2645// resourceGroupName - name of resource group
2646// name - name of hostingEnvironment (App Service Environment)
2647// instance - name of instance in the multiRole pool
2648// details - include instance details
2649func (client HostingEnvironmentsClient) GetMultiRolePoolInstanceMetrics(ctx context.Context, resourceGroupName string, name string, instance string, details *bool) (result SetObject, err error) {
2650	if tracing.IsEnabled() {
2651		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetMultiRolePoolInstanceMetrics")
2652		defer func() {
2653			sc := -1
2654			if result.Response.Response != nil {
2655				sc = result.Response.Response.StatusCode
2656			}
2657			tracing.EndSpan(ctx, sc, err)
2658		}()
2659	}
2660	req, err := client.GetMultiRolePoolInstanceMetricsPreparer(ctx, resourceGroupName, name, instance, details)
2661	if err != nil {
2662		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePoolInstanceMetrics", nil, "Failure preparing request")
2663		return
2664	}
2665
2666	resp, err := client.GetMultiRolePoolInstanceMetricsSender(req)
2667	if err != nil {
2668		result.Response = autorest.Response{Response: resp}
2669		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePoolInstanceMetrics", resp, "Failure sending request")
2670		return
2671	}
2672
2673	result, err = client.GetMultiRolePoolInstanceMetricsResponder(resp)
2674	if err != nil {
2675		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePoolInstanceMetrics", resp, "Failure responding to request")
2676		return
2677	}
2678
2679	return
2680}
2681
2682// GetMultiRolePoolInstanceMetricsPreparer prepares the GetMultiRolePoolInstanceMetrics request.
2683func (client HostingEnvironmentsClient) GetMultiRolePoolInstanceMetricsPreparer(ctx context.Context, resourceGroupName string, name string, instance string, details *bool) (*http.Request, error) {
2684	pathParameters := map[string]interface{}{
2685		"instance":          autorest.Encode("path", instance),
2686		"name":              autorest.Encode("path", name),
2687		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2688		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2689	}
2690
2691	const APIVersion = "2015-08-01"
2692	queryParameters := map[string]interface{}{
2693		"api-version": APIVersion,
2694	}
2695	if details != nil {
2696		queryParameters["details"] = autorest.Encode("query", *details)
2697	}
2698
2699	preparer := autorest.CreatePreparer(
2700		autorest.AsGet(),
2701		autorest.WithBaseURL(client.BaseURI),
2702		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/instances/{instance}/metrics", pathParameters),
2703		autorest.WithQueryParameters(queryParameters))
2704	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2705}
2706
2707// GetMultiRolePoolInstanceMetricsSender sends the GetMultiRolePoolInstanceMetrics request. The method will close the
2708// http.Response Body if it receives an error.
2709func (client HostingEnvironmentsClient) GetMultiRolePoolInstanceMetricsSender(req *http.Request) (*http.Response, error) {
2710	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2711}
2712
2713// GetMultiRolePoolInstanceMetricsResponder handles the response to the GetMultiRolePoolInstanceMetrics request. The method always
2714// closes the http.Response Body.
2715func (client HostingEnvironmentsClient) GetMultiRolePoolInstanceMetricsResponder(resp *http.Response) (result SetObject, err error) {
2716	err = autorest.Respond(
2717		resp,
2718		azure.WithErrorUnlessStatusCode(http.StatusOK),
2719		autorest.ByUnmarshallingJSON(&result.Value),
2720		autorest.ByClosing())
2721	result.Response = autorest.Response{Response: resp}
2722	return
2723}
2724
2725// GetMultiRolePools sends the get multi role pools request.
2726// Parameters:
2727// resourceGroupName - name of resource group
2728// name - name of hostingEnvironment (App Service Environment)
2729func (client HostingEnvironmentsClient) GetMultiRolePools(ctx context.Context, resourceGroupName string, name string) (result WorkerPoolCollectionPage, err error) {
2730	if tracing.IsEnabled() {
2731		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetMultiRolePools")
2732		defer func() {
2733			sc := -1
2734			if result.wpc.Response.Response != nil {
2735				sc = result.wpc.Response.Response.StatusCode
2736			}
2737			tracing.EndSpan(ctx, sc, err)
2738		}()
2739	}
2740	result.fn = client.getMultiRolePoolsNextResults
2741	req, err := client.GetMultiRolePoolsPreparer(ctx, resourceGroupName, name)
2742	if err != nil {
2743		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePools", nil, "Failure preparing request")
2744		return
2745	}
2746
2747	resp, err := client.GetMultiRolePoolsSender(req)
2748	if err != nil {
2749		result.wpc.Response = autorest.Response{Response: resp}
2750		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePools", resp, "Failure sending request")
2751		return
2752	}
2753
2754	result.wpc, err = client.GetMultiRolePoolsResponder(resp)
2755	if err != nil {
2756		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePools", resp, "Failure responding to request")
2757		return
2758	}
2759	if result.wpc.hasNextLink() && result.wpc.IsEmpty() {
2760		err = result.NextWithContext(ctx)
2761		return
2762	}
2763
2764	return
2765}
2766
2767// GetMultiRolePoolsPreparer prepares the GetMultiRolePools request.
2768func (client HostingEnvironmentsClient) GetMultiRolePoolsPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
2769	pathParameters := map[string]interface{}{
2770		"name":              autorest.Encode("path", name),
2771		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2772		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2773	}
2774
2775	const APIVersion = "2015-08-01"
2776	queryParameters := map[string]interface{}{
2777		"api-version": APIVersion,
2778	}
2779
2780	preparer := autorest.CreatePreparer(
2781		autorest.AsGet(),
2782		autorest.WithBaseURL(client.BaseURI),
2783		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools", pathParameters),
2784		autorest.WithQueryParameters(queryParameters))
2785	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2786}
2787
2788// GetMultiRolePoolsSender sends the GetMultiRolePools request. The method will close the
2789// http.Response Body if it receives an error.
2790func (client HostingEnvironmentsClient) GetMultiRolePoolsSender(req *http.Request) (*http.Response, error) {
2791	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2792}
2793
2794// GetMultiRolePoolsResponder handles the response to the GetMultiRolePools request. The method always
2795// closes the http.Response Body.
2796func (client HostingEnvironmentsClient) GetMultiRolePoolsResponder(resp *http.Response) (result WorkerPoolCollection, err error) {
2797	err = autorest.Respond(
2798		resp,
2799		azure.WithErrorUnlessStatusCode(http.StatusOK),
2800		autorest.ByUnmarshallingJSON(&result),
2801		autorest.ByClosing())
2802	result.Response = autorest.Response{Response: resp}
2803	return
2804}
2805
2806// getMultiRolePoolsNextResults retrieves the next set of results, if any.
2807func (client HostingEnvironmentsClient) getMultiRolePoolsNextResults(ctx context.Context, lastResults WorkerPoolCollection) (result WorkerPoolCollection, err error) {
2808	req, err := lastResults.workerPoolCollectionPreparer(ctx)
2809	if err != nil {
2810		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getMultiRolePoolsNextResults", nil, "Failure preparing next results request")
2811	}
2812	if req == nil {
2813		return
2814	}
2815	resp, err := client.GetMultiRolePoolsSender(req)
2816	if err != nil {
2817		result.Response = autorest.Response{Response: resp}
2818		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getMultiRolePoolsNextResults", resp, "Failure sending next results request")
2819	}
2820	result, err = client.GetMultiRolePoolsResponder(resp)
2821	if err != nil {
2822		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getMultiRolePoolsNextResults", resp, "Failure responding to next results request")
2823	}
2824	return
2825}
2826
2827// GetMultiRolePoolsComplete enumerates all values, automatically crossing page boundaries as required.
2828func (client HostingEnvironmentsClient) GetMultiRolePoolsComplete(ctx context.Context, resourceGroupName string, name string) (result WorkerPoolCollectionIterator, err error) {
2829	if tracing.IsEnabled() {
2830		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetMultiRolePools")
2831		defer func() {
2832			sc := -1
2833			if result.Response().Response.Response != nil {
2834				sc = result.page.Response().Response.Response.StatusCode
2835			}
2836			tracing.EndSpan(ctx, sc, err)
2837		}()
2838	}
2839	result.page, err = client.GetMultiRolePools(ctx, resourceGroupName, name)
2840	return
2841}
2842
2843// GetMultiRolePoolSkus sends the get multi role pool skus request.
2844// Parameters:
2845// resourceGroupName - name of resource group
2846// name - name of hostingEnvironment (App Service Environment)
2847func (client HostingEnvironmentsClient) GetMultiRolePoolSkus(ctx context.Context, resourceGroupName string, name string) (result SkuInfoCollectionPage, err error) {
2848	if tracing.IsEnabled() {
2849		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetMultiRolePoolSkus")
2850		defer func() {
2851			sc := -1
2852			if result.sic.Response.Response != nil {
2853				sc = result.sic.Response.Response.StatusCode
2854			}
2855			tracing.EndSpan(ctx, sc, err)
2856		}()
2857	}
2858	result.fn = client.getMultiRolePoolSkusNextResults
2859	req, err := client.GetMultiRolePoolSkusPreparer(ctx, resourceGroupName, name)
2860	if err != nil {
2861		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePoolSkus", nil, "Failure preparing request")
2862		return
2863	}
2864
2865	resp, err := client.GetMultiRolePoolSkusSender(req)
2866	if err != nil {
2867		result.sic.Response = autorest.Response{Response: resp}
2868		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePoolSkus", resp, "Failure sending request")
2869		return
2870	}
2871
2872	result.sic, err = client.GetMultiRolePoolSkusResponder(resp)
2873	if err != nil {
2874		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetMultiRolePoolSkus", resp, "Failure responding to request")
2875		return
2876	}
2877	if result.sic.hasNextLink() && result.sic.IsEmpty() {
2878		err = result.NextWithContext(ctx)
2879		return
2880	}
2881
2882	return
2883}
2884
2885// GetMultiRolePoolSkusPreparer prepares the GetMultiRolePoolSkus request.
2886func (client HostingEnvironmentsClient) GetMultiRolePoolSkusPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
2887	pathParameters := map[string]interface{}{
2888		"name":              autorest.Encode("path", name),
2889		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2890		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2891	}
2892
2893	const APIVersion = "2015-08-01"
2894	queryParameters := map[string]interface{}{
2895		"api-version": APIVersion,
2896	}
2897
2898	preparer := autorest.CreatePreparer(
2899		autorest.AsGet(),
2900		autorest.WithBaseURL(client.BaseURI),
2901		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/skus", pathParameters),
2902		autorest.WithQueryParameters(queryParameters))
2903	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2904}
2905
2906// GetMultiRolePoolSkusSender sends the GetMultiRolePoolSkus request. The method will close the
2907// http.Response Body if it receives an error.
2908func (client HostingEnvironmentsClient) GetMultiRolePoolSkusSender(req *http.Request) (*http.Response, error) {
2909	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2910}
2911
2912// GetMultiRolePoolSkusResponder handles the response to the GetMultiRolePoolSkus request. The method always
2913// closes the http.Response Body.
2914func (client HostingEnvironmentsClient) GetMultiRolePoolSkusResponder(resp *http.Response) (result SkuInfoCollection, err error) {
2915	err = autorest.Respond(
2916		resp,
2917		azure.WithErrorUnlessStatusCode(http.StatusOK),
2918		autorest.ByUnmarshallingJSON(&result),
2919		autorest.ByClosing())
2920	result.Response = autorest.Response{Response: resp}
2921	return
2922}
2923
2924// getMultiRolePoolSkusNextResults retrieves the next set of results, if any.
2925func (client HostingEnvironmentsClient) getMultiRolePoolSkusNextResults(ctx context.Context, lastResults SkuInfoCollection) (result SkuInfoCollection, err error) {
2926	req, err := lastResults.skuInfoCollectionPreparer(ctx)
2927	if err != nil {
2928		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getMultiRolePoolSkusNextResults", nil, "Failure preparing next results request")
2929	}
2930	if req == nil {
2931		return
2932	}
2933	resp, err := client.GetMultiRolePoolSkusSender(req)
2934	if err != nil {
2935		result.Response = autorest.Response{Response: resp}
2936		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getMultiRolePoolSkusNextResults", resp, "Failure sending next results request")
2937	}
2938	result, err = client.GetMultiRolePoolSkusResponder(resp)
2939	if err != nil {
2940		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getMultiRolePoolSkusNextResults", resp, "Failure responding to next results request")
2941	}
2942	return
2943}
2944
2945// GetMultiRolePoolSkusComplete enumerates all values, automatically crossing page boundaries as required.
2946func (client HostingEnvironmentsClient) GetMultiRolePoolSkusComplete(ctx context.Context, resourceGroupName string, name string) (result SkuInfoCollectionIterator, err error) {
2947	if tracing.IsEnabled() {
2948		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetMultiRolePoolSkus")
2949		defer func() {
2950			sc := -1
2951			if result.Response().Response.Response != nil {
2952				sc = result.page.Response().Response.Response.StatusCode
2953			}
2954			tracing.EndSpan(ctx, sc, err)
2955		}()
2956	}
2957	result.page, err = client.GetMultiRolePoolSkus(ctx, resourceGroupName, name)
2958	return
2959}
2960
2961// GetWorkerPool sends the get worker pool request.
2962// Parameters:
2963// resourceGroupName - name of resource group
2964// name - name of hostingEnvironment (App Service Environment)
2965// workerPoolName - name of worker pool
2966func (client HostingEnvironmentsClient) GetWorkerPool(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (result WorkerPool, err error) {
2967	if tracing.IsEnabled() {
2968		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetWorkerPool")
2969		defer func() {
2970			sc := -1
2971			if result.Response.Response != nil {
2972				sc = result.Response.Response.StatusCode
2973			}
2974			tracing.EndSpan(ctx, sc, err)
2975		}()
2976	}
2977	req, err := client.GetWorkerPoolPreparer(ctx, resourceGroupName, name, workerPoolName)
2978	if err != nil {
2979		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPool", nil, "Failure preparing request")
2980		return
2981	}
2982
2983	resp, err := client.GetWorkerPoolSender(req)
2984	if err != nil {
2985		result.Response = autorest.Response{Response: resp}
2986		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPool", resp, "Failure sending request")
2987		return
2988	}
2989
2990	result, err = client.GetWorkerPoolResponder(resp)
2991	if err != nil {
2992		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPool", resp, "Failure responding to request")
2993		return
2994	}
2995
2996	return
2997}
2998
2999// GetWorkerPoolPreparer prepares the GetWorkerPool request.
3000func (client HostingEnvironmentsClient) GetWorkerPoolPreparer(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (*http.Request, error) {
3001	pathParameters := map[string]interface{}{
3002		"name":              autorest.Encode("path", name),
3003		"resourceGroupName": autorest.Encode("path", resourceGroupName),
3004		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
3005		"workerPoolName":    autorest.Encode("path", workerPoolName),
3006	}
3007
3008	const APIVersion = "2015-08-01"
3009	queryParameters := map[string]interface{}{
3010		"api-version": APIVersion,
3011	}
3012
3013	preparer := autorest.CreatePreparer(
3014		autorest.AsGet(),
3015		autorest.WithBaseURL(client.BaseURI),
3016		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}", pathParameters),
3017		autorest.WithQueryParameters(queryParameters))
3018	return preparer.Prepare((&http.Request{}).WithContext(ctx))
3019}
3020
3021// GetWorkerPoolSender sends the GetWorkerPool request. The method will close the
3022// http.Response Body if it receives an error.
3023func (client HostingEnvironmentsClient) GetWorkerPoolSender(req *http.Request) (*http.Response, error) {
3024	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
3025}
3026
3027// GetWorkerPoolResponder handles the response to the GetWorkerPool request. The method always
3028// closes the http.Response Body.
3029func (client HostingEnvironmentsClient) GetWorkerPoolResponder(resp *http.Response) (result WorkerPool, err error) {
3030	err = autorest.Respond(
3031		resp,
3032		azure.WithErrorUnlessStatusCode(http.StatusOK),
3033		autorest.ByUnmarshallingJSON(&result),
3034		autorest.ByClosing())
3035	result.Response = autorest.Response{Response: resp}
3036	return
3037}
3038
3039// GetWorkerPoolInstanceMetricDefinitions sends the get worker pool instance metric definitions request.
3040// Parameters:
3041// resourceGroupName - name of resource group
3042// name - name of hostingEnvironment (App Service Environment)
3043// workerPoolName - name of worker pool
3044// instance - name of instance in the worker pool
3045func (client HostingEnvironmentsClient) GetWorkerPoolInstanceMetricDefinitions(ctx context.Context, resourceGroupName string, name string, workerPoolName string, instance string) (result SetObject, err error) {
3046	if tracing.IsEnabled() {
3047		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetWorkerPoolInstanceMetricDefinitions")
3048		defer func() {
3049			sc := -1
3050			if result.Response.Response != nil {
3051				sc = result.Response.Response.StatusCode
3052			}
3053			tracing.EndSpan(ctx, sc, err)
3054		}()
3055	}
3056	req, err := client.GetWorkerPoolInstanceMetricDefinitionsPreparer(ctx, resourceGroupName, name, workerPoolName, instance)
3057	if err != nil {
3058		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPoolInstanceMetricDefinitions", nil, "Failure preparing request")
3059		return
3060	}
3061
3062	resp, err := client.GetWorkerPoolInstanceMetricDefinitionsSender(req)
3063	if err != nil {
3064		result.Response = autorest.Response{Response: resp}
3065		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPoolInstanceMetricDefinitions", resp, "Failure sending request")
3066		return
3067	}
3068
3069	result, err = client.GetWorkerPoolInstanceMetricDefinitionsResponder(resp)
3070	if err != nil {
3071		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPoolInstanceMetricDefinitions", resp, "Failure responding to request")
3072		return
3073	}
3074
3075	return
3076}
3077
3078// GetWorkerPoolInstanceMetricDefinitionsPreparer prepares the GetWorkerPoolInstanceMetricDefinitions request.
3079func (client HostingEnvironmentsClient) GetWorkerPoolInstanceMetricDefinitionsPreparer(ctx context.Context, resourceGroupName string, name string, workerPoolName string, instance string) (*http.Request, error) {
3080	pathParameters := map[string]interface{}{
3081		"instance":          autorest.Encode("path", instance),
3082		"name":              autorest.Encode("path", name),
3083		"resourceGroupName": autorest.Encode("path", resourceGroupName),
3084		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
3085		"workerPoolName":    autorest.Encode("path", workerPoolName),
3086	}
3087
3088	const APIVersion = "2015-08-01"
3089	queryParameters := map[string]interface{}{
3090		"api-version": APIVersion,
3091	}
3092
3093	preparer := autorest.CreatePreparer(
3094		autorest.AsGet(),
3095		autorest.WithBaseURL(client.BaseURI),
3096		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/instances/{instance}/metricdefinitions", pathParameters),
3097		autorest.WithQueryParameters(queryParameters))
3098	return preparer.Prepare((&http.Request{}).WithContext(ctx))
3099}
3100
3101// GetWorkerPoolInstanceMetricDefinitionsSender sends the GetWorkerPoolInstanceMetricDefinitions request. The method will close the
3102// http.Response Body if it receives an error.
3103func (client HostingEnvironmentsClient) GetWorkerPoolInstanceMetricDefinitionsSender(req *http.Request) (*http.Response, error) {
3104	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
3105}
3106
3107// GetWorkerPoolInstanceMetricDefinitionsResponder handles the response to the GetWorkerPoolInstanceMetricDefinitions request. The method always
3108// closes the http.Response Body.
3109func (client HostingEnvironmentsClient) GetWorkerPoolInstanceMetricDefinitionsResponder(resp *http.Response) (result SetObject, err error) {
3110	err = autorest.Respond(
3111		resp,
3112		azure.WithErrorUnlessStatusCode(http.StatusOK),
3113		autorest.ByUnmarshallingJSON(&result.Value),
3114		autorest.ByClosing())
3115	result.Response = autorest.Response{Response: resp}
3116	return
3117}
3118
3119// GetWorkerPoolInstanceMetrics sends the get worker pool instance metrics request.
3120// Parameters:
3121// resourceGroupName - name of resource group
3122// name - name of hostingEnvironment (App Service Environment)
3123// workerPoolName - name of worker pool
3124// instance - name of instance in the worker pool
3125// details - include instance details
3126// filter - return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example:
3127// $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq '2014-01-01T00:00:00Z' and
3128// endTime eq '2014-12-31T23:59:59Z' and timeGrain eq duration'[Hour|Minute|Day]'.
3129func (client HostingEnvironmentsClient) GetWorkerPoolInstanceMetrics(ctx context.Context, resourceGroupName string, name string, workerPoolName string, instance string, details *bool, filter string) (result SetObject, err error) {
3130	if tracing.IsEnabled() {
3131		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetWorkerPoolInstanceMetrics")
3132		defer func() {
3133			sc := -1
3134			if result.Response.Response != nil {
3135				sc = result.Response.Response.StatusCode
3136			}
3137			tracing.EndSpan(ctx, sc, err)
3138		}()
3139	}
3140	req, err := client.GetWorkerPoolInstanceMetricsPreparer(ctx, resourceGroupName, name, workerPoolName, instance, details, filter)
3141	if err != nil {
3142		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPoolInstanceMetrics", nil, "Failure preparing request")
3143		return
3144	}
3145
3146	resp, err := client.GetWorkerPoolInstanceMetricsSender(req)
3147	if err != nil {
3148		result.Response = autorest.Response{Response: resp}
3149		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPoolInstanceMetrics", resp, "Failure sending request")
3150		return
3151	}
3152
3153	result, err = client.GetWorkerPoolInstanceMetricsResponder(resp)
3154	if err != nil {
3155		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPoolInstanceMetrics", resp, "Failure responding to request")
3156		return
3157	}
3158
3159	return
3160}
3161
3162// GetWorkerPoolInstanceMetricsPreparer prepares the GetWorkerPoolInstanceMetrics request.
3163func (client HostingEnvironmentsClient) GetWorkerPoolInstanceMetricsPreparer(ctx context.Context, resourceGroupName string, name string, workerPoolName string, instance string, details *bool, filter string) (*http.Request, error) {
3164	pathParameters := map[string]interface{}{
3165		"instance":          autorest.Encode("path", instance),
3166		"name":              autorest.Encode("path", name),
3167		"resourceGroupName": autorest.Encode("path", resourceGroupName),
3168		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
3169		"workerPoolName":    autorest.Encode("path", workerPoolName),
3170	}
3171
3172	const APIVersion = "2015-08-01"
3173	queryParameters := map[string]interface{}{
3174		"api-version": APIVersion,
3175	}
3176	if details != nil {
3177		queryParameters["details"] = autorest.Encode("query", *details)
3178	}
3179	if len(filter) > 0 {
3180		queryParameters["$filter"] = filter
3181	}
3182
3183	preparer := autorest.CreatePreparer(
3184		autorest.AsGet(),
3185		autorest.WithBaseURL(client.BaseURI),
3186		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/instances/{instance}/metrics", pathParameters),
3187		autorest.WithQueryParameters(queryParameters))
3188	return preparer.Prepare((&http.Request{}).WithContext(ctx))
3189}
3190
3191// GetWorkerPoolInstanceMetricsSender sends the GetWorkerPoolInstanceMetrics request. The method will close the
3192// http.Response Body if it receives an error.
3193func (client HostingEnvironmentsClient) GetWorkerPoolInstanceMetricsSender(req *http.Request) (*http.Response, error) {
3194	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
3195}
3196
3197// GetWorkerPoolInstanceMetricsResponder handles the response to the GetWorkerPoolInstanceMetrics request. The method always
3198// closes the http.Response Body.
3199func (client HostingEnvironmentsClient) GetWorkerPoolInstanceMetricsResponder(resp *http.Response) (result SetObject, err error) {
3200	err = autorest.Respond(
3201		resp,
3202		azure.WithErrorUnlessStatusCode(http.StatusOK),
3203		autorest.ByUnmarshallingJSON(&result.Value),
3204		autorest.ByClosing())
3205	result.Response = autorest.Response{Response: resp}
3206	return
3207}
3208
3209// GetWorkerPools sends the get worker pools request.
3210// Parameters:
3211// resourceGroupName - name of resource group
3212// name - name of hostingEnvironment (App Service Environment)
3213func (client HostingEnvironmentsClient) GetWorkerPools(ctx context.Context, resourceGroupName string, name string) (result WorkerPoolCollectionPage, err error) {
3214	if tracing.IsEnabled() {
3215		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetWorkerPools")
3216		defer func() {
3217			sc := -1
3218			if result.wpc.Response.Response != nil {
3219				sc = result.wpc.Response.Response.StatusCode
3220			}
3221			tracing.EndSpan(ctx, sc, err)
3222		}()
3223	}
3224	result.fn = client.getWorkerPoolsNextResults
3225	req, err := client.GetWorkerPoolsPreparer(ctx, resourceGroupName, name)
3226	if err != nil {
3227		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPools", nil, "Failure preparing request")
3228		return
3229	}
3230
3231	resp, err := client.GetWorkerPoolsSender(req)
3232	if err != nil {
3233		result.wpc.Response = autorest.Response{Response: resp}
3234		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPools", resp, "Failure sending request")
3235		return
3236	}
3237
3238	result.wpc, err = client.GetWorkerPoolsResponder(resp)
3239	if err != nil {
3240		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPools", resp, "Failure responding to request")
3241		return
3242	}
3243	if result.wpc.hasNextLink() && result.wpc.IsEmpty() {
3244		err = result.NextWithContext(ctx)
3245		return
3246	}
3247
3248	return
3249}
3250
3251// GetWorkerPoolsPreparer prepares the GetWorkerPools request.
3252func (client HostingEnvironmentsClient) GetWorkerPoolsPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
3253	pathParameters := map[string]interface{}{
3254		"name":              autorest.Encode("path", name),
3255		"resourceGroupName": autorest.Encode("path", resourceGroupName),
3256		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
3257	}
3258
3259	const APIVersion = "2015-08-01"
3260	queryParameters := map[string]interface{}{
3261		"api-version": APIVersion,
3262	}
3263
3264	preparer := autorest.CreatePreparer(
3265		autorest.AsGet(),
3266		autorest.WithBaseURL(client.BaseURI),
3267		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools", pathParameters),
3268		autorest.WithQueryParameters(queryParameters))
3269	return preparer.Prepare((&http.Request{}).WithContext(ctx))
3270}
3271
3272// GetWorkerPoolsSender sends the GetWorkerPools request. The method will close the
3273// http.Response Body if it receives an error.
3274func (client HostingEnvironmentsClient) GetWorkerPoolsSender(req *http.Request) (*http.Response, error) {
3275	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
3276}
3277
3278// GetWorkerPoolsResponder handles the response to the GetWorkerPools request. The method always
3279// closes the http.Response Body.
3280func (client HostingEnvironmentsClient) GetWorkerPoolsResponder(resp *http.Response) (result WorkerPoolCollection, err error) {
3281	err = autorest.Respond(
3282		resp,
3283		azure.WithErrorUnlessStatusCode(http.StatusOK),
3284		autorest.ByUnmarshallingJSON(&result),
3285		autorest.ByClosing())
3286	result.Response = autorest.Response{Response: resp}
3287	return
3288}
3289
3290// getWorkerPoolsNextResults retrieves the next set of results, if any.
3291func (client HostingEnvironmentsClient) getWorkerPoolsNextResults(ctx context.Context, lastResults WorkerPoolCollection) (result WorkerPoolCollection, err error) {
3292	req, err := lastResults.workerPoolCollectionPreparer(ctx)
3293	if err != nil {
3294		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getWorkerPoolsNextResults", nil, "Failure preparing next results request")
3295	}
3296	if req == nil {
3297		return
3298	}
3299	resp, err := client.GetWorkerPoolsSender(req)
3300	if err != nil {
3301		result.Response = autorest.Response{Response: resp}
3302		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getWorkerPoolsNextResults", resp, "Failure sending next results request")
3303	}
3304	result, err = client.GetWorkerPoolsResponder(resp)
3305	if err != nil {
3306		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getWorkerPoolsNextResults", resp, "Failure responding to next results request")
3307	}
3308	return
3309}
3310
3311// GetWorkerPoolsComplete enumerates all values, automatically crossing page boundaries as required.
3312func (client HostingEnvironmentsClient) GetWorkerPoolsComplete(ctx context.Context, resourceGroupName string, name string) (result WorkerPoolCollectionIterator, err error) {
3313	if tracing.IsEnabled() {
3314		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetWorkerPools")
3315		defer func() {
3316			sc := -1
3317			if result.Response().Response.Response != nil {
3318				sc = result.page.Response().Response.Response.StatusCode
3319			}
3320			tracing.EndSpan(ctx, sc, err)
3321		}()
3322	}
3323	result.page, err = client.GetWorkerPools(ctx, resourceGroupName, name)
3324	return
3325}
3326
3327// GetWorkerPoolSkus sends the get worker pool skus request.
3328// Parameters:
3329// resourceGroupName - name of resource group
3330// name - name of hostingEnvironment (App Service Environment)
3331// workerPoolName - name of worker pool
3332func (client HostingEnvironmentsClient) GetWorkerPoolSkus(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (result SkuInfoCollectionPage, err error) {
3333	if tracing.IsEnabled() {
3334		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetWorkerPoolSkus")
3335		defer func() {
3336			sc := -1
3337			if result.sic.Response.Response != nil {
3338				sc = result.sic.Response.Response.StatusCode
3339			}
3340			tracing.EndSpan(ctx, sc, err)
3341		}()
3342	}
3343	result.fn = client.getWorkerPoolSkusNextResults
3344	req, err := client.GetWorkerPoolSkusPreparer(ctx, resourceGroupName, name, workerPoolName)
3345	if err != nil {
3346		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPoolSkus", nil, "Failure preparing request")
3347		return
3348	}
3349
3350	resp, err := client.GetWorkerPoolSkusSender(req)
3351	if err != nil {
3352		result.sic.Response = autorest.Response{Response: resp}
3353		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPoolSkus", resp, "Failure sending request")
3354		return
3355	}
3356
3357	result.sic, err = client.GetWorkerPoolSkusResponder(resp)
3358	if err != nil {
3359		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "GetWorkerPoolSkus", resp, "Failure responding to request")
3360		return
3361	}
3362	if result.sic.hasNextLink() && result.sic.IsEmpty() {
3363		err = result.NextWithContext(ctx)
3364		return
3365	}
3366
3367	return
3368}
3369
3370// GetWorkerPoolSkusPreparer prepares the GetWorkerPoolSkus request.
3371func (client HostingEnvironmentsClient) GetWorkerPoolSkusPreparer(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (*http.Request, error) {
3372	pathParameters := map[string]interface{}{
3373		"name":              autorest.Encode("path", name),
3374		"resourceGroupName": autorest.Encode("path", resourceGroupName),
3375		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
3376		"workerPoolName":    autorest.Encode("path", workerPoolName),
3377	}
3378
3379	const APIVersion = "2015-08-01"
3380	queryParameters := map[string]interface{}{
3381		"api-version": APIVersion,
3382	}
3383
3384	preparer := autorest.CreatePreparer(
3385		autorest.AsGet(),
3386		autorest.WithBaseURL(client.BaseURI),
3387		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/skus", pathParameters),
3388		autorest.WithQueryParameters(queryParameters))
3389	return preparer.Prepare((&http.Request{}).WithContext(ctx))
3390}
3391
3392// GetWorkerPoolSkusSender sends the GetWorkerPoolSkus request. The method will close the
3393// http.Response Body if it receives an error.
3394func (client HostingEnvironmentsClient) GetWorkerPoolSkusSender(req *http.Request) (*http.Response, error) {
3395	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
3396}
3397
3398// GetWorkerPoolSkusResponder handles the response to the GetWorkerPoolSkus request. The method always
3399// closes the http.Response Body.
3400func (client HostingEnvironmentsClient) GetWorkerPoolSkusResponder(resp *http.Response) (result SkuInfoCollection, err error) {
3401	err = autorest.Respond(
3402		resp,
3403		azure.WithErrorUnlessStatusCode(http.StatusOK),
3404		autorest.ByUnmarshallingJSON(&result),
3405		autorest.ByClosing())
3406	result.Response = autorest.Response{Response: resp}
3407	return
3408}
3409
3410// getWorkerPoolSkusNextResults retrieves the next set of results, if any.
3411func (client HostingEnvironmentsClient) getWorkerPoolSkusNextResults(ctx context.Context, lastResults SkuInfoCollection) (result SkuInfoCollection, err error) {
3412	req, err := lastResults.skuInfoCollectionPreparer(ctx)
3413	if err != nil {
3414		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getWorkerPoolSkusNextResults", nil, "Failure preparing next results request")
3415	}
3416	if req == nil {
3417		return
3418	}
3419	resp, err := client.GetWorkerPoolSkusSender(req)
3420	if err != nil {
3421		result.Response = autorest.Response{Response: resp}
3422		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getWorkerPoolSkusNextResults", resp, "Failure sending next results request")
3423	}
3424	result, err = client.GetWorkerPoolSkusResponder(resp)
3425	if err != nil {
3426		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "getWorkerPoolSkusNextResults", resp, "Failure responding to next results request")
3427	}
3428	return
3429}
3430
3431// GetWorkerPoolSkusComplete enumerates all values, automatically crossing page boundaries as required.
3432func (client HostingEnvironmentsClient) GetWorkerPoolSkusComplete(ctx context.Context, resourceGroupName string, name string, workerPoolName string) (result SkuInfoCollectionIterator, err error) {
3433	if tracing.IsEnabled() {
3434		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.GetWorkerPoolSkus")
3435		defer func() {
3436			sc := -1
3437			if result.Response().Response.Response != nil {
3438				sc = result.page.Response().Response.Response.StatusCode
3439			}
3440			tracing.EndSpan(ctx, sc, err)
3441		}()
3442	}
3443	result.page, err = client.GetWorkerPoolSkus(ctx, resourceGroupName, name, workerPoolName)
3444	return
3445}
3446
3447// RebootHostingEnvironment sends the reboot hosting environment request.
3448// Parameters:
3449// resourceGroupName - name of resource group
3450// name - name of hostingEnvironment (App Service Environment)
3451func (client HostingEnvironmentsClient) RebootHostingEnvironment(ctx context.Context, resourceGroupName string, name string) (result SetObject, err error) {
3452	if tracing.IsEnabled() {
3453		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.RebootHostingEnvironment")
3454		defer func() {
3455			sc := -1
3456			if result.Response.Response != nil {
3457				sc = result.Response.Response.StatusCode
3458			}
3459			tracing.EndSpan(ctx, sc, err)
3460		}()
3461	}
3462	req, err := client.RebootHostingEnvironmentPreparer(ctx, resourceGroupName, name)
3463	if err != nil {
3464		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "RebootHostingEnvironment", nil, "Failure preparing request")
3465		return
3466	}
3467
3468	resp, err := client.RebootHostingEnvironmentSender(req)
3469	if err != nil {
3470		result.Response = autorest.Response{Response: resp}
3471		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "RebootHostingEnvironment", resp, "Failure sending request")
3472		return
3473	}
3474
3475	result, err = client.RebootHostingEnvironmentResponder(resp)
3476	if err != nil {
3477		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "RebootHostingEnvironment", resp, "Failure responding to request")
3478		return
3479	}
3480
3481	return
3482}
3483
3484// RebootHostingEnvironmentPreparer prepares the RebootHostingEnvironment request.
3485func (client HostingEnvironmentsClient) RebootHostingEnvironmentPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
3486	pathParameters := map[string]interface{}{
3487		"name":              autorest.Encode("path", name),
3488		"resourceGroupName": autorest.Encode("path", resourceGroupName),
3489		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
3490	}
3491
3492	const APIVersion = "2015-08-01"
3493	queryParameters := map[string]interface{}{
3494		"api-version": APIVersion,
3495	}
3496
3497	preparer := autorest.CreatePreparer(
3498		autorest.AsPost(),
3499		autorest.WithBaseURL(client.BaseURI),
3500		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/reboot", pathParameters),
3501		autorest.WithQueryParameters(queryParameters))
3502	return preparer.Prepare((&http.Request{}).WithContext(ctx))
3503}
3504
3505// RebootHostingEnvironmentSender sends the RebootHostingEnvironment request. The method will close the
3506// http.Response Body if it receives an error.
3507func (client HostingEnvironmentsClient) RebootHostingEnvironmentSender(req *http.Request) (*http.Response, error) {
3508	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
3509}
3510
3511// RebootHostingEnvironmentResponder handles the response to the RebootHostingEnvironment request. The method always
3512// closes the http.Response Body.
3513func (client HostingEnvironmentsClient) RebootHostingEnvironmentResponder(resp *http.Response) (result SetObject, err error) {
3514	err = autorest.Respond(
3515		resp,
3516		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusBadRequest, http.StatusNotFound, http.StatusConflict),
3517		autorest.ByUnmarshallingJSON(&result.Value),
3518		autorest.ByClosing())
3519	result.Response = autorest.Response{Response: resp}
3520	return
3521}
3522
3523// ResumeHostingEnvironment sends the resume hosting environment request.
3524// Parameters:
3525// resourceGroupName - name of resource group
3526// name - name of hostingEnvironment (App Service Environment)
3527func (client HostingEnvironmentsClient) ResumeHostingEnvironment(ctx context.Context, resourceGroupName string, name string) (result HostingEnvironmentsResumeHostingEnvironmentFuture, err error) {
3528	if tracing.IsEnabled() {
3529		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.ResumeHostingEnvironment")
3530		defer func() {
3531			sc := -1
3532			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
3533				sc = result.FutureAPI.Response().StatusCode
3534			}
3535			tracing.EndSpan(ctx, sc, err)
3536		}()
3537	}
3538	req, err := client.ResumeHostingEnvironmentPreparer(ctx, resourceGroupName, name)
3539	if err != nil {
3540		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "ResumeHostingEnvironment", nil, "Failure preparing request")
3541		return
3542	}
3543
3544	result, err = client.ResumeHostingEnvironmentSender(req)
3545	if err != nil {
3546		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "ResumeHostingEnvironment", nil, "Failure sending request")
3547		return
3548	}
3549
3550	return
3551}
3552
3553// ResumeHostingEnvironmentPreparer prepares the ResumeHostingEnvironment request.
3554func (client HostingEnvironmentsClient) ResumeHostingEnvironmentPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
3555	pathParameters := map[string]interface{}{
3556		"name":              autorest.Encode("path", name),
3557		"resourceGroupName": autorest.Encode("path", resourceGroupName),
3558		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
3559	}
3560
3561	const APIVersion = "2015-08-01"
3562	queryParameters := map[string]interface{}{
3563		"api-version": APIVersion,
3564	}
3565
3566	preparer := autorest.CreatePreparer(
3567		autorest.AsPost(),
3568		autorest.WithBaseURL(client.BaseURI),
3569		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/resume", pathParameters),
3570		autorest.WithQueryParameters(queryParameters))
3571	return preparer.Prepare((&http.Request{}).WithContext(ctx))
3572}
3573
3574// ResumeHostingEnvironmentSender sends the ResumeHostingEnvironment request. The method will close the
3575// http.Response Body if it receives an error.
3576func (client HostingEnvironmentsClient) ResumeHostingEnvironmentSender(req *http.Request) (future HostingEnvironmentsResumeHostingEnvironmentFuture, err error) {
3577	var resp *http.Response
3578	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
3579	if err != nil {
3580		return
3581	}
3582	var azf azure.Future
3583	azf, err = azure.NewFutureFromResponse(resp)
3584	future.FutureAPI = &azf
3585	future.Result = future.result
3586	return
3587}
3588
3589// ResumeHostingEnvironmentResponder handles the response to the ResumeHostingEnvironment request. The method always
3590// closes the http.Response Body.
3591func (client HostingEnvironmentsClient) ResumeHostingEnvironmentResponder(resp *http.Response) (result SiteCollectionPage, err error) {
3592	result.sc, err = client.resumeHostingEnvironmentResponder(resp)
3593	result.fn = client.resumeHostingEnvironmentNextResults
3594	return
3595}
3596
3597func (client HostingEnvironmentsClient) resumeHostingEnvironmentResponder(resp *http.Response) (result SiteCollection, err error) {
3598	err = autorest.Respond(
3599		resp,
3600		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
3601		autorest.ByUnmarshallingJSON(&result),
3602		autorest.ByClosing())
3603	result.Response = autorest.Response{Response: resp}
3604	return
3605}
3606
3607// resumeHostingEnvironmentNextResults retrieves the next set of results, if any.
3608func (client HostingEnvironmentsClient) resumeHostingEnvironmentNextResults(ctx context.Context, lastResults SiteCollection) (result SiteCollection, err error) {
3609	req, err := lastResults.siteCollectionPreparer(ctx)
3610	if err != nil {
3611		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "resumeHostingEnvironmentNextResults", nil, "Failure preparing next results request")
3612	}
3613	if req == nil {
3614		return
3615	}
3616	var resp *http.Response
3617	resp, err = client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
3618	if err != nil {
3619		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "resumeHostingEnvironmentNextResults", resp, "Failure sending next results request")
3620	}
3621	return client.resumeHostingEnvironmentResponder(resp)
3622}
3623
3624// ResumeHostingEnvironmentComplete enumerates all values, automatically crossing page boundaries as required.
3625func (client HostingEnvironmentsClient) ResumeHostingEnvironmentComplete(ctx context.Context, resourceGroupName string, name string) (result HostingEnvironmentsResumeHostingEnvironmentAllFuture, err error) {
3626	if tracing.IsEnabled() {
3627		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.ResumeHostingEnvironment")
3628		defer func() {
3629			sc := -1
3630			if result.Response() != nil {
3631				sc = result.Response().StatusCode
3632			}
3633			tracing.EndSpan(ctx, sc, err)
3634		}()
3635	}
3636	var future HostingEnvironmentsResumeHostingEnvironmentFuture
3637	future, err = client.ResumeHostingEnvironment(ctx, resourceGroupName, name)
3638	result.FutureAPI = future.FutureAPI
3639	return
3640}
3641
3642// SuspendHostingEnvironment sends the suspend hosting environment request.
3643// Parameters:
3644// resourceGroupName - name of resource group
3645// name - name of hostingEnvironment (App Service Environment)
3646func (client HostingEnvironmentsClient) SuspendHostingEnvironment(ctx context.Context, resourceGroupName string, name string) (result HostingEnvironmentsSuspendHostingEnvironmentFuture, err error) {
3647	if tracing.IsEnabled() {
3648		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.SuspendHostingEnvironment")
3649		defer func() {
3650			sc := -1
3651			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
3652				sc = result.FutureAPI.Response().StatusCode
3653			}
3654			tracing.EndSpan(ctx, sc, err)
3655		}()
3656	}
3657	req, err := client.SuspendHostingEnvironmentPreparer(ctx, resourceGroupName, name)
3658	if err != nil {
3659		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "SuspendHostingEnvironment", nil, "Failure preparing request")
3660		return
3661	}
3662
3663	result, err = client.SuspendHostingEnvironmentSender(req)
3664	if err != nil {
3665		err = autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "SuspendHostingEnvironment", nil, "Failure sending request")
3666		return
3667	}
3668
3669	return
3670}
3671
3672// SuspendHostingEnvironmentPreparer prepares the SuspendHostingEnvironment request.
3673func (client HostingEnvironmentsClient) SuspendHostingEnvironmentPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
3674	pathParameters := map[string]interface{}{
3675		"name":              autorest.Encode("path", name),
3676		"resourceGroupName": autorest.Encode("path", resourceGroupName),
3677		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
3678	}
3679
3680	const APIVersion = "2015-08-01"
3681	queryParameters := map[string]interface{}{
3682		"api-version": APIVersion,
3683	}
3684
3685	preparer := autorest.CreatePreparer(
3686		autorest.AsPost(),
3687		autorest.WithBaseURL(client.BaseURI),
3688		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/suspend", pathParameters),
3689		autorest.WithQueryParameters(queryParameters))
3690	return preparer.Prepare((&http.Request{}).WithContext(ctx))
3691}
3692
3693// SuspendHostingEnvironmentSender sends the SuspendHostingEnvironment request. The method will close the
3694// http.Response Body if it receives an error.
3695func (client HostingEnvironmentsClient) SuspendHostingEnvironmentSender(req *http.Request) (future HostingEnvironmentsSuspendHostingEnvironmentFuture, err error) {
3696	var resp *http.Response
3697	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
3698	if err != nil {
3699		return
3700	}
3701	var azf azure.Future
3702	azf, err = azure.NewFutureFromResponse(resp)
3703	future.FutureAPI = &azf
3704	future.Result = future.result
3705	return
3706}
3707
3708// SuspendHostingEnvironmentResponder handles the response to the SuspendHostingEnvironment request. The method always
3709// closes the http.Response Body.
3710func (client HostingEnvironmentsClient) SuspendHostingEnvironmentResponder(resp *http.Response) (result SiteCollectionPage, err error) {
3711	result.sc, err = client.suspendHostingEnvironmentResponder(resp)
3712	result.fn = client.suspendHostingEnvironmentNextResults
3713	return
3714}
3715
3716func (client HostingEnvironmentsClient) suspendHostingEnvironmentResponder(resp *http.Response) (result SiteCollection, err error) {
3717	err = autorest.Respond(
3718		resp,
3719		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
3720		autorest.ByUnmarshallingJSON(&result),
3721		autorest.ByClosing())
3722	result.Response = autorest.Response{Response: resp}
3723	return
3724}
3725
3726// suspendHostingEnvironmentNextResults retrieves the next set of results, if any.
3727func (client HostingEnvironmentsClient) suspendHostingEnvironmentNextResults(ctx context.Context, lastResults SiteCollection) (result SiteCollection, err error) {
3728	req, err := lastResults.siteCollectionPreparer(ctx)
3729	if err != nil {
3730		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "suspendHostingEnvironmentNextResults", nil, "Failure preparing next results request")
3731	}
3732	if req == nil {
3733		return
3734	}
3735	var resp *http.Response
3736	resp, err = client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
3737	if err != nil {
3738		return result, autorest.NewErrorWithError(err, "web.HostingEnvironmentsClient", "suspendHostingEnvironmentNextResults", resp, "Failure sending next results request")
3739	}
3740	return client.suspendHostingEnvironmentResponder(resp)
3741}
3742
3743// SuspendHostingEnvironmentComplete enumerates all values, automatically crossing page boundaries as required.
3744func (client HostingEnvironmentsClient) SuspendHostingEnvironmentComplete(ctx context.Context, resourceGroupName string, name string) (result HostingEnvironmentsSuspendHostingEnvironmentAllFuture, err error) {
3745	if tracing.IsEnabled() {
3746		ctx = tracing.StartSpan(ctx, fqdn+"/HostingEnvironmentsClient.SuspendHostingEnvironment")
3747		defer func() {
3748			sc := -1
3749			if result.Response() != nil {
3750				sc = result.Response().StatusCode
3751			}
3752			tracing.EndSpan(ctx, sc, err)
3753		}()
3754	}
3755	var future HostingEnvironmentsSuspendHostingEnvironmentFuture
3756	future, err = client.SuspendHostingEnvironment(ctx, resourceGroupName, name)
3757	result.FutureAPI = future.FutureAPI
3758	return
3759}
3760