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