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