...

Source file src/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2021-07-01/backup/recoverypointscrr.go

Documentation: github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2021-07-01/backup

     1  package 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  
     9  import (
    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  // RecoveryPointsCrrClient is the open API 2.0 Specs for Azure RecoveryServices Backup service
    18  type RecoveryPointsCrrClient struct {
    19  	BaseClient
    20  }
    21  
    22  // NewRecoveryPointsCrrClient creates an instance of the RecoveryPointsCrrClient client.
    23  func NewRecoveryPointsCrrClient(subscriptionID string) RecoveryPointsCrrClient {
    24  	return NewRecoveryPointsCrrClientWithBaseURI(DefaultBaseURI, subscriptionID)
    25  }
    26  
    27  // NewRecoveryPointsCrrClientWithBaseURI creates an instance of the RecoveryPointsCrrClient client using a custom
    28  // endpoint.  Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure
    29  // stack).
    30  func NewRecoveryPointsCrrClientWithBaseURI(baseURI string, subscriptionID string) RecoveryPointsCrrClient {
    31  	return RecoveryPointsCrrClient{NewWithBaseURI(baseURI, subscriptionID)}
    32  }
    33  
    34  // List lists the backup copies for the backed up item.
    35  // Parameters:
    36  // vaultName - the name of the recovery services vault.
    37  // resourceGroupName - the name of the resource group where the recovery services vault is present.
    38  // fabricName - fabric name associated with the backed up item.
    39  // containerName - container name associated with the backed up item.
    40  // protectedItemName - backed up item whose backup copies are to be fetched.
    41  // filter - oData filter options.
    42  func (client RecoveryPointsCrrClient) List(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, filter string) (result RecoveryPointResourceListPage, err error) {
    43  	if tracing.IsEnabled() {
    44  		ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointsCrrClient.List")
    45  		defer func() {
    46  			sc := -1
    47  			if result.rprl.Response.Response != nil {
    48  				sc = result.rprl.Response.Response.StatusCode
    49  			}
    50  			tracing.EndSpan(ctx, sc, err)
    51  		}()
    52  	}
    53  	result.fn = client.listNextResults
    54  	req, err := client.ListPreparer(ctx, vaultName, resourceGroupName, fabricName, containerName, protectedItemName, filter)
    55  	if err != nil {
    56  		err = autorest.NewErrorWithError(err, "backup.RecoveryPointsCrrClient", "List", nil, "Failure preparing request")
    57  		return
    58  	}
    59  
    60  	resp, err := client.ListSender(req)
    61  	if err != nil {
    62  		result.rprl.Response = autorest.Response{Response: resp}
    63  		err = autorest.NewErrorWithError(err, "backup.RecoveryPointsCrrClient", "List", resp, "Failure sending request")
    64  		return
    65  	}
    66  
    67  	result.rprl, err = client.ListResponder(resp)
    68  	if err != nil {
    69  		err = autorest.NewErrorWithError(err, "backup.RecoveryPointsCrrClient", "List", resp, "Failure responding to request")
    70  		return
    71  	}
    72  	if result.rprl.hasNextLink() && result.rprl.IsEmpty() {
    73  		err = result.NextWithContext(ctx)
    74  		return
    75  	}
    76  
    77  	return
    78  }
    79  
    80  // ListPreparer prepares the List request.
    81  func (client RecoveryPointsCrrClient) ListPreparer(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, filter string) (*http.Request, error) {
    82  	pathParameters := map[string]interface{}{
    83  		"containerName":     autorest.Encode("path", containerName),
    84  		"fabricName":        autorest.Encode("path", fabricName),
    85  		"protectedItemName": autorest.Encode("path", protectedItemName),
    86  		"resourceGroupName": autorest.Encode("path", resourceGroupName),
    87  		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
    88  		"vaultName":         autorest.Encode("path", vaultName),
    89  	}
    90  
    91  	const APIVersion = "2018-12-20"
    92  	queryParameters := map[string]interface{}{
    93  		"api-version": APIVersion,
    94  	}
    95  	if len(filter) > 0 {
    96  		queryParameters["$filter"] = autorest.Encode("query", filter)
    97  	}
    98  
    99  	preparer := autorest.CreatePreparer(
   100  		autorest.AsGet(),
   101  		autorest.WithBaseURL(client.BaseURI),
   102  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/", pathParameters),
   103  		autorest.WithQueryParameters(queryParameters))
   104  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   105  }
   106  
   107  // ListSender sends the List request. The method will close the
   108  // http.Response Body if it receives an error.
   109  func (client RecoveryPointsCrrClient) ListSender(req *http.Request) (*http.Response, error) {
   110  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   111  }
   112  
   113  // ListResponder handles the response to the List request. The method always
   114  // closes the http.Response Body.
   115  func (client RecoveryPointsCrrClient) ListResponder(resp *http.Response) (result RecoveryPointResourceList, err error) {
   116  	err = autorest.Respond(
   117  		resp,
   118  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   119  		autorest.ByUnmarshallingJSON(&result),
   120  		autorest.ByClosing())
   121  	result.Response = autorest.Response{Response: resp}
   122  	return
   123  }
   124  
   125  // listNextResults retrieves the next set of results, if any.
   126  func (client RecoveryPointsCrrClient) listNextResults(ctx context.Context, lastResults RecoveryPointResourceList) (result RecoveryPointResourceList, err error) {
   127  	req, err := lastResults.recoveryPointResourceListPreparer(ctx)
   128  	if err != nil {
   129  		return result, autorest.NewErrorWithError(err, "backup.RecoveryPointsCrrClient", "listNextResults", nil, "Failure preparing next results request")
   130  	}
   131  	if req == nil {
   132  		return
   133  	}
   134  	resp, err := client.ListSender(req)
   135  	if err != nil {
   136  		result.Response = autorest.Response{Response: resp}
   137  		return result, autorest.NewErrorWithError(err, "backup.RecoveryPointsCrrClient", "listNextResults", resp, "Failure sending next results request")
   138  	}
   139  	result, err = client.ListResponder(resp)
   140  	if err != nil {
   141  		err = autorest.NewErrorWithError(err, "backup.RecoveryPointsCrrClient", "listNextResults", resp, "Failure responding to next results request")
   142  	}
   143  	return
   144  }
   145  
   146  // ListComplete enumerates all values, automatically crossing page boundaries as required.
   147  func (client RecoveryPointsCrrClient) ListComplete(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, filter string) (result RecoveryPointResourceListIterator, err error) {
   148  	if tracing.IsEnabled() {
   149  		ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointsCrrClient.List")
   150  		defer func() {
   151  			sc := -1
   152  			if result.Response().Response.Response != nil {
   153  				sc = result.page.Response().Response.Response.StatusCode
   154  			}
   155  			tracing.EndSpan(ctx, sc, err)
   156  		}()
   157  	}
   158  	result.page, err = client.List(ctx, vaultName, resourceGroupName, fabricName, containerName, protectedItemName, filter)
   159  	return
   160  }
   161  

View as plain text