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