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 armnetwork 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 "strings" 19) 20 21// AvailableServiceAliasesClient contains the methods for the AvailableServiceAliases group. 22// Don't use this type directly, use NewAvailableServiceAliasesClient() instead. 23type AvailableServiceAliasesClient struct { 24 con *armcore.Connection 25 subscriptionID string 26} 27 28// NewAvailableServiceAliasesClient creates a new instance of AvailableServiceAliasesClient with the specified values. 29func NewAvailableServiceAliasesClient(con *armcore.Connection, subscriptionID string) *AvailableServiceAliasesClient { 30 return &AvailableServiceAliasesClient{con: con, subscriptionID: subscriptionID} 31} 32 33// List - Gets all available service aliases for this subscription in this region. 34// If the operation fails it returns the *CloudError error type. 35func (client *AvailableServiceAliasesClient) List(location string, options *AvailableServiceAliasesListOptions) AvailableServiceAliasesResultPager { 36 return &availableServiceAliasesResultPager{ 37 pipeline: client.con.Pipeline(), 38 requester: func(ctx context.Context) (*azcore.Request, error) { 39 return client.listCreateRequest(ctx, location, options) 40 }, 41 responder: client.listHandleResponse, 42 errorer: client.listHandleError, 43 advancer: func(ctx context.Context, resp AvailableServiceAliasesResultResponse) (*azcore.Request, error) { 44 return azcore.NewRequest(ctx, http.MethodGet, *resp.AvailableServiceAliasesResult.NextLink) 45 }, 46 statusCodes: []int{http.StatusOK}, 47 } 48} 49 50// listCreateRequest creates the List request. 51func (client *AvailableServiceAliasesClient) listCreateRequest(ctx context.Context, location string, options *AvailableServiceAliasesListOptions) (*azcore.Request, error) { 52 urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/availableServiceAliases" 53 if location == "" { 54 return nil, errors.New("parameter location cannot be empty") 55 } 56 urlPath = strings.ReplaceAll(urlPath, "{location}", url.PathEscape(location)) 57 if client.subscriptionID == "" { 58 return nil, errors.New("parameter client.subscriptionID cannot be empty") 59 } 60 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 61 req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 62 if err != nil { 63 return nil, err 64 } 65 req.Telemetry(telemetryInfo) 66 reqQP := req.URL.Query() 67 reqQP.Set("api-version", "2021-02-01") 68 req.URL.RawQuery = reqQP.Encode() 69 req.Header.Set("Accept", "application/json") 70 return req, nil 71} 72 73// listHandleResponse handles the List response. 74func (client *AvailableServiceAliasesClient) listHandleResponse(resp *azcore.Response) (AvailableServiceAliasesResultResponse, error) { 75 var val *AvailableServiceAliasesResult 76 if err := resp.UnmarshalAsJSON(&val); err != nil { 77 return AvailableServiceAliasesResultResponse{}, err 78 } 79 return AvailableServiceAliasesResultResponse{RawResponse: resp.Response, AvailableServiceAliasesResult: val}, nil 80} 81 82// listHandleError handles the List error response. 83func (client *AvailableServiceAliasesClient) listHandleError(resp *azcore.Response) error { 84 body, err := resp.Payload() 85 if err != nil { 86 return azcore.NewResponseError(err, resp.Response) 87 } 88 errType := CloudError{raw: string(body)} 89 if err := resp.UnmarshalAsJSON(&errType); err != nil { 90 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 91 } 92 return azcore.NewResponseError(&errType, resp.Response) 93} 94 95// ListByResourceGroup - Gets all available service aliases for this resource group in this region. 96// If the operation fails it returns the *CloudError error type. 97func (client *AvailableServiceAliasesClient) ListByResourceGroup(resourceGroupName string, location string, options *AvailableServiceAliasesListByResourceGroupOptions) AvailableServiceAliasesResultPager { 98 return &availableServiceAliasesResultPager{ 99 pipeline: client.con.Pipeline(), 100 requester: func(ctx context.Context) (*azcore.Request, error) { 101 return client.listByResourceGroupCreateRequest(ctx, resourceGroupName, location, options) 102 }, 103 responder: client.listByResourceGroupHandleResponse, 104 errorer: client.listByResourceGroupHandleError, 105 advancer: func(ctx context.Context, resp AvailableServiceAliasesResultResponse) (*azcore.Request, error) { 106 return azcore.NewRequest(ctx, http.MethodGet, *resp.AvailableServiceAliasesResult.NextLink) 107 }, 108 statusCodes: []int{http.StatusOK}, 109 } 110} 111 112// listByResourceGroupCreateRequest creates the ListByResourceGroup request. 113func (client *AvailableServiceAliasesClient) listByResourceGroupCreateRequest(ctx context.Context, resourceGroupName string, location string, options *AvailableServiceAliasesListByResourceGroupOptions) (*azcore.Request, error) { 114 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/locations/{location}/availableServiceAliases" 115 if resourceGroupName == "" { 116 return nil, errors.New("parameter resourceGroupName cannot be empty") 117 } 118 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 119 if location == "" { 120 return nil, errors.New("parameter location cannot be empty") 121 } 122 urlPath = strings.ReplaceAll(urlPath, "{location}", url.PathEscape(location)) 123 if client.subscriptionID == "" { 124 return nil, errors.New("parameter client.subscriptionID cannot be empty") 125 } 126 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 127 req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 128 if err != nil { 129 return nil, err 130 } 131 req.Telemetry(telemetryInfo) 132 reqQP := req.URL.Query() 133 reqQP.Set("api-version", "2021-02-01") 134 req.URL.RawQuery = reqQP.Encode() 135 req.Header.Set("Accept", "application/json") 136 return req, nil 137} 138 139// listByResourceGroupHandleResponse handles the ListByResourceGroup response. 140func (client *AvailableServiceAliasesClient) listByResourceGroupHandleResponse(resp *azcore.Response) (AvailableServiceAliasesResultResponse, error) { 141 var val *AvailableServiceAliasesResult 142 if err := resp.UnmarshalAsJSON(&val); err != nil { 143 return AvailableServiceAliasesResultResponse{}, err 144 } 145 return AvailableServiceAliasesResultResponse{RawResponse: resp.Response, AvailableServiceAliasesResult: val}, nil 146} 147 148// listByResourceGroupHandleError handles the ListByResourceGroup error response. 149func (client *AvailableServiceAliasesClient) listByResourceGroupHandleError(resp *azcore.Response) error { 150 body, err := resp.Payload() 151 if err != nil { 152 return azcore.NewResponseError(err, resp.Response) 153 } 154 errType := CloudError{raw: string(body)} 155 if err := resp.UnmarshalAsJSON(&errType); err != nil { 156 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 157 } 158 return azcore.NewResponseError(&errType, resp.Response) 159} 160