github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/fake/subnets_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 "regexp" 23 ) 24 25 // SubnetsServer is a fake server for instances of the armnetwork.SubnetsClient type. 26 type SubnetsServer struct { 27 // BeginCreateOrUpdate is the fake for method SubnetsClient.BeginCreateOrUpdate 28 // HTTP status codes to indicate success: http.StatusOK, http.StatusCreated 29 BeginCreateOrUpdate func(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, subnetParameters armnetwork.Subnet, options *armnetwork.SubnetsClientBeginCreateOrUpdateOptions) (resp azfake.PollerResponder[armnetwork.SubnetsClientCreateOrUpdateResponse], errResp azfake.ErrorResponder) 30 31 // BeginDelete is the fake for method SubnetsClient.BeginDelete 32 // HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted, http.StatusNoContent 33 BeginDelete func(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, options *armnetwork.SubnetsClientBeginDeleteOptions) (resp azfake.PollerResponder[armnetwork.SubnetsClientDeleteResponse], errResp azfake.ErrorResponder) 34 35 // Get is the fake for method SubnetsClient.Get 36 // HTTP status codes to indicate success: http.StatusOK 37 Get func(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, options *armnetwork.SubnetsClientGetOptions) (resp azfake.Responder[armnetwork.SubnetsClientGetResponse], errResp azfake.ErrorResponder) 38 39 // NewListPager is the fake for method SubnetsClient.NewListPager 40 // HTTP status codes to indicate success: http.StatusOK 41 NewListPager func(resourceGroupName string, virtualNetworkName string, options *armnetwork.SubnetsClientListOptions) (resp azfake.PagerResponder[armnetwork.SubnetsClientListResponse]) 42 43 // BeginPrepareNetworkPolicies is the fake for method SubnetsClient.BeginPrepareNetworkPolicies 44 // HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted 45 BeginPrepareNetworkPolicies func(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, prepareNetworkPoliciesRequestParameters armnetwork.PrepareNetworkPoliciesRequest, options *armnetwork.SubnetsClientBeginPrepareNetworkPoliciesOptions) (resp azfake.PollerResponder[armnetwork.SubnetsClientPrepareNetworkPoliciesResponse], errResp azfake.ErrorResponder) 46 47 // BeginUnprepareNetworkPolicies is the fake for method SubnetsClient.BeginUnprepareNetworkPolicies 48 // HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted 49 BeginUnprepareNetworkPolicies func(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, unprepareNetworkPoliciesRequestParameters armnetwork.UnprepareNetworkPoliciesRequest, options *armnetwork.SubnetsClientBeginUnprepareNetworkPoliciesOptions) (resp azfake.PollerResponder[armnetwork.SubnetsClientUnprepareNetworkPoliciesResponse], errResp azfake.ErrorResponder) 50 } 51 52 // NewSubnetsServerTransport creates a new instance of SubnetsServerTransport with the provided implementation. 53 // The returned SubnetsServerTransport instance is connected to an instance of armnetwork.SubnetsClient via the 54 // azcore.ClientOptions.Transporter field in the client's constructor parameters. 55 func NewSubnetsServerTransport(srv *SubnetsServer) *SubnetsServerTransport { 56 return &SubnetsServerTransport{ 57 srv: srv, 58 beginCreateOrUpdate: newTracker[azfake.PollerResponder[armnetwork.SubnetsClientCreateOrUpdateResponse]](), 59 beginDelete: newTracker[azfake.PollerResponder[armnetwork.SubnetsClientDeleteResponse]](), 60 newListPager: newTracker[azfake.PagerResponder[armnetwork.SubnetsClientListResponse]](), 61 beginPrepareNetworkPolicies: newTracker[azfake.PollerResponder[armnetwork.SubnetsClientPrepareNetworkPoliciesResponse]](), 62 beginUnprepareNetworkPolicies: newTracker[azfake.PollerResponder[armnetwork.SubnetsClientUnprepareNetworkPoliciesResponse]](), 63 } 64 } 65 66 // SubnetsServerTransport connects instances of armnetwork.SubnetsClient to instances of SubnetsServer. 67 // Don't use this type directly, use NewSubnetsServerTransport instead. 68 type SubnetsServerTransport struct { 69 srv *SubnetsServer 70 beginCreateOrUpdate *tracker[azfake.PollerResponder[armnetwork.SubnetsClientCreateOrUpdateResponse]] 71 beginDelete *tracker[azfake.PollerResponder[armnetwork.SubnetsClientDeleteResponse]] 72 newListPager *tracker[azfake.PagerResponder[armnetwork.SubnetsClientListResponse]] 73 beginPrepareNetworkPolicies *tracker[azfake.PollerResponder[armnetwork.SubnetsClientPrepareNetworkPoliciesResponse]] 74 beginUnprepareNetworkPolicies *tracker[azfake.PollerResponder[armnetwork.SubnetsClientUnprepareNetworkPoliciesResponse]] 75 } 76 77 // Do implements the policy.Transporter interface for SubnetsServerTransport. 78 func (s *SubnetsServerTransport) Do(req *http.Request) (*http.Response, error) { 79 rawMethod := req.Context().Value(runtime.CtxAPINameKey{}) 80 method, ok := rawMethod.(string) 81 if !ok { 82 return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")} 83 } 84 85 var resp *http.Response 86 var err error 87 88 switch method { 89 case "SubnetsClient.BeginCreateOrUpdate": 90 resp, err = s.dispatchBeginCreateOrUpdate(req) 91 case "SubnetsClient.BeginDelete": 92 resp, err = s.dispatchBeginDelete(req) 93 case "SubnetsClient.Get": 94 resp, err = s.dispatchGet(req) 95 case "SubnetsClient.NewListPager": 96 resp, err = s.dispatchNewListPager(req) 97 case "SubnetsClient.BeginPrepareNetworkPolicies": 98 resp, err = s.dispatchBeginPrepareNetworkPolicies(req) 99 case "SubnetsClient.BeginUnprepareNetworkPolicies": 100 resp, err = s.dispatchBeginUnprepareNetworkPolicies(req) 101 default: 102 err = fmt.Errorf("unhandled API %s", method) 103 } 104 105 if err != nil { 106 return nil, err 107 } 108 109 return resp, nil 110 } 111 112 func (s *SubnetsServerTransport) dispatchBeginCreateOrUpdate(req *http.Request) (*http.Response, error) { 113 if s.srv.BeginCreateOrUpdate == nil { 114 return nil, &nonRetriableError{errors.New("fake for method BeginCreateOrUpdate not implemented")} 115 } 116 beginCreateOrUpdate := s.beginCreateOrUpdate.get(req) 117 if beginCreateOrUpdate == nil { 118 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualNetworks/(?P<virtualNetworkName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/subnets/(?P<subnetName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 119 regex := regexp.MustCompile(regexStr) 120 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 121 if matches == nil || len(matches) < 4 { 122 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 123 } 124 body, err := server.UnmarshalRequestAsJSON[armnetwork.Subnet](req) 125 if err != nil { 126 return nil, err 127 } 128 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 129 if err != nil { 130 return nil, err 131 } 132 virtualNetworkNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("virtualNetworkName")]) 133 if err != nil { 134 return nil, err 135 } 136 subnetNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("subnetName")]) 137 if err != nil { 138 return nil, err 139 } 140 respr, errRespr := s.srv.BeginCreateOrUpdate(req.Context(), resourceGroupNameParam, virtualNetworkNameParam, subnetNameParam, body, nil) 141 if respErr := server.GetError(errRespr, req); respErr != nil { 142 return nil, respErr 143 } 144 beginCreateOrUpdate = &respr 145 s.beginCreateOrUpdate.add(req, beginCreateOrUpdate) 146 } 147 148 resp, err := server.PollerResponderNext(beginCreateOrUpdate, req) 149 if err != nil { 150 return nil, err 151 } 152 153 if !contains([]int{http.StatusOK, http.StatusCreated}, resp.StatusCode) { 154 s.beginCreateOrUpdate.remove(req) 155 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusCreated", resp.StatusCode)} 156 } 157 if !server.PollerResponderMore(beginCreateOrUpdate) { 158 s.beginCreateOrUpdate.remove(req) 159 } 160 161 return resp, nil 162 } 163 164 func (s *SubnetsServerTransport) dispatchBeginDelete(req *http.Request) (*http.Response, error) { 165 if s.srv.BeginDelete == nil { 166 return nil, &nonRetriableError{errors.New("fake for method BeginDelete not implemented")} 167 } 168 beginDelete := s.beginDelete.get(req) 169 if beginDelete == nil { 170 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualNetworks/(?P<virtualNetworkName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/subnets/(?P<subnetName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 171 regex := regexp.MustCompile(regexStr) 172 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 173 if matches == nil || len(matches) < 4 { 174 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 175 } 176 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 177 if err != nil { 178 return nil, err 179 } 180 virtualNetworkNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("virtualNetworkName")]) 181 if err != nil { 182 return nil, err 183 } 184 subnetNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("subnetName")]) 185 if err != nil { 186 return nil, err 187 } 188 respr, errRespr := s.srv.BeginDelete(req.Context(), resourceGroupNameParam, virtualNetworkNameParam, subnetNameParam, nil) 189 if respErr := server.GetError(errRespr, req); respErr != nil { 190 return nil, respErr 191 } 192 beginDelete = &respr 193 s.beginDelete.add(req, beginDelete) 194 } 195 196 resp, err := server.PollerResponderNext(beginDelete, req) 197 if err != nil { 198 return nil, err 199 } 200 201 if !contains([]int{http.StatusOK, http.StatusAccepted, http.StatusNoContent}, resp.StatusCode) { 202 s.beginDelete.remove(req) 203 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted, http.StatusNoContent", resp.StatusCode)} 204 } 205 if !server.PollerResponderMore(beginDelete) { 206 s.beginDelete.remove(req) 207 } 208 209 return resp, nil 210 } 211 212 func (s *SubnetsServerTransport) dispatchGet(req *http.Request) (*http.Response, error) { 213 if s.srv.Get == nil { 214 return nil, &nonRetriableError{errors.New("fake for method Get not implemented")} 215 } 216 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualNetworks/(?P<virtualNetworkName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/subnets/(?P<subnetName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 217 regex := regexp.MustCompile(regexStr) 218 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 219 if matches == nil || len(matches) < 4 { 220 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 221 } 222 qp := req.URL.Query() 223 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 224 if err != nil { 225 return nil, err 226 } 227 virtualNetworkNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("virtualNetworkName")]) 228 if err != nil { 229 return nil, err 230 } 231 subnetNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("subnetName")]) 232 if err != nil { 233 return nil, err 234 } 235 expandUnescaped, err := url.QueryUnescape(qp.Get("$expand")) 236 if err != nil { 237 return nil, err 238 } 239 expandParam := getOptional(expandUnescaped) 240 var options *armnetwork.SubnetsClientGetOptions 241 if expandParam != nil { 242 options = &armnetwork.SubnetsClientGetOptions{ 243 Expand: expandParam, 244 } 245 } 246 respr, errRespr := s.srv.Get(req.Context(), resourceGroupNameParam, virtualNetworkNameParam, subnetNameParam, options) 247 if respErr := server.GetError(errRespr, req); respErr != nil { 248 return nil, respErr 249 } 250 respContent := server.GetResponseContent(respr) 251 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 252 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 253 } 254 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).Subnet, req) 255 if err != nil { 256 return nil, err 257 } 258 return resp, nil 259 } 260 261 func (s *SubnetsServerTransport) dispatchNewListPager(req *http.Request) (*http.Response, error) { 262 if s.srv.NewListPager == nil { 263 return nil, &nonRetriableError{errors.New("fake for method NewListPager not implemented")} 264 } 265 newListPager := s.newListPager.get(req) 266 if newListPager == nil { 267 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualNetworks/(?P<virtualNetworkName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/subnets` 268 regex := regexp.MustCompile(regexStr) 269 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 270 if matches == nil || len(matches) < 3 { 271 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 272 } 273 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 274 if err != nil { 275 return nil, err 276 } 277 virtualNetworkNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("virtualNetworkName")]) 278 if err != nil { 279 return nil, err 280 } 281 resp := s.srv.NewListPager(resourceGroupNameParam, virtualNetworkNameParam, nil) 282 newListPager = &resp 283 s.newListPager.add(req, newListPager) 284 server.PagerResponderInjectNextLinks(newListPager, req, func(page *armnetwork.SubnetsClientListResponse, createLink func() string) { 285 page.NextLink = to.Ptr(createLink()) 286 }) 287 } 288 resp, err := server.PagerResponderNext(newListPager, req) 289 if err != nil { 290 return nil, err 291 } 292 if !contains([]int{http.StatusOK}, resp.StatusCode) { 293 s.newListPager.remove(req) 294 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 295 } 296 if !server.PagerResponderMore(newListPager) { 297 s.newListPager.remove(req) 298 } 299 return resp, nil 300 } 301 302 func (s *SubnetsServerTransport) dispatchBeginPrepareNetworkPolicies(req *http.Request) (*http.Response, error) { 303 if s.srv.BeginPrepareNetworkPolicies == nil { 304 return nil, &nonRetriableError{errors.New("fake for method BeginPrepareNetworkPolicies not implemented")} 305 } 306 beginPrepareNetworkPolicies := s.beginPrepareNetworkPolicies.get(req) 307 if beginPrepareNetworkPolicies == nil { 308 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualNetworks/(?P<virtualNetworkName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/subnets/(?P<subnetName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/PrepareNetworkPolicies` 309 regex := regexp.MustCompile(regexStr) 310 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 311 if matches == nil || len(matches) < 4 { 312 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 313 } 314 body, err := server.UnmarshalRequestAsJSON[armnetwork.PrepareNetworkPoliciesRequest](req) 315 if err != nil { 316 return nil, err 317 } 318 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 319 if err != nil { 320 return nil, err 321 } 322 virtualNetworkNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("virtualNetworkName")]) 323 if err != nil { 324 return nil, err 325 } 326 subnetNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("subnetName")]) 327 if err != nil { 328 return nil, err 329 } 330 respr, errRespr := s.srv.BeginPrepareNetworkPolicies(req.Context(), resourceGroupNameParam, virtualNetworkNameParam, subnetNameParam, body, nil) 331 if respErr := server.GetError(errRespr, req); respErr != nil { 332 return nil, respErr 333 } 334 beginPrepareNetworkPolicies = &respr 335 s.beginPrepareNetworkPolicies.add(req, beginPrepareNetworkPolicies) 336 } 337 338 resp, err := server.PollerResponderNext(beginPrepareNetworkPolicies, req) 339 if err != nil { 340 return nil, err 341 } 342 343 if !contains([]int{http.StatusOK, http.StatusAccepted}, resp.StatusCode) { 344 s.beginPrepareNetworkPolicies.remove(req) 345 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted", resp.StatusCode)} 346 } 347 if !server.PollerResponderMore(beginPrepareNetworkPolicies) { 348 s.beginPrepareNetworkPolicies.remove(req) 349 } 350 351 return resp, nil 352 } 353 354 func (s *SubnetsServerTransport) dispatchBeginUnprepareNetworkPolicies(req *http.Request) (*http.Response, error) { 355 if s.srv.BeginUnprepareNetworkPolicies == nil { 356 return nil, &nonRetriableError{errors.New("fake for method BeginUnprepareNetworkPolicies not implemented")} 357 } 358 beginUnprepareNetworkPolicies := s.beginUnprepareNetworkPolicies.get(req) 359 if beginUnprepareNetworkPolicies == nil { 360 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/virtualNetworks/(?P<virtualNetworkName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/subnets/(?P<subnetName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/UnprepareNetworkPolicies` 361 regex := regexp.MustCompile(regexStr) 362 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 363 if matches == nil || len(matches) < 4 { 364 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 365 } 366 body, err := server.UnmarshalRequestAsJSON[armnetwork.UnprepareNetworkPoliciesRequest](req) 367 if err != nil { 368 return nil, err 369 } 370 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 371 if err != nil { 372 return nil, err 373 } 374 virtualNetworkNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("virtualNetworkName")]) 375 if err != nil { 376 return nil, err 377 } 378 subnetNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("subnetName")]) 379 if err != nil { 380 return nil, err 381 } 382 respr, errRespr := s.srv.BeginUnprepareNetworkPolicies(req.Context(), resourceGroupNameParam, virtualNetworkNameParam, subnetNameParam, body, nil) 383 if respErr := server.GetError(errRespr, req); respErr != nil { 384 return nil, respErr 385 } 386 beginUnprepareNetworkPolicies = &respr 387 s.beginUnprepareNetworkPolicies.add(req, beginUnprepareNetworkPolicies) 388 } 389 390 resp, err := server.PollerResponderNext(beginUnprepareNetworkPolicies, req) 391 if err != nil { 392 return nil, err 393 } 394 395 if !contains([]int{http.StatusOK, http.StatusAccepted}, resp.StatusCode) { 396 s.beginUnprepareNetworkPolicies.remove(req) 397 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted", resp.StatusCode)} 398 } 399 if !server.PollerResponderMore(beginUnprepareNetworkPolicies) { 400 s.beginUnprepareNetworkPolicies.remove(req) 401 } 402 403 return resp, nil 404 }