1// +build go1.13
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// Code generated by Microsoft (R) AutoRest Code Generator.
6// Changes may cause incorrect behavior and will be lost if the code is regenerated.
7
8package armapimanagement
9
10import (
11	"context"
12	"errors"
13	"fmt"
14	"github.com/Azure/azure-sdk-for-go/sdk/armcore"
15	"github.com/Azure/azure-sdk-for-go/sdk/azcore"
16	"net/http"
17	"net/url"
18	"strconv"
19	"strings"
20)
21
22// APIReleaseClient contains the methods for the APIRelease group.
23// Don't use this type directly, use NewAPIReleaseClient() instead.
24type APIReleaseClient struct {
25	con            *armcore.Connection
26	subscriptionID string
27}
28
29// NewAPIReleaseClient creates a new instance of APIReleaseClient with the specified values.
30func NewAPIReleaseClient(con *armcore.Connection, subscriptionID string) *APIReleaseClient {
31	return &APIReleaseClient{con: con, subscriptionID: subscriptionID}
32}
33
34// CreateOrUpdate - Creates a new Release for the API.
35// If the operation fails it returns the *ErrorResponse error type.
36func (client *APIReleaseClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, parameters APIReleaseContract, options *APIReleaseCreateOrUpdateOptions) (APIReleaseCreateOrUpdateResponse, error) {
37	req, err := client.createOrUpdateCreateRequest(ctx, resourceGroupName, serviceName, apiID, releaseID, parameters, options)
38	if err != nil {
39		return APIReleaseCreateOrUpdateResponse{}, err
40	}
41	resp, err := client.con.Pipeline().Do(req)
42	if err != nil {
43		return APIReleaseCreateOrUpdateResponse{}, err
44	}
45	if !resp.HasStatusCode(http.StatusOK, http.StatusCreated) {
46		return APIReleaseCreateOrUpdateResponse{}, client.createOrUpdateHandleError(resp)
47	}
48	return client.createOrUpdateHandleResponse(resp)
49}
50
51// createOrUpdateCreateRequest creates the CreateOrUpdate request.
52func (client *APIReleaseClient) createOrUpdateCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, parameters APIReleaseContract, options *APIReleaseCreateOrUpdateOptions) (*azcore.Request, error) {
53	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/releases/{releaseId}"
54	if resourceGroupName == "" {
55		return nil, errors.New("parameter resourceGroupName cannot be empty")
56	}
57	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
58	if serviceName == "" {
59		return nil, errors.New("parameter serviceName cannot be empty")
60	}
61	urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName))
62	if apiID == "" {
63		return nil, errors.New("parameter apiID cannot be empty")
64	}
65	urlPath = strings.ReplaceAll(urlPath, "{apiId}", url.PathEscape(apiID))
66	if releaseID == "" {
67		return nil, errors.New("parameter releaseID cannot be empty")
68	}
69	urlPath = strings.ReplaceAll(urlPath, "{releaseId}", url.PathEscape(releaseID))
70	if client.subscriptionID == "" {
71		return nil, errors.New("parameter client.subscriptionID cannot be empty")
72	}
73	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
74	req, err := azcore.NewRequest(ctx, http.MethodPut, azcore.JoinPaths(client.con.Endpoint(), urlPath))
75	if err != nil {
76		return nil, err
77	}
78	req.Telemetry(telemetryInfo)
79	reqQP := req.URL.Query()
80	reqQP.Set("api-version", "2020-12-01")
81	req.URL.RawQuery = reqQP.Encode()
82	if options != nil && options.IfMatch != nil {
83		req.Header.Set("If-Match", *options.IfMatch)
84	}
85	req.Header.Set("Accept", "application/json")
86	return req, req.MarshalAsJSON(parameters)
87}
88
89// createOrUpdateHandleResponse handles the CreateOrUpdate response.
90func (client *APIReleaseClient) createOrUpdateHandleResponse(resp *azcore.Response) (APIReleaseCreateOrUpdateResponse, error) {
91	result := APIReleaseCreateOrUpdateResponse{RawResponse: resp.Response}
92	if val := resp.Header.Get("ETag"); val != "" {
93		result.ETag = &val
94	}
95	if err := resp.UnmarshalAsJSON(&result.APIReleaseContract); err != nil {
96		return APIReleaseCreateOrUpdateResponse{}, err
97	}
98	return result, nil
99}
100
101// createOrUpdateHandleError handles the CreateOrUpdate error response.
102func (client *APIReleaseClient) createOrUpdateHandleError(resp *azcore.Response) error {
103	body, err := resp.Payload()
104	if err != nil {
105		return azcore.NewResponseError(err, resp.Response)
106	}
107	errType := ErrorResponse{raw: string(body)}
108	if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil {
109		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
110	}
111	return azcore.NewResponseError(&errType, resp.Response)
112}
113
114// Delete - Deletes the specified release in the API.
115// If the operation fails it returns the *ErrorResponse error type.
116func (client *APIReleaseClient) Delete(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, ifMatch string, options *APIReleaseDeleteOptions) (APIReleaseDeleteResponse, error) {
117	req, err := client.deleteCreateRequest(ctx, resourceGroupName, serviceName, apiID, releaseID, ifMatch, options)
118	if err != nil {
119		return APIReleaseDeleteResponse{}, err
120	}
121	resp, err := client.con.Pipeline().Do(req)
122	if err != nil {
123		return APIReleaseDeleteResponse{}, err
124	}
125	if !resp.HasStatusCode(http.StatusOK, http.StatusNoContent) {
126		return APIReleaseDeleteResponse{}, client.deleteHandleError(resp)
127	}
128	return APIReleaseDeleteResponse{RawResponse: resp.Response}, nil
129}
130
131// deleteCreateRequest creates the Delete request.
132func (client *APIReleaseClient) deleteCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, ifMatch string, options *APIReleaseDeleteOptions) (*azcore.Request, error) {
133	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/releases/{releaseId}"
134	if resourceGroupName == "" {
135		return nil, errors.New("parameter resourceGroupName cannot be empty")
136	}
137	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
138	if serviceName == "" {
139		return nil, errors.New("parameter serviceName cannot be empty")
140	}
141	urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName))
142	if apiID == "" {
143		return nil, errors.New("parameter apiID cannot be empty")
144	}
145	urlPath = strings.ReplaceAll(urlPath, "{apiId}", url.PathEscape(apiID))
146	if releaseID == "" {
147		return nil, errors.New("parameter releaseID cannot be empty")
148	}
149	urlPath = strings.ReplaceAll(urlPath, "{releaseId}", url.PathEscape(releaseID))
150	if client.subscriptionID == "" {
151		return nil, errors.New("parameter client.subscriptionID cannot be empty")
152	}
153	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
154	req, err := azcore.NewRequest(ctx, http.MethodDelete, azcore.JoinPaths(client.con.Endpoint(), urlPath))
155	if err != nil {
156		return nil, err
157	}
158	req.Telemetry(telemetryInfo)
159	reqQP := req.URL.Query()
160	reqQP.Set("api-version", "2020-12-01")
161	req.URL.RawQuery = reqQP.Encode()
162	req.Header.Set("If-Match", ifMatch)
163	req.Header.Set("Accept", "application/json")
164	return req, nil
165}
166
167// deleteHandleError handles the Delete error response.
168func (client *APIReleaseClient) deleteHandleError(resp *azcore.Response) error {
169	body, err := resp.Payload()
170	if err != nil {
171		return azcore.NewResponseError(err, resp.Response)
172	}
173	errType := ErrorResponse{raw: string(body)}
174	if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil {
175		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
176	}
177	return azcore.NewResponseError(&errType, resp.Response)
178}
179
180// Get - Returns the details of an API release.
181// If the operation fails it returns the *ErrorResponse error type.
182func (client *APIReleaseClient) Get(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, options *APIReleaseGetOptions) (APIReleaseGetResponse, error) {
183	req, err := client.getCreateRequest(ctx, resourceGroupName, serviceName, apiID, releaseID, options)
184	if err != nil {
185		return APIReleaseGetResponse{}, err
186	}
187	resp, err := client.con.Pipeline().Do(req)
188	if err != nil {
189		return APIReleaseGetResponse{}, err
190	}
191	if !resp.HasStatusCode(http.StatusOK) {
192		return APIReleaseGetResponse{}, client.getHandleError(resp)
193	}
194	return client.getHandleResponse(resp)
195}
196
197// getCreateRequest creates the Get request.
198func (client *APIReleaseClient) getCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, options *APIReleaseGetOptions) (*azcore.Request, error) {
199	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/releases/{releaseId}"
200	if resourceGroupName == "" {
201		return nil, errors.New("parameter resourceGroupName cannot be empty")
202	}
203	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
204	if serviceName == "" {
205		return nil, errors.New("parameter serviceName cannot be empty")
206	}
207	urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName))
208	if apiID == "" {
209		return nil, errors.New("parameter apiID cannot be empty")
210	}
211	urlPath = strings.ReplaceAll(urlPath, "{apiId}", url.PathEscape(apiID))
212	if releaseID == "" {
213		return nil, errors.New("parameter releaseID cannot be empty")
214	}
215	urlPath = strings.ReplaceAll(urlPath, "{releaseId}", url.PathEscape(releaseID))
216	if client.subscriptionID == "" {
217		return nil, errors.New("parameter client.subscriptionID cannot be empty")
218	}
219	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
220	req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath))
221	if err != nil {
222		return nil, err
223	}
224	req.Telemetry(telemetryInfo)
225	reqQP := req.URL.Query()
226	reqQP.Set("api-version", "2020-12-01")
227	req.URL.RawQuery = reqQP.Encode()
228	req.Header.Set("Accept", "application/json")
229	return req, nil
230}
231
232// getHandleResponse handles the Get response.
233func (client *APIReleaseClient) getHandleResponse(resp *azcore.Response) (APIReleaseGetResponse, error) {
234	result := APIReleaseGetResponse{RawResponse: resp.Response}
235	if val := resp.Header.Get("ETag"); val != "" {
236		result.ETag = &val
237	}
238	if err := resp.UnmarshalAsJSON(&result.APIReleaseContract); err != nil {
239		return APIReleaseGetResponse{}, err
240	}
241	return result, nil
242}
243
244// getHandleError handles the Get error response.
245func (client *APIReleaseClient) getHandleError(resp *azcore.Response) error {
246	body, err := resp.Payload()
247	if err != nil {
248		return azcore.NewResponseError(err, resp.Response)
249	}
250	errType := ErrorResponse{raw: string(body)}
251	if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil {
252		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
253	}
254	return azcore.NewResponseError(&errType, resp.Response)
255}
256
257// GetEntityTag - Returns the etag of an API release.
258// If the operation fails it returns the *ErrorResponse error type.
259func (client *APIReleaseClient) GetEntityTag(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, options *APIReleaseGetEntityTagOptions) (APIReleaseGetEntityTagResponse, error) {
260	req, err := client.getEntityTagCreateRequest(ctx, resourceGroupName, serviceName, apiID, releaseID, options)
261	if err != nil {
262		return APIReleaseGetEntityTagResponse{}, err
263	}
264	resp, err := client.con.Pipeline().Do(req)
265	if err != nil {
266		return APIReleaseGetEntityTagResponse{}, err
267	}
268	return client.getEntityTagHandleResponse(resp)
269}
270
271// getEntityTagCreateRequest creates the GetEntityTag request.
272func (client *APIReleaseClient) getEntityTagCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, options *APIReleaseGetEntityTagOptions) (*azcore.Request, error) {
273	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/releases/{releaseId}"
274	if resourceGroupName == "" {
275		return nil, errors.New("parameter resourceGroupName cannot be empty")
276	}
277	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
278	if serviceName == "" {
279		return nil, errors.New("parameter serviceName cannot be empty")
280	}
281	urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName))
282	if apiID == "" {
283		return nil, errors.New("parameter apiID cannot be empty")
284	}
285	urlPath = strings.ReplaceAll(urlPath, "{apiId}", url.PathEscape(apiID))
286	if releaseID == "" {
287		return nil, errors.New("parameter releaseID cannot be empty")
288	}
289	urlPath = strings.ReplaceAll(urlPath, "{releaseId}", url.PathEscape(releaseID))
290	if client.subscriptionID == "" {
291		return nil, errors.New("parameter client.subscriptionID cannot be empty")
292	}
293	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
294	req, err := azcore.NewRequest(ctx, http.MethodHead, azcore.JoinPaths(client.con.Endpoint(), urlPath))
295	if err != nil {
296		return nil, err
297	}
298	req.Telemetry(telemetryInfo)
299	reqQP := req.URL.Query()
300	reqQP.Set("api-version", "2020-12-01")
301	req.URL.RawQuery = reqQP.Encode()
302	req.Header.Set("Accept", "application/json")
303	return req, nil
304}
305
306// getEntityTagHandleResponse handles the GetEntityTag response.
307func (client *APIReleaseClient) getEntityTagHandleResponse(resp *azcore.Response) (APIReleaseGetEntityTagResponse, error) {
308	result := APIReleaseGetEntityTagResponse{RawResponse: resp.Response}
309	if val := resp.Header.Get("ETag"); val != "" {
310		result.ETag = &val
311	}
312	if resp.StatusCode >= 200 && resp.StatusCode < 300 {
313		result.Success = true
314	}
315	return result, nil
316}
317
318// ListByService - Lists all releases of an API. An API release is created when making an API Revision current. Releases are also used to rollback to previous
319// revisions. Results will be paged and can be constrained by
320// the $top and $skip parameters.
321// If the operation fails it returns the *ErrorResponse error type.
322func (client *APIReleaseClient) ListByService(resourceGroupName string, serviceName string, apiID string, options *APIReleaseListByServiceOptions) APIReleaseListByServicePager {
323	return &apiReleaseListByServicePager{
324		client: client,
325		requester: func(ctx context.Context) (*azcore.Request, error) {
326			return client.listByServiceCreateRequest(ctx, resourceGroupName, serviceName, apiID, options)
327		},
328		advancer: func(ctx context.Context, resp APIReleaseListByServiceResponse) (*azcore.Request, error) {
329			return azcore.NewRequest(ctx, http.MethodGet, *resp.APIReleaseCollection.NextLink)
330		},
331	}
332}
333
334// listByServiceCreateRequest creates the ListByService request.
335func (client *APIReleaseClient) listByServiceCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, apiID string, options *APIReleaseListByServiceOptions) (*azcore.Request, error) {
336	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/releases"
337	if resourceGroupName == "" {
338		return nil, errors.New("parameter resourceGroupName cannot be empty")
339	}
340	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
341	if serviceName == "" {
342		return nil, errors.New("parameter serviceName cannot be empty")
343	}
344	urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName))
345	if apiID == "" {
346		return nil, errors.New("parameter apiID cannot be empty")
347	}
348	urlPath = strings.ReplaceAll(urlPath, "{apiId}", url.PathEscape(apiID))
349	if client.subscriptionID == "" {
350		return nil, errors.New("parameter client.subscriptionID cannot be empty")
351	}
352	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
353	req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath))
354	if err != nil {
355		return nil, err
356	}
357	req.Telemetry(telemetryInfo)
358	reqQP := req.URL.Query()
359	if options != nil && options.Filter != nil {
360		reqQP.Set("$filter", *options.Filter)
361	}
362	if options != nil && options.Top != nil {
363		reqQP.Set("$top", strconv.FormatInt(int64(*options.Top), 10))
364	}
365	if options != nil && options.Skip != nil {
366		reqQP.Set("$skip", strconv.FormatInt(int64(*options.Skip), 10))
367	}
368	reqQP.Set("api-version", "2020-12-01")
369	req.URL.RawQuery = reqQP.Encode()
370	req.Header.Set("Accept", "application/json")
371	return req, nil
372}
373
374// listByServiceHandleResponse handles the ListByService response.
375func (client *APIReleaseClient) listByServiceHandleResponse(resp *azcore.Response) (APIReleaseListByServiceResponse, error) {
376	result := APIReleaseListByServiceResponse{RawResponse: resp.Response}
377	if err := resp.UnmarshalAsJSON(&result.APIReleaseCollection); err != nil {
378		return APIReleaseListByServiceResponse{}, err
379	}
380	return result, nil
381}
382
383// listByServiceHandleError handles the ListByService error response.
384func (client *APIReleaseClient) listByServiceHandleError(resp *azcore.Response) error {
385	body, err := resp.Payload()
386	if err != nil {
387		return azcore.NewResponseError(err, resp.Response)
388	}
389	errType := ErrorResponse{raw: string(body)}
390	if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil {
391		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
392	}
393	return azcore.NewResponseError(&errType, resp.Response)
394}
395
396// Update - Updates the details of the release of the API specified by its identifier.
397// If the operation fails it returns the *ErrorResponse error type.
398func (client *APIReleaseClient) Update(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, ifMatch string, parameters APIReleaseContract, options *APIReleaseUpdateOptions) (APIReleaseUpdateResponse, error) {
399	req, err := client.updateCreateRequest(ctx, resourceGroupName, serviceName, apiID, releaseID, ifMatch, parameters, options)
400	if err != nil {
401		return APIReleaseUpdateResponse{}, err
402	}
403	resp, err := client.con.Pipeline().Do(req)
404	if err != nil {
405		return APIReleaseUpdateResponse{}, err
406	}
407	if !resp.HasStatusCode(http.StatusOK) {
408		return APIReleaseUpdateResponse{}, client.updateHandleError(resp)
409	}
410	return client.updateHandleResponse(resp)
411}
412
413// updateCreateRequest creates the Update request.
414func (client *APIReleaseClient) updateCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, apiID string, releaseID string, ifMatch string, parameters APIReleaseContract, options *APIReleaseUpdateOptions) (*azcore.Request, error) {
415	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/releases/{releaseId}"
416	if resourceGroupName == "" {
417		return nil, errors.New("parameter resourceGroupName cannot be empty")
418	}
419	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
420	if serviceName == "" {
421		return nil, errors.New("parameter serviceName cannot be empty")
422	}
423	urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName))
424	if apiID == "" {
425		return nil, errors.New("parameter apiID cannot be empty")
426	}
427	urlPath = strings.ReplaceAll(urlPath, "{apiId}", url.PathEscape(apiID))
428	if releaseID == "" {
429		return nil, errors.New("parameter releaseID cannot be empty")
430	}
431	urlPath = strings.ReplaceAll(urlPath, "{releaseId}", url.PathEscape(releaseID))
432	if client.subscriptionID == "" {
433		return nil, errors.New("parameter client.subscriptionID cannot be empty")
434	}
435	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
436	req, err := azcore.NewRequest(ctx, http.MethodPatch, azcore.JoinPaths(client.con.Endpoint(), urlPath))
437	if err != nil {
438		return nil, err
439	}
440	req.Telemetry(telemetryInfo)
441	reqQP := req.URL.Query()
442	reqQP.Set("api-version", "2020-12-01")
443	req.URL.RawQuery = reqQP.Encode()
444	req.Header.Set("If-Match", ifMatch)
445	req.Header.Set("Accept", "application/json")
446	return req, req.MarshalAsJSON(parameters)
447}
448
449// updateHandleResponse handles the Update response.
450func (client *APIReleaseClient) updateHandleResponse(resp *azcore.Response) (APIReleaseUpdateResponse, error) {
451	result := APIReleaseUpdateResponse{RawResponse: resp.Response}
452	if val := resp.Header.Get("ETag"); val != "" {
453		result.ETag = &val
454	}
455	if err := resp.UnmarshalAsJSON(&result.APIReleaseContract); err != nil {
456		return APIReleaseUpdateResponse{}, err
457	}
458	return result, nil
459}
460
461// updateHandleError handles the Update error response.
462func (client *APIReleaseClient) updateHandleError(resp *azcore.Response) error {
463	body, err := resp.Payload()
464	if err != nil {
465		return azcore.NewResponseError(err, resp.Response)
466	}
467	errType := ErrorResponse{raw: string(body)}
468	if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil {
469		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
470	}
471	return azcore.NewResponseError(&errType, resp.Response)
472}
473