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