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