1package managementgroups 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 "net/http" 25) 26 27// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 28// Client is the the Azure Management Groups API enables consolidation of multiple 29// subscriptions/resources into an organizational hierarchy and centrally 30// manage access control, policies, alerting and reporting for those resources. 31type Client struct { 32 BaseClient 33} 34 35// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 36// NewClient creates an instance of the Client client. 37func NewClient(operationResultID string, skiptoken string) Client { 38 return NewClientWithBaseURI(DefaultBaseURI, operationResultID, skiptoken) 39} 40 41// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 42// NewClientWithBaseURI creates an instance of the Client client. 43func NewClientWithBaseURI(baseURI string, operationResultID string, skiptoken string) Client { 44 return Client{NewWithBaseURI(baseURI, operationResultID, skiptoken)} 45} 46 47// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 48// CreateOrUpdate create or update a management group. 49// If a management group is already created and a subsequent create request is issued with different properties, the 50// management group properties will be updated. 51// 52// groupID is management Group ID. createManagementGroupRequest is management group creation parameters. 53// cacheControl is indicates that the request shouldn't utilize any caches. 54func (client Client) CreateOrUpdate(ctx context.Context, groupID string, createManagementGroupRequest CreateManagementGroupRequest, cacheControl string) (result CreateOrUpdateFuture, err error) { 55 req, err := client.CreateOrUpdatePreparer(ctx, groupID, createManagementGroupRequest, cacheControl) 56 if err != nil { 57 err = autorest.NewErrorWithError(err, "managementgroups.Client", "CreateOrUpdate", nil, "Failure preparing request") 58 return 59 } 60 61 result, err = client.CreateOrUpdateSender(req) 62 if err != nil { 63 err = autorest.NewErrorWithError(err, "managementgroups.Client", "CreateOrUpdate", result.Response(), "Failure sending request") 64 return 65 } 66 67 return 68} 69 70// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 71// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 72func (client Client) CreateOrUpdatePreparer(ctx context.Context, groupID string, createManagementGroupRequest CreateManagementGroupRequest, cacheControl string) (*http.Request, error) { 73 pathParameters := map[string]interface{}{ 74 "groupId": autorest.Encode("path", groupID), 75 } 76 77 const APIVersion = "2018-01-01-preview" 78 queryParameters := map[string]interface{}{ 79 "api-version": APIVersion, 80 } 81 82 preparer := autorest.CreatePreparer( 83 autorest.AsContentType("application/json; charset=utf-8"), 84 autorest.AsPut(), 85 autorest.WithBaseURL(client.BaseURI), 86 autorest.WithPathParameters("/providers/Microsoft.Management/managementGroups/{groupId}", pathParameters), 87 autorest.WithJSON(createManagementGroupRequest), 88 autorest.WithQueryParameters(queryParameters)) 89 if len(cacheControl) > 0 { 90 preparer = autorest.DecoratePreparer(preparer, 91 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 92 } else { 93 preparer = autorest.DecoratePreparer(preparer, 94 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 95 } 96 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 97} 98 99// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 100// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 101// http.Response Body if it receives an error. 102func (client Client) CreateOrUpdateSender(req *http.Request) (future CreateOrUpdateFuture, err error) { 103 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 104 future.Future = azure.NewFuture(req) 105 future.req = req 106 _, err = future.Done(sender) 107 if err != nil { 108 return 109 } 110 err = autorest.Respond(future.Response(), 111 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted)) 112 return 113} 114 115// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 116// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 117// closes the http.Response Body. 118func (client Client) CreateOrUpdateResponder(resp *http.Response) (result SetObject, err error) { 119 err = autorest.Respond( 120 resp, 121 client.ByInspecting(), 122 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 123 autorest.ByUnmarshallingJSON(&result), 124 autorest.ByClosing()) 125 result.Response = autorest.Response{Response: resp} 126 return 127} 128 129// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 130// Delete delete management group. 131// If a management group contains child resources, the request will fail. 132// 133// groupID is management Group ID. cacheControl is indicates that the request shouldn't utilize any caches. 134func (client Client) Delete(ctx context.Context, groupID string, cacheControl string) (result DeleteFuture, err error) { 135 req, err := client.DeletePreparer(ctx, groupID, cacheControl) 136 if err != nil { 137 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Delete", nil, "Failure preparing request") 138 return 139 } 140 141 result, err = client.DeleteSender(req) 142 if err != nil { 143 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Delete", result.Response(), "Failure sending request") 144 return 145 } 146 147 return 148} 149 150// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 151// DeletePreparer prepares the Delete request. 152func (client Client) DeletePreparer(ctx context.Context, groupID string, cacheControl string) (*http.Request, error) { 153 pathParameters := map[string]interface{}{ 154 "groupId": autorest.Encode("path", groupID), 155 } 156 157 const APIVersion = "2018-01-01-preview" 158 queryParameters := map[string]interface{}{ 159 "api-version": APIVersion, 160 } 161 162 preparer := autorest.CreatePreparer( 163 autorest.AsDelete(), 164 autorest.WithBaseURL(client.BaseURI), 165 autorest.WithPathParameters("/providers/Microsoft.Management/managementGroups/{groupId}", pathParameters), 166 autorest.WithQueryParameters(queryParameters)) 167 if len(cacheControl) > 0 { 168 preparer = autorest.DecoratePreparer(preparer, 169 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 170 } else { 171 preparer = autorest.DecoratePreparer(preparer, 172 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 173 } 174 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 175} 176 177// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 178// DeleteSender sends the Delete request. The method will close the 179// http.Response Body if it receives an error. 180func (client Client) DeleteSender(req *http.Request) (future DeleteFuture, err error) { 181 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 182 future.Future = azure.NewFuture(req) 183 future.req = req 184 _, err = future.Done(sender) 185 if err != nil { 186 return 187 } 188 err = autorest.Respond(future.Response(), 189 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent)) 190 return 191} 192 193// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 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 client.ByInspecting(), 200 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 201 autorest.ByUnmarshallingJSON(&result), 202 autorest.ByClosing()) 203 result.Response = autorest.Response{Response: resp} 204 return 205} 206 207// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 208// Get get the details of the management group. 209// 210// groupID is management Group ID. expand is the $expand=children query string parameter allows clients to request 211// inclusion of children in the response payload. recurse is the $recurse=true query string parameter allows 212// clients to request inclusion of entire hierarchy in the response payload. Note that $expand=children must be 213// passed up if $recurse is set to true. filter is a filter which allows the exclusion of subscriptions from 214// results (i.e. '$filter=children.childType ne Subscription') cacheControl is indicates that the request shouldn't 215// 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 req, err := client.GetPreparer(ctx, groupID, expand, recurse, filter, cacheControl) 218 if err != nil { 219 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Get", nil, "Failure preparing request") 220 return 221 } 222 223 resp, err := client.GetSender(req) 224 if err != nil { 225 result.Response = autorest.Response{Response: resp} 226 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Get", resp, "Failure sending request") 227 return 228 } 229 230 result, err = client.GetResponder(resp) 231 if err != nil { 232 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Get", resp, "Failure responding to request") 233 } 234 235 return 236} 237 238// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 239// GetPreparer prepares the Get request. 240func (client Client) GetPreparer(ctx context.Context, groupID string, expand string, recurse *bool, filter string, cacheControl string) (*http.Request, error) { 241 pathParameters := map[string]interface{}{ 242 "groupId": autorest.Encode("path", groupID), 243 } 244 245 const APIVersion = "2018-01-01-preview" 246 queryParameters := map[string]interface{}{ 247 "api-version": APIVersion, 248 } 249 if len(string(expand)) > 0 { 250 queryParameters["$expand"] = autorest.Encode("query", expand) 251 } 252 if recurse != nil { 253 queryParameters["$recurse"] = autorest.Encode("query", *recurse) 254 } 255 if len(filter) > 0 { 256 queryParameters["$filter"] = autorest.Encode("query", filter) 257 } 258 259 preparer := autorest.CreatePreparer( 260 autorest.AsGet(), 261 autorest.WithBaseURL(client.BaseURI), 262 autorest.WithPathParameters("/providers/Microsoft.Management/managementGroups/{groupId}", pathParameters), 263 autorest.WithQueryParameters(queryParameters)) 264 if len(cacheControl) > 0 { 265 preparer = autorest.DecoratePreparer(preparer, 266 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 267 } else { 268 preparer = autorest.DecoratePreparer(preparer, 269 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 270 } 271 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 272} 273 274// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 275// GetSender sends the Get request. The method will close the 276// http.Response Body if it receives an error. 277func (client Client) GetSender(req *http.Request) (*http.Response, error) { 278 return autorest.SendWithSender(client, req, 279 autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 280} 281 282// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 283// GetResponder handles the response to the Get request. The method always 284// closes the http.Response Body. 285func (client Client) GetResponder(resp *http.Response) (result ManagementGroup, err error) { 286 err = autorest.Respond( 287 resp, 288 client.ByInspecting(), 289 azure.WithErrorUnlessStatusCode(http.StatusOK), 290 autorest.ByUnmarshallingJSON(&result), 291 autorest.ByClosing()) 292 result.Response = autorest.Response{Response: resp} 293 return 294} 295 296// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 297// List list management groups for the authenticated user. 298// 299// cacheControl is indicates that the request shouldn't utilize any caches. 300func (client Client) List(ctx context.Context, cacheControl string) (result ListResultPage, err error) { 301 result.fn = client.listNextResults 302 req, err := client.ListPreparer(ctx, cacheControl) 303 if err != nil { 304 err = autorest.NewErrorWithError(err, "managementgroups.Client", "List", nil, "Failure preparing request") 305 return 306 } 307 308 resp, err := client.ListSender(req) 309 if err != nil { 310 result.lr.Response = autorest.Response{Response: resp} 311 err = autorest.NewErrorWithError(err, "managementgroups.Client", "List", resp, "Failure sending request") 312 return 313 } 314 315 result.lr, err = client.ListResponder(resp) 316 if err != nil { 317 err = autorest.NewErrorWithError(err, "managementgroups.Client", "List", resp, "Failure responding to request") 318 } 319 320 return 321} 322 323// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 324// ListPreparer prepares the List request. 325func (client Client) ListPreparer(ctx context.Context, cacheControl string) (*http.Request, error) { 326 const APIVersion = "2018-01-01-preview" 327 queryParameters := map[string]interface{}{ 328 "api-version": APIVersion, 329 } 330 if len(client.Skiptoken) > 0 { 331 queryParameters["$skiptoken"] = autorest.Encode("query", client.Skiptoken) 332 } 333 334 preparer := autorest.CreatePreparer( 335 autorest.AsGet(), 336 autorest.WithBaseURL(client.BaseURI), 337 autorest.WithPath("/providers/Microsoft.Management/managementGroups"), 338 autorest.WithQueryParameters(queryParameters)) 339 if len(cacheControl) > 0 { 340 preparer = autorest.DecoratePreparer(preparer, 341 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 342 } else { 343 preparer = autorest.DecoratePreparer(preparer, 344 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 345 } 346 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 347} 348 349// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 350// ListSender sends the List request. The method will close the 351// http.Response Body if it receives an error. 352func (client Client) ListSender(req *http.Request) (*http.Response, error) { 353 return autorest.SendWithSender(client, req, 354 autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 355} 356 357// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 358// ListResponder handles the response to the List request. The method always 359// closes the http.Response Body. 360func (client Client) ListResponder(resp *http.Response) (result ListResult, err error) { 361 err = autorest.Respond( 362 resp, 363 client.ByInspecting(), 364 azure.WithErrorUnlessStatusCode(http.StatusOK), 365 autorest.ByUnmarshallingJSON(&result), 366 autorest.ByClosing()) 367 result.Response = autorest.Response{Response: resp} 368 return 369} 370 371// listNextResults retrieves the next set of results, if any. 372func (client Client) listNextResults(lastResults ListResult) (result ListResult, err error) { 373 req, err := lastResults.listResultPreparer() 374 if err != nil { 375 return result, autorest.NewErrorWithError(err, "managementgroups.Client", "listNextResults", nil, "Failure preparing next results request") 376 } 377 if req == nil { 378 return 379 } 380 resp, err := client.ListSender(req) 381 if err != nil { 382 result.Response = autorest.Response{Response: resp} 383 return result, autorest.NewErrorWithError(err, "managementgroups.Client", "listNextResults", resp, "Failure sending next results request") 384 } 385 result, err = client.ListResponder(resp) 386 if err != nil { 387 err = autorest.NewErrorWithError(err, "managementgroups.Client", "listNextResults", resp, "Failure responding to next results request") 388 } 389 return 390} 391 392// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 393// ListComplete enumerates all values, automatically crossing page boundaries as required. 394func (client Client) ListComplete(ctx context.Context, cacheControl string) (result ListResultIterator, err error) { 395 result.page, err = client.List(ctx, cacheControl) 396 return 397} 398 399// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 400// Update update a management group. 401// 402// groupID is management Group ID. patchGroupRequest is management group patch parameters. cacheControl is 403// indicates that the request shouldn't utilize any caches. 404func (client Client) Update(ctx context.Context, groupID string, patchGroupRequest PatchManagementGroupRequest, cacheControl string) (result ManagementGroup, err error) { 405 req, err := client.UpdatePreparer(ctx, groupID, patchGroupRequest, cacheControl) 406 if err != nil { 407 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Update", nil, "Failure preparing request") 408 return 409 } 410 411 resp, err := client.UpdateSender(req) 412 if err != nil { 413 result.Response = autorest.Response{Response: resp} 414 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Update", resp, "Failure sending request") 415 return 416 } 417 418 result, err = client.UpdateResponder(resp) 419 if err != nil { 420 err = autorest.NewErrorWithError(err, "managementgroups.Client", "Update", resp, "Failure responding to request") 421 } 422 423 return 424} 425 426// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 427// UpdatePreparer prepares the Update request. 428func (client Client) UpdatePreparer(ctx context.Context, groupID string, patchGroupRequest PatchManagementGroupRequest, cacheControl string) (*http.Request, error) { 429 pathParameters := map[string]interface{}{ 430 "groupId": autorest.Encode("path", groupID), 431 } 432 433 const APIVersion = "2018-01-01-preview" 434 queryParameters := map[string]interface{}{ 435 "api-version": APIVersion, 436 } 437 438 preparer := autorest.CreatePreparer( 439 autorest.AsContentType("application/json; charset=utf-8"), 440 autorest.AsPatch(), 441 autorest.WithBaseURL(client.BaseURI), 442 autorest.WithPathParameters("/providers/Microsoft.Management/managementGroups/{groupId}", pathParameters), 443 autorest.WithJSON(patchGroupRequest), 444 autorest.WithQueryParameters(queryParameters)) 445 if len(cacheControl) > 0 { 446 preparer = autorest.DecoratePreparer(preparer, 447 autorest.WithHeader("Cache-Control", autorest.String(cacheControl))) 448 } else { 449 preparer = autorest.DecoratePreparer(preparer, 450 autorest.WithHeader("Cache-Control", autorest.String("no-cache"))) 451 } 452 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 453} 454 455// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 456// UpdateSender sends the Update request. The method will close the 457// http.Response Body if it receives an error. 458func (client Client) UpdateSender(req *http.Request) (*http.Response, error) { 459 return autorest.SendWithSender(client, req, 460 autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 461} 462 463// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2018-01-01-preview/management instead. 464// UpdateResponder handles the response to the Update request. The method always 465// closes the http.Response Body. 466func (client Client) UpdateResponder(resp *http.Response) (result ManagementGroup, err error) { 467 err = autorest.Respond( 468 resp, 469 client.ByInspecting(), 470 azure.WithErrorUnlessStatusCode(http.StatusOK), 471 autorest.ByUnmarshallingJSON(&result), 472 autorest.ByClosing()) 473 result.Response = autorest.Response{Response: resp} 474 return 475} 476