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