github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/virtualhubbgpconnections_client.go (about)

     1  //go:build go1.18
     2  // +build go1.18
     3  
     4  // Copyright (c) Microsoft Corporation. All rights reserved.
     5  // Licensed under the MIT License. See License.txt in the project root for license information.
     6  // Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
     7  // Changes may cause incorrect behavior and will be lost if the code is regenerated.
     8  
     9  package armnetwork
    10  
    11  import (
    12  	"context"
    13  	"errors"
    14  	"github.com/Azure/azure-sdk-for-go/sdk/azcore"
    15  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/arm"
    16  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
    17  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime"
    18  	"net/http"
    19  	"net/url"
    20  	"strings"
    21  )
    22  
    23  // VirtualHubBgpConnectionsClient contains the methods for the VirtualHubBgpConnections group.
    24  // Don't use this type directly, use NewVirtualHubBgpConnectionsClient() instead.
    25  type VirtualHubBgpConnectionsClient struct {
    26  	internal       *arm.Client
    27  	subscriptionID string
    28  }
    29  
    30  // NewVirtualHubBgpConnectionsClient creates a new instance of VirtualHubBgpConnectionsClient with the specified values.
    31  //   - subscriptionID - The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription
    32  //     ID forms part of the URI for every service call.
    33  //   - credential - used to authorize requests. Usually a credential from azidentity.
    34  //   - options - pass nil to accept the default values.
    35  func NewVirtualHubBgpConnectionsClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*VirtualHubBgpConnectionsClient, error) {
    36  	cl, err := arm.NewClient(moduleName, moduleVersion, credential, options)
    37  	if err != nil {
    38  		return nil, err
    39  	}
    40  	client := &VirtualHubBgpConnectionsClient{
    41  		subscriptionID: subscriptionID,
    42  		internal:       cl,
    43  	}
    44  	return client, nil
    45  }
    46  
    47  // NewListPager - Retrieves the details of all VirtualHubBgpConnections.
    48  //
    49  // Generated from API version 2024-05-01
    50  //   - resourceGroupName - The resource group name of the VirtualHub.
    51  //   - virtualHubName - The name of the VirtualHub.
    52  //   - options - VirtualHubBgpConnectionsClientListOptions contains the optional parameters for the VirtualHubBgpConnectionsClient.NewListPager
    53  //     method.
    54  func (client *VirtualHubBgpConnectionsClient) NewListPager(resourceGroupName string, virtualHubName string, options *VirtualHubBgpConnectionsClientListOptions) *runtime.Pager[VirtualHubBgpConnectionsClientListResponse] {
    55  	return runtime.NewPager(runtime.PagingHandler[VirtualHubBgpConnectionsClientListResponse]{
    56  		More: func(page VirtualHubBgpConnectionsClientListResponse) bool {
    57  			return page.NextLink != nil && len(*page.NextLink) > 0
    58  		},
    59  		Fetcher: func(ctx context.Context, page *VirtualHubBgpConnectionsClientListResponse) (VirtualHubBgpConnectionsClientListResponse, error) {
    60  			ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, "VirtualHubBgpConnectionsClient.NewListPager")
    61  			nextLink := ""
    62  			if page != nil {
    63  				nextLink = *page.NextLink
    64  			}
    65  			resp, err := runtime.FetcherForNextLink(ctx, client.internal.Pipeline(), nextLink, func(ctx context.Context) (*policy.Request, error) {
    66  				return client.listCreateRequest(ctx, resourceGroupName, virtualHubName, options)
    67  			}, nil)
    68  			if err != nil {
    69  				return VirtualHubBgpConnectionsClientListResponse{}, err
    70  			}
    71  			return client.listHandleResponse(resp)
    72  		},
    73  		Tracer: client.internal.Tracer(),
    74  	})
    75  }
    76  
    77  // listCreateRequest creates the List request.
    78  func (client *VirtualHubBgpConnectionsClient) listCreateRequest(ctx context.Context, resourceGroupName string, virtualHubName string, options *VirtualHubBgpConnectionsClientListOptions) (*policy.Request, error) {
    79  	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/bgpConnections"
    80  	if client.subscriptionID == "" {
    81  		return nil, errors.New("parameter client.subscriptionID cannot be empty")
    82  	}
    83  	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
    84  	if resourceGroupName == "" {
    85  		return nil, errors.New("parameter resourceGroupName cannot be empty")
    86  	}
    87  	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
    88  	if virtualHubName == "" {
    89  		return nil, errors.New("parameter virtualHubName cannot be empty")
    90  	}
    91  	urlPath = strings.ReplaceAll(urlPath, "{virtualHubName}", url.PathEscape(virtualHubName))
    92  	req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath))
    93  	if err != nil {
    94  		return nil, err
    95  	}
    96  	reqQP := req.Raw().URL.Query()
    97  	reqQP.Set("api-version", "2024-05-01")
    98  	req.Raw().URL.RawQuery = reqQP.Encode()
    99  	req.Raw().Header["Accept"] = []string{"application/json"}
   100  	return req, nil
   101  }
   102  
   103  // listHandleResponse handles the List response.
   104  func (client *VirtualHubBgpConnectionsClient) listHandleResponse(resp *http.Response) (VirtualHubBgpConnectionsClientListResponse, error) {
   105  	result := VirtualHubBgpConnectionsClientListResponse{}
   106  	if err := runtime.UnmarshalAsJSON(resp, &result.ListVirtualHubBgpConnectionResults); err != nil {
   107  		return VirtualHubBgpConnectionsClientListResponse{}, err
   108  	}
   109  	return result, nil
   110  }
   111  
   112  // BeginListAdvertisedRoutes - Retrieves a list of routes the virtual hub bgp connection is advertising to the specified peer.
   113  // If the operation fails it returns an *azcore.ResponseError type.
   114  //
   115  // Generated from API version 2024-05-01
   116  //   - resourceGroupName - The name of the resource group.
   117  //   - hubName - The name of the virtual hub.
   118  //   - connectionName - The name of the virtual hub bgp connection.
   119  //   - options - VirtualHubBgpConnectionsClientBeginListAdvertisedRoutesOptions contains the optional parameters for the VirtualHubBgpConnectionsClient.BeginListAdvertisedRoutes
   120  //     method.
   121  func (client *VirtualHubBgpConnectionsClient) BeginListAdvertisedRoutes(ctx context.Context, resourceGroupName string, hubName string, connectionName string, options *VirtualHubBgpConnectionsClientBeginListAdvertisedRoutesOptions) (*runtime.Poller[VirtualHubBgpConnectionsClientListAdvertisedRoutesResponse], error) {
   122  	if options == nil || options.ResumeToken == "" {
   123  		resp, err := client.listAdvertisedRoutes(ctx, resourceGroupName, hubName, connectionName, options)
   124  		if err != nil {
   125  			return nil, err
   126  		}
   127  		poller, err := runtime.NewPoller(resp, client.internal.Pipeline(), &runtime.NewPollerOptions[VirtualHubBgpConnectionsClientListAdvertisedRoutesResponse]{
   128  			FinalStateVia: runtime.FinalStateViaLocation,
   129  			Tracer:        client.internal.Tracer(),
   130  		})
   131  		return poller, err
   132  	} else {
   133  		return runtime.NewPollerFromResumeToken(options.ResumeToken, client.internal.Pipeline(), &runtime.NewPollerFromResumeTokenOptions[VirtualHubBgpConnectionsClientListAdvertisedRoutesResponse]{
   134  			Tracer: client.internal.Tracer(),
   135  		})
   136  	}
   137  }
   138  
   139  // ListAdvertisedRoutes - Retrieves a list of routes the virtual hub bgp connection is advertising to the specified peer.
   140  // If the operation fails it returns an *azcore.ResponseError type.
   141  //
   142  // Generated from API version 2024-05-01
   143  func (client *VirtualHubBgpConnectionsClient) listAdvertisedRoutes(ctx context.Context, resourceGroupName string, hubName string, connectionName string, options *VirtualHubBgpConnectionsClientBeginListAdvertisedRoutesOptions) (*http.Response, error) {
   144  	var err error
   145  	const operationName = "VirtualHubBgpConnectionsClient.BeginListAdvertisedRoutes"
   146  	ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName)
   147  	ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil)
   148  	defer func() { endSpan(err) }()
   149  	req, err := client.listAdvertisedRoutesCreateRequest(ctx, resourceGroupName, hubName, connectionName, options)
   150  	if err != nil {
   151  		return nil, err
   152  	}
   153  	httpResp, err := client.internal.Pipeline().Do(req)
   154  	if err != nil {
   155  		return nil, err
   156  	}
   157  	if !runtime.HasStatusCode(httpResp, http.StatusOK, http.StatusAccepted) {
   158  		err = runtime.NewResponseError(httpResp)
   159  		return nil, err
   160  	}
   161  	return httpResp, nil
   162  }
   163  
   164  // listAdvertisedRoutesCreateRequest creates the ListAdvertisedRoutes request.
   165  func (client *VirtualHubBgpConnectionsClient) listAdvertisedRoutesCreateRequest(ctx context.Context, resourceGroupName string, hubName string, connectionName string, options *VirtualHubBgpConnectionsClientBeginListAdvertisedRoutesOptions) (*policy.Request, error) {
   166  	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{hubName}/bgpConnections/{connectionName}/advertisedRoutes"
   167  	if resourceGroupName == "" {
   168  		return nil, errors.New("parameter resourceGroupName cannot be empty")
   169  	}
   170  	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
   171  	if hubName == "" {
   172  		return nil, errors.New("parameter hubName cannot be empty")
   173  	}
   174  	urlPath = strings.ReplaceAll(urlPath, "{hubName}", url.PathEscape(hubName))
   175  	if connectionName == "" {
   176  		return nil, errors.New("parameter connectionName cannot be empty")
   177  	}
   178  	urlPath = strings.ReplaceAll(urlPath, "{connectionName}", url.PathEscape(connectionName))
   179  	if client.subscriptionID == "" {
   180  		return nil, errors.New("parameter client.subscriptionID cannot be empty")
   181  	}
   182  	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
   183  	req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.internal.Endpoint(), urlPath))
   184  	if err != nil {
   185  		return nil, err
   186  	}
   187  	reqQP := req.Raw().URL.Query()
   188  	reqQP.Set("api-version", "2024-05-01")
   189  	req.Raw().URL.RawQuery = reqQP.Encode()
   190  	req.Raw().Header["Accept"] = []string{"application/json"}
   191  	return req, nil
   192  }
   193  
   194  // BeginListLearnedRoutes - Retrieves a list of routes the virtual hub bgp connection has learned.
   195  // If the operation fails it returns an *azcore.ResponseError type.
   196  //
   197  // Generated from API version 2024-05-01
   198  //   - resourceGroupName - The name of the resource group.
   199  //   - hubName - The name of the virtual hub.
   200  //   - connectionName - The name of the virtual hub bgp connection.
   201  //   - options - VirtualHubBgpConnectionsClientBeginListLearnedRoutesOptions contains the optional parameters for the VirtualHubBgpConnectionsClient.BeginListLearnedRoutes
   202  //     method.
   203  func (client *VirtualHubBgpConnectionsClient) BeginListLearnedRoutes(ctx context.Context, resourceGroupName string, hubName string, connectionName string, options *VirtualHubBgpConnectionsClientBeginListLearnedRoutesOptions) (*runtime.Poller[VirtualHubBgpConnectionsClientListLearnedRoutesResponse], error) {
   204  	if options == nil || options.ResumeToken == "" {
   205  		resp, err := client.listLearnedRoutes(ctx, resourceGroupName, hubName, connectionName, options)
   206  		if err != nil {
   207  			return nil, err
   208  		}
   209  		poller, err := runtime.NewPoller(resp, client.internal.Pipeline(), &runtime.NewPollerOptions[VirtualHubBgpConnectionsClientListLearnedRoutesResponse]{
   210  			FinalStateVia: runtime.FinalStateViaLocation,
   211  			Tracer:        client.internal.Tracer(),
   212  		})
   213  		return poller, err
   214  	} else {
   215  		return runtime.NewPollerFromResumeToken(options.ResumeToken, client.internal.Pipeline(), &runtime.NewPollerFromResumeTokenOptions[VirtualHubBgpConnectionsClientListLearnedRoutesResponse]{
   216  			Tracer: client.internal.Tracer(),
   217  		})
   218  	}
   219  }
   220  
   221  // ListLearnedRoutes - Retrieves a list of routes the virtual hub bgp connection has learned.
   222  // If the operation fails it returns an *azcore.ResponseError type.
   223  //
   224  // Generated from API version 2024-05-01
   225  func (client *VirtualHubBgpConnectionsClient) listLearnedRoutes(ctx context.Context, resourceGroupName string, hubName string, connectionName string, options *VirtualHubBgpConnectionsClientBeginListLearnedRoutesOptions) (*http.Response, error) {
   226  	var err error
   227  	const operationName = "VirtualHubBgpConnectionsClient.BeginListLearnedRoutes"
   228  	ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName)
   229  	ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil)
   230  	defer func() { endSpan(err) }()
   231  	req, err := client.listLearnedRoutesCreateRequest(ctx, resourceGroupName, hubName, connectionName, options)
   232  	if err != nil {
   233  		return nil, err
   234  	}
   235  	httpResp, err := client.internal.Pipeline().Do(req)
   236  	if err != nil {
   237  		return nil, err
   238  	}
   239  	if !runtime.HasStatusCode(httpResp, http.StatusOK, http.StatusAccepted) {
   240  		err = runtime.NewResponseError(httpResp)
   241  		return nil, err
   242  	}
   243  	return httpResp, nil
   244  }
   245  
   246  // listLearnedRoutesCreateRequest creates the ListLearnedRoutes request.
   247  func (client *VirtualHubBgpConnectionsClient) listLearnedRoutesCreateRequest(ctx context.Context, resourceGroupName string, hubName string, connectionName string, options *VirtualHubBgpConnectionsClientBeginListLearnedRoutesOptions) (*policy.Request, error) {
   248  	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{hubName}/bgpConnections/{connectionName}/learnedRoutes"
   249  	if resourceGroupName == "" {
   250  		return nil, errors.New("parameter resourceGroupName cannot be empty")
   251  	}
   252  	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
   253  	if hubName == "" {
   254  		return nil, errors.New("parameter hubName cannot be empty")
   255  	}
   256  	urlPath = strings.ReplaceAll(urlPath, "{hubName}", url.PathEscape(hubName))
   257  	if connectionName == "" {
   258  		return nil, errors.New("parameter connectionName cannot be empty")
   259  	}
   260  	urlPath = strings.ReplaceAll(urlPath, "{connectionName}", url.PathEscape(connectionName))
   261  	if client.subscriptionID == "" {
   262  		return nil, errors.New("parameter client.subscriptionID cannot be empty")
   263  	}
   264  	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
   265  	req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.internal.Endpoint(), urlPath))
   266  	if err != nil {
   267  		return nil, err
   268  	}
   269  	reqQP := req.Raw().URL.Query()
   270  	reqQP.Set("api-version", "2024-05-01")
   271  	req.Raw().URL.RawQuery = reqQP.Encode()
   272  	req.Raw().Header["Accept"] = []string{"application/json"}
   273  	return req, nil
   274  }