1package compute 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// DisksClient is the compute Client 19type DisksClient struct { 20 BaseClient 21} 22 23// NewDisksClient creates an instance of the DisksClient client. 24func NewDisksClient(subscriptionID string) DisksClient { 25 return NewDisksClientWithBaseURI(DefaultBaseURI, subscriptionID) 26} 27 28// NewDisksClientWithBaseURI creates an instance of the DisksClient client using a custom endpoint. Use this when 29// interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 30func NewDisksClientWithBaseURI(baseURI string, subscriptionID string) DisksClient { 31 return DisksClient{NewWithBaseURI(baseURI, subscriptionID)} 32} 33 34// CreateOrUpdate creates or updates a disk. 35// Parameters: 36// resourceGroupName - the name of the resource group. 37// diskName - the name of the managed disk that is being created. The name can't be changed after the disk is 38// created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 39// characters. 40// disk - disk object supplied in the body of the Put disk operation. 41func (client DisksClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, diskName string, disk Disk) (result DisksCreateOrUpdateFuture, err error) { 42 if tracing.IsEnabled() { 43 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.CreateOrUpdate") 44 defer func() { 45 sc := -1 46 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 47 sc = result.FutureAPI.Response().StatusCode 48 } 49 tracing.EndSpan(ctx, sc, err) 50 }() 51 } 52 if err := validation.Validate([]validation.Validation{ 53 {TargetValue: disk, 54 Constraints: []validation.Constraint{{Target: "disk.DiskProperties", Name: validation.Null, Rule: false, 55 Chain: []validation.Constraint{{Target: "disk.DiskProperties.CreationData", Name: validation.Null, Rule: true, 56 Chain: []validation.Constraint{{Target: "disk.DiskProperties.CreationData.ImageReference", Name: validation.Null, Rule: false, 57 Chain: []validation.Constraint{{Target: "disk.DiskProperties.CreationData.ImageReference.ID", Name: validation.Null, Rule: true, Chain: nil}}}, 58 {Target: "disk.DiskProperties.CreationData.GalleryImageReference", Name: validation.Null, Rule: false, 59 Chain: []validation.Constraint{{Target: "disk.DiskProperties.CreationData.GalleryImageReference.ID", Name: validation.Null, Rule: true, Chain: nil}}}, 60 }}, 61 {Target: "disk.DiskProperties.EncryptionSettingsCollection", Name: validation.Null, Rule: false, 62 Chain: []validation.Constraint{{Target: "disk.DiskProperties.EncryptionSettingsCollection.Enabled", Name: validation.Null, Rule: true, Chain: nil}}}, 63 }}}}}); err != nil { 64 return result, validation.NewError("compute.DisksClient", "CreateOrUpdate", err.Error()) 65 } 66 67 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, diskName, disk) 68 if err != nil { 69 err = autorest.NewErrorWithError(err, "compute.DisksClient", "CreateOrUpdate", nil, "Failure preparing request") 70 return 71 } 72 73 result, err = client.CreateOrUpdateSender(req) 74 if err != nil { 75 err = autorest.NewErrorWithError(err, "compute.DisksClient", "CreateOrUpdate", nil, "Failure sending request") 76 return 77 } 78 79 return 80} 81 82// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 83func (client DisksClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, diskName string, disk Disk) (*http.Request, error) { 84 pathParameters := map[string]interface{}{ 85 "diskName": autorest.Encode("path", diskName), 86 "resourceGroupName": autorest.Encode("path", resourceGroupName), 87 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 88 } 89 90 const APIVersion = "2020-05-01" 91 queryParameters := map[string]interface{}{ 92 "api-version": APIVersion, 93 } 94 95 disk.ManagedBy = nil 96 disk.ManagedByExtended = nil 97 preparer := autorest.CreatePreparer( 98 autorest.AsContentType("application/json; charset=utf-8"), 99 autorest.AsPut(), 100 autorest.WithBaseURL(client.BaseURI), 101 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks/{diskName}", pathParameters), 102 autorest.WithJSON(disk), 103 autorest.WithQueryParameters(queryParameters)) 104 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 105} 106 107// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 108// http.Response Body if it receives an error. 109func (client DisksClient) CreateOrUpdateSender(req *http.Request) (future DisksCreateOrUpdateFuture, err error) { 110 var resp *http.Response 111 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 112 if err != nil { 113 return 114 } 115 var azf azure.Future 116 azf, err = azure.NewFutureFromResponse(resp) 117 future.FutureAPI = &azf 118 future.Result = future.result 119 return 120} 121 122// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 123// closes the http.Response Body. 124func (client DisksClient) CreateOrUpdateResponder(resp *http.Response) (result Disk, err error) { 125 err = autorest.Respond( 126 resp, 127 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 128 autorest.ByUnmarshallingJSON(&result), 129 autorest.ByClosing()) 130 result.Response = autorest.Response{Response: resp} 131 return 132} 133 134// Delete deletes a disk. 135// Parameters: 136// resourceGroupName - the name of the resource group. 137// diskName - the name of the managed disk that is being created. The name can't be changed after the disk is 138// created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 139// characters. 140func (client DisksClient) Delete(ctx context.Context, resourceGroupName string, diskName string) (result DisksDeleteFuture, err error) { 141 if tracing.IsEnabled() { 142 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.Delete") 143 defer func() { 144 sc := -1 145 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 146 sc = result.FutureAPI.Response().StatusCode 147 } 148 tracing.EndSpan(ctx, sc, err) 149 }() 150 } 151 req, err := client.DeletePreparer(ctx, resourceGroupName, diskName) 152 if err != nil { 153 err = autorest.NewErrorWithError(err, "compute.DisksClient", "Delete", nil, "Failure preparing request") 154 return 155 } 156 157 result, err = client.DeleteSender(req) 158 if err != nil { 159 err = autorest.NewErrorWithError(err, "compute.DisksClient", "Delete", nil, "Failure sending request") 160 return 161 } 162 163 return 164} 165 166// DeletePreparer prepares the Delete request. 167func (client DisksClient) DeletePreparer(ctx context.Context, resourceGroupName string, diskName string) (*http.Request, error) { 168 pathParameters := map[string]interface{}{ 169 "diskName": autorest.Encode("path", diskName), 170 "resourceGroupName": autorest.Encode("path", resourceGroupName), 171 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 172 } 173 174 const APIVersion = "2020-05-01" 175 queryParameters := map[string]interface{}{ 176 "api-version": APIVersion, 177 } 178 179 preparer := autorest.CreatePreparer( 180 autorest.AsDelete(), 181 autorest.WithBaseURL(client.BaseURI), 182 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks/{diskName}", pathParameters), 183 autorest.WithQueryParameters(queryParameters)) 184 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 185} 186 187// DeleteSender sends the Delete request. The method will close the 188// http.Response Body if it receives an error. 189func (client DisksClient) DeleteSender(req *http.Request) (future DisksDeleteFuture, err error) { 190 var resp *http.Response 191 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 192 if err != nil { 193 return 194 } 195 var azf azure.Future 196 azf, err = azure.NewFutureFromResponse(resp) 197 future.FutureAPI = &azf 198 future.Result = future.result 199 return 200} 201 202// DeleteResponder handles the response to the Delete request. The method always 203// closes the http.Response Body. 204func (client DisksClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 205 err = autorest.Respond( 206 resp, 207 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 208 autorest.ByClosing()) 209 result.Response = resp 210 return 211} 212 213// Get gets information about a disk. 214// Parameters: 215// resourceGroupName - the name of the resource group. 216// diskName - the name of the managed disk that is being created. The name can't be changed after the disk is 217// created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 218// characters. 219func (client DisksClient) Get(ctx context.Context, resourceGroupName string, diskName string) (result Disk, err error) { 220 if tracing.IsEnabled() { 221 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.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, resourceGroupName, diskName) 231 if err != nil { 232 err = autorest.NewErrorWithError(err, "compute.DisksClient", "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, "compute.DisksClient", "Get", resp, "Failure sending request") 240 return 241 } 242 243 result, err = client.GetResponder(resp) 244 if err != nil { 245 err = autorest.NewErrorWithError(err, "compute.DisksClient", "Get", resp, "Failure responding to request") 246 return 247 } 248 249 return 250} 251 252// GetPreparer prepares the Get request. 253func (client DisksClient) GetPreparer(ctx context.Context, resourceGroupName string, diskName string) (*http.Request, error) { 254 pathParameters := map[string]interface{}{ 255 "diskName": autorest.Encode("path", diskName), 256 "resourceGroupName": autorest.Encode("path", resourceGroupName), 257 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 258 } 259 260 const APIVersion = "2020-05-01" 261 queryParameters := map[string]interface{}{ 262 "api-version": APIVersion, 263 } 264 265 preparer := autorest.CreatePreparer( 266 autorest.AsGet(), 267 autorest.WithBaseURL(client.BaseURI), 268 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks/{diskName}", pathParameters), 269 autorest.WithQueryParameters(queryParameters)) 270 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 271} 272 273// GetSender sends the Get request. The method will close the 274// http.Response Body if it receives an error. 275func (client DisksClient) GetSender(req *http.Request) (*http.Response, error) { 276 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 277} 278 279// GetResponder handles the response to the Get request. The method always 280// closes the http.Response Body. 281func (client DisksClient) GetResponder(resp *http.Response) (result Disk, err error) { 282 err = autorest.Respond( 283 resp, 284 azure.WithErrorUnlessStatusCode(http.StatusOK), 285 autorest.ByUnmarshallingJSON(&result), 286 autorest.ByClosing()) 287 result.Response = autorest.Response{Response: resp} 288 return 289} 290 291// GrantAccess grants access to a disk. 292// Parameters: 293// resourceGroupName - the name of the resource group. 294// diskName - the name of the managed disk that is being created. The name can't be changed after the disk is 295// created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 296// characters. 297// grantAccessData - access data object supplied in the body of the get disk access operation. 298func (client DisksClient) GrantAccess(ctx context.Context, resourceGroupName string, diskName string, grantAccessData GrantAccessData) (result DisksGrantAccessFuture, err error) { 299 if tracing.IsEnabled() { 300 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.GrantAccess") 301 defer func() { 302 sc := -1 303 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 304 sc = result.FutureAPI.Response().StatusCode 305 } 306 tracing.EndSpan(ctx, sc, err) 307 }() 308 } 309 if err := validation.Validate([]validation.Validation{ 310 {TargetValue: grantAccessData, 311 Constraints: []validation.Constraint{{Target: "grantAccessData.DurationInSeconds", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { 312 return result, validation.NewError("compute.DisksClient", "GrantAccess", err.Error()) 313 } 314 315 req, err := client.GrantAccessPreparer(ctx, resourceGroupName, diskName, grantAccessData) 316 if err != nil { 317 err = autorest.NewErrorWithError(err, "compute.DisksClient", "GrantAccess", nil, "Failure preparing request") 318 return 319 } 320 321 result, err = client.GrantAccessSender(req) 322 if err != nil { 323 err = autorest.NewErrorWithError(err, "compute.DisksClient", "GrantAccess", nil, "Failure sending request") 324 return 325 } 326 327 return 328} 329 330// GrantAccessPreparer prepares the GrantAccess request. 331func (client DisksClient) GrantAccessPreparer(ctx context.Context, resourceGroupName string, diskName string, grantAccessData GrantAccessData) (*http.Request, error) { 332 pathParameters := map[string]interface{}{ 333 "diskName": autorest.Encode("path", diskName), 334 "resourceGroupName": autorest.Encode("path", resourceGroupName), 335 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 336 } 337 338 const APIVersion = "2020-05-01" 339 queryParameters := map[string]interface{}{ 340 "api-version": APIVersion, 341 } 342 343 preparer := autorest.CreatePreparer( 344 autorest.AsContentType("application/json; charset=utf-8"), 345 autorest.AsPost(), 346 autorest.WithBaseURL(client.BaseURI), 347 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks/{diskName}/beginGetAccess", pathParameters), 348 autorest.WithJSON(grantAccessData), 349 autorest.WithQueryParameters(queryParameters)) 350 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 351} 352 353// GrantAccessSender sends the GrantAccess request. The method will close the 354// http.Response Body if it receives an error. 355func (client DisksClient) GrantAccessSender(req *http.Request) (future DisksGrantAccessFuture, err error) { 356 var resp *http.Response 357 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 358 if err != nil { 359 return 360 } 361 var azf azure.Future 362 azf, err = azure.NewFutureFromResponse(resp) 363 future.FutureAPI = &azf 364 future.Result = future.result 365 return 366} 367 368// GrantAccessResponder handles the response to the GrantAccess request. The method always 369// closes the http.Response Body. 370func (client DisksClient) GrantAccessResponder(resp *http.Response) (result AccessURI, err error) { 371 err = autorest.Respond( 372 resp, 373 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 374 autorest.ByUnmarshallingJSON(&result), 375 autorest.ByClosing()) 376 result.Response = autorest.Response{Response: resp} 377 return 378} 379 380// List lists all the disks under a subscription. 381func (client DisksClient) List(ctx context.Context) (result DiskListPage, err error) { 382 if tracing.IsEnabled() { 383 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.List") 384 defer func() { 385 sc := -1 386 if result.dl.Response.Response != nil { 387 sc = result.dl.Response.Response.StatusCode 388 } 389 tracing.EndSpan(ctx, sc, err) 390 }() 391 } 392 result.fn = client.listNextResults 393 req, err := client.ListPreparer(ctx) 394 if err != nil { 395 err = autorest.NewErrorWithError(err, "compute.DisksClient", "List", nil, "Failure preparing request") 396 return 397 } 398 399 resp, err := client.ListSender(req) 400 if err != nil { 401 result.dl.Response = autorest.Response{Response: resp} 402 err = autorest.NewErrorWithError(err, "compute.DisksClient", "List", resp, "Failure sending request") 403 return 404 } 405 406 result.dl, err = client.ListResponder(resp) 407 if err != nil { 408 err = autorest.NewErrorWithError(err, "compute.DisksClient", "List", resp, "Failure responding to request") 409 return 410 } 411 if result.dl.hasNextLink() && result.dl.IsEmpty() { 412 err = result.NextWithContext(ctx) 413 return 414 } 415 416 return 417} 418 419// ListPreparer prepares the List request. 420func (client DisksClient) ListPreparer(ctx context.Context) (*http.Request, error) { 421 pathParameters := map[string]interface{}{ 422 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 423 } 424 425 const APIVersion = "2020-05-01" 426 queryParameters := map[string]interface{}{ 427 "api-version": APIVersion, 428 } 429 430 preparer := autorest.CreatePreparer( 431 autorest.AsGet(), 432 autorest.WithBaseURL(client.BaseURI), 433 autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Compute/disks", pathParameters), 434 autorest.WithQueryParameters(queryParameters)) 435 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 436} 437 438// ListSender sends the List request. The method will close the 439// http.Response Body if it receives an error. 440func (client DisksClient) ListSender(req *http.Request) (*http.Response, error) { 441 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 442} 443 444// ListResponder handles the response to the List request. The method always 445// closes the http.Response Body. 446func (client DisksClient) ListResponder(resp *http.Response) (result DiskList, err error) { 447 err = autorest.Respond( 448 resp, 449 azure.WithErrorUnlessStatusCode(http.StatusOK), 450 autorest.ByUnmarshallingJSON(&result), 451 autorest.ByClosing()) 452 result.Response = autorest.Response{Response: resp} 453 return 454} 455 456// listNextResults retrieves the next set of results, if any. 457func (client DisksClient) listNextResults(ctx context.Context, lastResults DiskList) (result DiskList, err error) { 458 req, err := lastResults.diskListPreparer(ctx) 459 if err != nil { 460 return result, autorest.NewErrorWithError(err, "compute.DisksClient", "listNextResults", nil, "Failure preparing next results request") 461 } 462 if req == nil { 463 return 464 } 465 resp, err := client.ListSender(req) 466 if err != nil { 467 result.Response = autorest.Response{Response: resp} 468 return result, autorest.NewErrorWithError(err, "compute.DisksClient", "listNextResults", resp, "Failure sending next results request") 469 } 470 result, err = client.ListResponder(resp) 471 if err != nil { 472 err = autorest.NewErrorWithError(err, "compute.DisksClient", "listNextResults", resp, "Failure responding to next results request") 473 } 474 return 475} 476 477// ListComplete enumerates all values, automatically crossing page boundaries as required. 478func (client DisksClient) ListComplete(ctx context.Context) (result DiskListIterator, err error) { 479 if tracing.IsEnabled() { 480 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.List") 481 defer func() { 482 sc := -1 483 if result.Response().Response.Response != nil { 484 sc = result.page.Response().Response.Response.StatusCode 485 } 486 tracing.EndSpan(ctx, sc, err) 487 }() 488 } 489 result.page, err = client.List(ctx) 490 return 491} 492 493// ListByResourceGroup lists all the disks under a resource group. 494// Parameters: 495// resourceGroupName - the name of the resource group. 496func (client DisksClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result DiskListPage, err error) { 497 if tracing.IsEnabled() { 498 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.ListByResourceGroup") 499 defer func() { 500 sc := -1 501 if result.dl.Response.Response != nil { 502 sc = result.dl.Response.Response.StatusCode 503 } 504 tracing.EndSpan(ctx, sc, err) 505 }() 506 } 507 result.fn = client.listByResourceGroupNextResults 508 req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName) 509 if err != nil { 510 err = autorest.NewErrorWithError(err, "compute.DisksClient", "ListByResourceGroup", nil, "Failure preparing request") 511 return 512 } 513 514 resp, err := client.ListByResourceGroupSender(req) 515 if err != nil { 516 result.dl.Response = autorest.Response{Response: resp} 517 err = autorest.NewErrorWithError(err, "compute.DisksClient", "ListByResourceGroup", resp, "Failure sending request") 518 return 519 } 520 521 result.dl, err = client.ListByResourceGroupResponder(resp) 522 if err != nil { 523 err = autorest.NewErrorWithError(err, "compute.DisksClient", "ListByResourceGroup", resp, "Failure responding to request") 524 return 525 } 526 if result.dl.hasNextLink() && result.dl.IsEmpty() { 527 err = result.NextWithContext(ctx) 528 return 529 } 530 531 return 532} 533 534// ListByResourceGroupPreparer prepares the ListByResourceGroup request. 535func (client DisksClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) { 536 pathParameters := map[string]interface{}{ 537 "resourceGroupName": autorest.Encode("path", resourceGroupName), 538 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 539 } 540 541 const APIVersion = "2020-05-01" 542 queryParameters := map[string]interface{}{ 543 "api-version": APIVersion, 544 } 545 546 preparer := autorest.CreatePreparer( 547 autorest.AsGet(), 548 autorest.WithBaseURL(client.BaseURI), 549 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks", pathParameters), 550 autorest.WithQueryParameters(queryParameters)) 551 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 552} 553 554// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the 555// http.Response Body if it receives an error. 556func (client DisksClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) { 557 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 558} 559 560// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always 561// closes the http.Response Body. 562func (client DisksClient) ListByResourceGroupResponder(resp *http.Response) (result DiskList, err error) { 563 err = autorest.Respond( 564 resp, 565 azure.WithErrorUnlessStatusCode(http.StatusOK), 566 autorest.ByUnmarshallingJSON(&result), 567 autorest.ByClosing()) 568 result.Response = autorest.Response{Response: resp} 569 return 570} 571 572// listByResourceGroupNextResults retrieves the next set of results, if any. 573func (client DisksClient) listByResourceGroupNextResults(ctx context.Context, lastResults DiskList) (result DiskList, err error) { 574 req, err := lastResults.diskListPreparer(ctx) 575 if err != nil { 576 return result, autorest.NewErrorWithError(err, "compute.DisksClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request") 577 } 578 if req == nil { 579 return 580 } 581 resp, err := client.ListByResourceGroupSender(req) 582 if err != nil { 583 result.Response = autorest.Response{Response: resp} 584 return result, autorest.NewErrorWithError(err, "compute.DisksClient", "listByResourceGroupNextResults", resp, "Failure sending next results request") 585 } 586 result, err = client.ListByResourceGroupResponder(resp) 587 if err != nil { 588 err = autorest.NewErrorWithError(err, "compute.DisksClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request") 589 } 590 return 591} 592 593// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required. 594func (client DisksClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result DiskListIterator, err error) { 595 if tracing.IsEnabled() { 596 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.ListByResourceGroup") 597 defer func() { 598 sc := -1 599 if result.Response().Response.Response != nil { 600 sc = result.page.Response().Response.Response.StatusCode 601 } 602 tracing.EndSpan(ctx, sc, err) 603 }() 604 } 605 result.page, err = client.ListByResourceGroup(ctx, resourceGroupName) 606 return 607} 608 609// RevokeAccess revokes access to a disk. 610// Parameters: 611// resourceGroupName - the name of the resource group. 612// diskName - the name of the managed disk that is being created. The name can't be changed after the disk is 613// created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 614// characters. 615func (client DisksClient) RevokeAccess(ctx context.Context, resourceGroupName string, diskName string) (result DisksRevokeAccessFuture, err error) { 616 if tracing.IsEnabled() { 617 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.RevokeAccess") 618 defer func() { 619 sc := -1 620 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 621 sc = result.FutureAPI.Response().StatusCode 622 } 623 tracing.EndSpan(ctx, sc, err) 624 }() 625 } 626 req, err := client.RevokeAccessPreparer(ctx, resourceGroupName, diskName) 627 if err != nil { 628 err = autorest.NewErrorWithError(err, "compute.DisksClient", "RevokeAccess", nil, "Failure preparing request") 629 return 630 } 631 632 result, err = client.RevokeAccessSender(req) 633 if err != nil { 634 err = autorest.NewErrorWithError(err, "compute.DisksClient", "RevokeAccess", nil, "Failure sending request") 635 return 636 } 637 638 return 639} 640 641// RevokeAccessPreparer prepares the RevokeAccess request. 642func (client DisksClient) RevokeAccessPreparer(ctx context.Context, resourceGroupName string, diskName string) (*http.Request, error) { 643 pathParameters := map[string]interface{}{ 644 "diskName": autorest.Encode("path", diskName), 645 "resourceGroupName": autorest.Encode("path", resourceGroupName), 646 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 647 } 648 649 const APIVersion = "2020-05-01" 650 queryParameters := map[string]interface{}{ 651 "api-version": APIVersion, 652 } 653 654 preparer := autorest.CreatePreparer( 655 autorest.AsPost(), 656 autorest.WithBaseURL(client.BaseURI), 657 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks/{diskName}/endGetAccess", pathParameters), 658 autorest.WithQueryParameters(queryParameters)) 659 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 660} 661 662// RevokeAccessSender sends the RevokeAccess request. The method will close the 663// http.Response Body if it receives an error. 664func (client DisksClient) RevokeAccessSender(req *http.Request) (future DisksRevokeAccessFuture, err error) { 665 var resp *http.Response 666 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 667 if err != nil { 668 return 669 } 670 var azf azure.Future 671 azf, err = azure.NewFutureFromResponse(resp) 672 future.FutureAPI = &azf 673 future.Result = future.result 674 return 675} 676 677// RevokeAccessResponder handles the response to the RevokeAccess request. The method always 678// closes the http.Response Body. 679func (client DisksClient) RevokeAccessResponder(resp *http.Response) (result autorest.Response, err error) { 680 err = autorest.Respond( 681 resp, 682 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 683 autorest.ByClosing()) 684 result.Response = resp 685 return 686} 687 688// Update updates (patches) a disk. 689// Parameters: 690// resourceGroupName - the name of the resource group. 691// diskName - the name of the managed disk that is being created. The name can't be changed after the disk is 692// created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 693// characters. 694// disk - disk object supplied in the body of the Patch disk operation. 695func (client DisksClient) Update(ctx context.Context, resourceGroupName string, diskName string, disk DiskUpdate) (result DisksUpdateFuture, err error) { 696 if tracing.IsEnabled() { 697 ctx = tracing.StartSpan(ctx, fqdn+"/DisksClient.Update") 698 defer func() { 699 sc := -1 700 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 701 sc = result.FutureAPI.Response().StatusCode 702 } 703 tracing.EndSpan(ctx, sc, err) 704 }() 705 } 706 req, err := client.UpdatePreparer(ctx, resourceGroupName, diskName, disk) 707 if err != nil { 708 err = autorest.NewErrorWithError(err, "compute.DisksClient", "Update", nil, "Failure preparing request") 709 return 710 } 711 712 result, err = client.UpdateSender(req) 713 if err != nil { 714 err = autorest.NewErrorWithError(err, "compute.DisksClient", "Update", nil, "Failure sending request") 715 return 716 } 717 718 return 719} 720 721// UpdatePreparer prepares the Update request. 722func (client DisksClient) UpdatePreparer(ctx context.Context, resourceGroupName string, diskName string, disk DiskUpdate) (*http.Request, error) { 723 pathParameters := map[string]interface{}{ 724 "diskName": autorest.Encode("path", diskName), 725 "resourceGroupName": autorest.Encode("path", resourceGroupName), 726 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 727 } 728 729 const APIVersion = "2020-05-01" 730 queryParameters := map[string]interface{}{ 731 "api-version": APIVersion, 732 } 733 734 preparer := autorest.CreatePreparer( 735 autorest.AsContentType("application/json; charset=utf-8"), 736 autorest.AsPatch(), 737 autorest.WithBaseURL(client.BaseURI), 738 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks/{diskName}", pathParameters), 739 autorest.WithJSON(disk), 740 autorest.WithQueryParameters(queryParameters)) 741 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 742} 743 744// UpdateSender sends the Update request. The method will close the 745// http.Response Body if it receives an error. 746func (client DisksClient) UpdateSender(req *http.Request) (future DisksUpdateFuture, err error) { 747 var resp *http.Response 748 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 749 if err != nil { 750 return 751 } 752 var azf azure.Future 753 azf, err = azure.NewFutureFromResponse(resp) 754 future.FutureAPI = &azf 755 future.Result = future.result 756 return 757} 758 759// UpdateResponder handles the response to the Update request. The method always 760// closes the http.Response Body. 761func (client DisksClient) UpdateResponder(resp *http.Response) (result Disk, err error) { 762 err = autorest.Respond( 763 resp, 764 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 765 autorest.ByUnmarshallingJSON(&result), 766 autorest.ByClosing()) 767 result.Response = autorest.Response{Response: resp} 768 return 769} 770