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