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// HubVirtualNetworkConnectionsClient is the network Client 18type HubVirtualNetworkConnectionsClient struct { 19 BaseClient 20} 21 22// NewHubVirtualNetworkConnectionsClient creates an instance of the HubVirtualNetworkConnectionsClient client. 23func NewHubVirtualNetworkConnectionsClient(subscriptionID string) HubVirtualNetworkConnectionsClient { 24 return NewHubVirtualNetworkConnectionsClientWithBaseURI(DefaultBaseURI, subscriptionID) 25} 26 27// NewHubVirtualNetworkConnectionsClientWithBaseURI creates an instance of the HubVirtualNetworkConnectionsClient 28// client using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI 29// (sovereign clouds, Azure stack). 30func NewHubVirtualNetworkConnectionsClientWithBaseURI(baseURI string, subscriptionID string) HubVirtualNetworkConnectionsClient { 31 return HubVirtualNetworkConnectionsClient{NewWithBaseURI(baseURI, subscriptionID)} 32} 33 34// CreateOrUpdate creates a hub virtual network connection if it doesn't exist else updates the existing one. 35// Parameters: 36// resourceGroupName - the resource group name of the HubVirtualNetworkConnection. 37// virtualHubName - the name of the VirtualHub. 38// connectionName - the name of the HubVirtualNetworkConnection. 39// hubVirtualNetworkConnectionParameters - parameters supplied to create or update a hub virtual network 40// connection. 41func (client HubVirtualNetworkConnectionsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string, hubVirtualNetworkConnectionParameters HubVirtualNetworkConnection) (result HubVirtualNetworkConnectionsCreateOrUpdateFuture, err error) { 42 if tracing.IsEnabled() { 43 ctx = tracing.StartSpan(ctx, fqdn+"/HubVirtualNetworkConnectionsClient.CreateOrUpdate") 44 defer func() { 45 sc := -1 46 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 47 sc = result.FutureAPI.Response().StatusCode 48 } 49 tracing.EndSpan(ctx, sc, err) 50 }() 51 } 52 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, virtualHubName, connectionName, hubVirtualNetworkConnectionParameters) 53 if err != nil { 54 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "CreateOrUpdate", nil, "Failure preparing request") 55 return 56 } 57 58 result, err = client.CreateOrUpdateSender(req) 59 if err != nil { 60 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "CreateOrUpdate", nil, "Failure sending request") 61 return 62 } 63 64 return 65} 66 67// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 68func (client HubVirtualNetworkConnectionsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string, hubVirtualNetworkConnectionParameters HubVirtualNetworkConnection) (*http.Request, error) { 69 pathParameters := map[string]interface{}{ 70 "connectionName": autorest.Encode("path", connectionName), 71 "resourceGroupName": autorest.Encode("path", resourceGroupName), 72 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 73 "virtualHubName": autorest.Encode("path", virtualHubName), 74 } 75 76 const APIVersion = "2021-03-01" 77 queryParameters := map[string]interface{}{ 78 "api-version": APIVersion, 79 } 80 81 hubVirtualNetworkConnectionParameters.Etag = nil 82 preparer := autorest.CreatePreparer( 83 autorest.AsContentType("application/json; charset=utf-8"), 84 autorest.AsPut(), 85 autorest.WithBaseURL(client.BaseURI), 86 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/hubVirtualNetworkConnections/{connectionName}", pathParameters), 87 autorest.WithJSON(hubVirtualNetworkConnectionParameters), 88 autorest.WithQueryParameters(queryParameters)) 89 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 90} 91 92// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 93// http.Response Body if it receives an error. 94func (client HubVirtualNetworkConnectionsClient) CreateOrUpdateSender(req *http.Request) (future HubVirtualNetworkConnectionsCreateOrUpdateFuture, err error) { 95 var resp *http.Response 96 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 97 if err != nil { 98 return 99 } 100 var azf azure.Future 101 azf, err = azure.NewFutureFromResponse(resp) 102 future.FutureAPI = &azf 103 future.Result = future.result 104 return 105} 106 107// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 108// closes the http.Response Body. 109func (client HubVirtualNetworkConnectionsClient) CreateOrUpdateResponder(resp *http.Response) (result HubVirtualNetworkConnection, err error) { 110 err = autorest.Respond( 111 resp, 112 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), 113 autorest.ByUnmarshallingJSON(&result), 114 autorest.ByClosing()) 115 result.Response = autorest.Response{Response: resp} 116 return 117} 118 119// Delete deletes a HubVirtualNetworkConnection. 120// Parameters: 121// resourceGroupName - the resource group name of the VirtualHub. 122// virtualHubName - the name of the VirtualHub. 123// connectionName - the name of the HubVirtualNetworkConnection. 124func (client HubVirtualNetworkConnectionsClient) Delete(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string) (result HubVirtualNetworkConnectionsDeleteFuture, err error) { 125 if tracing.IsEnabled() { 126 ctx = tracing.StartSpan(ctx, fqdn+"/HubVirtualNetworkConnectionsClient.Delete") 127 defer func() { 128 sc := -1 129 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 130 sc = result.FutureAPI.Response().StatusCode 131 } 132 tracing.EndSpan(ctx, sc, err) 133 }() 134 } 135 req, err := client.DeletePreparer(ctx, resourceGroupName, virtualHubName, connectionName) 136 if err != nil { 137 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "Delete", nil, "Failure preparing request") 138 return 139 } 140 141 result, err = client.DeleteSender(req) 142 if err != nil { 143 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "Delete", nil, "Failure sending request") 144 return 145 } 146 147 return 148} 149 150// DeletePreparer prepares the Delete request. 151func (client HubVirtualNetworkConnectionsClient) DeletePreparer(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string) (*http.Request, error) { 152 pathParameters := map[string]interface{}{ 153 "connectionName": autorest.Encode("path", connectionName), 154 "resourceGroupName": autorest.Encode("path", resourceGroupName), 155 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 156 "virtualHubName": autorest.Encode("path", virtualHubName), 157 } 158 159 const APIVersion = "2021-03-01" 160 queryParameters := map[string]interface{}{ 161 "api-version": APIVersion, 162 } 163 164 preparer := autorest.CreatePreparer( 165 autorest.AsDelete(), 166 autorest.WithBaseURL(client.BaseURI), 167 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/hubVirtualNetworkConnections/{connectionName}", pathParameters), 168 autorest.WithQueryParameters(queryParameters)) 169 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 170} 171 172// DeleteSender sends the Delete request. The method will close the 173// http.Response Body if it receives an error. 174func (client HubVirtualNetworkConnectionsClient) DeleteSender(req *http.Request) (future HubVirtualNetworkConnectionsDeleteFuture, err error) { 175 var resp *http.Response 176 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 177 if err != nil { 178 return 179 } 180 var azf azure.Future 181 azf, err = azure.NewFutureFromResponse(resp) 182 future.FutureAPI = &azf 183 future.Result = future.result 184 return 185} 186 187// DeleteResponder handles the response to the Delete request. The method always 188// closes the http.Response Body. 189func (client HubVirtualNetworkConnectionsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 190 err = autorest.Respond( 191 resp, 192 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 193 autorest.ByClosing()) 194 result.Response = resp 195 return 196} 197 198// Get retrieves the details of a HubVirtualNetworkConnection. 199// Parameters: 200// resourceGroupName - the resource group name of the VirtualHub. 201// virtualHubName - the name of the VirtualHub. 202// connectionName - the name of the vpn connection. 203func (client HubVirtualNetworkConnectionsClient) Get(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string) (result HubVirtualNetworkConnection, err error) { 204 if tracing.IsEnabled() { 205 ctx = tracing.StartSpan(ctx, fqdn+"/HubVirtualNetworkConnectionsClient.Get") 206 defer func() { 207 sc := -1 208 if result.Response.Response != nil { 209 sc = result.Response.Response.StatusCode 210 } 211 tracing.EndSpan(ctx, sc, err) 212 }() 213 } 214 req, err := client.GetPreparer(ctx, resourceGroupName, virtualHubName, connectionName) 215 if err != nil { 216 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "Get", nil, "Failure preparing request") 217 return 218 } 219 220 resp, err := client.GetSender(req) 221 if err != nil { 222 result.Response = autorest.Response{Response: resp} 223 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "Get", resp, "Failure sending request") 224 return 225 } 226 227 result, err = client.GetResponder(resp) 228 if err != nil { 229 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "Get", resp, "Failure responding to request") 230 return 231 } 232 233 return 234} 235 236// GetPreparer prepares the Get request. 237func (client HubVirtualNetworkConnectionsClient) GetPreparer(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string) (*http.Request, error) { 238 pathParameters := map[string]interface{}{ 239 "connectionName": autorest.Encode("path", connectionName), 240 "resourceGroupName": autorest.Encode("path", resourceGroupName), 241 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 242 "virtualHubName": autorest.Encode("path", virtualHubName), 243 } 244 245 const APIVersion = "2021-03-01" 246 queryParameters := map[string]interface{}{ 247 "api-version": APIVersion, 248 } 249 250 preparer := autorest.CreatePreparer( 251 autorest.AsGet(), 252 autorest.WithBaseURL(client.BaseURI), 253 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/hubVirtualNetworkConnections/{connectionName}", pathParameters), 254 autorest.WithQueryParameters(queryParameters)) 255 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 256} 257 258// GetSender sends the Get request. The method will close the 259// http.Response Body if it receives an error. 260func (client HubVirtualNetworkConnectionsClient) GetSender(req *http.Request) (*http.Response, error) { 261 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 262} 263 264// GetResponder handles the response to the Get request. The method always 265// closes the http.Response Body. 266func (client HubVirtualNetworkConnectionsClient) GetResponder(resp *http.Response) (result HubVirtualNetworkConnection, err error) { 267 err = autorest.Respond( 268 resp, 269 azure.WithErrorUnlessStatusCode(http.StatusOK), 270 autorest.ByUnmarshallingJSON(&result), 271 autorest.ByClosing()) 272 result.Response = autorest.Response{Response: resp} 273 return 274} 275 276// List retrieves the details of all HubVirtualNetworkConnections. 277// Parameters: 278// resourceGroupName - the resource group name of the VirtualHub. 279// virtualHubName - the name of the VirtualHub. 280func (client HubVirtualNetworkConnectionsClient) List(ctx context.Context, resourceGroupName string, virtualHubName string) (result ListHubVirtualNetworkConnectionsResultPage, err error) { 281 if tracing.IsEnabled() { 282 ctx = tracing.StartSpan(ctx, fqdn+"/HubVirtualNetworkConnectionsClient.List") 283 defer func() { 284 sc := -1 285 if result.lhvncr.Response.Response != nil { 286 sc = result.lhvncr.Response.Response.StatusCode 287 } 288 tracing.EndSpan(ctx, sc, err) 289 }() 290 } 291 result.fn = client.listNextResults 292 req, err := client.ListPreparer(ctx, resourceGroupName, virtualHubName) 293 if err != nil { 294 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "List", nil, "Failure preparing request") 295 return 296 } 297 298 resp, err := client.ListSender(req) 299 if err != nil { 300 result.lhvncr.Response = autorest.Response{Response: resp} 301 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "List", resp, "Failure sending request") 302 return 303 } 304 305 result.lhvncr, err = client.ListResponder(resp) 306 if err != nil { 307 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "List", resp, "Failure responding to request") 308 return 309 } 310 if result.lhvncr.hasNextLink() && result.lhvncr.IsEmpty() { 311 err = result.NextWithContext(ctx) 312 return 313 } 314 315 return 316} 317 318// ListPreparer prepares the List request. 319func (client HubVirtualNetworkConnectionsClient) ListPreparer(ctx context.Context, resourceGroupName string, virtualHubName string) (*http.Request, error) { 320 pathParameters := map[string]interface{}{ 321 "resourceGroupName": autorest.Encode("path", resourceGroupName), 322 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 323 "virtualHubName": autorest.Encode("path", virtualHubName), 324 } 325 326 const APIVersion = "2021-03-01" 327 queryParameters := map[string]interface{}{ 328 "api-version": APIVersion, 329 } 330 331 preparer := autorest.CreatePreparer( 332 autorest.AsGet(), 333 autorest.WithBaseURL(client.BaseURI), 334 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/hubVirtualNetworkConnections", pathParameters), 335 autorest.WithQueryParameters(queryParameters)) 336 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 337} 338 339// ListSender sends the List request. The method will close the 340// http.Response Body if it receives an error. 341func (client HubVirtualNetworkConnectionsClient) ListSender(req *http.Request) (*http.Response, error) { 342 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 343} 344 345// ListResponder handles the response to the List request. The method always 346// closes the http.Response Body. 347func (client HubVirtualNetworkConnectionsClient) ListResponder(resp *http.Response) (result ListHubVirtualNetworkConnectionsResult, err error) { 348 err = autorest.Respond( 349 resp, 350 azure.WithErrorUnlessStatusCode(http.StatusOK), 351 autorest.ByUnmarshallingJSON(&result), 352 autorest.ByClosing()) 353 result.Response = autorest.Response{Response: resp} 354 return 355} 356 357// listNextResults retrieves the next set of results, if any. 358func (client HubVirtualNetworkConnectionsClient) listNextResults(ctx context.Context, lastResults ListHubVirtualNetworkConnectionsResult) (result ListHubVirtualNetworkConnectionsResult, err error) { 359 req, err := lastResults.listHubVirtualNetworkConnectionsResultPreparer(ctx) 360 if err != nil { 361 return result, autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "listNextResults", nil, "Failure preparing next results request") 362 } 363 if req == nil { 364 return 365 } 366 resp, err := client.ListSender(req) 367 if err != nil { 368 result.Response = autorest.Response{Response: resp} 369 return result, autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "listNextResults", resp, "Failure sending next results request") 370 } 371 result, err = client.ListResponder(resp) 372 if err != nil { 373 err = autorest.NewErrorWithError(err, "network.HubVirtualNetworkConnectionsClient", "listNextResults", resp, "Failure responding to next results request") 374 } 375 return 376} 377 378// ListComplete enumerates all values, automatically crossing page boundaries as required. 379func (client HubVirtualNetworkConnectionsClient) ListComplete(ctx context.Context, resourceGroupName string, virtualHubName string) (result ListHubVirtualNetworkConnectionsResultIterator, err error) { 380 if tracing.IsEnabled() { 381 ctx = tracing.StartSpan(ctx, fqdn+"/HubVirtualNetworkConnectionsClient.List") 382 defer func() { 383 sc := -1 384 if result.Response().Response.Response != nil { 385 sc = result.page.Response().Response.Response.StatusCode 386 } 387 tracing.EndSpan(ctx, sc, err) 388 }() 389 } 390 result.page, err = client.List(ctx, resourceGroupName, virtualHubName) 391 return 392} 393