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/tracing" 25 "net/http" 26) 27 28// VirtualClustersClient 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 VirtualClustersClient struct { 32 BaseClient 33} 34 35// NewVirtualClustersClient creates an instance of the VirtualClustersClient client. 36func NewVirtualClustersClient(subscriptionID string) VirtualClustersClient { 37 return NewVirtualClustersClientWithBaseURI(DefaultBaseURI, subscriptionID) 38} 39 40// NewVirtualClustersClientWithBaseURI creates an instance of the VirtualClustersClient client. 41func NewVirtualClustersClientWithBaseURI(baseURI string, subscriptionID string) VirtualClustersClient { 42 return VirtualClustersClient{NewWithBaseURI(baseURI, subscriptionID)} 43} 44 45// Delete deletes a virtual cluster. 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// virtualClusterName - the name of the virtual cluster. 50func (client VirtualClustersClient) Delete(ctx context.Context, resourceGroupName string, virtualClusterName string) (result VirtualClustersDeleteFuture, err error) { 51 if tracing.IsEnabled() { 52 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualClustersClient.Delete") 53 defer func() { 54 sc := -1 55 if result.Response() != nil { 56 sc = result.Response().StatusCode 57 } 58 tracing.EndSpan(ctx, sc, err) 59 }() 60 } 61 req, err := client.DeletePreparer(ctx, resourceGroupName, virtualClusterName) 62 if err != nil { 63 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "Delete", nil, "Failure preparing request") 64 return 65 } 66 67 result, err = client.DeleteSender(req) 68 if err != nil { 69 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "Delete", result.Response(), "Failure sending request") 70 return 71 } 72 73 return 74} 75 76// DeletePreparer prepares the Delete request. 77func (client VirtualClustersClient) DeletePreparer(ctx context.Context, resourceGroupName string, virtualClusterName string) (*http.Request, error) { 78 pathParameters := map[string]interface{}{ 79 "resourceGroupName": autorest.Encode("path", resourceGroupName), 80 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 81 "virtualClusterName": autorest.Encode("path", virtualClusterName), 82 } 83 84 const APIVersion = "2015-05-01-preview" 85 queryParameters := map[string]interface{}{ 86 "api-version": APIVersion, 87 } 88 89 preparer := autorest.CreatePreparer( 90 autorest.AsDelete(), 91 autorest.WithBaseURL(client.BaseURI), 92 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/virtualClusters/{virtualClusterName}", pathParameters), 93 autorest.WithQueryParameters(queryParameters)) 94 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 95} 96 97// DeleteSender sends the Delete request. The method will close the 98// http.Response Body if it receives an error. 99func (client VirtualClustersClient) DeleteSender(req *http.Request) (future VirtualClustersDeleteFuture, err error) { 100 sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) 101 var resp *http.Response 102 resp, err = autorest.SendWithSender(client, req, sd...) 103 if err != nil { 104 return 105 } 106 future.Future, err = azure.NewFutureFromResponse(resp) 107 return 108} 109 110// DeleteResponder handles the response to the Delete request. The method always 111// closes the http.Response Body. 112func (client VirtualClustersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 113 err = autorest.Respond( 114 resp, 115 client.ByInspecting(), 116 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 117 autorest.ByClosing()) 118 result.Response = resp 119 return 120} 121 122// Get gets a virtual cluster. 123// Parameters: 124// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 125// from the Azure Resource Manager API or the portal. 126// virtualClusterName - the name of the virtual cluster. 127func (client VirtualClustersClient) Get(ctx context.Context, resourceGroupName string, virtualClusterName string) (result VirtualCluster, err error) { 128 if tracing.IsEnabled() { 129 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualClustersClient.Get") 130 defer func() { 131 sc := -1 132 if result.Response.Response != nil { 133 sc = result.Response.Response.StatusCode 134 } 135 tracing.EndSpan(ctx, sc, err) 136 }() 137 } 138 req, err := client.GetPreparer(ctx, resourceGroupName, virtualClusterName) 139 if err != nil { 140 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "Get", nil, "Failure preparing request") 141 return 142 } 143 144 resp, err := client.GetSender(req) 145 if err != nil { 146 result.Response = autorest.Response{Response: resp} 147 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "Get", resp, "Failure sending request") 148 return 149 } 150 151 result, err = client.GetResponder(resp) 152 if err != nil { 153 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "Get", resp, "Failure responding to request") 154 } 155 156 return 157} 158 159// GetPreparer prepares the Get request. 160func (client VirtualClustersClient) GetPreparer(ctx context.Context, resourceGroupName string, virtualClusterName string) (*http.Request, error) { 161 pathParameters := map[string]interface{}{ 162 "resourceGroupName": autorest.Encode("path", resourceGroupName), 163 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 164 "virtualClusterName": autorest.Encode("path", virtualClusterName), 165 } 166 167 const APIVersion = "2015-05-01-preview" 168 queryParameters := map[string]interface{}{ 169 "api-version": APIVersion, 170 } 171 172 preparer := autorest.CreatePreparer( 173 autorest.AsGet(), 174 autorest.WithBaseURL(client.BaseURI), 175 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/virtualClusters/{virtualClusterName}", pathParameters), 176 autorest.WithQueryParameters(queryParameters)) 177 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 178} 179 180// GetSender sends the Get request. The method will close the 181// http.Response Body if it receives an error. 182func (client VirtualClustersClient) GetSender(req *http.Request) (*http.Response, error) { 183 sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) 184 return autorest.SendWithSender(client, req, sd...) 185} 186 187// GetResponder handles the response to the Get request. The method always 188// closes the http.Response Body. 189func (client VirtualClustersClient) GetResponder(resp *http.Response) (result VirtualCluster, err error) { 190 err = autorest.Respond( 191 resp, 192 client.ByInspecting(), 193 azure.WithErrorUnlessStatusCode(http.StatusOK), 194 autorest.ByUnmarshallingJSON(&result), 195 autorest.ByClosing()) 196 result.Response = autorest.Response{Response: resp} 197 return 198} 199 200// List gets a list of all virtualClusters in the subscription. 201func (client VirtualClustersClient) List(ctx context.Context) (result VirtualClusterListResultPage, err error) { 202 if tracing.IsEnabled() { 203 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualClustersClient.List") 204 defer func() { 205 sc := -1 206 if result.vclr.Response.Response != nil { 207 sc = result.vclr.Response.Response.StatusCode 208 } 209 tracing.EndSpan(ctx, sc, err) 210 }() 211 } 212 result.fn = client.listNextResults 213 req, err := client.ListPreparer(ctx) 214 if err != nil { 215 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "List", nil, "Failure preparing request") 216 return 217 } 218 219 resp, err := client.ListSender(req) 220 if err != nil { 221 result.vclr.Response = autorest.Response{Response: resp} 222 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "List", resp, "Failure sending request") 223 return 224 } 225 226 result.vclr, err = client.ListResponder(resp) 227 if err != nil { 228 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "List", resp, "Failure responding to request") 229 } 230 231 return 232} 233 234// ListPreparer prepares the List request. 235func (client VirtualClustersClient) ListPreparer(ctx context.Context) (*http.Request, error) { 236 pathParameters := map[string]interface{}{ 237 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 238 } 239 240 const APIVersion = "2015-05-01-preview" 241 queryParameters := map[string]interface{}{ 242 "api-version": APIVersion, 243 } 244 245 preparer := autorest.CreatePreparer( 246 autorest.AsGet(), 247 autorest.WithBaseURL(client.BaseURI), 248 autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Sql/virtualClusters", pathParameters), 249 autorest.WithQueryParameters(queryParameters)) 250 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 251} 252 253// ListSender sends the List request. The method will close the 254// http.Response Body if it receives an error. 255func (client VirtualClustersClient) ListSender(req *http.Request) (*http.Response, error) { 256 sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) 257 return autorest.SendWithSender(client, req, sd...) 258} 259 260// ListResponder handles the response to the List request. The method always 261// closes the http.Response Body. 262func (client VirtualClustersClient) ListResponder(resp *http.Response) (result VirtualClusterListResult, err error) { 263 err = autorest.Respond( 264 resp, 265 client.ByInspecting(), 266 azure.WithErrorUnlessStatusCode(http.StatusOK), 267 autorest.ByUnmarshallingJSON(&result), 268 autorest.ByClosing()) 269 result.Response = autorest.Response{Response: resp} 270 return 271} 272 273// listNextResults retrieves the next set of results, if any. 274func (client VirtualClustersClient) listNextResults(ctx context.Context, lastResults VirtualClusterListResult) (result VirtualClusterListResult, err error) { 275 req, err := lastResults.virtualClusterListResultPreparer(ctx) 276 if err != nil { 277 return result, autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "listNextResults", nil, "Failure preparing next results request") 278 } 279 if req == nil { 280 return 281 } 282 resp, err := client.ListSender(req) 283 if err != nil { 284 result.Response = autorest.Response{Response: resp} 285 return result, autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "listNextResults", resp, "Failure sending next results request") 286 } 287 result, err = client.ListResponder(resp) 288 if err != nil { 289 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "listNextResults", resp, "Failure responding to next results request") 290 } 291 return 292} 293 294// ListComplete enumerates all values, automatically crossing page boundaries as required. 295func (client VirtualClustersClient) ListComplete(ctx context.Context) (result VirtualClusterListResultIterator, err error) { 296 if tracing.IsEnabled() { 297 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualClustersClient.List") 298 defer func() { 299 sc := -1 300 if result.Response().Response.Response != nil { 301 sc = result.page.Response().Response.Response.StatusCode 302 } 303 tracing.EndSpan(ctx, sc, err) 304 }() 305 } 306 result.page, err = client.List(ctx) 307 return 308} 309 310// ListByResourceGroup gets a list of virtual clusters in a resource group. 311// Parameters: 312// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 313// from the Azure Resource Manager API or the portal. 314func (client VirtualClustersClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result VirtualClusterListResultPage, err error) { 315 if tracing.IsEnabled() { 316 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualClustersClient.ListByResourceGroup") 317 defer func() { 318 sc := -1 319 if result.vclr.Response.Response != nil { 320 sc = result.vclr.Response.Response.StatusCode 321 } 322 tracing.EndSpan(ctx, sc, err) 323 }() 324 } 325 result.fn = client.listByResourceGroupNextResults 326 req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName) 327 if err != nil { 328 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "ListByResourceGroup", nil, "Failure preparing request") 329 return 330 } 331 332 resp, err := client.ListByResourceGroupSender(req) 333 if err != nil { 334 result.vclr.Response = autorest.Response{Response: resp} 335 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "ListByResourceGroup", resp, "Failure sending request") 336 return 337 } 338 339 result.vclr, err = client.ListByResourceGroupResponder(resp) 340 if err != nil { 341 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "ListByResourceGroup", resp, "Failure responding to request") 342 } 343 344 return 345} 346 347// ListByResourceGroupPreparer prepares the ListByResourceGroup request. 348func (client VirtualClustersClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) { 349 pathParameters := map[string]interface{}{ 350 "resourceGroupName": autorest.Encode("path", resourceGroupName), 351 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 352 } 353 354 const APIVersion = "2015-05-01-preview" 355 queryParameters := map[string]interface{}{ 356 "api-version": APIVersion, 357 } 358 359 preparer := autorest.CreatePreparer( 360 autorest.AsGet(), 361 autorest.WithBaseURL(client.BaseURI), 362 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/virtualClusters", pathParameters), 363 autorest.WithQueryParameters(queryParameters)) 364 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 365} 366 367// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the 368// http.Response Body if it receives an error. 369func (client VirtualClustersClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) { 370 sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) 371 return autorest.SendWithSender(client, req, sd...) 372} 373 374// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always 375// closes the http.Response Body. 376func (client VirtualClustersClient) ListByResourceGroupResponder(resp *http.Response) (result VirtualClusterListResult, err error) { 377 err = autorest.Respond( 378 resp, 379 client.ByInspecting(), 380 azure.WithErrorUnlessStatusCode(http.StatusOK), 381 autorest.ByUnmarshallingJSON(&result), 382 autorest.ByClosing()) 383 result.Response = autorest.Response{Response: resp} 384 return 385} 386 387// listByResourceGroupNextResults retrieves the next set of results, if any. 388func (client VirtualClustersClient) listByResourceGroupNextResults(ctx context.Context, lastResults VirtualClusterListResult) (result VirtualClusterListResult, err error) { 389 req, err := lastResults.virtualClusterListResultPreparer(ctx) 390 if err != nil { 391 return result, autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request") 392 } 393 if req == nil { 394 return 395 } 396 resp, err := client.ListByResourceGroupSender(req) 397 if err != nil { 398 result.Response = autorest.Response{Response: resp} 399 return result, autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "listByResourceGroupNextResults", resp, "Failure sending next results request") 400 } 401 result, err = client.ListByResourceGroupResponder(resp) 402 if err != nil { 403 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request") 404 } 405 return 406} 407 408// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required. 409func (client VirtualClustersClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result VirtualClusterListResultIterator, err error) { 410 if tracing.IsEnabled() { 411 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualClustersClient.ListByResourceGroup") 412 defer func() { 413 sc := -1 414 if result.Response().Response.Response != nil { 415 sc = result.page.Response().Response.Response.StatusCode 416 } 417 tracing.EndSpan(ctx, sc, err) 418 }() 419 } 420 result.page, err = client.ListByResourceGroup(ctx, resourceGroupName) 421 return 422} 423 424// Update updates a virtual cluster. 425// Parameters: 426// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 427// from the Azure Resource Manager API or the portal. 428// virtualClusterName - the name of the virtual cluster. 429// parameters - the requested managed instance resource state. 430func (client VirtualClustersClient) Update(ctx context.Context, resourceGroupName string, virtualClusterName string, parameters VirtualClusterUpdate) (result VirtualClustersUpdateFuture, err error) { 431 if tracing.IsEnabled() { 432 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualClustersClient.Update") 433 defer func() { 434 sc := -1 435 if result.Response() != nil { 436 sc = result.Response().StatusCode 437 } 438 tracing.EndSpan(ctx, sc, err) 439 }() 440 } 441 req, err := client.UpdatePreparer(ctx, resourceGroupName, virtualClusterName, parameters) 442 if err != nil { 443 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "Update", nil, "Failure preparing request") 444 return 445 } 446 447 result, err = client.UpdateSender(req) 448 if err != nil { 449 err = autorest.NewErrorWithError(err, "sql.VirtualClustersClient", "Update", result.Response(), "Failure sending request") 450 return 451 } 452 453 return 454} 455 456// UpdatePreparer prepares the Update request. 457func (client VirtualClustersClient) UpdatePreparer(ctx context.Context, resourceGroupName string, virtualClusterName string, parameters VirtualClusterUpdate) (*http.Request, error) { 458 pathParameters := map[string]interface{}{ 459 "resourceGroupName": autorest.Encode("path", resourceGroupName), 460 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 461 "virtualClusterName": autorest.Encode("path", virtualClusterName), 462 } 463 464 const APIVersion = "2015-05-01-preview" 465 queryParameters := map[string]interface{}{ 466 "api-version": APIVersion, 467 } 468 469 preparer := autorest.CreatePreparer( 470 autorest.AsContentType("application/json; charset=utf-8"), 471 autorest.AsPatch(), 472 autorest.WithBaseURL(client.BaseURI), 473 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/virtualClusters/{virtualClusterName}", pathParameters), 474 autorest.WithJSON(parameters), 475 autorest.WithQueryParameters(queryParameters)) 476 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 477} 478 479// UpdateSender sends the Update request. The method will close the 480// http.Response Body if it receives an error. 481func (client VirtualClustersClient) UpdateSender(req *http.Request) (future VirtualClustersUpdateFuture, err error) { 482 sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) 483 var resp *http.Response 484 resp, err = autorest.SendWithSender(client, req, sd...) 485 if err != nil { 486 return 487 } 488 future.Future, err = azure.NewFutureFromResponse(resp) 489 return 490} 491 492// UpdateResponder handles the response to the Update request. The method always 493// closes the http.Response Body. 494func (client VirtualClustersClient) UpdateResponder(resp *http.Response) (result VirtualCluster, err error) { 495 err = autorest.Respond( 496 resp, 497 client.ByInspecting(), 498 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 499 autorest.ByUnmarshallingJSON(&result), 500 autorest.ByClosing()) 501 result.Response = autorest.Response{Response: resp} 502 return 503} 504