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/tracing" 14 "github.com/gofrs/uuid" 15 "net/http" 16) 17 18// DatabaseOperationsClient 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 DatabaseOperationsClient struct { 22 BaseClient 23} 24 25// NewDatabaseOperationsClient creates an instance of the DatabaseOperationsClient client. 26func NewDatabaseOperationsClient(subscriptionID string) DatabaseOperationsClient { 27 return NewDatabaseOperationsClientWithBaseURI(DefaultBaseURI, subscriptionID) 28} 29 30// NewDatabaseOperationsClientWithBaseURI creates an instance of the DatabaseOperationsClient 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 NewDatabaseOperationsClientWithBaseURI(baseURI string, subscriptionID string) DatabaseOperationsClient { 34 return DatabaseOperationsClient{NewWithBaseURI(baseURI, subscriptionID)} 35} 36 37// Cancel cancels the asynchronous operation on the database. 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// serverName - the name of the server. 42// databaseName - the name of the database. 43// operationID - the operation identifier. 44func (client DatabaseOperationsClient) Cancel(ctx context.Context, resourceGroupName string, serverName string, databaseName string, operationID uuid.UUID) (result autorest.Response, err error) { 45 if tracing.IsEnabled() { 46 ctx = tracing.StartSpan(ctx, fqdn+"/DatabaseOperationsClient.Cancel") 47 defer func() { 48 sc := -1 49 if result.Response != nil { 50 sc = result.Response.StatusCode 51 } 52 tracing.EndSpan(ctx, sc, err) 53 }() 54 } 55 req, err := client.CancelPreparer(ctx, resourceGroupName, serverName, databaseName, operationID) 56 if err != nil { 57 err = autorest.NewErrorWithError(err, "sql.DatabaseOperationsClient", "Cancel", nil, "Failure preparing request") 58 return 59 } 60 61 resp, err := client.CancelSender(req) 62 if err != nil { 63 result.Response = resp 64 err = autorest.NewErrorWithError(err, "sql.DatabaseOperationsClient", "Cancel", resp, "Failure sending request") 65 return 66 } 67 68 result, err = client.CancelResponder(resp) 69 if err != nil { 70 err = autorest.NewErrorWithError(err, "sql.DatabaseOperationsClient", "Cancel", resp, "Failure responding to request") 71 return 72 } 73 74 return 75} 76 77// CancelPreparer prepares the Cancel request. 78func (client DatabaseOperationsClient) CancelPreparer(ctx context.Context, resourceGroupName string, serverName string, databaseName string, operationID uuid.UUID) (*http.Request, error) { 79 pathParameters := map[string]interface{}{ 80 "databaseName": autorest.Encode("path", databaseName), 81 "operationId": autorest.Encode("path", operationID), 82 "resourceGroupName": autorest.Encode("path", resourceGroupName), 83 "serverName": autorest.Encode("path", serverName), 84 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 85 } 86 87 const APIVersion = "2017-10-01-preview" 88 queryParameters := map[string]interface{}{ 89 "api-version": APIVersion, 90 } 91 92 preparer := autorest.CreatePreparer( 93 autorest.AsPost(), 94 autorest.WithBaseURL(client.BaseURI), 95 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/operations/{operationId}/cancel", pathParameters), 96 autorest.WithQueryParameters(queryParameters)) 97 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 98} 99 100// CancelSender sends the Cancel request. The method will close the 101// http.Response Body if it receives an error. 102func (client DatabaseOperationsClient) CancelSender(req *http.Request) (*http.Response, error) { 103 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 104} 105 106// CancelResponder handles the response to the Cancel request. The method always 107// closes the http.Response Body. 108func (client DatabaseOperationsClient) CancelResponder(resp *http.Response) (result autorest.Response, err error) { 109 err = autorest.Respond( 110 resp, 111 azure.WithErrorUnlessStatusCode(http.StatusOK), 112 autorest.ByClosing()) 113 result.Response = resp 114 return 115} 116 117// ListByDatabase gets a list of operations performed on the database. 118// Parameters: 119// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 120// from the Azure Resource Manager API or the portal. 121// serverName - the name of the server. 122// databaseName - the name of the database. 123func (client DatabaseOperationsClient) ListByDatabase(ctx context.Context, resourceGroupName string, serverName string, databaseName string) (result DatabaseOperationListResultPage, err error) { 124 if tracing.IsEnabled() { 125 ctx = tracing.StartSpan(ctx, fqdn+"/DatabaseOperationsClient.ListByDatabase") 126 defer func() { 127 sc := -1 128 if result.dolr.Response.Response != nil { 129 sc = result.dolr.Response.Response.StatusCode 130 } 131 tracing.EndSpan(ctx, sc, err) 132 }() 133 } 134 result.fn = client.listByDatabaseNextResults 135 req, err := client.ListByDatabasePreparer(ctx, resourceGroupName, serverName, databaseName) 136 if err != nil { 137 err = autorest.NewErrorWithError(err, "sql.DatabaseOperationsClient", "ListByDatabase", nil, "Failure preparing request") 138 return 139 } 140 141 resp, err := client.ListByDatabaseSender(req) 142 if err != nil { 143 result.dolr.Response = autorest.Response{Response: resp} 144 err = autorest.NewErrorWithError(err, "sql.DatabaseOperationsClient", "ListByDatabase", resp, "Failure sending request") 145 return 146 } 147 148 result.dolr, err = client.ListByDatabaseResponder(resp) 149 if err != nil { 150 err = autorest.NewErrorWithError(err, "sql.DatabaseOperationsClient", "ListByDatabase", resp, "Failure responding to request") 151 return 152 } 153 if result.dolr.hasNextLink() && result.dolr.IsEmpty() { 154 err = result.NextWithContext(ctx) 155 return 156 } 157 158 return 159} 160 161// ListByDatabasePreparer prepares the ListByDatabase request. 162func (client DatabaseOperationsClient) ListByDatabasePreparer(ctx context.Context, resourceGroupName string, serverName string, databaseName string) (*http.Request, error) { 163 pathParameters := map[string]interface{}{ 164 "databaseName": autorest.Encode("path", databaseName), 165 "resourceGroupName": autorest.Encode("path", resourceGroupName), 166 "serverName": autorest.Encode("path", serverName), 167 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 168 } 169 170 const APIVersion = "2017-10-01-preview" 171 queryParameters := map[string]interface{}{ 172 "api-version": APIVersion, 173 } 174 175 preparer := autorest.CreatePreparer( 176 autorest.AsGet(), 177 autorest.WithBaseURL(client.BaseURI), 178 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/operations", pathParameters), 179 autorest.WithQueryParameters(queryParameters)) 180 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 181} 182 183// ListByDatabaseSender sends the ListByDatabase request. The method will close the 184// http.Response Body if it receives an error. 185func (client DatabaseOperationsClient) ListByDatabaseSender(req *http.Request) (*http.Response, error) { 186 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 187} 188 189// ListByDatabaseResponder handles the response to the ListByDatabase request. The method always 190// closes the http.Response Body. 191func (client DatabaseOperationsClient) ListByDatabaseResponder(resp *http.Response) (result DatabaseOperationListResult, err error) { 192 err = autorest.Respond( 193 resp, 194 azure.WithErrorUnlessStatusCode(http.StatusOK), 195 autorest.ByUnmarshallingJSON(&result), 196 autorest.ByClosing()) 197 result.Response = autorest.Response{Response: resp} 198 return 199} 200 201// listByDatabaseNextResults retrieves the next set of results, if any. 202func (client DatabaseOperationsClient) listByDatabaseNextResults(ctx context.Context, lastResults DatabaseOperationListResult) (result DatabaseOperationListResult, err error) { 203 req, err := lastResults.databaseOperationListResultPreparer(ctx) 204 if err != nil { 205 return result, autorest.NewErrorWithError(err, "sql.DatabaseOperationsClient", "listByDatabaseNextResults", nil, "Failure preparing next results request") 206 } 207 if req == nil { 208 return 209 } 210 resp, err := client.ListByDatabaseSender(req) 211 if err != nil { 212 result.Response = autorest.Response{Response: resp} 213 return result, autorest.NewErrorWithError(err, "sql.DatabaseOperationsClient", "listByDatabaseNextResults", resp, "Failure sending next results request") 214 } 215 result, err = client.ListByDatabaseResponder(resp) 216 if err != nil { 217 err = autorest.NewErrorWithError(err, "sql.DatabaseOperationsClient", "listByDatabaseNextResults", resp, "Failure responding to next results request") 218 } 219 return 220} 221 222// ListByDatabaseComplete enumerates all values, automatically crossing page boundaries as required. 223func (client DatabaseOperationsClient) ListByDatabaseComplete(ctx context.Context, resourceGroupName string, serverName string, databaseName string) (result DatabaseOperationListResultIterator, err error) { 224 if tracing.IsEnabled() { 225 ctx = tracing.StartSpan(ctx, fqdn+"/DatabaseOperationsClient.ListByDatabase") 226 defer func() { 227 sc := -1 228 if result.Response().Response.Response != nil { 229 sc = result.page.Response().Response.Response.StatusCode 230 } 231 tracing.EndSpan(ctx, sc, err) 232 }() 233 } 234 result.page, err = client.ListByDatabase(ctx, resourceGroupName, serverName, databaseName) 235 return 236} 237