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