1package siterecovery 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 client for the RecoveryPoints methods of the Siterecovery service. 18type RecoveryPointsClient struct { 19 BaseClient 20} 21 22// NewRecoveryPointsClient creates an instance of the RecoveryPointsClient client. 23func NewRecoveryPointsClient(subscriptionID string, resourceGroupName string, resourceName string) RecoveryPointsClient { 24 return NewRecoveryPointsClientWithBaseURI(DefaultBaseURI, subscriptionID, resourceGroupName, resourceName) 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, resourceGroupName string, resourceName string) RecoveryPointsClient { 30 return RecoveryPointsClient{NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName)} 31} 32 33// Get get the details of specified recovery point. 34// Parameters: 35// fabricName - the fabric name. 36// protectionContainerName - the protection container name. 37// replicatedProtectedItemName - the replication protected item's name. 38// recoveryPointName - the recovery point name. 39func (client RecoveryPointsClient) Get(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, recoveryPointName string) (result RecoveryPoint, err error) { 40 if tracing.IsEnabled() { 41 ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointsClient.Get") 42 defer func() { 43 sc := -1 44 if result.Response.Response != nil { 45 sc = result.Response.Response.StatusCode 46 } 47 tracing.EndSpan(ctx, sc, err) 48 }() 49 } 50 req, err := client.GetPreparer(ctx, fabricName, protectionContainerName, replicatedProtectedItemName, recoveryPointName) 51 if err != nil { 52 err = autorest.NewErrorWithError(err, "siterecovery.RecoveryPointsClient", "Get", nil, "Failure preparing request") 53 return 54 } 55 56 resp, err := client.GetSender(req) 57 if err != nil { 58 result.Response = autorest.Response{Response: resp} 59 err = autorest.NewErrorWithError(err, "siterecovery.RecoveryPointsClient", "Get", resp, "Failure sending request") 60 return 61 } 62 63 result, err = client.GetResponder(resp) 64 if err != nil { 65 err = autorest.NewErrorWithError(err, "siterecovery.RecoveryPointsClient", "Get", resp, "Failure responding to request") 66 return 67 } 68 69 return 70} 71 72// GetPreparer prepares the Get request. 73func (client RecoveryPointsClient) GetPreparer(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, recoveryPointName string) (*http.Request, error) { 74 pathParameters := map[string]interface{}{ 75 "fabricName": autorest.Encode("path", fabricName), 76 "protectionContainerName": autorest.Encode("path", protectionContainerName), 77 "recoveryPointName": autorest.Encode("path", recoveryPointName), 78 "replicatedProtectedItemName": autorest.Encode("path", replicatedProtectedItemName), 79 "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), 80 "resourceName": autorest.Encode("path", client.ResourceName), 81 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 82 } 83 84 const APIVersion = "2016-08-10" 85 queryParameters := map[string]interface{}{ 86 "api-version": APIVersion, 87 } 88 89 preparer := autorest.CreatePreparer( 90 autorest.AsGet(), 91 autorest.WithBaseURL(client.BaseURI), 92 autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/recoveryPoints/{recoveryPointName}", pathParameters), 93 autorest.WithQueryParameters(queryParameters)) 94 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 95} 96 97// GetSender sends the Get request. The method will close the 98// http.Response Body if it receives an error. 99func (client RecoveryPointsClient) GetSender(req *http.Request) (*http.Response, error) { 100 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 101} 102 103// GetResponder handles the response to the Get request. The method always 104// closes the http.Response Body. 105func (client RecoveryPointsClient) GetResponder(resp *http.Response) (result RecoveryPoint, err error) { 106 err = autorest.Respond( 107 resp, 108 azure.WithErrorUnlessStatusCode(http.StatusOK), 109 autorest.ByUnmarshallingJSON(&result), 110 autorest.ByClosing()) 111 result.Response = autorest.Response{Response: resp} 112 return 113} 114 115// ListByReplicationProtectedItems lists the available recovery points for a replication protected item. 116// Parameters: 117// fabricName - the fabric name. 118// protectionContainerName - the protection container name. 119// replicatedProtectedItemName - the replication protected item's name. 120func (client RecoveryPointsClient) ListByReplicationProtectedItems(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result RecoveryPointCollectionPage, err error) { 121 if tracing.IsEnabled() { 122 ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointsClient.ListByReplicationProtectedItems") 123 defer func() { 124 sc := -1 125 if result.RPCVar.Response.Response != nil { 126 sc = result.RPCVar.Response.Response.StatusCode 127 } 128 tracing.EndSpan(ctx, sc, err) 129 }() 130 } 131 result.fn = client.listByReplicationProtectedItemsNextResults 132 req, err := client.ListByReplicationProtectedItemsPreparer(ctx, fabricName, protectionContainerName, replicatedProtectedItemName) 133 if err != nil { 134 err = autorest.NewErrorWithError(err, "siterecovery.RecoveryPointsClient", "ListByReplicationProtectedItems", nil, "Failure preparing request") 135 return 136 } 137 138 resp, err := client.ListByReplicationProtectedItemsSender(req) 139 if err != nil { 140 result.RPCVar.Response = autorest.Response{Response: resp} 141 err = autorest.NewErrorWithError(err, "siterecovery.RecoveryPointsClient", "ListByReplicationProtectedItems", resp, "Failure sending request") 142 return 143 } 144 145 result.RPCVar, err = client.ListByReplicationProtectedItemsResponder(resp) 146 if err != nil { 147 err = autorest.NewErrorWithError(err, "siterecovery.RecoveryPointsClient", "ListByReplicationProtectedItems", resp, "Failure responding to request") 148 return 149 } 150 if result.RPCVar.hasNextLink() && result.RPCVar.IsEmpty() { 151 err = result.NextWithContext(ctx) 152 return 153 } 154 155 return 156} 157 158// ListByReplicationProtectedItemsPreparer prepares the ListByReplicationProtectedItems request. 159func (client RecoveryPointsClient) ListByReplicationProtectedItemsPreparer(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (*http.Request, error) { 160 pathParameters := map[string]interface{}{ 161 "fabricName": autorest.Encode("path", fabricName), 162 "protectionContainerName": autorest.Encode("path", protectionContainerName), 163 "replicatedProtectedItemName": autorest.Encode("path", replicatedProtectedItemName), 164 "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), 165 "resourceName": autorest.Encode("path", client.ResourceName), 166 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 167 } 168 169 const APIVersion = "2016-08-10" 170 queryParameters := map[string]interface{}{ 171 "api-version": APIVersion, 172 } 173 174 preparer := autorest.CreatePreparer( 175 autorest.AsGet(), 176 autorest.WithBaseURL(client.BaseURI), 177 autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/recoveryPoints", pathParameters), 178 autorest.WithQueryParameters(queryParameters)) 179 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 180} 181 182// ListByReplicationProtectedItemsSender sends the ListByReplicationProtectedItems request. The method will close the 183// http.Response Body if it receives an error. 184func (client RecoveryPointsClient) ListByReplicationProtectedItemsSender(req *http.Request) (*http.Response, error) { 185 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 186} 187 188// ListByReplicationProtectedItemsResponder handles the response to the ListByReplicationProtectedItems request. The method always 189// closes the http.Response Body. 190func (client RecoveryPointsClient) ListByReplicationProtectedItemsResponder(resp *http.Response) (result RecoveryPointCollection, err error) { 191 err = autorest.Respond( 192 resp, 193 azure.WithErrorUnlessStatusCode(http.StatusOK), 194 autorest.ByUnmarshallingJSON(&result), 195 autorest.ByClosing()) 196 result.Response = autorest.Response{Response: resp} 197 return 198} 199 200// listByReplicationProtectedItemsNextResults retrieves the next set of results, if any. 201func (client RecoveryPointsClient) listByReplicationProtectedItemsNextResults(ctx context.Context, lastResults RecoveryPointCollection) (result RecoveryPointCollection, err error) { 202 req, err := lastResults.recoveryPointCollectionPreparer(ctx) 203 if err != nil { 204 return result, autorest.NewErrorWithError(err, "siterecovery.RecoveryPointsClient", "listByReplicationProtectedItemsNextResults", nil, "Failure preparing next results request") 205 } 206 if req == nil { 207 return 208 } 209 resp, err := client.ListByReplicationProtectedItemsSender(req) 210 if err != nil { 211 result.Response = autorest.Response{Response: resp} 212 return result, autorest.NewErrorWithError(err, "siterecovery.RecoveryPointsClient", "listByReplicationProtectedItemsNextResults", resp, "Failure sending next results request") 213 } 214 result, err = client.ListByReplicationProtectedItemsResponder(resp) 215 if err != nil { 216 err = autorest.NewErrorWithError(err, "siterecovery.RecoveryPointsClient", "listByReplicationProtectedItemsNextResults", resp, "Failure responding to next results request") 217 } 218 return 219} 220 221// ListByReplicationProtectedItemsComplete enumerates all values, automatically crossing page boundaries as required. 222func (client RecoveryPointsClient) ListByReplicationProtectedItemsComplete(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result RecoveryPointCollectionIterator, err error) { 223 if tracing.IsEnabled() { 224 ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointsClient.ListByReplicationProtectedItems") 225 defer func() { 226 sc := -1 227 if result.Response().Response.Response != nil { 228 sc = result.page.Response().Response.Response.StatusCode 229 } 230 tracing.EndSpan(ctx, sc, err) 231 }() 232 } 233 result.page, err = client.ListByReplicationProtectedItems(ctx, fabricName, protectionContainerName, replicatedProtectedItemName) 234 return 235} 236