1
2
3
4
5
6 package backup
7
8
9
10
11
12
13
14 import (
15 "context"
16 "github.com/Azure/go-autorest/autorest"
17 "github.com/Azure/go-autorest/autorest/azure"
18 "github.com/Azure/go-autorest/autorest/validation"
19 "github.com/Azure/go-autorest/tracing"
20 "net/http"
21 )
22
23 const (
24
25 DefaultBaseURI = "https://management.azure.com"
26 )
27
28
29 type BaseClient struct {
30 autorest.Client
31 BaseURI string
32 SubscriptionID string
33 }
34
35
36 func New(subscriptionID string) BaseClient {
37 return NewWithBaseURI(DefaultBaseURI, subscriptionID)
38 }
39
40
41
42 func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient {
43 return BaseClient{
44 Client: autorest.NewClientWithUserAgent(UserAgent()),
45 BaseURI: baseURI,
46 SubscriptionID: subscriptionID,
47 }
48 }
49
50
51
52
53
54
55 func (client BaseClient) BMSPrepareDataMove(ctx context.Context, vaultName string, resourceGroupName string, parameters PrepareDataMoveRequest) (result BMSPrepareDataMoveFuture, err error) {
56 if tracing.IsEnabled() {
57 ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.BMSPrepareDataMove")
58 defer func() {
59 sc := -1
60 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
61 sc = result.FutureAPI.Response().StatusCode
62 }
63 tracing.EndSpan(ctx, sc, err)
64 }()
65 }
66 if err := validation.Validate([]validation.Validation{
67 {TargetValue: parameters,
68 Constraints: []validation.Constraint{{Target: "parameters.TargetResourceID", Name: validation.Null, Rule: true, Chain: nil},
69 {Target: "parameters.TargetRegion", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil {
70 return result, validation.NewError("backup.BaseClient", "BMSPrepareDataMove", err.Error())
71 }
72
73 req, err := client.BMSPrepareDataMovePreparer(ctx, vaultName, resourceGroupName, parameters)
74 if err != nil {
75 err = autorest.NewErrorWithError(err, "backup.BaseClient", "BMSPrepareDataMove", nil, "Failure preparing request")
76 return
77 }
78
79 result, err = client.BMSPrepareDataMoveSender(req)
80 if err != nil {
81 err = autorest.NewErrorWithError(err, "backup.BaseClient", "BMSPrepareDataMove", result.Response(), "Failure sending request")
82 return
83 }
84
85 return
86 }
87
88
89 func (client BaseClient) BMSPrepareDataMovePreparer(ctx context.Context, vaultName string, resourceGroupName string, parameters PrepareDataMoveRequest) (*http.Request, error) {
90 pathParameters := map[string]interface{}{
91 "resourceGroupName": autorest.Encode("path", resourceGroupName),
92 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
93 "vaultName": autorest.Encode("path", vaultName),
94 }
95
96 const APIVersion = "2021-12-01"
97 queryParameters := map[string]interface{}{
98 "api-version": APIVersion,
99 }
100
101 preparer := autorest.CreatePreparer(
102 autorest.AsContentType("application/json; charset=utf-8"),
103 autorest.AsPost(),
104 autorest.WithBaseURL(client.BaseURI),
105 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/prepareDataMove", pathParameters),
106 autorest.WithJSON(parameters),
107 autorest.WithQueryParameters(queryParameters))
108 return preparer.Prepare((&http.Request{}).WithContext(ctx))
109 }
110
111
112
113 func (client BaseClient) BMSPrepareDataMoveSender(req *http.Request) (future BMSPrepareDataMoveFuture, err error) {
114 var resp *http.Response
115 future.FutureAPI = &azure.Future{}
116 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
117 if err != nil {
118 return
119 }
120 var azf azure.Future
121 azf, err = azure.NewFutureFromResponse(resp)
122 future.FutureAPI = &azf
123 future.Result = future.result
124 return
125 }
126
127
128
129 func (client BaseClient) BMSPrepareDataMoveResponder(resp *http.Response) (result autorest.Response, err error) {
130 err = autorest.Respond(
131 resp,
132 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
133 autorest.ByClosing())
134 result.Response = resp
135 return
136 }
137
138
139
140
141
142
143 func (client BaseClient) BMSTriggerDataMove(ctx context.Context, vaultName string, resourceGroupName string, parameters TriggerDataMoveRequest) (result BMSTriggerDataMoveFuture, err error) {
144 if tracing.IsEnabled() {
145 ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.BMSTriggerDataMove")
146 defer func() {
147 sc := -1
148 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
149 sc = result.FutureAPI.Response().StatusCode
150 }
151 tracing.EndSpan(ctx, sc, err)
152 }()
153 }
154 if err := validation.Validate([]validation.Validation{
155 {TargetValue: parameters,
156 Constraints: []validation.Constraint{{Target: "parameters.SourceResourceID", Name: validation.Null, Rule: true, Chain: nil},
157 {Target: "parameters.SourceRegion", Name: validation.Null, Rule: true, Chain: nil},
158 {Target: "parameters.CorrelationID", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil {
159 return result, validation.NewError("backup.BaseClient", "BMSTriggerDataMove", err.Error())
160 }
161
162 req, err := client.BMSTriggerDataMovePreparer(ctx, vaultName, resourceGroupName, parameters)
163 if err != nil {
164 err = autorest.NewErrorWithError(err, "backup.BaseClient", "BMSTriggerDataMove", nil, "Failure preparing request")
165 return
166 }
167
168 result, err = client.BMSTriggerDataMoveSender(req)
169 if err != nil {
170 err = autorest.NewErrorWithError(err, "backup.BaseClient", "BMSTriggerDataMove", result.Response(), "Failure sending request")
171 return
172 }
173
174 return
175 }
176
177
178 func (client BaseClient) BMSTriggerDataMovePreparer(ctx context.Context, vaultName string, resourceGroupName string, parameters TriggerDataMoveRequest) (*http.Request, error) {
179 pathParameters := map[string]interface{}{
180 "resourceGroupName": autorest.Encode("path", resourceGroupName),
181 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
182 "vaultName": autorest.Encode("path", vaultName),
183 }
184
185 const APIVersion = "2021-12-01"
186 queryParameters := map[string]interface{}{
187 "api-version": APIVersion,
188 }
189
190 preparer := autorest.CreatePreparer(
191 autorest.AsContentType("application/json; charset=utf-8"),
192 autorest.AsPost(),
193 autorest.WithBaseURL(client.BaseURI),
194 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/triggerDataMove", pathParameters),
195 autorest.WithJSON(parameters),
196 autorest.WithQueryParameters(queryParameters))
197 return preparer.Prepare((&http.Request{}).WithContext(ctx))
198 }
199
200
201
202 func (client BaseClient) BMSTriggerDataMoveSender(req *http.Request) (future BMSTriggerDataMoveFuture, err error) {
203 var resp *http.Response
204 future.FutureAPI = &azure.Future{}
205 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
206 if err != nil {
207 return
208 }
209 var azf azure.Future
210 azf, err = azure.NewFutureFromResponse(resp)
211 future.FutureAPI = &azf
212 future.Result = future.result
213 return
214 }
215
216
217
218 func (client BaseClient) BMSTriggerDataMoveResponder(resp *http.Response) (result autorest.Response, err error) {
219 err = autorest.Respond(
220 resp,
221 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
222 autorest.ByClosing())
223 result.Response = resp
224 return
225 }
226
227
228
229
230
231 func (client BaseClient) GetOperationStatus(ctx context.Context, vaultName string, resourceGroupName string, operationID string) (result OperationStatus, err error) {
232 if tracing.IsEnabled() {
233 ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetOperationStatus")
234 defer func() {
235 sc := -1
236 if result.Response.Response != nil {
237 sc = result.Response.Response.StatusCode
238 }
239 tracing.EndSpan(ctx, sc, err)
240 }()
241 }
242 req, err := client.GetOperationStatusPreparer(ctx, vaultName, resourceGroupName, operationID)
243 if err != nil {
244 err = autorest.NewErrorWithError(err, "backup.BaseClient", "GetOperationStatus", nil, "Failure preparing request")
245 return
246 }
247
248 resp, err := client.GetOperationStatusSender(req)
249 if err != nil {
250 result.Response = autorest.Response{Response: resp}
251 err = autorest.NewErrorWithError(err, "backup.BaseClient", "GetOperationStatus", resp, "Failure sending request")
252 return
253 }
254
255 result, err = client.GetOperationStatusResponder(resp)
256 if err != nil {
257 err = autorest.NewErrorWithError(err, "backup.BaseClient", "GetOperationStatus", resp, "Failure responding to request")
258 return
259 }
260
261 return
262 }
263
264
265 func (client BaseClient) GetOperationStatusPreparer(ctx context.Context, vaultName string, resourceGroupName string, operationID string) (*http.Request, error) {
266 pathParameters := map[string]interface{}{
267 "operationId": autorest.Encode("path", operationID),
268 "resourceGroupName": autorest.Encode("path", resourceGroupName),
269 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
270 "vaultName": autorest.Encode("path", vaultName),
271 }
272
273 const APIVersion = "2021-12-01"
274 queryParameters := map[string]interface{}{
275 "api-version": APIVersion,
276 }
277
278 preparer := autorest.CreatePreparer(
279 autorest.AsGet(),
280 autorest.WithBaseURL(client.BaseURI),
281 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/operationStatus/{operationId}", pathParameters),
282 autorest.WithQueryParameters(queryParameters))
283 return preparer.Prepare((&http.Request{}).WithContext(ctx))
284 }
285
286
287
288 func (client BaseClient) GetOperationStatusSender(req *http.Request) (*http.Response, error) {
289 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
290 }
291
292
293
294 func (client BaseClient) GetOperationStatusResponder(resp *http.Response) (result OperationStatus, err error) {
295 err = autorest.Respond(
296 resp,
297 azure.WithErrorUnlessStatusCode(http.StatusOK),
298 autorest.ByUnmarshallingJSON(&result),
299 autorest.ByClosing())
300 result.Response = autorest.Response{Response: resp}
301 return
302 }
303
304
305
306
307
308
309 func (client BaseClient) MoveRecoveryPoint(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, recoveryPointID string, parameters MoveRPAcrossTiersRequest) (result MoveRecoveryPointFuture, err error) {
310 if tracing.IsEnabled() {
311 ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.MoveRecoveryPoint")
312 defer func() {
313 sc := -1
314 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
315 sc = result.FutureAPI.Response().StatusCode
316 }
317 tracing.EndSpan(ctx, sc, err)
318 }()
319 }
320 req, err := client.MoveRecoveryPointPreparer(ctx, vaultName, resourceGroupName, fabricName, containerName, protectedItemName, recoveryPointID, parameters)
321 if err != nil {
322 err = autorest.NewErrorWithError(err, "backup.BaseClient", "MoveRecoveryPoint", nil, "Failure preparing request")
323 return
324 }
325
326 result, err = client.MoveRecoveryPointSender(req)
327 if err != nil {
328 err = autorest.NewErrorWithError(err, "backup.BaseClient", "MoveRecoveryPoint", result.Response(), "Failure sending request")
329 return
330 }
331
332 return
333 }
334
335
336 func (client BaseClient) MoveRecoveryPointPreparer(ctx context.Context, vaultName string, resourceGroupName string, fabricName string, containerName string, protectedItemName string, recoveryPointID string, parameters MoveRPAcrossTiersRequest) (*http.Request, error) {
337 pathParameters := map[string]interface{}{
338 "containerName": autorest.Encode("path", containerName),
339 "fabricName": autorest.Encode("path", fabricName),
340 "protectedItemName": autorest.Encode("path", protectedItemName),
341 "recoveryPointId": autorest.Encode("path", recoveryPointID),
342 "resourceGroupName": autorest.Encode("path", resourceGroupName),
343 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
344 "vaultName": autorest.Encode("path", vaultName),
345 }
346
347 const APIVersion = "2021-12-01"
348 queryParameters := map[string]interface{}{
349 "api-version": APIVersion,
350 }
351
352 preparer := autorest.CreatePreparer(
353 autorest.AsContentType("application/json; charset=utf-8"),
354 autorest.AsPost(),
355 autorest.WithBaseURL(client.BaseURI),
356 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/move", pathParameters),
357 autorest.WithJSON(parameters),
358 autorest.WithQueryParameters(queryParameters))
359 return preparer.Prepare((&http.Request{}).WithContext(ctx))
360 }
361
362
363
364 func (client BaseClient) MoveRecoveryPointSender(req *http.Request) (future MoveRecoveryPointFuture, err error) {
365 var resp *http.Response
366 future.FutureAPI = &azure.Future{}
367 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
368 if err != nil {
369 return
370 }
371 var azf azure.Future
372 azf, err = azure.NewFutureFromResponse(resp)
373 future.FutureAPI = &azf
374 future.Result = future.result
375 return
376 }
377
378
379
380 func (client BaseClient) MoveRecoveryPointResponder(resp *http.Response) (result autorest.Response, err error) {
381 err = autorest.Respond(
382 resp,
383 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
384 autorest.ByClosing())
385 result.Response = resp
386 return
387 }
388
View as plain text