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