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