1package backup 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// RecoveryPointsClient is the open API 2.0 Specs for Azure RecoveryServices Backup service 18type RecoveryPointsClient struct { 19 BaseClient 20} 21 22// NewRecoveryPointsClient creates an instance of the RecoveryPointsClient client. 23func NewRecoveryPointsClient(subscriptionID string) RecoveryPointsClient { 24 return NewRecoveryPointsClientWithBaseURI(DefaultBaseURI, subscriptionID) 25} 26 27// NewRecoveryPointsClientWithBaseURI creates an instance of the RecoveryPointsClient client using a custom endpoint. 28// Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 29func NewRecoveryPointsClientWithBaseURI(baseURI string, subscriptionID string) RecoveryPointsClient { 30 return RecoveryPointsClient{NewWithBaseURI(baseURI, subscriptionID)} 31} 32 33// Get provides the information of the backed up data identified using RecoveryPointID. This is an asynchronous 34// operation. 35// To know the status of the operation, call the GetProtectedItemOperationResult API. 36// Parameters: 37// vaultName - the name of the recovery services vault. 38// resourceGroupName - the name of the resource group where the recovery services vault is present. 39// fabricName - fabric name associated with backed up item. 40// containerName - container name associated with backed up item. 41// protectedItemName - backed up item name whose backup data needs to be fetched. 42// recoveryPointID - recoveryPointID represents the backed up data to be fetched. 43func (client RecoveryPointsClient) Get(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, recoveryPointID string) (result RecoveryPointResource, err error) { 44 if tracing.IsEnabled() { 45 ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointsClient.Get") 46 defer func() { 47 sc := -1 48 if result.Response.Response != nil { 49 sc = result.Response.Response.StatusCode 50 } 51 tracing.EndSpan(ctx, sc, err) 52 }() 53 } 54 req, err := client.GetPreparer(ctx, vaultName, resourceGroupName, fabricName, containerName, protectedItemName, recoveryPointID) 55 if err != nil { 56 err = autorest.NewErrorWithError(err, "backup.RecoveryPointsClient", "Get", nil, "Failure preparing request") 57 return 58 } 59 60 resp, err := client.GetSender(req) 61 if err != nil { 62 result.Response = autorest.Response{Response: resp} 63 err = autorest.NewErrorWithError(err, "backup.RecoveryPointsClient", "Get", resp, "Failure sending request") 64 return 65 } 66 67 result, err = client.GetResponder(resp) 68 if err != nil { 69 err = autorest.NewErrorWithError(err, "backup.RecoveryPointsClient", "Get", resp, "Failure responding to request") 70 return 71 } 72 73 return 74} 75 76// GetPreparer prepares the Get request. 77func (client RecoveryPointsClient) GetPreparer(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, recoveryPointID string) (*http.Request, error) { 78 pathParameters := map[string]interface{}{ 79 "containerName": autorest.Encode("path", containerName), 80 "fabricName": autorest.Encode("path", fabricName), 81 "protectedItemName": autorest.Encode("path", protectedItemName), 82 "recoveryPointId": autorest.Encode("path", recoveryPointID), 83 "resourceGroupName": autorest.Encode("path", resourceGroupName), 84 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 85 "vaultName": autorest.Encode("path", vaultName), 86 } 87 88 const APIVersion = "2019-05-13" 89 queryParameters := map[string]interface{}{ 90 "api-version": APIVersion, 91 } 92 93 preparer := autorest.CreatePreparer( 94 autorest.AsGet(), 95 autorest.WithBaseURL(client.BaseURI), 96 autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}", pathParameters), 97 autorest.WithQueryParameters(queryParameters)) 98 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 99} 100 101// GetSender sends the Get request. The method will close the 102// http.Response Body if it receives an error. 103func (client RecoveryPointsClient) GetSender(req *http.Request) (*http.Response, error) { 104 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 105} 106 107// GetResponder handles the response to the Get request. The method always 108// closes the http.Response Body. 109func (client RecoveryPointsClient) GetResponder(resp *http.Response) (result RecoveryPointResource, err error) { 110 err = autorest.Respond( 111 resp, 112 azure.WithErrorUnlessStatusCode(http.StatusOK), 113 autorest.ByUnmarshallingJSON(&result), 114 autorest.ByClosing()) 115 result.Response = autorest.Response{Response: resp} 116 return 117} 118 119// List lists the backup copies for the backed up item. 120// Parameters: 121// vaultName - the name of the recovery services vault. 122// resourceGroupName - the name of the resource group where the recovery services vault is present. 123// fabricName - fabric name associated with the backed up item. 124// containerName - container name associated with the backed up item. 125// protectedItemName - backed up item whose backup copies are to be fetched. 126// filter - oData filter options. 127func (client RecoveryPointsClient) List(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, filter string) (result RecoveryPointResourceListPage, err error) { 128 if tracing.IsEnabled() { 129 ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointsClient.List") 130 defer func() { 131 sc := -1 132 if result.rprl.Response.Response != nil { 133 sc = result.rprl.Response.Response.StatusCode 134 } 135 tracing.EndSpan(ctx, sc, err) 136 }() 137 } 138 result.fn = client.listNextResults 139 req, err := client.ListPreparer(ctx, vaultName, resourceGroupName, fabricName, containerName, protectedItemName, filter) 140 if err != nil { 141 err = autorest.NewErrorWithError(err, "backup.RecoveryPointsClient", "List", nil, "Failure preparing request") 142 return 143 } 144 145 resp, err := client.ListSender(req) 146 if err != nil { 147 result.rprl.Response = autorest.Response{Response: resp} 148 err = autorest.NewErrorWithError(err, "backup.RecoveryPointsClient", "List", resp, "Failure sending request") 149 return 150 } 151 152 result.rprl, err = client.ListResponder(resp) 153 if err != nil { 154 err = autorest.NewErrorWithError(err, "backup.RecoveryPointsClient", "List", resp, "Failure responding to request") 155 return 156 } 157 if result.rprl.hasNextLink() && result.rprl.IsEmpty() { 158 err = result.NextWithContext(ctx) 159 return 160 } 161 162 return 163} 164 165// ListPreparer prepares the List request. 166func (client RecoveryPointsClient) ListPreparer(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, filter string) (*http.Request, error) { 167 pathParameters := map[string]interface{}{ 168 "containerName": autorest.Encode("path", containerName), 169 "fabricName": autorest.Encode("path", fabricName), 170 "protectedItemName": autorest.Encode("path", protectedItemName), 171 "resourceGroupName": autorest.Encode("path", resourceGroupName), 172 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 173 "vaultName": autorest.Encode("path", vaultName), 174 } 175 176 const APIVersion = "2019-05-13" 177 queryParameters := map[string]interface{}{ 178 "api-version": APIVersion, 179 } 180 if len(filter) > 0 { 181 queryParameters["$filter"] = autorest.Encode("query", filter) 182 } 183 184 preparer := autorest.CreatePreparer( 185 autorest.AsGet(), 186 autorest.WithBaseURL(client.BaseURI), 187 autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints", pathParameters), 188 autorest.WithQueryParameters(queryParameters)) 189 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 190} 191 192// ListSender sends the List request. The method will close the 193// http.Response Body if it receives an error. 194func (client RecoveryPointsClient) ListSender(req *http.Request) (*http.Response, error) { 195 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 196} 197 198// ListResponder handles the response to the List request. The method always 199// closes the http.Response Body. 200func (client RecoveryPointsClient) ListResponder(resp *http.Response) (result RecoveryPointResourceList, err error) { 201 err = autorest.Respond( 202 resp, 203 azure.WithErrorUnlessStatusCode(http.StatusOK), 204 autorest.ByUnmarshallingJSON(&result), 205 autorest.ByClosing()) 206 result.Response = autorest.Response{Response: resp} 207 return 208} 209 210// listNextResults retrieves the next set of results, if any. 211func (client RecoveryPointsClient) listNextResults(ctx context.Context, lastResults RecoveryPointResourceList) (result RecoveryPointResourceList, err error) { 212 req, err := lastResults.recoveryPointResourceListPreparer(ctx) 213 if err != nil { 214 return result, autorest.NewErrorWithError(err, "backup.RecoveryPointsClient", "listNextResults", nil, "Failure preparing next results request") 215 } 216 if req == nil { 217 return 218 } 219 resp, err := client.ListSender(req) 220 if err != nil { 221 result.Response = autorest.Response{Response: resp} 222 return result, autorest.NewErrorWithError(err, "backup.RecoveryPointsClient", "listNextResults", resp, "Failure sending next results request") 223 } 224 result, err = client.ListResponder(resp) 225 if err != nil { 226 err = autorest.NewErrorWithError(err, "backup.RecoveryPointsClient", "listNextResults", resp, "Failure responding to next results request") 227 } 228 return 229} 230 231// ListComplete enumerates all values, automatically crossing page boundaries as required. 232func (client RecoveryPointsClient) ListComplete(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, filter string) (result RecoveryPointResourceListIterator, err error) { 233 if tracing.IsEnabled() { 234 ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointsClient.List") 235 defer func() { 236 sc := -1 237 if result.Response().Response.Response != nil { 238 sc = result.page.Response().Response.Response.StatusCode 239 } 240 tracing.EndSpan(ctx, sc, err) 241 }() 242 } 243 result.page, err = client.List(ctx, vaultName, resourceGroupName, fabricName, containerName, protectedItemName, filter) 244 return 245} 246