1 package dtl
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 type EnvironmentsClient struct {
20 BaseClient
21 }
22
23
24 func NewEnvironmentsClient(subscriptionID string) EnvironmentsClient {
25 return NewEnvironmentsClientWithBaseURI(DefaultBaseURI, subscriptionID)
26 }
27
28
29
30 func NewEnvironmentsClientWithBaseURI(baseURI string, subscriptionID string) EnvironmentsClient {
31 return EnvironmentsClient{NewWithBaseURI(baseURI, subscriptionID)}
32 }
33
34
35
36
37
38
39
40
41 func (client EnvironmentsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, labName string, userName string, name string, dtlEnvironment Environment) (result EnvironmentsCreateOrUpdateFuture, err error) {
42 if tracing.IsEnabled() {
43 ctx = tracing.StartSpan(ctx, fqdn+"/EnvironmentsClient.CreateOrUpdate")
44 defer func() {
45 sc := -1
46 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
47 sc = result.FutureAPI.Response().StatusCode
48 }
49 tracing.EndSpan(ctx, sc, err)
50 }()
51 }
52 if err := validation.Validate([]validation.Validation{
53 {TargetValue: dtlEnvironment,
54 Constraints: []validation.Constraint{{Target: "dtlEnvironment.EnvironmentProperties", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil {
55 return result, validation.NewError("dtl.EnvironmentsClient", "CreateOrUpdate", err.Error())
56 }
57
58 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, labName, userName, name, dtlEnvironment)
59 if err != nil {
60 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "CreateOrUpdate", nil, "Failure preparing request")
61 return
62 }
63
64 result, err = client.CreateOrUpdateSender(req)
65 if err != nil {
66 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "CreateOrUpdate", result.Response(), "Failure sending request")
67 return
68 }
69
70 return
71 }
72
73
74 func (client EnvironmentsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, labName string, userName string, name string, dtlEnvironment Environment) (*http.Request, error) {
75 pathParameters := map[string]interface{}{
76 "labName": autorest.Encode("path", labName),
77 "name": autorest.Encode("path", name),
78 "resourceGroupName": autorest.Encode("path", resourceGroupName),
79 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
80 "userName": autorest.Encode("path", userName),
81 }
82
83 const APIVersion = "2018-09-15"
84 queryParameters := map[string]interface{}{
85 "api-version": APIVersion,
86 }
87
88 preparer := autorest.CreatePreparer(
89 autorest.AsContentType("application/json; charset=utf-8"),
90 autorest.AsPut(),
91 autorest.WithBaseURL(client.BaseURI),
92 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/environments/{name}", pathParameters),
93 autorest.WithJSON(dtlEnvironment),
94 autorest.WithQueryParameters(queryParameters))
95 return preparer.Prepare((&http.Request{}).WithContext(ctx))
96 }
97
98
99
100 func (client EnvironmentsClient) CreateOrUpdateSender(req *http.Request) (future EnvironmentsCreateOrUpdateFuture, err error) {
101 var resp *http.Response
102 future.FutureAPI = &azure.Future{}
103 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
104 if err != nil {
105 return
106 }
107 var azf azure.Future
108 azf, err = azure.NewFutureFromResponse(resp)
109 future.FutureAPI = &azf
110 future.Result = future.result
111 return
112 }
113
114
115
116 func (client EnvironmentsClient) CreateOrUpdateResponder(resp *http.Response) (result Environment, err error) {
117 err = autorest.Respond(
118 resp,
119 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
120 autorest.ByUnmarshallingJSON(&result),
121 autorest.ByClosing())
122 result.Response = autorest.Response{Response: resp}
123 return
124 }
125
126
127
128
129
130
131
132 func (client EnvironmentsClient) Delete(ctx context.Context, resourceGroupName string, labName string, userName string, name string) (result EnvironmentsDeleteFuture, err error) {
133 if tracing.IsEnabled() {
134 ctx = tracing.StartSpan(ctx, fqdn+"/EnvironmentsClient.Delete")
135 defer func() {
136 sc := -1
137 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
138 sc = result.FutureAPI.Response().StatusCode
139 }
140 tracing.EndSpan(ctx, sc, err)
141 }()
142 }
143 req, err := client.DeletePreparer(ctx, resourceGroupName, labName, userName, name)
144 if err != nil {
145 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "Delete", nil, "Failure preparing request")
146 return
147 }
148
149 result, err = client.DeleteSender(req)
150 if err != nil {
151 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "Delete", result.Response(), "Failure sending request")
152 return
153 }
154
155 return
156 }
157
158
159 func (client EnvironmentsClient) DeletePreparer(ctx context.Context, resourceGroupName string, labName string, userName string, name string) (*http.Request, error) {
160 pathParameters := map[string]interface{}{
161 "labName": autorest.Encode("path", labName),
162 "name": autorest.Encode("path", name),
163 "resourceGroupName": autorest.Encode("path", resourceGroupName),
164 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
165 "userName": autorest.Encode("path", userName),
166 }
167
168 const APIVersion = "2018-09-15"
169 queryParameters := map[string]interface{}{
170 "api-version": APIVersion,
171 }
172
173 preparer := autorest.CreatePreparer(
174 autorest.AsDelete(),
175 autorest.WithBaseURL(client.BaseURI),
176 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/environments/{name}", pathParameters),
177 autorest.WithQueryParameters(queryParameters))
178 return preparer.Prepare((&http.Request{}).WithContext(ctx))
179 }
180
181
182
183 func (client EnvironmentsClient) DeleteSender(req *http.Request) (future EnvironmentsDeleteFuture, err error) {
184 var resp *http.Response
185 future.FutureAPI = &azure.Future{}
186 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
187 if err != nil {
188 return
189 }
190 var azf azure.Future
191 azf, err = azure.NewFutureFromResponse(resp)
192 future.FutureAPI = &azf
193 future.Result = future.result
194 return
195 }
196
197
198
199 func (client EnvironmentsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
200 err = autorest.Respond(
201 resp,
202 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
203 autorest.ByClosing())
204 result.Response = resp
205 return
206 }
207
208
209
210
211
212
213
214
215 func (client EnvironmentsClient) Get(ctx context.Context, resourceGroupName string, labName string, userName string, name string, expand string) (result Environment, err error) {
216 if tracing.IsEnabled() {
217 ctx = tracing.StartSpan(ctx, fqdn+"/EnvironmentsClient.Get")
218 defer func() {
219 sc := -1
220 if result.Response.Response != nil {
221 sc = result.Response.Response.StatusCode
222 }
223 tracing.EndSpan(ctx, sc, err)
224 }()
225 }
226 req, err := client.GetPreparer(ctx, resourceGroupName, labName, userName, name, expand)
227 if err != nil {
228 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "Get", nil, "Failure preparing request")
229 return
230 }
231
232 resp, err := client.GetSender(req)
233 if err != nil {
234 result.Response = autorest.Response{Response: resp}
235 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "Get", resp, "Failure sending request")
236 return
237 }
238
239 result, err = client.GetResponder(resp)
240 if err != nil {
241 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "Get", resp, "Failure responding to request")
242 return
243 }
244
245 return
246 }
247
248
249 func (client EnvironmentsClient) GetPreparer(ctx context.Context, resourceGroupName string, labName string, userName string, name string, expand string) (*http.Request, error) {
250 pathParameters := map[string]interface{}{
251 "labName": autorest.Encode("path", labName),
252 "name": autorest.Encode("path", name),
253 "resourceGroupName": autorest.Encode("path", resourceGroupName),
254 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
255 "userName": autorest.Encode("path", userName),
256 }
257
258 const APIVersion = "2018-09-15"
259 queryParameters := map[string]interface{}{
260 "api-version": APIVersion,
261 }
262 if len(expand) > 0 {
263 queryParameters["$expand"] = autorest.Encode("query", expand)
264 }
265
266 preparer := autorest.CreatePreparer(
267 autorest.AsGet(),
268 autorest.WithBaseURL(client.BaseURI),
269 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/environments/{name}", pathParameters),
270 autorest.WithQueryParameters(queryParameters))
271 return preparer.Prepare((&http.Request{}).WithContext(ctx))
272 }
273
274
275
276 func (client EnvironmentsClient) GetSender(req *http.Request) (*http.Response, error) {
277 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
278 }
279
280
281
282 func (client EnvironmentsClient) GetResponder(resp *http.Response) (result Environment, err error) {
283 err = autorest.Respond(
284 resp,
285 azure.WithErrorUnlessStatusCode(http.StatusOK),
286 autorest.ByUnmarshallingJSON(&result),
287 autorest.ByClosing())
288 result.Response = autorest.Response{Response: resp}
289 return
290 }
291
292
293
294
295
296
297
298
299
300
301 func (client EnvironmentsClient) List(ctx context.Context, resourceGroupName string, labName string, userName string, expand string, filter string, top *int32, orderby string) (result EnvironmentListPage, err error) {
302 if tracing.IsEnabled() {
303 ctx = tracing.StartSpan(ctx, fqdn+"/EnvironmentsClient.List")
304 defer func() {
305 sc := -1
306 if result.el.Response.Response != nil {
307 sc = result.el.Response.Response.StatusCode
308 }
309 tracing.EndSpan(ctx, sc, err)
310 }()
311 }
312 result.fn = client.listNextResults
313 req, err := client.ListPreparer(ctx, resourceGroupName, labName, userName, expand, filter, top, orderby)
314 if err != nil {
315 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "List", nil, "Failure preparing request")
316 return
317 }
318
319 resp, err := client.ListSender(req)
320 if err != nil {
321 result.el.Response = autorest.Response{Response: resp}
322 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "List", resp, "Failure sending request")
323 return
324 }
325
326 result.el, err = client.ListResponder(resp)
327 if err != nil {
328 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "List", resp, "Failure responding to request")
329 return
330 }
331 if result.el.hasNextLink() && result.el.IsEmpty() {
332 err = result.NextWithContext(ctx)
333 return
334 }
335
336 return
337 }
338
339
340 func (client EnvironmentsClient) ListPreparer(ctx context.Context, resourceGroupName string, labName string, userName string, expand string, filter string, top *int32, orderby string) (*http.Request, error) {
341 pathParameters := map[string]interface{}{
342 "labName": autorest.Encode("path", labName),
343 "resourceGroupName": autorest.Encode("path", resourceGroupName),
344 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
345 "userName": autorest.Encode("path", userName),
346 }
347
348 const APIVersion = "2018-09-15"
349 queryParameters := map[string]interface{}{
350 "api-version": APIVersion,
351 }
352 if len(expand) > 0 {
353 queryParameters["$expand"] = autorest.Encode("query", expand)
354 }
355 if len(filter) > 0 {
356 queryParameters["$filter"] = autorest.Encode("query", filter)
357 }
358 if top != nil {
359 queryParameters["$top"] = autorest.Encode("query", *top)
360 }
361 if len(orderby) > 0 {
362 queryParameters["$orderby"] = autorest.Encode("query", orderby)
363 }
364
365 preparer := autorest.CreatePreparer(
366 autorest.AsGet(),
367 autorest.WithBaseURL(client.BaseURI),
368 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/environments", pathParameters),
369 autorest.WithQueryParameters(queryParameters))
370 return preparer.Prepare((&http.Request{}).WithContext(ctx))
371 }
372
373
374
375 func (client EnvironmentsClient) ListSender(req *http.Request) (*http.Response, error) {
376 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
377 }
378
379
380
381 func (client EnvironmentsClient) ListResponder(resp *http.Response) (result EnvironmentList, err error) {
382 err = autorest.Respond(
383 resp,
384 azure.WithErrorUnlessStatusCode(http.StatusOK),
385 autorest.ByUnmarshallingJSON(&result),
386 autorest.ByClosing())
387 result.Response = autorest.Response{Response: resp}
388 return
389 }
390
391
392 func (client EnvironmentsClient) listNextResults(ctx context.Context, lastResults EnvironmentList) (result EnvironmentList, err error) {
393 req, err := lastResults.environmentListPreparer(ctx)
394 if err != nil {
395 return result, autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "listNextResults", nil, "Failure preparing next results request")
396 }
397 if req == nil {
398 return
399 }
400 resp, err := client.ListSender(req)
401 if err != nil {
402 result.Response = autorest.Response{Response: resp}
403 return result, autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "listNextResults", resp, "Failure sending next results request")
404 }
405 result, err = client.ListResponder(resp)
406 if err != nil {
407 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "listNextResults", resp, "Failure responding to next results request")
408 }
409 return
410 }
411
412
413 func (client EnvironmentsClient) ListComplete(ctx context.Context, resourceGroupName string, labName string, userName string, expand string, filter string, top *int32, orderby string) (result EnvironmentListIterator, err error) {
414 if tracing.IsEnabled() {
415 ctx = tracing.StartSpan(ctx, fqdn+"/EnvironmentsClient.List")
416 defer func() {
417 sc := -1
418 if result.Response().Response.Response != nil {
419 sc = result.page.Response().Response.Response.StatusCode
420 }
421 tracing.EndSpan(ctx, sc, err)
422 }()
423 }
424 result.page, err = client.List(ctx, resourceGroupName, labName, userName, expand, filter, top, orderby)
425 return
426 }
427
428
429
430
431
432
433
434
435 func (client EnvironmentsClient) Update(ctx context.Context, resourceGroupName string, labName string, userName string, name string, dtlEnvironment EnvironmentFragment) (result Environment, err error) {
436 if tracing.IsEnabled() {
437 ctx = tracing.StartSpan(ctx, fqdn+"/EnvironmentsClient.Update")
438 defer func() {
439 sc := -1
440 if result.Response.Response != nil {
441 sc = result.Response.Response.StatusCode
442 }
443 tracing.EndSpan(ctx, sc, err)
444 }()
445 }
446 req, err := client.UpdatePreparer(ctx, resourceGroupName, labName, userName, name, dtlEnvironment)
447 if err != nil {
448 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "Update", nil, "Failure preparing request")
449 return
450 }
451
452 resp, err := client.UpdateSender(req)
453 if err != nil {
454 result.Response = autorest.Response{Response: resp}
455 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "Update", resp, "Failure sending request")
456 return
457 }
458
459 result, err = client.UpdateResponder(resp)
460 if err != nil {
461 err = autorest.NewErrorWithError(err, "dtl.EnvironmentsClient", "Update", resp, "Failure responding to request")
462 return
463 }
464
465 return
466 }
467
468
469 func (client EnvironmentsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, labName string, userName string, name string, dtlEnvironment EnvironmentFragment) (*http.Request, error) {
470 pathParameters := map[string]interface{}{
471 "labName": autorest.Encode("path", labName),
472 "name": autorest.Encode("path", name),
473 "resourceGroupName": autorest.Encode("path", resourceGroupName),
474 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
475 "userName": autorest.Encode("path", userName),
476 }
477
478 const APIVersion = "2018-09-15"
479 queryParameters := map[string]interface{}{
480 "api-version": APIVersion,
481 }
482
483 preparer := autorest.CreatePreparer(
484 autorest.AsContentType("application/json; charset=utf-8"),
485 autorest.AsPatch(),
486 autorest.WithBaseURL(client.BaseURI),
487 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/environments/{name}", pathParameters),
488 autorest.WithJSON(dtlEnvironment),
489 autorest.WithQueryParameters(queryParameters))
490 return preparer.Prepare((&http.Request{}).WithContext(ctx))
491 }
492
493
494
495 func (client EnvironmentsClient) UpdateSender(req *http.Request) (*http.Response, error) {
496 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
497 }
498
499
500
501 func (client EnvironmentsClient) UpdateResponder(resp *http.Response) (result Environment, err error) {
502 err = autorest.Respond(
503 resp,
504 azure.WithErrorUnlessStatusCode(http.StatusOK),
505 autorest.ByUnmarshallingJSON(&result),
506 autorest.ByClosing())
507 result.Response = autorest.Response{Response: resp}
508 return
509 }
510
View as plain text