1 package consumption
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/autorest/validation"
14 "github.com/Azure/go-autorest/tracing"
15 "net/http"
16 )
17
18
19
20 type MarketplacesByDepartmentClient struct {
21 BaseClient
22 }
23
24
25 func NewMarketplacesByDepartmentClient(subscriptionID string) MarketplacesByDepartmentClient {
26 return NewMarketplacesByDepartmentClientWithBaseURI(DefaultBaseURI, subscriptionID)
27 }
28
29
30
31
32 func NewMarketplacesByDepartmentClientWithBaseURI(baseURI string, subscriptionID string) MarketplacesByDepartmentClient {
33 return MarketplacesByDepartmentClient{NewWithBaseURI(baseURI, subscriptionID)}
34 }
35
36
37
38
39
40
41
42
43
44
45
46
47 func (client MarketplacesByDepartmentClient) List(ctx context.Context, departmentID string, filter string, top *int32, skiptoken string) (result MarketplacesListResultPage, err error) {
48 if tracing.IsEnabled() {
49 ctx = tracing.StartSpan(ctx, fqdn+"/MarketplacesByDepartmentClient.List")
50 defer func() {
51 sc := -1
52 if result.mlr.Response.Response != nil {
53 sc = result.mlr.Response.Response.StatusCode
54 }
55 tracing.EndSpan(ctx, sc, err)
56 }()
57 }
58 if err := validation.Validate([]validation.Validation{
59 {TargetValue: top,
60 Constraints: []validation.Constraint{{Target: "top", Name: validation.Null, Rule: false,
61 Chain: []validation.Constraint{{Target: "top", Name: validation.InclusiveMaximum, Rule: int64(1000), Chain: nil},
62 {Target: "top", Name: validation.InclusiveMinimum, Rule: int64(1), Chain: nil},
63 }}}}}); err != nil {
64 return result, validation.NewError("consumption.MarketplacesByDepartmentClient", "List", err.Error())
65 }
66
67 result.fn = client.listNextResults
68 req, err := client.ListPreparer(ctx, departmentID, filter, top, skiptoken)
69 if err != nil {
70 err = autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "List", nil, "Failure preparing request")
71 return
72 }
73
74 resp, err := client.ListSender(req)
75 if err != nil {
76 result.mlr.Response = autorest.Response{Response: resp}
77 err = autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "List", resp, "Failure sending request")
78 return
79 }
80
81 result.mlr, err = client.ListResponder(resp)
82 if err != nil {
83 err = autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "List", resp, "Failure responding to request")
84 return
85 }
86 if result.mlr.hasNextLink() && result.mlr.IsEmpty() {
87 err = result.NextWithContext(ctx)
88 return
89 }
90
91 return
92 }
93
94
95 func (client MarketplacesByDepartmentClient) ListPreparer(ctx context.Context, departmentID string, filter string, top *int32, skiptoken string) (*http.Request, error) {
96 pathParameters := map[string]interface{}{
97 "departmentId": autorest.Encode("path", departmentID),
98 }
99
100 const APIVersion = "2018-03-31"
101 queryParameters := map[string]interface{}{
102 "api-version": APIVersion,
103 }
104 if len(filter) > 0 {
105 queryParameters["$filter"] = autorest.Encode("query", filter)
106 }
107 if top != nil {
108 queryParameters["$top"] = autorest.Encode("query", *top)
109 }
110 if len(skiptoken) > 0 {
111 queryParameters["$skiptoken"] = autorest.Encode("query", skiptoken)
112 }
113
114 preparer := autorest.CreatePreparer(
115 autorest.AsGet(),
116 autorest.WithBaseURL(client.BaseURI),
117 autorest.WithPathParameters("/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Consumption/marketplaces", pathParameters),
118 autorest.WithQueryParameters(queryParameters))
119 return preparer.Prepare((&http.Request{}).WithContext(ctx))
120 }
121
122
123
124 func (client MarketplacesByDepartmentClient) ListSender(req *http.Request) (*http.Response, error) {
125 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
126 }
127
128
129
130 func (client MarketplacesByDepartmentClient) ListResponder(resp *http.Response) (result MarketplacesListResult, err error) {
131 err = autorest.Respond(
132 resp,
133 azure.WithErrorUnlessStatusCode(http.StatusOK),
134 autorest.ByUnmarshallingJSON(&result),
135 autorest.ByClosing())
136 result.Response = autorest.Response{Response: resp}
137 return
138 }
139
140
141 func (client MarketplacesByDepartmentClient) listNextResults(ctx context.Context, lastResults MarketplacesListResult) (result MarketplacesListResult, err error) {
142 req, err := lastResults.marketplacesListResultPreparer(ctx)
143 if err != nil {
144 return result, autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "listNextResults", nil, "Failure preparing next results request")
145 }
146 if req == nil {
147 return
148 }
149 resp, err := client.ListSender(req)
150 if err != nil {
151 result.Response = autorest.Response{Response: resp}
152 return result, autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "listNextResults", resp, "Failure sending next results request")
153 }
154 result, err = client.ListResponder(resp)
155 if err != nil {
156 err = autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "listNextResults", resp, "Failure responding to next results request")
157 }
158 return
159 }
160
161
162 func (client MarketplacesByDepartmentClient) ListComplete(ctx context.Context, departmentID string, filter string, top *int32, skiptoken string) (result MarketplacesListResultIterator, err error) {
163 if tracing.IsEnabled() {
164 ctx = tracing.StartSpan(ctx, fqdn+"/MarketplacesByDepartmentClient.List")
165 defer func() {
166 sc := -1
167 if result.Response().Response.Response != nil {
168 sc = result.page.Response().Response.Response.StatusCode
169 }
170 tracing.EndSpan(ctx, sc, err)
171 }()
172 }
173 result.page, err = client.List(ctx, departmentID, filter, top, skiptoken)
174 return
175 }
176
177
178
179
180
181
182
183
184
185
186
187
188
189 func (client MarketplacesByDepartmentClient) ListByBillingPeriod(ctx context.Context, departmentID string, billingPeriodName string, filter string, top *int32, skiptoken string) (result MarketplacesListResultPage, err error) {
190 if tracing.IsEnabled() {
191 ctx = tracing.StartSpan(ctx, fqdn+"/MarketplacesByDepartmentClient.ListByBillingPeriod")
192 defer func() {
193 sc := -1
194 if result.mlr.Response.Response != nil {
195 sc = result.mlr.Response.Response.StatusCode
196 }
197 tracing.EndSpan(ctx, sc, err)
198 }()
199 }
200 if err := validation.Validate([]validation.Validation{
201 {TargetValue: top,
202 Constraints: []validation.Constraint{{Target: "top", Name: validation.Null, Rule: false,
203 Chain: []validation.Constraint{{Target: "top", Name: validation.InclusiveMaximum, Rule: int64(1000), Chain: nil},
204 {Target: "top", Name: validation.InclusiveMinimum, Rule: int64(1), Chain: nil},
205 }}}}}); err != nil {
206 return result, validation.NewError("consumption.MarketplacesByDepartmentClient", "ListByBillingPeriod", err.Error())
207 }
208
209 result.fn = client.listByBillingPeriodNextResults
210 req, err := client.ListByBillingPeriodPreparer(ctx, departmentID, billingPeriodName, filter, top, skiptoken)
211 if err != nil {
212 err = autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "ListByBillingPeriod", nil, "Failure preparing request")
213 return
214 }
215
216 resp, err := client.ListByBillingPeriodSender(req)
217 if err != nil {
218 result.mlr.Response = autorest.Response{Response: resp}
219 err = autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "ListByBillingPeriod", resp, "Failure sending request")
220 return
221 }
222
223 result.mlr, err = client.ListByBillingPeriodResponder(resp)
224 if err != nil {
225 err = autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "ListByBillingPeriod", resp, "Failure responding to request")
226 return
227 }
228 if result.mlr.hasNextLink() && result.mlr.IsEmpty() {
229 err = result.NextWithContext(ctx)
230 return
231 }
232
233 return
234 }
235
236
237 func (client MarketplacesByDepartmentClient) ListByBillingPeriodPreparer(ctx context.Context, departmentID string, billingPeriodName string, filter string, top *int32, skiptoken string) (*http.Request, error) {
238 pathParameters := map[string]interface{}{
239 "billingPeriodName": autorest.Encode("path", billingPeriodName),
240 "departmentId": autorest.Encode("path", departmentID),
241 }
242
243 const APIVersion = "2018-03-31"
244 queryParameters := map[string]interface{}{
245 "api-version": APIVersion,
246 }
247 if len(filter) > 0 {
248 queryParameters["$filter"] = autorest.Encode("query", filter)
249 }
250 if top != nil {
251 queryParameters["$top"] = autorest.Encode("query", *top)
252 }
253 if len(skiptoken) > 0 {
254 queryParameters["$skiptoken"] = autorest.Encode("query", skiptoken)
255 }
256
257 preparer := autorest.CreatePreparer(
258 autorest.AsGet(),
259 autorest.WithBaseURL(client.BaseURI),
260 autorest.WithPathParameters("/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}/providers/Microsoft.Consumption/marketplaces", pathParameters),
261 autorest.WithQueryParameters(queryParameters))
262 return preparer.Prepare((&http.Request{}).WithContext(ctx))
263 }
264
265
266
267 func (client MarketplacesByDepartmentClient) ListByBillingPeriodSender(req *http.Request) (*http.Response, error) {
268 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
269 }
270
271
272
273 func (client MarketplacesByDepartmentClient) ListByBillingPeriodResponder(resp *http.Response) (result MarketplacesListResult, err error) {
274 err = autorest.Respond(
275 resp,
276 azure.WithErrorUnlessStatusCode(http.StatusOK),
277 autorest.ByUnmarshallingJSON(&result),
278 autorest.ByClosing())
279 result.Response = autorest.Response{Response: resp}
280 return
281 }
282
283
284 func (client MarketplacesByDepartmentClient) listByBillingPeriodNextResults(ctx context.Context, lastResults MarketplacesListResult) (result MarketplacesListResult, err error) {
285 req, err := lastResults.marketplacesListResultPreparer(ctx)
286 if err != nil {
287 return result, autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "listByBillingPeriodNextResults", nil, "Failure preparing next results request")
288 }
289 if req == nil {
290 return
291 }
292 resp, err := client.ListByBillingPeriodSender(req)
293 if err != nil {
294 result.Response = autorest.Response{Response: resp}
295 return result, autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "listByBillingPeriodNextResults", resp, "Failure sending next results request")
296 }
297 result, err = client.ListByBillingPeriodResponder(resp)
298 if err != nil {
299 err = autorest.NewErrorWithError(err, "consumption.MarketplacesByDepartmentClient", "listByBillingPeriodNextResults", resp, "Failure responding to next results request")
300 }
301 return
302 }
303
304
305 func (client MarketplacesByDepartmentClient) ListByBillingPeriodComplete(ctx context.Context, departmentID string, billingPeriodName string, filter string, top *int32, skiptoken string) (result MarketplacesListResultIterator, err error) {
306 if tracing.IsEnabled() {
307 ctx = tracing.StartSpan(ctx, fqdn+"/MarketplacesByDepartmentClient.ListByBillingPeriod")
308 defer func() {
309 sc := -1
310 if result.Response().Response.Response != nil {
311 sc = result.page.Response().Response.Response.StatusCode
312 }
313 tracing.EndSpan(ctx, sc, err)
314 }()
315 }
316 result.page, err = client.ListByBillingPeriod(ctx, departmentID, billingPeriodName, filter, top, skiptoken)
317 return
318 }
319
View as plain text