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