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 "net/http" 15) 16 17// BackupShortTermRetentionPoliciesClient is the the Azure SQL Database management API provides a RESTful set of web 18// services that interact with Azure SQL Database services to manage your databases. The API enables you to create, 19// retrieve, update, and delete databases. 20type BackupShortTermRetentionPoliciesClient struct { 21 BaseClient 22} 23 24// NewBackupShortTermRetentionPoliciesClient creates an instance of the BackupShortTermRetentionPoliciesClient client. 25func NewBackupShortTermRetentionPoliciesClient(subscriptionID string) BackupShortTermRetentionPoliciesClient { 26 return NewBackupShortTermRetentionPoliciesClientWithBaseURI(DefaultBaseURI, subscriptionID) 27} 28 29// NewBackupShortTermRetentionPoliciesClientWithBaseURI creates an instance of the 30// BackupShortTermRetentionPoliciesClient client using a custom endpoint. Use this when interacting with an Azure 31// cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 32func NewBackupShortTermRetentionPoliciesClientWithBaseURI(baseURI string, subscriptionID string) BackupShortTermRetentionPoliciesClient { 33 return BackupShortTermRetentionPoliciesClient{NewWithBaseURI(baseURI, subscriptionID)} 34} 35 36// CreateOrUpdate updates a database's short term retention policy. 37// Parameters: 38// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 39// from the Azure Resource Manager API or the portal. 40// serverName - the name of the server. 41// databaseName - the name of the database. 42// parameters - the short term retention policy info. 43func (client BackupShortTermRetentionPoliciesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, serverName string, databaseName string, parameters BackupShortTermRetentionPolicy) (result BackupShortTermRetentionPoliciesCreateOrUpdateFuture, err error) { 44 if tracing.IsEnabled() { 45 ctx = tracing.StartSpan(ctx, fqdn+"/BackupShortTermRetentionPoliciesClient.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 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, serverName, databaseName, parameters) 55 if err != nil { 56 err = autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "CreateOrUpdate", nil, "Failure preparing request") 57 return 58 } 59 60 result, err = client.CreateOrUpdateSender(req) 61 if err != nil { 62 err = autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "CreateOrUpdate", nil, "Failure sending request") 63 return 64 } 65 66 return 67} 68 69// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 70func (client BackupShortTermRetentionPoliciesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, serverName string, databaseName string, parameters BackupShortTermRetentionPolicy) (*http.Request, error) { 71 pathParameters := map[string]interface{}{ 72 "databaseName": autorest.Encode("path", databaseName), 73 "policyName": autorest.Encode("path", "default"), 74 "resourceGroupName": autorest.Encode("path", resourceGroupName), 75 "serverName": autorest.Encode("path", serverName), 76 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 77 } 78 79 const APIVersion = "2021-02-01-preview" 80 queryParameters := map[string]interface{}{ 81 "api-version": APIVersion, 82 } 83 84 preparer := autorest.CreatePreparer( 85 autorest.AsContentType("application/json; charset=utf-8"), 86 autorest.AsPut(), 87 autorest.WithBaseURL(client.BaseURI), 88 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/backupShortTermRetentionPolicies/{policyName}", pathParameters), 89 autorest.WithJSON(parameters), 90 autorest.WithQueryParameters(queryParameters)) 91 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 92} 93 94// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 95// http.Response Body if it receives an error. 96func (client BackupShortTermRetentionPoliciesClient) CreateOrUpdateSender(req *http.Request) (future BackupShortTermRetentionPoliciesCreateOrUpdateFuture, err error) { 97 var resp *http.Response 98 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 99 if err != nil { 100 return 101 } 102 var azf azure.Future 103 azf, err = azure.NewFutureFromResponse(resp) 104 future.FutureAPI = &azf 105 future.Result = future.result 106 return 107} 108 109// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 110// closes the http.Response Body. 111func (client BackupShortTermRetentionPoliciesClient) CreateOrUpdateResponder(resp *http.Response) (result BackupShortTermRetentionPolicy, err error) { 112 err = autorest.Respond( 113 resp, 114 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 115 autorest.ByUnmarshallingJSON(&result), 116 autorest.ByClosing()) 117 result.Response = autorest.Response{Response: resp} 118 return 119} 120 121// Get gets a database's short term retention policy. 122// Parameters: 123// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 124// from the Azure Resource Manager API or the portal. 125// serverName - the name of the server. 126// databaseName - the name of the database. 127func (client BackupShortTermRetentionPoliciesClient) Get(ctx context.Context, resourceGroupName string, serverName string, databaseName string) (result BackupShortTermRetentionPolicy, err error) { 128 if tracing.IsEnabled() { 129 ctx = tracing.StartSpan(ctx, fqdn+"/BackupShortTermRetentionPoliciesClient.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, serverName, databaseName) 139 if err != nil { 140 err = autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "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.BackupShortTermRetentionPoliciesClient", "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.BackupShortTermRetentionPoliciesClient", "Get", resp, "Failure responding to request") 154 return 155 } 156 157 return 158} 159 160// GetPreparer prepares the Get request. 161func (client BackupShortTermRetentionPoliciesClient) GetPreparer(ctx context.Context, resourceGroupName string, serverName string, databaseName string) (*http.Request, error) { 162 pathParameters := map[string]interface{}{ 163 "databaseName": autorest.Encode("path", databaseName), 164 "policyName": autorest.Encode("path", "default"), 165 "resourceGroupName": autorest.Encode("path", resourceGroupName), 166 "serverName": autorest.Encode("path", serverName), 167 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 168 } 169 170 const APIVersion = "2021-02-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}/backupShortTermRetentionPolicies/{policyName}", pathParameters), 179 autorest.WithQueryParameters(queryParameters)) 180 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 181} 182 183// GetSender sends the Get request. The method will close the 184// http.Response Body if it receives an error. 185func (client BackupShortTermRetentionPoliciesClient) GetSender(req *http.Request) (*http.Response, error) { 186 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 187} 188 189// GetResponder handles the response to the Get request. The method always 190// closes the http.Response Body. 191func (client BackupShortTermRetentionPoliciesClient) GetResponder(resp *http.Response) (result BackupShortTermRetentionPolicy, 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// ListByDatabase gets a database's short term retention policy. 202// Parameters: 203// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 204// from the Azure Resource Manager API or the portal. 205// serverName - the name of the server. 206// databaseName - the name of the database. 207func (client BackupShortTermRetentionPoliciesClient) ListByDatabase(ctx context.Context, resourceGroupName string, serverName string, databaseName string) (result BackupShortTermRetentionPolicyListResultPage, err error) { 208 if tracing.IsEnabled() { 209 ctx = tracing.StartSpan(ctx, fqdn+"/BackupShortTermRetentionPoliciesClient.ListByDatabase") 210 defer func() { 211 sc := -1 212 if result.bstrplr.Response.Response != nil { 213 sc = result.bstrplr.Response.Response.StatusCode 214 } 215 tracing.EndSpan(ctx, sc, err) 216 }() 217 } 218 result.fn = client.listByDatabaseNextResults 219 req, err := client.ListByDatabasePreparer(ctx, resourceGroupName, serverName, databaseName) 220 if err != nil { 221 err = autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "ListByDatabase", nil, "Failure preparing request") 222 return 223 } 224 225 resp, err := client.ListByDatabaseSender(req) 226 if err != nil { 227 result.bstrplr.Response = autorest.Response{Response: resp} 228 err = autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "ListByDatabase", resp, "Failure sending request") 229 return 230 } 231 232 result.bstrplr, err = client.ListByDatabaseResponder(resp) 233 if err != nil { 234 err = autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "ListByDatabase", resp, "Failure responding to request") 235 return 236 } 237 if result.bstrplr.hasNextLink() && result.bstrplr.IsEmpty() { 238 err = result.NextWithContext(ctx) 239 return 240 } 241 242 return 243} 244 245// ListByDatabasePreparer prepares the ListByDatabase request. 246func (client BackupShortTermRetentionPoliciesClient) ListByDatabasePreparer(ctx context.Context, resourceGroupName string, serverName string, databaseName string) (*http.Request, error) { 247 pathParameters := map[string]interface{}{ 248 "databaseName": autorest.Encode("path", databaseName), 249 "resourceGroupName": autorest.Encode("path", resourceGroupName), 250 "serverName": autorest.Encode("path", serverName), 251 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 252 } 253 254 const APIVersion = "2021-02-01-preview" 255 queryParameters := map[string]interface{}{ 256 "api-version": APIVersion, 257 } 258 259 preparer := autorest.CreatePreparer( 260 autorest.AsGet(), 261 autorest.WithBaseURL(client.BaseURI), 262 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/backupShortTermRetentionPolicies", pathParameters), 263 autorest.WithQueryParameters(queryParameters)) 264 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 265} 266 267// ListByDatabaseSender sends the ListByDatabase request. The method will close the 268// http.Response Body if it receives an error. 269func (client BackupShortTermRetentionPoliciesClient) ListByDatabaseSender(req *http.Request) (*http.Response, error) { 270 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 271} 272 273// ListByDatabaseResponder handles the response to the ListByDatabase request. The method always 274// closes the http.Response Body. 275func (client BackupShortTermRetentionPoliciesClient) ListByDatabaseResponder(resp *http.Response) (result BackupShortTermRetentionPolicyListResult, err error) { 276 err = autorest.Respond( 277 resp, 278 azure.WithErrorUnlessStatusCode(http.StatusOK), 279 autorest.ByUnmarshallingJSON(&result), 280 autorest.ByClosing()) 281 result.Response = autorest.Response{Response: resp} 282 return 283} 284 285// listByDatabaseNextResults retrieves the next set of results, if any. 286func (client BackupShortTermRetentionPoliciesClient) listByDatabaseNextResults(ctx context.Context, lastResults BackupShortTermRetentionPolicyListResult) (result BackupShortTermRetentionPolicyListResult, err error) { 287 req, err := lastResults.backupShortTermRetentionPolicyListResultPreparer(ctx) 288 if err != nil { 289 return result, autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "listByDatabaseNextResults", nil, "Failure preparing next results request") 290 } 291 if req == nil { 292 return 293 } 294 resp, err := client.ListByDatabaseSender(req) 295 if err != nil { 296 result.Response = autorest.Response{Response: resp} 297 return result, autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "listByDatabaseNextResults", resp, "Failure sending next results request") 298 } 299 result, err = client.ListByDatabaseResponder(resp) 300 if err != nil { 301 err = autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "listByDatabaseNextResults", resp, "Failure responding to next results request") 302 } 303 return 304} 305 306// ListByDatabaseComplete enumerates all values, automatically crossing page boundaries as required. 307func (client BackupShortTermRetentionPoliciesClient) ListByDatabaseComplete(ctx context.Context, resourceGroupName string, serverName string, databaseName string) (result BackupShortTermRetentionPolicyListResultIterator, err error) { 308 if tracing.IsEnabled() { 309 ctx = tracing.StartSpan(ctx, fqdn+"/BackupShortTermRetentionPoliciesClient.ListByDatabase") 310 defer func() { 311 sc := -1 312 if result.Response().Response.Response != nil { 313 sc = result.page.Response().Response.Response.StatusCode 314 } 315 tracing.EndSpan(ctx, sc, err) 316 }() 317 } 318 result.page, err = client.ListByDatabase(ctx, resourceGroupName, serverName, databaseName) 319 return 320} 321 322// Update updates a database's short term retention policy. 323// Parameters: 324// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 325// from the Azure Resource Manager API or the portal. 326// serverName - the name of the server. 327// databaseName - the name of the database. 328// parameters - the short term retention policy info. 329func (client BackupShortTermRetentionPoliciesClient) Update(ctx context.Context, resourceGroupName string, serverName string, databaseName string, parameters BackupShortTermRetentionPolicy) (result BackupShortTermRetentionPoliciesUpdateFuture, err error) { 330 if tracing.IsEnabled() { 331 ctx = tracing.StartSpan(ctx, fqdn+"/BackupShortTermRetentionPoliciesClient.Update") 332 defer func() { 333 sc := -1 334 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 335 sc = result.FutureAPI.Response().StatusCode 336 } 337 tracing.EndSpan(ctx, sc, err) 338 }() 339 } 340 req, err := client.UpdatePreparer(ctx, resourceGroupName, serverName, databaseName, parameters) 341 if err != nil { 342 err = autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "Update", nil, "Failure preparing request") 343 return 344 } 345 346 result, err = client.UpdateSender(req) 347 if err != nil { 348 err = autorest.NewErrorWithError(err, "sql.BackupShortTermRetentionPoliciesClient", "Update", nil, "Failure sending request") 349 return 350 } 351 352 return 353} 354 355// UpdatePreparer prepares the Update request. 356func (client BackupShortTermRetentionPoliciesClient) UpdatePreparer(ctx context.Context, resourceGroupName string, serverName string, databaseName string, parameters BackupShortTermRetentionPolicy) (*http.Request, error) { 357 pathParameters := map[string]interface{}{ 358 "databaseName": autorest.Encode("path", databaseName), 359 "policyName": autorest.Encode("path", "default"), 360 "resourceGroupName": autorest.Encode("path", resourceGroupName), 361 "serverName": autorest.Encode("path", serverName), 362 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 363 } 364 365 const APIVersion = "2021-02-01-preview" 366 queryParameters := map[string]interface{}{ 367 "api-version": APIVersion, 368 } 369 370 preparer := autorest.CreatePreparer( 371 autorest.AsContentType("application/json; charset=utf-8"), 372 autorest.AsPatch(), 373 autorest.WithBaseURL(client.BaseURI), 374 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/backupShortTermRetentionPolicies/{policyName}", pathParameters), 375 autorest.WithJSON(parameters), 376 autorest.WithQueryParameters(queryParameters)) 377 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 378} 379 380// UpdateSender sends the Update request. The method will close the 381// http.Response Body if it receives an error. 382func (client BackupShortTermRetentionPoliciesClient) UpdateSender(req *http.Request) (future BackupShortTermRetentionPoliciesUpdateFuture, err error) { 383 var resp *http.Response 384 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 385 if err != nil { 386 return 387 } 388 var azf azure.Future 389 azf, err = azure.NewFutureFromResponse(resp) 390 future.FutureAPI = &azf 391 future.Result = future.result 392 return 393} 394 395// UpdateResponder handles the response to the Update request. The method always 396// closes the http.Response Body. 397func (client BackupShortTermRetentionPoliciesClient) UpdateResponder(resp *http.Response) (result BackupShortTermRetentionPolicy, err error) { 398 err = autorest.Respond( 399 resp, 400 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 401 autorest.ByUnmarshallingJSON(&result), 402 autorest.ByClosing()) 403 result.Response = autorest.Response{Response: resp} 404 return 405} 406