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