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 }