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

     1  //go:build go1.18
     2  // +build go1.18
     3  
     4  // Copyright (c) Microsoft Corporation. All rights reserved.
     5  // Licensed under the MIT License. See License.txt in the project root for license information.
     6  // Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
     7  // Changes may cause incorrect behavior and will be lost if the code is regenerated.
     8  
     9  package fake
    10  
    11  import (
    12  	"context"
    13  	"errors"
    14  	"fmt"
    15  	azfake "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake"
    16  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server"
    17  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime"
    18  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
    19  	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6"
    20  	"net/http"
    21  	"net/url"
    22  	"reflect"
    23  	"regexp"
    24  )
    25  
    26  // VPNGatewaysServer is a fake server for instances of the armnetwork.VPNGatewaysClient type.
    27  type VPNGatewaysServer struct {
    28  	// BeginCreateOrUpdate is the fake for method VPNGatewaysClient.BeginCreateOrUpdate
    29  	// HTTP status codes to indicate success: http.StatusOK, http.StatusCreated
    30  	BeginCreateOrUpdate func(ctx context.Context, resourceGroupName string, gatewayName string, vpnGatewayParameters armnetwork.VPNGateway, options *armnetwork.VPNGatewaysClientBeginCreateOrUpdateOptions) (resp azfake.PollerResponder[armnetwork.VPNGatewaysClientCreateOrUpdateResponse], errResp azfake.ErrorResponder)
    31  
    32  	// BeginDelete is the fake for method VPNGatewaysClient.BeginDelete
    33  	// HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted, http.StatusNoContent
    34  	BeginDelete func(ctx context.Context, resourceGroupName string, gatewayName string, options *armnetwork.VPNGatewaysClientBeginDeleteOptions) (resp azfake.PollerResponder[armnetwork.VPNGatewaysClientDeleteResponse], errResp azfake.ErrorResponder)
    35  
    36  	// Get is the fake for method VPNGatewaysClient.Get
    37  	// HTTP status codes to indicate success: http.StatusOK
    38  	Get func(ctx context.Context, resourceGroupName string, gatewayName string, options *armnetwork.VPNGatewaysClientGetOptions) (resp azfake.Responder[armnetwork.VPNGatewaysClientGetResponse], errResp azfake.ErrorResponder)
    39  
    40  	// NewListPager is the fake for method VPNGatewaysClient.NewListPager
    41  	// HTTP status codes to indicate success: http.StatusOK
    42  	NewListPager func(options *armnetwork.VPNGatewaysClientListOptions) (resp azfake.PagerResponder[armnetwork.VPNGatewaysClientListResponse])
    43  
    44  	// NewListByResourceGroupPager is the fake for method VPNGatewaysClient.NewListByResourceGroupPager
    45  	// HTTP status codes to indicate success: http.StatusOK
    46  	NewListByResourceGroupPager func(resourceGroupName string, options *armnetwork.VPNGatewaysClientListByResourceGroupOptions) (resp azfake.PagerResponder[armnetwork.VPNGatewaysClientListByResourceGroupResponse])
    47  
    48  	// BeginReset is the fake for method VPNGatewaysClient.BeginReset
    49  	// HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted
    50  	BeginReset func(ctx context.Context, resourceGroupName string, gatewayName string, options *armnetwork.VPNGatewaysClientBeginResetOptions) (resp azfake.PollerResponder[armnetwork.VPNGatewaysClientResetResponse], errResp azfake.ErrorResponder)
    51  
    52  	// BeginStartPacketCapture is the fake for method VPNGatewaysClient.BeginStartPacketCapture
    53  	// HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted
    54  	BeginStartPacketCapture func(ctx context.Context, resourceGroupName string, gatewayName string, options *armnetwork.VPNGatewaysClientBeginStartPacketCaptureOptions) (resp azfake.PollerResponder[armnetwork.VPNGatewaysClientStartPacketCaptureResponse], errResp azfake.ErrorResponder)
    55  
    56  	// BeginStopPacketCapture is the fake for method VPNGatewaysClient.BeginStopPacketCapture
    57  	// HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted
    58  	BeginStopPacketCapture func(ctx context.Context, resourceGroupName string, gatewayName string, options *armnetwork.VPNGatewaysClientBeginStopPacketCaptureOptions) (resp azfake.PollerResponder[armnetwork.VPNGatewaysClientStopPacketCaptureResponse], errResp azfake.ErrorResponder)
    59  
    60  	// BeginUpdateTags is the fake for method VPNGatewaysClient.BeginUpdateTags
    61  	// HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted
    62  	BeginUpdateTags func(ctx context.Context, resourceGroupName string, gatewayName string, vpnGatewayParameters armnetwork.TagsObject, options *armnetwork.VPNGatewaysClientBeginUpdateTagsOptions) (resp azfake.PollerResponder[armnetwork.VPNGatewaysClientUpdateTagsResponse], errResp azfake.ErrorResponder)
    63  }
    64  
    65  // NewVPNGatewaysServerTransport creates a new instance of VPNGatewaysServerTransport with the provided implementation.
    66  // The returned VPNGatewaysServerTransport instance is connected to an instance of armnetwork.VPNGatewaysClient via the
    67  // azcore.ClientOptions.Transporter field in the client's constructor parameters.
    68  func NewVPNGatewaysServerTransport(srv *VPNGatewaysServer) *VPNGatewaysServerTransport {
    69  	return &VPNGatewaysServerTransport{
    70  		srv:                         srv,
    71  		beginCreateOrUpdate:         newTracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientCreateOrUpdateResponse]](),
    72  		beginDelete:                 newTracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientDeleteResponse]](),
    73  		newListPager:                newTracker[azfake.PagerResponder[armnetwork.VPNGatewaysClientListResponse]](),
    74  		newListByResourceGroupPager: newTracker[azfake.PagerResponder[armnetwork.VPNGatewaysClientListByResourceGroupResponse]](),
    75  		beginReset:                  newTracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientResetResponse]](),
    76  		beginStartPacketCapture:     newTracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientStartPacketCaptureResponse]](),
    77  		beginStopPacketCapture:      newTracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientStopPacketCaptureResponse]](),
    78  		beginUpdateTags:             newTracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientUpdateTagsResponse]](),
    79  	}
    80  }
    81  
    82  // VPNGatewaysServerTransport connects instances of armnetwork.VPNGatewaysClient to instances of VPNGatewaysServer.
    83  // Don't use this type directly, use NewVPNGatewaysServerTransport instead.
    84  type VPNGatewaysServerTransport struct {
    85  	srv                         *VPNGatewaysServer
    86  	beginCreateOrUpdate         *tracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientCreateOrUpdateResponse]]
    87  	beginDelete                 *tracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientDeleteResponse]]
    88  	newListPager                *tracker[azfake.PagerResponder[armnetwork.VPNGatewaysClientListResponse]]
    89  	newListByResourceGroupPager *tracker[azfake.PagerResponder[armnetwork.VPNGatewaysClientListByResourceGroupResponse]]
    90  	beginReset                  *tracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientResetResponse]]
    91  	beginStartPacketCapture     *tracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientStartPacketCaptureResponse]]
    92  	beginStopPacketCapture      *tracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientStopPacketCaptureResponse]]
    93  	beginUpdateTags             *tracker[azfake.PollerResponder[armnetwork.VPNGatewaysClientUpdateTagsResponse]]
    94  }
    95  
    96  // Do implements the policy.Transporter interface for VPNGatewaysServerTransport.
    97  func (v *VPNGatewaysServerTransport) Do(req *http.Request) (*http.Response, error) {
    98  	rawMethod := req.Context().Value(runtime.CtxAPINameKey{})
    99  	method, ok := rawMethod.(string)
   100  	if !ok {
   101  		return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")}
   102  	}
   103  
   104  	var resp *http.Response
   105  	var err error
   106  
   107  	switch method {
   108  	case "VPNGatewaysClient.BeginCreateOrUpdate":
   109  		resp, err = v.dispatchBeginCreateOrUpdate(req)
   110  	case "VPNGatewaysClient.BeginDelete":
   111  		resp, err = v.dispatchBeginDelete(req)
   112  	case "VPNGatewaysClient.Get":
   113  		resp, err = v.dispatchGet(req)
   114  	case "VPNGatewaysClient.NewListPager":
   115  		resp, err = v.dispatchNewListPager(req)
   116  	case "VPNGatewaysClient.NewListByResourceGroupPager":
   117  		resp, err = v.dispatchNewListByResourceGroupPager(req)
   118  	case "VPNGatewaysClient.BeginReset":
   119  		resp, err = v.dispatchBeginReset(req)
   120  	case "VPNGatewaysClient.BeginStartPacketCapture":
   121  		resp, err = v.dispatchBeginStartPacketCapture(req)
   122  	case "VPNGatewaysClient.BeginStopPacketCapture":
   123  		resp, err = v.dispatchBeginStopPacketCapture(req)
   124  	case "VPNGatewaysClient.BeginUpdateTags":
   125  		resp, err = v.dispatchBeginUpdateTags(req)
   126  	default:
   127  		err = fmt.Errorf("unhandled API %s", method)
   128  	}
   129  
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  
   134  	return resp, nil
   135  }
   136  
   137  func (v *VPNGatewaysServerTransport) dispatchBeginCreateOrUpdate(req *http.Request) (*http.Response, error) {
   138  	if v.srv.BeginCreateOrUpdate == nil {
   139  		return nil, &nonRetriableError{errors.New("fake for method BeginCreateOrUpdate not implemented")}
   140  	}
   141  	beginCreateOrUpdate := v.beginCreateOrUpdate.get(req)
   142  	if beginCreateOrUpdate == nil {
   143  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/vpnGateways/(?P<gatewayName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)`
   144  		regex := regexp.MustCompile(regexStr)
   145  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   146  		if matches == nil || len(matches) < 3 {
   147  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   148  		}
   149  		body, err := server.UnmarshalRequestAsJSON[armnetwork.VPNGateway](req)
   150  		if err != nil {
   151  			return nil, err
   152  		}
   153  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   154  		if err != nil {
   155  			return nil, err
   156  		}
   157  		gatewayNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("gatewayName")])
   158  		if err != nil {
   159  			return nil, err
   160  		}
   161  		respr, errRespr := v.srv.BeginCreateOrUpdate(req.Context(), resourceGroupNameParam, gatewayNameParam, body, nil)
   162  		if respErr := server.GetError(errRespr, req); respErr != nil {
   163  			return nil, respErr
   164  		}
   165  		beginCreateOrUpdate = &respr
   166  		v.beginCreateOrUpdate.add(req, beginCreateOrUpdate)
   167  	}
   168  
   169  	resp, err := server.PollerResponderNext(beginCreateOrUpdate, req)
   170  	if err != nil {
   171  		return nil, err
   172  	}
   173  
   174  	if !contains([]int{http.StatusOK, http.StatusCreated}, resp.StatusCode) {
   175  		v.beginCreateOrUpdate.remove(req)
   176  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusCreated", resp.StatusCode)}
   177  	}
   178  	if !server.PollerResponderMore(beginCreateOrUpdate) {
   179  		v.beginCreateOrUpdate.remove(req)
   180  	}
   181  
   182  	return resp, nil
   183  }
   184  
   185  func (v *VPNGatewaysServerTransport) dispatchBeginDelete(req *http.Request) (*http.Response, error) {
   186  	if v.srv.BeginDelete == nil {
   187  		return nil, &nonRetriableError{errors.New("fake for method BeginDelete not implemented")}
   188  	}
   189  	beginDelete := v.beginDelete.get(req)
   190  	if beginDelete == nil {
   191  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/vpnGateways/(?P<gatewayName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)`
   192  		regex := regexp.MustCompile(regexStr)
   193  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   194  		if matches == nil || len(matches) < 3 {
   195  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   196  		}
   197  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   198  		if err != nil {
   199  			return nil, err
   200  		}
   201  		gatewayNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("gatewayName")])
   202  		if err != nil {
   203  			return nil, err
   204  		}
   205  		respr, errRespr := v.srv.BeginDelete(req.Context(), resourceGroupNameParam, gatewayNameParam, nil)
   206  		if respErr := server.GetError(errRespr, req); respErr != nil {
   207  			return nil, respErr
   208  		}
   209  		beginDelete = &respr
   210  		v.beginDelete.add(req, beginDelete)
   211  	}
   212  
   213  	resp, err := server.PollerResponderNext(beginDelete, req)
   214  	if err != nil {
   215  		return nil, err
   216  	}
   217  
   218  	if !contains([]int{http.StatusOK, http.StatusAccepted, http.StatusNoContent}, resp.StatusCode) {
   219  		v.beginDelete.remove(req)
   220  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted, http.StatusNoContent", resp.StatusCode)}
   221  	}
   222  	if !server.PollerResponderMore(beginDelete) {
   223  		v.beginDelete.remove(req)
   224  	}
   225  
   226  	return resp, nil
   227  }
   228  
   229  func (v *VPNGatewaysServerTransport) dispatchGet(req *http.Request) (*http.Response, error) {
   230  	if v.srv.Get == nil {
   231  		return nil, &nonRetriableError{errors.New("fake for method Get not implemented")}
   232  	}
   233  	const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/vpnGateways/(?P<gatewayName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)`
   234  	regex := regexp.MustCompile(regexStr)
   235  	matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   236  	if matches == nil || len(matches) < 3 {
   237  		return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   238  	}
   239  	resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   240  	if err != nil {
   241  		return nil, err
   242  	}
   243  	gatewayNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("gatewayName")])
   244  	if err != nil {
   245  		return nil, err
   246  	}
   247  	respr, errRespr := v.srv.Get(req.Context(), resourceGroupNameParam, gatewayNameParam, nil)
   248  	if respErr := server.GetError(errRespr, req); respErr != nil {
   249  		return nil, respErr
   250  	}
   251  	respContent := server.GetResponseContent(respr)
   252  	if !contains([]int{http.StatusOK}, respContent.HTTPStatus) {
   253  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)}
   254  	}
   255  	resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).VPNGateway, req)
   256  	if err != nil {
   257  		return nil, err
   258  	}
   259  	return resp, nil
   260  }
   261  
   262  func (v *VPNGatewaysServerTransport) dispatchNewListPager(req *http.Request) (*http.Response, error) {
   263  	if v.srv.NewListPager == nil {
   264  		return nil, &nonRetriableError{errors.New("fake for method NewListPager not implemented")}
   265  	}
   266  	newListPager := v.newListPager.get(req)
   267  	if newListPager == nil {
   268  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/vpnGateways`
   269  		regex := regexp.MustCompile(regexStr)
   270  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   271  		if matches == nil || len(matches) < 1 {
   272  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   273  		}
   274  		resp := v.srv.NewListPager(nil)
   275  		newListPager = &resp
   276  		v.newListPager.add(req, newListPager)
   277  		server.PagerResponderInjectNextLinks(newListPager, req, func(page *armnetwork.VPNGatewaysClientListResponse, createLink func() string) {
   278  			page.NextLink = to.Ptr(createLink())
   279  		})
   280  	}
   281  	resp, err := server.PagerResponderNext(newListPager, req)
   282  	if err != nil {
   283  		return nil, err
   284  	}
   285  	if !contains([]int{http.StatusOK}, resp.StatusCode) {
   286  		v.newListPager.remove(req)
   287  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)}
   288  	}
   289  	if !server.PagerResponderMore(newListPager) {
   290  		v.newListPager.remove(req)
   291  	}
   292  	return resp, nil
   293  }
   294  
   295  func (v *VPNGatewaysServerTransport) dispatchNewListByResourceGroupPager(req *http.Request) (*http.Response, error) {
   296  	if v.srv.NewListByResourceGroupPager == nil {
   297  		return nil, &nonRetriableError{errors.New("fake for method NewListByResourceGroupPager not implemented")}
   298  	}
   299  	newListByResourceGroupPager := v.newListByResourceGroupPager.get(req)
   300  	if newListByResourceGroupPager == nil {
   301  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/vpnGateways`
   302  		regex := regexp.MustCompile(regexStr)
   303  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   304  		if matches == nil || len(matches) < 2 {
   305  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   306  		}
   307  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   308  		if err != nil {
   309  			return nil, err
   310  		}
   311  		resp := v.srv.NewListByResourceGroupPager(resourceGroupNameParam, nil)
   312  		newListByResourceGroupPager = &resp
   313  		v.newListByResourceGroupPager.add(req, newListByResourceGroupPager)
   314  		server.PagerResponderInjectNextLinks(newListByResourceGroupPager, req, func(page *armnetwork.VPNGatewaysClientListByResourceGroupResponse, createLink func() string) {
   315  			page.NextLink = to.Ptr(createLink())
   316  		})
   317  	}
   318  	resp, err := server.PagerResponderNext(newListByResourceGroupPager, req)
   319  	if err != nil {
   320  		return nil, err
   321  	}
   322  	if !contains([]int{http.StatusOK}, resp.StatusCode) {
   323  		v.newListByResourceGroupPager.remove(req)
   324  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)}
   325  	}
   326  	if !server.PagerResponderMore(newListByResourceGroupPager) {
   327  		v.newListByResourceGroupPager.remove(req)
   328  	}
   329  	return resp, nil
   330  }
   331  
   332  func (v *VPNGatewaysServerTransport) dispatchBeginReset(req *http.Request) (*http.Response, error) {
   333  	if v.srv.BeginReset == nil {
   334  		return nil, &nonRetriableError{errors.New("fake for method BeginReset not implemented")}
   335  	}
   336  	beginReset := v.beginReset.get(req)
   337  	if beginReset == nil {
   338  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/vpnGateways/(?P<gatewayName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/reset`
   339  		regex := regexp.MustCompile(regexStr)
   340  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   341  		if matches == nil || len(matches) < 3 {
   342  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   343  		}
   344  		qp := req.URL.Query()
   345  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   346  		if err != nil {
   347  			return nil, err
   348  		}
   349  		gatewayNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("gatewayName")])
   350  		if err != nil {
   351  			return nil, err
   352  		}
   353  		iPConfigurationIDUnescaped, err := url.QueryUnescape(qp.Get("ipConfigurationId"))
   354  		if err != nil {
   355  			return nil, err
   356  		}
   357  		iPConfigurationIDParam := getOptional(iPConfigurationIDUnescaped)
   358  		var options *armnetwork.VPNGatewaysClientBeginResetOptions
   359  		if iPConfigurationIDParam != nil {
   360  			options = &armnetwork.VPNGatewaysClientBeginResetOptions{
   361  				IPConfigurationID: iPConfigurationIDParam,
   362  			}
   363  		}
   364  		respr, errRespr := v.srv.BeginReset(req.Context(), resourceGroupNameParam, gatewayNameParam, options)
   365  		if respErr := server.GetError(errRespr, req); respErr != nil {
   366  			return nil, respErr
   367  		}
   368  		beginReset = &respr
   369  		v.beginReset.add(req, beginReset)
   370  	}
   371  
   372  	resp, err := server.PollerResponderNext(beginReset, req)
   373  	if err != nil {
   374  		return nil, err
   375  	}
   376  
   377  	if !contains([]int{http.StatusOK, http.StatusAccepted}, resp.StatusCode) {
   378  		v.beginReset.remove(req)
   379  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted", resp.StatusCode)}
   380  	}
   381  	if !server.PollerResponderMore(beginReset) {
   382  		v.beginReset.remove(req)
   383  	}
   384  
   385  	return resp, nil
   386  }
   387  
   388  func (v *VPNGatewaysServerTransport) dispatchBeginStartPacketCapture(req *http.Request) (*http.Response, error) {
   389  	if v.srv.BeginStartPacketCapture == nil {
   390  		return nil, &nonRetriableError{errors.New("fake for method BeginStartPacketCapture not implemented")}
   391  	}
   392  	beginStartPacketCapture := v.beginStartPacketCapture.get(req)
   393  	if beginStartPacketCapture == nil {
   394  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/vpnGateways/(?P<gatewayName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/startpacketcapture`
   395  		regex := regexp.MustCompile(regexStr)
   396  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   397  		if matches == nil || len(matches) < 3 {
   398  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   399  		}
   400  		body, err := server.UnmarshalRequestAsJSON[armnetwork.VPNGatewayPacketCaptureStartParameters](req)
   401  		if err != nil {
   402  			return nil, err
   403  		}
   404  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   405  		if err != nil {
   406  			return nil, err
   407  		}
   408  		gatewayNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("gatewayName")])
   409  		if err != nil {
   410  			return nil, err
   411  		}
   412  		var options *armnetwork.VPNGatewaysClientBeginStartPacketCaptureOptions
   413  		if !reflect.ValueOf(body).IsZero() {
   414  			options = &armnetwork.VPNGatewaysClientBeginStartPacketCaptureOptions{
   415  				Parameters: &body,
   416  			}
   417  		}
   418  		respr, errRespr := v.srv.BeginStartPacketCapture(req.Context(), resourceGroupNameParam, gatewayNameParam, options)
   419  		if respErr := server.GetError(errRespr, req); respErr != nil {
   420  			return nil, respErr
   421  		}
   422  		beginStartPacketCapture = &respr
   423  		v.beginStartPacketCapture.add(req, beginStartPacketCapture)
   424  	}
   425  
   426  	resp, err := server.PollerResponderNext(beginStartPacketCapture, req)
   427  	if err != nil {
   428  		return nil, err
   429  	}
   430  
   431  	if !contains([]int{http.StatusOK, http.StatusAccepted}, resp.StatusCode) {
   432  		v.beginStartPacketCapture.remove(req)
   433  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted", resp.StatusCode)}
   434  	}
   435  	if !server.PollerResponderMore(beginStartPacketCapture) {
   436  		v.beginStartPacketCapture.remove(req)
   437  	}
   438  
   439  	return resp, nil
   440  }
   441  
   442  func (v *VPNGatewaysServerTransport) dispatchBeginStopPacketCapture(req *http.Request) (*http.Response, error) {
   443  	if v.srv.BeginStopPacketCapture == nil {
   444  		return nil, &nonRetriableError{errors.New("fake for method BeginStopPacketCapture not implemented")}
   445  	}
   446  	beginStopPacketCapture := v.beginStopPacketCapture.get(req)
   447  	if beginStopPacketCapture == nil {
   448  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/vpnGateways/(?P<gatewayName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/stoppacketcapture`
   449  		regex := regexp.MustCompile(regexStr)
   450  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   451  		if matches == nil || len(matches) < 3 {
   452  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   453  		}
   454  		body, err := server.UnmarshalRequestAsJSON[armnetwork.VPNGatewayPacketCaptureStopParameters](req)
   455  		if err != nil {
   456  			return nil, err
   457  		}
   458  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   459  		if err != nil {
   460  			return nil, err
   461  		}
   462  		gatewayNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("gatewayName")])
   463  		if err != nil {
   464  			return nil, err
   465  		}
   466  		var options *armnetwork.VPNGatewaysClientBeginStopPacketCaptureOptions
   467  		if !reflect.ValueOf(body).IsZero() {
   468  			options = &armnetwork.VPNGatewaysClientBeginStopPacketCaptureOptions{
   469  				Parameters: &body,
   470  			}
   471  		}
   472  		respr, errRespr := v.srv.BeginStopPacketCapture(req.Context(), resourceGroupNameParam, gatewayNameParam, options)
   473  		if respErr := server.GetError(errRespr, req); respErr != nil {
   474  			return nil, respErr
   475  		}
   476  		beginStopPacketCapture = &respr
   477  		v.beginStopPacketCapture.add(req, beginStopPacketCapture)
   478  	}
   479  
   480  	resp, err := server.PollerResponderNext(beginStopPacketCapture, req)
   481  	if err != nil {
   482  		return nil, err
   483  	}
   484  
   485  	if !contains([]int{http.StatusOK, http.StatusAccepted}, resp.StatusCode) {
   486  		v.beginStopPacketCapture.remove(req)
   487  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted", resp.StatusCode)}
   488  	}
   489  	if !server.PollerResponderMore(beginStopPacketCapture) {
   490  		v.beginStopPacketCapture.remove(req)
   491  	}
   492  
   493  	return resp, nil
   494  }
   495  
   496  func (v *VPNGatewaysServerTransport) dispatchBeginUpdateTags(req *http.Request) (*http.Response, error) {
   497  	if v.srv.BeginUpdateTags == nil {
   498  		return nil, &nonRetriableError{errors.New("fake for method BeginUpdateTags not implemented")}
   499  	}
   500  	beginUpdateTags := v.beginUpdateTags.get(req)
   501  	if beginUpdateTags == nil {
   502  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/vpnGateways/(?P<gatewayName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)`
   503  		regex := regexp.MustCompile(regexStr)
   504  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   505  		if matches == nil || len(matches) < 3 {
   506  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   507  		}
   508  		body, err := server.UnmarshalRequestAsJSON[armnetwork.TagsObject](req)
   509  		if err != nil {
   510  			return nil, err
   511  		}
   512  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   513  		if err != nil {
   514  			return nil, err
   515  		}
   516  		gatewayNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("gatewayName")])
   517  		if err != nil {
   518  			return nil, err
   519  		}
   520  		respr, errRespr := v.srv.BeginUpdateTags(req.Context(), resourceGroupNameParam, gatewayNameParam, body, nil)
   521  		if respErr := server.GetError(errRespr, req); respErr != nil {
   522  			return nil, respErr
   523  		}
   524  		beginUpdateTags = &respr
   525  		v.beginUpdateTags.add(req, beginUpdateTags)
   526  	}
   527  
   528  	resp, err := server.PollerResponderNext(beginUpdateTags, req)
   529  	if err != nil {
   530  		return nil, err
   531  	}
   532  
   533  	if !contains([]int{http.StatusOK, http.StatusAccepted}, resp.StatusCode) {
   534  		v.beginUpdateTags.remove(req)
   535  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted", resp.StatusCode)}
   536  	}
   537  	if !server.PollerResponderMore(beginUpdateTags) {
   538  		v.beginUpdateTags.remove(req)
   539  	}
   540  
   541  	return resp, nil
   542  }