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// EnginesClient is the open API 2.0 Specs for Azure RecoveryServices Backup service 18type EnginesClient struct { 19 BaseClient 20} 21 22// NewEnginesClient creates an instance of the EnginesClient client. 23func NewEnginesClient(subscriptionID string) EnginesClient { 24 return NewEnginesClientWithBaseURI(DefaultBaseURI, subscriptionID) 25} 26 27// NewEnginesClientWithBaseURI creates an instance of the EnginesClient client using a custom endpoint. Use this when 28// interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 29func NewEnginesClientWithBaseURI(baseURI string, subscriptionID string) EnginesClient { 30 return EnginesClient{NewWithBaseURI(baseURI, subscriptionID)} 31} 32 33// Get returns backup management server registered to Recovery Services Vault. 34// Parameters: 35// vaultName - the name of the recovery services vault. 36// resourceGroupName - the name of the resource group where the recovery services vault is present. 37// backupEngineName - name of the backup management server. 38// filter - oData filter options. 39// skipToken - skipToken Filter. 40func (client EnginesClient) Get(ctx context.Context, vaultName string, resourceGroupName string, backupEngineName string, filter string, skipToken string) (result EngineBaseResource, err error) { 41 if tracing.IsEnabled() { 42 ctx = tracing.StartSpan(ctx, fqdn+"/EnginesClient.Get") 43 defer func() { 44 sc := -1 45 if result.Response.Response != nil { 46 sc = result.Response.Response.StatusCode 47 } 48 tracing.EndSpan(ctx, sc, err) 49 }() 50 } 51 req, err := client.GetPreparer(ctx, vaultName, resourceGroupName, backupEngineName, filter, skipToken) 52 if err != nil { 53 err = autorest.NewErrorWithError(err, "backup.EnginesClient", "Get", nil, "Failure preparing request") 54 return 55 } 56 57 resp, err := client.GetSender(req) 58 if err != nil { 59 result.Response = autorest.Response{Response: resp} 60 err = autorest.NewErrorWithError(err, "backup.EnginesClient", "Get", resp, "Failure sending request") 61 return 62 } 63 64 result, err = client.GetResponder(resp) 65 if err != nil { 66 err = autorest.NewErrorWithError(err, "backup.EnginesClient", "Get", resp, "Failure responding to request") 67 return 68 } 69 70 return 71} 72 73// GetPreparer prepares the Get request. 74func (client EnginesClient) GetPreparer(ctx context.Context, vaultName string, resourceGroupName string, backupEngineName string, filter string, skipToken string) (*http.Request, error) { 75 pathParameters := map[string]interface{}{ 76 "backupEngineName": autorest.Encode("path", backupEngineName), 77 "resourceGroupName": autorest.Encode("path", resourceGroupName), 78 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 79 "vaultName": autorest.Encode("path", vaultName), 80 } 81 82 const APIVersion = "2021-01-01" 83 queryParameters := map[string]interface{}{ 84 "api-version": APIVersion, 85 } 86 if len(filter) > 0 { 87 queryParameters["$filter"] = autorest.Encode("query", filter) 88 } 89 if len(skipToken) > 0 { 90 queryParameters["$skipToken"] = autorest.Encode("query", skipToken) 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}/backupEngines/{backupEngineName}", 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 EnginesClient) 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 EnginesClient) GetResponder(resp *http.Response) (result EngineBaseResource, 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 backup management servers registered to Recovery Services Vault. Returns a pageable list of servers. 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// filter - oData filter options. 124// skipToken - skipToken Filter. 125func (client EnginesClient) List(ctx context.Context, vaultName string, resourceGroupName string, filter string, skipToken string) (result EngineBaseResourceListPage, err error) { 126 if tracing.IsEnabled() { 127 ctx = tracing.StartSpan(ctx, fqdn+"/EnginesClient.List") 128 defer func() { 129 sc := -1 130 if result.ebrl.Response.Response != nil { 131 sc = result.ebrl.Response.Response.StatusCode 132 } 133 tracing.EndSpan(ctx, sc, err) 134 }() 135 } 136 result.fn = client.listNextResults 137 req, err := client.ListPreparer(ctx, vaultName, resourceGroupName, filter, skipToken) 138 if err != nil { 139 err = autorest.NewErrorWithError(err, "backup.EnginesClient", "List", nil, "Failure preparing request") 140 return 141 } 142 143 resp, err := client.ListSender(req) 144 if err != nil { 145 result.ebrl.Response = autorest.Response{Response: resp} 146 err = autorest.NewErrorWithError(err, "backup.EnginesClient", "List", resp, "Failure sending request") 147 return 148 } 149 150 result.ebrl, err = client.ListResponder(resp) 151 if err != nil { 152 err = autorest.NewErrorWithError(err, "backup.EnginesClient", "List", resp, "Failure responding to request") 153 return 154 } 155 if result.ebrl.hasNextLink() && result.ebrl.IsEmpty() { 156 err = result.NextWithContext(ctx) 157 return 158 } 159 160 return 161} 162 163// ListPreparer prepares the List request. 164func (client EnginesClient) ListPreparer(ctx context.Context, vaultName string, resourceGroupName string, filter string, skipToken string) (*http.Request, error) { 165 pathParameters := map[string]interface{}{ 166 "resourceGroupName": autorest.Encode("path", resourceGroupName), 167 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 168 "vaultName": autorest.Encode("path", vaultName), 169 } 170 171 const APIVersion = "2021-01-01" 172 queryParameters := map[string]interface{}{ 173 "api-version": APIVersion, 174 } 175 if len(filter) > 0 { 176 queryParameters["$filter"] = autorest.Encode("query", filter) 177 } 178 if len(skipToken) > 0 { 179 queryParameters["$skipToken"] = autorest.Encode("query", skipToken) 180 } 181 182 preparer := autorest.CreatePreparer( 183 autorest.AsGet(), 184 autorest.WithBaseURL(client.BaseURI), 185 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEngines", pathParameters), 186 autorest.WithQueryParameters(queryParameters)) 187 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 188} 189 190// ListSender sends the List request. The method will close the 191// http.Response Body if it receives an error. 192func (client EnginesClient) ListSender(req *http.Request) (*http.Response, error) { 193 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 194} 195 196// ListResponder handles the response to the List request. The method always 197// closes the http.Response Body. 198func (client EnginesClient) ListResponder(resp *http.Response) (result EngineBaseResourceList, err error) { 199 err = autorest.Respond( 200 resp, 201 azure.WithErrorUnlessStatusCode(http.StatusOK), 202 autorest.ByUnmarshallingJSON(&result), 203 autorest.ByClosing()) 204 result.Response = autorest.Response{Response: resp} 205 return 206} 207 208// listNextResults retrieves the next set of results, if any. 209func (client EnginesClient) listNextResults(ctx context.Context, lastResults EngineBaseResourceList) (result EngineBaseResourceList, err error) { 210 req, err := lastResults.engineBaseResourceListPreparer(ctx) 211 if err != nil { 212 return result, autorest.NewErrorWithError(err, "backup.EnginesClient", "listNextResults", nil, "Failure preparing next results request") 213 } 214 if req == nil { 215 return 216 } 217 resp, err := client.ListSender(req) 218 if err != nil { 219 result.Response = autorest.Response{Response: resp} 220 return result, autorest.NewErrorWithError(err, "backup.EnginesClient", "listNextResults", resp, "Failure sending next results request") 221 } 222 result, err = client.ListResponder(resp) 223 if err != nil { 224 err = autorest.NewErrorWithError(err, "backup.EnginesClient", "listNextResults", resp, "Failure responding to next results request") 225 } 226 return 227} 228 229// ListComplete enumerates all values, automatically crossing page boundaries as required. 230func (client EnginesClient) ListComplete(ctx context.Context, vaultName string, resourceGroupName string, filter string, skipToken string) (result EngineBaseResourceListIterator, err error) { 231 if tracing.IsEnabled() { 232 ctx = tracing.StartSpan(ctx, fqdn+"/EnginesClient.List") 233 defer func() { 234 sc := -1 235 if result.Response().Response.Response != nil { 236 sc = result.page.Response().Response.Response.StatusCode 237 } 238 tracing.EndSpan(ctx, sc, err) 239 }() 240 } 241 result.page, err = client.List(ctx, vaultName, resourceGroupName, filter, skipToken) 242 return 243} 244