1package apimanagement
2
3// Copyright (c) Microsoft and contributors.  All rights reserved.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13//
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
17// Code generated by Microsoft (R) AutoRest Code Generator.
18// Changes may cause incorrect behavior and will be lost if the code is regenerated.
19
20import (
21	"context"
22	"github.com/Azure/go-autorest/autorest"
23	"github.com/Azure/go-autorest/autorest/azure"
24	"github.com/Azure/go-autorest/autorest/validation"
25	"github.com/Azure/go-autorest/tracing"
26	"net/http"
27)
28
29// ContentItemClient is the apiManagement Client
30type ContentItemClient struct {
31	BaseClient
32}
33
34// NewContentItemClient creates an instance of the ContentItemClient client.
35func NewContentItemClient(subscriptionID string) ContentItemClient {
36	return NewContentItemClientWithBaseURI(DefaultBaseURI, subscriptionID)
37}
38
39// NewContentItemClientWithBaseURI creates an instance of the ContentItemClient client using a custom endpoint.  Use
40// this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
41func NewContentItemClientWithBaseURI(baseURI string, subscriptionID string) ContentItemClient {
42	return ContentItemClient{NewWithBaseURI(baseURI, subscriptionID)}
43}
44
45// CreateOrUpdate creates new content item
46// Parameters:
47// resourceGroupName - the name of the resource group.
48// serviceName - the name of the API Management service.
49// contentTypeID - content type identifier.
50// contentItemID - content item identifier.
51func (client ContentItemClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string, contentItemID string) (result ContentItemContract, err error) {
52	if tracing.IsEnabled() {
53		ctx = tracing.StartSpan(ctx, fqdn+"/ContentItemClient.CreateOrUpdate")
54		defer func() {
55			sc := -1
56			if result.Response.Response != nil {
57				sc = result.Response.Response.StatusCode
58			}
59			tracing.EndSpan(ctx, sc, err)
60		}()
61	}
62	if err := validation.Validate([]validation.Validation{
63		{TargetValue: serviceName,
64			Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil},
65				{Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil},
66				{Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}},
67		{TargetValue: contentTypeID,
68			Constraints: []validation.Constraint{{Target: "contentTypeID", Name: validation.MaxLength, Rule: 80, Chain: nil},
69				{Target: "contentTypeID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
70		{TargetValue: contentItemID,
71			Constraints: []validation.Constraint{{Target: "contentItemID", Name: validation.MaxLength, Rule: 80, Chain: nil},
72				{Target: "contentItemID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
73		return result, validation.NewError("apimanagement.ContentItemClient", "CreateOrUpdate", err.Error())
74	}
75
76	req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, serviceName, contentTypeID, contentItemID)
77	if err != nil {
78		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "CreateOrUpdate", nil, "Failure preparing request")
79		return
80	}
81
82	resp, err := client.CreateOrUpdateSender(req)
83	if err != nil {
84		result.Response = autorest.Response{Response: resp}
85		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "CreateOrUpdate", resp, "Failure sending request")
86		return
87	}
88
89	result, err = client.CreateOrUpdateResponder(resp)
90	if err != nil {
91		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "CreateOrUpdate", resp, "Failure responding to request")
92		return
93	}
94
95	return
96}
97
98// CreateOrUpdatePreparer prepares the CreateOrUpdate request.
99func (client ContentItemClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string, contentItemID string) (*http.Request, error) {
100	pathParameters := map[string]interface{}{
101		"contentItemId":     autorest.Encode("path", contentItemID),
102		"contentTypeId":     autorest.Encode("path", contentTypeID),
103		"resourceGroupName": autorest.Encode("path", resourceGroupName),
104		"serviceName":       autorest.Encode("path", serviceName),
105		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
106	}
107
108	const APIVersion = "2019-12-01"
109	queryParameters := map[string]interface{}{
110		"api-version": APIVersion,
111	}
112
113	preparer := autorest.CreatePreparer(
114		autorest.AsPut(),
115		autorest.WithBaseURL(client.BaseURI),
116		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}/contentItems/{contentItemId}", pathParameters),
117		autorest.WithQueryParameters(queryParameters))
118	return preparer.Prepare((&http.Request{}).WithContext(ctx))
119}
120
121// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
122// http.Response Body if it receives an error.
123func (client ContentItemClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) {
124	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
125}
126
127// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
128// closes the http.Response Body.
129func (client ContentItemClient) CreateOrUpdateResponder(resp *http.Response) (result ContentItemContract, err error) {
130	err = autorest.Respond(
131		resp,
132		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
133		autorest.ByUnmarshallingJSON(&result),
134		autorest.ByClosing())
135	result.Response = autorest.Response{Response: resp}
136	return
137}
138
139// Delete removes specified content item.
140// Parameters:
141// resourceGroupName - the name of the resource group.
142// serviceName - the name of the API Management service.
143// contentTypeID - content type identifier.
144// contentItemID - content item identifier.
145func (client ContentItemClient) Delete(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string, contentItemID string) (result autorest.Response, err error) {
146	if tracing.IsEnabled() {
147		ctx = tracing.StartSpan(ctx, fqdn+"/ContentItemClient.Delete")
148		defer func() {
149			sc := -1
150			if result.Response != nil {
151				sc = result.Response.StatusCode
152			}
153			tracing.EndSpan(ctx, sc, err)
154		}()
155	}
156	if err := validation.Validate([]validation.Validation{
157		{TargetValue: serviceName,
158			Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil},
159				{Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil},
160				{Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}},
161		{TargetValue: contentTypeID,
162			Constraints: []validation.Constraint{{Target: "contentTypeID", Name: validation.MaxLength, Rule: 80, Chain: nil},
163				{Target: "contentTypeID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
164		{TargetValue: contentItemID,
165			Constraints: []validation.Constraint{{Target: "contentItemID", Name: validation.MaxLength, Rule: 80, Chain: nil},
166				{Target: "contentItemID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
167		return result, validation.NewError("apimanagement.ContentItemClient", "Delete", err.Error())
168	}
169
170	req, err := client.DeletePreparer(ctx, resourceGroupName, serviceName, contentTypeID, contentItemID)
171	if err != nil {
172		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "Delete", nil, "Failure preparing request")
173		return
174	}
175
176	resp, err := client.DeleteSender(req)
177	if err != nil {
178		result.Response = resp
179		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "Delete", resp, "Failure sending request")
180		return
181	}
182
183	result, err = client.DeleteResponder(resp)
184	if err != nil {
185		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "Delete", resp, "Failure responding to request")
186		return
187	}
188
189	return
190}
191
192// DeletePreparer prepares the Delete request.
193func (client ContentItemClient) DeletePreparer(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string, contentItemID string) (*http.Request, error) {
194	pathParameters := map[string]interface{}{
195		"contentItemId":     autorest.Encode("path", contentItemID),
196		"contentTypeId":     autorest.Encode("path", contentTypeID),
197		"resourceGroupName": autorest.Encode("path", resourceGroupName),
198		"serviceName":       autorest.Encode("path", serviceName),
199		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
200	}
201
202	const APIVersion = "2019-12-01"
203	queryParameters := map[string]interface{}{
204		"api-version": APIVersion,
205	}
206
207	preparer := autorest.CreatePreparer(
208		autorest.AsDelete(),
209		autorest.WithBaseURL(client.BaseURI),
210		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}/contentItems/{contentItemId}", pathParameters),
211		autorest.WithQueryParameters(queryParameters))
212	return preparer.Prepare((&http.Request{}).WithContext(ctx))
213}
214
215// DeleteSender sends the Delete request. The method will close the
216// http.Response Body if it receives an error.
217func (client ContentItemClient) DeleteSender(req *http.Request) (*http.Response, error) {
218	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
219}
220
221// DeleteResponder handles the response to the Delete request. The method always
222// closes the http.Response Body.
223func (client ContentItemClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
224	err = autorest.Respond(
225		resp,
226		azure.WithErrorUnlessStatusCode(http.StatusOK),
227		autorest.ByClosing())
228	result.Response = resp
229	return
230}
231
232// Get returns content item details
233// Parameters:
234// resourceGroupName - the name of the resource group.
235// serviceName - the name of the API Management service.
236// contentTypeID - content type identifier.
237// contentItemID - content item identifier.
238func (client ContentItemClient) Get(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string, contentItemID string) (result ContentItemContract, err error) {
239	if tracing.IsEnabled() {
240		ctx = tracing.StartSpan(ctx, fqdn+"/ContentItemClient.Get")
241		defer func() {
242			sc := -1
243			if result.Response.Response != nil {
244				sc = result.Response.Response.StatusCode
245			}
246			tracing.EndSpan(ctx, sc, err)
247		}()
248	}
249	if err := validation.Validate([]validation.Validation{
250		{TargetValue: serviceName,
251			Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil},
252				{Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil},
253				{Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}},
254		{TargetValue: contentTypeID,
255			Constraints: []validation.Constraint{{Target: "contentTypeID", Name: validation.MaxLength, Rule: 80, Chain: nil},
256				{Target: "contentTypeID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
257		{TargetValue: contentItemID,
258			Constraints: []validation.Constraint{{Target: "contentItemID", Name: validation.MaxLength, Rule: 80, Chain: nil},
259				{Target: "contentItemID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
260		return result, validation.NewError("apimanagement.ContentItemClient", "Get", err.Error())
261	}
262
263	req, err := client.GetPreparer(ctx, resourceGroupName, serviceName, contentTypeID, contentItemID)
264	if err != nil {
265		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "Get", nil, "Failure preparing request")
266		return
267	}
268
269	resp, err := client.GetSender(req)
270	if err != nil {
271		result.Response = autorest.Response{Response: resp}
272		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "Get", resp, "Failure sending request")
273		return
274	}
275
276	result, err = client.GetResponder(resp)
277	if err != nil {
278		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "Get", resp, "Failure responding to request")
279		return
280	}
281
282	return
283}
284
285// GetPreparer prepares the Get request.
286func (client ContentItemClient) GetPreparer(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string, contentItemID string) (*http.Request, error) {
287	pathParameters := map[string]interface{}{
288		"contentItemId":     autorest.Encode("path", contentItemID),
289		"contentTypeId":     autorest.Encode("path", contentTypeID),
290		"resourceGroupName": autorest.Encode("path", resourceGroupName),
291		"serviceName":       autorest.Encode("path", serviceName),
292		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
293	}
294
295	const APIVersion = "2019-12-01"
296	queryParameters := map[string]interface{}{
297		"api-version": APIVersion,
298	}
299
300	preparer := autorest.CreatePreparer(
301		autorest.AsGet(),
302		autorest.WithBaseURL(client.BaseURI),
303		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}/contentItems/{contentItemId}", pathParameters),
304		autorest.WithQueryParameters(queryParameters))
305	return preparer.Prepare((&http.Request{}).WithContext(ctx))
306}
307
308// GetSender sends the Get request. The method will close the
309// http.Response Body if it receives an error.
310func (client ContentItemClient) GetSender(req *http.Request) (*http.Response, error) {
311	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
312}
313
314// GetResponder handles the response to the Get request. The method always
315// closes the http.Response Body.
316func (client ContentItemClient) GetResponder(resp *http.Response) (result ContentItemContract, err error) {
317	err = autorest.Respond(
318		resp,
319		azure.WithErrorUnlessStatusCode(http.StatusOK),
320		autorest.ByUnmarshallingJSON(&result),
321		autorest.ByClosing())
322	result.Response = autorest.Response{Response: resp}
323	return
324}
325
326// GetEntityTag returns content item metadata
327// Parameters:
328// resourceGroupName - the name of the resource group.
329// serviceName - the name of the API Management service.
330// contentTypeID - content type identifier.
331// contentItemID - content item identifier.
332func (client ContentItemClient) GetEntityTag(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string, contentItemID string) (result autorest.Response, err error) {
333	if tracing.IsEnabled() {
334		ctx = tracing.StartSpan(ctx, fqdn+"/ContentItemClient.GetEntityTag")
335		defer func() {
336			sc := -1
337			if result.Response != nil {
338				sc = result.Response.StatusCode
339			}
340			tracing.EndSpan(ctx, sc, err)
341		}()
342	}
343	if err := validation.Validate([]validation.Validation{
344		{TargetValue: serviceName,
345			Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil},
346				{Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil},
347				{Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}},
348		{TargetValue: contentTypeID,
349			Constraints: []validation.Constraint{{Target: "contentTypeID", Name: validation.MaxLength, Rule: 80, Chain: nil},
350				{Target: "contentTypeID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
351		{TargetValue: contentItemID,
352			Constraints: []validation.Constraint{{Target: "contentItemID", Name: validation.MaxLength, Rule: 80, Chain: nil},
353				{Target: "contentItemID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
354		return result, validation.NewError("apimanagement.ContentItemClient", "GetEntityTag", err.Error())
355	}
356
357	req, err := client.GetEntityTagPreparer(ctx, resourceGroupName, serviceName, contentTypeID, contentItemID)
358	if err != nil {
359		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "GetEntityTag", nil, "Failure preparing request")
360		return
361	}
362
363	resp, err := client.GetEntityTagSender(req)
364	if err != nil {
365		result.Response = resp
366		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "GetEntityTag", resp, "Failure sending request")
367		return
368	}
369
370	result, err = client.GetEntityTagResponder(resp)
371	if err != nil {
372		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "GetEntityTag", resp, "Failure responding to request")
373		return
374	}
375
376	return
377}
378
379// GetEntityTagPreparer prepares the GetEntityTag request.
380func (client ContentItemClient) GetEntityTagPreparer(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string, contentItemID string) (*http.Request, error) {
381	pathParameters := map[string]interface{}{
382		"contentItemId":     autorest.Encode("path", contentItemID),
383		"contentTypeId":     autorest.Encode("path", contentTypeID),
384		"resourceGroupName": autorest.Encode("path", resourceGroupName),
385		"serviceName":       autorest.Encode("path", serviceName),
386		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
387	}
388
389	const APIVersion = "2019-12-01"
390	queryParameters := map[string]interface{}{
391		"api-version": APIVersion,
392	}
393
394	preparer := autorest.CreatePreparer(
395		autorest.AsHead(),
396		autorest.WithBaseURL(client.BaseURI),
397		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}/contentItems/{contentItemId}", pathParameters),
398		autorest.WithQueryParameters(queryParameters))
399	return preparer.Prepare((&http.Request{}).WithContext(ctx))
400}
401
402// GetEntityTagSender sends the GetEntityTag request. The method will close the
403// http.Response Body if it receives an error.
404func (client ContentItemClient) GetEntityTagSender(req *http.Request) (*http.Response, error) {
405	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
406}
407
408// GetEntityTagResponder handles the response to the GetEntityTag request. The method always
409// closes the http.Response Body.
410func (client ContentItemClient) GetEntityTagResponder(resp *http.Response) (result autorest.Response, err error) {
411	err = autorest.Respond(
412		resp,
413		azure.WithErrorUnlessStatusCode(http.StatusOK),
414		autorest.ByClosing())
415	result.Response = resp
416	return
417}
418
419// ListByService returns list of content items
420// Parameters:
421// resourceGroupName - the name of the resource group.
422// serviceName - the name of the API Management service.
423// contentTypeID - content type identifier.
424func (client ContentItemClient) ListByService(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string) (result ContentItemCollectionPage, err error) {
425	if tracing.IsEnabled() {
426		ctx = tracing.StartSpan(ctx, fqdn+"/ContentItemClient.ListByService")
427		defer func() {
428			sc := -1
429			if result.cic.Response.Response != nil {
430				sc = result.cic.Response.Response.StatusCode
431			}
432			tracing.EndSpan(ctx, sc, err)
433		}()
434	}
435	if err := validation.Validate([]validation.Validation{
436		{TargetValue: serviceName,
437			Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil},
438				{Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil},
439				{Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}},
440		{TargetValue: contentTypeID,
441			Constraints: []validation.Constraint{{Target: "contentTypeID", Name: validation.MaxLength, Rule: 80, Chain: nil},
442				{Target: "contentTypeID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
443		return result, validation.NewError("apimanagement.ContentItemClient", "ListByService", err.Error())
444	}
445
446	result.fn = client.listByServiceNextResults
447	req, err := client.ListByServicePreparer(ctx, resourceGroupName, serviceName, contentTypeID)
448	if err != nil {
449		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "ListByService", nil, "Failure preparing request")
450		return
451	}
452
453	resp, err := client.ListByServiceSender(req)
454	if err != nil {
455		result.cic.Response = autorest.Response{Response: resp}
456		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "ListByService", resp, "Failure sending request")
457		return
458	}
459
460	result.cic, err = client.ListByServiceResponder(resp)
461	if err != nil {
462		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "ListByService", resp, "Failure responding to request")
463		return
464	}
465	if result.cic.hasNextLink() && result.cic.IsEmpty() {
466		err = result.NextWithContext(ctx)
467		return
468	}
469
470	return
471}
472
473// ListByServicePreparer prepares the ListByService request.
474func (client ContentItemClient) ListByServicePreparer(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string) (*http.Request, error) {
475	pathParameters := map[string]interface{}{
476		"contentTypeId":     autorest.Encode("path", contentTypeID),
477		"resourceGroupName": autorest.Encode("path", resourceGroupName),
478		"serviceName":       autorest.Encode("path", serviceName),
479		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
480	}
481
482	const APIVersion = "2019-12-01"
483	queryParameters := map[string]interface{}{
484		"api-version": APIVersion,
485	}
486
487	preparer := autorest.CreatePreparer(
488		autorest.AsGet(),
489		autorest.WithBaseURL(client.BaseURI),
490		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}/contentItems", pathParameters),
491		autorest.WithQueryParameters(queryParameters))
492	return preparer.Prepare((&http.Request{}).WithContext(ctx))
493}
494
495// ListByServiceSender sends the ListByService request. The method will close the
496// http.Response Body if it receives an error.
497func (client ContentItemClient) ListByServiceSender(req *http.Request) (*http.Response, error) {
498	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
499}
500
501// ListByServiceResponder handles the response to the ListByService request. The method always
502// closes the http.Response Body.
503func (client ContentItemClient) ListByServiceResponder(resp *http.Response) (result ContentItemCollection, err error) {
504	err = autorest.Respond(
505		resp,
506		azure.WithErrorUnlessStatusCode(http.StatusOK),
507		autorest.ByUnmarshallingJSON(&result),
508		autorest.ByClosing())
509	result.Response = autorest.Response{Response: resp}
510	return
511}
512
513// listByServiceNextResults retrieves the next set of results, if any.
514func (client ContentItemClient) listByServiceNextResults(ctx context.Context, lastResults ContentItemCollection) (result ContentItemCollection, err error) {
515	req, err := lastResults.contentItemCollectionPreparer(ctx)
516	if err != nil {
517		return result, autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "listByServiceNextResults", nil, "Failure preparing next results request")
518	}
519	if req == nil {
520		return
521	}
522	resp, err := client.ListByServiceSender(req)
523	if err != nil {
524		result.Response = autorest.Response{Response: resp}
525		return result, autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "listByServiceNextResults", resp, "Failure sending next results request")
526	}
527	result, err = client.ListByServiceResponder(resp)
528	if err != nil {
529		err = autorest.NewErrorWithError(err, "apimanagement.ContentItemClient", "listByServiceNextResults", resp, "Failure responding to next results request")
530	}
531	return
532}
533
534// ListByServiceComplete enumerates all values, automatically crossing page boundaries as required.
535func (client ContentItemClient) ListByServiceComplete(ctx context.Context, resourceGroupName string, serviceName string, contentTypeID string) (result ContentItemCollectionIterator, err error) {
536	if tracing.IsEnabled() {
537		ctx = tracing.StartSpan(ctx, fqdn+"/ContentItemClient.ListByService")
538		defer func() {
539			sc := -1
540			if result.Response().Response.Response != nil {
541				sc = result.page.Response().Response.Response.StatusCode
542			}
543			tracing.EndSpan(ctx, sc, err)
544		}()
545	}
546	result.page, err = client.ListByService(ctx, resourceGroupName, serviceName, contentTypeID)
547	return
548}
549