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