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