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