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// ManagedInstancesClient is the the Azure SQL Database management API provides a RESTful set of web services that 19// interact with Azure SQL Database services to manage your databases. The API enables you to create, retrieve, update, 20// and delete databases. 21type ManagedInstancesClient struct { 22 BaseClient 23} 24 25// NewManagedInstancesClient creates an instance of the ManagedInstancesClient client. 26func NewManagedInstancesClient(subscriptionID string) ManagedInstancesClient { 27 return NewManagedInstancesClientWithBaseURI(DefaultBaseURI, subscriptionID) 28} 29 30// NewManagedInstancesClientWithBaseURI creates an instance of the ManagedInstancesClient client using a custom 31// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure 32// stack). 33func NewManagedInstancesClientWithBaseURI(baseURI string, subscriptionID string) ManagedInstancesClient { 34 return ManagedInstancesClient{NewWithBaseURI(baseURI, subscriptionID)} 35} 36 37// CreateOrUpdate creates or updates a managed instance. 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// managedInstanceName - the name of the managed instance. 42// parameters - the requested managed instance resource state. 43func (client ManagedInstancesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, managedInstanceName string, parameters ManagedInstance) (result ManagedInstancesCreateOrUpdateFuture, err error) { 44 if tracing.IsEnabled() { 45 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.CreateOrUpdate") 46 defer func() { 47 sc := -1 48 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 49 sc = result.FutureAPI.Response().StatusCode 50 } 51 tracing.EndSpan(ctx, sc, err) 52 }() 53 } 54 if err := validation.Validate([]validation.Validation{ 55 {TargetValue: parameters, 56 Constraints: []validation.Constraint{{Target: "parameters.Sku", Name: validation.Null, Rule: false, 57 Chain: []validation.Constraint{{Target: "parameters.Sku.Name", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { 58 return result, validation.NewError("sql.ManagedInstancesClient", "CreateOrUpdate", err.Error()) 59 } 60 61 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, managedInstanceName, parameters) 62 if err != nil { 63 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "CreateOrUpdate", nil, "Failure preparing request") 64 return 65 } 66 67 result, err = client.CreateOrUpdateSender(req) 68 if err != nil { 69 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "CreateOrUpdate", nil, "Failure sending request") 70 return 71 } 72 73 return 74} 75 76// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 77func (client ManagedInstancesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, managedInstanceName string, parameters ManagedInstance) (*http.Request, error) { 78 pathParameters := map[string]interface{}{ 79 "managedInstanceName": autorest.Encode("path", managedInstanceName), 80 "resourceGroupName": autorest.Encode("path", resourceGroupName), 81 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 82 } 83 84 const APIVersion = "2020-11-01-preview" 85 queryParameters := map[string]interface{}{ 86 "api-version": APIVersion, 87 } 88 89 preparer := autorest.CreatePreparer( 90 autorest.AsContentType("application/json; charset=utf-8"), 91 autorest.AsPut(), 92 autorest.WithBaseURL(client.BaseURI), 93 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}", pathParameters), 94 autorest.WithJSON(parameters), 95 autorest.WithQueryParameters(queryParameters)) 96 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 97} 98 99// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 100// http.Response Body if it receives an error. 101func (client ManagedInstancesClient) CreateOrUpdateSender(req *http.Request) (future ManagedInstancesCreateOrUpdateFuture, err error) { 102 var resp *http.Response 103 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 104 if err != nil { 105 return 106 } 107 var azf azure.Future 108 azf, err = azure.NewFutureFromResponse(resp) 109 future.FutureAPI = &azf 110 future.Result = future.result 111 return 112} 113 114// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 115// closes the http.Response Body. 116func (client ManagedInstancesClient) CreateOrUpdateResponder(resp *http.Response) (result ManagedInstance, err error) { 117 err = autorest.Respond( 118 resp, 119 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), 120 autorest.ByUnmarshallingJSON(&result), 121 autorest.ByClosing()) 122 result.Response = autorest.Response{Response: resp} 123 return 124} 125 126// Delete deletes a managed instance. 127// Parameters: 128// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 129// from the Azure Resource Manager API or the portal. 130// managedInstanceName - the name of the managed instance. 131func (client ManagedInstancesClient) Delete(ctx context.Context, resourceGroupName string, managedInstanceName string) (result ManagedInstancesDeleteFuture, err error) { 132 if tracing.IsEnabled() { 133 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.Delete") 134 defer func() { 135 sc := -1 136 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 137 sc = result.FutureAPI.Response().StatusCode 138 } 139 tracing.EndSpan(ctx, sc, err) 140 }() 141 } 142 req, err := client.DeletePreparer(ctx, resourceGroupName, managedInstanceName) 143 if err != nil { 144 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "Delete", nil, "Failure preparing request") 145 return 146 } 147 148 result, err = client.DeleteSender(req) 149 if err != nil { 150 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "Delete", nil, "Failure sending request") 151 return 152 } 153 154 return 155} 156 157// DeletePreparer prepares the Delete request. 158func (client ManagedInstancesClient) DeletePreparer(ctx context.Context, resourceGroupName string, managedInstanceName string) (*http.Request, error) { 159 pathParameters := map[string]interface{}{ 160 "managedInstanceName": autorest.Encode("path", managedInstanceName), 161 "resourceGroupName": autorest.Encode("path", resourceGroupName), 162 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 163 } 164 165 const APIVersion = "2020-11-01-preview" 166 queryParameters := map[string]interface{}{ 167 "api-version": APIVersion, 168 } 169 170 preparer := autorest.CreatePreparer( 171 autorest.AsDelete(), 172 autorest.WithBaseURL(client.BaseURI), 173 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}", pathParameters), 174 autorest.WithQueryParameters(queryParameters)) 175 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 176} 177 178// DeleteSender sends the Delete request. The method will close the 179// http.Response Body if it receives an error. 180func (client ManagedInstancesClient) DeleteSender(req *http.Request) (future ManagedInstancesDeleteFuture, err error) { 181 var resp *http.Response 182 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 183 if err != nil { 184 return 185 } 186 var azf azure.Future 187 azf, err = azure.NewFutureFromResponse(resp) 188 future.FutureAPI = &azf 189 future.Result = future.result 190 return 191} 192 193// DeleteResponder handles the response to the Delete request. The method always 194// closes the http.Response Body. 195func (client ManagedInstancesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 196 err = autorest.Respond( 197 resp, 198 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 199 autorest.ByClosing()) 200 result.Response = resp 201 return 202} 203 204// Failover failovers a managed instance. 205// Parameters: 206// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 207// from the Azure Resource Manager API or the portal. 208// managedInstanceName - the name of the managed instance to failover. 209// replicaType - the type of replica to be failed over. 210func (client ManagedInstancesClient) Failover(ctx context.Context, resourceGroupName string, managedInstanceName string, replicaType ReplicaType) (result ManagedInstancesFailoverFuture, err error) { 211 if tracing.IsEnabled() { 212 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.Failover") 213 defer func() { 214 sc := -1 215 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 216 sc = result.FutureAPI.Response().StatusCode 217 } 218 tracing.EndSpan(ctx, sc, err) 219 }() 220 } 221 req, err := client.FailoverPreparer(ctx, resourceGroupName, managedInstanceName, replicaType) 222 if err != nil { 223 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "Failover", nil, "Failure preparing request") 224 return 225 } 226 227 result, err = client.FailoverSender(req) 228 if err != nil { 229 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "Failover", nil, "Failure sending request") 230 return 231 } 232 233 return 234} 235 236// FailoverPreparer prepares the Failover request. 237func (client ManagedInstancesClient) FailoverPreparer(ctx context.Context, resourceGroupName string, managedInstanceName string, replicaType ReplicaType) (*http.Request, error) { 238 pathParameters := map[string]interface{}{ 239 "managedInstanceName": autorest.Encode("path", managedInstanceName), 240 "resourceGroupName": autorest.Encode("path", resourceGroupName), 241 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 242 } 243 244 const APIVersion = "2020-11-01-preview" 245 queryParameters := map[string]interface{}{ 246 "api-version": APIVersion, 247 } 248 if len(string(replicaType)) > 0 { 249 queryParameters["replicaType"] = autorest.Encode("query", replicaType) 250 } 251 252 preparer := autorest.CreatePreparer( 253 autorest.AsPost(), 254 autorest.WithBaseURL(client.BaseURI), 255 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/failover", pathParameters), 256 autorest.WithQueryParameters(queryParameters)) 257 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 258} 259 260// FailoverSender sends the Failover request. The method will close the 261// http.Response Body if it receives an error. 262func (client ManagedInstancesClient) FailoverSender(req *http.Request) (future ManagedInstancesFailoverFuture, err error) { 263 var resp *http.Response 264 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 265 if err != nil { 266 return 267 } 268 var azf azure.Future 269 azf, err = azure.NewFutureFromResponse(resp) 270 future.FutureAPI = &azf 271 future.Result = future.result 272 return 273} 274 275// FailoverResponder handles the response to the Failover request. The method always 276// closes the http.Response Body. 277func (client ManagedInstancesClient) FailoverResponder(resp *http.Response) (result autorest.Response, err error) { 278 err = autorest.Respond( 279 resp, 280 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 281 autorest.ByClosing()) 282 result.Response = resp 283 return 284} 285 286// Get gets a managed instance. 287// Parameters: 288// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 289// from the Azure Resource Manager API or the portal. 290// managedInstanceName - the name of the managed instance. 291// expand - the child resources to include in the response. 292func (client ManagedInstancesClient) Get(ctx context.Context, resourceGroupName string, managedInstanceName string, expand string) (result ManagedInstance, err error) { 293 if tracing.IsEnabled() { 294 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.Get") 295 defer func() { 296 sc := -1 297 if result.Response.Response != nil { 298 sc = result.Response.Response.StatusCode 299 } 300 tracing.EndSpan(ctx, sc, err) 301 }() 302 } 303 req, err := client.GetPreparer(ctx, resourceGroupName, managedInstanceName, expand) 304 if err != nil { 305 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "Get", nil, "Failure preparing request") 306 return 307 } 308 309 resp, err := client.GetSender(req) 310 if err != nil { 311 result.Response = autorest.Response{Response: resp} 312 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "Get", resp, "Failure sending request") 313 return 314 } 315 316 result, err = client.GetResponder(resp) 317 if err != nil { 318 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "Get", resp, "Failure responding to request") 319 return 320 } 321 322 return 323} 324 325// GetPreparer prepares the Get request. 326func (client ManagedInstancesClient) GetPreparer(ctx context.Context, resourceGroupName string, managedInstanceName string, expand string) (*http.Request, error) { 327 pathParameters := map[string]interface{}{ 328 "managedInstanceName": autorest.Encode("path", managedInstanceName), 329 "resourceGroupName": autorest.Encode("path", resourceGroupName), 330 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 331 } 332 333 const APIVersion = "2020-11-01-preview" 334 queryParameters := map[string]interface{}{ 335 "api-version": APIVersion, 336 } 337 if len(expand) > 0 { 338 queryParameters["$expand"] = autorest.Encode("query", expand) 339 } 340 341 preparer := autorest.CreatePreparer( 342 autorest.AsGet(), 343 autorest.WithBaseURL(client.BaseURI), 344 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}", pathParameters), 345 autorest.WithQueryParameters(queryParameters)) 346 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 347} 348 349// GetSender sends the Get request. The method will close the 350// http.Response Body if it receives an error. 351func (client ManagedInstancesClient) GetSender(req *http.Request) (*http.Response, error) { 352 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 353} 354 355// GetResponder handles the response to the Get request. The method always 356// closes the http.Response Body. 357func (client ManagedInstancesClient) GetResponder(resp *http.Response) (result ManagedInstance, err error) { 358 err = autorest.Respond( 359 resp, 360 azure.WithErrorUnlessStatusCode(http.StatusOK), 361 autorest.ByUnmarshallingJSON(&result), 362 autorest.ByClosing()) 363 result.Response = autorest.Response{Response: resp} 364 return 365} 366 367// List gets a list of all managed instances in the subscription. 368// Parameters: 369// expand - the child resources to include in the response. 370func (client ManagedInstancesClient) List(ctx context.Context, expand string) (result ManagedInstanceListResultPage, err error) { 371 if tracing.IsEnabled() { 372 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.List") 373 defer func() { 374 sc := -1 375 if result.milr.Response.Response != nil { 376 sc = result.milr.Response.Response.StatusCode 377 } 378 tracing.EndSpan(ctx, sc, err) 379 }() 380 } 381 result.fn = client.listNextResults 382 req, err := client.ListPreparer(ctx, expand) 383 if err != nil { 384 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "List", nil, "Failure preparing request") 385 return 386 } 387 388 resp, err := client.ListSender(req) 389 if err != nil { 390 result.milr.Response = autorest.Response{Response: resp} 391 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "List", resp, "Failure sending request") 392 return 393 } 394 395 result.milr, err = client.ListResponder(resp) 396 if err != nil { 397 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "List", resp, "Failure responding to request") 398 return 399 } 400 if result.milr.hasNextLink() && result.milr.IsEmpty() { 401 err = result.NextWithContext(ctx) 402 return 403 } 404 405 return 406} 407 408// ListPreparer prepares the List request. 409func (client ManagedInstancesClient) ListPreparer(ctx context.Context, expand string) (*http.Request, error) { 410 pathParameters := map[string]interface{}{ 411 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 412 } 413 414 const APIVersion = "2020-11-01-preview" 415 queryParameters := map[string]interface{}{ 416 "api-version": APIVersion, 417 } 418 if len(expand) > 0 { 419 queryParameters["$expand"] = autorest.Encode("query", expand) 420 } 421 422 preparer := autorest.CreatePreparer( 423 autorest.AsGet(), 424 autorest.WithBaseURL(client.BaseURI), 425 autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Sql/managedInstances", pathParameters), 426 autorest.WithQueryParameters(queryParameters)) 427 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 428} 429 430// ListSender sends the List request. The method will close the 431// http.Response Body if it receives an error. 432func (client ManagedInstancesClient) ListSender(req *http.Request) (*http.Response, error) { 433 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 434} 435 436// ListResponder handles the response to the List request. The method always 437// closes the http.Response Body. 438func (client ManagedInstancesClient) ListResponder(resp *http.Response) (result ManagedInstanceListResult, err error) { 439 err = autorest.Respond( 440 resp, 441 azure.WithErrorUnlessStatusCode(http.StatusOK), 442 autorest.ByUnmarshallingJSON(&result), 443 autorest.ByClosing()) 444 result.Response = autorest.Response{Response: resp} 445 return 446} 447 448// listNextResults retrieves the next set of results, if any. 449func (client ManagedInstancesClient) listNextResults(ctx context.Context, lastResults ManagedInstanceListResult) (result ManagedInstanceListResult, err error) { 450 req, err := lastResults.managedInstanceListResultPreparer(ctx) 451 if err != nil { 452 return result, autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listNextResults", nil, "Failure preparing next results request") 453 } 454 if req == nil { 455 return 456 } 457 resp, err := client.ListSender(req) 458 if err != nil { 459 result.Response = autorest.Response{Response: resp} 460 return result, autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listNextResults", resp, "Failure sending next results request") 461 } 462 result, err = client.ListResponder(resp) 463 if err != nil { 464 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listNextResults", resp, "Failure responding to next results request") 465 } 466 return 467} 468 469// ListComplete enumerates all values, automatically crossing page boundaries as required. 470func (client ManagedInstancesClient) ListComplete(ctx context.Context, expand string) (result ManagedInstanceListResultIterator, err error) { 471 if tracing.IsEnabled() { 472 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.List") 473 defer func() { 474 sc := -1 475 if result.Response().Response.Response != nil { 476 sc = result.page.Response().Response.Response.StatusCode 477 } 478 tracing.EndSpan(ctx, sc, err) 479 }() 480 } 481 result.page, err = client.List(ctx, expand) 482 return 483} 484 485// ListByInstancePool gets a list of all managed instances in an instance pool. 486// Parameters: 487// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 488// from the Azure Resource Manager API or the portal. 489// instancePoolName - the instance pool name. 490// expand - the child resources to include in the response. 491func (client ManagedInstancesClient) ListByInstancePool(ctx context.Context, resourceGroupName string, instancePoolName string, expand string) (result ManagedInstanceListResultPage, err error) { 492 if tracing.IsEnabled() { 493 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.ListByInstancePool") 494 defer func() { 495 sc := -1 496 if result.milr.Response.Response != nil { 497 sc = result.milr.Response.Response.StatusCode 498 } 499 tracing.EndSpan(ctx, sc, err) 500 }() 501 } 502 result.fn = client.listByInstancePoolNextResults 503 req, err := client.ListByInstancePoolPreparer(ctx, resourceGroupName, instancePoolName, expand) 504 if err != nil { 505 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "ListByInstancePool", nil, "Failure preparing request") 506 return 507 } 508 509 resp, err := client.ListByInstancePoolSender(req) 510 if err != nil { 511 result.milr.Response = autorest.Response{Response: resp} 512 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "ListByInstancePool", resp, "Failure sending request") 513 return 514 } 515 516 result.milr, err = client.ListByInstancePoolResponder(resp) 517 if err != nil { 518 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "ListByInstancePool", resp, "Failure responding to request") 519 return 520 } 521 if result.milr.hasNextLink() && result.milr.IsEmpty() { 522 err = result.NextWithContext(ctx) 523 return 524 } 525 526 return 527} 528 529// ListByInstancePoolPreparer prepares the ListByInstancePool request. 530func (client ManagedInstancesClient) ListByInstancePoolPreparer(ctx context.Context, resourceGroupName string, instancePoolName string, expand string) (*http.Request, error) { 531 pathParameters := map[string]interface{}{ 532 "instancePoolName": autorest.Encode("path", instancePoolName), 533 "resourceGroupName": autorest.Encode("path", resourceGroupName), 534 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 535 } 536 537 const APIVersion = "2020-11-01-preview" 538 queryParameters := map[string]interface{}{ 539 "api-version": APIVersion, 540 } 541 if len(expand) > 0 { 542 queryParameters["$expand"] = autorest.Encode("query", expand) 543 } 544 545 preparer := autorest.CreatePreparer( 546 autorest.AsGet(), 547 autorest.WithBaseURL(client.BaseURI), 548 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/instancePools/{instancePoolName}/managedInstances", pathParameters), 549 autorest.WithQueryParameters(queryParameters)) 550 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 551} 552 553// ListByInstancePoolSender sends the ListByInstancePool request. The method will close the 554// http.Response Body if it receives an error. 555func (client ManagedInstancesClient) ListByInstancePoolSender(req *http.Request) (*http.Response, error) { 556 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 557} 558 559// ListByInstancePoolResponder handles the response to the ListByInstancePool request. The method always 560// closes the http.Response Body. 561func (client ManagedInstancesClient) ListByInstancePoolResponder(resp *http.Response) (result ManagedInstanceListResult, err error) { 562 err = autorest.Respond( 563 resp, 564 azure.WithErrorUnlessStatusCode(http.StatusOK), 565 autorest.ByUnmarshallingJSON(&result), 566 autorest.ByClosing()) 567 result.Response = autorest.Response{Response: resp} 568 return 569} 570 571// listByInstancePoolNextResults retrieves the next set of results, if any. 572func (client ManagedInstancesClient) listByInstancePoolNextResults(ctx context.Context, lastResults ManagedInstanceListResult) (result ManagedInstanceListResult, err error) { 573 req, err := lastResults.managedInstanceListResultPreparer(ctx) 574 if err != nil { 575 return result, autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listByInstancePoolNextResults", nil, "Failure preparing next results request") 576 } 577 if req == nil { 578 return 579 } 580 resp, err := client.ListByInstancePoolSender(req) 581 if err != nil { 582 result.Response = autorest.Response{Response: resp} 583 return result, autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listByInstancePoolNextResults", resp, "Failure sending next results request") 584 } 585 result, err = client.ListByInstancePoolResponder(resp) 586 if err != nil { 587 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listByInstancePoolNextResults", resp, "Failure responding to next results request") 588 } 589 return 590} 591 592// ListByInstancePoolComplete enumerates all values, automatically crossing page boundaries as required. 593func (client ManagedInstancesClient) ListByInstancePoolComplete(ctx context.Context, resourceGroupName string, instancePoolName string, expand string) (result ManagedInstanceListResultIterator, err error) { 594 if tracing.IsEnabled() { 595 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.ListByInstancePool") 596 defer func() { 597 sc := -1 598 if result.Response().Response.Response != nil { 599 sc = result.page.Response().Response.Response.StatusCode 600 } 601 tracing.EndSpan(ctx, sc, err) 602 }() 603 } 604 result.page, err = client.ListByInstancePool(ctx, resourceGroupName, instancePoolName, expand) 605 return 606} 607 608// ListByManagedInstance get top resource consuming queries of a managed instance. 609// Parameters: 610// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 611// from the Azure Resource Manager API or the portal. 612// managedInstanceName - the name of the managed instance. 613// numberOfQueries - how many 'top queries' to return. Default is 5. 614// databases - comma separated list of databases to be included into search. All DB's are included if this 615// parameter is not specified. 616// startTime - start time for observed period. 617// endTime - end time for observed period. 618// interval - the time step to be used to summarize the metric values. Default value is PT1H 619// aggregationFunction - aggregation function to be used, default value is 'sum' 620// observationMetric - metric to be used for ranking top queries. Default is 'cpu' 621func (client ManagedInstancesClient) ListByManagedInstance(ctx context.Context, resourceGroupName string, managedInstanceName string, numberOfQueries *int32, databases string, startTime string, endTime string, interval QueryTimeGrainType, aggregationFunction AggregationFunctionType, observationMetric MetricType) (result TopQueriesListResultPage, err error) { 622 if tracing.IsEnabled() { 623 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.ListByManagedInstance") 624 defer func() { 625 sc := -1 626 if result.tqlr.Response.Response != nil { 627 sc = result.tqlr.Response.Response.StatusCode 628 } 629 tracing.EndSpan(ctx, sc, err) 630 }() 631 } 632 result.fn = client.listByManagedInstanceNextResults 633 req, err := client.ListByManagedInstancePreparer(ctx, resourceGroupName, managedInstanceName, numberOfQueries, databases, startTime, endTime, interval, aggregationFunction, observationMetric) 634 if err != nil { 635 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "ListByManagedInstance", nil, "Failure preparing request") 636 return 637 } 638 639 resp, err := client.ListByManagedInstanceSender(req) 640 if err != nil { 641 result.tqlr.Response = autorest.Response{Response: resp} 642 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "ListByManagedInstance", resp, "Failure sending request") 643 return 644 } 645 646 result.tqlr, err = client.ListByManagedInstanceResponder(resp) 647 if err != nil { 648 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "ListByManagedInstance", resp, "Failure responding to request") 649 return 650 } 651 if result.tqlr.hasNextLink() && result.tqlr.IsEmpty() { 652 err = result.NextWithContext(ctx) 653 return 654 } 655 656 return 657} 658 659// ListByManagedInstancePreparer prepares the ListByManagedInstance request. 660func (client ManagedInstancesClient) ListByManagedInstancePreparer(ctx context.Context, resourceGroupName string, managedInstanceName string, numberOfQueries *int32, databases string, startTime string, endTime string, interval QueryTimeGrainType, aggregationFunction AggregationFunctionType, observationMetric MetricType) (*http.Request, error) { 661 pathParameters := map[string]interface{}{ 662 "managedInstanceName": autorest.Encode("path", managedInstanceName), 663 "resourceGroupName": autorest.Encode("path", resourceGroupName), 664 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 665 } 666 667 const APIVersion = "2020-11-01-preview" 668 queryParameters := map[string]interface{}{ 669 "api-version": APIVersion, 670 } 671 if numberOfQueries != nil { 672 queryParameters["numberOfQueries"] = autorest.Encode("query", *numberOfQueries) 673 } 674 if len(databases) > 0 { 675 queryParameters["databases"] = autorest.Encode("query", databases) 676 } 677 if len(startTime) > 0 { 678 queryParameters["startTime"] = autorest.Encode("query", startTime) 679 } 680 if len(endTime) > 0 { 681 queryParameters["endTime"] = autorest.Encode("query", endTime) 682 } 683 if len(string(interval)) > 0 { 684 queryParameters["interval"] = autorest.Encode("query", interval) 685 } 686 if len(string(aggregationFunction)) > 0 { 687 queryParameters["aggregationFunction"] = autorest.Encode("query", aggregationFunction) 688 } 689 if len(string(observationMetric)) > 0 { 690 queryParameters["observationMetric"] = autorest.Encode("query", observationMetric) 691 } 692 693 preparer := autorest.CreatePreparer( 694 autorest.AsGet(), 695 autorest.WithBaseURL(client.BaseURI), 696 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/topqueries", pathParameters), 697 autorest.WithQueryParameters(queryParameters)) 698 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 699} 700 701// ListByManagedInstanceSender sends the ListByManagedInstance request. The method will close the 702// http.Response Body if it receives an error. 703func (client ManagedInstancesClient) ListByManagedInstanceSender(req *http.Request) (*http.Response, error) { 704 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 705} 706 707// ListByManagedInstanceResponder handles the response to the ListByManagedInstance request. The method always 708// closes the http.Response Body. 709func (client ManagedInstancesClient) ListByManagedInstanceResponder(resp *http.Response) (result TopQueriesListResult, err error) { 710 err = autorest.Respond( 711 resp, 712 azure.WithErrorUnlessStatusCode(http.StatusOK), 713 autorest.ByUnmarshallingJSON(&result), 714 autorest.ByClosing()) 715 result.Response = autorest.Response{Response: resp} 716 return 717} 718 719// listByManagedInstanceNextResults retrieves the next set of results, if any. 720func (client ManagedInstancesClient) listByManagedInstanceNextResults(ctx context.Context, lastResults TopQueriesListResult) (result TopQueriesListResult, err error) { 721 req, err := lastResults.topQueriesListResultPreparer(ctx) 722 if err != nil { 723 return result, autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listByManagedInstanceNextResults", nil, "Failure preparing next results request") 724 } 725 if req == nil { 726 return 727 } 728 resp, err := client.ListByManagedInstanceSender(req) 729 if err != nil { 730 result.Response = autorest.Response{Response: resp} 731 return result, autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listByManagedInstanceNextResults", resp, "Failure sending next results request") 732 } 733 result, err = client.ListByManagedInstanceResponder(resp) 734 if err != nil { 735 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listByManagedInstanceNextResults", resp, "Failure responding to next results request") 736 } 737 return 738} 739 740// ListByManagedInstanceComplete enumerates all values, automatically crossing page boundaries as required. 741func (client ManagedInstancesClient) ListByManagedInstanceComplete(ctx context.Context, resourceGroupName string, managedInstanceName string, numberOfQueries *int32, databases string, startTime string, endTime string, interval QueryTimeGrainType, aggregationFunction AggregationFunctionType, observationMetric MetricType) (result TopQueriesListResultIterator, err error) { 742 if tracing.IsEnabled() { 743 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.ListByManagedInstance") 744 defer func() { 745 sc := -1 746 if result.Response().Response.Response != nil { 747 sc = result.page.Response().Response.Response.StatusCode 748 } 749 tracing.EndSpan(ctx, sc, err) 750 }() 751 } 752 result.page, err = client.ListByManagedInstance(ctx, resourceGroupName, managedInstanceName, numberOfQueries, databases, startTime, endTime, interval, aggregationFunction, observationMetric) 753 return 754} 755 756// ListByResourceGroup gets a list of managed instances in a resource group. 757// Parameters: 758// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 759// from the Azure Resource Manager API or the portal. 760// expand - the child resources to include in the response. 761func (client ManagedInstancesClient) ListByResourceGroup(ctx context.Context, resourceGroupName string, expand string) (result ManagedInstanceListResultPage, err error) { 762 if tracing.IsEnabled() { 763 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.ListByResourceGroup") 764 defer func() { 765 sc := -1 766 if result.milr.Response.Response != nil { 767 sc = result.milr.Response.Response.StatusCode 768 } 769 tracing.EndSpan(ctx, sc, err) 770 }() 771 } 772 result.fn = client.listByResourceGroupNextResults 773 req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName, expand) 774 if err != nil { 775 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "ListByResourceGroup", nil, "Failure preparing request") 776 return 777 } 778 779 resp, err := client.ListByResourceGroupSender(req) 780 if err != nil { 781 result.milr.Response = autorest.Response{Response: resp} 782 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "ListByResourceGroup", resp, "Failure sending request") 783 return 784 } 785 786 result.milr, err = client.ListByResourceGroupResponder(resp) 787 if err != nil { 788 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "ListByResourceGroup", resp, "Failure responding to request") 789 return 790 } 791 if result.milr.hasNextLink() && result.milr.IsEmpty() { 792 err = result.NextWithContext(ctx) 793 return 794 } 795 796 return 797} 798 799// ListByResourceGroupPreparer prepares the ListByResourceGroup request. 800func (client ManagedInstancesClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string, expand string) (*http.Request, error) { 801 pathParameters := map[string]interface{}{ 802 "resourceGroupName": autorest.Encode("path", resourceGroupName), 803 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 804 } 805 806 const APIVersion = "2020-11-01-preview" 807 queryParameters := map[string]interface{}{ 808 "api-version": APIVersion, 809 } 810 if len(expand) > 0 { 811 queryParameters["$expand"] = autorest.Encode("query", expand) 812 } 813 814 preparer := autorest.CreatePreparer( 815 autorest.AsGet(), 816 autorest.WithBaseURL(client.BaseURI), 817 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances", pathParameters), 818 autorest.WithQueryParameters(queryParameters)) 819 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 820} 821 822// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the 823// http.Response Body if it receives an error. 824func (client ManagedInstancesClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) { 825 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 826} 827 828// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always 829// closes the http.Response Body. 830func (client ManagedInstancesClient) ListByResourceGroupResponder(resp *http.Response) (result ManagedInstanceListResult, err error) { 831 err = autorest.Respond( 832 resp, 833 azure.WithErrorUnlessStatusCode(http.StatusOK), 834 autorest.ByUnmarshallingJSON(&result), 835 autorest.ByClosing()) 836 result.Response = autorest.Response{Response: resp} 837 return 838} 839 840// listByResourceGroupNextResults retrieves the next set of results, if any. 841func (client ManagedInstancesClient) listByResourceGroupNextResults(ctx context.Context, lastResults ManagedInstanceListResult) (result ManagedInstanceListResult, err error) { 842 req, err := lastResults.managedInstanceListResultPreparer(ctx) 843 if err != nil { 844 return result, autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request") 845 } 846 if req == nil { 847 return 848 } 849 resp, err := client.ListByResourceGroupSender(req) 850 if err != nil { 851 result.Response = autorest.Response{Response: resp} 852 return result, autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listByResourceGroupNextResults", resp, "Failure sending next results request") 853 } 854 result, err = client.ListByResourceGroupResponder(resp) 855 if err != nil { 856 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request") 857 } 858 return 859} 860 861// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required. 862func (client ManagedInstancesClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, expand string) (result ManagedInstanceListResultIterator, err error) { 863 if tracing.IsEnabled() { 864 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.ListByResourceGroup") 865 defer func() { 866 sc := -1 867 if result.Response().Response.Response != nil { 868 sc = result.page.Response().Response.Response.StatusCode 869 } 870 tracing.EndSpan(ctx, sc, err) 871 }() 872 } 873 result.page, err = client.ListByResourceGroup(ctx, resourceGroupName, expand) 874 return 875} 876 877// Update updates a managed instance. 878// Parameters: 879// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 880// from the Azure Resource Manager API or the portal. 881// managedInstanceName - the name of the managed instance. 882// parameters - the requested managed instance resource state. 883func (client ManagedInstancesClient) Update(ctx context.Context, resourceGroupName string, managedInstanceName string, parameters ManagedInstanceUpdate) (result ManagedInstancesUpdateFuture, err error) { 884 if tracing.IsEnabled() { 885 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedInstancesClient.Update") 886 defer func() { 887 sc := -1 888 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 889 sc = result.FutureAPI.Response().StatusCode 890 } 891 tracing.EndSpan(ctx, sc, err) 892 }() 893 } 894 req, err := client.UpdatePreparer(ctx, resourceGroupName, managedInstanceName, parameters) 895 if err != nil { 896 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "Update", nil, "Failure preparing request") 897 return 898 } 899 900 result, err = client.UpdateSender(req) 901 if err != nil { 902 err = autorest.NewErrorWithError(err, "sql.ManagedInstancesClient", "Update", nil, "Failure sending request") 903 return 904 } 905 906 return 907} 908 909// UpdatePreparer prepares the Update request. 910func (client ManagedInstancesClient) UpdatePreparer(ctx context.Context, resourceGroupName string, managedInstanceName string, parameters ManagedInstanceUpdate) (*http.Request, error) { 911 pathParameters := map[string]interface{}{ 912 "managedInstanceName": autorest.Encode("path", managedInstanceName), 913 "resourceGroupName": autorest.Encode("path", resourceGroupName), 914 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 915 } 916 917 const APIVersion = "2020-11-01-preview" 918 queryParameters := map[string]interface{}{ 919 "api-version": APIVersion, 920 } 921 922 preparer := autorest.CreatePreparer( 923 autorest.AsContentType("application/json; charset=utf-8"), 924 autorest.AsPatch(), 925 autorest.WithBaseURL(client.BaseURI), 926 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}", pathParameters), 927 autorest.WithJSON(parameters), 928 autorest.WithQueryParameters(queryParameters)) 929 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 930} 931 932// UpdateSender sends the Update request. The method will close the 933// http.Response Body if it receives an error. 934func (client ManagedInstancesClient) UpdateSender(req *http.Request) (future ManagedInstancesUpdateFuture, err error) { 935 var resp *http.Response 936 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 937 if err != nil { 938 return 939 } 940 var azf azure.Future 941 azf, err = azure.NewFutureFromResponse(resp) 942 future.FutureAPI = &azf 943 future.Result = future.result 944 return 945} 946 947// UpdateResponder handles the response to the Update request. The method always 948// closes the http.Response Body. 949func (client ManagedInstancesClient) UpdateResponder(resp *http.Response) (result ManagedInstance, err error) { 950 err = autorest.Respond( 951 resp, 952 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 953 autorest.ByUnmarshallingJSON(&result), 954 autorest.ByClosing()) 955 result.Response = autorest.Response{Response: resp} 956 return 957} 958