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