1 package backup
2
3
4
5
6
7
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
18 type ProtectableItemsClient struct {
19 BaseClient
20 }
21
22
23 func NewProtectableItemsClient(subscriptionID string) ProtectableItemsClient {
24 return NewProtectableItemsClientWithBaseURI(DefaultBaseURI, subscriptionID)
25 }
26
27
28
29
30 func NewProtectableItemsClientWithBaseURI(baseURI string, subscriptionID string) ProtectableItemsClient {
31 return ProtectableItemsClient{NewWithBaseURI(baseURI, subscriptionID)}
32 }
33
34
35
36
37
38
39
40
41 func (client ProtectableItemsClient) List(ctx context.Context, vaultName string, resourceGroupName string, filter string, skipToken string) (result WorkloadProtectableItemResourceListPage, err error) {
42 if tracing.IsEnabled() {
43 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectableItemsClient.List")
44 defer func() {
45 sc := -1
46 if result.wpirl.Response.Response != nil {
47 sc = result.wpirl.Response.Response.StatusCode
48 }
49 tracing.EndSpan(ctx, sc, err)
50 }()
51 }
52 result.fn = client.listNextResults
53 req, err := client.ListPreparer(ctx, vaultName, resourceGroupName, filter, skipToken)
54 if err != nil {
55 err = autorest.NewErrorWithError(err, "backup.ProtectableItemsClient", "List", nil, "Failure preparing request")
56 return
57 }
58
59 resp, err := client.ListSender(req)
60 if err != nil {
61 result.wpirl.Response = autorest.Response{Response: resp}
62 err = autorest.NewErrorWithError(err, "backup.ProtectableItemsClient", "List", resp, "Failure sending request")
63 return
64 }
65
66 result.wpirl, err = client.ListResponder(resp)
67 if err != nil {
68 err = autorest.NewErrorWithError(err, "backup.ProtectableItemsClient", "List", resp, "Failure responding to request")
69 return
70 }
71 if result.wpirl.hasNextLink() && result.wpirl.IsEmpty() {
72 err = result.NextWithContext(ctx)
73 return
74 }
75
76 return
77 }
78
79
80 func (client ProtectableItemsClient) ListPreparer(ctx context.Context, vaultName string, resourceGroupName string, filter string, skipToken string) (*http.Request, error) {
81 pathParameters := map[string]interface{}{
82 "resourceGroupName": autorest.Encode("path", resourceGroupName),
83 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
84 "vaultName": autorest.Encode("path", vaultName),
85 }
86
87 const APIVersion = "2021-07-01"
88 queryParameters := map[string]interface{}{
89 "api-version": APIVersion,
90 }
91 if len(filter) > 0 {
92 queryParameters["$filter"] = autorest.Encode("query", filter)
93 }
94 if len(skipToken) > 0 {
95 queryParameters["$skipToken"] = autorest.Encode("query", skipToken)
96 }
97
98 preparer := autorest.CreatePreparer(
99 autorest.AsGet(),
100 autorest.WithBaseURL(client.BaseURI),
101 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectableItems", pathParameters),
102 autorest.WithQueryParameters(queryParameters))
103 return preparer.Prepare((&http.Request{}).WithContext(ctx))
104 }
105
106
107
108 func (client ProtectableItemsClient) ListSender(req *http.Request) (*http.Response, error) {
109 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
110 }
111
112
113
114 func (client ProtectableItemsClient) ListResponder(resp *http.Response) (result WorkloadProtectableItemResourceList, err error) {
115 err = autorest.Respond(
116 resp,
117 azure.WithErrorUnlessStatusCode(http.StatusOK),
118 autorest.ByUnmarshallingJSON(&result),
119 autorest.ByClosing())
120 result.Response = autorest.Response{Response: resp}
121 return
122 }
123
124
125 func (client ProtectableItemsClient) listNextResults(ctx context.Context, lastResults WorkloadProtectableItemResourceList) (result WorkloadProtectableItemResourceList, err error) {
126 req, err := lastResults.workloadProtectableItemResourceListPreparer(ctx)
127 if err != nil {
128 return result, autorest.NewErrorWithError(err, "backup.ProtectableItemsClient", "listNextResults", nil, "Failure preparing next results request")
129 }
130 if req == nil {
131 return
132 }
133 resp, err := client.ListSender(req)
134 if err != nil {
135 result.Response = autorest.Response{Response: resp}
136 return result, autorest.NewErrorWithError(err, "backup.ProtectableItemsClient", "listNextResults", resp, "Failure sending next results request")
137 }
138 result, err = client.ListResponder(resp)
139 if err != nil {
140 err = autorest.NewErrorWithError(err, "backup.ProtectableItemsClient", "listNextResults", resp, "Failure responding to next results request")
141 }
142 return
143 }
144
145
146 func (client ProtectableItemsClient) ListComplete(ctx context.Context, vaultName string, resourceGroupName string, filter string, skipToken string) (result WorkloadProtectableItemResourceListIterator, err error) {
147 if tracing.IsEnabled() {
148 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectableItemsClient.List")
149 defer func() {
150 sc := -1
151 if result.Response().Response.Response != nil {
152 sc = result.page.Response().Response.Response.StatusCode
153 }
154 tracing.EndSpan(ctx, sc, err)
155 }()
156 }
157 result.page, err = client.List(ctx, vaultName, resourceGroupName, filter, skipToken)
158 return
159 }
160
View as plain text