1package sql 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// InstanceFailoverGroupsClient is the the Azure SQL Database management API provides a RESTful set of web services 19// that interact with Azure SQL Database services to manage your databases. The API enables you to create, retrieve, 20// update, and delete databases. 21type InstanceFailoverGroupsClient struct { 22 BaseClient 23} 24 25// NewInstanceFailoverGroupsClient creates an instance of the InstanceFailoverGroupsClient client. 26func NewInstanceFailoverGroupsClient(subscriptionID string) InstanceFailoverGroupsClient { 27 return NewInstanceFailoverGroupsClientWithBaseURI(DefaultBaseURI, subscriptionID) 28} 29 30// NewInstanceFailoverGroupsClientWithBaseURI creates an instance of the InstanceFailoverGroupsClient client using a 31// custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, 32// Azure stack). 33func NewInstanceFailoverGroupsClientWithBaseURI(baseURI string, subscriptionID string) InstanceFailoverGroupsClient { 34 return InstanceFailoverGroupsClient{NewWithBaseURI(baseURI, subscriptionID)} 35} 36 37// CreateOrUpdate creates or updates a failover group. 38// Parameters: 39// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 40// from the Azure Resource Manager API or the portal. 41// locationName - the name of the region where the resource is located. 42// failoverGroupName - the name of the failover group. 43// parameters - the failover group parameters. 44func (client InstanceFailoverGroupsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string, parameters InstanceFailoverGroup) (result InstanceFailoverGroupsCreateOrUpdateFuture, err error) { 45 if tracing.IsEnabled() { 46 ctx = tracing.StartSpan(ctx, fqdn+"/InstanceFailoverGroupsClient.CreateOrUpdate") 47 defer func() { 48 sc := -1 49 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 50 sc = result.FutureAPI.Response().StatusCode 51 } 52 tracing.EndSpan(ctx, sc, err) 53 }() 54 } 55 if err := validation.Validate([]validation.Validation{ 56 {TargetValue: parameters, 57 Constraints: []validation.Constraint{{Target: "parameters.InstanceFailoverGroupProperties", Name: validation.Null, Rule: false, 58 Chain: []validation.Constraint{{Target: "parameters.InstanceFailoverGroupProperties.ReadWriteEndpoint", Name: validation.Null, Rule: true, Chain: nil}, 59 {Target: "parameters.InstanceFailoverGroupProperties.PartnerRegions", Name: validation.Null, Rule: true, Chain: nil}, 60 {Target: "parameters.InstanceFailoverGroupProperties.ManagedInstancePairs", Name: validation.Null, Rule: true, Chain: nil}, 61 }}}}}); err != nil { 62 return result, validation.NewError("sql.InstanceFailoverGroupsClient", "CreateOrUpdate", err.Error()) 63 } 64 65 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, locationName, failoverGroupName, parameters) 66 if err != nil { 67 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "CreateOrUpdate", nil, "Failure preparing request") 68 return 69 } 70 71 result, err = client.CreateOrUpdateSender(req) 72 if err != nil { 73 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "CreateOrUpdate", nil, "Failure sending request") 74 return 75 } 76 77 return 78} 79 80// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 81func (client InstanceFailoverGroupsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string, parameters InstanceFailoverGroup) (*http.Request, error) { 82 pathParameters := map[string]interface{}{ 83 "failoverGroupName": autorest.Encode("path", failoverGroupName), 84 "locationName": autorest.Encode("path", locationName), 85 "resourceGroupName": autorest.Encode("path", resourceGroupName), 86 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 87 } 88 89 const APIVersion = "2020-11-01-preview" 90 queryParameters := map[string]interface{}{ 91 "api-version": APIVersion, 92 } 93 94 preparer := autorest.CreatePreparer( 95 autorest.AsContentType("application/json; charset=utf-8"), 96 autorest.AsPut(), 97 autorest.WithBaseURL(client.BaseURI), 98 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/instanceFailoverGroups/{failoverGroupName}", pathParameters), 99 autorest.WithJSON(parameters), 100 autorest.WithQueryParameters(queryParameters)) 101 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 102} 103 104// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 105// http.Response Body if it receives an error. 106func (client InstanceFailoverGroupsClient) CreateOrUpdateSender(req *http.Request) (future InstanceFailoverGroupsCreateOrUpdateFuture, err error) { 107 var resp *http.Response 108 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 109 if err != nil { 110 return 111 } 112 var azf azure.Future 113 azf, err = azure.NewFutureFromResponse(resp) 114 future.FutureAPI = &azf 115 future.Result = future.result 116 return 117} 118 119// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 120// closes the http.Response Body. 121func (client InstanceFailoverGroupsClient) CreateOrUpdateResponder(resp *http.Response) (result InstanceFailoverGroup, err error) { 122 err = autorest.Respond( 123 resp, 124 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), 125 autorest.ByUnmarshallingJSON(&result), 126 autorest.ByClosing()) 127 result.Response = autorest.Response{Response: resp} 128 return 129} 130 131// Delete deletes a failover group. 132// Parameters: 133// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 134// from the Azure Resource Manager API or the portal. 135// locationName - the name of the region where the resource is located. 136// failoverGroupName - the name of the failover group. 137func (client InstanceFailoverGroupsClient) Delete(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string) (result InstanceFailoverGroupsDeleteFuture, err error) { 138 if tracing.IsEnabled() { 139 ctx = tracing.StartSpan(ctx, fqdn+"/InstanceFailoverGroupsClient.Delete") 140 defer func() { 141 sc := -1 142 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 143 sc = result.FutureAPI.Response().StatusCode 144 } 145 tracing.EndSpan(ctx, sc, err) 146 }() 147 } 148 req, err := client.DeletePreparer(ctx, resourceGroupName, locationName, failoverGroupName) 149 if err != nil { 150 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "Delete", nil, "Failure preparing request") 151 return 152 } 153 154 result, err = client.DeleteSender(req) 155 if err != nil { 156 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "Delete", nil, "Failure sending request") 157 return 158 } 159 160 return 161} 162 163// DeletePreparer prepares the Delete request. 164func (client InstanceFailoverGroupsClient) DeletePreparer(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string) (*http.Request, error) { 165 pathParameters := map[string]interface{}{ 166 "failoverGroupName": autorest.Encode("path", failoverGroupName), 167 "locationName": autorest.Encode("path", locationName), 168 "resourceGroupName": autorest.Encode("path", resourceGroupName), 169 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 170 } 171 172 const APIVersion = "2020-11-01-preview" 173 queryParameters := map[string]interface{}{ 174 "api-version": APIVersion, 175 } 176 177 preparer := autorest.CreatePreparer( 178 autorest.AsDelete(), 179 autorest.WithBaseURL(client.BaseURI), 180 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/instanceFailoverGroups/{failoverGroupName}", pathParameters), 181 autorest.WithQueryParameters(queryParameters)) 182 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 183} 184 185// DeleteSender sends the Delete request. The method will close the 186// http.Response Body if it receives an error. 187func (client InstanceFailoverGroupsClient) DeleteSender(req *http.Request) (future InstanceFailoverGroupsDeleteFuture, err error) { 188 var resp *http.Response 189 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 190 if err != nil { 191 return 192 } 193 var azf azure.Future 194 azf, err = azure.NewFutureFromResponse(resp) 195 future.FutureAPI = &azf 196 future.Result = future.result 197 return 198} 199 200// DeleteResponder handles the response to the Delete request. The method always 201// closes the http.Response Body. 202func (client InstanceFailoverGroupsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 203 err = autorest.Respond( 204 resp, 205 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 206 autorest.ByClosing()) 207 result.Response = resp 208 return 209} 210 211// Failover fails over from the current primary managed instance to this managed instance. 212// Parameters: 213// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 214// from the Azure Resource Manager API or the portal. 215// locationName - the name of the region where the resource is located. 216// failoverGroupName - the name of the failover group. 217func (client InstanceFailoverGroupsClient) Failover(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string) (result InstanceFailoverGroupsFailoverFuture, err error) { 218 if tracing.IsEnabled() { 219 ctx = tracing.StartSpan(ctx, fqdn+"/InstanceFailoverGroupsClient.Failover") 220 defer func() { 221 sc := -1 222 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 223 sc = result.FutureAPI.Response().StatusCode 224 } 225 tracing.EndSpan(ctx, sc, err) 226 }() 227 } 228 req, err := client.FailoverPreparer(ctx, resourceGroupName, locationName, failoverGroupName) 229 if err != nil { 230 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "Failover", nil, "Failure preparing request") 231 return 232 } 233 234 result, err = client.FailoverSender(req) 235 if err != nil { 236 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "Failover", nil, "Failure sending request") 237 return 238 } 239 240 return 241} 242 243// FailoverPreparer prepares the Failover request. 244func (client InstanceFailoverGroupsClient) FailoverPreparer(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string) (*http.Request, error) { 245 pathParameters := map[string]interface{}{ 246 "failoverGroupName": autorest.Encode("path", failoverGroupName), 247 "locationName": autorest.Encode("path", locationName), 248 "resourceGroupName": autorest.Encode("path", resourceGroupName), 249 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 250 } 251 252 const APIVersion = "2020-11-01-preview" 253 queryParameters := map[string]interface{}{ 254 "api-version": APIVersion, 255 } 256 257 preparer := autorest.CreatePreparer( 258 autorest.AsPost(), 259 autorest.WithBaseURL(client.BaseURI), 260 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/instanceFailoverGroups/{failoverGroupName}/failover", pathParameters), 261 autorest.WithQueryParameters(queryParameters)) 262 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 263} 264 265// FailoverSender sends the Failover request. The method will close the 266// http.Response Body if it receives an error. 267func (client InstanceFailoverGroupsClient) FailoverSender(req *http.Request) (future InstanceFailoverGroupsFailoverFuture, err error) { 268 var resp *http.Response 269 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 270 if err != nil { 271 return 272 } 273 var azf azure.Future 274 azf, err = azure.NewFutureFromResponse(resp) 275 future.FutureAPI = &azf 276 future.Result = future.result 277 return 278} 279 280// FailoverResponder handles the response to the Failover request. The method always 281// closes the http.Response Body. 282func (client InstanceFailoverGroupsClient) FailoverResponder(resp *http.Response) (result InstanceFailoverGroup, err error) { 283 err = autorest.Respond( 284 resp, 285 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 286 autorest.ByUnmarshallingJSON(&result), 287 autorest.ByClosing()) 288 result.Response = autorest.Response{Response: resp} 289 return 290} 291 292// ForceFailoverAllowDataLoss fails over from the current primary managed instance to this managed instance. This 293// operation might result in data loss. 294// Parameters: 295// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 296// from the Azure Resource Manager API or the portal. 297// locationName - the name of the region where the resource is located. 298// failoverGroupName - the name of the failover group. 299func (client InstanceFailoverGroupsClient) ForceFailoverAllowDataLoss(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string) (result InstanceFailoverGroupsForceFailoverAllowDataLossFuture, err error) { 300 if tracing.IsEnabled() { 301 ctx = tracing.StartSpan(ctx, fqdn+"/InstanceFailoverGroupsClient.ForceFailoverAllowDataLoss") 302 defer func() { 303 sc := -1 304 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 305 sc = result.FutureAPI.Response().StatusCode 306 } 307 tracing.EndSpan(ctx, sc, err) 308 }() 309 } 310 req, err := client.ForceFailoverAllowDataLossPreparer(ctx, resourceGroupName, locationName, failoverGroupName) 311 if err != nil { 312 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "ForceFailoverAllowDataLoss", nil, "Failure preparing request") 313 return 314 } 315 316 result, err = client.ForceFailoverAllowDataLossSender(req) 317 if err != nil { 318 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "ForceFailoverAllowDataLoss", nil, "Failure sending request") 319 return 320 } 321 322 return 323} 324 325// ForceFailoverAllowDataLossPreparer prepares the ForceFailoverAllowDataLoss request. 326func (client InstanceFailoverGroupsClient) ForceFailoverAllowDataLossPreparer(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string) (*http.Request, error) { 327 pathParameters := map[string]interface{}{ 328 "failoverGroupName": autorest.Encode("path", failoverGroupName), 329 "locationName": autorest.Encode("path", locationName), 330 "resourceGroupName": autorest.Encode("path", resourceGroupName), 331 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 332 } 333 334 const APIVersion = "2020-11-01-preview" 335 queryParameters := map[string]interface{}{ 336 "api-version": APIVersion, 337 } 338 339 preparer := autorest.CreatePreparer( 340 autorest.AsPost(), 341 autorest.WithBaseURL(client.BaseURI), 342 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/instanceFailoverGroups/{failoverGroupName}/forceFailoverAllowDataLoss", pathParameters), 343 autorest.WithQueryParameters(queryParameters)) 344 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 345} 346 347// ForceFailoverAllowDataLossSender sends the ForceFailoverAllowDataLoss request. The method will close the 348// http.Response Body if it receives an error. 349func (client InstanceFailoverGroupsClient) ForceFailoverAllowDataLossSender(req *http.Request) (future InstanceFailoverGroupsForceFailoverAllowDataLossFuture, err error) { 350 var resp *http.Response 351 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 352 if err != nil { 353 return 354 } 355 var azf azure.Future 356 azf, err = azure.NewFutureFromResponse(resp) 357 future.FutureAPI = &azf 358 future.Result = future.result 359 return 360} 361 362// ForceFailoverAllowDataLossResponder handles the response to the ForceFailoverAllowDataLoss request. The method always 363// closes the http.Response Body. 364func (client InstanceFailoverGroupsClient) ForceFailoverAllowDataLossResponder(resp *http.Response) (result InstanceFailoverGroup, err error) { 365 err = autorest.Respond( 366 resp, 367 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 368 autorest.ByUnmarshallingJSON(&result), 369 autorest.ByClosing()) 370 result.Response = autorest.Response{Response: resp} 371 return 372} 373 374// Get gets a failover group. 375// Parameters: 376// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 377// from the Azure Resource Manager API or the portal. 378// locationName - the name of the region where the resource is located. 379// failoverGroupName - the name of the failover group. 380func (client InstanceFailoverGroupsClient) Get(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string) (result InstanceFailoverGroup, err error) { 381 if tracing.IsEnabled() { 382 ctx = tracing.StartSpan(ctx, fqdn+"/InstanceFailoverGroupsClient.Get") 383 defer func() { 384 sc := -1 385 if result.Response.Response != nil { 386 sc = result.Response.Response.StatusCode 387 } 388 tracing.EndSpan(ctx, sc, err) 389 }() 390 } 391 req, err := client.GetPreparer(ctx, resourceGroupName, locationName, failoverGroupName) 392 if err != nil { 393 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "Get", nil, "Failure preparing request") 394 return 395 } 396 397 resp, err := client.GetSender(req) 398 if err != nil { 399 result.Response = autorest.Response{Response: resp} 400 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "Get", resp, "Failure sending request") 401 return 402 } 403 404 result, err = client.GetResponder(resp) 405 if err != nil { 406 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "Get", resp, "Failure responding to request") 407 return 408 } 409 410 return 411} 412 413// GetPreparer prepares the Get request. 414func (client InstanceFailoverGroupsClient) GetPreparer(ctx context.Context, resourceGroupName string, locationName string, failoverGroupName string) (*http.Request, error) { 415 pathParameters := map[string]interface{}{ 416 "failoverGroupName": autorest.Encode("path", failoverGroupName), 417 "locationName": autorest.Encode("path", locationName), 418 "resourceGroupName": autorest.Encode("path", resourceGroupName), 419 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 420 } 421 422 const APIVersion = "2020-11-01-preview" 423 queryParameters := map[string]interface{}{ 424 "api-version": APIVersion, 425 } 426 427 preparer := autorest.CreatePreparer( 428 autorest.AsGet(), 429 autorest.WithBaseURL(client.BaseURI), 430 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/instanceFailoverGroups/{failoverGroupName}", pathParameters), 431 autorest.WithQueryParameters(queryParameters)) 432 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 433} 434 435// GetSender sends the Get request. The method will close the 436// http.Response Body if it receives an error. 437func (client InstanceFailoverGroupsClient) GetSender(req *http.Request) (*http.Response, error) { 438 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 439} 440 441// GetResponder handles the response to the Get request. The method always 442// closes the http.Response Body. 443func (client InstanceFailoverGroupsClient) GetResponder(resp *http.Response) (result InstanceFailoverGroup, err error) { 444 err = autorest.Respond( 445 resp, 446 azure.WithErrorUnlessStatusCode(http.StatusOK), 447 autorest.ByUnmarshallingJSON(&result), 448 autorest.ByClosing()) 449 result.Response = autorest.Response{Response: resp} 450 return 451} 452 453// ListByLocation lists the failover groups in a location. 454// Parameters: 455// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 456// from the Azure Resource Manager API or the portal. 457// locationName - the name of the region where the resource is located. 458func (client InstanceFailoverGroupsClient) ListByLocation(ctx context.Context, resourceGroupName string, locationName string) (result InstanceFailoverGroupListResultPage, err error) { 459 if tracing.IsEnabled() { 460 ctx = tracing.StartSpan(ctx, fqdn+"/InstanceFailoverGroupsClient.ListByLocation") 461 defer func() { 462 sc := -1 463 if result.ifglr.Response.Response != nil { 464 sc = result.ifglr.Response.Response.StatusCode 465 } 466 tracing.EndSpan(ctx, sc, err) 467 }() 468 } 469 result.fn = client.listByLocationNextResults 470 req, err := client.ListByLocationPreparer(ctx, resourceGroupName, locationName) 471 if err != nil { 472 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "ListByLocation", nil, "Failure preparing request") 473 return 474 } 475 476 resp, err := client.ListByLocationSender(req) 477 if err != nil { 478 result.ifglr.Response = autorest.Response{Response: resp} 479 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "ListByLocation", resp, "Failure sending request") 480 return 481 } 482 483 result.ifglr, err = client.ListByLocationResponder(resp) 484 if err != nil { 485 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "ListByLocation", resp, "Failure responding to request") 486 return 487 } 488 if result.ifglr.hasNextLink() && result.ifglr.IsEmpty() { 489 err = result.NextWithContext(ctx) 490 return 491 } 492 493 return 494} 495 496// ListByLocationPreparer prepares the ListByLocation request. 497func (client InstanceFailoverGroupsClient) ListByLocationPreparer(ctx context.Context, resourceGroupName string, locationName string) (*http.Request, error) { 498 pathParameters := map[string]interface{}{ 499 "locationName": autorest.Encode("path", locationName), 500 "resourceGroupName": autorest.Encode("path", resourceGroupName), 501 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 502 } 503 504 const APIVersion = "2020-11-01-preview" 505 queryParameters := map[string]interface{}{ 506 "api-version": APIVersion, 507 } 508 509 preparer := autorest.CreatePreparer( 510 autorest.AsGet(), 511 autorest.WithBaseURL(client.BaseURI), 512 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/instanceFailoverGroups", pathParameters), 513 autorest.WithQueryParameters(queryParameters)) 514 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 515} 516 517// ListByLocationSender sends the ListByLocation request. The method will close the 518// http.Response Body if it receives an error. 519func (client InstanceFailoverGroupsClient) ListByLocationSender(req *http.Request) (*http.Response, error) { 520 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 521} 522 523// ListByLocationResponder handles the response to the ListByLocation request. The method always 524// closes the http.Response Body. 525func (client InstanceFailoverGroupsClient) ListByLocationResponder(resp *http.Response) (result InstanceFailoverGroupListResult, err error) { 526 err = autorest.Respond( 527 resp, 528 azure.WithErrorUnlessStatusCode(http.StatusOK), 529 autorest.ByUnmarshallingJSON(&result), 530 autorest.ByClosing()) 531 result.Response = autorest.Response{Response: resp} 532 return 533} 534 535// listByLocationNextResults retrieves the next set of results, if any. 536func (client InstanceFailoverGroupsClient) listByLocationNextResults(ctx context.Context, lastResults InstanceFailoverGroupListResult) (result InstanceFailoverGroupListResult, err error) { 537 req, err := lastResults.instanceFailoverGroupListResultPreparer(ctx) 538 if err != nil { 539 return result, autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "listByLocationNextResults", nil, "Failure preparing next results request") 540 } 541 if req == nil { 542 return 543 } 544 resp, err := client.ListByLocationSender(req) 545 if err != nil { 546 result.Response = autorest.Response{Response: resp} 547 return result, autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "listByLocationNextResults", resp, "Failure sending next results request") 548 } 549 result, err = client.ListByLocationResponder(resp) 550 if err != nil { 551 err = autorest.NewErrorWithError(err, "sql.InstanceFailoverGroupsClient", "listByLocationNextResults", resp, "Failure responding to next results request") 552 } 553 return 554} 555 556// ListByLocationComplete enumerates all values, automatically crossing page boundaries as required. 557func (client InstanceFailoverGroupsClient) ListByLocationComplete(ctx context.Context, resourceGroupName string, locationName string) (result InstanceFailoverGroupListResultIterator, err error) { 558 if tracing.IsEnabled() { 559 ctx = tracing.StartSpan(ctx, fqdn+"/InstanceFailoverGroupsClient.ListByLocation") 560 defer func() { 561 sc := -1 562 if result.Response().Response.Response != nil { 563 sc = result.page.Response().Response.Response.StatusCode 564 } 565 tracing.EndSpan(ctx, sc, err) 566 }() 567 } 568 result.page, err = client.ListByLocation(ctx, resourceGroupName, locationName) 569 return 570} 571