@@ -360,63 +360,68 @@ def _convert_openapi_securuty(
360360 return self ._state .service .security [self ._locate_ref (security_scheme .ref )]
361361
362362 description = security_scheme .description or ''
363- if security_scheme .type == openapi .SecurityType .http :
364- assert security_scheme .scheme_
365- return model .HttpSecurity (description , security_scheme .scheme_ , security_scheme .bearerFormat )
366- elif security_scheme .type == openapi .SecurityType .apiKey :
367- assert security_scheme .name
368- assert security_scheme .in_
369- security_in = model .SecurityIn (security_scheme .in_ .name )
370- return model .ApiKeySecurity (description , security_scheme .name , security_in )
371- elif security_scheme .type == openapi .SecurityType .oauth2 :
372- assert security_scheme .flows
373- flows = self ._convert_openapi_flows (security_scheme .flows )
374- if flows_scopes :
375- for flow in flows :
376- flow .scopes = {key : flow .scopes [key ] for key in flows_scopes if key in flow .scopes }
377- return model .OAuthSecurity (description , flows )
378- elif security_scheme .type == openapi .SecurityType .openIdConnect :
379- assert security_scheme .openIdConnectUrl
380- return model .OpenIdConnectSecurity (description , security_scheme .openIdConnectUrl )
381- else :
382- assert False
363+ match security_scheme .type :
364+ case openapi .SecurityType .http :
365+ assert security_scheme .scheme_
366+ return model .HttpSecurity (description , security_scheme .scheme_ , security_scheme .bearerFormat )
367+ case openapi .SecurityType .apiKey :
368+ assert security_scheme .name
369+ assert security_scheme .in_
370+ security_in = model .SecurityIn (security_scheme .in_ .name )
371+ return model .ApiKeySecurity (description , security_scheme .name , security_in )
372+ case openapi .SecurityType .oauth2 :
373+ assert security_scheme .flows
374+ flows = self ._convert_openapi_flows (security_scheme .flows )
375+ if flows_scopes :
376+ for flow in flows :
377+ flow .scopes = {key : flow .scopes [key ] for key in flows_scopes if key in flow .scopes }
378+ return model .OAuthSecurity (description , flows )
379+ case openapi .SecurityType .openIdConnect :
380+ assert security_scheme .openIdConnectUrl
381+ return model .OpenIdConnectSecurity (description , security_scheme .openIdConnectUrl )
382+ case _:
383+ assert False
383384
384385 def _convert_swagger_security (
385386 self ,
386387 security_def : swagger .SecurityDef ,
387388 flows_scopes : list [str ] | None = None , # noqa: COM812
388389 ) -> model .Security :
389390 description = security_def .description or ''
390- if security_def .type == swagger .SecurityType .basic :
391- return model .Security (description )
392- elif security_def .type == swagger .SecurityType .apiKey :
393- assert security_def .name
394- assert security_def .in_
395- security_in = model .SecurityIn (security_def .in_ .name )
396- return model .ApiKeySecurity (description , security_def .name , security_in )
397- elif security_def .type == swagger .SecurityType .oauth2 :
398- flow : model .Flow
399- if security_def .flow == swagger .OAuthFlow .implicit :
400- assert security_def .authorizationUrl
401- flow = model .ImplicitFlow ('' , security_def .scopes , security_def .authorizationUrl )
402- elif security_def .flow == swagger .OAuthFlow .password :
403- assert security_def .tokenUrl
404- flow = model .PasswordFlow ('' , security_def .scopes , security_def .tokenUrl )
405- elif security_def .flow == swagger .OAuthFlow .application :
406- assert security_def .tokenUrl
407- flow = model .ClientCredFlow ('' , security_def .scopes , security_def .tokenUrl )
408- elif security_def .flow == swagger .OAuthFlow .accessCode :
409- assert security_def .authorizationUrl
410- assert security_def .tokenUrl
411- flow = model .AuthCodeFlow ('' , security_def .scopes , security_def .authorizationUrl , security_def .tokenUrl )
412- else :
413- assert False
391+ match security_def .type :
392+ case swagger .SecurityType .basic :
393+ return model .Security (description )
394+ case swagger .SecurityType .apiKey :
395+ assert security_def .name
396+ assert security_def .in_
397+ security_in = model .SecurityIn (security_def .in_ .name )
398+ return model .ApiKeySecurity (description , security_def .name , security_in )
399+ case swagger .SecurityType .oauth2 :
400+ flow : model .Flow
401+ match security_def .flow :
402+ case swagger .OAuthFlow .implicit :
403+ assert security_def .authorizationUrl
404+ flow = model .ImplicitFlow ('' , security_def .scopes , security_def .authorizationUrl )
405+ case swagger .OAuthFlow .password :
406+ assert security_def .tokenUrl
407+ flow = model .PasswordFlow ('' , security_def .scopes , security_def .tokenUrl )
408+ case swagger .OAuthFlow .application :
409+ assert security_def .tokenUrl
410+ flow = model .ClientCredFlow ('' , security_def .scopes , security_def .tokenUrl )
411+ case swagger .OAuthFlow .accessCode :
412+ assert security_def .authorizationUrl
413+ assert security_def .tokenUrl
414+ flow = model .AuthCodeFlow (
415+ '' , security_def .scopes , security_def .authorizationUrl , security_def .tokenUrl
416+ )
417+ case _:
418+ assert False
414419
415- if flows_scopes :
416- flow .scopes = {key : flow .scopes [key ] for key in flows_scopes if key in flow .scopes }
417- return model .OAuthSecurity (description , [flow ])
418- else :
419- assert False
420+ if flows_scopes :
421+ flow .scopes = {key : flow .scopes [key ] for key in flows_scopes if key in flow .scopes }
422+ return model .OAuthSecurity (description , [flow ])
423+ case _ :
424+ assert False
420425
421426 def _append_schema (
422427 self ,
0 commit comments