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 "github.com/Azure/azure-sdk-for-go/sdk/armcore" 13 "github.com/Azure/azure-sdk-for-go/sdk/azcore" 14 "net/http" 15 "net/url" 16 "strings" 17) 18 19// AvailableServiceAliasesClient contains the methods for the AvailableServiceAliases group. 20// Don't use this type directly, use NewAvailableServiceAliasesClient() instead. 21type AvailableServiceAliasesClient struct { 22 con *armcore.Connection 23 subscriptionID string 24} 25 26// NewAvailableServiceAliasesClient creates a new instance of AvailableServiceAliasesClient with the specified values. 27func NewAvailableServiceAliasesClient(con *armcore.Connection, subscriptionID string) *AvailableServiceAliasesClient { 28 return &AvailableServiceAliasesClient{con: con, subscriptionID: subscriptionID} 29} 30 31// List - Gets all available service aliases for this subscription in this region. 32func (client *AvailableServiceAliasesClient) List(location string, options *AvailableServiceAliasesListOptions) AvailableServiceAliasesResultPager { 33 return &availableServiceAliasesResultPager{ 34 pipeline: client.con.Pipeline(), 35 requester: func(ctx context.Context) (*azcore.Request, error) { 36 return client.listCreateRequest(ctx, location, options) 37 }, 38 responder: client.listHandleResponse, 39 errorer: client.listHandleError, 40 advancer: func(ctx context.Context, resp AvailableServiceAliasesResultResponse) (*azcore.Request, error) { 41 return azcore.NewRequest(ctx, http.MethodGet, *resp.AvailableServiceAliasesResult.NextLink) 42 }, 43 statusCodes: []int{http.StatusOK}, 44 } 45} 46 47// listCreateRequest creates the List request. 48func (client *AvailableServiceAliasesClient) listCreateRequest(ctx context.Context, location string, options *AvailableServiceAliasesListOptions) (*azcore.Request, error) { 49 urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/availableServiceAliases" 50 urlPath = strings.ReplaceAll(urlPath, "{location}", url.PathEscape(location)) 51 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 52 req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 53 if err != nil { 54 return nil, err 55 } 56 req.Telemetry(telemetryInfo) 57 query := req.URL.Query() 58 query.Set("api-version", "2020-07-01") 59 req.URL.RawQuery = query.Encode() 60 req.Header.Set("Accept", "application/json") 61 return req, nil 62} 63 64// listHandleResponse handles the List response. 65func (client *AvailableServiceAliasesClient) listHandleResponse(resp *azcore.Response) (AvailableServiceAliasesResultResponse, error) { 66 var val *AvailableServiceAliasesResult 67 if err := resp.UnmarshalAsJSON(&val); err != nil { 68 return AvailableServiceAliasesResultResponse{}, err 69 } 70 return AvailableServiceAliasesResultResponse{RawResponse: resp.Response, AvailableServiceAliasesResult: val}, nil 71} 72 73// listHandleError handles the List error response. 74func (client *AvailableServiceAliasesClient) listHandleError(resp *azcore.Response) error { 75 var err CloudError 76 if err := resp.UnmarshalAsJSON(&err); err != nil { 77 return err 78 } 79 return azcore.NewResponseError(&err, resp.Response) 80} 81 82// ListByResourceGroup - Gets all available service aliases for this resource group in this region. 83func (client *AvailableServiceAliasesClient) ListByResourceGroup(resourceGroupName string, location string, options *AvailableServiceAliasesListByResourceGroupOptions) AvailableServiceAliasesResultPager { 84 return &availableServiceAliasesResultPager{ 85 pipeline: client.con.Pipeline(), 86 requester: func(ctx context.Context) (*azcore.Request, error) { 87 return client.listByResourceGroupCreateRequest(ctx, resourceGroupName, location, options) 88 }, 89 responder: client.listByResourceGroupHandleResponse, 90 errorer: client.listByResourceGroupHandleError, 91 advancer: func(ctx context.Context, resp AvailableServiceAliasesResultResponse) (*azcore.Request, error) { 92 return azcore.NewRequest(ctx, http.MethodGet, *resp.AvailableServiceAliasesResult.NextLink) 93 }, 94 statusCodes: []int{http.StatusOK}, 95 } 96} 97 98// listByResourceGroupCreateRequest creates the ListByResourceGroup request. 99func (client *AvailableServiceAliasesClient) listByResourceGroupCreateRequest(ctx context.Context, resourceGroupName string, location string, options *AvailableServiceAliasesListByResourceGroupOptions) (*azcore.Request, error) { 100 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/locations/{location}/availableServiceAliases" 101 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 102 urlPath = strings.ReplaceAll(urlPath, "{location}", url.PathEscape(location)) 103 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 104 req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 105 if err != nil { 106 return nil, err 107 } 108 req.Telemetry(telemetryInfo) 109 query := req.URL.Query() 110 query.Set("api-version", "2020-07-01") 111 req.URL.RawQuery = query.Encode() 112 req.Header.Set("Accept", "application/json") 113 return req, nil 114} 115 116// listByResourceGroupHandleResponse handles the ListByResourceGroup response. 117func (client *AvailableServiceAliasesClient) listByResourceGroupHandleResponse(resp *azcore.Response) (AvailableServiceAliasesResultResponse, error) { 118 var val *AvailableServiceAliasesResult 119 if err := resp.UnmarshalAsJSON(&val); err != nil { 120 return AvailableServiceAliasesResultResponse{}, err 121 } 122 return AvailableServiceAliasesResultResponse{RawResponse: resp.Response, AvailableServiceAliasesResult: val}, nil 123} 124 125// listByResourceGroupHandleError handles the ListByResourceGroup error response. 126func (client *AvailableServiceAliasesClient) listByResourceGroupHandleError(resp *azcore.Response) error { 127 var err CloudError 128 if err := resp.UnmarshalAsJSON(&err); err != nil { 129 return err 130 } 131 return azcore.NewResponseError(&err, resp.Response) 132} 133