// +build go1.13 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package armapimanagement import ( "context" "errors" "fmt" "github.com/Azure/azure-sdk-for-go/sdk/armcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "net/http" "net/url" "strconv" "strings" ) // OpenIDConnectProviderClient contains the methods for the OpenIDConnectProvider group. // Don't use this type directly, use NewOpenIDConnectProviderClient() instead. type OpenIDConnectProviderClient struct { con *armcore.Connection subscriptionID string } // NewOpenIDConnectProviderClient creates a new instance of OpenIDConnectProviderClient with the specified values. func NewOpenIDConnectProviderClient(con *armcore.Connection, subscriptionID string) *OpenIDConnectProviderClient { return &OpenIDConnectProviderClient{con: con, subscriptionID: subscriptionID} } // CreateOrUpdate - Creates or updates the OpenID Connect Provider. // If the operation fails it returns the *ErrorResponse error type. func (client *OpenIDConnectProviderClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, serviceName string, opid string, parameters OpenidConnectProviderContract, options *OpenIDConnectProviderCreateOrUpdateOptions) (OpenIDConnectProviderCreateOrUpdateResponse, error) { req, err := client.createOrUpdateCreateRequest(ctx, resourceGroupName, serviceName, opid, parameters, options) if err != nil { return OpenIDConnectProviderCreateOrUpdateResponse{}, err } resp, err := client.con.Pipeline().Do(req) if err != nil { return OpenIDConnectProviderCreateOrUpdateResponse{}, err } if !resp.HasStatusCode(http.StatusOK, http.StatusCreated) { return OpenIDConnectProviderCreateOrUpdateResponse{}, client.createOrUpdateHandleError(resp) } return client.createOrUpdateHandleResponse(resp) } // createOrUpdateCreateRequest creates the CreateOrUpdate request. func (client *OpenIDConnectProviderClient) createOrUpdateCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, opid string, parameters OpenidConnectProviderContract, options *OpenIDConnectProviderCreateOrUpdateOptions) (*azcore.Request, error) { urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders/{opid}" if resourceGroupName == "" { return nil, errors.New("parameter resourceGroupName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) if serviceName == "" { return nil, errors.New("parameter serviceName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName)) if opid == "" { return nil, errors.New("parameter opid cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{opid}", url.PathEscape(opid)) if client.subscriptionID == "" { return nil, errors.New("parameter client.subscriptionID cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) req, err := azcore.NewRequest(ctx, http.MethodPut, azcore.JoinPaths(client.con.Endpoint(), urlPath)) if err != nil { return nil, err } req.Telemetry(telemetryInfo) reqQP := req.URL.Query() reqQP.Set("api-version", "2020-12-01") req.URL.RawQuery = reqQP.Encode() if options != nil && options.IfMatch != nil { req.Header.Set("If-Match", *options.IfMatch) } req.Header.Set("Accept", "application/json") return req, req.MarshalAsJSON(parameters) } // createOrUpdateHandleResponse handles the CreateOrUpdate response. func (client *OpenIDConnectProviderClient) createOrUpdateHandleResponse(resp *azcore.Response) (OpenIDConnectProviderCreateOrUpdateResponse, error) { result := OpenIDConnectProviderCreateOrUpdateResponse{RawResponse: resp.Response} if val := resp.Header.Get("ETag"); val != "" { result.ETag = &val } if err := resp.UnmarshalAsJSON(&result.OpenidConnectProviderContract); err != nil { return OpenIDConnectProviderCreateOrUpdateResponse{}, err } return result, nil } // createOrUpdateHandleError handles the CreateOrUpdate error response. func (client *OpenIDConnectProviderClient) createOrUpdateHandleError(resp *azcore.Response) error { body, err := resp.Payload() if err != nil { return azcore.NewResponseError(err, resp.Response) } errType := ErrorResponse{raw: string(body)} if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil { return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) } return azcore.NewResponseError(&errType, resp.Response) } // Delete - Deletes specific OpenID Connect Provider of the API Management service instance. // If the operation fails it returns the *ErrorResponse error type. func (client *OpenIDConnectProviderClient) Delete(ctx context.Context, resourceGroupName string, serviceName string, opid string, ifMatch string, options *OpenIDConnectProviderDeleteOptions) (OpenIDConnectProviderDeleteResponse, error) { req, err := client.deleteCreateRequest(ctx, resourceGroupName, serviceName, opid, ifMatch, options) if err != nil { return OpenIDConnectProviderDeleteResponse{}, err } resp, err := client.con.Pipeline().Do(req) if err != nil { return OpenIDConnectProviderDeleteResponse{}, err } if !resp.HasStatusCode(http.StatusOK, http.StatusNoContent) { return OpenIDConnectProviderDeleteResponse{}, client.deleteHandleError(resp) } return OpenIDConnectProviderDeleteResponse{RawResponse: resp.Response}, nil } // deleteCreateRequest creates the Delete request. func (client *OpenIDConnectProviderClient) deleteCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, opid string, ifMatch string, options *OpenIDConnectProviderDeleteOptions) (*azcore.Request, error) { urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders/{opid}" if resourceGroupName == "" { return nil, errors.New("parameter resourceGroupName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) if serviceName == "" { return nil, errors.New("parameter serviceName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName)) if opid == "" { return nil, errors.New("parameter opid cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{opid}", url.PathEscape(opid)) if client.subscriptionID == "" { return nil, errors.New("parameter client.subscriptionID cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) req, err := azcore.NewRequest(ctx, http.MethodDelete, azcore.JoinPaths(client.con.Endpoint(), urlPath)) if err != nil { return nil, err } req.Telemetry(telemetryInfo) reqQP := req.URL.Query() reqQP.Set("api-version", "2020-12-01") req.URL.RawQuery = reqQP.Encode() req.Header.Set("If-Match", ifMatch) req.Header.Set("Accept", "application/json") return req, nil } // deleteHandleError handles the Delete error response. func (client *OpenIDConnectProviderClient) deleteHandleError(resp *azcore.Response) error { body, err := resp.Payload() if err != nil { return azcore.NewResponseError(err, resp.Response) } errType := ErrorResponse{raw: string(body)} if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil { return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) } return azcore.NewResponseError(&errType, resp.Response) } // Get - Gets specific OpenID Connect Provider without secrets. // If the operation fails it returns the *ErrorResponse error type. func (client *OpenIDConnectProviderClient) Get(ctx context.Context, resourceGroupName string, serviceName string, opid string, options *OpenIDConnectProviderGetOptions) (OpenIDConnectProviderGetResponse, error) { req, err := client.getCreateRequest(ctx, resourceGroupName, serviceName, opid, options) if err != nil { return OpenIDConnectProviderGetResponse{}, err } resp, err := client.con.Pipeline().Do(req) if err != nil { return OpenIDConnectProviderGetResponse{}, err } if !resp.HasStatusCode(http.StatusOK) { return OpenIDConnectProviderGetResponse{}, client.getHandleError(resp) } return client.getHandleResponse(resp) } // getCreateRequest creates the Get request. func (client *OpenIDConnectProviderClient) getCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, opid string, options *OpenIDConnectProviderGetOptions) (*azcore.Request, error) { urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders/{opid}" if resourceGroupName == "" { return nil, errors.New("parameter resourceGroupName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) if serviceName == "" { return nil, errors.New("parameter serviceName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName)) if opid == "" { return nil, errors.New("parameter opid cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{opid}", url.PathEscape(opid)) if client.subscriptionID == "" { return nil, errors.New("parameter client.subscriptionID cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath)) if err != nil { return nil, err } req.Telemetry(telemetryInfo) reqQP := req.URL.Query() reqQP.Set("api-version", "2020-12-01") req.URL.RawQuery = reqQP.Encode() req.Header.Set("Accept", "application/json") return req, nil } // getHandleResponse handles the Get response. func (client *OpenIDConnectProviderClient) getHandleResponse(resp *azcore.Response) (OpenIDConnectProviderGetResponse, error) { result := OpenIDConnectProviderGetResponse{RawResponse: resp.Response} if val := resp.Header.Get("ETag"); val != "" { result.ETag = &val } if err := resp.UnmarshalAsJSON(&result.OpenidConnectProviderContract); err != nil { return OpenIDConnectProviderGetResponse{}, err } return result, nil } // getHandleError handles the Get error response. func (client *OpenIDConnectProviderClient) getHandleError(resp *azcore.Response) error { body, err := resp.Payload() if err != nil { return azcore.NewResponseError(err, resp.Response) } errType := ErrorResponse{raw: string(body)} if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil { return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) } return azcore.NewResponseError(&errType, resp.Response) } // GetEntityTag - Gets the entity state (Etag) version of the openIdConnectProvider specified by its identifier. // If the operation fails it returns the *ErrorResponse error type. func (client *OpenIDConnectProviderClient) GetEntityTag(ctx context.Context, resourceGroupName string, serviceName string, opid string, options *OpenIDConnectProviderGetEntityTagOptions) (OpenIDConnectProviderGetEntityTagResponse, error) { req, err := client.getEntityTagCreateRequest(ctx, resourceGroupName, serviceName, opid, options) if err != nil { return OpenIDConnectProviderGetEntityTagResponse{}, err } resp, err := client.con.Pipeline().Do(req) if err != nil { return OpenIDConnectProviderGetEntityTagResponse{}, err } return client.getEntityTagHandleResponse(resp) } // getEntityTagCreateRequest creates the GetEntityTag request. func (client *OpenIDConnectProviderClient) getEntityTagCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, opid string, options *OpenIDConnectProviderGetEntityTagOptions) (*azcore.Request, error) { urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders/{opid}" if resourceGroupName == "" { return nil, errors.New("parameter resourceGroupName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) if serviceName == "" { return nil, errors.New("parameter serviceName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName)) if opid == "" { return nil, errors.New("parameter opid cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{opid}", url.PathEscape(opid)) if client.subscriptionID == "" { return nil, errors.New("parameter client.subscriptionID cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) req, err := azcore.NewRequest(ctx, http.MethodHead, azcore.JoinPaths(client.con.Endpoint(), urlPath)) if err != nil { return nil, err } req.Telemetry(telemetryInfo) reqQP := req.URL.Query() reqQP.Set("api-version", "2020-12-01") req.URL.RawQuery = reqQP.Encode() req.Header.Set("Accept", "application/json") return req, nil } // getEntityTagHandleResponse handles the GetEntityTag response. func (client *OpenIDConnectProviderClient) getEntityTagHandleResponse(resp *azcore.Response) (OpenIDConnectProviderGetEntityTagResponse, error) { result := OpenIDConnectProviderGetEntityTagResponse{RawResponse: resp.Response} if val := resp.Header.Get("ETag"); val != "" { result.ETag = &val } if resp.StatusCode >= 200 && resp.StatusCode < 300 { result.Success = true } return result, nil } // ListByService - Lists of all the OpenId Connect Providers. // If the operation fails it returns the *ErrorResponse error type. func (client *OpenIDConnectProviderClient) ListByService(resourceGroupName string, serviceName string, options *OpenIDConnectProviderListByServiceOptions) OpenIDConnectProviderListByServicePager { return &openIDConnectProviderListByServicePager{ client: client, requester: func(ctx context.Context) (*azcore.Request, error) { return client.listByServiceCreateRequest(ctx, resourceGroupName, serviceName, options) }, advancer: func(ctx context.Context, resp OpenIDConnectProviderListByServiceResponse) (*azcore.Request, error) { return azcore.NewRequest(ctx, http.MethodGet, *resp.OpenIDConnectProviderCollection.NextLink) }, } } // listByServiceCreateRequest creates the ListByService request. func (client *OpenIDConnectProviderClient) listByServiceCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, options *OpenIDConnectProviderListByServiceOptions) (*azcore.Request, error) { urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders" if resourceGroupName == "" { return nil, errors.New("parameter resourceGroupName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) if serviceName == "" { return nil, errors.New("parameter serviceName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName)) if client.subscriptionID == "" { return nil, errors.New("parameter client.subscriptionID cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath)) if err != nil { return nil, err } req.Telemetry(telemetryInfo) reqQP := req.URL.Query() if options != nil && options.Filter != nil { reqQP.Set("$filter", *options.Filter) } if options != nil && options.Top != nil { reqQP.Set("$top", strconv.FormatInt(int64(*options.Top), 10)) } if options != nil && options.Skip != nil { reqQP.Set("$skip", strconv.FormatInt(int64(*options.Skip), 10)) } reqQP.Set("api-version", "2020-12-01") req.URL.RawQuery = reqQP.Encode() req.Header.Set("Accept", "application/json") return req, nil } // listByServiceHandleResponse handles the ListByService response. func (client *OpenIDConnectProviderClient) listByServiceHandleResponse(resp *azcore.Response) (OpenIDConnectProviderListByServiceResponse, error) { result := OpenIDConnectProviderListByServiceResponse{RawResponse: resp.Response} if err := resp.UnmarshalAsJSON(&result.OpenIDConnectProviderCollection); err != nil { return OpenIDConnectProviderListByServiceResponse{}, err } return result, nil } // listByServiceHandleError handles the ListByService error response. func (client *OpenIDConnectProviderClient) listByServiceHandleError(resp *azcore.Response) error { body, err := resp.Payload() if err != nil { return azcore.NewResponseError(err, resp.Response) } errType := ErrorResponse{raw: string(body)} if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil { return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) } return azcore.NewResponseError(&errType, resp.Response) } // ListSecrets - Gets the client secret details of the OpenID Connect Provider. // If the operation fails it returns the *ErrorResponse error type. func (client *OpenIDConnectProviderClient) ListSecrets(ctx context.Context, resourceGroupName string, serviceName string, opid string, options *OpenIDConnectProviderListSecretsOptions) (OpenIDConnectProviderListSecretsResponse, error) { req, err := client.listSecretsCreateRequest(ctx, resourceGroupName, serviceName, opid, options) if err != nil { return OpenIDConnectProviderListSecretsResponse{}, err } resp, err := client.con.Pipeline().Do(req) if err != nil { return OpenIDConnectProviderListSecretsResponse{}, err } if !resp.HasStatusCode(http.StatusOK) { return OpenIDConnectProviderListSecretsResponse{}, client.listSecretsHandleError(resp) } return client.listSecretsHandleResponse(resp) } // listSecretsCreateRequest creates the ListSecrets request. func (client *OpenIDConnectProviderClient) listSecretsCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, opid string, options *OpenIDConnectProviderListSecretsOptions) (*azcore.Request, error) { urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders/{opid}/listSecrets" if resourceGroupName == "" { return nil, errors.New("parameter resourceGroupName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) if serviceName == "" { return nil, errors.New("parameter serviceName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName)) if opid == "" { return nil, errors.New("parameter opid cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{opid}", url.PathEscape(opid)) if client.subscriptionID == "" { return nil, errors.New("parameter client.subscriptionID cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) if err != nil { return nil, err } req.Telemetry(telemetryInfo) reqQP := req.URL.Query() reqQP.Set("api-version", "2020-12-01") req.URL.RawQuery = reqQP.Encode() req.Header.Set("Accept", "application/json") return req, nil } // listSecretsHandleResponse handles the ListSecrets response. func (client *OpenIDConnectProviderClient) listSecretsHandleResponse(resp *azcore.Response) (OpenIDConnectProviderListSecretsResponse, error) { result := OpenIDConnectProviderListSecretsResponse{RawResponse: resp.Response} if val := resp.Header.Get("ETag"); val != "" { result.ETag = &val } if err := resp.UnmarshalAsJSON(&result.ClientSecretContract); err != nil { return OpenIDConnectProviderListSecretsResponse{}, err } return result, nil } // listSecretsHandleError handles the ListSecrets error response. func (client *OpenIDConnectProviderClient) listSecretsHandleError(resp *azcore.Response) error { body, err := resp.Payload() if err != nil { return azcore.NewResponseError(err, resp.Response) } errType := ErrorResponse{raw: string(body)} if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil { return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) } return azcore.NewResponseError(&errType, resp.Response) } // Update - Updates the specific OpenID Connect Provider. // If the operation fails it returns the *ErrorResponse error type. func (client *OpenIDConnectProviderClient) Update(ctx context.Context, resourceGroupName string, serviceName string, opid string, ifMatch string, parameters OpenidConnectProviderUpdateContract, options *OpenIDConnectProviderUpdateOptions) (OpenIDConnectProviderUpdateResponse, error) { req, err := client.updateCreateRequest(ctx, resourceGroupName, serviceName, opid, ifMatch, parameters, options) if err != nil { return OpenIDConnectProviderUpdateResponse{}, err } resp, err := client.con.Pipeline().Do(req) if err != nil { return OpenIDConnectProviderUpdateResponse{}, err } if !resp.HasStatusCode(http.StatusOK) { return OpenIDConnectProviderUpdateResponse{}, client.updateHandleError(resp) } return client.updateHandleResponse(resp) } // updateCreateRequest creates the Update request. func (client *OpenIDConnectProviderClient) updateCreateRequest(ctx context.Context, resourceGroupName string, serviceName string, opid string, ifMatch string, parameters OpenidConnectProviderUpdateContract, options *OpenIDConnectProviderUpdateOptions) (*azcore.Request, error) { urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders/{opid}" if resourceGroupName == "" { return nil, errors.New("parameter resourceGroupName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) if serviceName == "" { return nil, errors.New("parameter serviceName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{serviceName}", url.PathEscape(serviceName)) if opid == "" { return nil, errors.New("parameter opid cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{opid}", url.PathEscape(opid)) if client.subscriptionID == "" { return nil, errors.New("parameter client.subscriptionID cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) req, err := azcore.NewRequest(ctx, http.MethodPatch, azcore.JoinPaths(client.con.Endpoint(), urlPath)) if err != nil { return nil, err } req.Telemetry(telemetryInfo) reqQP := req.URL.Query() reqQP.Set("api-version", "2020-12-01") req.URL.RawQuery = reqQP.Encode() req.Header.Set("If-Match", ifMatch) req.Header.Set("Accept", "application/json") return req, req.MarshalAsJSON(parameters) } // updateHandleResponse handles the Update response. func (client *OpenIDConnectProviderClient) updateHandleResponse(resp *azcore.Response) (OpenIDConnectProviderUpdateResponse, error) { result := OpenIDConnectProviderUpdateResponse{RawResponse: resp.Response} if val := resp.Header.Get("ETag"); val != "" { result.ETag = &val } if err := resp.UnmarshalAsJSON(&result.OpenidConnectProviderContract); err != nil { return OpenIDConnectProviderUpdateResponse{}, err } return result, nil } // updateHandleError handles the Update error response. func (client *OpenIDConnectProviderClient) updateHandleError(resp *azcore.Response) error { body, err := resp.Payload() if err != nil { return azcore.NewResponseError(err, resp.Response) } errType := ErrorResponse{raw: string(body)} if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil { return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) } return azcore.NewResponseError(&errType, resp.Response) }