1// +build go1.13 2 3// Copyright (c) Microsoft Corporation. All rights reserved. 4// Licensed under the MIT License. See License.txt in the project root for license information. 5// Code generated by Microsoft (R) AutoRest Code Generator. 6// Changes may cause incorrect behavior and will be lost if the code is regenerated. 7 8package armnetwork 9 10import ( 11 "context" 12 "errors" 13 "fmt" 14 "github.com/Azure/azure-sdk-for-go/sdk/armcore" 15 "github.com/Azure/azure-sdk-for-go/sdk/azcore" 16 "net/http" 17 "net/url" 18 "strings" 19 "time" 20) 21 22// VirtualNetworkGatewayConnectionsClient contains the methods for the VirtualNetworkGatewayConnections group. 23// Don't use this type directly, use NewVirtualNetworkGatewayConnectionsClient() instead. 24type VirtualNetworkGatewayConnectionsClient struct { 25 con *armcore.Connection 26 subscriptionID string 27} 28 29// NewVirtualNetworkGatewayConnectionsClient creates a new instance of VirtualNetworkGatewayConnectionsClient with the specified values. 30func NewVirtualNetworkGatewayConnectionsClient(con *armcore.Connection, subscriptionID string) *VirtualNetworkGatewayConnectionsClient { 31 return &VirtualNetworkGatewayConnectionsClient{con: con, subscriptionID: subscriptionID} 32} 33 34// BeginCreateOrUpdate - Creates or updates a virtual network gateway connection in the specified resource group. 35// If the operation fails it returns the *CloudError error type. 36func (client *VirtualNetworkGatewayConnectionsClient) BeginCreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters VirtualNetworkGatewayConnection, options *VirtualNetworkGatewayConnectionsBeginCreateOrUpdateOptions) (VirtualNetworkGatewayConnectionPollerResponse, error) { 37 resp, err := client.createOrUpdate(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 38 if err != nil { 39 return VirtualNetworkGatewayConnectionPollerResponse{}, err 40 } 41 result := VirtualNetworkGatewayConnectionPollerResponse{ 42 RawResponse: resp.Response, 43 } 44 pt, err := armcore.NewLROPoller("VirtualNetworkGatewayConnectionsClient.CreateOrUpdate", "azure-async-operation", resp, client.con.Pipeline(), client.createOrUpdateHandleError) 45 if err != nil { 46 return VirtualNetworkGatewayConnectionPollerResponse{}, err 47 } 48 poller := &virtualNetworkGatewayConnectionPoller{ 49 pt: pt, 50 } 51 result.Poller = poller 52 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (VirtualNetworkGatewayConnectionResponse, error) { 53 return poller.pollUntilDone(ctx, frequency) 54 } 55 return result, nil 56} 57 58// ResumeCreateOrUpdate creates a new VirtualNetworkGatewayConnectionPoller from the specified resume token. 59// token - The value must come from a previous call to VirtualNetworkGatewayConnectionPoller.ResumeToken(). 60func (client *VirtualNetworkGatewayConnectionsClient) ResumeCreateOrUpdate(ctx context.Context, token string) (VirtualNetworkGatewayConnectionPollerResponse, error) { 61 pt, err := armcore.NewLROPollerFromResumeToken("VirtualNetworkGatewayConnectionsClient.CreateOrUpdate", token, client.con.Pipeline(), client.createOrUpdateHandleError) 62 if err != nil { 63 return VirtualNetworkGatewayConnectionPollerResponse{}, err 64 } 65 poller := &virtualNetworkGatewayConnectionPoller{ 66 pt: pt, 67 } 68 resp, err := poller.Poll(ctx) 69 if err != nil { 70 return VirtualNetworkGatewayConnectionPollerResponse{}, err 71 } 72 result := VirtualNetworkGatewayConnectionPollerResponse{ 73 RawResponse: resp, 74 } 75 result.Poller = poller 76 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (VirtualNetworkGatewayConnectionResponse, error) { 77 return poller.pollUntilDone(ctx, frequency) 78 } 79 return result, nil 80} 81 82// CreateOrUpdate - Creates or updates a virtual network gateway connection in the specified resource group. 83// If the operation fails it returns the *CloudError error type. 84func (client *VirtualNetworkGatewayConnectionsClient) createOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters VirtualNetworkGatewayConnection, options *VirtualNetworkGatewayConnectionsBeginCreateOrUpdateOptions) (*azcore.Response, error) { 85 req, err := client.createOrUpdateCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 86 if err != nil { 87 return nil, err 88 } 89 resp, err := client.con.Pipeline().Do(req) 90 if err != nil { 91 return nil, err 92 } 93 if !resp.HasStatusCode(http.StatusOK, http.StatusCreated) { 94 return nil, client.createOrUpdateHandleError(resp) 95 } 96 return resp, nil 97} 98 99// createOrUpdateCreateRequest creates the CreateOrUpdate request. 100func (client *VirtualNetworkGatewayConnectionsClient) createOrUpdateCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters VirtualNetworkGatewayConnection, options *VirtualNetworkGatewayConnectionsBeginCreateOrUpdateOptions) (*azcore.Request, error) { 101 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}" 102 if resourceGroupName == "" { 103 return nil, errors.New("parameter resourceGroupName cannot be empty") 104 } 105 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 106 if virtualNetworkGatewayConnectionName == "" { 107 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 108 } 109 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 110 if client.subscriptionID == "" { 111 return nil, errors.New("parameter client.subscriptionID cannot be empty") 112 } 113 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 114 req, err := azcore.NewRequest(ctx, http.MethodPut, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 115 if err != nil { 116 return nil, err 117 } 118 req.Telemetry(telemetryInfo) 119 reqQP := req.URL.Query() 120 reqQP.Set("api-version", "2021-02-01") 121 req.URL.RawQuery = reqQP.Encode() 122 req.Header.Set("Accept", "application/json") 123 return req, req.MarshalAsJSON(parameters) 124} 125 126// createOrUpdateHandleError handles the CreateOrUpdate error response. 127func (client *VirtualNetworkGatewayConnectionsClient) createOrUpdateHandleError(resp *azcore.Response) error { 128 body, err := resp.Payload() 129 if err != nil { 130 return azcore.NewResponseError(err, resp.Response) 131 } 132 errType := CloudError{raw: string(body)} 133 if err := resp.UnmarshalAsJSON(&errType); err != nil { 134 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 135 } 136 return azcore.NewResponseError(&errType, resp.Response) 137} 138 139// BeginDelete - Deletes the specified virtual network Gateway connection. 140// If the operation fails it returns the *CloudError error type. 141func (client *VirtualNetworkGatewayConnectionsClient) BeginDelete(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginDeleteOptions) (HTTPPollerResponse, error) { 142 resp, err := client.deleteOperation(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 143 if err != nil { 144 return HTTPPollerResponse{}, err 145 } 146 result := HTTPPollerResponse{ 147 RawResponse: resp.Response, 148 } 149 pt, err := armcore.NewLROPoller("VirtualNetworkGatewayConnectionsClient.Delete", "location", resp, client.con.Pipeline(), client.deleteHandleError) 150 if err != nil { 151 return HTTPPollerResponse{}, err 152 } 153 poller := &httpPoller{ 154 pt: pt, 155 } 156 result.Poller = poller 157 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (*http.Response, error) { 158 return poller.pollUntilDone(ctx, frequency) 159 } 160 return result, nil 161} 162 163// ResumeDelete creates a new HTTPPoller from the specified resume token. 164// token - The value must come from a previous call to HTTPPoller.ResumeToken(). 165func (client *VirtualNetworkGatewayConnectionsClient) ResumeDelete(ctx context.Context, token string) (HTTPPollerResponse, error) { 166 pt, err := armcore.NewLROPollerFromResumeToken("VirtualNetworkGatewayConnectionsClient.Delete", token, client.con.Pipeline(), client.deleteHandleError) 167 if err != nil { 168 return HTTPPollerResponse{}, err 169 } 170 poller := &httpPoller{ 171 pt: pt, 172 } 173 resp, err := poller.Poll(ctx) 174 if err != nil { 175 return HTTPPollerResponse{}, err 176 } 177 result := HTTPPollerResponse{ 178 RawResponse: resp, 179 } 180 result.Poller = poller 181 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (*http.Response, error) { 182 return poller.pollUntilDone(ctx, frequency) 183 } 184 return result, nil 185} 186 187// Delete - Deletes the specified virtual network Gateway connection. 188// If the operation fails it returns the *CloudError error type. 189func (client *VirtualNetworkGatewayConnectionsClient) deleteOperation(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginDeleteOptions) (*azcore.Response, error) { 190 req, err := client.deleteCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 191 if err != nil { 192 return nil, err 193 } 194 resp, err := client.con.Pipeline().Do(req) 195 if err != nil { 196 return nil, err 197 } 198 if !resp.HasStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent) { 199 return nil, client.deleteHandleError(resp) 200 } 201 return resp, nil 202} 203 204// deleteCreateRequest creates the Delete request. 205func (client *VirtualNetworkGatewayConnectionsClient) deleteCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginDeleteOptions) (*azcore.Request, error) { 206 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}" 207 if resourceGroupName == "" { 208 return nil, errors.New("parameter resourceGroupName cannot be empty") 209 } 210 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 211 if virtualNetworkGatewayConnectionName == "" { 212 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 213 } 214 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 215 if client.subscriptionID == "" { 216 return nil, errors.New("parameter client.subscriptionID cannot be empty") 217 } 218 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 219 req, err := azcore.NewRequest(ctx, http.MethodDelete, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 220 if err != nil { 221 return nil, err 222 } 223 req.Telemetry(telemetryInfo) 224 reqQP := req.URL.Query() 225 reqQP.Set("api-version", "2021-02-01") 226 req.URL.RawQuery = reqQP.Encode() 227 req.Header.Set("Accept", "application/json") 228 return req, nil 229} 230 231// deleteHandleError handles the Delete error response. 232func (client *VirtualNetworkGatewayConnectionsClient) deleteHandleError(resp *azcore.Response) error { 233 body, err := resp.Payload() 234 if err != nil { 235 return azcore.NewResponseError(err, resp.Response) 236 } 237 errType := CloudError{raw: string(body)} 238 if err := resp.UnmarshalAsJSON(&errType); err != nil { 239 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 240 } 241 return azcore.NewResponseError(&errType, resp.Response) 242} 243 244// Get - Gets the specified virtual network gateway connection by resource group. 245// If the operation fails it returns the *CloudError error type. 246func (client *VirtualNetworkGatewayConnectionsClient) Get(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsGetOptions) (VirtualNetworkGatewayConnectionResponse, error) { 247 req, err := client.getCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 248 if err != nil { 249 return VirtualNetworkGatewayConnectionResponse{}, err 250 } 251 resp, err := client.con.Pipeline().Do(req) 252 if err != nil { 253 return VirtualNetworkGatewayConnectionResponse{}, err 254 } 255 if !resp.HasStatusCode(http.StatusOK) { 256 return VirtualNetworkGatewayConnectionResponse{}, client.getHandleError(resp) 257 } 258 return client.getHandleResponse(resp) 259} 260 261// getCreateRequest creates the Get request. 262func (client *VirtualNetworkGatewayConnectionsClient) getCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsGetOptions) (*azcore.Request, error) { 263 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}" 264 if resourceGroupName == "" { 265 return nil, errors.New("parameter resourceGroupName cannot be empty") 266 } 267 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 268 if virtualNetworkGatewayConnectionName == "" { 269 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 270 } 271 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 272 if client.subscriptionID == "" { 273 return nil, errors.New("parameter client.subscriptionID cannot be empty") 274 } 275 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 276 req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 277 if err != nil { 278 return nil, err 279 } 280 req.Telemetry(telemetryInfo) 281 reqQP := req.URL.Query() 282 reqQP.Set("api-version", "2021-02-01") 283 req.URL.RawQuery = reqQP.Encode() 284 req.Header.Set("Accept", "application/json") 285 return req, nil 286} 287 288// getHandleResponse handles the Get response. 289func (client *VirtualNetworkGatewayConnectionsClient) getHandleResponse(resp *azcore.Response) (VirtualNetworkGatewayConnectionResponse, error) { 290 var val *VirtualNetworkGatewayConnection 291 if err := resp.UnmarshalAsJSON(&val); err != nil { 292 return VirtualNetworkGatewayConnectionResponse{}, err 293 } 294 return VirtualNetworkGatewayConnectionResponse{RawResponse: resp.Response, VirtualNetworkGatewayConnection: val}, nil 295} 296 297// getHandleError handles the Get error response. 298func (client *VirtualNetworkGatewayConnectionsClient) getHandleError(resp *azcore.Response) error { 299 body, err := resp.Payload() 300 if err != nil { 301 return azcore.NewResponseError(err, resp.Response) 302 } 303 errType := CloudError{raw: string(body)} 304 if err := resp.UnmarshalAsJSON(&errType); err != nil { 305 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 306 } 307 return azcore.NewResponseError(&errType, resp.Response) 308} 309 310// BeginGetIkeSas - Lists IKE Security Associations for the virtual network gateway connection in the specified resource group. 311// If the operation fails it returns the *ErrorResponse error type. 312func (client *VirtualNetworkGatewayConnectionsClient) BeginGetIkeSas(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginGetIkeSasOptions) (StringPollerResponse, error) { 313 resp, err := client.getIkeSas(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 314 if err != nil { 315 return StringPollerResponse{}, err 316 } 317 result := StringPollerResponse{ 318 RawResponse: resp.Response, 319 } 320 pt, err := armcore.NewLROPoller("VirtualNetworkGatewayConnectionsClient.GetIkeSas", "location", resp, client.con.Pipeline(), client.getIkeSasHandleError) 321 if err != nil { 322 return StringPollerResponse{}, err 323 } 324 poller := &stringPoller{ 325 pt: pt, 326 } 327 result.Poller = poller 328 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (StringResponse, error) { 329 return poller.pollUntilDone(ctx, frequency) 330 } 331 return result, nil 332} 333 334// ResumeGetIkeSas creates a new StringPoller from the specified resume token. 335// token - The value must come from a previous call to StringPoller.ResumeToken(). 336func (client *VirtualNetworkGatewayConnectionsClient) ResumeGetIkeSas(ctx context.Context, token string) (StringPollerResponse, error) { 337 pt, err := armcore.NewLROPollerFromResumeToken("VirtualNetworkGatewayConnectionsClient.GetIkeSas", token, client.con.Pipeline(), client.getIkeSasHandleError) 338 if err != nil { 339 return StringPollerResponse{}, err 340 } 341 poller := &stringPoller{ 342 pt: pt, 343 } 344 resp, err := poller.Poll(ctx) 345 if err != nil { 346 return StringPollerResponse{}, err 347 } 348 result := StringPollerResponse{ 349 RawResponse: resp, 350 } 351 result.Poller = poller 352 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (StringResponse, error) { 353 return poller.pollUntilDone(ctx, frequency) 354 } 355 return result, nil 356} 357 358// GetIkeSas - Lists IKE Security Associations for the virtual network gateway connection in the specified resource group. 359// If the operation fails it returns the *ErrorResponse error type. 360func (client *VirtualNetworkGatewayConnectionsClient) getIkeSas(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginGetIkeSasOptions) (*azcore.Response, error) { 361 req, err := client.getIkeSasCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 362 if err != nil { 363 return nil, err 364 } 365 resp, err := client.con.Pipeline().Do(req) 366 if err != nil { 367 return nil, err 368 } 369 if !resp.HasStatusCode(http.StatusOK, http.StatusAccepted) { 370 return nil, client.getIkeSasHandleError(resp) 371 } 372 return resp, nil 373} 374 375// getIkeSasCreateRequest creates the GetIkeSas request. 376func (client *VirtualNetworkGatewayConnectionsClient) getIkeSasCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginGetIkeSasOptions) (*azcore.Request, error) { 377 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/getikesas" 378 if resourceGroupName == "" { 379 return nil, errors.New("parameter resourceGroupName cannot be empty") 380 } 381 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 382 if virtualNetworkGatewayConnectionName == "" { 383 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 384 } 385 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 386 if client.subscriptionID == "" { 387 return nil, errors.New("parameter client.subscriptionID cannot be empty") 388 } 389 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 390 req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 391 if err != nil { 392 return nil, err 393 } 394 req.Telemetry(telemetryInfo) 395 reqQP := req.URL.Query() 396 reqQP.Set("api-version", "2021-02-01") 397 req.URL.RawQuery = reqQP.Encode() 398 req.Header.Set("Accept", "application/json") 399 return req, nil 400} 401 402// getIkeSasHandleError handles the GetIkeSas error response. 403func (client *VirtualNetworkGatewayConnectionsClient) getIkeSasHandleError(resp *azcore.Response) error { 404 body, err := resp.Payload() 405 if err != nil { 406 return azcore.NewResponseError(err, resp.Response) 407 } 408 errType := ErrorResponse{raw: string(body)} 409 if err := resp.UnmarshalAsJSON(&errType); err != nil { 410 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 411 } 412 return azcore.NewResponseError(&errType, resp.Response) 413} 414 415// GetSharedKey - The Get VirtualNetworkGatewayConnectionSharedKey operation retrieves information about the specified virtual network gateway connection 416// shared key through Network resource provider. 417// If the operation fails it returns the *CloudError error type. 418func (client *VirtualNetworkGatewayConnectionsClient) GetSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsGetSharedKeyOptions) (ConnectionSharedKeyResponse, error) { 419 req, err := client.getSharedKeyCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 420 if err != nil { 421 return ConnectionSharedKeyResponse{}, err 422 } 423 resp, err := client.con.Pipeline().Do(req) 424 if err != nil { 425 return ConnectionSharedKeyResponse{}, err 426 } 427 if !resp.HasStatusCode(http.StatusOK) { 428 return ConnectionSharedKeyResponse{}, client.getSharedKeyHandleError(resp) 429 } 430 return client.getSharedKeyHandleResponse(resp) 431} 432 433// getSharedKeyCreateRequest creates the GetSharedKey request. 434func (client *VirtualNetworkGatewayConnectionsClient) getSharedKeyCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsGetSharedKeyOptions) (*azcore.Request, error) { 435 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey" 436 if resourceGroupName == "" { 437 return nil, errors.New("parameter resourceGroupName cannot be empty") 438 } 439 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 440 if virtualNetworkGatewayConnectionName == "" { 441 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 442 } 443 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 444 if client.subscriptionID == "" { 445 return nil, errors.New("parameter client.subscriptionID cannot be empty") 446 } 447 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 448 req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 449 if err != nil { 450 return nil, err 451 } 452 req.Telemetry(telemetryInfo) 453 reqQP := req.URL.Query() 454 reqQP.Set("api-version", "2021-02-01") 455 req.URL.RawQuery = reqQP.Encode() 456 req.Header.Set("Accept", "application/json") 457 return req, nil 458} 459 460// getSharedKeyHandleResponse handles the GetSharedKey response. 461func (client *VirtualNetworkGatewayConnectionsClient) getSharedKeyHandleResponse(resp *azcore.Response) (ConnectionSharedKeyResponse, error) { 462 var val *ConnectionSharedKey 463 if err := resp.UnmarshalAsJSON(&val); err != nil { 464 return ConnectionSharedKeyResponse{}, err 465 } 466 return ConnectionSharedKeyResponse{RawResponse: resp.Response, ConnectionSharedKey: val}, nil 467} 468 469// getSharedKeyHandleError handles the GetSharedKey error response. 470func (client *VirtualNetworkGatewayConnectionsClient) getSharedKeyHandleError(resp *azcore.Response) error { 471 body, err := resp.Payload() 472 if err != nil { 473 return azcore.NewResponseError(err, resp.Response) 474 } 475 errType := CloudError{raw: string(body)} 476 if err := resp.UnmarshalAsJSON(&errType); err != nil { 477 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 478 } 479 return azcore.NewResponseError(&errType, resp.Response) 480} 481 482// List - The List VirtualNetworkGatewayConnections operation retrieves all the virtual network gateways connections created. 483// If the operation fails it returns the *CloudError error type. 484func (client *VirtualNetworkGatewayConnectionsClient) List(resourceGroupName string, options *VirtualNetworkGatewayConnectionsListOptions) VirtualNetworkGatewayConnectionListResultPager { 485 return &virtualNetworkGatewayConnectionListResultPager{ 486 pipeline: client.con.Pipeline(), 487 requester: func(ctx context.Context) (*azcore.Request, error) { 488 return client.listCreateRequest(ctx, resourceGroupName, options) 489 }, 490 responder: client.listHandleResponse, 491 errorer: client.listHandleError, 492 advancer: func(ctx context.Context, resp VirtualNetworkGatewayConnectionListResultResponse) (*azcore.Request, error) { 493 return azcore.NewRequest(ctx, http.MethodGet, *resp.VirtualNetworkGatewayConnectionListResult.NextLink) 494 }, 495 statusCodes: []int{http.StatusOK}, 496 } 497} 498 499// listCreateRequest creates the List request. 500func (client *VirtualNetworkGatewayConnectionsClient) listCreateRequest(ctx context.Context, resourceGroupName string, options *VirtualNetworkGatewayConnectionsListOptions) (*azcore.Request, error) { 501 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections" 502 if resourceGroupName == "" { 503 return nil, errors.New("parameter resourceGroupName cannot be empty") 504 } 505 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 506 if client.subscriptionID == "" { 507 return nil, errors.New("parameter client.subscriptionID cannot be empty") 508 } 509 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 510 req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 511 if err != nil { 512 return nil, err 513 } 514 req.Telemetry(telemetryInfo) 515 reqQP := req.URL.Query() 516 reqQP.Set("api-version", "2021-02-01") 517 req.URL.RawQuery = reqQP.Encode() 518 req.Header.Set("Accept", "application/json") 519 return req, nil 520} 521 522// listHandleResponse handles the List response. 523func (client *VirtualNetworkGatewayConnectionsClient) listHandleResponse(resp *azcore.Response) (VirtualNetworkGatewayConnectionListResultResponse, error) { 524 var val *VirtualNetworkGatewayConnectionListResult 525 if err := resp.UnmarshalAsJSON(&val); err != nil { 526 return VirtualNetworkGatewayConnectionListResultResponse{}, err 527 } 528 return VirtualNetworkGatewayConnectionListResultResponse{RawResponse: resp.Response, VirtualNetworkGatewayConnectionListResult: val}, nil 529} 530 531// listHandleError handles the List error response. 532func (client *VirtualNetworkGatewayConnectionsClient) listHandleError(resp *azcore.Response) error { 533 body, err := resp.Payload() 534 if err != nil { 535 return azcore.NewResponseError(err, resp.Response) 536 } 537 errType := CloudError{raw: string(body)} 538 if err := resp.UnmarshalAsJSON(&errType); err != nil { 539 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 540 } 541 return azcore.NewResponseError(&errType, resp.Response) 542} 543 544// BeginResetConnection - Resets the virtual network gateway connection specified. 545// If the operation fails it returns the *ErrorResponse error type. 546func (client *VirtualNetworkGatewayConnectionsClient) BeginResetConnection(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginResetConnectionOptions) (HTTPPollerResponse, error) { 547 resp, err := client.resetConnection(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 548 if err != nil { 549 return HTTPPollerResponse{}, err 550 } 551 result := HTTPPollerResponse{ 552 RawResponse: resp.Response, 553 } 554 pt, err := armcore.NewLROPoller("VirtualNetworkGatewayConnectionsClient.ResetConnection", "location", resp, client.con.Pipeline(), client.resetConnectionHandleError) 555 if err != nil { 556 return HTTPPollerResponse{}, err 557 } 558 poller := &httpPoller{ 559 pt: pt, 560 } 561 result.Poller = poller 562 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (*http.Response, error) { 563 return poller.pollUntilDone(ctx, frequency) 564 } 565 return result, nil 566} 567 568// ResumeResetConnection creates a new HTTPPoller from the specified resume token. 569// token - The value must come from a previous call to HTTPPoller.ResumeToken(). 570func (client *VirtualNetworkGatewayConnectionsClient) ResumeResetConnection(ctx context.Context, token string) (HTTPPollerResponse, error) { 571 pt, err := armcore.NewLROPollerFromResumeToken("VirtualNetworkGatewayConnectionsClient.ResetConnection", token, client.con.Pipeline(), client.resetConnectionHandleError) 572 if err != nil { 573 return HTTPPollerResponse{}, err 574 } 575 poller := &httpPoller{ 576 pt: pt, 577 } 578 resp, err := poller.Poll(ctx) 579 if err != nil { 580 return HTTPPollerResponse{}, err 581 } 582 result := HTTPPollerResponse{ 583 RawResponse: resp, 584 } 585 result.Poller = poller 586 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (*http.Response, error) { 587 return poller.pollUntilDone(ctx, frequency) 588 } 589 return result, nil 590} 591 592// ResetConnection - Resets the virtual network gateway connection specified. 593// If the operation fails it returns the *ErrorResponse error type. 594func (client *VirtualNetworkGatewayConnectionsClient) resetConnection(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginResetConnectionOptions) (*azcore.Response, error) { 595 req, err := client.resetConnectionCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 596 if err != nil { 597 return nil, err 598 } 599 resp, err := client.con.Pipeline().Do(req) 600 if err != nil { 601 return nil, err 602 } 603 if !resp.HasStatusCode(http.StatusAccepted) { 604 return nil, client.resetConnectionHandleError(resp) 605 } 606 return resp, nil 607} 608 609// resetConnectionCreateRequest creates the ResetConnection request. 610func (client *VirtualNetworkGatewayConnectionsClient) resetConnectionCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginResetConnectionOptions) (*azcore.Request, error) { 611 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/resetconnection" 612 if resourceGroupName == "" { 613 return nil, errors.New("parameter resourceGroupName cannot be empty") 614 } 615 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 616 if virtualNetworkGatewayConnectionName == "" { 617 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 618 } 619 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 620 if client.subscriptionID == "" { 621 return nil, errors.New("parameter client.subscriptionID cannot be empty") 622 } 623 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 624 req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 625 if err != nil { 626 return nil, err 627 } 628 req.Telemetry(telemetryInfo) 629 reqQP := req.URL.Query() 630 reqQP.Set("api-version", "2021-02-01") 631 req.URL.RawQuery = reqQP.Encode() 632 req.Header.Set("Accept", "application/json") 633 return req, nil 634} 635 636// resetConnectionHandleError handles the ResetConnection error response. 637func (client *VirtualNetworkGatewayConnectionsClient) resetConnectionHandleError(resp *azcore.Response) error { 638 body, err := resp.Payload() 639 if err != nil { 640 return azcore.NewResponseError(err, resp.Response) 641 } 642 errType := ErrorResponse{raw: string(body)} 643 if err := resp.UnmarshalAsJSON(&errType); err != nil { 644 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 645 } 646 return azcore.NewResponseError(&errType, resp.Response) 647} 648 649// BeginResetSharedKey - The VirtualNetworkGatewayConnectionResetSharedKey operation resets the virtual network gateway connection shared key for passed 650// virtual network gateway connection in the specified resource group 651// through Network resource provider. 652// If the operation fails it returns the *CloudError error type. 653func (client *VirtualNetworkGatewayConnectionsClient) BeginResetSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters ConnectionResetSharedKey, options *VirtualNetworkGatewayConnectionsBeginResetSharedKeyOptions) (ConnectionResetSharedKeyPollerResponse, error) { 654 resp, err := client.resetSharedKey(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 655 if err != nil { 656 return ConnectionResetSharedKeyPollerResponse{}, err 657 } 658 result := ConnectionResetSharedKeyPollerResponse{ 659 RawResponse: resp.Response, 660 } 661 pt, err := armcore.NewLROPoller("VirtualNetworkGatewayConnectionsClient.ResetSharedKey", "location", resp, client.con.Pipeline(), client.resetSharedKeyHandleError) 662 if err != nil { 663 return ConnectionResetSharedKeyPollerResponse{}, err 664 } 665 poller := &connectionResetSharedKeyPoller{ 666 pt: pt, 667 } 668 result.Poller = poller 669 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (ConnectionResetSharedKeyResponse, error) { 670 return poller.pollUntilDone(ctx, frequency) 671 } 672 return result, nil 673} 674 675// ResumeResetSharedKey creates a new ConnectionResetSharedKeyPoller from the specified resume token. 676// token - The value must come from a previous call to ConnectionResetSharedKeyPoller.ResumeToken(). 677func (client *VirtualNetworkGatewayConnectionsClient) ResumeResetSharedKey(ctx context.Context, token string) (ConnectionResetSharedKeyPollerResponse, error) { 678 pt, err := armcore.NewLROPollerFromResumeToken("VirtualNetworkGatewayConnectionsClient.ResetSharedKey", token, client.con.Pipeline(), client.resetSharedKeyHandleError) 679 if err != nil { 680 return ConnectionResetSharedKeyPollerResponse{}, err 681 } 682 poller := &connectionResetSharedKeyPoller{ 683 pt: pt, 684 } 685 resp, err := poller.Poll(ctx) 686 if err != nil { 687 return ConnectionResetSharedKeyPollerResponse{}, err 688 } 689 result := ConnectionResetSharedKeyPollerResponse{ 690 RawResponse: resp, 691 } 692 result.Poller = poller 693 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (ConnectionResetSharedKeyResponse, error) { 694 return poller.pollUntilDone(ctx, frequency) 695 } 696 return result, nil 697} 698 699// ResetSharedKey - The VirtualNetworkGatewayConnectionResetSharedKey operation resets the virtual network gateway connection shared key for passed virtual 700// network gateway connection in the specified resource group 701// through Network resource provider. 702// If the operation fails it returns the *CloudError error type. 703func (client *VirtualNetworkGatewayConnectionsClient) resetSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters ConnectionResetSharedKey, options *VirtualNetworkGatewayConnectionsBeginResetSharedKeyOptions) (*azcore.Response, error) { 704 req, err := client.resetSharedKeyCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 705 if err != nil { 706 return nil, err 707 } 708 resp, err := client.con.Pipeline().Do(req) 709 if err != nil { 710 return nil, err 711 } 712 if !resp.HasStatusCode(http.StatusOK, http.StatusAccepted) { 713 return nil, client.resetSharedKeyHandleError(resp) 714 } 715 return resp, nil 716} 717 718// resetSharedKeyCreateRequest creates the ResetSharedKey request. 719func (client *VirtualNetworkGatewayConnectionsClient) resetSharedKeyCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters ConnectionResetSharedKey, options *VirtualNetworkGatewayConnectionsBeginResetSharedKeyOptions) (*azcore.Request, error) { 720 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey/reset" 721 if resourceGroupName == "" { 722 return nil, errors.New("parameter resourceGroupName cannot be empty") 723 } 724 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 725 if virtualNetworkGatewayConnectionName == "" { 726 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 727 } 728 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 729 if client.subscriptionID == "" { 730 return nil, errors.New("parameter client.subscriptionID cannot be empty") 731 } 732 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 733 req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 734 if err != nil { 735 return nil, err 736 } 737 req.Telemetry(telemetryInfo) 738 reqQP := req.URL.Query() 739 reqQP.Set("api-version", "2021-02-01") 740 req.URL.RawQuery = reqQP.Encode() 741 req.Header.Set("Accept", "application/json") 742 return req, req.MarshalAsJSON(parameters) 743} 744 745// resetSharedKeyHandleError handles the ResetSharedKey error response. 746func (client *VirtualNetworkGatewayConnectionsClient) resetSharedKeyHandleError(resp *azcore.Response) error { 747 body, err := resp.Payload() 748 if err != nil { 749 return azcore.NewResponseError(err, resp.Response) 750 } 751 errType := CloudError{raw: string(body)} 752 if err := resp.UnmarshalAsJSON(&errType); err != nil { 753 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 754 } 755 return azcore.NewResponseError(&errType, resp.Response) 756} 757 758// BeginSetSharedKey - The Put VirtualNetworkGatewayConnectionSharedKey operation sets the virtual network gateway connection shared key for passed virtual 759// network gateway connection in the specified resource group through 760// Network resource provider. 761// If the operation fails it returns the *CloudError error type. 762func (client *VirtualNetworkGatewayConnectionsClient) BeginSetSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters ConnectionSharedKey, options *VirtualNetworkGatewayConnectionsBeginSetSharedKeyOptions) (ConnectionSharedKeyPollerResponse, error) { 763 resp, err := client.setSharedKey(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 764 if err != nil { 765 return ConnectionSharedKeyPollerResponse{}, err 766 } 767 result := ConnectionSharedKeyPollerResponse{ 768 RawResponse: resp.Response, 769 } 770 pt, err := armcore.NewLROPoller("VirtualNetworkGatewayConnectionsClient.SetSharedKey", "azure-async-operation", resp, client.con.Pipeline(), client.setSharedKeyHandleError) 771 if err != nil { 772 return ConnectionSharedKeyPollerResponse{}, err 773 } 774 poller := &connectionSharedKeyPoller{ 775 pt: pt, 776 } 777 result.Poller = poller 778 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (ConnectionSharedKeyResponse, error) { 779 return poller.pollUntilDone(ctx, frequency) 780 } 781 return result, nil 782} 783 784// ResumeSetSharedKey creates a new ConnectionSharedKeyPoller from the specified resume token. 785// token - The value must come from a previous call to ConnectionSharedKeyPoller.ResumeToken(). 786func (client *VirtualNetworkGatewayConnectionsClient) ResumeSetSharedKey(ctx context.Context, token string) (ConnectionSharedKeyPollerResponse, error) { 787 pt, err := armcore.NewLROPollerFromResumeToken("VirtualNetworkGatewayConnectionsClient.SetSharedKey", token, client.con.Pipeline(), client.setSharedKeyHandleError) 788 if err != nil { 789 return ConnectionSharedKeyPollerResponse{}, err 790 } 791 poller := &connectionSharedKeyPoller{ 792 pt: pt, 793 } 794 resp, err := poller.Poll(ctx) 795 if err != nil { 796 return ConnectionSharedKeyPollerResponse{}, err 797 } 798 result := ConnectionSharedKeyPollerResponse{ 799 RawResponse: resp, 800 } 801 result.Poller = poller 802 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (ConnectionSharedKeyResponse, error) { 803 return poller.pollUntilDone(ctx, frequency) 804 } 805 return result, nil 806} 807 808// SetSharedKey - The Put VirtualNetworkGatewayConnectionSharedKey operation sets the virtual network gateway connection shared key for passed virtual network 809// gateway connection in the specified resource group through 810// Network resource provider. 811// If the operation fails it returns the *CloudError error type. 812func (client *VirtualNetworkGatewayConnectionsClient) setSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters ConnectionSharedKey, options *VirtualNetworkGatewayConnectionsBeginSetSharedKeyOptions) (*azcore.Response, error) { 813 req, err := client.setSharedKeyCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 814 if err != nil { 815 return nil, err 816 } 817 resp, err := client.con.Pipeline().Do(req) 818 if err != nil { 819 return nil, err 820 } 821 if !resp.HasStatusCode(http.StatusOK, http.StatusCreated) { 822 return nil, client.setSharedKeyHandleError(resp) 823 } 824 return resp, nil 825} 826 827// setSharedKeyCreateRequest creates the SetSharedKey request. 828func (client *VirtualNetworkGatewayConnectionsClient) setSharedKeyCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters ConnectionSharedKey, options *VirtualNetworkGatewayConnectionsBeginSetSharedKeyOptions) (*azcore.Request, error) { 829 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey" 830 if resourceGroupName == "" { 831 return nil, errors.New("parameter resourceGroupName cannot be empty") 832 } 833 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 834 if virtualNetworkGatewayConnectionName == "" { 835 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 836 } 837 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 838 if client.subscriptionID == "" { 839 return nil, errors.New("parameter client.subscriptionID cannot be empty") 840 } 841 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 842 req, err := azcore.NewRequest(ctx, http.MethodPut, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 843 if err != nil { 844 return nil, err 845 } 846 req.Telemetry(telemetryInfo) 847 reqQP := req.URL.Query() 848 reqQP.Set("api-version", "2021-02-01") 849 req.URL.RawQuery = reqQP.Encode() 850 req.Header.Set("Accept", "application/json") 851 return req, req.MarshalAsJSON(parameters) 852} 853 854// setSharedKeyHandleError handles the SetSharedKey error response. 855func (client *VirtualNetworkGatewayConnectionsClient) setSharedKeyHandleError(resp *azcore.Response) error { 856 body, err := resp.Payload() 857 if err != nil { 858 return azcore.NewResponseError(err, resp.Response) 859 } 860 errType := CloudError{raw: string(body)} 861 if err := resp.UnmarshalAsJSON(&errType); err != nil { 862 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 863 } 864 return azcore.NewResponseError(&errType, resp.Response) 865} 866 867// BeginStartPacketCapture - Starts packet capture on virtual network gateway connection in the specified resource group. 868// If the operation fails it returns the *Error error type. 869func (client *VirtualNetworkGatewayConnectionsClient) BeginStartPacketCapture(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginStartPacketCaptureOptions) (StringPollerResponse, error) { 870 resp, err := client.startPacketCapture(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 871 if err != nil { 872 return StringPollerResponse{}, err 873 } 874 result := StringPollerResponse{ 875 RawResponse: resp.Response, 876 } 877 pt, err := armcore.NewLROPoller("VirtualNetworkGatewayConnectionsClient.StartPacketCapture", "location", resp, client.con.Pipeline(), client.startPacketCaptureHandleError) 878 if err != nil { 879 return StringPollerResponse{}, err 880 } 881 poller := &stringPoller{ 882 pt: pt, 883 } 884 result.Poller = poller 885 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (StringResponse, error) { 886 return poller.pollUntilDone(ctx, frequency) 887 } 888 return result, nil 889} 890 891// ResumeStartPacketCapture creates a new StringPoller from the specified resume token. 892// token - The value must come from a previous call to StringPoller.ResumeToken(). 893func (client *VirtualNetworkGatewayConnectionsClient) ResumeStartPacketCapture(ctx context.Context, token string) (StringPollerResponse, error) { 894 pt, err := armcore.NewLROPollerFromResumeToken("VirtualNetworkGatewayConnectionsClient.StartPacketCapture", token, client.con.Pipeline(), client.startPacketCaptureHandleError) 895 if err != nil { 896 return StringPollerResponse{}, err 897 } 898 poller := &stringPoller{ 899 pt: pt, 900 } 901 resp, err := poller.Poll(ctx) 902 if err != nil { 903 return StringPollerResponse{}, err 904 } 905 result := StringPollerResponse{ 906 RawResponse: resp, 907 } 908 result.Poller = poller 909 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (StringResponse, error) { 910 return poller.pollUntilDone(ctx, frequency) 911 } 912 return result, nil 913} 914 915// StartPacketCapture - Starts packet capture on virtual network gateway connection in the specified resource group. 916// If the operation fails it returns the *Error error type. 917func (client *VirtualNetworkGatewayConnectionsClient) startPacketCapture(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginStartPacketCaptureOptions) (*azcore.Response, error) { 918 req, err := client.startPacketCaptureCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, options) 919 if err != nil { 920 return nil, err 921 } 922 resp, err := client.con.Pipeline().Do(req) 923 if err != nil { 924 return nil, err 925 } 926 if !resp.HasStatusCode(http.StatusOK, http.StatusAccepted) { 927 return nil, client.startPacketCaptureHandleError(resp) 928 } 929 return resp, nil 930} 931 932// startPacketCaptureCreateRequest creates the StartPacketCapture request. 933func (client *VirtualNetworkGatewayConnectionsClient) startPacketCaptureCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, options *VirtualNetworkGatewayConnectionsBeginStartPacketCaptureOptions) (*azcore.Request, error) { 934 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/startPacketCapture" 935 if resourceGroupName == "" { 936 return nil, errors.New("parameter resourceGroupName cannot be empty") 937 } 938 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 939 if virtualNetworkGatewayConnectionName == "" { 940 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 941 } 942 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 943 if client.subscriptionID == "" { 944 return nil, errors.New("parameter client.subscriptionID cannot be empty") 945 } 946 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 947 req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 948 if err != nil { 949 return nil, err 950 } 951 req.Telemetry(telemetryInfo) 952 reqQP := req.URL.Query() 953 reqQP.Set("api-version", "2021-02-01") 954 req.URL.RawQuery = reqQP.Encode() 955 req.Header.Set("Accept", "application/json") 956 if options != nil && options.Parameters != nil { 957 return req, req.MarshalAsJSON(*options.Parameters) 958 } 959 return req, nil 960} 961 962// startPacketCaptureHandleError handles the StartPacketCapture error response. 963func (client *VirtualNetworkGatewayConnectionsClient) startPacketCaptureHandleError(resp *azcore.Response) error { 964 body, err := resp.Payload() 965 if err != nil { 966 return azcore.NewResponseError(err, resp.Response) 967 } 968 errType := Error{raw: string(body)} 969 if err := resp.UnmarshalAsJSON(&errType); err != nil { 970 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 971 } 972 return azcore.NewResponseError(&errType, resp.Response) 973} 974 975// BeginStopPacketCapture - Stops packet capture on virtual network gateway connection in the specified resource group. 976// If the operation fails it returns the *Error error type. 977func (client *VirtualNetworkGatewayConnectionsClient) BeginStopPacketCapture(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters VPNPacketCaptureStopParameters, options *VirtualNetworkGatewayConnectionsBeginStopPacketCaptureOptions) (StringPollerResponse, error) { 978 resp, err := client.stopPacketCapture(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 979 if err != nil { 980 return StringPollerResponse{}, err 981 } 982 result := StringPollerResponse{ 983 RawResponse: resp.Response, 984 } 985 pt, err := armcore.NewLROPoller("VirtualNetworkGatewayConnectionsClient.StopPacketCapture", "location", resp, client.con.Pipeline(), client.stopPacketCaptureHandleError) 986 if err != nil { 987 return StringPollerResponse{}, err 988 } 989 poller := &stringPoller{ 990 pt: pt, 991 } 992 result.Poller = poller 993 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (StringResponse, error) { 994 return poller.pollUntilDone(ctx, frequency) 995 } 996 return result, nil 997} 998 999// ResumeStopPacketCapture creates a new StringPoller from the specified resume token. 1000// token - The value must come from a previous call to StringPoller.ResumeToken(). 1001func (client *VirtualNetworkGatewayConnectionsClient) ResumeStopPacketCapture(ctx context.Context, token string) (StringPollerResponse, error) { 1002 pt, err := armcore.NewLROPollerFromResumeToken("VirtualNetworkGatewayConnectionsClient.StopPacketCapture", token, client.con.Pipeline(), client.stopPacketCaptureHandleError) 1003 if err != nil { 1004 return StringPollerResponse{}, err 1005 } 1006 poller := &stringPoller{ 1007 pt: pt, 1008 } 1009 resp, err := poller.Poll(ctx) 1010 if err != nil { 1011 return StringPollerResponse{}, err 1012 } 1013 result := StringPollerResponse{ 1014 RawResponse: resp, 1015 } 1016 result.Poller = poller 1017 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (StringResponse, error) { 1018 return poller.pollUntilDone(ctx, frequency) 1019 } 1020 return result, nil 1021} 1022 1023// StopPacketCapture - Stops packet capture on virtual network gateway connection in the specified resource group. 1024// If the operation fails it returns the *Error error type. 1025func (client *VirtualNetworkGatewayConnectionsClient) stopPacketCapture(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters VPNPacketCaptureStopParameters, options *VirtualNetworkGatewayConnectionsBeginStopPacketCaptureOptions) (*azcore.Response, error) { 1026 req, err := client.stopPacketCaptureCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 1027 if err != nil { 1028 return nil, err 1029 } 1030 resp, err := client.con.Pipeline().Do(req) 1031 if err != nil { 1032 return nil, err 1033 } 1034 if !resp.HasStatusCode(http.StatusOK, http.StatusAccepted) { 1035 return nil, client.stopPacketCaptureHandleError(resp) 1036 } 1037 return resp, nil 1038} 1039 1040// stopPacketCaptureCreateRequest creates the StopPacketCapture request. 1041func (client *VirtualNetworkGatewayConnectionsClient) stopPacketCaptureCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters VPNPacketCaptureStopParameters, options *VirtualNetworkGatewayConnectionsBeginStopPacketCaptureOptions) (*azcore.Request, error) { 1042 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/stopPacketCapture" 1043 if resourceGroupName == "" { 1044 return nil, errors.New("parameter resourceGroupName cannot be empty") 1045 } 1046 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 1047 if virtualNetworkGatewayConnectionName == "" { 1048 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 1049 } 1050 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 1051 if client.subscriptionID == "" { 1052 return nil, errors.New("parameter client.subscriptionID cannot be empty") 1053 } 1054 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 1055 req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 1056 if err != nil { 1057 return nil, err 1058 } 1059 req.Telemetry(telemetryInfo) 1060 reqQP := req.URL.Query() 1061 reqQP.Set("api-version", "2021-02-01") 1062 req.URL.RawQuery = reqQP.Encode() 1063 req.Header.Set("Accept", "application/json") 1064 return req, req.MarshalAsJSON(parameters) 1065} 1066 1067// stopPacketCaptureHandleError handles the StopPacketCapture error response. 1068func (client *VirtualNetworkGatewayConnectionsClient) stopPacketCaptureHandleError(resp *azcore.Response) error { 1069 body, err := resp.Payload() 1070 if err != nil { 1071 return azcore.NewResponseError(err, resp.Response) 1072 } 1073 errType := Error{raw: string(body)} 1074 if err := resp.UnmarshalAsJSON(&errType); err != nil { 1075 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 1076 } 1077 return azcore.NewResponseError(&errType, resp.Response) 1078} 1079 1080// BeginUpdateTags - Updates a virtual network gateway connection tags. 1081// If the operation fails it returns the *CloudError error type. 1082func (client *VirtualNetworkGatewayConnectionsClient) BeginUpdateTags(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters TagsObject, options *VirtualNetworkGatewayConnectionsBeginUpdateTagsOptions) (VirtualNetworkGatewayConnectionPollerResponse, error) { 1083 resp, err := client.updateTags(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 1084 if err != nil { 1085 return VirtualNetworkGatewayConnectionPollerResponse{}, err 1086 } 1087 result := VirtualNetworkGatewayConnectionPollerResponse{ 1088 RawResponse: resp.Response, 1089 } 1090 pt, err := armcore.NewLROPoller("VirtualNetworkGatewayConnectionsClient.UpdateTags", "azure-async-operation", resp, client.con.Pipeline(), client.updateTagsHandleError) 1091 if err != nil { 1092 return VirtualNetworkGatewayConnectionPollerResponse{}, err 1093 } 1094 poller := &virtualNetworkGatewayConnectionPoller{ 1095 pt: pt, 1096 } 1097 result.Poller = poller 1098 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (VirtualNetworkGatewayConnectionResponse, error) { 1099 return poller.pollUntilDone(ctx, frequency) 1100 } 1101 return result, nil 1102} 1103 1104// ResumeUpdateTags creates a new VirtualNetworkGatewayConnectionPoller from the specified resume token. 1105// token - The value must come from a previous call to VirtualNetworkGatewayConnectionPoller.ResumeToken(). 1106func (client *VirtualNetworkGatewayConnectionsClient) ResumeUpdateTags(ctx context.Context, token string) (VirtualNetworkGatewayConnectionPollerResponse, error) { 1107 pt, err := armcore.NewLROPollerFromResumeToken("VirtualNetworkGatewayConnectionsClient.UpdateTags", token, client.con.Pipeline(), client.updateTagsHandleError) 1108 if err != nil { 1109 return VirtualNetworkGatewayConnectionPollerResponse{}, err 1110 } 1111 poller := &virtualNetworkGatewayConnectionPoller{ 1112 pt: pt, 1113 } 1114 resp, err := poller.Poll(ctx) 1115 if err != nil { 1116 return VirtualNetworkGatewayConnectionPollerResponse{}, err 1117 } 1118 result := VirtualNetworkGatewayConnectionPollerResponse{ 1119 RawResponse: resp, 1120 } 1121 result.Poller = poller 1122 result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (VirtualNetworkGatewayConnectionResponse, error) { 1123 return poller.pollUntilDone(ctx, frequency) 1124 } 1125 return result, nil 1126} 1127 1128// UpdateTags - Updates a virtual network gateway connection tags. 1129// If the operation fails it returns the *CloudError error type. 1130func (client *VirtualNetworkGatewayConnectionsClient) updateTags(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters TagsObject, options *VirtualNetworkGatewayConnectionsBeginUpdateTagsOptions) (*azcore.Response, error) { 1131 req, err := client.updateTagsCreateRequest(ctx, resourceGroupName, virtualNetworkGatewayConnectionName, parameters, options) 1132 if err != nil { 1133 return nil, err 1134 } 1135 resp, err := client.con.Pipeline().Do(req) 1136 if err != nil { 1137 return nil, err 1138 } 1139 if !resp.HasStatusCode(http.StatusOK, http.StatusAccepted) { 1140 return nil, client.updateTagsHandleError(resp) 1141 } 1142 return resp, nil 1143} 1144 1145// updateTagsCreateRequest creates the UpdateTags request. 1146func (client *VirtualNetworkGatewayConnectionsClient) updateTagsCreateRequest(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters TagsObject, options *VirtualNetworkGatewayConnectionsBeginUpdateTagsOptions) (*azcore.Request, error) { 1147 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}" 1148 if resourceGroupName == "" { 1149 return nil, errors.New("parameter resourceGroupName cannot be empty") 1150 } 1151 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 1152 if virtualNetworkGatewayConnectionName == "" { 1153 return nil, errors.New("parameter virtualNetworkGatewayConnectionName cannot be empty") 1154 } 1155 urlPath = strings.ReplaceAll(urlPath, "{virtualNetworkGatewayConnectionName}", url.PathEscape(virtualNetworkGatewayConnectionName)) 1156 if client.subscriptionID == "" { 1157 return nil, errors.New("parameter client.subscriptionID cannot be empty") 1158 } 1159 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 1160 req, err := azcore.NewRequest(ctx, http.MethodPatch, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 1161 if err != nil { 1162 return nil, err 1163 } 1164 req.Telemetry(telemetryInfo) 1165 reqQP := req.URL.Query() 1166 reqQP.Set("api-version", "2021-02-01") 1167 req.URL.RawQuery = reqQP.Encode() 1168 req.Header.Set("Accept", "application/json") 1169 return req, req.MarshalAsJSON(parameters) 1170} 1171 1172// updateTagsHandleError handles the UpdateTags error response. 1173func (client *VirtualNetworkGatewayConnectionsClient) updateTagsHandleError(resp *azcore.Response) error { 1174 body, err := resp.Payload() 1175 if err != nil { 1176 return azcore.NewResponseError(err, resp.Response) 1177 } 1178 errType := CloudError{raw: string(body)} 1179 if err := resp.UnmarshalAsJSON(&errType); err != nil { 1180 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 1181 } 1182 return azcore.NewResponseError(&errType, resp.Response) 1183} 1184