github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/fake/ipampools_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 "strconv" 25 ) 26 27 // IpamPoolsServer is a fake server for instances of the armnetwork.IpamPoolsClient type. 28 type IpamPoolsServer struct { 29 // BeginCreate is the fake for method IpamPoolsClient.BeginCreate 30 // HTTP status codes to indicate success: http.StatusOK, http.StatusCreated 31 BeginCreate func(ctx context.Context, resourceGroupName string, networkManagerName string, poolName string, body armnetwork.IpamPool, options *armnetwork.IpamPoolsClientBeginCreateOptions) (resp azfake.PollerResponder[armnetwork.IpamPoolsClientCreateResponse], errResp azfake.ErrorResponder) 32 33 // BeginDelete is the fake for method IpamPoolsClient.BeginDelete 34 // HTTP status codes to indicate success: http.StatusAccepted, http.StatusNoContent 35 BeginDelete func(ctx context.Context, resourceGroupName string, networkManagerName string, poolName string, options *armnetwork.IpamPoolsClientBeginDeleteOptions) (resp azfake.PollerResponder[armnetwork.IpamPoolsClientDeleteResponse], errResp azfake.ErrorResponder) 36 37 // Get is the fake for method IpamPoolsClient.Get 38 // HTTP status codes to indicate success: http.StatusOK 39 Get func(ctx context.Context, resourceGroupName string, networkManagerName string, poolName string, options *armnetwork.IpamPoolsClientGetOptions) (resp azfake.Responder[armnetwork.IpamPoolsClientGetResponse], errResp azfake.ErrorResponder) 40 41 // GetPoolUsage is the fake for method IpamPoolsClient.GetPoolUsage 42 // HTTP status codes to indicate success: http.StatusOK 43 GetPoolUsage func(ctx context.Context, resourceGroupName string, networkManagerName string, poolName string, options *armnetwork.IpamPoolsClientGetPoolUsageOptions) (resp azfake.Responder[armnetwork.IpamPoolsClientGetPoolUsageResponse], errResp azfake.ErrorResponder) 44 45 // NewListPager is the fake for method IpamPoolsClient.NewListPager 46 // HTTP status codes to indicate success: http.StatusOK 47 NewListPager func(resourceGroupName string, networkManagerName string, options *armnetwork.IpamPoolsClientListOptions) (resp azfake.PagerResponder[armnetwork.IpamPoolsClientListResponse]) 48 49 // NewListAssociatedResourcesPager is the fake for method IpamPoolsClient.NewListAssociatedResourcesPager 50 // HTTP status codes to indicate success: http.StatusOK 51 NewListAssociatedResourcesPager func(resourceGroupName string, networkManagerName string, poolName string, options *armnetwork.IpamPoolsClientListAssociatedResourcesOptions) (resp azfake.PagerResponder[armnetwork.IpamPoolsClientListAssociatedResourcesResponse]) 52 53 // Update is the fake for method IpamPoolsClient.Update 54 // HTTP status codes to indicate success: http.StatusOK 55 Update func(ctx context.Context, resourceGroupName string, networkManagerName string, poolName string, options *armnetwork.IpamPoolsClientUpdateOptions) (resp azfake.Responder[armnetwork.IpamPoolsClientUpdateResponse], errResp azfake.ErrorResponder) 56 } 57 58 // NewIpamPoolsServerTransport creates a new instance of IpamPoolsServerTransport with the provided implementation. 59 // The returned IpamPoolsServerTransport instance is connected to an instance of armnetwork.IpamPoolsClient via the 60 // azcore.ClientOptions.Transporter field in the client's constructor parameters. 61 func NewIpamPoolsServerTransport(srv *IpamPoolsServer) *IpamPoolsServerTransport { 62 return &IpamPoolsServerTransport{ 63 srv: srv, 64 beginCreate: newTracker[azfake.PollerResponder[armnetwork.IpamPoolsClientCreateResponse]](), 65 beginDelete: newTracker[azfake.PollerResponder[armnetwork.IpamPoolsClientDeleteResponse]](), 66 newListPager: newTracker[azfake.PagerResponder[armnetwork.IpamPoolsClientListResponse]](), 67 newListAssociatedResourcesPager: newTracker[azfake.PagerResponder[armnetwork.IpamPoolsClientListAssociatedResourcesResponse]](), 68 } 69 } 70 71 // IpamPoolsServerTransport connects instances of armnetwork.IpamPoolsClient to instances of IpamPoolsServer. 72 // Don't use this type directly, use NewIpamPoolsServerTransport instead. 73 type IpamPoolsServerTransport struct { 74 srv *IpamPoolsServer 75 beginCreate *tracker[azfake.PollerResponder[armnetwork.IpamPoolsClientCreateResponse]] 76 beginDelete *tracker[azfake.PollerResponder[armnetwork.IpamPoolsClientDeleteResponse]] 77 newListPager *tracker[azfake.PagerResponder[armnetwork.IpamPoolsClientListResponse]] 78 newListAssociatedResourcesPager *tracker[azfake.PagerResponder[armnetwork.IpamPoolsClientListAssociatedResourcesResponse]] 79 } 80 81 // Do implements the policy.Transporter interface for IpamPoolsServerTransport. 82 func (i *IpamPoolsServerTransport) Do(req *http.Request) (*http.Response, error) { 83 rawMethod := req.Context().Value(runtime.CtxAPINameKey{}) 84 method, ok := rawMethod.(string) 85 if !ok { 86 return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")} 87 } 88 89 var resp *http.Response 90 var err error 91 92 switch method { 93 case "IpamPoolsClient.BeginCreate": 94 resp, err = i.dispatchBeginCreate(req) 95 case "IpamPoolsClient.BeginDelete": 96 resp, err = i.dispatchBeginDelete(req) 97 case "IpamPoolsClient.Get": 98 resp, err = i.dispatchGet(req) 99 case "IpamPoolsClient.GetPoolUsage": 100 resp, err = i.dispatchGetPoolUsage(req) 101 case "IpamPoolsClient.NewListPager": 102 resp, err = i.dispatchNewListPager(req) 103 case "IpamPoolsClient.NewListAssociatedResourcesPager": 104 resp, err = i.dispatchNewListAssociatedResourcesPager(req) 105 case "IpamPoolsClient.Update": 106 resp, err = i.dispatchUpdate(req) 107 default: 108 err = fmt.Errorf("unhandled API %s", method) 109 } 110 111 if err != nil { 112 return nil, err 113 } 114 115 return resp, nil 116 } 117 118 func (i *IpamPoolsServerTransport) dispatchBeginCreate(req *http.Request) (*http.Response, error) { 119 if i.srv.BeginCreate == nil { 120 return nil, &nonRetriableError{errors.New("fake for method BeginCreate not implemented")} 121 } 122 beginCreate := i.beginCreate.get(req) 123 if beginCreate == nil { 124 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/ipamPools/(?P<poolName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 125 regex := regexp.MustCompile(regexStr) 126 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 127 if matches == nil || len(matches) < 4 { 128 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 129 } 130 body, err := server.UnmarshalRequestAsJSON[armnetwork.IpamPool](req) 131 if err != nil { 132 return nil, err 133 } 134 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 135 if err != nil { 136 return nil, err 137 } 138 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 139 if err != nil { 140 return nil, err 141 } 142 poolNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("poolName")]) 143 if err != nil { 144 return nil, err 145 } 146 respr, errRespr := i.srv.BeginCreate(req.Context(), resourceGroupNameParam, networkManagerNameParam, poolNameParam, body, nil) 147 if respErr := server.GetError(errRespr, req); respErr != nil { 148 return nil, respErr 149 } 150 beginCreate = &respr 151 i.beginCreate.add(req, beginCreate) 152 } 153 154 resp, err := server.PollerResponderNext(beginCreate, req) 155 if err != nil { 156 return nil, err 157 } 158 159 if !contains([]int{http.StatusOK, http.StatusCreated}, resp.StatusCode) { 160 i.beginCreate.remove(req) 161 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusCreated", resp.StatusCode)} 162 } 163 if !server.PollerResponderMore(beginCreate) { 164 i.beginCreate.remove(req) 165 } 166 167 return resp, nil 168 } 169 170 func (i *IpamPoolsServerTransport) dispatchBeginDelete(req *http.Request) (*http.Response, error) { 171 if i.srv.BeginDelete == nil { 172 return nil, &nonRetriableError{errors.New("fake for method BeginDelete not implemented")} 173 } 174 beginDelete := i.beginDelete.get(req) 175 if beginDelete == nil { 176 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/ipamPools/(?P<poolName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 177 regex := regexp.MustCompile(regexStr) 178 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 179 if matches == nil || len(matches) < 4 { 180 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 181 } 182 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 183 if err != nil { 184 return nil, err 185 } 186 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 187 if err != nil { 188 return nil, err 189 } 190 poolNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("poolName")]) 191 if err != nil { 192 return nil, err 193 } 194 respr, errRespr := i.srv.BeginDelete(req.Context(), resourceGroupNameParam, networkManagerNameParam, poolNameParam, nil) 195 if respErr := server.GetError(errRespr, req); respErr != nil { 196 return nil, respErr 197 } 198 beginDelete = &respr 199 i.beginDelete.add(req, beginDelete) 200 } 201 202 resp, err := server.PollerResponderNext(beginDelete, req) 203 if err != nil { 204 return nil, err 205 } 206 207 if !contains([]int{http.StatusAccepted, http.StatusNoContent}, resp.StatusCode) { 208 i.beginDelete.remove(req) 209 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusAccepted, http.StatusNoContent", resp.StatusCode)} 210 } 211 if !server.PollerResponderMore(beginDelete) { 212 i.beginDelete.remove(req) 213 } 214 215 return resp, nil 216 } 217 218 func (i *IpamPoolsServerTransport) dispatchGet(req *http.Request) (*http.Response, error) { 219 if i.srv.Get == nil { 220 return nil, &nonRetriableError{errors.New("fake for method Get not implemented")} 221 } 222 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/ipamPools/(?P<poolName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 223 regex := regexp.MustCompile(regexStr) 224 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 225 if matches == nil || len(matches) < 4 { 226 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 227 } 228 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 229 if err != nil { 230 return nil, err 231 } 232 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 233 if err != nil { 234 return nil, err 235 } 236 poolNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("poolName")]) 237 if err != nil { 238 return nil, err 239 } 240 respr, errRespr := i.srv.Get(req.Context(), resourceGroupNameParam, networkManagerNameParam, poolNameParam, nil) 241 if respErr := server.GetError(errRespr, req); respErr != nil { 242 return nil, respErr 243 } 244 respContent := server.GetResponseContent(respr) 245 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 246 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 247 } 248 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).IpamPool, req) 249 if err != nil { 250 return nil, err 251 } 252 return resp, nil 253 } 254 255 func (i *IpamPoolsServerTransport) dispatchGetPoolUsage(req *http.Request) (*http.Response, error) { 256 if i.srv.GetPoolUsage == nil { 257 return nil, &nonRetriableError{errors.New("fake for method GetPoolUsage not implemented")} 258 } 259 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/ipamPools/(?P<poolName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/getPoolUsage` 260 regex := regexp.MustCompile(regexStr) 261 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 262 if matches == nil || len(matches) < 4 { 263 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 264 } 265 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 266 if err != nil { 267 return nil, err 268 } 269 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 270 if err != nil { 271 return nil, err 272 } 273 poolNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("poolName")]) 274 if err != nil { 275 return nil, err 276 } 277 respr, errRespr := i.srv.GetPoolUsage(req.Context(), resourceGroupNameParam, networkManagerNameParam, poolNameParam, nil) 278 if respErr := server.GetError(errRespr, req); respErr != nil { 279 return nil, respErr 280 } 281 respContent := server.GetResponseContent(respr) 282 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 283 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 284 } 285 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).PoolUsage, req) 286 if err != nil { 287 return nil, err 288 } 289 return resp, nil 290 } 291 292 func (i *IpamPoolsServerTransport) dispatchNewListPager(req *http.Request) (*http.Response, error) { 293 if i.srv.NewListPager == nil { 294 return nil, &nonRetriableError{errors.New("fake for method NewListPager not implemented")} 295 } 296 newListPager := i.newListPager.get(req) 297 if newListPager == nil { 298 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/ipamPools` 299 regex := regexp.MustCompile(regexStr) 300 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 301 if matches == nil || len(matches) < 3 { 302 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 303 } 304 qp := req.URL.Query() 305 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 306 if err != nil { 307 return nil, err 308 } 309 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 310 if err != nil { 311 return nil, err 312 } 313 skipTokenUnescaped, err := url.QueryUnescape(qp.Get("skipToken")) 314 if err != nil { 315 return nil, err 316 } 317 skipTokenParam := getOptional(skipTokenUnescaped) 318 skipUnescaped, err := url.QueryUnescape(qp.Get("skip")) 319 if err != nil { 320 return nil, err 321 } 322 skipParam, err := parseOptional(skipUnescaped, func(v string) (int32, error) { 323 p, parseErr := strconv.ParseInt(v, 10, 32) 324 if parseErr != nil { 325 return 0, parseErr 326 } 327 return int32(p), nil 328 }) 329 if err != nil { 330 return nil, err 331 } 332 topUnescaped, err := url.QueryUnescape(qp.Get("top")) 333 if err != nil { 334 return nil, err 335 } 336 topParam, err := parseOptional(topUnescaped, func(v string) (int32, error) { 337 p, parseErr := strconv.ParseInt(v, 10, 32) 338 if parseErr != nil { 339 return 0, parseErr 340 } 341 return int32(p), nil 342 }) 343 if err != nil { 344 return nil, err 345 } 346 sortKeyUnescaped, err := url.QueryUnescape(qp.Get("sortKey")) 347 if err != nil { 348 return nil, err 349 } 350 sortKeyParam := getOptional(sortKeyUnescaped) 351 sortValueUnescaped, err := url.QueryUnescape(qp.Get("sortValue")) 352 if err != nil { 353 return nil, err 354 } 355 sortValueParam := getOptional(sortValueUnescaped) 356 var options *armnetwork.IpamPoolsClientListOptions 357 if skipTokenParam != nil || skipParam != nil || topParam != nil || sortKeyParam != nil || sortValueParam != nil { 358 options = &armnetwork.IpamPoolsClientListOptions{ 359 SkipToken: skipTokenParam, 360 Skip: skipParam, 361 Top: topParam, 362 SortKey: sortKeyParam, 363 SortValue: sortValueParam, 364 } 365 } 366 resp := i.srv.NewListPager(resourceGroupNameParam, networkManagerNameParam, options) 367 newListPager = &resp 368 i.newListPager.add(req, newListPager) 369 server.PagerResponderInjectNextLinks(newListPager, req, func(page *armnetwork.IpamPoolsClientListResponse, createLink func() string) { 370 page.NextLink = to.Ptr(createLink()) 371 }) 372 } 373 resp, err := server.PagerResponderNext(newListPager, req) 374 if err != nil { 375 return nil, err 376 } 377 if !contains([]int{http.StatusOK}, resp.StatusCode) { 378 i.newListPager.remove(req) 379 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 380 } 381 if !server.PagerResponderMore(newListPager) { 382 i.newListPager.remove(req) 383 } 384 return resp, nil 385 } 386 387 func (i *IpamPoolsServerTransport) dispatchNewListAssociatedResourcesPager(req *http.Request) (*http.Response, error) { 388 if i.srv.NewListAssociatedResourcesPager == nil { 389 return nil, &nonRetriableError{errors.New("fake for method NewListAssociatedResourcesPager not implemented")} 390 } 391 newListAssociatedResourcesPager := i.newListAssociatedResourcesPager.get(req) 392 if newListAssociatedResourcesPager == nil { 393 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/ipamPools/(?P<poolName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/listAssociatedResources` 394 regex := regexp.MustCompile(regexStr) 395 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 396 if matches == nil || len(matches) < 4 { 397 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 398 } 399 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 400 if err != nil { 401 return nil, err 402 } 403 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 404 if err != nil { 405 return nil, err 406 } 407 poolNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("poolName")]) 408 if err != nil { 409 return nil, err 410 } 411 resp := i.srv.NewListAssociatedResourcesPager(resourceGroupNameParam, networkManagerNameParam, poolNameParam, nil) 412 newListAssociatedResourcesPager = &resp 413 i.newListAssociatedResourcesPager.add(req, newListAssociatedResourcesPager) 414 server.PagerResponderInjectNextLinks(newListAssociatedResourcesPager, req, func(page *armnetwork.IpamPoolsClientListAssociatedResourcesResponse, createLink func() string) { 415 page.NextLink = to.Ptr(createLink()) 416 }) 417 } 418 resp, err := server.PagerResponderNext(newListAssociatedResourcesPager, req) 419 if err != nil { 420 return nil, err 421 } 422 if !contains([]int{http.StatusOK}, resp.StatusCode) { 423 i.newListAssociatedResourcesPager.remove(req) 424 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 425 } 426 if !server.PagerResponderMore(newListAssociatedResourcesPager) { 427 i.newListAssociatedResourcesPager.remove(req) 428 } 429 return resp, nil 430 } 431 432 func (i *IpamPoolsServerTransport) dispatchUpdate(req *http.Request) (*http.Response, error) { 433 if i.srv.Update == nil { 434 return nil, &nonRetriableError{errors.New("fake for method Update not implemented")} 435 } 436 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/ipamPools/(?P<poolName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 437 regex := regexp.MustCompile(regexStr) 438 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 439 if matches == nil || len(matches) < 4 { 440 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 441 } 442 body, err := server.UnmarshalRequestAsJSON[armnetwork.IpamPoolUpdate](req) 443 if err != nil { 444 return nil, err 445 } 446 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 447 if err != nil { 448 return nil, err 449 } 450 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 451 if err != nil { 452 return nil, err 453 } 454 poolNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("poolName")]) 455 if err != nil { 456 return nil, err 457 } 458 var options *armnetwork.IpamPoolsClientUpdateOptions 459 if !reflect.ValueOf(body).IsZero() { 460 options = &armnetwork.IpamPoolsClientUpdateOptions{ 461 Body: &body, 462 } 463 } 464 respr, errRespr := i.srv.Update(req.Context(), resourceGroupNameParam, networkManagerNameParam, poolNameParam, options) 465 if respErr := server.GetError(errRespr, req); respErr != nil { 466 return nil, respErr 467 } 468 respContent := server.GetResponseContent(respr) 469 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 470 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 471 } 472 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).IpamPool, req) 473 if err != nil { 474 return nil, err 475 } 476 return resp, nil 477 }