{-# OPTIONS_GHC -Wno-orphans #-}

module Data.OpenApi.Compare.Validate.SecurityScheme
  (
  )
where

import Control.Monad
import Data.OpenApi
import Data.OpenApi.Compare.Behavior
import Data.OpenApi.Compare.Orphans ()
import Data.OpenApi.Compare.Subtree
import Data.OpenApi.Compare.Validate.OAuth2Flows

instance Subtree SecurityScheme where
  type CheckEnv SecurityScheme = '[]
  type SubtreeLevel SecurityScheme = 'SecuritySchemeLevel
  checkStructuralCompatibility :: HList (CheckEnv SecurityScheme)
-> ProdCons (Traced SecurityScheme) -> StructuralCompatFormula ()
checkStructuralCompatibility HList (CheckEnv SecurityScheme)
_ ProdCons (Traced SecurityScheme)
pc = ProdCons
  (EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType)
-> StructuralCompatFormula ()
forall a (w :: * -> *).
(Eq a, Comonad w) =>
ProdCons (w a) -> StructuralCompatFormula ()
structuralEq (ProdCons
   (EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType)
 -> StructuralCompatFormula ())
-> ProdCons
     (EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType)
-> StructuralCompatFormula ()
forall a b. (a -> b) -> a -> b
$ Traced SecurityScheme
-> EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType
tracedSecuritySchemaTypes (Traced SecurityScheme
 -> EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType)
-> ProdCons (Traced SecurityScheme)
-> ProdCons
     (EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced SecurityScheme)
pc
  checkSemanticCompatibility :: HList (CheckEnv SecurityScheme)
-> Behavior (SubtreeLevel SecurityScheme)
-> ProdCons (Traced SecurityScheme)
-> SemanticCompatFormula ()
checkSemanticCompatibility HList (CheckEnv SecurityScheme)
env Behavior (SubtreeLevel SecurityScheme)
bhv ProdCons (Traced SecurityScheme)
pcSecScheme = case Traced SecurityScheme
-> EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType
tracedSecuritySchemaTypes (Traced SecurityScheme
 -> EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType)
-> ProdCons (Traced SecurityScheme)
-> ProdCons
     (EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced SecurityScheme)
pcSecScheme of
    (ProdCons (Traced Trace SecuritySchemeType
_ (SecuritySchemeHttp HttpSchemeType
pType)) (Traced Trace SecuritySchemeType
_ (SecuritySchemeHttp HttpSchemeType
cType))) -> case (HttpSchemeType
pType, HttpSchemeType
cType) of
      (HttpSchemeBearer Maybe BearerFormat
_, HttpSchemeBearer Maybe BearerFormat
_) -> () -> SemanticCompatFormula ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
      (HttpSchemeType
HttpSchemeBasic, HttpSchemeType
HttpSchemeBasic) -> () -> SemanticCompatFormula ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
      (HttpSchemeCustom BearerFormat
p, HttpSchemeCustom BearerFormat
c) ->
        Bool -> SemanticCompatFormula () -> SemanticCompatFormula ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (BearerFormat
p BearerFormat -> BearerFormat -> Bool
forall a. Eq a => a -> a -> Bool
== BearerFormat
c) (Paths Behave 'APILevel 'SecuritySchemeLevel
-> Issue 'SecuritySchemeLevel -> SemanticCompatFormula ()
forall (l :: BehaviorLevel)
       (q :: BehaviorLevel -> BehaviorLevel -> *) (r :: BehaviorLevel) a.
Issuable l =>
Paths q r l -> Issue l -> CompatFormula' q AnIssue r a
issueAt Paths Behave 'APILevel 'SecuritySchemeLevel
Behavior (SubtreeLevel SecurityScheme)
bhv (Issue 'SecuritySchemeLevel -> SemanticCompatFormula ())
-> Issue 'SecuritySchemeLevel -> SemanticCompatFormula ()
forall a b. (a -> b) -> a -> b
$ BearerFormat -> BearerFormat -> Issue 'SecuritySchemeLevel
CustomHttpSchemesDontMatch BearerFormat
p BearerFormat
c)
      (HttpSchemeType, HttpSchemeType)
_ -> Paths Behave 'APILevel 'SecuritySchemeLevel
-> Issue 'SecuritySchemeLevel -> SemanticCompatFormula ()
forall (l :: BehaviorLevel)
       (q :: BehaviorLevel -> BehaviorLevel -> *) (r :: BehaviorLevel) a.
Issuable l =>
Paths q r l -> Issue l -> CompatFormula' q AnIssue r a
issueAt Paths Behave 'APILevel 'SecuritySchemeLevel
Behavior (SubtreeLevel SecurityScheme)
bhv (Issue 'SecuritySchemeLevel -> SemanticCompatFormula ())
-> Issue 'SecuritySchemeLevel -> SemanticCompatFormula ()
forall a b. (a -> b) -> a -> b
$ HttpSchemeType -> HttpSchemeType -> Issue 'SecuritySchemeLevel
HttpSchemeTypesDontMatch HttpSchemeType
pType HttpSchemeType
cType
    (ProdCons (Traced Trace SecuritySchemeType
_ (SecuritySchemeApiKey ApiKeyParams
pParams)) (Traced Trace SecuritySchemeType
_ (SecuritySchemeApiKey ApiKeyParams
cParams))) -> do
      Bool -> SemanticCompatFormula () -> SemanticCompatFormula ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (ApiKeyParams
pParams ApiKeyParams -> ApiKeyParams -> Bool
forall a. Eq a => a -> a -> Bool
== ApiKeyParams
cParams) (Paths Behave 'APILevel 'SecuritySchemeLevel
-> Issue 'SecuritySchemeLevel -> SemanticCompatFormula ()
forall (l :: BehaviorLevel)
       (q :: BehaviorLevel -> BehaviorLevel -> *) (r :: BehaviorLevel) a.
Issuable l =>
Paths q r l -> Issue l -> CompatFormula' q AnIssue r a
issueAt Paths Behave 'APILevel 'SecuritySchemeLevel
Behavior (SubtreeLevel SecurityScheme)
bhv (Issue 'SecuritySchemeLevel -> SemanticCompatFormula ())
-> Issue 'SecuritySchemeLevel -> SemanticCompatFormula ()
forall a b. (a -> b) -> a -> b
$ ApiKeyParams -> ApiKeyParams -> Issue 'SecuritySchemeLevel
ApiKeyParamsDontMatch ApiKeyParams
pParams ApiKeyParams
cParams)
    (ProdCons (Traced Trace SecuritySchemeType
pT (SecuritySchemeOAuth2 OAuth2Flows
pFlows)) (Traced Trace SecuritySchemeType
cT (SecuritySchemeOAuth2 OAuth2Flows
cFlows))) -> do
      Behavior (SubtreeLevel OAuth2Flows)
-> HList '[]
-> ProdCons (Traced OAuth2Flows)
-> SemanticCompatFormula ()
forall t (xs :: [*]).
(ReassembleHList xs (CheckEnv t), Subtree t) =>
Behavior (SubtreeLevel t)
-> HList xs -> ProdCons (Traced t) -> SemanticCompatFormula ()
checkCompatibility Behavior (SubtreeLevel OAuth2Flows)
Behavior (SubtreeLevel SecurityScheme)
bhv HList '[]
HList (CheckEnv SecurityScheme)
env (ProdCons (Traced OAuth2Flows) -> SemanticCompatFormula ())
-> (ProdCons (Traced' SecuritySchemeType OAuth2Flows)
    -> ProdCons (Traced OAuth2Flows))
-> ProdCons (Traced' SecuritySchemeType OAuth2Flows)
-> SemanticCompatFormula ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Traced' SecuritySchemeType OAuth2Flows -> Traced OAuth2Flows)
-> ProdCons (Traced' SecuritySchemeType OAuth2Flows)
-> ProdCons (Traced OAuth2Flows)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Step SecuritySchemeType OAuth2Flows
-> Traced' SecuritySchemeType OAuth2Flows -> Traced OAuth2Flows
forall a a' b.
Steppable a a' =>
Step a a' -> Traced' a b -> Traced' a' b
stepTraced Step SecuritySchemeType OAuth2Flows
SecurityOAuthFlowsStep) (ProdCons (Traced' SecuritySchemeType OAuth2Flows)
 -> SemanticCompatFormula ())
-> ProdCons (Traced' SecuritySchemeType OAuth2Flows)
-> SemanticCompatFormula ()
forall a b. (a -> b) -> a -> b
$ Traced' SecuritySchemeType OAuth2Flows
-> Traced' SecuritySchemeType OAuth2Flows
-> ProdCons (Traced' SecuritySchemeType OAuth2Flows)
forall a. a -> a -> ProdCons a
ProdCons (Trace SecuritySchemeType
-> OAuth2Flows -> Traced' SecuritySchemeType OAuth2Flows
forall a b. Trace a -> b -> Traced' a b
Traced Trace SecuritySchemeType
pT OAuth2Flows
pFlows) (Trace SecuritySchemeType
-> OAuth2Flows -> Traced' SecuritySchemeType OAuth2Flows
forall a b. Trace a -> b -> Traced' a b
Traced Trace SecuritySchemeType
cT OAuth2Flows
cFlows)
    (ProdCons (Traced Trace SecuritySchemeType
_ (SecuritySchemeOpenIdConnect URL
pUrl)) (Traced Trace SecuritySchemeType
_ (SecuritySchemeOpenIdConnect URL
cUrl))) -> do
      Bool -> SemanticCompatFormula () -> SemanticCompatFormula ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (URL
pUrl URL -> URL -> Bool
forall a. Eq a => a -> a -> Bool
== URL
cUrl) (Paths Behave 'APILevel 'SecuritySchemeLevel
-> Issue 'SecuritySchemeLevel -> SemanticCompatFormula ()
forall (l :: BehaviorLevel)
       (q :: BehaviorLevel -> BehaviorLevel -> *) (r :: BehaviorLevel) a.
Issuable l =>
Paths q r l -> Issue l -> CompatFormula' q AnIssue r a
issueAt Paths Behave 'APILevel 'SecuritySchemeLevel
Behavior (SubtreeLevel SecurityScheme)
bhv (Issue 'SecuritySchemeLevel -> SemanticCompatFormula ())
-> Issue 'SecuritySchemeLevel -> SemanticCompatFormula ()
forall a b. (a -> b) -> a -> b
$ URL -> URL -> Issue 'SecuritySchemeLevel
OpenIdConnectUrlsDontMatch URL
pUrl URL
cUrl)
    ProdCons
  (EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType)
_ -> Paths Behave 'APILevel 'SecuritySchemeLevel
-> Issue 'SecuritySchemeLevel -> SemanticCompatFormula ()
forall (l :: BehaviorLevel)
       (q :: BehaviorLevel -> BehaviorLevel -> *) (r :: BehaviorLevel) a.
Issuable l =>
Paths q r l -> Issue l -> CompatFormula' q AnIssue r a
issueAt Paths Behave 'APILevel 'SecuritySchemeLevel
Behavior (SubtreeLevel SecurityScheme)
bhv Issue 'SecuritySchemeLevel
DifferentSecuritySchemes

tracedSecuritySchemaTypes :: Traced SecurityScheme -> Traced SecuritySchemeType
tracedSecuritySchemaTypes :: Traced SecurityScheme
-> EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType
tracedSecuritySchemaTypes (Traced Trace SecurityScheme
t SecurityScheme
x) = Trace SecuritySchemeType
-> SecuritySchemeType
-> EnvT (Trace SecuritySchemeType) Identity SecuritySchemeType
forall a b. Trace a -> b -> Traced' a b
Traced (Trace SecurityScheme
t Trace SecurityScheme
-> Paths Step SecurityScheme SecuritySchemeType
-> Trace SecuritySchemeType
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>> Step SecurityScheme SecuritySchemeType
-> Paths Step SecurityScheme SecuritySchemeType
forall k (q :: k -> k -> *) (a :: k) (b :: k).
NiceQuiver q a b =>
q a b -> Paths q a b
step Step SecurityScheme SecuritySchemeType
SecuritySchemeTypeStep) (SecurityScheme -> SecuritySchemeType
_securitySchemeType SecurityScheme
x)

instance Steppable SecurityScheme SecuritySchemeType where
  data Step SecurityScheme SecuritySchemeType = SecuritySchemeTypeStep
    deriving stock (Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
(Step SecurityScheme SecuritySchemeType
 -> Step SecurityScheme SecuritySchemeType -> Bool)
-> (Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType -> Bool)
-> Eq (Step SecurityScheme SecuritySchemeType)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
$c/= :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
== :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
$c== :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
Eq, Eq (Step SecurityScheme SecuritySchemeType)
Eq (Step SecurityScheme SecuritySchemeType)
-> (Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType -> Ordering)
-> (Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType -> Bool)
-> (Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType -> Bool)
-> (Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType -> Bool)
-> (Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType -> Bool)
-> (Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType)
-> (Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType
    -> Step SecurityScheme SecuritySchemeType)
-> Ord (Step SecurityScheme SecuritySchemeType)
Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Ordering
Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
$cmin :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
max :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
$cmax :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType
>= :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
$c>= :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
> :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
$c> :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
<= :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
$c<= :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
< :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
$c< :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Bool
compare :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Ordering
$ccompare :: Step SecurityScheme SecuritySchemeType
-> Step SecurityScheme SecuritySchemeType -> Ordering
$cp1Ord :: Eq (Step SecurityScheme SecuritySchemeType)
Ord, Int -> Step SecurityScheme SecuritySchemeType -> ShowS
[Step SecurityScheme SecuritySchemeType] -> ShowS
Step SecurityScheme SecuritySchemeType -> String
(Int -> Step SecurityScheme SecuritySchemeType -> ShowS)
-> (Step SecurityScheme SecuritySchemeType -> String)
-> ([Step SecurityScheme SecuritySchemeType] -> ShowS)
-> Show (Step SecurityScheme SecuritySchemeType)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Step SecurityScheme SecuritySchemeType] -> ShowS
$cshowList :: [Step SecurityScheme SecuritySchemeType] -> ShowS
show :: Step SecurityScheme SecuritySchemeType -> String
$cshow :: Step SecurityScheme SecuritySchemeType -> String
showsPrec :: Int -> Step SecurityScheme SecuritySchemeType -> ShowS
$cshowsPrec :: Int -> Step SecurityScheme SecuritySchemeType -> ShowS
Show)

instance Steppable SecuritySchemeType OAuth2Flows where
  data Step SecuritySchemeType OAuth2Flows = SecurityOAuthFlowsStep
    deriving stock (Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
(Step SecuritySchemeType OAuth2Flows
 -> Step SecuritySchemeType OAuth2Flows -> Bool)
-> (Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows -> Bool)
-> Eq (Step SecuritySchemeType OAuth2Flows)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
$c/= :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
== :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
$c== :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
Eq, Eq (Step SecuritySchemeType OAuth2Flows)
Eq (Step SecuritySchemeType OAuth2Flows)
-> (Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows -> Ordering)
-> (Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows -> Bool)
-> (Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows -> Bool)
-> (Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows -> Bool)
-> (Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows -> Bool)
-> (Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows)
-> (Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows
    -> Step SecuritySchemeType OAuth2Flows)
-> Ord (Step SecuritySchemeType OAuth2Flows)
Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Ordering
Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
$cmin :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
max :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
$cmax :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows
>= :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
$c>= :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
> :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
$c> :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
<= :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
$c<= :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
< :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
$c< :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Bool
compare :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Ordering
$ccompare :: Step SecuritySchemeType OAuth2Flows
-> Step SecuritySchemeType OAuth2Flows -> Ordering
$cp1Ord :: Eq (Step SecuritySchemeType OAuth2Flows)
Ord, Int -> Step SecuritySchemeType OAuth2Flows -> ShowS
[Step SecuritySchemeType OAuth2Flows] -> ShowS
Step SecuritySchemeType OAuth2Flows -> String
(Int -> Step SecuritySchemeType OAuth2Flows -> ShowS)
-> (Step SecuritySchemeType OAuth2Flows -> String)
-> ([Step SecuritySchemeType OAuth2Flows] -> ShowS)
-> Show (Step SecuritySchemeType OAuth2Flows)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Step SecuritySchemeType OAuth2Flows] -> ShowS
$cshowList :: [Step SecuritySchemeType OAuth2Flows] -> ShowS
show :: Step SecuritySchemeType OAuth2Flows -> String
$cshow :: Step SecuritySchemeType OAuth2Flows -> String
showsPrec :: Int -> Step SecuritySchemeType OAuth2Flows -> ShowS
$cshowsPrec :: Int -> Step SecuritySchemeType OAuth2Flows -> ShowS
Show)