1package network 2 3// Copyright (c) Microsoft and contributors. All rights reserved. 4// 5// Licensed under the Apache License, Version 2.0 (the "License"); 6// you may not use this file except in compliance with the License. 7// You may obtain a copy of the License at 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// 14// See the License for the specific language governing permissions and 15// limitations under the License. 16// 17// Code generated by Microsoft (R) AutoRest Code Generator. 18// Changes may cause incorrect behavior and will be lost if the code is regenerated. 19 20import ( 21 "context" 22 "github.com/Azure/go-autorest/autorest" 23 "github.com/Azure/go-autorest/autorest/azure" 24 "github.com/Azure/go-autorest/autorest/validation" 25 "github.com/Azure/go-autorest/tracing" 26 "net/http" 27) 28 29// VirtualNetworkGatewaysClient is the network Client 30type VirtualNetworkGatewaysClient struct { 31 BaseClient 32} 33 34// NewVirtualNetworkGatewaysClient creates an instance of the VirtualNetworkGatewaysClient client. 35func NewVirtualNetworkGatewaysClient(subscriptionID string) VirtualNetworkGatewaysClient { 36 return NewVirtualNetworkGatewaysClientWithBaseURI(DefaultBaseURI, subscriptionID) 37} 38 39// NewVirtualNetworkGatewaysClientWithBaseURI creates an instance of the VirtualNetworkGatewaysClient client using a 40// custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, 41// Azure stack). 42func NewVirtualNetworkGatewaysClientWithBaseURI(baseURI string, subscriptionID string) VirtualNetworkGatewaysClient { 43 return VirtualNetworkGatewaysClient{NewWithBaseURI(baseURI, subscriptionID)} 44} 45 46// CreateOrUpdate creates or updates a virtual network gateway in the specified resource group. 47// Parameters: 48// resourceGroupName - the name of the resource group. 49// virtualNetworkGatewayName - the name of the virtual network gateway. 50// parameters - parameters supplied to create or update virtual network gateway operation. 51func (client VirtualNetworkGatewaysClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters VirtualNetworkGateway) (result VirtualNetworkGatewaysCreateOrUpdateFuture, err error) { 52 if tracing.IsEnabled() { 53 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.CreateOrUpdate") 54 defer func() { 55 sc := -1 56 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 57 sc = result.FutureAPI.Response().StatusCode 58 } 59 tracing.EndSpan(ctx, sc, err) 60 }() 61 } 62 if err := validation.Validate([]validation.Validation{ 63 {TargetValue: parameters, 64 Constraints: []validation.Constraint{{Target: "parameters.VirtualNetworkGatewayPropertiesFormat", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { 65 return result, validation.NewError("network.VirtualNetworkGatewaysClient", "CreateOrUpdate", err.Error()) 66 } 67 68 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, virtualNetworkGatewayName, parameters) 69 if err != nil { 70 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "CreateOrUpdate", nil, "Failure preparing request") 71 return 72 } 73 74 result, err = client.CreateOrUpdateSender(req) 75 if err != nil { 76 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "CreateOrUpdate", nil, "Failure sending request") 77 return 78 } 79 80 return 81} 82 83// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 84func (client VirtualNetworkGatewaysClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters VirtualNetworkGateway) (*http.Request, error) { 85 pathParameters := map[string]interface{}{ 86 "resourceGroupName": autorest.Encode("path", resourceGroupName), 87 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 88 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 89 } 90 91 const APIVersion = "2018-10-01" 92 queryParameters := map[string]interface{}{ 93 "api-version": APIVersion, 94 } 95 96 preparer := autorest.CreatePreparer( 97 autorest.AsContentType("application/json; charset=utf-8"), 98 autorest.AsPut(), 99 autorest.WithBaseURL(client.BaseURI), 100 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}", pathParameters), 101 autorest.WithJSON(parameters), 102 autorest.WithQueryParameters(queryParameters)) 103 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 104} 105 106// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 107// http.Response Body if it receives an error. 108func (client VirtualNetworkGatewaysClient) CreateOrUpdateSender(req *http.Request) (future VirtualNetworkGatewaysCreateOrUpdateFuture, err error) { 109 var resp *http.Response 110 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 111 if err != nil { 112 return 113 } 114 var azf azure.Future 115 azf, err = azure.NewFutureFromResponse(resp) 116 future.FutureAPI = &azf 117 future.Result = func(client VirtualNetworkGatewaysClient) (vng VirtualNetworkGateway, err error) { 118 var done bool 119 done, err = future.DoneWithContext(context.Background(), client) 120 if err != nil { 121 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 122 return 123 } 124 if !done { 125 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysCreateOrUpdateFuture") 126 return 127 } 128 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 129 vng.Response.Response, err = future.GetResult(sender) 130 if vng.Response.Response == nil && err == nil { 131 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysCreateOrUpdateFuture", "Result", nil, "received nil response and error") 132 } 133 if err == nil && vng.Response.Response.StatusCode != http.StatusNoContent { 134 vng, err = client.CreateOrUpdateResponder(vng.Response.Response) 135 if err != nil { 136 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysCreateOrUpdateFuture", "Result", vng.Response.Response, "Failure responding to request") 137 } 138 } 139 return 140 } 141 return 142} 143 144// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 145// closes the http.Response Body. 146func (client VirtualNetworkGatewaysClient) CreateOrUpdateResponder(resp *http.Response) (result VirtualNetworkGateway, err error) { 147 err = autorest.Respond( 148 resp, 149 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), 150 autorest.ByUnmarshallingJSON(&result), 151 autorest.ByClosing()) 152 result.Response = autorest.Response{Response: resp} 153 return 154} 155 156// Delete deletes the specified virtual network gateway. 157// Parameters: 158// resourceGroupName - the name of the resource group. 159// virtualNetworkGatewayName - the name of the virtual network gateway. 160func (client VirtualNetworkGatewaysClient) Delete(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result VirtualNetworkGatewaysDeleteFuture, err error) { 161 if tracing.IsEnabled() { 162 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.Delete") 163 defer func() { 164 sc := -1 165 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 166 sc = result.FutureAPI.Response().StatusCode 167 } 168 tracing.EndSpan(ctx, sc, err) 169 }() 170 } 171 req, err := client.DeletePreparer(ctx, resourceGroupName, virtualNetworkGatewayName) 172 if err != nil { 173 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "Delete", nil, "Failure preparing request") 174 return 175 } 176 177 result, err = client.DeleteSender(req) 178 if err != nil { 179 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "Delete", nil, "Failure sending request") 180 return 181 } 182 183 return 184} 185 186// DeletePreparer prepares the Delete request. 187func (client VirtualNetworkGatewaysClient) DeletePreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (*http.Request, error) { 188 pathParameters := map[string]interface{}{ 189 "resourceGroupName": autorest.Encode("path", resourceGroupName), 190 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 191 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 192 } 193 194 const APIVersion = "2018-10-01" 195 queryParameters := map[string]interface{}{ 196 "api-version": APIVersion, 197 } 198 199 preparer := autorest.CreatePreparer( 200 autorest.AsDelete(), 201 autorest.WithBaseURL(client.BaseURI), 202 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}", pathParameters), 203 autorest.WithQueryParameters(queryParameters)) 204 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 205} 206 207// DeleteSender sends the Delete request. The method will close the 208// http.Response Body if it receives an error. 209func (client VirtualNetworkGatewaysClient) DeleteSender(req *http.Request) (future VirtualNetworkGatewaysDeleteFuture, err error) { 210 var resp *http.Response 211 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 212 if err != nil { 213 return 214 } 215 var azf azure.Future 216 azf, err = azure.NewFutureFromResponse(resp) 217 future.FutureAPI = &azf 218 future.Result = func(client VirtualNetworkGatewaysClient) (ar autorest.Response, err error) { 219 var done bool 220 done, err = future.DoneWithContext(context.Background(), client) 221 if err != nil { 222 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysDeleteFuture", "Result", future.Response(), "Polling failure") 223 return 224 } 225 if !done { 226 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysDeleteFuture") 227 return 228 } 229 ar.Response = future.Response() 230 return 231 } 232 return 233} 234 235// DeleteResponder handles the response to the Delete request. The method always 236// closes the http.Response Body. 237func (client VirtualNetworkGatewaysClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 238 err = autorest.Respond( 239 resp, 240 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 241 autorest.ByClosing()) 242 result.Response = resp 243 return 244} 245 246// Generatevpnclientpackage generates VPN client package for P2S client of the virtual network gateway in the specified 247// resource group. 248// Parameters: 249// resourceGroupName - the name of the resource group. 250// virtualNetworkGatewayName - the name of the virtual network gateway. 251// parameters - parameters supplied to the generate virtual network gateway VPN client package operation. 252func (client VirtualNetworkGatewaysClient) Generatevpnclientpackage(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters VpnClientParameters) (result VirtualNetworkGatewaysGeneratevpnclientpackageFuture, err error) { 253 if tracing.IsEnabled() { 254 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.Generatevpnclientpackage") 255 defer func() { 256 sc := -1 257 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 258 sc = result.FutureAPI.Response().StatusCode 259 } 260 tracing.EndSpan(ctx, sc, err) 261 }() 262 } 263 req, err := client.GeneratevpnclientpackagePreparer(ctx, resourceGroupName, virtualNetworkGatewayName, parameters) 264 if err != nil { 265 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "Generatevpnclientpackage", nil, "Failure preparing request") 266 return 267 } 268 269 result, err = client.GeneratevpnclientpackageSender(req) 270 if err != nil { 271 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "Generatevpnclientpackage", nil, "Failure sending request") 272 return 273 } 274 275 return 276} 277 278// GeneratevpnclientpackagePreparer prepares the Generatevpnclientpackage request. 279func (client VirtualNetworkGatewaysClient) GeneratevpnclientpackagePreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters VpnClientParameters) (*http.Request, error) { 280 pathParameters := map[string]interface{}{ 281 "resourceGroupName": autorest.Encode("path", resourceGroupName), 282 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 283 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 284 } 285 286 const APIVersion = "2018-10-01" 287 queryParameters := map[string]interface{}{ 288 "api-version": APIVersion, 289 } 290 291 preparer := autorest.CreatePreparer( 292 autorest.AsContentType("application/json; charset=utf-8"), 293 autorest.AsPost(), 294 autorest.WithBaseURL(client.BaseURI), 295 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/generatevpnclientpackage", pathParameters), 296 autorest.WithJSON(parameters), 297 autorest.WithQueryParameters(queryParameters)) 298 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 299} 300 301// GeneratevpnclientpackageSender sends the Generatevpnclientpackage request. The method will close the 302// http.Response Body if it receives an error. 303func (client VirtualNetworkGatewaysClient) GeneratevpnclientpackageSender(req *http.Request) (future VirtualNetworkGatewaysGeneratevpnclientpackageFuture, err error) { 304 var resp *http.Response 305 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 306 if err != nil { 307 return 308 } 309 var azf azure.Future 310 azf, err = azure.NewFutureFromResponse(resp) 311 future.FutureAPI = &azf 312 future.Result = func(client VirtualNetworkGatewaysClient) (s String, err error) { 313 var done bool 314 done, err = future.DoneWithContext(context.Background(), client) 315 if err != nil { 316 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture", "Result", future.Response(), "Polling failure") 317 return 318 } 319 if !done { 320 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture") 321 return 322 } 323 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 324 s.Response.Response, err = future.GetResult(sender) 325 if s.Response.Response == nil && err == nil { 326 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture", "Result", nil, "received nil response and error") 327 } 328 if err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 329 s, err = client.GeneratevpnclientpackageResponder(s.Response.Response) 330 if err != nil { 331 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture", "Result", s.Response.Response, "Failure responding to request") 332 } 333 } 334 return 335 } 336 return 337} 338 339// GeneratevpnclientpackageResponder handles the response to the Generatevpnclientpackage request. The method always 340// closes the http.Response Body. 341func (client VirtualNetworkGatewaysClient) GeneratevpnclientpackageResponder(resp *http.Response) (result String, err error) { 342 err = autorest.Respond( 343 resp, 344 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 345 autorest.ByUnmarshallingJSON(&result), 346 autorest.ByClosing()) 347 result.Response = autorest.Response{Response: resp} 348 return 349} 350 351// GenerateVpnProfile generates VPN profile for P2S client of the virtual network gateway in the specified resource 352// group. Used for IKEV2 and radius based authentication. 353// Parameters: 354// resourceGroupName - the name of the resource group. 355// virtualNetworkGatewayName - the name of the virtual network gateway. 356// parameters - parameters supplied to the generate virtual network gateway VPN client package operation. 357func (client VirtualNetworkGatewaysClient) GenerateVpnProfile(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters VpnClientParameters) (result VirtualNetworkGatewaysGenerateVpnProfileFuture, err error) { 358 if tracing.IsEnabled() { 359 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.GenerateVpnProfile") 360 defer func() { 361 sc := -1 362 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 363 sc = result.FutureAPI.Response().StatusCode 364 } 365 tracing.EndSpan(ctx, sc, err) 366 }() 367 } 368 req, err := client.GenerateVpnProfilePreparer(ctx, resourceGroupName, virtualNetworkGatewayName, parameters) 369 if err != nil { 370 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GenerateVpnProfile", nil, "Failure preparing request") 371 return 372 } 373 374 result, err = client.GenerateVpnProfileSender(req) 375 if err != nil { 376 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GenerateVpnProfile", nil, "Failure sending request") 377 return 378 } 379 380 return 381} 382 383// GenerateVpnProfilePreparer prepares the GenerateVpnProfile request. 384func (client VirtualNetworkGatewaysClient) GenerateVpnProfilePreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters VpnClientParameters) (*http.Request, error) { 385 pathParameters := map[string]interface{}{ 386 "resourceGroupName": autorest.Encode("path", resourceGroupName), 387 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 388 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 389 } 390 391 const APIVersion = "2018-10-01" 392 queryParameters := map[string]interface{}{ 393 "api-version": APIVersion, 394 } 395 396 preparer := autorest.CreatePreparer( 397 autorest.AsContentType("application/json; charset=utf-8"), 398 autorest.AsPost(), 399 autorest.WithBaseURL(client.BaseURI), 400 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/generatevpnprofile", pathParameters), 401 autorest.WithJSON(parameters), 402 autorest.WithQueryParameters(queryParameters)) 403 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 404} 405 406// GenerateVpnProfileSender sends the GenerateVpnProfile request. The method will close the 407// http.Response Body if it receives an error. 408func (client VirtualNetworkGatewaysClient) GenerateVpnProfileSender(req *http.Request) (future VirtualNetworkGatewaysGenerateVpnProfileFuture, err error) { 409 var resp *http.Response 410 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 411 if err != nil { 412 return 413 } 414 var azf azure.Future 415 azf, err = azure.NewFutureFromResponse(resp) 416 future.FutureAPI = &azf 417 future.Result = func(client VirtualNetworkGatewaysClient) (s String, err error) { 418 var done bool 419 done, err = future.DoneWithContext(context.Background(), client) 420 if err != nil { 421 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGenerateVpnProfileFuture", "Result", future.Response(), "Polling failure") 422 return 423 } 424 if !done { 425 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGenerateVpnProfileFuture") 426 return 427 } 428 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 429 s.Response.Response, err = future.GetResult(sender) 430 if s.Response.Response == nil && err == nil { 431 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGenerateVpnProfileFuture", "Result", nil, "received nil response and error") 432 } 433 if err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 434 s, err = client.GenerateVpnProfileResponder(s.Response.Response) 435 if err != nil { 436 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGenerateVpnProfileFuture", "Result", s.Response.Response, "Failure responding to request") 437 } 438 } 439 return 440 } 441 return 442} 443 444// GenerateVpnProfileResponder handles the response to the GenerateVpnProfile request. The method always 445// closes the http.Response Body. 446func (client VirtualNetworkGatewaysClient) GenerateVpnProfileResponder(resp *http.Response) (result String, err error) { 447 err = autorest.Respond( 448 resp, 449 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 450 autorest.ByUnmarshallingJSON(&result), 451 autorest.ByClosing()) 452 result.Response = autorest.Response{Response: resp} 453 return 454} 455 456// Get gets the specified virtual network gateway by resource group. 457// Parameters: 458// resourceGroupName - the name of the resource group. 459// virtualNetworkGatewayName - the name of the virtual network gateway. 460func (client VirtualNetworkGatewaysClient) Get(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result VirtualNetworkGateway, err error) { 461 if tracing.IsEnabled() { 462 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.Get") 463 defer func() { 464 sc := -1 465 if result.Response.Response != nil { 466 sc = result.Response.Response.StatusCode 467 } 468 tracing.EndSpan(ctx, sc, err) 469 }() 470 } 471 req, err := client.GetPreparer(ctx, resourceGroupName, virtualNetworkGatewayName) 472 if err != nil { 473 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "Get", nil, "Failure preparing request") 474 return 475 } 476 477 resp, err := client.GetSender(req) 478 if err != nil { 479 result.Response = autorest.Response{Response: resp} 480 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "Get", resp, "Failure sending request") 481 return 482 } 483 484 result, err = client.GetResponder(resp) 485 if err != nil { 486 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "Get", resp, "Failure responding to request") 487 return 488 } 489 490 return 491} 492 493// GetPreparer prepares the Get request. 494func (client VirtualNetworkGatewaysClient) GetPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (*http.Request, error) { 495 pathParameters := map[string]interface{}{ 496 "resourceGroupName": autorest.Encode("path", resourceGroupName), 497 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 498 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 499 } 500 501 const APIVersion = "2018-10-01" 502 queryParameters := map[string]interface{}{ 503 "api-version": APIVersion, 504 } 505 506 preparer := autorest.CreatePreparer( 507 autorest.AsGet(), 508 autorest.WithBaseURL(client.BaseURI), 509 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}", pathParameters), 510 autorest.WithQueryParameters(queryParameters)) 511 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 512} 513 514// GetSender sends the Get request. The method will close the 515// http.Response Body if it receives an error. 516func (client VirtualNetworkGatewaysClient) GetSender(req *http.Request) (*http.Response, error) { 517 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 518} 519 520// GetResponder handles the response to the Get request. The method always 521// closes the http.Response Body. 522func (client VirtualNetworkGatewaysClient) GetResponder(resp *http.Response) (result VirtualNetworkGateway, err error) { 523 err = autorest.Respond( 524 resp, 525 azure.WithErrorUnlessStatusCode(http.StatusOK), 526 autorest.ByUnmarshallingJSON(&result), 527 autorest.ByClosing()) 528 result.Response = autorest.Response{Response: resp} 529 return 530} 531 532// GetAdvertisedRoutes this operation retrieves a list of routes the virtual network gateway is advertising to the 533// specified peer. 534// Parameters: 535// resourceGroupName - the name of the resource group. 536// virtualNetworkGatewayName - the name of the virtual network gateway. 537// peer - the IP address of the peer 538func (client VirtualNetworkGatewaysClient) GetAdvertisedRoutes(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, peer string) (result VirtualNetworkGatewaysGetAdvertisedRoutesFuture, err error) { 539 if tracing.IsEnabled() { 540 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.GetAdvertisedRoutes") 541 defer func() { 542 sc := -1 543 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 544 sc = result.FutureAPI.Response().StatusCode 545 } 546 tracing.EndSpan(ctx, sc, err) 547 }() 548 } 549 req, err := client.GetAdvertisedRoutesPreparer(ctx, resourceGroupName, virtualNetworkGatewayName, peer) 550 if err != nil { 551 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetAdvertisedRoutes", nil, "Failure preparing request") 552 return 553 } 554 555 result, err = client.GetAdvertisedRoutesSender(req) 556 if err != nil { 557 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetAdvertisedRoutes", nil, "Failure sending request") 558 return 559 } 560 561 return 562} 563 564// GetAdvertisedRoutesPreparer prepares the GetAdvertisedRoutes request. 565func (client VirtualNetworkGatewaysClient) GetAdvertisedRoutesPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, peer string) (*http.Request, error) { 566 pathParameters := map[string]interface{}{ 567 "resourceGroupName": autorest.Encode("path", resourceGroupName), 568 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 569 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 570 } 571 572 const APIVersion = "2018-10-01" 573 queryParameters := map[string]interface{}{ 574 "api-version": APIVersion, 575 "peer": autorest.Encode("query", peer), 576 } 577 578 preparer := autorest.CreatePreparer( 579 autorest.AsPost(), 580 autorest.WithBaseURL(client.BaseURI), 581 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getAdvertisedRoutes", pathParameters), 582 autorest.WithQueryParameters(queryParameters)) 583 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 584} 585 586// GetAdvertisedRoutesSender sends the GetAdvertisedRoutes request. The method will close the 587// http.Response Body if it receives an error. 588func (client VirtualNetworkGatewaysClient) GetAdvertisedRoutesSender(req *http.Request) (future VirtualNetworkGatewaysGetAdvertisedRoutesFuture, err error) { 589 var resp *http.Response 590 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 591 if err != nil { 592 return 593 } 594 var azf azure.Future 595 azf, err = azure.NewFutureFromResponse(resp) 596 future.FutureAPI = &azf 597 future.Result = func(client VirtualNetworkGatewaysClient) (grlr GatewayRouteListResult, err error) { 598 var done bool 599 done, err = future.DoneWithContext(context.Background(), client) 600 if err != nil { 601 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture", "Result", future.Response(), "Polling failure") 602 return 603 } 604 if !done { 605 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture") 606 return 607 } 608 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 609 grlr.Response.Response, err = future.GetResult(sender) 610 if grlr.Response.Response == nil && err == nil { 611 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture", "Result", nil, "received nil response and error") 612 } 613 if err == nil && grlr.Response.Response.StatusCode != http.StatusNoContent { 614 grlr, err = client.GetAdvertisedRoutesResponder(grlr.Response.Response) 615 if err != nil { 616 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture", "Result", grlr.Response.Response, "Failure responding to request") 617 } 618 } 619 return 620 } 621 return 622} 623 624// GetAdvertisedRoutesResponder handles the response to the GetAdvertisedRoutes request. The method always 625// closes the http.Response Body. 626func (client VirtualNetworkGatewaysClient) GetAdvertisedRoutesResponder(resp *http.Response) (result GatewayRouteListResult, err error) { 627 err = autorest.Respond( 628 resp, 629 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 630 autorest.ByUnmarshallingJSON(&result), 631 autorest.ByClosing()) 632 result.Response = autorest.Response{Response: resp} 633 return 634} 635 636// GetBgpPeerStatus the GetBgpPeerStatus operation retrieves the status of all BGP peers. 637// Parameters: 638// resourceGroupName - the name of the resource group. 639// virtualNetworkGatewayName - the name of the virtual network gateway. 640// peer - the IP address of the peer to retrieve the status of. 641func (client VirtualNetworkGatewaysClient) GetBgpPeerStatus(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, peer string) (result VirtualNetworkGatewaysGetBgpPeerStatusFuture, err error) { 642 if tracing.IsEnabled() { 643 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.GetBgpPeerStatus") 644 defer func() { 645 sc := -1 646 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 647 sc = result.FutureAPI.Response().StatusCode 648 } 649 tracing.EndSpan(ctx, sc, err) 650 }() 651 } 652 req, err := client.GetBgpPeerStatusPreparer(ctx, resourceGroupName, virtualNetworkGatewayName, peer) 653 if err != nil { 654 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetBgpPeerStatus", nil, "Failure preparing request") 655 return 656 } 657 658 result, err = client.GetBgpPeerStatusSender(req) 659 if err != nil { 660 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetBgpPeerStatus", nil, "Failure sending request") 661 return 662 } 663 664 return 665} 666 667// GetBgpPeerStatusPreparer prepares the GetBgpPeerStatus request. 668func (client VirtualNetworkGatewaysClient) GetBgpPeerStatusPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, peer string) (*http.Request, error) { 669 pathParameters := map[string]interface{}{ 670 "resourceGroupName": autorest.Encode("path", resourceGroupName), 671 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 672 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 673 } 674 675 const APIVersion = "2018-10-01" 676 queryParameters := map[string]interface{}{ 677 "api-version": APIVersion, 678 } 679 if len(peer) > 0 { 680 queryParameters["peer"] = autorest.Encode("query", peer) 681 } 682 683 preparer := autorest.CreatePreparer( 684 autorest.AsPost(), 685 autorest.WithBaseURL(client.BaseURI), 686 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getBgpPeerStatus", pathParameters), 687 autorest.WithQueryParameters(queryParameters)) 688 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 689} 690 691// GetBgpPeerStatusSender sends the GetBgpPeerStatus request. The method will close the 692// http.Response Body if it receives an error. 693func (client VirtualNetworkGatewaysClient) GetBgpPeerStatusSender(req *http.Request) (future VirtualNetworkGatewaysGetBgpPeerStatusFuture, err error) { 694 var resp *http.Response 695 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 696 if err != nil { 697 return 698 } 699 var azf azure.Future 700 azf, err = azure.NewFutureFromResponse(resp) 701 future.FutureAPI = &azf 702 future.Result = func(client VirtualNetworkGatewaysClient) (bpslr BgpPeerStatusListResult, err error) { 703 var done bool 704 done, err = future.DoneWithContext(context.Background(), client) 705 if err != nil { 706 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetBgpPeerStatusFuture", "Result", future.Response(), "Polling failure") 707 return 708 } 709 if !done { 710 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetBgpPeerStatusFuture") 711 return 712 } 713 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 714 bpslr.Response.Response, err = future.GetResult(sender) 715 if bpslr.Response.Response == nil && err == nil { 716 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetBgpPeerStatusFuture", "Result", nil, "received nil response and error") 717 } 718 if err == nil && bpslr.Response.Response.StatusCode != http.StatusNoContent { 719 bpslr, err = client.GetBgpPeerStatusResponder(bpslr.Response.Response) 720 if err != nil { 721 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetBgpPeerStatusFuture", "Result", bpslr.Response.Response, "Failure responding to request") 722 } 723 } 724 return 725 } 726 return 727} 728 729// GetBgpPeerStatusResponder handles the response to the GetBgpPeerStatus request. The method always 730// closes the http.Response Body. 731func (client VirtualNetworkGatewaysClient) GetBgpPeerStatusResponder(resp *http.Response) (result BgpPeerStatusListResult, err error) { 732 err = autorest.Respond( 733 resp, 734 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 735 autorest.ByUnmarshallingJSON(&result), 736 autorest.ByClosing()) 737 result.Response = autorest.Response{Response: resp} 738 return 739} 740 741// GetLearnedRoutes this operation retrieves a list of routes the virtual network gateway has learned, including routes 742// learned from BGP peers. 743// Parameters: 744// resourceGroupName - the name of the resource group. 745// virtualNetworkGatewayName - the name of the virtual network gateway. 746func (client VirtualNetworkGatewaysClient) GetLearnedRoutes(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result VirtualNetworkGatewaysGetLearnedRoutesFuture, err error) { 747 if tracing.IsEnabled() { 748 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.GetLearnedRoutes") 749 defer func() { 750 sc := -1 751 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 752 sc = result.FutureAPI.Response().StatusCode 753 } 754 tracing.EndSpan(ctx, sc, err) 755 }() 756 } 757 req, err := client.GetLearnedRoutesPreparer(ctx, resourceGroupName, virtualNetworkGatewayName) 758 if err != nil { 759 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetLearnedRoutes", nil, "Failure preparing request") 760 return 761 } 762 763 result, err = client.GetLearnedRoutesSender(req) 764 if err != nil { 765 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetLearnedRoutes", nil, "Failure sending request") 766 return 767 } 768 769 return 770} 771 772// GetLearnedRoutesPreparer prepares the GetLearnedRoutes request. 773func (client VirtualNetworkGatewaysClient) GetLearnedRoutesPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (*http.Request, error) { 774 pathParameters := map[string]interface{}{ 775 "resourceGroupName": autorest.Encode("path", resourceGroupName), 776 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 777 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 778 } 779 780 const APIVersion = "2018-10-01" 781 queryParameters := map[string]interface{}{ 782 "api-version": APIVersion, 783 } 784 785 preparer := autorest.CreatePreparer( 786 autorest.AsPost(), 787 autorest.WithBaseURL(client.BaseURI), 788 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getLearnedRoutes", pathParameters), 789 autorest.WithQueryParameters(queryParameters)) 790 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 791} 792 793// GetLearnedRoutesSender sends the GetLearnedRoutes request. The method will close the 794// http.Response Body if it receives an error. 795func (client VirtualNetworkGatewaysClient) GetLearnedRoutesSender(req *http.Request) (future VirtualNetworkGatewaysGetLearnedRoutesFuture, err error) { 796 var resp *http.Response 797 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 798 if err != nil { 799 return 800 } 801 var azf azure.Future 802 azf, err = azure.NewFutureFromResponse(resp) 803 future.FutureAPI = &azf 804 future.Result = func(client VirtualNetworkGatewaysClient) (grlr GatewayRouteListResult, err error) { 805 var done bool 806 done, err = future.DoneWithContext(context.Background(), client) 807 if err != nil { 808 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetLearnedRoutesFuture", "Result", future.Response(), "Polling failure") 809 return 810 } 811 if !done { 812 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetLearnedRoutesFuture") 813 return 814 } 815 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 816 grlr.Response.Response, err = future.GetResult(sender) 817 if grlr.Response.Response == nil && err == nil { 818 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetLearnedRoutesFuture", "Result", nil, "received nil response and error") 819 } 820 if err == nil && grlr.Response.Response.StatusCode != http.StatusNoContent { 821 grlr, err = client.GetLearnedRoutesResponder(grlr.Response.Response) 822 if err != nil { 823 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetLearnedRoutesFuture", "Result", grlr.Response.Response, "Failure responding to request") 824 } 825 } 826 return 827 } 828 return 829} 830 831// GetLearnedRoutesResponder handles the response to the GetLearnedRoutes request. The method always 832// closes the http.Response Body. 833func (client VirtualNetworkGatewaysClient) GetLearnedRoutesResponder(resp *http.Response) (result GatewayRouteListResult, err error) { 834 err = autorest.Respond( 835 resp, 836 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 837 autorest.ByUnmarshallingJSON(&result), 838 autorest.ByClosing()) 839 result.Response = autorest.Response{Response: resp} 840 return 841} 842 843// GetVpnclientIpsecParameters the Get VpnclientIpsecParameters operation retrieves information about the vpnclient 844// ipsec policy for P2S client of virtual network gateway in the specified resource group through Network resource 845// provider. 846// Parameters: 847// resourceGroupName - the name of the resource group. 848// virtualNetworkGatewayName - the virtual network gateway name. 849func (client VirtualNetworkGatewaysClient) GetVpnclientIpsecParameters(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture, err error) { 850 if tracing.IsEnabled() { 851 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.GetVpnclientIpsecParameters") 852 defer func() { 853 sc := -1 854 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 855 sc = result.FutureAPI.Response().StatusCode 856 } 857 tracing.EndSpan(ctx, sc, err) 858 }() 859 } 860 req, err := client.GetVpnclientIpsecParametersPreparer(ctx, resourceGroupName, virtualNetworkGatewayName) 861 if err != nil { 862 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetVpnclientIpsecParameters", nil, "Failure preparing request") 863 return 864 } 865 866 result, err = client.GetVpnclientIpsecParametersSender(req) 867 if err != nil { 868 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetVpnclientIpsecParameters", nil, "Failure sending request") 869 return 870 } 871 872 return 873} 874 875// GetVpnclientIpsecParametersPreparer prepares the GetVpnclientIpsecParameters request. 876func (client VirtualNetworkGatewaysClient) GetVpnclientIpsecParametersPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (*http.Request, error) { 877 pathParameters := map[string]interface{}{ 878 "resourceGroupName": autorest.Encode("path", resourceGroupName), 879 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 880 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 881 } 882 883 const APIVersion = "2018-10-01" 884 queryParameters := map[string]interface{}{ 885 "api-version": APIVersion, 886 } 887 888 preparer := autorest.CreatePreparer( 889 autorest.AsPost(), 890 autorest.WithBaseURL(client.BaseURI), 891 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getvpnclientipsecparameters", pathParameters), 892 autorest.WithQueryParameters(queryParameters)) 893 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 894} 895 896// GetVpnclientIpsecParametersSender sends the GetVpnclientIpsecParameters request. The method will close the 897// http.Response Body if it receives an error. 898func (client VirtualNetworkGatewaysClient) GetVpnclientIpsecParametersSender(req *http.Request) (future VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture, err error) { 899 var resp *http.Response 900 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 901 if err != nil { 902 return 903 } 904 var azf azure.Future 905 azf, err = azure.NewFutureFromResponse(resp) 906 future.FutureAPI = &azf 907 future.Result = func(client VirtualNetworkGatewaysClient) (vcipp VpnClientIPsecParameters, err error) { 908 var done bool 909 done, err = future.DoneWithContext(context.Background(), client) 910 if err != nil { 911 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture", "Result", future.Response(), "Polling failure") 912 return 913 } 914 if !done { 915 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture") 916 return 917 } 918 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 919 vcipp.Response.Response, err = future.GetResult(sender) 920 if vcipp.Response.Response == nil && err == nil { 921 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture", "Result", nil, "received nil response and error") 922 } 923 if err == nil && vcipp.Response.Response.StatusCode != http.StatusNoContent { 924 vcipp, err = client.GetVpnclientIpsecParametersResponder(vcipp.Response.Response) 925 if err != nil { 926 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture", "Result", vcipp.Response.Response, "Failure responding to request") 927 } 928 } 929 return 930 } 931 return 932} 933 934// GetVpnclientIpsecParametersResponder handles the response to the GetVpnclientIpsecParameters request. The method always 935// closes the http.Response Body. 936func (client VirtualNetworkGatewaysClient) GetVpnclientIpsecParametersResponder(resp *http.Response) (result VpnClientIPsecParameters, err error) { 937 err = autorest.Respond( 938 resp, 939 azure.WithErrorUnlessStatusCode(http.StatusOK), 940 autorest.ByUnmarshallingJSON(&result), 941 autorest.ByClosing()) 942 result.Response = autorest.Response{Response: resp} 943 return 944} 945 946// GetVpnProfilePackageURL gets pre-generated VPN profile for P2S client of the virtual network gateway in the 947// specified resource group. The profile needs to be generated first using generateVpnProfile. 948// Parameters: 949// resourceGroupName - the name of the resource group. 950// virtualNetworkGatewayName - the name of the virtual network gateway. 951func (client VirtualNetworkGatewaysClient) GetVpnProfilePackageURL(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result VirtualNetworkGatewaysGetVpnProfilePackageURLFuture, err error) { 952 if tracing.IsEnabled() { 953 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.GetVpnProfilePackageURL") 954 defer func() { 955 sc := -1 956 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 957 sc = result.FutureAPI.Response().StatusCode 958 } 959 tracing.EndSpan(ctx, sc, err) 960 }() 961 } 962 req, err := client.GetVpnProfilePackageURLPreparer(ctx, resourceGroupName, virtualNetworkGatewayName) 963 if err != nil { 964 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetVpnProfilePackageURL", nil, "Failure preparing request") 965 return 966 } 967 968 result, err = client.GetVpnProfilePackageURLSender(req) 969 if err != nil { 970 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "GetVpnProfilePackageURL", nil, "Failure sending request") 971 return 972 } 973 974 return 975} 976 977// GetVpnProfilePackageURLPreparer prepares the GetVpnProfilePackageURL request. 978func (client VirtualNetworkGatewaysClient) GetVpnProfilePackageURLPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (*http.Request, error) { 979 pathParameters := map[string]interface{}{ 980 "resourceGroupName": autorest.Encode("path", resourceGroupName), 981 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 982 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 983 } 984 985 const APIVersion = "2018-10-01" 986 queryParameters := map[string]interface{}{ 987 "api-version": APIVersion, 988 } 989 990 preparer := autorest.CreatePreparer( 991 autorest.AsPost(), 992 autorest.WithBaseURL(client.BaseURI), 993 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/getvpnprofilepackageurl", pathParameters), 994 autorest.WithQueryParameters(queryParameters)) 995 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 996} 997 998// GetVpnProfilePackageURLSender sends the GetVpnProfilePackageURL request. The method will close the 999// http.Response Body if it receives an error. 1000func (client VirtualNetworkGatewaysClient) GetVpnProfilePackageURLSender(req *http.Request) (future VirtualNetworkGatewaysGetVpnProfilePackageURLFuture, err error) { 1001 var resp *http.Response 1002 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 1003 if err != nil { 1004 return 1005 } 1006 var azf azure.Future 1007 azf, err = azure.NewFutureFromResponse(resp) 1008 future.FutureAPI = &azf 1009 future.Result = func(client VirtualNetworkGatewaysClient) (s String, err error) { 1010 var done bool 1011 done, err = future.DoneWithContext(context.Background(), client) 1012 if err != nil { 1013 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture", "Result", future.Response(), "Polling failure") 1014 return 1015 } 1016 if !done { 1017 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture") 1018 return 1019 } 1020 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1021 s.Response.Response, err = future.GetResult(sender) 1022 if s.Response.Response == nil && err == nil { 1023 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture", "Result", nil, "received nil response and error") 1024 } 1025 if err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 1026 s, err = client.GetVpnProfilePackageURLResponder(s.Response.Response) 1027 if err != nil { 1028 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture", "Result", s.Response.Response, "Failure responding to request") 1029 } 1030 } 1031 return 1032 } 1033 return 1034} 1035 1036// GetVpnProfilePackageURLResponder handles the response to the GetVpnProfilePackageURL request. The method always 1037// closes the http.Response Body. 1038func (client VirtualNetworkGatewaysClient) GetVpnProfilePackageURLResponder(resp *http.Response) (result String, err error) { 1039 err = autorest.Respond( 1040 resp, 1041 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 1042 autorest.ByUnmarshallingJSON(&result), 1043 autorest.ByClosing()) 1044 result.Response = autorest.Response{Response: resp} 1045 return 1046} 1047 1048// List gets all virtual network gateways by resource group. 1049// Parameters: 1050// resourceGroupName - the name of the resource group. 1051func (client VirtualNetworkGatewaysClient) List(ctx context.Context, resourceGroupName string) (result VirtualNetworkGatewayListResultPage, err error) { 1052 if tracing.IsEnabled() { 1053 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.List") 1054 defer func() { 1055 sc := -1 1056 if result.vnglr.Response.Response != nil { 1057 sc = result.vnglr.Response.Response.StatusCode 1058 } 1059 tracing.EndSpan(ctx, sc, err) 1060 }() 1061 } 1062 result.fn = client.listNextResults 1063 req, err := client.ListPreparer(ctx, resourceGroupName) 1064 if err != nil { 1065 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "List", nil, "Failure preparing request") 1066 return 1067 } 1068 1069 resp, err := client.ListSender(req) 1070 if err != nil { 1071 result.vnglr.Response = autorest.Response{Response: resp} 1072 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "List", resp, "Failure sending request") 1073 return 1074 } 1075 1076 result.vnglr, err = client.ListResponder(resp) 1077 if err != nil { 1078 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "List", resp, "Failure responding to request") 1079 return 1080 } 1081 if result.vnglr.hasNextLink() && result.vnglr.IsEmpty() { 1082 err = result.NextWithContext(ctx) 1083 return 1084 } 1085 1086 return 1087} 1088 1089// ListPreparer prepares the List request. 1090func (client VirtualNetworkGatewaysClient) ListPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) { 1091 pathParameters := map[string]interface{}{ 1092 "resourceGroupName": autorest.Encode("path", resourceGroupName), 1093 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 1094 } 1095 1096 const APIVersion = "2018-10-01" 1097 queryParameters := map[string]interface{}{ 1098 "api-version": APIVersion, 1099 } 1100 1101 preparer := autorest.CreatePreparer( 1102 autorest.AsGet(), 1103 autorest.WithBaseURL(client.BaseURI), 1104 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways", pathParameters), 1105 autorest.WithQueryParameters(queryParameters)) 1106 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 1107} 1108 1109// ListSender sends the List request. The method will close the 1110// http.Response Body if it receives an error. 1111func (client VirtualNetworkGatewaysClient) ListSender(req *http.Request) (*http.Response, error) { 1112 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 1113} 1114 1115// ListResponder handles the response to the List request. The method always 1116// closes the http.Response Body. 1117func (client VirtualNetworkGatewaysClient) ListResponder(resp *http.Response) (result VirtualNetworkGatewayListResult, err error) { 1118 err = autorest.Respond( 1119 resp, 1120 azure.WithErrorUnlessStatusCode(http.StatusOK), 1121 autorest.ByUnmarshallingJSON(&result), 1122 autorest.ByClosing()) 1123 result.Response = autorest.Response{Response: resp} 1124 return 1125} 1126 1127// listNextResults retrieves the next set of results, if any. 1128func (client VirtualNetworkGatewaysClient) listNextResults(ctx context.Context, lastResults VirtualNetworkGatewayListResult) (result VirtualNetworkGatewayListResult, err error) { 1129 req, err := lastResults.virtualNetworkGatewayListResultPreparer(ctx) 1130 if err != nil { 1131 return result, autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "listNextResults", nil, "Failure preparing next results request") 1132 } 1133 if req == nil { 1134 return 1135 } 1136 resp, err := client.ListSender(req) 1137 if err != nil { 1138 result.Response = autorest.Response{Response: resp} 1139 return result, autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "listNextResults", resp, "Failure sending next results request") 1140 } 1141 result, err = client.ListResponder(resp) 1142 if err != nil { 1143 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "listNextResults", resp, "Failure responding to next results request") 1144 } 1145 return 1146} 1147 1148// ListComplete enumerates all values, automatically crossing page boundaries as required. 1149func (client VirtualNetworkGatewaysClient) ListComplete(ctx context.Context, resourceGroupName string) (result VirtualNetworkGatewayListResultIterator, err error) { 1150 if tracing.IsEnabled() { 1151 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.List") 1152 defer func() { 1153 sc := -1 1154 if result.Response().Response.Response != nil { 1155 sc = result.page.Response().Response.Response.StatusCode 1156 } 1157 tracing.EndSpan(ctx, sc, err) 1158 }() 1159 } 1160 result.page, err = client.List(ctx, resourceGroupName) 1161 return 1162} 1163 1164// ListConnections gets all the connections in a virtual network gateway. 1165// Parameters: 1166// resourceGroupName - the name of the resource group. 1167// virtualNetworkGatewayName - the name of the virtual network gateway. 1168func (client VirtualNetworkGatewaysClient) ListConnections(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result VirtualNetworkGatewayListConnectionsResultPage, err error) { 1169 if tracing.IsEnabled() { 1170 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.ListConnections") 1171 defer func() { 1172 sc := -1 1173 if result.vnglcr.Response.Response != nil { 1174 sc = result.vnglcr.Response.Response.StatusCode 1175 } 1176 tracing.EndSpan(ctx, sc, err) 1177 }() 1178 } 1179 result.fn = client.listConnectionsNextResults 1180 req, err := client.ListConnectionsPreparer(ctx, resourceGroupName, virtualNetworkGatewayName) 1181 if err != nil { 1182 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "ListConnections", nil, "Failure preparing request") 1183 return 1184 } 1185 1186 resp, err := client.ListConnectionsSender(req) 1187 if err != nil { 1188 result.vnglcr.Response = autorest.Response{Response: resp} 1189 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "ListConnections", resp, "Failure sending request") 1190 return 1191 } 1192 1193 result.vnglcr, err = client.ListConnectionsResponder(resp) 1194 if err != nil { 1195 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "ListConnections", resp, "Failure responding to request") 1196 return 1197 } 1198 if result.vnglcr.hasNextLink() && result.vnglcr.IsEmpty() { 1199 err = result.NextWithContext(ctx) 1200 return 1201 } 1202 1203 return 1204} 1205 1206// ListConnectionsPreparer prepares the ListConnections request. 1207func (client VirtualNetworkGatewaysClient) ListConnectionsPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (*http.Request, error) { 1208 pathParameters := map[string]interface{}{ 1209 "resourceGroupName": autorest.Encode("path", resourceGroupName), 1210 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 1211 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 1212 } 1213 1214 const APIVersion = "2018-10-01" 1215 queryParameters := map[string]interface{}{ 1216 "api-version": APIVersion, 1217 } 1218 1219 preparer := autorest.CreatePreparer( 1220 autorest.AsGet(), 1221 autorest.WithBaseURL(client.BaseURI), 1222 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/connections", pathParameters), 1223 autorest.WithQueryParameters(queryParameters)) 1224 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 1225} 1226 1227// ListConnectionsSender sends the ListConnections request. The method will close the 1228// http.Response Body if it receives an error. 1229func (client VirtualNetworkGatewaysClient) ListConnectionsSender(req *http.Request) (*http.Response, error) { 1230 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 1231} 1232 1233// ListConnectionsResponder handles the response to the ListConnections request. The method always 1234// closes the http.Response Body. 1235func (client VirtualNetworkGatewaysClient) ListConnectionsResponder(resp *http.Response) (result VirtualNetworkGatewayListConnectionsResult, err error) { 1236 err = autorest.Respond( 1237 resp, 1238 azure.WithErrorUnlessStatusCode(http.StatusOK), 1239 autorest.ByUnmarshallingJSON(&result), 1240 autorest.ByClosing()) 1241 result.Response = autorest.Response{Response: resp} 1242 return 1243} 1244 1245// listConnectionsNextResults retrieves the next set of results, if any. 1246func (client VirtualNetworkGatewaysClient) listConnectionsNextResults(ctx context.Context, lastResults VirtualNetworkGatewayListConnectionsResult) (result VirtualNetworkGatewayListConnectionsResult, err error) { 1247 req, err := lastResults.virtualNetworkGatewayListConnectionsResultPreparer(ctx) 1248 if err != nil { 1249 return result, autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "listConnectionsNextResults", nil, "Failure preparing next results request") 1250 } 1251 if req == nil { 1252 return 1253 } 1254 resp, err := client.ListConnectionsSender(req) 1255 if err != nil { 1256 result.Response = autorest.Response{Response: resp} 1257 return result, autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "listConnectionsNextResults", resp, "Failure sending next results request") 1258 } 1259 result, err = client.ListConnectionsResponder(resp) 1260 if err != nil { 1261 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "listConnectionsNextResults", resp, "Failure responding to next results request") 1262 } 1263 return 1264} 1265 1266// ListConnectionsComplete enumerates all values, automatically crossing page boundaries as required. 1267func (client VirtualNetworkGatewaysClient) ListConnectionsComplete(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result VirtualNetworkGatewayListConnectionsResultIterator, err error) { 1268 if tracing.IsEnabled() { 1269 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.ListConnections") 1270 defer func() { 1271 sc := -1 1272 if result.Response().Response.Response != nil { 1273 sc = result.page.Response().Response.Response.StatusCode 1274 } 1275 tracing.EndSpan(ctx, sc, err) 1276 }() 1277 } 1278 result.page, err = client.ListConnections(ctx, resourceGroupName, virtualNetworkGatewayName) 1279 return 1280} 1281 1282// Reset resets the primary of the virtual network gateway in the specified resource group. 1283// Parameters: 1284// resourceGroupName - the name of the resource group. 1285// virtualNetworkGatewayName - the name of the virtual network gateway. 1286// gatewayVip - virtual network gateway vip address supplied to the begin reset of the active-active feature 1287// enabled gateway. 1288func (client VirtualNetworkGatewaysClient) Reset(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, gatewayVip string) (result VirtualNetworkGatewaysResetFuture, err error) { 1289 if tracing.IsEnabled() { 1290 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.Reset") 1291 defer func() { 1292 sc := -1 1293 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 1294 sc = result.FutureAPI.Response().StatusCode 1295 } 1296 tracing.EndSpan(ctx, sc, err) 1297 }() 1298 } 1299 req, err := client.ResetPreparer(ctx, resourceGroupName, virtualNetworkGatewayName, gatewayVip) 1300 if err != nil { 1301 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "Reset", nil, "Failure preparing request") 1302 return 1303 } 1304 1305 result, err = client.ResetSender(req) 1306 if err != nil { 1307 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "Reset", nil, "Failure sending request") 1308 return 1309 } 1310 1311 return 1312} 1313 1314// ResetPreparer prepares the Reset request. 1315func (client VirtualNetworkGatewaysClient) ResetPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, gatewayVip string) (*http.Request, error) { 1316 pathParameters := map[string]interface{}{ 1317 "resourceGroupName": autorest.Encode("path", resourceGroupName), 1318 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 1319 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 1320 } 1321 1322 const APIVersion = "2018-10-01" 1323 queryParameters := map[string]interface{}{ 1324 "api-version": APIVersion, 1325 } 1326 if len(gatewayVip) > 0 { 1327 queryParameters["gatewayVip"] = autorest.Encode("query", gatewayVip) 1328 } 1329 1330 preparer := autorest.CreatePreparer( 1331 autorest.AsPost(), 1332 autorest.WithBaseURL(client.BaseURI), 1333 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/reset", pathParameters), 1334 autorest.WithQueryParameters(queryParameters)) 1335 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 1336} 1337 1338// ResetSender sends the Reset request. The method will close the 1339// http.Response Body if it receives an error. 1340func (client VirtualNetworkGatewaysClient) ResetSender(req *http.Request) (future VirtualNetworkGatewaysResetFuture, err error) { 1341 var resp *http.Response 1342 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 1343 if err != nil { 1344 return 1345 } 1346 var azf azure.Future 1347 azf, err = azure.NewFutureFromResponse(resp) 1348 future.FutureAPI = &azf 1349 future.Result = func(client VirtualNetworkGatewaysClient) (vng VirtualNetworkGateway, err error) { 1350 var done bool 1351 done, err = future.DoneWithContext(context.Background(), client) 1352 if err != nil { 1353 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysResetFuture", "Result", future.Response(), "Polling failure") 1354 return 1355 } 1356 if !done { 1357 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysResetFuture") 1358 return 1359 } 1360 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1361 vng.Response.Response, err = future.GetResult(sender) 1362 if vng.Response.Response == nil && err == nil { 1363 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysResetFuture", "Result", nil, "received nil response and error") 1364 } 1365 if err == nil && vng.Response.Response.StatusCode != http.StatusNoContent { 1366 vng, err = client.ResetResponder(vng.Response.Response) 1367 if err != nil { 1368 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysResetFuture", "Result", vng.Response.Response, "Failure responding to request") 1369 } 1370 } 1371 return 1372 } 1373 return 1374} 1375 1376// ResetResponder handles the response to the Reset request. The method always 1377// closes the http.Response Body. 1378func (client VirtualNetworkGatewaysClient) ResetResponder(resp *http.Response) (result VirtualNetworkGateway, err error) { 1379 err = autorest.Respond( 1380 resp, 1381 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 1382 autorest.ByUnmarshallingJSON(&result), 1383 autorest.ByClosing()) 1384 result.Response = autorest.Response{Response: resp} 1385 return 1386} 1387 1388// ResetVpnClientSharedKey resets the VPN client shared key of the virtual network gateway in the specified resource 1389// group. 1390// Parameters: 1391// resourceGroupName - the name of the resource group. 1392// virtualNetworkGatewayName - the name of the virtual network gateway. 1393func (client VirtualNetworkGatewaysClient) ResetVpnClientSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result VirtualNetworkGatewaysResetVpnClientSharedKeyFuture, err error) { 1394 if tracing.IsEnabled() { 1395 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.ResetVpnClientSharedKey") 1396 defer func() { 1397 sc := -1 1398 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 1399 sc = result.FutureAPI.Response().StatusCode 1400 } 1401 tracing.EndSpan(ctx, sc, err) 1402 }() 1403 } 1404 req, err := client.ResetVpnClientSharedKeyPreparer(ctx, resourceGroupName, virtualNetworkGatewayName) 1405 if err != nil { 1406 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "ResetVpnClientSharedKey", nil, "Failure preparing request") 1407 return 1408 } 1409 1410 result, err = client.ResetVpnClientSharedKeySender(req) 1411 if err != nil { 1412 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "ResetVpnClientSharedKey", nil, "Failure sending request") 1413 return 1414 } 1415 1416 return 1417} 1418 1419// ResetVpnClientSharedKeyPreparer prepares the ResetVpnClientSharedKey request. 1420func (client VirtualNetworkGatewaysClient) ResetVpnClientSharedKeyPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (*http.Request, error) { 1421 pathParameters := map[string]interface{}{ 1422 "resourceGroupName": autorest.Encode("path", resourceGroupName), 1423 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 1424 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 1425 } 1426 1427 const APIVersion = "2018-10-01" 1428 queryParameters := map[string]interface{}{ 1429 "api-version": APIVersion, 1430 } 1431 1432 preparer := autorest.CreatePreparer( 1433 autorest.AsPost(), 1434 autorest.WithBaseURL(client.BaseURI), 1435 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/resetvpnclientsharedkey", pathParameters), 1436 autorest.WithQueryParameters(queryParameters)) 1437 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 1438} 1439 1440// ResetVpnClientSharedKeySender sends the ResetVpnClientSharedKey request. The method will close the 1441// http.Response Body if it receives an error. 1442func (client VirtualNetworkGatewaysClient) ResetVpnClientSharedKeySender(req *http.Request) (future VirtualNetworkGatewaysResetVpnClientSharedKeyFuture, err error) { 1443 var resp *http.Response 1444 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 1445 if err != nil { 1446 return 1447 } 1448 var azf azure.Future 1449 azf, err = azure.NewFutureFromResponse(resp) 1450 future.FutureAPI = &azf 1451 future.Result = func(client VirtualNetworkGatewaysClient) (ar autorest.Response, err error) { 1452 var done bool 1453 done, err = future.DoneWithContext(context.Background(), client) 1454 if err != nil { 1455 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysResetVpnClientSharedKeyFuture", "Result", future.Response(), "Polling failure") 1456 return 1457 } 1458 if !done { 1459 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysResetVpnClientSharedKeyFuture") 1460 return 1461 } 1462 ar.Response = future.Response() 1463 return 1464 } 1465 return 1466} 1467 1468// ResetVpnClientSharedKeyResponder handles the response to the ResetVpnClientSharedKey request. The method always 1469// closes the http.Response Body. 1470func (client VirtualNetworkGatewaysClient) ResetVpnClientSharedKeyResponder(resp *http.Response) (result autorest.Response, err error) { 1471 err = autorest.Respond( 1472 resp, 1473 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 1474 autorest.ByClosing()) 1475 result.Response = resp 1476 return 1477} 1478 1479// SetVpnclientIpsecParameters the Set VpnclientIpsecParameters operation sets the vpnclient ipsec policy for P2S 1480// client of virtual network gateway in the specified resource group through Network resource provider. 1481// Parameters: 1482// resourceGroupName - the name of the resource group. 1483// virtualNetworkGatewayName - the name of the virtual network gateway. 1484// vpnclientIpsecParams - parameters supplied to the Begin Set vpnclient ipsec parameters of Virtual Network 1485// Gateway P2S client operation through Network resource provider. 1486func (client VirtualNetworkGatewaysClient) SetVpnclientIpsecParameters(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, vpnclientIpsecParams VpnClientIPsecParameters) (result VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture, err error) { 1487 if tracing.IsEnabled() { 1488 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.SetVpnclientIpsecParameters") 1489 defer func() { 1490 sc := -1 1491 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 1492 sc = result.FutureAPI.Response().StatusCode 1493 } 1494 tracing.EndSpan(ctx, sc, err) 1495 }() 1496 } 1497 if err := validation.Validate([]validation.Validation{ 1498 {TargetValue: vpnclientIpsecParams, 1499 Constraints: []validation.Constraint{{Target: "vpnclientIpsecParams.SaLifeTimeSeconds", Name: validation.Null, Rule: true, Chain: nil}, 1500 {Target: "vpnclientIpsecParams.SaDataSizeKilobytes", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { 1501 return result, validation.NewError("network.VirtualNetworkGatewaysClient", "SetVpnclientIpsecParameters", err.Error()) 1502 } 1503 1504 req, err := client.SetVpnclientIpsecParametersPreparer(ctx, resourceGroupName, virtualNetworkGatewayName, vpnclientIpsecParams) 1505 if err != nil { 1506 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "SetVpnclientIpsecParameters", nil, "Failure preparing request") 1507 return 1508 } 1509 1510 result, err = client.SetVpnclientIpsecParametersSender(req) 1511 if err != nil { 1512 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "SetVpnclientIpsecParameters", nil, "Failure sending request") 1513 return 1514 } 1515 1516 return 1517} 1518 1519// SetVpnclientIpsecParametersPreparer prepares the SetVpnclientIpsecParameters request. 1520func (client VirtualNetworkGatewaysClient) SetVpnclientIpsecParametersPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, vpnclientIpsecParams VpnClientIPsecParameters) (*http.Request, error) { 1521 pathParameters := map[string]interface{}{ 1522 "resourceGroupName": autorest.Encode("path", resourceGroupName), 1523 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 1524 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 1525 } 1526 1527 const APIVersion = "2018-10-01" 1528 queryParameters := map[string]interface{}{ 1529 "api-version": APIVersion, 1530 } 1531 1532 preparer := autorest.CreatePreparer( 1533 autorest.AsContentType("application/json; charset=utf-8"), 1534 autorest.AsPost(), 1535 autorest.WithBaseURL(client.BaseURI), 1536 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/setvpnclientipsecparameters", pathParameters), 1537 autorest.WithJSON(vpnclientIpsecParams), 1538 autorest.WithQueryParameters(queryParameters)) 1539 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 1540} 1541 1542// SetVpnclientIpsecParametersSender sends the SetVpnclientIpsecParameters request. The method will close the 1543// http.Response Body if it receives an error. 1544func (client VirtualNetworkGatewaysClient) SetVpnclientIpsecParametersSender(req *http.Request) (future VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture, err error) { 1545 var resp *http.Response 1546 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 1547 if err != nil { 1548 return 1549 } 1550 var azf azure.Future 1551 azf, err = azure.NewFutureFromResponse(resp) 1552 future.FutureAPI = &azf 1553 future.Result = func(client VirtualNetworkGatewaysClient) (vcipp VpnClientIPsecParameters, err error) { 1554 var done bool 1555 done, err = future.DoneWithContext(context.Background(), client) 1556 if err != nil { 1557 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture", "Result", future.Response(), "Polling failure") 1558 return 1559 } 1560 if !done { 1561 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture") 1562 return 1563 } 1564 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1565 vcipp.Response.Response, err = future.GetResult(sender) 1566 if vcipp.Response.Response == nil && err == nil { 1567 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture", "Result", nil, "received nil response and error") 1568 } 1569 if err == nil && vcipp.Response.Response.StatusCode != http.StatusNoContent { 1570 vcipp, err = client.SetVpnclientIpsecParametersResponder(vcipp.Response.Response) 1571 if err != nil { 1572 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture", "Result", vcipp.Response.Response, "Failure responding to request") 1573 } 1574 } 1575 return 1576 } 1577 return 1578} 1579 1580// SetVpnclientIpsecParametersResponder handles the response to the SetVpnclientIpsecParameters request. The method always 1581// closes the http.Response Body. 1582func (client VirtualNetworkGatewaysClient) SetVpnclientIpsecParametersResponder(resp *http.Response) (result VpnClientIPsecParameters, err error) { 1583 err = autorest.Respond( 1584 resp, 1585 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 1586 autorest.ByUnmarshallingJSON(&result), 1587 autorest.ByClosing()) 1588 result.Response = autorest.Response{Response: resp} 1589 return 1590} 1591 1592// SupportedVpnDevices gets a xml format representation for supported vpn devices. 1593// Parameters: 1594// resourceGroupName - the name of the resource group. 1595// virtualNetworkGatewayName - the name of the virtual network gateway. 1596func (client VirtualNetworkGatewaysClient) SupportedVpnDevices(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result String, err error) { 1597 if tracing.IsEnabled() { 1598 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.SupportedVpnDevices") 1599 defer func() { 1600 sc := -1 1601 if result.Response.Response != nil { 1602 sc = result.Response.Response.StatusCode 1603 } 1604 tracing.EndSpan(ctx, sc, err) 1605 }() 1606 } 1607 req, err := client.SupportedVpnDevicesPreparer(ctx, resourceGroupName, virtualNetworkGatewayName) 1608 if err != nil { 1609 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "SupportedVpnDevices", nil, "Failure preparing request") 1610 return 1611 } 1612 1613 resp, err := client.SupportedVpnDevicesSender(req) 1614 if err != nil { 1615 result.Response = autorest.Response{Response: resp} 1616 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "SupportedVpnDevices", resp, "Failure sending request") 1617 return 1618 } 1619 1620 result, err = client.SupportedVpnDevicesResponder(resp) 1621 if err != nil { 1622 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "SupportedVpnDevices", resp, "Failure responding to request") 1623 return 1624 } 1625 1626 return 1627} 1628 1629// SupportedVpnDevicesPreparer prepares the SupportedVpnDevices request. 1630func (client VirtualNetworkGatewaysClient) SupportedVpnDevicesPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (*http.Request, error) { 1631 pathParameters := map[string]interface{}{ 1632 "resourceGroupName": autorest.Encode("path", resourceGroupName), 1633 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 1634 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 1635 } 1636 1637 const APIVersion = "2018-10-01" 1638 queryParameters := map[string]interface{}{ 1639 "api-version": APIVersion, 1640 } 1641 1642 preparer := autorest.CreatePreparer( 1643 autorest.AsPost(), 1644 autorest.WithBaseURL(client.BaseURI), 1645 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/supportedvpndevices", pathParameters), 1646 autorest.WithQueryParameters(queryParameters)) 1647 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 1648} 1649 1650// SupportedVpnDevicesSender sends the SupportedVpnDevices request. The method will close the 1651// http.Response Body if it receives an error. 1652func (client VirtualNetworkGatewaysClient) SupportedVpnDevicesSender(req *http.Request) (*http.Response, error) { 1653 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 1654} 1655 1656// SupportedVpnDevicesResponder handles the response to the SupportedVpnDevices request. The method always 1657// closes the http.Response Body. 1658func (client VirtualNetworkGatewaysClient) SupportedVpnDevicesResponder(resp *http.Response) (result String, err error) { 1659 err = autorest.Respond( 1660 resp, 1661 azure.WithErrorUnlessStatusCode(http.StatusOK), 1662 autorest.ByUnmarshallingJSON(&result.Value), 1663 autorest.ByClosing()) 1664 result.Response = autorest.Response{Response: resp} 1665 return 1666} 1667 1668// UpdateTags updates a virtual network gateway tags. 1669// Parameters: 1670// resourceGroupName - the name of the resource group. 1671// virtualNetworkGatewayName - the name of the virtual network gateway. 1672// parameters - parameters supplied to update virtual network gateway tags. 1673func (client VirtualNetworkGatewaysClient) UpdateTags(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters TagsObject) (result VirtualNetworkGatewaysUpdateTagsFuture, err error) { 1674 if tracing.IsEnabled() { 1675 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.UpdateTags") 1676 defer func() { 1677 sc := -1 1678 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 1679 sc = result.FutureAPI.Response().StatusCode 1680 } 1681 tracing.EndSpan(ctx, sc, err) 1682 }() 1683 } 1684 req, err := client.UpdateTagsPreparer(ctx, resourceGroupName, virtualNetworkGatewayName, parameters) 1685 if err != nil { 1686 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "UpdateTags", nil, "Failure preparing request") 1687 return 1688 } 1689 1690 result, err = client.UpdateTagsSender(req) 1691 if err != nil { 1692 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "UpdateTags", nil, "Failure sending request") 1693 return 1694 } 1695 1696 return 1697} 1698 1699// UpdateTagsPreparer prepares the UpdateTags request. 1700func (client VirtualNetworkGatewaysClient) UpdateTagsPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters TagsObject) (*http.Request, error) { 1701 pathParameters := map[string]interface{}{ 1702 "resourceGroupName": autorest.Encode("path", resourceGroupName), 1703 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 1704 "virtualNetworkGatewayName": autorest.Encode("path", virtualNetworkGatewayName), 1705 } 1706 1707 const APIVersion = "2018-10-01" 1708 queryParameters := map[string]interface{}{ 1709 "api-version": APIVersion, 1710 } 1711 1712 preparer := autorest.CreatePreparer( 1713 autorest.AsContentType("application/json; charset=utf-8"), 1714 autorest.AsPatch(), 1715 autorest.WithBaseURL(client.BaseURI), 1716 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}", pathParameters), 1717 autorest.WithJSON(parameters), 1718 autorest.WithQueryParameters(queryParameters)) 1719 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 1720} 1721 1722// UpdateTagsSender sends the UpdateTags request. The method will close the 1723// http.Response Body if it receives an error. 1724func (client VirtualNetworkGatewaysClient) UpdateTagsSender(req *http.Request) (future VirtualNetworkGatewaysUpdateTagsFuture, err error) { 1725 var resp *http.Response 1726 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 1727 if err != nil { 1728 return 1729 } 1730 var azf azure.Future 1731 azf, err = azure.NewFutureFromResponse(resp) 1732 future.FutureAPI = &azf 1733 future.Result = func(client VirtualNetworkGatewaysClient) (vng VirtualNetworkGateway, err error) { 1734 var done bool 1735 done, err = future.DoneWithContext(context.Background(), client) 1736 if err != nil { 1737 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysUpdateTagsFuture", "Result", future.Response(), "Polling failure") 1738 return 1739 } 1740 if !done { 1741 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysUpdateTagsFuture") 1742 return 1743 } 1744 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1745 vng.Response.Response, err = future.GetResult(sender) 1746 if vng.Response.Response == nil && err == nil { 1747 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysUpdateTagsFuture", "Result", nil, "received nil response and error") 1748 } 1749 if err == nil && vng.Response.Response.StatusCode != http.StatusNoContent { 1750 vng, err = client.UpdateTagsResponder(vng.Response.Response) 1751 if err != nil { 1752 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysUpdateTagsFuture", "Result", vng.Response.Response, "Failure responding to request") 1753 } 1754 } 1755 return 1756 } 1757 return 1758} 1759 1760// UpdateTagsResponder handles the response to the UpdateTags request. The method always 1761// closes the http.Response Body. 1762func (client VirtualNetworkGatewaysClient) UpdateTagsResponder(resp *http.Response) (result VirtualNetworkGateway, err error) { 1763 err = autorest.Respond( 1764 resp, 1765 azure.WithErrorUnlessStatusCode(http.StatusOK), 1766 autorest.ByUnmarshallingJSON(&result), 1767 autorest.ByClosing()) 1768 result.Response = autorest.Response{Response: resp} 1769 return 1770} 1771 1772// VpnDeviceConfigurationScript gets a xml format representation for vpn device configuration script. 1773// Parameters: 1774// resourceGroupName - the name of the resource group. 1775// virtualNetworkGatewayConnectionName - the name of the virtual network gateway connection for which the 1776// configuration script is generated. 1777// parameters - parameters supplied to the generate vpn device script operation. 1778func (client VirtualNetworkGatewaysClient) VpnDeviceConfigurationScript(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters VpnDeviceScriptParameters) (result String, err error) { 1779 if tracing.IsEnabled() { 1780 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewaysClient.VpnDeviceConfigurationScript") 1781 defer func() { 1782 sc := -1 1783 if result.Response.Response != nil { 1784 sc = result.Response.Response.StatusCode 1785 } 1786 tracing.EndSpan(ctx, sc, err) 1787 }() 1788 } 1789 req, err := client.VpnDeviceConfigurationScriptPreparer(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters) 1790 if err != nil { 1791 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "VpnDeviceConfigurationScript", nil, "Failure preparing request") 1792 return 1793 } 1794 1795 resp, err := client.VpnDeviceConfigurationScriptSender(req) 1796 if err != nil { 1797 result.Response = autorest.Response{Response: resp} 1798 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "VpnDeviceConfigurationScript", resp, "Failure sending request") 1799 return 1800 } 1801 1802 result, err = client.VpnDeviceConfigurationScriptResponder(resp) 1803 if err != nil { 1804 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysClient", "VpnDeviceConfigurationScript", resp, "Failure responding to request") 1805 return 1806 } 1807 1808 return 1809} 1810 1811// VpnDeviceConfigurationScriptPreparer prepares the VpnDeviceConfigurationScript request. 1812func (client VirtualNetworkGatewaysClient) VpnDeviceConfigurationScriptPreparer(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters VpnDeviceScriptParameters) (*http.Request, error) { 1813 pathParameters := map[string]interface{}{ 1814 "resourceGroupName": autorest.Encode("path", resourceGroupName), 1815 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 1816 "virtualNetworkGatewayConnectionName": autorest.Encode("path", virtualNetworkGatewayConnectionName), 1817 } 1818 1819 const APIVersion = "2018-10-01" 1820 queryParameters := map[string]interface{}{ 1821 "api-version": APIVersion, 1822 } 1823 1824 preparer := autorest.CreatePreparer( 1825 autorest.AsContentType("application/json; charset=utf-8"), 1826 autorest.AsPost(), 1827 autorest.WithBaseURL(client.BaseURI), 1828 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/vpndeviceconfigurationscript", pathParameters), 1829 autorest.WithJSON(parameters), 1830 autorest.WithQueryParameters(queryParameters)) 1831 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 1832} 1833 1834// VpnDeviceConfigurationScriptSender sends the VpnDeviceConfigurationScript request. The method will close the 1835// http.Response Body if it receives an error. 1836func (client VirtualNetworkGatewaysClient) VpnDeviceConfigurationScriptSender(req *http.Request) (*http.Response, error) { 1837 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 1838} 1839 1840// VpnDeviceConfigurationScriptResponder handles the response to the VpnDeviceConfigurationScript request. The method always 1841// closes the http.Response Body. 1842func (client VirtualNetworkGatewaysClient) VpnDeviceConfigurationScriptResponder(resp *http.Response) (result String, err error) { 1843 err = autorest.Respond( 1844 resp, 1845 azure.WithErrorUnlessStatusCode(http.StatusOK), 1846 autorest.ByUnmarshallingJSON(&result.Value), 1847 autorest.ByClosing()) 1848 result.Response = autorest.Response{Response: resp} 1849 return 1850} 1851