1package managementgroups 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/tracing" 14 "net/http" 15) 16 17// Client is the the Azure Management Groups API enables consolidation of multiple 18// subscriptions/resources into an organizational hierarchy and centrally 19// manage access control, policies, alerting and reporting for those resources. 20type Client struct { 21 BaseClient 22} 23 24// NewClient creates an instance of the Client client. 25func NewClient() Client { 26 return NewClientWithBaseURI(DefaultBaseURI) 27} 28 29// NewClientWithBaseURI creates an instance of the Client client using a custom endpoint. Use this when interacting 30// with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 31func NewClientWithBaseURI(baseURI string) Client { 32 return Client{NewWithBaseURI(baseURI)} 33} 34 35// CreateOrUpdate create or update a management group. 36// If a management group is already created and a subsequent create request is issued with different properties, the 37// management group properties will be updated. 38// Parameters: 39// groupID - management Group ID. 40// createManagementGroupRequest - management group creation parameters. 41// cacheControl - indicates that the request shouldn't utilize any caches. 42func (client Client) CreateOrUpdate(ctx context.Context, groupID string, createManagementGroupRequest CreateManagementGroupRequest, cacheControl string) (result CreateOrUpdateFuture, err error) { 43 if tracing.IsEnabled() { 44 ctx = tracing.StartSpan(ctx, fqdn+"/Client.CreateOrUpdate") 45 defer func() { 46 sc := -1 47 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 48 sc = result.FutureAPI.Response().StatusCode 49 } 50 tracing.EndSpan(ctx, sc, err) 51 }() 52 } 53 req, err := client.CreateOrUpdatePreparer(ctx, groupID, createManagementGroupRequest, cacheControl) 54 if err != nil { 55 err = autorest.NewErrorWithError(err, "managementgroups.Client", "CreateOrUpdate", nil, "Failure preparing request") 56 return 57 } 58 59 result, err = client.CreateOrUpdateSender(req) 60 if err != nil { 61 err = autorest.NewErrorWithError(err, "managementgroups.Client", "CreateOrUpdate", nil, "Failure sending request") 62 return 63 } 64 65 return 66} 67 68// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 69func (client Client) CreateOrUpdatePreparer(ctx context.Context, groupID string, createManagementGroupRequest CreateManagementGroupRequest, cacheControl string) (*http.Request, error) { 70 pathParameters := map[string]interface{}{ 71 "groupId": autorest.Encode("path", groupID), 72 } 73 74 const APIVersion = "2020-02-01" 75 queryParameters := map[string]interface{}{ 76 "api-version": APIVersion, 77 } 78 79 createManagementGroupRequest.ID = nil 80 createManagementGroupRequest.Type = nil 81 preparer := autorest.CreatePreparer( 82 autorest.AsContentType("application/json; charset=utf-8"), 83 autorest.AsPut(), 84 autorest.WithBaseURL(client.BaseURI), 85 autorest.WithPathParameters("/providers/Microsoft.Management/managementGroups/{groupId}", pathParameters), 86 autorest.WithJSON(createManagementGroupRequest), 87 autorest.WithQueryParameters(queryParameters)) 88 if len(cacheControl) > 0 { 89 preparer = autorest.DecoratePreparer(preparer, 90 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 91 } else { 92 preparer = autorest.DecoratePreparer(preparer, 93 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 94 } 95 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 96} 97 98// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 99// http.Response Body if it receives an error. 100func (client Client) CreateOrUpdateSender(req *http.Request) (future CreateOrUpdateFuture, err error) { 101 var resp *http.Response 102 resp, err = client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 103 if err != nil { 104 return 105 } 106 var azf azure.Future 107 azf, err = azure.NewFutureFromResponse(resp) 108 future.FutureAPI = &azf 109 future.Result = future.result 110 return 111} 112 113// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 114// closes the http.Response Body. 115func (client Client) CreateOrUpdateResponder(resp *http.Response) (result SetObject, err error) { 116 err = autorest.Respond( 117 resp, 118 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 119 autorest.ByUnmarshallingJSON(&result), 120 autorest.ByClosing()) 121 result.Response = autorest.Response{Response: resp} 122 return 123} 124 125// Delete delete management group. 126// If a management group contains child resources, the request will fail. 127// Parameters: 128// groupID - management Group ID. 129// cacheControl - indicates that the request shouldn't utilize any caches. 130func (client Client) Delete(ctx context.Context, groupID string, cacheControl string) (result DeleteFuture, err error) { 131 if tracing.IsEnabled() { 132 ctx = tracing.StartSpan(ctx, fqdn+"/Client.Delete") 133 defer func() { 134 sc := -1 135 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 136 sc = result.FutureAPI.Response().StatusCode 137 } 138 tracing.EndSpan(ctx, sc, err) 139 }() 140 } 141 req, err := client.DeletePreparer(ctx, groupID, cacheControl) 142 if err != nil { 143 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Delete", nil, "Failure preparing request") 144 return 145 } 146 147 result, err = client.DeleteSender(req) 148 if err != nil { 149 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Delete", nil, "Failure sending request") 150 return 151 } 152 153 return 154} 155 156// DeletePreparer prepares the Delete request. 157func (client Client) DeletePreparer(ctx context.Context, groupID string, cacheControl string) (*http.Request, error) { 158 pathParameters := map[string]interface{}{ 159 "groupId": autorest.Encode("path", groupID), 160 } 161 162 const APIVersion = "2020-02-01" 163 queryParameters := map[string]interface{}{ 164 "api-version": APIVersion, 165 } 166 167 preparer := autorest.CreatePreparer( 168 autorest.AsDelete(), 169 autorest.WithBaseURL(client.BaseURI), 170 autorest.WithPathParameters("/providers/Microsoft.Management/managementGroups/{groupId}", pathParameters), 171 autorest.WithQueryParameters(queryParameters)) 172 if len(cacheControl) > 0 { 173 preparer = autorest.DecoratePreparer(preparer, 174 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 175 } else { 176 preparer = autorest.DecoratePreparer(preparer, 177 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 178 } 179 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 180} 181 182// DeleteSender sends the Delete request. The method will close the 183// http.Response Body if it receives an error. 184func (client Client) DeleteSender(req *http.Request) (future DeleteFuture, err error) { 185 var resp *http.Response 186 resp, err = client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 187 if err != nil { 188 return 189 } 190 var azf azure.Future 191 azf, err = azure.NewFutureFromResponse(resp) 192 future.FutureAPI = &azf 193 future.Result = future.result 194 return 195} 196 197// DeleteResponder handles the response to the Delete request. The method always 198// closes the http.Response Body. 199func (client Client) DeleteResponder(resp *http.Response) (result AzureAsyncOperationResults, err error) { 200 err = autorest.Respond( 201 resp, 202 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 203 autorest.ByUnmarshallingJSON(&result), 204 autorest.ByClosing()) 205 result.Response = autorest.Response{Response: resp} 206 return 207} 208 209// Get get the details of the management group. 210// Parameters: 211// groupID - management Group ID. 212// expand - the $expand=children query string parameter allows clients to request inclusion of children in the 213// response payload. $expand=path includes the path from the root group to the current group. 214// recurse - the $recurse=true query string parameter allows clients to request inclusion of entire hierarchy 215// in the response payload. Note that $expand=children must be passed up if $recurse is set to true. 216// filter - a filter which allows the exclusion of subscriptions from results (i.e. '$filter=children.childType 217// ne Subscription') 218// cacheControl - indicates that the request shouldn't utilize any caches. 219func (client Client) Get(ctx context.Context, groupID string, expand string, recurse *bool, filter string, cacheControl string) (result ManagementGroup, err error) { 220 if tracing.IsEnabled() { 221 ctx = tracing.StartSpan(ctx, fqdn+"/Client.Get") 222 defer func() { 223 sc := -1 224 if result.Response.Response != nil { 225 sc = result.Response.Response.StatusCode 226 } 227 tracing.EndSpan(ctx, sc, err) 228 }() 229 } 230 req, err := client.GetPreparer(ctx, groupID, expand, recurse, filter, cacheControl) 231 if err != nil { 232 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Get", nil, "Failure preparing request") 233 return 234 } 235 236 resp, err := client.GetSender(req) 237 if err != nil { 238 result.Response = autorest.Response{Response: resp} 239 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Get", resp, "Failure sending request") 240 return 241 } 242 243 result, err = client.GetResponder(resp) 244 if err != nil { 245 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Get", resp, "Failure responding to request") 246 return 247 } 248 249 return 250} 251 252// GetPreparer prepares the Get request. 253func (client Client) GetPreparer(ctx context.Context, groupID string, expand string, recurse *bool, filter string, cacheControl string) (*http.Request, error) { 254 pathParameters := map[string]interface{}{ 255 "groupId": autorest.Encode("path", groupID), 256 } 257 258 const APIVersion = "2020-02-01" 259 queryParameters := map[string]interface{}{ 260 "api-version": APIVersion, 261 } 262 if len(string(expand)) > 0 { 263 queryParameters["$expand"] = autorest.Encode("query", expand) 264 } 265 if recurse != nil { 266 queryParameters["$recurse"] = autorest.Encode("query", *recurse) 267 } 268 if len(filter) > 0 { 269 queryParameters["$filter"] = autorest.Encode("query", filter) 270 } 271 272 preparer := autorest.CreatePreparer( 273 autorest.AsGet(), 274 autorest.WithBaseURL(client.BaseURI), 275 autorest.WithPathParameters("/providers/Microsoft.Management/managementGroups/{groupId}", pathParameters), 276 autorest.WithQueryParameters(queryParameters)) 277 if len(cacheControl) > 0 { 278 preparer = autorest.DecoratePreparer(preparer, 279 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 280 } else { 281 preparer = autorest.DecoratePreparer(preparer, 282 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 283 } 284 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 285} 286 287// GetSender sends the Get request. The method will close the 288// http.Response Body if it receives an error. 289func (client Client) GetSender(req *http.Request) (*http.Response, error) { 290 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 291} 292 293// GetResponder handles the response to the Get request. The method always 294// closes the http.Response Body. 295func (client Client) GetResponder(resp *http.Response) (result ManagementGroup, err error) { 296 err = autorest.Respond( 297 resp, 298 azure.WithErrorUnlessStatusCode(http.StatusOK), 299 autorest.ByUnmarshallingJSON(&result), 300 autorest.ByClosing()) 301 result.Response = autorest.Response{Response: resp} 302 return 303} 304 305// GetDescendants list all entities that descend from a management group. 306// Parameters: 307// groupID - management Group ID. 308// skiptoken - page continuation token is only used if a previous operation returned a partial result. 309// If a previous response contains a nextLink element, the value of the nextLink element will include a token 310// parameter that specifies a starting point to use for subsequent calls. 311// top - number of elements to return when retrieving results. Passing this in will override $skipToken. 312func (client Client) GetDescendants(ctx context.Context, groupID string, skiptoken string, top *int32) (result DescendantListResultPage, err error) { 313 if tracing.IsEnabled() { 314 ctx = tracing.StartSpan(ctx, fqdn+"/Client.GetDescendants") 315 defer func() { 316 sc := -1 317 if result.dlr.Response.Response != nil { 318 sc = result.dlr.Response.Response.StatusCode 319 } 320 tracing.EndSpan(ctx, sc, err) 321 }() 322 } 323 result.fn = client.getDescendantsNextResults 324 req, err := client.GetDescendantsPreparer(ctx, groupID, skiptoken, top) 325 if err != nil { 326 err = autorest.NewErrorWithError(err, "managementgroups.Client", "GetDescendants", nil, "Failure preparing request") 327 return 328 } 329 330 resp, err := client.GetDescendantsSender(req) 331 if err != nil { 332 result.dlr.Response = autorest.Response{Response: resp} 333 err = autorest.NewErrorWithError(err, "managementgroups.Client", "GetDescendants", resp, "Failure sending request") 334 return 335 } 336 337 result.dlr, err = client.GetDescendantsResponder(resp) 338 if err != nil { 339 err = autorest.NewErrorWithError(err, "managementgroups.Client", "GetDescendants", resp, "Failure responding to request") 340 return 341 } 342 if result.dlr.hasNextLink() && result.dlr.IsEmpty() { 343 err = result.NextWithContext(ctx) 344 return 345 } 346 347 return 348} 349 350// GetDescendantsPreparer prepares the GetDescendants request. 351func (client Client) GetDescendantsPreparer(ctx context.Context, groupID string, skiptoken string, top *int32) (*http.Request, error) { 352 pathParameters := map[string]interface{}{ 353 "groupId": autorest.Encode("path", groupID), 354 } 355 356 const APIVersion = "2020-02-01" 357 queryParameters := map[string]interface{}{ 358 "api-version": APIVersion, 359 } 360 if len(skiptoken) > 0 { 361 queryParameters["$skiptoken"] = autorest.Encode("query", skiptoken) 362 } 363 if top != nil { 364 queryParameters["$top"] = autorest.Encode("query", *top) 365 } 366 367 preparer := autorest.CreatePreparer( 368 autorest.AsGet(), 369 autorest.WithBaseURL(client.BaseURI), 370 autorest.WithPathParameters("/providers/Microsoft.Management/managementGroups/{groupId}/descendants", pathParameters), 371 autorest.WithQueryParameters(queryParameters)) 372 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 373} 374 375// GetDescendantsSender sends the GetDescendants request. The method will close the 376// http.Response Body if it receives an error. 377func (client Client) GetDescendantsSender(req *http.Request) (*http.Response, error) { 378 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 379} 380 381// GetDescendantsResponder handles the response to the GetDescendants request. The method always 382// closes the http.Response Body. 383func (client Client) GetDescendantsResponder(resp *http.Response) (result DescendantListResult, err error) { 384 err = autorest.Respond( 385 resp, 386 azure.WithErrorUnlessStatusCode(http.StatusOK), 387 autorest.ByUnmarshallingJSON(&result), 388 autorest.ByClosing()) 389 result.Response = autorest.Response{Response: resp} 390 return 391} 392 393// getDescendantsNextResults retrieves the next set of results, if any. 394func (client Client) getDescendantsNextResults(ctx context.Context, lastResults DescendantListResult) (result DescendantListResult, err error) { 395 req, err := lastResults.descendantListResultPreparer(ctx) 396 if err != nil { 397 return result, autorest.NewErrorWithError(err, "managementgroups.Client", "getDescendantsNextResults", nil, "Failure preparing next results request") 398 } 399 if req == nil { 400 return 401 } 402 resp, err := client.GetDescendantsSender(req) 403 if err != nil { 404 result.Response = autorest.Response{Response: resp} 405 return result, autorest.NewErrorWithError(err, "managementgroups.Client", "getDescendantsNextResults", resp, "Failure sending next results request") 406 } 407 result, err = client.GetDescendantsResponder(resp) 408 if err != nil { 409 err = autorest.NewErrorWithError(err, "managementgroups.Client", "getDescendantsNextResults", resp, "Failure responding to next results request") 410 } 411 return 412} 413 414// GetDescendantsComplete enumerates all values, automatically crossing page boundaries as required. 415func (client Client) GetDescendantsComplete(ctx context.Context, groupID string, skiptoken string, top *int32) (result DescendantListResultIterator, err error) { 416 if tracing.IsEnabled() { 417 ctx = tracing.StartSpan(ctx, fqdn+"/Client.GetDescendants") 418 defer func() { 419 sc := -1 420 if result.Response().Response.Response != nil { 421 sc = result.page.Response().Response.Response.StatusCode 422 } 423 tracing.EndSpan(ctx, sc, err) 424 }() 425 } 426 result.page, err = client.GetDescendants(ctx, groupID, skiptoken, top) 427 return 428} 429 430// List list management groups for the authenticated user. 431// Parameters: 432// cacheControl - indicates that the request shouldn't utilize any caches. 433// skiptoken - page continuation token is only used if a previous operation returned a partial result. 434// If a previous response contains a nextLink element, the value of the nextLink element will include a token 435// parameter that specifies a starting point to use for subsequent calls. 436func (client Client) List(ctx context.Context, cacheControl string, skiptoken string) (result ListResultPage, err error) { 437 if tracing.IsEnabled() { 438 ctx = tracing.StartSpan(ctx, fqdn+"/Client.List") 439 defer func() { 440 sc := -1 441 if result.lr.Response.Response != nil { 442 sc = result.lr.Response.Response.StatusCode 443 } 444 tracing.EndSpan(ctx, sc, err) 445 }() 446 } 447 result.fn = client.listNextResults 448 req, err := client.ListPreparer(ctx, cacheControl, skiptoken) 449 if err != nil { 450 err = autorest.NewErrorWithError(err, "managementgroups.Client", "List", nil, "Failure preparing request") 451 return 452 } 453 454 resp, err := client.ListSender(req) 455 if err != nil { 456 result.lr.Response = autorest.Response{Response: resp} 457 err = autorest.NewErrorWithError(err, "managementgroups.Client", "List", resp, "Failure sending request") 458 return 459 } 460 461 result.lr, err = client.ListResponder(resp) 462 if err != nil { 463 err = autorest.NewErrorWithError(err, "managementgroups.Client", "List", resp, "Failure responding to request") 464 return 465 } 466 if result.lr.hasNextLink() && result.lr.IsEmpty() { 467 err = result.NextWithContext(ctx) 468 return 469 } 470 471 return 472} 473 474// ListPreparer prepares the List request. 475func (client Client) ListPreparer(ctx context.Context, cacheControl string, skiptoken string) (*http.Request, error) { 476 const APIVersion = "2020-02-01" 477 queryParameters := map[string]interface{}{ 478 "api-version": APIVersion, 479 } 480 if len(skiptoken) > 0 { 481 queryParameters["$skiptoken"] = autorest.Encode("query", skiptoken) 482 } 483 484 preparer := autorest.CreatePreparer( 485 autorest.AsGet(), 486 autorest.WithBaseURL(client.BaseURI), 487 autorest.WithPath("/providers/Microsoft.Management/managementGroups"), 488 autorest.WithQueryParameters(queryParameters)) 489 if len(cacheControl) > 0 { 490 preparer = autorest.DecoratePreparer(preparer, 491 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 492 } else { 493 preparer = autorest.DecoratePreparer(preparer, 494 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 495 } 496 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 497} 498 499// ListSender sends the List request. The method will close the 500// http.Response Body if it receives an error. 501func (client Client) ListSender(req *http.Request) (*http.Response, error) { 502 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 503} 504 505// ListResponder handles the response to the List request. The method always 506// closes the http.Response Body. 507func (client Client) ListResponder(resp *http.Response) (result ListResult, err error) { 508 err = autorest.Respond( 509 resp, 510 azure.WithErrorUnlessStatusCode(http.StatusOK), 511 autorest.ByUnmarshallingJSON(&result), 512 autorest.ByClosing()) 513 result.Response = autorest.Response{Response: resp} 514 return 515} 516 517// listNextResults retrieves the next set of results, if any. 518func (client Client) listNextResults(ctx context.Context, lastResults ListResult) (result ListResult, err error) { 519 req, err := lastResults.listResultPreparer(ctx) 520 if err != nil { 521 return result, autorest.NewErrorWithError(err, "managementgroups.Client", "listNextResults", nil, "Failure preparing next results request") 522 } 523 if req == nil { 524 return 525 } 526 resp, err := client.ListSender(req) 527 if err != nil { 528 result.Response = autorest.Response{Response: resp} 529 return result, autorest.NewErrorWithError(err, "managementgroups.Client", "listNextResults", resp, "Failure sending next results request") 530 } 531 result, err = client.ListResponder(resp) 532 if err != nil { 533 err = autorest.NewErrorWithError(err, "managementgroups.Client", "listNextResults", resp, "Failure responding to next results request") 534 } 535 return 536} 537 538// ListComplete enumerates all values, automatically crossing page boundaries as required. 539func (client Client) ListComplete(ctx context.Context, cacheControl string, skiptoken string) (result ListResultIterator, err error) { 540 if tracing.IsEnabled() { 541 ctx = tracing.StartSpan(ctx, fqdn+"/Client.List") 542 defer func() { 543 sc := -1 544 if result.Response().Response.Response != nil { 545 sc = result.page.Response().Response.Response.StatusCode 546 } 547 tracing.EndSpan(ctx, sc, err) 548 }() 549 } 550 result.page, err = client.List(ctx, cacheControl, skiptoken) 551 return 552} 553 554// Update update a management group. 555// Parameters: 556// groupID - management Group ID. 557// patchGroupRequest - management group patch parameters. 558// cacheControl - indicates that the request shouldn't utilize any caches. 559func (client Client) Update(ctx context.Context, groupID string, patchGroupRequest PatchManagementGroupRequest, cacheControl string) (result ManagementGroup, err error) { 560 if tracing.IsEnabled() { 561 ctx = tracing.StartSpan(ctx, fqdn+"/Client.Update") 562 defer func() { 563 sc := -1 564 if result.Response.Response != nil { 565 sc = result.Response.Response.StatusCode 566 } 567 tracing.EndSpan(ctx, sc, err) 568 }() 569 } 570 req, err := client.UpdatePreparer(ctx, groupID, patchGroupRequest, cacheControl) 571 if err != nil { 572 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Update", nil, "Failure preparing request") 573 return 574 } 575 576 resp, err := client.UpdateSender(req) 577 if err != nil { 578 result.Response = autorest.Response{Response: resp} 579 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Update", resp, "Failure sending request") 580 return 581 } 582 583 result, err = client.UpdateResponder(resp) 584 if err != nil { 585 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Update", resp, "Failure responding to request") 586 return 587 } 588 589 return 590} 591 592// UpdatePreparer prepares the Update request. 593func (client Client) UpdatePreparer(ctx context.Context, groupID string, patchGroupRequest PatchManagementGroupRequest, cacheControl string) (*http.Request, error) { 594 pathParameters := map[string]interface{}{ 595 "groupId": autorest.Encode("path", groupID), 596 } 597 598 const APIVersion = "2020-02-01" 599 queryParameters := map[string]interface{}{ 600 "api-version": APIVersion, 601 } 602 603 preparer := autorest.CreatePreparer( 604 autorest.AsContentType("application/json; charset=utf-8"), 605 autorest.AsPatch(), 606 autorest.WithBaseURL(client.BaseURI), 607 autorest.WithPathParameters("/providers/Microsoft.Management/managementGroups/{groupId}", pathParameters), 608 autorest.WithJSON(patchGroupRequest), 609 autorest.WithQueryParameters(queryParameters)) 610 if len(cacheControl) > 0 { 611 preparer = autorest.DecoratePreparer(preparer, 612 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 613 } else { 614 preparer = autorest.DecoratePreparer(preparer, 615 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 616 } 617 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 618} 619 620// UpdateSender sends the Update request. The method will close the 621// http.Response Body if it receives an error. 622func (client Client) UpdateSender(req *http.Request) (*http.Response, error) { 623 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 624} 625 626// UpdateResponder handles the response to the Update request. The method always 627// closes the http.Response Body. 628func (client Client) UpdateResponder(resp *http.Response) (result ManagementGroup, err error) { 629 err = autorest.Respond( 630 resp, 631 azure.WithErrorUnlessStatusCode(http.StatusOK), 632 autorest.ByUnmarshallingJSON(&result), 633 autorest.ByClosing()) 634 result.Response = autorest.Response{Response: resp} 635 return 636} 637