1package network 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/tracing" 14 "net/http" 15) 16 17// InterfaceLoadBalancersClient is the network Client 18type InterfaceLoadBalancersClient struct { 19 BaseClient 20} 21 22// NewInterfaceLoadBalancersClient creates an instance of the InterfaceLoadBalancersClient client. 23func NewInterfaceLoadBalancersClient(subscriptionID string) InterfaceLoadBalancersClient { 24 return NewInterfaceLoadBalancersClientWithBaseURI(DefaultBaseURI, subscriptionID) 25} 26 27// NewInterfaceLoadBalancersClientWithBaseURI creates an instance of the InterfaceLoadBalancersClient client using a 28// custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, 29// Azure stack). 30func NewInterfaceLoadBalancersClientWithBaseURI(baseURI string, subscriptionID string) InterfaceLoadBalancersClient { 31 return InterfaceLoadBalancersClient{NewWithBaseURI(baseURI, subscriptionID)} 32} 33 34// List list all load balancers in a network interface. 35// Parameters: 36// resourceGroupName - the name of the resource group. 37// networkInterfaceName - the name of the network interface. 38func (client InterfaceLoadBalancersClient) List(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result InterfaceLoadBalancerListResultPage, err error) { 39 if tracing.IsEnabled() { 40 ctx = tracing.StartSpan(ctx, fqdn+"/InterfaceLoadBalancersClient.List") 41 defer func() { 42 sc := -1 43 if result.ilblr.Response.Response != nil { 44 sc = result.ilblr.Response.Response.StatusCode 45 } 46 tracing.EndSpan(ctx, sc, err) 47 }() 48 } 49 result.fn = client.listNextResults 50 req, err := client.ListPreparer(ctx, resourceGroupName, networkInterfaceName) 51 if err != nil { 52 err = autorest.NewErrorWithError(err, "network.InterfaceLoadBalancersClient", "List", nil, "Failure preparing request") 53 return 54 } 55 56 resp, err := client.ListSender(req) 57 if err != nil { 58 result.ilblr.Response = autorest.Response{Response: resp} 59 err = autorest.NewErrorWithError(err, "network.InterfaceLoadBalancersClient", "List", resp, "Failure sending request") 60 return 61 } 62 63 result.ilblr, err = client.ListResponder(resp) 64 if err != nil { 65 err = autorest.NewErrorWithError(err, "network.InterfaceLoadBalancersClient", "List", resp, "Failure responding to request") 66 return 67 } 68 if result.ilblr.hasNextLink() && result.ilblr.IsEmpty() { 69 err = result.NextWithContext(ctx) 70 return 71 } 72 73 return 74} 75 76// ListPreparer prepares the List request. 77func (client InterfaceLoadBalancersClient) ListPreparer(ctx context.Context, resourceGroupName string, networkInterfaceName string) (*http.Request, error) { 78 pathParameters := map[string]interface{}{ 79 "networkInterfaceName": autorest.Encode("path", networkInterfaceName), 80 "resourceGroupName": autorest.Encode("path", resourceGroupName), 81 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 82 } 83 84 const APIVersion = "2017-11-01" 85 queryParameters := map[string]interface{}{ 86 "api-version": APIVersion, 87 } 88 89 preparer := autorest.CreatePreparer( 90 autorest.AsGet(), 91 autorest.WithBaseURL(client.BaseURI), 92 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/loadBalancers", pathParameters), 93 autorest.WithQueryParameters(queryParameters)) 94 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 95} 96 97// ListSender sends the List request. The method will close the 98// http.Response Body if it receives an error. 99func (client InterfaceLoadBalancersClient) ListSender(req *http.Request) (*http.Response, error) { 100 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 101} 102 103// ListResponder handles the response to the List request. The method always 104// closes the http.Response Body. 105func (client InterfaceLoadBalancersClient) ListResponder(resp *http.Response) (result InterfaceLoadBalancerListResult, err error) { 106 err = autorest.Respond( 107 resp, 108 azure.WithErrorUnlessStatusCode(http.StatusOK), 109 autorest.ByUnmarshallingJSON(&result), 110 autorest.ByClosing()) 111 result.Response = autorest.Response{Response: resp} 112 return 113} 114 115// listNextResults retrieves the next set of results, if any. 116func (client InterfaceLoadBalancersClient) listNextResults(ctx context.Context, lastResults InterfaceLoadBalancerListResult) (result InterfaceLoadBalancerListResult, err error) { 117 req, err := lastResults.interfaceLoadBalancerListResultPreparer(ctx) 118 if err != nil { 119 return result, autorest.NewErrorWithError(err, "network.InterfaceLoadBalancersClient", "listNextResults", nil, "Failure preparing next results request") 120 } 121 if req == nil { 122 return 123 } 124 resp, err := client.ListSender(req) 125 if err != nil { 126 result.Response = autorest.Response{Response: resp} 127 return result, autorest.NewErrorWithError(err, "network.InterfaceLoadBalancersClient", "listNextResults", resp, "Failure sending next results request") 128 } 129 result, err = client.ListResponder(resp) 130 if err != nil { 131 err = autorest.NewErrorWithError(err, "network.InterfaceLoadBalancersClient", "listNextResults", resp, "Failure responding to next results request") 132 } 133 return 134} 135 136// ListComplete enumerates all values, automatically crossing page boundaries as required. 137func (client InterfaceLoadBalancersClient) ListComplete(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result InterfaceLoadBalancerListResultIterator, err error) { 138 if tracing.IsEnabled() { 139 ctx = tracing.StartSpan(ctx, fqdn+"/InterfaceLoadBalancersClient.List") 140 defer func() { 141 sc := -1 142 if result.Response().Response.Response != nil { 143 sc = result.page.Response().Response.Response.StatusCode 144 } 145 tracing.EndSpan(ctx, sc, err) 146 }() 147 } 148 result.page, err = client.List(ctx, resourceGroupName, networkInterfaceName) 149 return 150} 151