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/tracing" 14 "net/http" 15) 16 17// VirtualMachineScaleSetVMsClient is the compute Client 18type VirtualMachineScaleSetVMsClient struct { 19 BaseClient 20} 21 22// NewVirtualMachineScaleSetVMsClient creates an instance of the VirtualMachineScaleSetVMsClient client. 23func NewVirtualMachineScaleSetVMsClient(subscriptionID string) VirtualMachineScaleSetVMsClient { 24 return NewVirtualMachineScaleSetVMsClientWithBaseURI(DefaultBaseURI, subscriptionID) 25} 26 27// NewVirtualMachineScaleSetVMsClientWithBaseURI creates an instance of the VirtualMachineScaleSetVMsClient client 28// using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign 29// clouds, Azure stack). 30func NewVirtualMachineScaleSetVMsClientWithBaseURI(baseURI string, subscriptionID string) VirtualMachineScaleSetVMsClient { 31 return VirtualMachineScaleSetVMsClient{NewWithBaseURI(baseURI, subscriptionID)} 32} 33 34// Deallocate deallocates a specific virtual machine in a VM scale set. Shuts down the virtual machine and releases the 35// compute resources it uses. You are not billed for the compute resources of this virtual machine once it is 36// deallocated. 37// Parameters: 38// resourceGroupName - the name of the resource group. 39// VMScaleSetName - the name of the VM scale set. 40// instanceID - the instance ID of the virtual machine. 41func (client VirtualMachineScaleSetVMsClient) Deallocate(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result VirtualMachineScaleSetVMsDeallocateFuture, err error) { 42 if tracing.IsEnabled() { 43 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.Deallocate") 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 req, err := client.DeallocatePreparer(ctx, resourceGroupName, VMScaleSetName, instanceID) 53 if err != nil { 54 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Deallocate", nil, "Failure preparing request") 55 return 56 } 57 58 result, err = client.DeallocateSender(req) 59 if err != nil { 60 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Deallocate", nil, "Failure sending request") 61 return 62 } 63 64 return 65} 66 67// DeallocatePreparer prepares the Deallocate request. 68func (client VirtualMachineScaleSetVMsClient) DeallocatePreparer(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (*http.Request, error) { 69 pathParameters := map[string]interface{}{ 70 "instanceId": autorest.Encode("path", instanceID), 71 "resourceGroupName": autorest.Encode("path", resourceGroupName), 72 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 73 "vmScaleSetName": autorest.Encode("path", VMScaleSetName), 74 } 75 76 const APIVersion = "2015-06-15" 77 queryParameters := map[string]interface{}{ 78 "api-version": APIVersion, 79 } 80 81 preparer := autorest.CreatePreparer( 82 autorest.AsPost(), 83 autorest.WithBaseURL(client.BaseURI), 84 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/deallocate", pathParameters), 85 autorest.WithQueryParameters(queryParameters)) 86 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 87} 88 89// DeallocateSender sends the Deallocate request. The method will close the 90// http.Response Body if it receives an error. 91func (client VirtualMachineScaleSetVMsClient) DeallocateSender(req *http.Request) (future VirtualMachineScaleSetVMsDeallocateFuture, err error) { 92 var resp *http.Response 93 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 94 if err != nil { 95 return 96 } 97 var azf azure.Future 98 azf, err = azure.NewFutureFromResponse(resp) 99 future.FutureAPI = &azf 100 future.Result = future.result 101 return 102} 103 104// DeallocateResponder handles the response to the Deallocate request. The method always 105// closes the http.Response Body. 106func (client VirtualMachineScaleSetVMsClient) DeallocateResponder(resp *http.Response) (result OperationStatusResponse, err error) { 107 err = autorest.Respond( 108 resp, 109 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 110 autorest.ByUnmarshallingJSON(&result), 111 autorest.ByClosing()) 112 result.Response = autorest.Response{Response: resp} 113 return 114} 115 116// Delete deletes a virtual machine from a VM scale set. 117// Parameters: 118// resourceGroupName - the name of the resource group. 119// VMScaleSetName - the name of the VM scale set. 120// instanceID - the instance ID of the virtual machine. 121func (client VirtualMachineScaleSetVMsClient) Delete(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result VirtualMachineScaleSetVMsDeleteFuture, err error) { 122 if tracing.IsEnabled() { 123 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.Delete") 124 defer func() { 125 sc := -1 126 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 127 sc = result.FutureAPI.Response().StatusCode 128 } 129 tracing.EndSpan(ctx, sc, err) 130 }() 131 } 132 req, err := client.DeletePreparer(ctx, resourceGroupName, VMScaleSetName, instanceID) 133 if err != nil { 134 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Delete", nil, "Failure preparing request") 135 return 136 } 137 138 result, err = client.DeleteSender(req) 139 if err != nil { 140 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Delete", nil, "Failure sending request") 141 return 142 } 143 144 return 145} 146 147// DeletePreparer prepares the Delete request. 148func (client VirtualMachineScaleSetVMsClient) DeletePreparer(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (*http.Request, error) { 149 pathParameters := map[string]interface{}{ 150 "instanceId": autorest.Encode("path", instanceID), 151 "resourceGroupName": autorest.Encode("path", resourceGroupName), 152 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 153 "vmScaleSetName": autorest.Encode("path", VMScaleSetName), 154 } 155 156 const APIVersion = "2015-06-15" 157 queryParameters := map[string]interface{}{ 158 "api-version": APIVersion, 159 } 160 161 preparer := autorest.CreatePreparer( 162 autorest.AsDelete(), 163 autorest.WithBaseURL(client.BaseURI), 164 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}", pathParameters), 165 autorest.WithQueryParameters(queryParameters)) 166 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 167} 168 169// DeleteSender sends the Delete request. The method will close the 170// http.Response Body if it receives an error. 171func (client VirtualMachineScaleSetVMsClient) DeleteSender(req *http.Request) (future VirtualMachineScaleSetVMsDeleteFuture, err error) { 172 var resp *http.Response 173 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 174 if err != nil { 175 return 176 } 177 var azf azure.Future 178 azf, err = azure.NewFutureFromResponse(resp) 179 future.FutureAPI = &azf 180 future.Result = future.result 181 return 182} 183 184// DeleteResponder handles the response to the Delete request. The method always 185// closes the http.Response Body. 186func (client VirtualMachineScaleSetVMsClient) DeleteResponder(resp *http.Response) (result OperationStatusResponse, err error) { 187 err = autorest.Respond( 188 resp, 189 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 190 autorest.ByUnmarshallingJSON(&result), 191 autorest.ByClosing()) 192 result.Response = autorest.Response{Response: resp} 193 return 194} 195 196// Get gets a virtual machine from a VM scale set. 197// Parameters: 198// resourceGroupName - the name of the resource group. 199// VMScaleSetName - the name of the VM scale set. 200// instanceID - the instance ID of the virtual machine. 201func (client VirtualMachineScaleSetVMsClient) Get(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result VirtualMachineScaleSetVM, err error) { 202 if tracing.IsEnabled() { 203 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.Get") 204 defer func() { 205 sc := -1 206 if result.Response.Response != nil { 207 sc = result.Response.Response.StatusCode 208 } 209 tracing.EndSpan(ctx, sc, err) 210 }() 211 } 212 req, err := client.GetPreparer(ctx, resourceGroupName, VMScaleSetName, instanceID) 213 if err != nil { 214 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Get", nil, "Failure preparing request") 215 return 216 } 217 218 resp, err := client.GetSender(req) 219 if err != nil { 220 result.Response = autorest.Response{Response: resp} 221 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Get", resp, "Failure sending request") 222 return 223 } 224 225 result, err = client.GetResponder(resp) 226 if err != nil { 227 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Get", resp, "Failure responding to request") 228 return 229 } 230 231 return 232} 233 234// GetPreparer prepares the Get request. 235func (client VirtualMachineScaleSetVMsClient) GetPreparer(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (*http.Request, error) { 236 pathParameters := map[string]interface{}{ 237 "instanceId": autorest.Encode("path", instanceID), 238 "resourceGroupName": autorest.Encode("path", resourceGroupName), 239 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 240 "vmScaleSetName": autorest.Encode("path", VMScaleSetName), 241 } 242 243 const APIVersion = "2015-06-15" 244 queryParameters := map[string]interface{}{ 245 "api-version": APIVersion, 246 } 247 248 preparer := autorest.CreatePreparer( 249 autorest.AsGet(), 250 autorest.WithBaseURL(client.BaseURI), 251 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}", pathParameters), 252 autorest.WithQueryParameters(queryParameters)) 253 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 254} 255 256// GetSender sends the Get request. The method will close the 257// http.Response Body if it receives an error. 258func (client VirtualMachineScaleSetVMsClient) GetSender(req *http.Request) (*http.Response, error) { 259 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 260} 261 262// GetResponder handles the response to the Get request. The method always 263// closes the http.Response Body. 264func (client VirtualMachineScaleSetVMsClient) GetResponder(resp *http.Response) (result VirtualMachineScaleSetVM, err error) { 265 err = autorest.Respond( 266 resp, 267 azure.WithErrorUnlessStatusCode(http.StatusOK), 268 autorest.ByUnmarshallingJSON(&result), 269 autorest.ByClosing()) 270 result.Response = autorest.Response{Response: resp} 271 return 272} 273 274// GetInstanceView gets the status of a virtual machine from a VM scale set. 275// Parameters: 276// resourceGroupName - the name of the resource group. 277// VMScaleSetName - the name of the VM scale set. 278// instanceID - the instance ID of the virtual machine. 279func (client VirtualMachineScaleSetVMsClient) GetInstanceView(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result VirtualMachineScaleSetVMInstanceView, err error) { 280 if tracing.IsEnabled() { 281 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.GetInstanceView") 282 defer func() { 283 sc := -1 284 if result.Response.Response != nil { 285 sc = result.Response.Response.StatusCode 286 } 287 tracing.EndSpan(ctx, sc, err) 288 }() 289 } 290 req, err := client.GetInstanceViewPreparer(ctx, resourceGroupName, VMScaleSetName, instanceID) 291 if err != nil { 292 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "GetInstanceView", nil, "Failure preparing request") 293 return 294 } 295 296 resp, err := client.GetInstanceViewSender(req) 297 if err != nil { 298 result.Response = autorest.Response{Response: resp} 299 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "GetInstanceView", resp, "Failure sending request") 300 return 301 } 302 303 result, err = client.GetInstanceViewResponder(resp) 304 if err != nil { 305 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "GetInstanceView", resp, "Failure responding to request") 306 return 307 } 308 309 return 310} 311 312// GetInstanceViewPreparer prepares the GetInstanceView request. 313func (client VirtualMachineScaleSetVMsClient) GetInstanceViewPreparer(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (*http.Request, error) { 314 pathParameters := map[string]interface{}{ 315 "instanceId": autorest.Encode("path", instanceID), 316 "resourceGroupName": autorest.Encode("path", resourceGroupName), 317 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 318 "vmScaleSetName": autorest.Encode("path", VMScaleSetName), 319 } 320 321 const APIVersion = "2015-06-15" 322 queryParameters := map[string]interface{}{ 323 "api-version": APIVersion, 324 } 325 326 preparer := autorest.CreatePreparer( 327 autorest.AsGet(), 328 autorest.WithBaseURL(client.BaseURI), 329 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/instanceView", pathParameters), 330 autorest.WithQueryParameters(queryParameters)) 331 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 332} 333 334// GetInstanceViewSender sends the GetInstanceView request. The method will close the 335// http.Response Body if it receives an error. 336func (client VirtualMachineScaleSetVMsClient) GetInstanceViewSender(req *http.Request) (*http.Response, error) { 337 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 338} 339 340// GetInstanceViewResponder handles the response to the GetInstanceView request. The method always 341// closes the http.Response Body. 342func (client VirtualMachineScaleSetVMsClient) GetInstanceViewResponder(resp *http.Response) (result VirtualMachineScaleSetVMInstanceView, err error) { 343 err = autorest.Respond( 344 resp, 345 azure.WithErrorUnlessStatusCode(http.StatusOK), 346 autorest.ByUnmarshallingJSON(&result), 347 autorest.ByClosing()) 348 result.Response = autorest.Response{Response: resp} 349 return 350} 351 352// List gets a list of all virtual machines in a VM scale sets. 353// Parameters: 354// resourceGroupName - the name of the resource group. 355// virtualMachineScaleSetName - the name of the VM scale set. 356// filter - the filter to apply to the operation. Allowed values are 'startswith(instanceView/statuses/code, 357// 'PowerState') eq true', 'properties/latestModelApplied eq true', 'properties/latestModelApplied eq false'. 358// selectParameter - the list parameters. Allowed values are 'instanceView', 'instanceView/statuses'. 359// expand - the expand expression to apply to the operation. Allowed values are 'instanceView'. 360func (client VirtualMachineScaleSetVMsClient) List(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, filter string, selectParameter string, expand string) (result VirtualMachineScaleSetVMListResultPage, err error) { 361 if tracing.IsEnabled() { 362 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.List") 363 defer func() { 364 sc := -1 365 if result.vmssvlr.Response.Response != nil { 366 sc = result.vmssvlr.Response.Response.StatusCode 367 } 368 tracing.EndSpan(ctx, sc, err) 369 }() 370 } 371 result.fn = client.listNextResults 372 req, err := client.ListPreparer(ctx, resourceGroupName, virtualMachineScaleSetName, filter, selectParameter, expand) 373 if err != nil { 374 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "List", nil, "Failure preparing request") 375 return 376 } 377 378 resp, err := client.ListSender(req) 379 if err != nil { 380 result.vmssvlr.Response = autorest.Response{Response: resp} 381 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "List", resp, "Failure sending request") 382 return 383 } 384 385 result.vmssvlr, err = client.ListResponder(resp) 386 if err != nil { 387 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "List", resp, "Failure responding to request") 388 return 389 } 390 if result.vmssvlr.hasNextLink() && result.vmssvlr.IsEmpty() { 391 err = result.NextWithContext(ctx) 392 return 393 } 394 395 return 396} 397 398// ListPreparer prepares the List request. 399func (client VirtualMachineScaleSetVMsClient) ListPreparer(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, filter string, selectParameter string, expand string) (*http.Request, error) { 400 pathParameters := map[string]interface{}{ 401 "resourceGroupName": autorest.Encode("path", resourceGroupName), 402 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 403 "virtualMachineScaleSetName": autorest.Encode("path", virtualMachineScaleSetName), 404 } 405 406 const APIVersion = "2015-06-15" 407 queryParameters := map[string]interface{}{ 408 "api-version": APIVersion, 409 } 410 if len(filter) > 0 { 411 queryParameters["$filter"] = autorest.Encode("query", filter) 412 } 413 if len(selectParameter) > 0 { 414 queryParameters["$select"] = autorest.Encode("query", selectParameter) 415 } 416 if len(expand) > 0 { 417 queryParameters["$expand"] = autorest.Encode("query", expand) 418 } 419 420 preparer := autorest.CreatePreparer( 421 autorest.AsGet(), 422 autorest.WithBaseURL(client.BaseURI), 423 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines", pathParameters), 424 autorest.WithQueryParameters(queryParameters)) 425 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 426} 427 428// ListSender sends the List request. The method will close the 429// http.Response Body if it receives an error. 430func (client VirtualMachineScaleSetVMsClient) ListSender(req *http.Request) (*http.Response, error) { 431 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 432} 433 434// ListResponder handles the response to the List request. The method always 435// closes the http.Response Body. 436func (client VirtualMachineScaleSetVMsClient) ListResponder(resp *http.Response) (result VirtualMachineScaleSetVMListResult, err error) { 437 err = autorest.Respond( 438 resp, 439 azure.WithErrorUnlessStatusCode(http.StatusOK), 440 autorest.ByUnmarshallingJSON(&result), 441 autorest.ByClosing()) 442 result.Response = autorest.Response{Response: resp} 443 return 444} 445 446// listNextResults retrieves the next set of results, if any. 447func (client VirtualMachineScaleSetVMsClient) listNextResults(ctx context.Context, lastResults VirtualMachineScaleSetVMListResult) (result VirtualMachineScaleSetVMListResult, err error) { 448 req, err := lastResults.virtualMachineScaleSetVMListResultPreparer(ctx) 449 if err != nil { 450 return result, autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "listNextResults", nil, "Failure preparing next results request") 451 } 452 if req == nil { 453 return 454 } 455 resp, err := client.ListSender(req) 456 if err != nil { 457 result.Response = autorest.Response{Response: resp} 458 return result, autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "listNextResults", resp, "Failure sending next results request") 459 } 460 result, err = client.ListResponder(resp) 461 if err != nil { 462 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "listNextResults", resp, "Failure responding to next results request") 463 } 464 return 465} 466 467// ListComplete enumerates all values, automatically crossing page boundaries as required. 468func (client VirtualMachineScaleSetVMsClient) ListComplete(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, filter string, selectParameter string, expand string) (result VirtualMachineScaleSetVMListResultIterator, err error) { 469 if tracing.IsEnabled() { 470 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.List") 471 defer func() { 472 sc := -1 473 if result.Response().Response.Response != nil { 474 sc = result.page.Response().Response.Response.StatusCode 475 } 476 tracing.EndSpan(ctx, sc, err) 477 }() 478 } 479 result.page, err = client.List(ctx, resourceGroupName, virtualMachineScaleSetName, filter, selectParameter, expand) 480 return 481} 482 483// PowerOff power off (stop) a virtual machine in a VM scale set. Note that resources are still attached and you are 484// getting charged for the resources. Instead, use deallocate to release resources and avoid charges. 485// Parameters: 486// resourceGroupName - the name of the resource group. 487// VMScaleSetName - the name of the VM scale set. 488// instanceID - the instance ID of the virtual machine. 489func (client VirtualMachineScaleSetVMsClient) PowerOff(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result VirtualMachineScaleSetVMsPowerOffFuture, err error) { 490 if tracing.IsEnabled() { 491 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.PowerOff") 492 defer func() { 493 sc := -1 494 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 495 sc = result.FutureAPI.Response().StatusCode 496 } 497 tracing.EndSpan(ctx, sc, err) 498 }() 499 } 500 req, err := client.PowerOffPreparer(ctx, resourceGroupName, VMScaleSetName, instanceID) 501 if err != nil { 502 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "PowerOff", nil, "Failure preparing request") 503 return 504 } 505 506 result, err = client.PowerOffSender(req) 507 if err != nil { 508 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "PowerOff", nil, "Failure sending request") 509 return 510 } 511 512 return 513} 514 515// PowerOffPreparer prepares the PowerOff request. 516func (client VirtualMachineScaleSetVMsClient) PowerOffPreparer(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (*http.Request, error) { 517 pathParameters := map[string]interface{}{ 518 "instanceId": autorest.Encode("path", instanceID), 519 "resourceGroupName": autorest.Encode("path", resourceGroupName), 520 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 521 "vmScaleSetName": autorest.Encode("path", VMScaleSetName), 522 } 523 524 const APIVersion = "2015-06-15" 525 queryParameters := map[string]interface{}{ 526 "api-version": APIVersion, 527 } 528 529 preparer := autorest.CreatePreparer( 530 autorest.AsPost(), 531 autorest.WithBaseURL(client.BaseURI), 532 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/poweroff", pathParameters), 533 autorest.WithQueryParameters(queryParameters)) 534 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 535} 536 537// PowerOffSender sends the PowerOff request. The method will close the 538// http.Response Body if it receives an error. 539func (client VirtualMachineScaleSetVMsClient) PowerOffSender(req *http.Request) (future VirtualMachineScaleSetVMsPowerOffFuture, err error) { 540 var resp *http.Response 541 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 542 if err != nil { 543 return 544 } 545 var azf azure.Future 546 azf, err = azure.NewFutureFromResponse(resp) 547 future.FutureAPI = &azf 548 future.Result = future.result 549 return 550} 551 552// PowerOffResponder handles the response to the PowerOff request. The method always 553// closes the http.Response Body. 554func (client VirtualMachineScaleSetVMsClient) PowerOffResponder(resp *http.Response) (result OperationStatusResponse, err error) { 555 err = autorest.Respond( 556 resp, 557 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 558 autorest.ByUnmarshallingJSON(&result), 559 autorest.ByClosing()) 560 result.Response = autorest.Response{Response: resp} 561 return 562} 563 564// Reimage reimages (upgrade the operating system) a specific virtual machine in a VM scale set. 565// Parameters: 566// resourceGroupName - the name of the resource group. 567// VMScaleSetName - the name of the VM scale set. 568// instanceID - the instance ID of the virtual machine. 569func (client VirtualMachineScaleSetVMsClient) Reimage(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result VirtualMachineScaleSetVMsReimageFuture, err error) { 570 if tracing.IsEnabled() { 571 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.Reimage") 572 defer func() { 573 sc := -1 574 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 575 sc = result.FutureAPI.Response().StatusCode 576 } 577 tracing.EndSpan(ctx, sc, err) 578 }() 579 } 580 req, err := client.ReimagePreparer(ctx, resourceGroupName, VMScaleSetName, instanceID) 581 if err != nil { 582 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Reimage", nil, "Failure preparing request") 583 return 584 } 585 586 result, err = client.ReimageSender(req) 587 if err != nil { 588 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Reimage", nil, "Failure sending request") 589 return 590 } 591 592 return 593} 594 595// ReimagePreparer prepares the Reimage request. 596func (client VirtualMachineScaleSetVMsClient) ReimagePreparer(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (*http.Request, error) { 597 pathParameters := map[string]interface{}{ 598 "instanceId": autorest.Encode("path", instanceID), 599 "resourceGroupName": autorest.Encode("path", resourceGroupName), 600 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 601 "vmScaleSetName": autorest.Encode("path", VMScaleSetName), 602 } 603 604 const APIVersion = "2015-06-15" 605 queryParameters := map[string]interface{}{ 606 "api-version": APIVersion, 607 } 608 609 preparer := autorest.CreatePreparer( 610 autorest.AsPost(), 611 autorest.WithBaseURL(client.BaseURI), 612 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimage", pathParameters), 613 autorest.WithQueryParameters(queryParameters)) 614 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 615} 616 617// ReimageSender sends the Reimage request. The method will close the 618// http.Response Body if it receives an error. 619func (client VirtualMachineScaleSetVMsClient) ReimageSender(req *http.Request) (future VirtualMachineScaleSetVMsReimageFuture, err error) { 620 var resp *http.Response 621 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 622 if err != nil { 623 return 624 } 625 var azf azure.Future 626 azf, err = azure.NewFutureFromResponse(resp) 627 future.FutureAPI = &azf 628 future.Result = future.result 629 return 630} 631 632// ReimageResponder handles the response to the Reimage request. The method always 633// closes the http.Response Body. 634func (client VirtualMachineScaleSetVMsClient) ReimageResponder(resp *http.Response) (result OperationStatusResponse, err error) { 635 err = autorest.Respond( 636 resp, 637 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 638 autorest.ByUnmarshallingJSON(&result), 639 autorest.ByClosing()) 640 result.Response = autorest.Response{Response: resp} 641 return 642} 643 644// Restart restarts a virtual machine in a VM scale set. 645// Parameters: 646// resourceGroupName - the name of the resource group. 647// VMScaleSetName - the name of the VM scale set. 648// instanceID - the instance ID of the virtual machine. 649func (client VirtualMachineScaleSetVMsClient) Restart(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result VirtualMachineScaleSetVMsRestartFuture, err error) { 650 if tracing.IsEnabled() { 651 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.Restart") 652 defer func() { 653 sc := -1 654 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 655 sc = result.FutureAPI.Response().StatusCode 656 } 657 tracing.EndSpan(ctx, sc, err) 658 }() 659 } 660 req, err := client.RestartPreparer(ctx, resourceGroupName, VMScaleSetName, instanceID) 661 if err != nil { 662 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Restart", nil, "Failure preparing request") 663 return 664 } 665 666 result, err = client.RestartSender(req) 667 if err != nil { 668 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Restart", nil, "Failure sending request") 669 return 670 } 671 672 return 673} 674 675// RestartPreparer prepares the Restart request. 676func (client VirtualMachineScaleSetVMsClient) RestartPreparer(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (*http.Request, error) { 677 pathParameters := map[string]interface{}{ 678 "instanceId": autorest.Encode("path", instanceID), 679 "resourceGroupName": autorest.Encode("path", resourceGroupName), 680 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 681 "vmScaleSetName": autorest.Encode("path", VMScaleSetName), 682 } 683 684 const APIVersion = "2015-06-15" 685 queryParameters := map[string]interface{}{ 686 "api-version": APIVersion, 687 } 688 689 preparer := autorest.CreatePreparer( 690 autorest.AsPost(), 691 autorest.WithBaseURL(client.BaseURI), 692 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/restart", pathParameters), 693 autorest.WithQueryParameters(queryParameters)) 694 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 695} 696 697// RestartSender sends the Restart request. The method will close the 698// http.Response Body if it receives an error. 699func (client VirtualMachineScaleSetVMsClient) RestartSender(req *http.Request) (future VirtualMachineScaleSetVMsRestartFuture, err error) { 700 var resp *http.Response 701 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 702 if err != nil { 703 return 704 } 705 var azf azure.Future 706 azf, err = azure.NewFutureFromResponse(resp) 707 future.FutureAPI = &azf 708 future.Result = future.result 709 return 710} 711 712// RestartResponder handles the response to the Restart request. The method always 713// closes the http.Response Body. 714func (client VirtualMachineScaleSetVMsClient) RestartResponder(resp *http.Response) (result OperationStatusResponse, err error) { 715 err = autorest.Respond( 716 resp, 717 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 718 autorest.ByUnmarshallingJSON(&result), 719 autorest.ByClosing()) 720 result.Response = autorest.Response{Response: resp} 721 return 722} 723 724// Start starts a virtual machine in a VM scale set. 725// Parameters: 726// resourceGroupName - the name of the resource group. 727// VMScaleSetName - the name of the VM scale set. 728// instanceID - the instance ID of the virtual machine. 729func (client VirtualMachineScaleSetVMsClient) Start(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result VirtualMachineScaleSetVMsStartFuture, err error) { 730 if tracing.IsEnabled() { 731 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualMachineScaleSetVMsClient.Start") 732 defer func() { 733 sc := -1 734 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 735 sc = result.FutureAPI.Response().StatusCode 736 } 737 tracing.EndSpan(ctx, sc, err) 738 }() 739 } 740 req, err := client.StartPreparer(ctx, resourceGroupName, VMScaleSetName, instanceID) 741 if err != nil { 742 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Start", nil, "Failure preparing request") 743 return 744 } 745 746 result, err = client.StartSender(req) 747 if err != nil { 748 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsClient", "Start", nil, "Failure sending request") 749 return 750 } 751 752 return 753} 754 755// StartPreparer prepares the Start request. 756func (client VirtualMachineScaleSetVMsClient) StartPreparer(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (*http.Request, error) { 757 pathParameters := map[string]interface{}{ 758 "instanceId": autorest.Encode("path", instanceID), 759 "resourceGroupName": autorest.Encode("path", resourceGroupName), 760 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 761 "vmScaleSetName": autorest.Encode("path", VMScaleSetName), 762 } 763 764 const APIVersion = "2015-06-15" 765 queryParameters := map[string]interface{}{ 766 "api-version": APIVersion, 767 } 768 769 preparer := autorest.CreatePreparer( 770 autorest.AsPost(), 771 autorest.WithBaseURL(client.BaseURI), 772 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/start", pathParameters), 773 autorest.WithQueryParameters(queryParameters)) 774 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 775} 776 777// StartSender sends the Start request. The method will close the 778// http.Response Body if it receives an error. 779func (client VirtualMachineScaleSetVMsClient) StartSender(req *http.Request) (future VirtualMachineScaleSetVMsStartFuture, err error) { 780 var resp *http.Response 781 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 782 if err != nil { 783 return 784 } 785 var azf azure.Future 786 azf, err = azure.NewFutureFromResponse(resp) 787 future.FutureAPI = &azf 788 future.Result = future.result 789 return 790} 791 792// StartResponder handles the response to the Start request. The method always 793// closes the http.Response Body. 794func (client VirtualMachineScaleSetVMsClient) StartResponder(resp *http.Response) (result OperationStatusResponse, err error) { 795 err = autorest.Respond( 796 resp, 797 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 798 autorest.ByUnmarshallingJSON(&result), 799 autorest.ByClosing()) 800 result.Response = autorest.Response{Response: resp} 801 return 802} 803