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/tracing"
14 "net/http"
15 )
16
17
18 type LabClient struct {
19 BaseClient
20 }
21
22
23 func NewLabClient(subscriptionID string) LabClient {
24 return NewLabClientWithBaseURI(DefaultBaseURI, subscriptionID)
25 }
26
27
28
29 func NewLabClientWithBaseURI(baseURI string, subscriptionID string) LabClient {
30 return LabClient{NewWithBaseURI(baseURI, subscriptionID)}
31 }
32
33
34
35
36
37 func (client LabClient) CreateEnvironment(ctx context.Context, resourceGroupName string, name string, labVirtualMachine LabVirtualMachine) (result LabCreateEnvironmentFuture, err error) {
38 if tracing.IsEnabled() {
39 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.CreateEnvironment")
40 defer func() {
41 sc := -1
42 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
43 sc = result.FutureAPI.Response().StatusCode
44 }
45 tracing.EndSpan(ctx, sc, err)
46 }()
47 }
48 req, err := client.CreateEnvironmentPreparer(ctx, resourceGroupName, name, labVirtualMachine)
49 if err != nil {
50 err = autorest.NewErrorWithError(err, "dtl.LabClient", "CreateEnvironment", nil, "Failure preparing request")
51 return
52 }
53
54 result, err = client.CreateEnvironmentSender(req)
55 if err != nil {
56 err = autorest.NewErrorWithError(err, "dtl.LabClient", "CreateEnvironment", result.Response(), "Failure sending request")
57 return
58 }
59
60 return
61 }
62
63
64 func (client LabClient) CreateEnvironmentPreparer(ctx context.Context, resourceGroupName string, name string, labVirtualMachine LabVirtualMachine) (*http.Request, error) {
65 pathParameters := map[string]interface{}{
66 "name": autorest.Encode("path", name),
67 "resourceGroupName": autorest.Encode("path", resourceGroupName),
68 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
69 }
70
71 const APIVersion = "2015-05-21-preview"
72 queryParameters := map[string]interface{}{
73 "api-version": APIVersion,
74 }
75
76 preparer := autorest.CreatePreparer(
77 autorest.AsContentType("application/json; charset=utf-8"),
78 autorest.AsPost(),
79 autorest.WithBaseURL(client.BaseURI),
80 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/createEnvironment", pathParameters),
81 autorest.WithJSON(labVirtualMachine),
82 autorest.WithQueryParameters(queryParameters))
83 return preparer.Prepare((&http.Request{}).WithContext(ctx))
84 }
85
86
87
88 func (client LabClient) CreateEnvironmentSender(req *http.Request) (future LabCreateEnvironmentFuture, err error) {
89 var resp *http.Response
90 future.FutureAPI = &azure.Future{}
91 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
92 if err != nil {
93 return
94 }
95 var azf azure.Future
96 azf, err = azure.NewFutureFromResponse(resp)
97 future.FutureAPI = &azf
98 future.Result = future.result
99 return
100 }
101
102
103
104 func (client LabClient) CreateEnvironmentResponder(resp *http.Response) (result autorest.Response, err error) {
105 err = autorest.Respond(
106 resp,
107 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
108 autorest.ByClosing())
109 result.Response = resp
110 return
111 }
112
113
114
115
116
117 func (client LabClient) CreateOrUpdateResource(ctx context.Context, resourceGroupName string, name string, lab Lab) (result LabCreateOrUpdateResourceFuture, err error) {
118 if tracing.IsEnabled() {
119 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.CreateOrUpdateResource")
120 defer func() {
121 sc := -1
122 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
123 sc = result.FutureAPI.Response().StatusCode
124 }
125 tracing.EndSpan(ctx, sc, err)
126 }()
127 }
128 req, err := client.CreateOrUpdateResourcePreparer(ctx, resourceGroupName, name, lab)
129 if err != nil {
130 err = autorest.NewErrorWithError(err, "dtl.LabClient", "CreateOrUpdateResource", nil, "Failure preparing request")
131 return
132 }
133
134 result, err = client.CreateOrUpdateResourceSender(req)
135 if err != nil {
136 err = autorest.NewErrorWithError(err, "dtl.LabClient", "CreateOrUpdateResource", result.Response(), "Failure sending request")
137 return
138 }
139
140 return
141 }
142
143
144 func (client LabClient) CreateOrUpdateResourcePreparer(ctx context.Context, resourceGroupName string, name string, lab Lab) (*http.Request, error) {
145 pathParameters := map[string]interface{}{
146 "name": autorest.Encode("path", name),
147 "resourceGroupName": autorest.Encode("path", resourceGroupName),
148 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
149 }
150
151 const APIVersion = "2015-05-21-preview"
152 queryParameters := map[string]interface{}{
153 "api-version": APIVersion,
154 }
155
156 preparer := autorest.CreatePreparer(
157 autorest.AsContentType("application/json; charset=utf-8"),
158 autorest.AsPut(),
159 autorest.WithBaseURL(client.BaseURI),
160 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}", pathParameters),
161 autorest.WithJSON(lab),
162 autorest.WithQueryParameters(queryParameters))
163 return preparer.Prepare((&http.Request{}).WithContext(ctx))
164 }
165
166
167
168 func (client LabClient) CreateOrUpdateResourceSender(req *http.Request) (future LabCreateOrUpdateResourceFuture, err error) {
169 var resp *http.Response
170 future.FutureAPI = &azure.Future{}
171 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
172 if err != nil {
173 return
174 }
175 var azf azure.Future
176 azf, err = azure.NewFutureFromResponse(resp)
177 future.FutureAPI = &azf
178 future.Result = future.result
179 return
180 }
181
182
183
184 func (client LabClient) CreateOrUpdateResourceResponder(resp *http.Response) (result Lab, err error) {
185 err = autorest.Respond(
186 resp,
187 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
188 autorest.ByUnmarshallingJSON(&result),
189 autorest.ByClosing())
190 result.Response = autorest.Response{Response: resp}
191 return
192 }
193
194
195
196
197
198 func (client LabClient) DeleteResource(ctx context.Context, resourceGroupName string, name string) (result LabDeleteResourceFuture, err error) {
199 if tracing.IsEnabled() {
200 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.DeleteResource")
201 defer func() {
202 sc := -1
203 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
204 sc = result.FutureAPI.Response().StatusCode
205 }
206 tracing.EndSpan(ctx, sc, err)
207 }()
208 }
209 req, err := client.DeleteResourcePreparer(ctx, resourceGroupName, name)
210 if err != nil {
211 err = autorest.NewErrorWithError(err, "dtl.LabClient", "DeleteResource", nil, "Failure preparing request")
212 return
213 }
214
215 result, err = client.DeleteResourceSender(req)
216 if err != nil {
217 err = autorest.NewErrorWithError(err, "dtl.LabClient", "DeleteResource", result.Response(), "Failure sending request")
218 return
219 }
220
221 return
222 }
223
224
225 func (client LabClient) DeleteResourcePreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
226 pathParameters := map[string]interface{}{
227 "name": autorest.Encode("path", name),
228 "resourceGroupName": autorest.Encode("path", resourceGroupName),
229 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
230 }
231
232 const APIVersion = "2015-05-21-preview"
233 queryParameters := map[string]interface{}{
234 "api-version": APIVersion,
235 }
236
237 preparer := autorest.CreatePreparer(
238 autorest.AsDelete(),
239 autorest.WithBaseURL(client.BaseURI),
240 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}", pathParameters),
241 autorest.WithQueryParameters(queryParameters))
242 return preparer.Prepare((&http.Request{}).WithContext(ctx))
243 }
244
245
246
247 func (client LabClient) DeleteResourceSender(req *http.Request) (future LabDeleteResourceFuture, err error) {
248 var resp *http.Response
249 future.FutureAPI = &azure.Future{}
250 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
251 if err != nil {
252 return
253 }
254 var azf azure.Future
255 azf, err = azure.NewFutureFromResponse(resp)
256 future.FutureAPI = &azf
257 future.Result = future.result
258 return
259 }
260
261
262
263 func (client LabClient) DeleteResourceResponder(resp *http.Response) (result autorest.Response, err error) {
264 err = autorest.Respond(
265 resp,
266 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
267 autorest.ByClosing())
268 result.Response = resp
269 return
270 }
271
272
273
274
275
276 func (client LabClient) GenerateUploadURI(ctx context.Context, resourceGroupName string, name string, generateUploadURIParameter GenerateUploadURIParameter) (result GenerateUploadURIResponse, err error) {
277 if tracing.IsEnabled() {
278 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.GenerateUploadURI")
279 defer func() {
280 sc := -1
281 if result.Response.Response != nil {
282 sc = result.Response.Response.StatusCode
283 }
284 tracing.EndSpan(ctx, sc, err)
285 }()
286 }
287 req, err := client.GenerateUploadURIPreparer(ctx, resourceGroupName, name, generateUploadURIParameter)
288 if err != nil {
289 err = autorest.NewErrorWithError(err, "dtl.LabClient", "GenerateUploadURI", nil, "Failure preparing request")
290 return
291 }
292
293 resp, err := client.GenerateUploadURISender(req)
294 if err != nil {
295 result.Response = autorest.Response{Response: resp}
296 err = autorest.NewErrorWithError(err, "dtl.LabClient", "GenerateUploadURI", resp, "Failure sending request")
297 return
298 }
299
300 result, err = client.GenerateUploadURIResponder(resp)
301 if err != nil {
302 err = autorest.NewErrorWithError(err, "dtl.LabClient", "GenerateUploadURI", resp, "Failure responding to request")
303 return
304 }
305
306 return
307 }
308
309
310 func (client LabClient) GenerateUploadURIPreparer(ctx context.Context, resourceGroupName string, name string, generateUploadURIParameter GenerateUploadURIParameter) (*http.Request, error) {
311 pathParameters := map[string]interface{}{
312 "name": autorest.Encode("path", name),
313 "resourceGroupName": autorest.Encode("path", resourceGroupName),
314 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
315 }
316
317 const APIVersion = "2015-05-21-preview"
318 queryParameters := map[string]interface{}{
319 "api-version": APIVersion,
320 }
321
322 preparer := autorest.CreatePreparer(
323 autorest.AsContentType("application/json; charset=utf-8"),
324 autorest.AsPost(),
325 autorest.WithBaseURL(client.BaseURI),
326 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/generateUploadUri", pathParameters),
327 autorest.WithJSON(generateUploadURIParameter),
328 autorest.WithQueryParameters(queryParameters))
329 return preparer.Prepare((&http.Request{}).WithContext(ctx))
330 }
331
332
333
334 func (client LabClient) GenerateUploadURISender(req *http.Request) (*http.Response, error) {
335 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
336 }
337
338
339
340 func (client LabClient) GenerateUploadURIResponder(resp *http.Response) (result GenerateUploadURIResponse, err error) {
341 err = autorest.Respond(
342 resp,
343 azure.WithErrorUnlessStatusCode(http.StatusOK),
344 autorest.ByUnmarshallingJSON(&result),
345 autorest.ByClosing())
346 result.Response = autorest.Response{Response: resp}
347 return
348 }
349
350
351
352
353
354 func (client LabClient) GetResource(ctx context.Context, resourceGroupName string, name string) (result Lab, err error) {
355 if tracing.IsEnabled() {
356 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.GetResource")
357 defer func() {
358 sc := -1
359 if result.Response.Response != nil {
360 sc = result.Response.Response.StatusCode
361 }
362 tracing.EndSpan(ctx, sc, err)
363 }()
364 }
365 req, err := client.GetResourcePreparer(ctx, resourceGroupName, name)
366 if err != nil {
367 err = autorest.NewErrorWithError(err, "dtl.LabClient", "GetResource", nil, "Failure preparing request")
368 return
369 }
370
371 resp, err := client.GetResourceSender(req)
372 if err != nil {
373 result.Response = autorest.Response{Response: resp}
374 err = autorest.NewErrorWithError(err, "dtl.LabClient", "GetResource", resp, "Failure sending request")
375 return
376 }
377
378 result, err = client.GetResourceResponder(resp)
379 if err != nil {
380 err = autorest.NewErrorWithError(err, "dtl.LabClient", "GetResource", resp, "Failure responding to request")
381 return
382 }
383
384 return
385 }
386
387
388 func (client LabClient) GetResourcePreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
389 pathParameters := map[string]interface{}{
390 "name": autorest.Encode("path", name),
391 "resourceGroupName": autorest.Encode("path", resourceGroupName),
392 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
393 }
394
395 const APIVersion = "2015-05-21-preview"
396 queryParameters := map[string]interface{}{
397 "api-version": APIVersion,
398 }
399
400 preparer := autorest.CreatePreparer(
401 autorest.AsGet(),
402 autorest.WithBaseURL(client.BaseURI),
403 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}", pathParameters),
404 autorest.WithQueryParameters(queryParameters))
405 return preparer.Prepare((&http.Request{}).WithContext(ctx))
406 }
407
408
409
410 func (client LabClient) GetResourceSender(req *http.Request) (*http.Response, error) {
411 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
412 }
413
414
415
416 func (client LabClient) GetResourceResponder(resp *http.Response) (result Lab, err error) {
417 err = autorest.Respond(
418 resp,
419 azure.WithErrorUnlessStatusCode(http.StatusOK),
420 autorest.ByUnmarshallingJSON(&result),
421 autorest.ByClosing())
422 result.Response = autorest.Response{Response: resp}
423 return
424 }
425
426
427
428
429
430 func (client LabClient) ListByResourceGroup(ctx context.Context, resourceGroupName string, filter string, top *int32, orderBy string) (result ResponseWithContinuationLabPage, err error) {
431 if tracing.IsEnabled() {
432 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.ListByResourceGroup")
433 defer func() {
434 sc := -1
435 if result.rwcl.Response.Response != nil {
436 sc = result.rwcl.Response.Response.StatusCode
437 }
438 tracing.EndSpan(ctx, sc, err)
439 }()
440 }
441 result.fn = client.listByResourceGroupNextResults
442 req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName, filter, top, orderBy)
443 if err != nil {
444 err = autorest.NewErrorWithError(err, "dtl.LabClient", "ListByResourceGroup", nil, "Failure preparing request")
445 return
446 }
447
448 resp, err := client.ListByResourceGroupSender(req)
449 if err != nil {
450 result.rwcl.Response = autorest.Response{Response: resp}
451 err = autorest.NewErrorWithError(err, "dtl.LabClient", "ListByResourceGroup", resp, "Failure sending request")
452 return
453 }
454
455 result.rwcl, err = client.ListByResourceGroupResponder(resp)
456 if err != nil {
457 err = autorest.NewErrorWithError(err, "dtl.LabClient", "ListByResourceGroup", resp, "Failure responding to request")
458 return
459 }
460 if result.rwcl.hasNextLink() && result.rwcl.IsEmpty() {
461 err = result.NextWithContext(ctx)
462 return
463 }
464
465 return
466 }
467
468
469 func (client LabClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string, filter string, top *int32, orderBy string) (*http.Request, error) {
470 pathParameters := map[string]interface{}{
471 "resourceGroupName": autorest.Encode("path", resourceGroupName),
472 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
473 }
474
475 const APIVersion = "2015-05-21-preview"
476 queryParameters := map[string]interface{}{
477 "api-version": APIVersion,
478 }
479 if len(filter) > 0 {
480 queryParameters["$filter"] = autorest.Encode("query", filter)
481 }
482 if top != nil {
483 queryParameters["$top"] = autorest.Encode("query", *top)
484 }
485 if len(orderBy) > 0 {
486 queryParameters["$orderBy"] = autorest.Encode("query", orderBy)
487 }
488
489 preparer := autorest.CreatePreparer(
490 autorest.AsGet(),
491 autorest.WithBaseURL(client.BaseURI),
492 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs", pathParameters),
493 autorest.WithQueryParameters(queryParameters))
494 return preparer.Prepare((&http.Request{}).WithContext(ctx))
495 }
496
497
498
499 func (client LabClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) {
500 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
501 }
502
503
504
505 func (client LabClient) ListByResourceGroupResponder(resp *http.Response) (result ResponseWithContinuationLab, err error) {
506 err = autorest.Respond(
507 resp,
508 azure.WithErrorUnlessStatusCode(http.StatusOK),
509 autorest.ByUnmarshallingJSON(&result),
510 autorest.ByClosing())
511 result.Response = autorest.Response{Response: resp}
512 return
513 }
514
515
516 func (client LabClient) listByResourceGroupNextResults(ctx context.Context, lastResults ResponseWithContinuationLab) (result ResponseWithContinuationLab, err error) {
517 req, err := lastResults.responseWithContinuationLabPreparer(ctx)
518 if err != nil {
519 return result, autorest.NewErrorWithError(err, "dtl.LabClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request")
520 }
521 if req == nil {
522 return
523 }
524 resp, err := client.ListByResourceGroupSender(req)
525 if err != nil {
526 result.Response = autorest.Response{Response: resp}
527 return result, autorest.NewErrorWithError(err, "dtl.LabClient", "listByResourceGroupNextResults", resp, "Failure sending next results request")
528 }
529 result, err = client.ListByResourceGroupResponder(resp)
530 if err != nil {
531 err = autorest.NewErrorWithError(err, "dtl.LabClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request")
532 }
533 return
534 }
535
536
537 func (client LabClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, filter string, top *int32, orderBy string) (result ResponseWithContinuationLabIterator, err error) {
538 if tracing.IsEnabled() {
539 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.ListByResourceGroup")
540 defer func() {
541 sc := -1
542 if result.Response().Response.Response != nil {
543 sc = result.page.Response().Response.Response.StatusCode
544 }
545 tracing.EndSpan(ctx, sc, err)
546 }()
547 }
548 result.page, err = client.ListByResourceGroup(ctx, resourceGroupName, filter, top, orderBy)
549 return
550 }
551
552
553
554
555 func (client LabClient) ListBySubscription(ctx context.Context, filter string, top *int32, orderBy string) (result ResponseWithContinuationLabPage, err error) {
556 if tracing.IsEnabled() {
557 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.ListBySubscription")
558 defer func() {
559 sc := -1
560 if result.rwcl.Response.Response != nil {
561 sc = result.rwcl.Response.Response.StatusCode
562 }
563 tracing.EndSpan(ctx, sc, err)
564 }()
565 }
566 result.fn = client.listBySubscriptionNextResults
567 req, err := client.ListBySubscriptionPreparer(ctx, filter, top, orderBy)
568 if err != nil {
569 err = autorest.NewErrorWithError(err, "dtl.LabClient", "ListBySubscription", nil, "Failure preparing request")
570 return
571 }
572
573 resp, err := client.ListBySubscriptionSender(req)
574 if err != nil {
575 result.rwcl.Response = autorest.Response{Response: resp}
576 err = autorest.NewErrorWithError(err, "dtl.LabClient", "ListBySubscription", resp, "Failure sending request")
577 return
578 }
579
580 result.rwcl, err = client.ListBySubscriptionResponder(resp)
581 if err != nil {
582 err = autorest.NewErrorWithError(err, "dtl.LabClient", "ListBySubscription", resp, "Failure responding to request")
583 return
584 }
585 if result.rwcl.hasNextLink() && result.rwcl.IsEmpty() {
586 err = result.NextWithContext(ctx)
587 return
588 }
589
590 return
591 }
592
593
594 func (client LabClient) ListBySubscriptionPreparer(ctx context.Context, filter string, top *int32, orderBy string) (*http.Request, error) {
595 pathParameters := map[string]interface{}{
596 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
597 }
598
599 const APIVersion = "2015-05-21-preview"
600 queryParameters := map[string]interface{}{
601 "api-version": APIVersion,
602 }
603 if len(filter) > 0 {
604 queryParameters["$filter"] = autorest.Encode("query", filter)
605 }
606 if top != nil {
607 queryParameters["$top"] = autorest.Encode("query", *top)
608 }
609 if len(orderBy) > 0 {
610 queryParameters["$orderBy"] = autorest.Encode("query", orderBy)
611 }
612
613 preparer := autorest.CreatePreparer(
614 autorest.AsGet(),
615 autorest.WithBaseURL(client.BaseURI),
616 autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs", pathParameters),
617 autorest.WithQueryParameters(queryParameters))
618 return preparer.Prepare((&http.Request{}).WithContext(ctx))
619 }
620
621
622
623 func (client LabClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) {
624 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
625 }
626
627
628
629 func (client LabClient) ListBySubscriptionResponder(resp *http.Response) (result ResponseWithContinuationLab, err error) {
630 err = autorest.Respond(
631 resp,
632 azure.WithErrorUnlessStatusCode(http.StatusOK),
633 autorest.ByUnmarshallingJSON(&result),
634 autorest.ByClosing())
635 result.Response = autorest.Response{Response: resp}
636 return
637 }
638
639
640 func (client LabClient) listBySubscriptionNextResults(ctx context.Context, lastResults ResponseWithContinuationLab) (result ResponseWithContinuationLab, err error) {
641 req, err := lastResults.responseWithContinuationLabPreparer(ctx)
642 if err != nil {
643 return result, autorest.NewErrorWithError(err, "dtl.LabClient", "listBySubscriptionNextResults", nil, "Failure preparing next results request")
644 }
645 if req == nil {
646 return
647 }
648 resp, err := client.ListBySubscriptionSender(req)
649 if err != nil {
650 result.Response = autorest.Response{Response: resp}
651 return result, autorest.NewErrorWithError(err, "dtl.LabClient", "listBySubscriptionNextResults", resp, "Failure sending next results request")
652 }
653 result, err = client.ListBySubscriptionResponder(resp)
654 if err != nil {
655 err = autorest.NewErrorWithError(err, "dtl.LabClient", "listBySubscriptionNextResults", resp, "Failure responding to next results request")
656 }
657 return
658 }
659
660
661 func (client LabClient) ListBySubscriptionComplete(ctx context.Context, filter string, top *int32, orderBy string) (result ResponseWithContinuationLabIterator, err error) {
662 if tracing.IsEnabled() {
663 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.ListBySubscription")
664 defer func() {
665 sc := -1
666 if result.Response().Response.Response != nil {
667 sc = result.page.Response().Response.Response.StatusCode
668 }
669 tracing.EndSpan(ctx, sc, err)
670 }()
671 }
672 result.page, err = client.ListBySubscription(ctx, filter, top, orderBy)
673 return
674 }
675
676
677
678
679
680 func (client LabClient) ListVhds(ctx context.Context, resourceGroupName string, name string) (result ResponseWithContinuationLabVhdPage, err error) {
681 if tracing.IsEnabled() {
682 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.ListVhds")
683 defer func() {
684 sc := -1
685 if result.rwclv.Response.Response != nil {
686 sc = result.rwclv.Response.Response.StatusCode
687 }
688 tracing.EndSpan(ctx, sc, err)
689 }()
690 }
691 result.fn = client.listVhdsNextResults
692 req, err := client.ListVhdsPreparer(ctx, resourceGroupName, name)
693 if err != nil {
694 err = autorest.NewErrorWithError(err, "dtl.LabClient", "ListVhds", nil, "Failure preparing request")
695 return
696 }
697
698 resp, err := client.ListVhdsSender(req)
699 if err != nil {
700 result.rwclv.Response = autorest.Response{Response: resp}
701 err = autorest.NewErrorWithError(err, "dtl.LabClient", "ListVhds", resp, "Failure sending request")
702 return
703 }
704
705 result.rwclv, err = client.ListVhdsResponder(resp)
706 if err != nil {
707 err = autorest.NewErrorWithError(err, "dtl.LabClient", "ListVhds", resp, "Failure responding to request")
708 return
709 }
710 if result.rwclv.hasNextLink() && result.rwclv.IsEmpty() {
711 err = result.NextWithContext(ctx)
712 return
713 }
714
715 return
716 }
717
718
719 func (client LabClient) ListVhdsPreparer(ctx context.Context, resourceGroupName string, name string) (*http.Request, error) {
720 pathParameters := map[string]interface{}{
721 "name": autorest.Encode("path", name),
722 "resourceGroupName": autorest.Encode("path", resourceGroupName),
723 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
724 }
725
726 const APIVersion = "2015-05-21-preview"
727 queryParameters := map[string]interface{}{
728 "api-version": APIVersion,
729 }
730
731 preparer := autorest.CreatePreparer(
732 autorest.AsPost(),
733 autorest.WithBaseURL(client.BaseURI),
734 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/listVhds", pathParameters),
735 autorest.WithQueryParameters(queryParameters))
736 return preparer.Prepare((&http.Request{}).WithContext(ctx))
737 }
738
739
740
741 func (client LabClient) ListVhdsSender(req *http.Request) (*http.Response, error) {
742 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
743 }
744
745
746
747 func (client LabClient) ListVhdsResponder(resp *http.Response) (result ResponseWithContinuationLabVhd, err error) {
748 err = autorest.Respond(
749 resp,
750 azure.WithErrorUnlessStatusCode(http.StatusOK),
751 autorest.ByUnmarshallingJSON(&result),
752 autorest.ByClosing())
753 result.Response = autorest.Response{Response: resp}
754 return
755 }
756
757
758 func (client LabClient) listVhdsNextResults(ctx context.Context, lastResults ResponseWithContinuationLabVhd) (result ResponseWithContinuationLabVhd, err error) {
759 req, err := lastResults.responseWithContinuationLabVhdPreparer(ctx)
760 if err != nil {
761 return result, autorest.NewErrorWithError(err, "dtl.LabClient", "listVhdsNextResults", nil, "Failure preparing next results request")
762 }
763 if req == nil {
764 return
765 }
766 resp, err := client.ListVhdsSender(req)
767 if err != nil {
768 result.Response = autorest.Response{Response: resp}
769 return result, autorest.NewErrorWithError(err, "dtl.LabClient", "listVhdsNextResults", resp, "Failure sending next results request")
770 }
771 result, err = client.ListVhdsResponder(resp)
772 if err != nil {
773 err = autorest.NewErrorWithError(err, "dtl.LabClient", "listVhdsNextResults", resp, "Failure responding to next results request")
774 }
775 return
776 }
777
778
779 func (client LabClient) ListVhdsComplete(ctx context.Context, resourceGroupName string, name string) (result ResponseWithContinuationLabVhdIterator, err error) {
780 if tracing.IsEnabled() {
781 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.ListVhds")
782 defer func() {
783 sc := -1
784 if result.Response().Response.Response != nil {
785 sc = result.page.Response().Response.Response.StatusCode
786 }
787 tracing.EndSpan(ctx, sc, err)
788 }()
789 }
790 result.page, err = client.ListVhds(ctx, resourceGroupName, name)
791 return
792 }
793
794
795
796
797
798 func (client LabClient) PatchResource(ctx context.Context, resourceGroupName string, name string, lab Lab) (result Lab, err error) {
799 if tracing.IsEnabled() {
800 ctx = tracing.StartSpan(ctx, fqdn+"/LabClient.PatchResource")
801 defer func() {
802 sc := -1
803 if result.Response.Response != nil {
804 sc = result.Response.Response.StatusCode
805 }
806 tracing.EndSpan(ctx, sc, err)
807 }()
808 }
809 req, err := client.PatchResourcePreparer(ctx, resourceGroupName, name, lab)
810 if err != nil {
811 err = autorest.NewErrorWithError(err, "dtl.LabClient", "PatchResource", nil, "Failure preparing request")
812 return
813 }
814
815 resp, err := client.PatchResourceSender(req)
816 if err != nil {
817 result.Response = autorest.Response{Response: resp}
818 err = autorest.NewErrorWithError(err, "dtl.LabClient", "PatchResource", resp, "Failure sending request")
819 return
820 }
821
822 result, err = client.PatchResourceResponder(resp)
823 if err != nil {
824 err = autorest.NewErrorWithError(err, "dtl.LabClient", "PatchResource", resp, "Failure responding to request")
825 return
826 }
827
828 return
829 }
830
831
832 func (client LabClient) PatchResourcePreparer(ctx context.Context, resourceGroupName string, name string, lab Lab) (*http.Request, error) {
833 pathParameters := map[string]interface{}{
834 "name": autorest.Encode("path", name),
835 "resourceGroupName": autorest.Encode("path", resourceGroupName),
836 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
837 }
838
839 const APIVersion = "2015-05-21-preview"
840 queryParameters := map[string]interface{}{
841 "api-version": APIVersion,
842 }
843
844 preparer := autorest.CreatePreparer(
845 autorest.AsContentType("application/json; charset=utf-8"),
846 autorest.AsPatch(),
847 autorest.WithBaseURL(client.BaseURI),
848 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}", pathParameters),
849 autorest.WithJSON(lab),
850 autorest.WithQueryParameters(queryParameters))
851 return preparer.Prepare((&http.Request{}).WithContext(ctx))
852 }
853
854
855
856 func (client LabClient) PatchResourceSender(req *http.Request) (*http.Response, error) {
857 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
858 }
859
860
861
862 func (client LabClient) PatchResourceResponder(resp *http.Response) (result Lab, err error) {
863 err = autorest.Respond(
864 resp,
865 azure.WithErrorUnlessStatusCode(http.StatusOK),
866 autorest.ByUnmarshallingJSON(&result),
867 autorest.ByClosing())
868 result.Response = autorest.Response{Response: resp}
869 return
870 }
871
View as plain text