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