1package web
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5//
6// Code generated by Microsoft (R) AutoRest Code Generator.
7// Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
9import (
10	"context"
11	"github.com/Azure/go-autorest/autorest"
12	"github.com/Azure/go-autorest/autorest/azure"
13	"github.com/Azure/go-autorest/autorest/validation"
14	"github.com/Azure/go-autorest/tracing"
15	"net/http"
16)
17
18// KubeEnvironmentsClient is the webSite Management Client
19type KubeEnvironmentsClient struct {
20	BaseClient
21}
22
23// NewKubeEnvironmentsClient creates an instance of the KubeEnvironmentsClient client.
24func NewKubeEnvironmentsClient(subscriptionID string) KubeEnvironmentsClient {
25	return NewKubeEnvironmentsClientWithBaseURI(DefaultBaseURI, subscriptionID)
26}
27
28// NewKubeEnvironmentsClientWithBaseURI creates an instance of the KubeEnvironmentsClient client using a custom
29// endpoint.  Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure
30// stack).
31func NewKubeEnvironmentsClientWithBaseURI(baseURI string, subscriptionID string) KubeEnvironmentsClient {
32	return KubeEnvironmentsClient{NewWithBaseURI(baseURI, subscriptionID)}
33}
34
35// CreateOrUpdate description for Creates or updates a Kubernetes Environment.
36// Parameters:
37// resourceGroupName - name of the resource group to which the resource belongs.
38// name - name of the Kubernetes Environment.
39// kubeEnvironmentEnvelope - configuration details of the Kubernetes Environment.
40func (client KubeEnvironmentsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, name string, kubeEnvironmentEnvelope KubeEnvironment) (result KubeEnvironmentsCreateOrUpdateFuture, err error) {
41	if tracing.IsEnabled() {
42		ctx = tracing.StartSpan(ctx, fqdn+"/KubeEnvironmentsClient.CreateOrUpdate")
43		defer func() {
44			sc := -1
45			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
46				sc = result.FutureAPI.Response().StatusCode
47			}
48			tracing.EndSpan(ctx, sc, err)
49		}()
50	}
51	if err := validation.Validate([]validation.Validation{
52		{TargetValue: resourceGroupName,
53			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
54				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
55				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+[^\.]$`, Chain: nil}}}}); err != nil {
56		return result, validation.NewError("web.KubeEnvironmentsClient", "CreateOrUpdate", err.Error())
57	}
58
59	req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, name, kubeEnvironmentEnvelope)
60	if err != nil {
61		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "CreateOrUpdate", nil, "Failure preparing request")
62		return
63	}
64
65	result, err = client.CreateOrUpdateSender(req)
66	if err != nil {
67		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "CreateOrUpdate", nil, "Failure sending request")
68		return
69	}
70
71	return
72}
73
74// CreateOrUpdatePreparer prepares the CreateOrUpdate request.
75func (client KubeEnvironmentsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, name string, kubeEnvironmentEnvelope KubeEnvironment) (*http.Request, error) {
76	pathParameters := map[string]interface{}{
77		"name":              autorest.Encode("path", name),
78		"resourceGroupName": autorest.Encode("path", resourceGroupName),
79		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
80	}
81
82	const APIVersion = "2021-01-15"
83	queryParameters := map[string]interface{}{
84		"api-version": APIVersion,
85	}
86
87	preparer := autorest.CreatePreparer(
88		autorest.AsContentType("application/json; charset=utf-8"),
89		autorest.AsPut(),
90		autorest.WithBaseURL(client.BaseURI),
91		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}", pathParameters),
92		autorest.WithJSON(kubeEnvironmentEnvelope),
93		autorest.WithQueryParameters(queryParameters))
94	return preparer.Prepare((&http.Request{}).WithContext(ctx))
95}
96
97// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
98// http.Response Body if it receives an error.
99func (client KubeEnvironmentsClient) CreateOrUpdateSender(req *http.Request) (future KubeEnvironmentsCreateOrUpdateFuture, err error) {
100	var resp *http.Response
101	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
102	if err != nil {
103		return
104	}
105	var azf azure.Future
106	azf, err = azure.NewFutureFromResponse(resp)
107	future.FutureAPI = &azf
108	future.Result = future.result
109	return
110}
111
112// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
113// closes the http.Response Body.
114func (client KubeEnvironmentsClient) CreateOrUpdateResponder(resp *http.Response) (result KubeEnvironment, err error) {
115	err = autorest.Respond(
116		resp,
117		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
118		autorest.ByUnmarshallingJSON(&result),
119		autorest.ByClosing())
120	result.Response = autorest.Response{Response: resp}
121	return
122}
123
124// Delete description for Delete a Kubernetes Environment.
125// Parameters:
126// resourceGroupName - name of the resource group to which the resource belongs.
127// name - name of the Kubernetes Environment.
128func (client KubeEnvironmentsClient) Delete(ctx context.Context, resourceGroupName string, name string) (result KubeEnvironmentsDeleteFuture, err error) {
129	if tracing.IsEnabled() {
130		ctx = tracing.StartSpan(ctx, fqdn+"/KubeEnvironmentsClient.Delete")
131		defer func() {
132			sc := -1
133			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
134				sc = result.FutureAPI.Response().StatusCode
135			}
136			tracing.EndSpan(ctx, sc, err)
137		}()
138	}
139	if err := validation.Validate([]validation.Validation{
140		{TargetValue: resourceGroupName,
141			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
142				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
143				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+[^\.]$`, Chain: nil}}}}); err != nil {
144		return result, validation.NewError("web.KubeEnvironmentsClient", "Delete", err.Error())
145	}
146
147	req, err := client.DeletePreparer(ctx, resourceGroupName, name)
148	if err != nil {
149		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "Delete", nil, "Failure preparing request")
150		return
151	}
152
153	result, err = client.DeleteSender(req)
154	if err != nil {
155		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "Delete", nil, "Failure sending request")
156		return
157	}
158
159	return
160}
161
162// DeletePreparer prepares the Delete request.
163func (client KubeEnvironmentsClient) DeletePreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
164	pathParameters := map[string]interface{}{
165		"name":              autorest.Encode("path", name),
166		"resourceGroupName": autorest.Encode("path", resourceGroupName),
167		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
168	}
169
170	const APIVersion = "2021-01-15"
171	queryParameters := map[string]interface{}{
172		"api-version": APIVersion,
173	}
174
175	preparer := autorest.CreatePreparer(
176		autorest.AsDelete(),
177		autorest.WithBaseURL(client.BaseURI),
178		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}", pathParameters),
179		autorest.WithQueryParameters(queryParameters))
180	return preparer.Prepare((&http.Request{}).WithContext(ctx))
181}
182
183// DeleteSender sends the Delete request. The method will close the
184// http.Response Body if it receives an error.
185func (client KubeEnvironmentsClient) DeleteSender(req *http.Request) (future KubeEnvironmentsDeleteFuture, err error) {
186	var resp *http.Response
187	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
188	if err != nil {
189		return
190	}
191	var azf azure.Future
192	azf, err = azure.NewFutureFromResponse(resp)
193	future.FutureAPI = &azf
194	future.Result = future.result
195	return
196}
197
198// DeleteResponder handles the response to the Delete request. The method always
199// closes the http.Response Body.
200func (client KubeEnvironmentsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
201	err = autorest.Respond(
202		resp,
203		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
204		autorest.ByClosing())
205	result.Response = resp
206	return
207}
208
209// Get description for Get the properties of a Kubernetes Environment.
210// Parameters:
211// resourceGroupName - name of the resource group to which the resource belongs.
212// name - name of the Kubernetes Environment.
213func (client KubeEnvironmentsClient) Get(ctx context.Context, resourceGroupName string, name string) (result KubeEnvironment, err error) {
214	if tracing.IsEnabled() {
215		ctx = tracing.StartSpan(ctx, fqdn+"/KubeEnvironmentsClient.Get")
216		defer func() {
217			sc := -1
218			if result.Response.Response != nil {
219				sc = result.Response.Response.StatusCode
220			}
221			tracing.EndSpan(ctx, sc, err)
222		}()
223	}
224	if err := validation.Validate([]validation.Validation{
225		{TargetValue: resourceGroupName,
226			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
227				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
228				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+[^\.]$`, Chain: nil}}}}); err != nil {
229		return result, validation.NewError("web.KubeEnvironmentsClient", "Get", err.Error())
230	}
231
232	req, err := client.GetPreparer(ctx, resourceGroupName, name)
233	if err != nil {
234		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "Get", nil, "Failure preparing request")
235		return
236	}
237
238	resp, err := client.GetSender(req)
239	if err != nil {
240		result.Response = autorest.Response{Response: resp}
241		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "Get", resp, "Failure sending request")
242		return
243	}
244
245	result, err = client.GetResponder(resp)
246	if err != nil {
247		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "Get", resp, "Failure responding to request")
248		return
249	}
250
251	return
252}
253
254// GetPreparer prepares the Get request.
255func (client KubeEnvironmentsClient) GetPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
256	pathParameters := map[string]interface{}{
257		"name":              autorest.Encode("path", name),
258		"resourceGroupName": autorest.Encode("path", resourceGroupName),
259		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
260	}
261
262	const APIVersion = "2021-01-15"
263	queryParameters := map[string]interface{}{
264		"api-version": APIVersion,
265	}
266
267	preparer := autorest.CreatePreparer(
268		autorest.AsGet(),
269		autorest.WithBaseURL(client.BaseURI),
270		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}", pathParameters),
271		autorest.WithQueryParameters(queryParameters))
272	return preparer.Prepare((&http.Request{}).WithContext(ctx))
273}
274
275// GetSender sends the Get request. The method will close the
276// http.Response Body if it receives an error.
277func (client KubeEnvironmentsClient) GetSender(req *http.Request) (*http.Response, error) {
278	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
279}
280
281// GetResponder handles the response to the Get request. The method always
282// closes the http.Response Body.
283func (client KubeEnvironmentsClient) GetResponder(resp *http.Response) (result KubeEnvironment, err error) {
284	err = autorest.Respond(
285		resp,
286		azure.WithErrorUnlessStatusCode(http.StatusOK),
287		autorest.ByUnmarshallingJSON(&result),
288		autorest.ByClosing())
289	result.Response = autorest.Response{Response: resp}
290	return
291}
292
293// ListByResourceGroup description for Get all the Kubernetes Environments in a resource group.
294// Parameters:
295// resourceGroupName - name of the resource group to which the resource belongs.
296func (client KubeEnvironmentsClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result KubeEnvironmentCollectionPage, err error) {
297	if tracing.IsEnabled() {
298		ctx = tracing.StartSpan(ctx, fqdn+"/KubeEnvironmentsClient.ListByResourceGroup")
299		defer func() {
300			sc := -1
301			if result.kec.Response.Response != nil {
302				sc = result.kec.Response.Response.StatusCode
303			}
304			tracing.EndSpan(ctx, sc, err)
305		}()
306	}
307	if err := validation.Validate([]validation.Validation{
308		{TargetValue: resourceGroupName,
309			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
310				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
311				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+[^\.]$`, Chain: nil}}}}); err != nil {
312		return result, validation.NewError("web.KubeEnvironmentsClient", "ListByResourceGroup", err.Error())
313	}
314
315	result.fn = client.listByResourceGroupNextResults
316	req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName)
317	if err != nil {
318		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "ListByResourceGroup", nil, "Failure preparing request")
319		return
320	}
321
322	resp, err := client.ListByResourceGroupSender(req)
323	if err != nil {
324		result.kec.Response = autorest.Response{Response: resp}
325		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "ListByResourceGroup", resp, "Failure sending request")
326		return
327	}
328
329	result.kec, err = client.ListByResourceGroupResponder(resp)
330	if err != nil {
331		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "ListByResourceGroup", resp, "Failure responding to request")
332		return
333	}
334	if result.kec.hasNextLink() && result.kec.IsEmpty() {
335		err = result.NextWithContext(ctx)
336		return
337	}
338
339	return
340}
341
342// ListByResourceGroupPreparer prepares the ListByResourceGroup request.
343func (client KubeEnvironmentsClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) {
344	pathParameters := map[string]interface{}{
345		"resourceGroupName": autorest.Encode("path", resourceGroupName),
346		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
347	}
348
349	const APIVersion = "2021-01-15"
350	queryParameters := map[string]interface{}{
351		"api-version": APIVersion,
352	}
353
354	preparer := autorest.CreatePreparer(
355		autorest.AsGet(),
356		autorest.WithBaseURL(client.BaseURI),
357		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments", pathParameters),
358		autorest.WithQueryParameters(queryParameters))
359	return preparer.Prepare((&http.Request{}).WithContext(ctx))
360}
361
362// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the
363// http.Response Body if it receives an error.
364func (client KubeEnvironmentsClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) {
365	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
366}
367
368// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always
369// closes the http.Response Body.
370func (client KubeEnvironmentsClient) ListByResourceGroupResponder(resp *http.Response) (result KubeEnvironmentCollection, err error) {
371	err = autorest.Respond(
372		resp,
373		azure.WithErrorUnlessStatusCode(http.StatusOK),
374		autorest.ByUnmarshallingJSON(&result),
375		autorest.ByClosing())
376	result.Response = autorest.Response{Response: resp}
377	return
378}
379
380// listByResourceGroupNextResults retrieves the next set of results, if any.
381func (client KubeEnvironmentsClient) listByResourceGroupNextResults(ctx context.Context, lastResults KubeEnvironmentCollection) (result KubeEnvironmentCollection, err error) {
382	req, err := lastResults.kubeEnvironmentCollectionPreparer(ctx)
383	if err != nil {
384		return result, autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request")
385	}
386	if req == nil {
387		return
388	}
389	resp, err := client.ListByResourceGroupSender(req)
390	if err != nil {
391		result.Response = autorest.Response{Response: resp}
392		return result, autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "listByResourceGroupNextResults", resp, "Failure sending next results request")
393	}
394	result, err = client.ListByResourceGroupResponder(resp)
395	if err != nil {
396		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request")
397	}
398	return
399}
400
401// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required.
402func (client KubeEnvironmentsClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result KubeEnvironmentCollectionIterator, err error) {
403	if tracing.IsEnabled() {
404		ctx = tracing.StartSpan(ctx, fqdn+"/KubeEnvironmentsClient.ListByResourceGroup")
405		defer func() {
406			sc := -1
407			if result.Response().Response.Response != nil {
408				sc = result.page.Response().Response.Response.StatusCode
409			}
410			tracing.EndSpan(ctx, sc, err)
411		}()
412	}
413	result.page, err = client.ListByResourceGroup(ctx, resourceGroupName)
414	return
415}
416
417// ListBySubscription description for Get all Kubernetes Environments for a subscription.
418func (client KubeEnvironmentsClient) ListBySubscription(ctx context.Context) (result KubeEnvironmentCollectionPage, err error) {
419	if tracing.IsEnabled() {
420		ctx = tracing.StartSpan(ctx, fqdn+"/KubeEnvironmentsClient.ListBySubscription")
421		defer func() {
422			sc := -1
423			if result.kec.Response.Response != nil {
424				sc = result.kec.Response.Response.StatusCode
425			}
426			tracing.EndSpan(ctx, sc, err)
427		}()
428	}
429	result.fn = client.listBySubscriptionNextResults
430	req, err := client.ListBySubscriptionPreparer(ctx)
431	if err != nil {
432		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "ListBySubscription", nil, "Failure preparing request")
433		return
434	}
435
436	resp, err := client.ListBySubscriptionSender(req)
437	if err != nil {
438		result.kec.Response = autorest.Response{Response: resp}
439		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "ListBySubscription", resp, "Failure sending request")
440		return
441	}
442
443	result.kec, err = client.ListBySubscriptionResponder(resp)
444	if err != nil {
445		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "ListBySubscription", resp, "Failure responding to request")
446		return
447	}
448	if result.kec.hasNextLink() && result.kec.IsEmpty() {
449		err = result.NextWithContext(ctx)
450		return
451	}
452
453	return
454}
455
456// ListBySubscriptionPreparer prepares the ListBySubscription request.
457func (client KubeEnvironmentsClient) ListBySubscriptionPreparer(ctx context.Context) (*http.Request, error) {
458	pathParameters := map[string]interface{}{
459		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
460	}
461
462	const APIVersion = "2021-01-15"
463	queryParameters := map[string]interface{}{
464		"api-version": APIVersion,
465	}
466
467	preparer := autorest.CreatePreparer(
468		autorest.AsGet(),
469		autorest.WithBaseURL(client.BaseURI),
470		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Web/kubeEnvironments", pathParameters),
471		autorest.WithQueryParameters(queryParameters))
472	return preparer.Prepare((&http.Request{}).WithContext(ctx))
473}
474
475// ListBySubscriptionSender sends the ListBySubscription request. The method will close the
476// http.Response Body if it receives an error.
477func (client KubeEnvironmentsClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) {
478	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
479}
480
481// ListBySubscriptionResponder handles the response to the ListBySubscription request. The method always
482// closes the http.Response Body.
483func (client KubeEnvironmentsClient) ListBySubscriptionResponder(resp *http.Response) (result KubeEnvironmentCollection, err error) {
484	err = autorest.Respond(
485		resp,
486		azure.WithErrorUnlessStatusCode(http.StatusOK),
487		autorest.ByUnmarshallingJSON(&result),
488		autorest.ByClosing())
489	result.Response = autorest.Response{Response: resp}
490	return
491}
492
493// listBySubscriptionNextResults retrieves the next set of results, if any.
494func (client KubeEnvironmentsClient) listBySubscriptionNextResults(ctx context.Context, lastResults KubeEnvironmentCollection) (result KubeEnvironmentCollection, err error) {
495	req, err := lastResults.kubeEnvironmentCollectionPreparer(ctx)
496	if err != nil {
497		return result, autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "listBySubscriptionNextResults", nil, "Failure preparing next results request")
498	}
499	if req == nil {
500		return
501	}
502	resp, err := client.ListBySubscriptionSender(req)
503	if err != nil {
504		result.Response = autorest.Response{Response: resp}
505		return result, autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "listBySubscriptionNextResults", resp, "Failure sending next results request")
506	}
507	result, err = client.ListBySubscriptionResponder(resp)
508	if err != nil {
509		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "listBySubscriptionNextResults", resp, "Failure responding to next results request")
510	}
511	return
512}
513
514// ListBySubscriptionComplete enumerates all values, automatically crossing page boundaries as required.
515func (client KubeEnvironmentsClient) ListBySubscriptionComplete(ctx context.Context) (result KubeEnvironmentCollectionIterator, err error) {
516	if tracing.IsEnabled() {
517		ctx = tracing.StartSpan(ctx, fqdn+"/KubeEnvironmentsClient.ListBySubscription")
518		defer func() {
519			sc := -1
520			if result.Response().Response.Response != nil {
521				sc = result.page.Response().Response.Response.StatusCode
522			}
523			tracing.EndSpan(ctx, sc, err)
524		}()
525	}
526	result.page, err = client.ListBySubscription(ctx)
527	return
528}
529
530// Update description for Creates or updates a Kubernetes Environment.
531// Parameters:
532// resourceGroupName - name of the resource group to which the resource belongs.
533// name - name of the Kubernetes Environment.
534// kubeEnvironmentEnvelope - configuration details of the Kubernetes Environment.
535func (client KubeEnvironmentsClient) Update(ctx context.Context, resourceGroupName string, name string, kubeEnvironmentEnvelope KubeEnvironmentPatchResource) (result KubeEnvironment, err error) {
536	if tracing.IsEnabled() {
537		ctx = tracing.StartSpan(ctx, fqdn+"/KubeEnvironmentsClient.Update")
538		defer func() {
539			sc := -1
540			if result.Response.Response != nil {
541				sc = result.Response.Response.StatusCode
542			}
543			tracing.EndSpan(ctx, sc, err)
544		}()
545	}
546	if err := validation.Validate([]validation.Validation{
547		{TargetValue: resourceGroupName,
548			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
549				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
550				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+[^\.]$`, Chain: nil}}}}); err != nil {
551		return result, validation.NewError("web.KubeEnvironmentsClient", "Update", err.Error())
552	}
553
554	req, err := client.UpdatePreparer(ctx, resourceGroupName, name, kubeEnvironmentEnvelope)
555	if err != nil {
556		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "Update", nil, "Failure preparing request")
557		return
558	}
559
560	resp, err := client.UpdateSender(req)
561	if err != nil {
562		result.Response = autorest.Response{Response: resp}
563		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "Update", resp, "Failure sending request")
564		return
565	}
566
567	result, err = client.UpdateResponder(resp)
568	if err != nil {
569		err = autorest.NewErrorWithError(err, "web.KubeEnvironmentsClient", "Update", resp, "Failure responding to request")
570		return
571	}
572
573	return
574}
575
576// UpdatePreparer prepares the Update request.
577func (client KubeEnvironmentsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, name string, kubeEnvironmentEnvelope KubeEnvironmentPatchResource) (*http.Request, error) {
578	pathParameters := map[string]interface{}{
579		"name":              autorest.Encode("path", name),
580		"resourceGroupName": autorest.Encode("path", resourceGroupName),
581		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
582	}
583
584	const APIVersion = "2021-01-15"
585	queryParameters := map[string]interface{}{
586		"api-version": APIVersion,
587	}
588
589	preparer := autorest.CreatePreparer(
590		autorest.AsContentType("application/json; charset=utf-8"),
591		autorest.AsPatch(),
592		autorest.WithBaseURL(client.BaseURI),
593		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}", pathParameters),
594		autorest.WithJSON(kubeEnvironmentEnvelope),
595		autorest.WithQueryParameters(queryParameters))
596	return preparer.Prepare((&http.Request{}).WithContext(ctx))
597}
598
599// UpdateSender sends the Update request. The method will close the
600// http.Response Body if it receives an error.
601func (client KubeEnvironmentsClient) UpdateSender(req *http.Request) (*http.Response, error) {
602	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
603}
604
605// UpdateResponder handles the response to the Update request. The method always
606// closes the http.Response Body.
607func (client KubeEnvironmentsClient) UpdateResponder(resp *http.Response) (result KubeEnvironment, err error) {
608	err = autorest.Respond(
609		resp,
610		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
611		autorest.ByUnmarshallingJSON(&result),
612		autorest.ByClosing())
613	result.Response = autorest.Response{Response: resp}
614	return
615}
616