{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}

module OpenAPI.Generate.OptParse.Flags
  ( Flags (..),
    parseFlags,
  )
where

import Data.Text (Text)
import qualified OpenAPI.Generate.Log as OAL
import OpenAPI.Generate.OptParse.Types
import Options.Applicative

data Flags = Flags
  { Flags -> Maybe Text
flagConfiguration :: !(Maybe Text),
    Flags -> Maybe Text
flagOpenApiSpecification :: !(Maybe Text),
    Flags -> Maybe Text
flagOutputDir :: !(Maybe Text),
    Flags -> Maybe Text
flagPackageName :: !(Maybe Text),
    Flags -> Maybe Text
flagModuleName :: !(Maybe Text),
    Flags -> Maybe LogSeverity
flagLogLevel :: !(Maybe OAL.LogSeverity),
    Flags -> Maybe Bool
flagForce :: !(Maybe Bool),
    Flags -> Maybe Bool
flagIncremental :: !(Maybe Bool),
    Flags -> Maybe Bool
flagDryRun :: !(Maybe Bool),
    Flags -> Maybe Bool
flagDoNotGenerateStackProject :: !(Maybe Bool),
    Flags -> Maybe Bool
flagGenerateNixFiles :: !(Maybe Bool),
    Flags -> Maybe Bool
flagOmitAdditionalOperationFunctions :: !(Maybe Bool),
    Flags -> Maybe Bool
flagGenerateOptionalEmptyRequestBody :: !(Maybe Bool),
    Flags -> Maybe Bool
flagUseNumberedVariantConstructors :: !(Maybe Bool),
    Flags -> Maybe Bool
flagUseFloatWithArbitraryPrecision :: !(Maybe Bool),
    Flags -> Maybe Bool
flagUseIntWithArbitraryPrecision :: !(Maybe Bool),
    Flags -> Maybe Bool
flagUseDateTypesAsString :: !(Maybe Bool),
    Flags -> Maybe Bool
flagConvertToCamelCase :: !(Maybe Bool),
    Flags -> Maybe Text
flagPropertyTypeSuffix :: !(Maybe Text),
    Flags -> Maybe Text
flagResponseTypeSuffix :: !(Maybe Text),
    Flags -> Maybe Text
flagResponseBodyTypeSuffix :: !(Maybe Text),
    Flags -> Maybe Text
flagRequestBodyTypeSuffix :: !(Maybe Text),
    Flags -> Maybe Text
flagArrayItemTypeSuffix :: !(Maybe Text),
    Flags -> Maybe Text
flagNonNullableTypeSuffix :: !(Maybe Text),
    Flags -> Maybe Text
flagParametersTypeSuffix :: !(Maybe Text),
    Flags -> Maybe Text
flagParameterQueryPrefix :: !(Maybe Text),
    Flags -> Maybe Text
flagParameterPathPrefix :: !(Maybe Text),
    Flags -> Maybe Text
flagParameterCookiePrefix :: !(Maybe Text),
    Flags -> Maybe Text
flagParameterHeaderPrefix :: !(Maybe Text),
    Flags -> Maybe [Text]
flagOperationsToGenerate :: !(Maybe [Text]),
    Flags -> Maybe [Text]
flagOpaqueSchemas :: !(Maybe [Text]),
    Flags -> Maybe [Text]
flagWhiteListedSchemas :: !(Maybe [Text]),
    Flags -> Maybe Bool
flagOutputAllSchemas :: !(Maybe Bool),
    Flags -> Maybe FixedValueStrategy
flagFixedValueStrategy :: !(Maybe FixedValueStrategy),
    Flags -> Maybe Bool
flagShortenSingleFieldObjects :: !(Maybe Bool)
  }
  deriving (Int -> Flags -> ShowS
[Flags] -> ShowS
Flags -> String
(Int -> Flags -> ShowS)
-> (Flags -> String) -> ([Flags] -> ShowS) -> Show Flags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Flags -> ShowS
showsPrec :: Int -> Flags -> ShowS
$cshow :: Flags -> String
show :: Flags -> String
$cshowList :: [Flags] -> ShowS
showList :: [Flags] -> ShowS
Show, Flags -> Flags -> Bool
(Flags -> Flags -> Bool) -> (Flags -> Flags -> Bool) -> Eq Flags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Flags -> Flags -> Bool
== :: Flags -> Flags -> Bool
$c/= :: Flags -> Flags -> Bool
/= :: Flags -> Flags -> Bool
Eq)

parseFlags :: Parser Flags
parseFlags :: Parser Flags
parseFlags =
  Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe LogSeverity
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Bool
-> Maybe FixedValueStrategy
-> Maybe Bool
-> Flags
Flags
    (Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe LogSeverity
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe Bool
 -> Maybe FixedValueStrategy
 -> Maybe Bool
 -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LogSeverity
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser (Maybe Text)
parseFlagConfiguration
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LogSeverity
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LogSeverity
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagOpenApiSpecification
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LogSeverity
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe LogSeverity
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagOutputDir
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe LogSeverity
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe LogSeverity
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagPackageName
    Parser
  (Maybe Text
   -> Maybe LogSeverity
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe LogSeverity
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagModuleName
    Parser
  (Maybe LogSeverity
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe LogSeverity)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe LogSeverity)
parseFlagLogLevel
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagForce
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagIncremental
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagDryRun
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagDoNotGenerateStackProject
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagGenerateNixFiles
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagOmitAdditionalOperationFunctions
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagGenerateOptionalEmptyRequestBody
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagUseNumberedVariantConstructors
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagUseFloatWithArbitraryPrecision
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagUseIntWithArbitraryPrecision
    Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagUseDateTypesAsString
    Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagConvertToCamelCase
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagPropertyTypeSuffix
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagResponseTypeSuffix
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagResponseBodyTypeSuffix
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagRequestBodyTypeSuffix
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagArrayItemTypeSuffix
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagNonNullableTypeSuffix
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagParametersTypeSuffix
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagParameterQueryPrefix
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagParameterPathPrefix
    Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagParameterCookiePrefix
    Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Text)
parseFlagParameterHeaderPrefix
    Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe FixedValueStrategy
      -> Maybe Bool
      -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe [Text])
parseFlagOperationsToGenerate
    Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe FixedValueStrategy
   -> Maybe Bool
   -> Flags)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe Bool -> Maybe FixedValueStrategy -> Maybe Bool -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe [Text])
parseFlagOpaqueSchemas
    Parser
  (Maybe [Text]
   -> Maybe Bool -> Maybe FixedValueStrategy -> Maybe Bool -> Flags)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Bool -> Maybe FixedValueStrategy -> Maybe Bool -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe [Text])
parseFlagWhiteListedSchemas
    Parser
  (Maybe Bool -> Maybe FixedValueStrategy -> Maybe Bool -> Flags)
-> Parser (Maybe Bool)
-> Parser (Maybe FixedValueStrategy -> Maybe Bool -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagOutputAllSchemas
    Parser (Maybe FixedValueStrategy -> Maybe Bool -> Flags)
-> Parser (Maybe FixedValueStrategy)
-> Parser (Maybe Bool -> Flags)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe FixedValueStrategy)
parseFlagFixedValueStrategy
    Parser (Maybe Bool -> Flags) -> Parser (Maybe Bool) -> Parser Flags
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (Maybe Bool)
parseFlagShortenSingleFieldObjects

parseFlagConfiguration :: Parser (Maybe Text)
parseFlagConfiguration :: Parser (Maybe Text)
parseFlagConfiguration =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"FILEPATH",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The path to a configuration file which allows to configure the generation. Should be a YAML file (default: 'openapi-configuration.yml'). For an example see https://github.com/Haskell-OpenAPI-Code-Generator/Haskell-OpenAPI-Client-Code-Generator/blob/master/openapi-configuration.yml.",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"configuration"
        ]

parseFlagOpenApiSpecification :: Parser (Maybe Text)
parseFlagOpenApiSpecification :: Parser (Maybe Text)
parseFlagOpenApiSpecification =
  let helpText :: String
helpText = String
"The OpenAPI 3 specification file which code should be generated for (default: 'openapi-specification.yml')."
      varName :: String
varName = String
"FILEPATH"
   in Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
        Mod ArgumentFields Text -> Parser Text
forall s. IsString s => Mod ArgumentFields s -> Parser s
strArgument
          ( [Mod ArgumentFields Text] -> Mod ArgumentFields Text
forall a. Monoid a => [a] -> a
mconcat
              [ String -> Mod ArgumentFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
varName,
                String -> Mod ArgumentFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
helpText
              ]
          )
          Parser Text -> Parser Text -> Parser Text
forall a. Parser a -> Parser a -> Parser a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption
            ( [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
                [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
varName,
                  String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
helpText,
                  String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"specification"
                ]
            )

parseFlagOutputDir :: Parser (Maybe Text)
parseFlagOutputDir :: Parser (Maybe Text)
parseFlagOutputDir =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"OUTDIR",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The directory where the generated output is stored (default: 'out').",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"output-dir",
          Char -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => Char -> Mod f a
short Char
'o'
        ]

parseFlagPackageName :: Parser (Maybe Text)
parseFlagPackageName :: Parser (Maybe Text)
parseFlagPackageName =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"PACKAGE",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"Name of the stack project (default: 'openapi')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"package-name"
        ]

parseFlagModuleName :: Parser (Maybe Text)
parseFlagModuleName :: Parser (Maybe Text)
parseFlagModuleName =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"MODULE",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"Name of the module (default: 'OpenAPI')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"module-name"
        ]

parseFlagLogLevel :: Parser (Maybe OAL.LogSeverity)
parseFlagLogLevel :: Parser (Maybe LogSeverity)
parseFlagLogLevel =
  Parser LogSeverity -> Parser (Maybe LogSeverity)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser LogSeverity -> Parser (Maybe LogSeverity))
-> Parser LogSeverity -> Parser (Maybe LogSeverity)
forall a b. (a -> b) -> a -> b
$
    ReadM LogSeverity
-> Mod OptionFields LogSeverity -> Parser LogSeverity
forall a. ReadM a -> Mod OptionFields a -> Parser a
option ReadM LogSeverity
forall a. Read a => ReadM a
auto (Mod OptionFields LogSeverity -> Parser LogSeverity)
-> Mod OptionFields LogSeverity -> Parser LogSeverity
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields LogSeverity] -> Mod OptionFields LogSeverity
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields LogSeverity
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"LOGLEVEL",
          String -> Mod OptionFields LogSeverity
forall (f :: * -> *) a. String -> Mod f a
help String
"Set the minium log level (e. g. WARN to only print warnings and errors). Possible values: TRACE, INFO, WARN, ERROR (default: 'INFO')",
          String -> Mod OptionFields LogSeverity
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"log-level",
          [String] -> Mod OptionFields LogSeverity
forall (f :: * -> *) a. HasCompleter f => [String] -> Mod f a
completeWith [String
"TRACE", String
"INFO", String
"WARN", String
"ERROR"]
        ]

boolReader :: ReadM Bool
boolReader :: ReadM Bool
boolReader =
  (String -> Maybe Bool) -> ReadM Bool
forall a. (String -> Maybe a) -> ReadM a
maybeReader
    ( \case
        String
"true" -> Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
        String
"True" -> Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
        String
"false" -> Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
        String
"False" -> Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
        String
_ -> Maybe Bool
forall a. Maybe a
Nothing
    )

booleanFlag :: String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag :: String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
helpText String
longName Maybe Char
shortName =
  Parser Bool -> Parser (Maybe Bool)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Bool -> Parser (Maybe Bool))
-> Parser Bool -> Parser (Maybe Bool)
forall a b. (a -> b) -> a -> b
$
    Bool -> Mod FlagFields Bool -> Parser Bool
forall a. a -> Mod FlagFields a -> Parser a
flag'
      Bool
True
      ( [Mod FlagFields Bool] -> Mod FlagFields Bool
forall a. Monoid a => [a] -> a
mconcat
          [ String -> Mod FlagFields Bool
forall (f :: * -> *) a. String -> Mod f a
help (String -> Mod FlagFields Bool) -> String -> Mod FlagFields Bool
forall a b. (a -> b) -> a -> b
$ String
helpText String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
" Use without argument (e. g. --" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
longName String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
" to set the flag to true or use it with --" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
longName String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"=false to set it to false (or true). The equal sign is required for the parser.",
            String -> Mod FlagFields Bool
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
longName,
            Mod FlagFields Bool
-> (Char -> Mod FlagFields Bool)
-> Maybe Char
-> Mod FlagFields Bool
forall b a. b -> (a -> b) -> Maybe a -> b
maybe Mod FlagFields Bool
forall a. Monoid a => a
mempty Char -> Mod FlagFields Bool
forall (f :: * -> *) a. HasName f => Char -> Mod f a
short Maybe Char
shortName
          ]
      )
      Parser Bool -> Parser Bool -> Parser Bool
forall a. Parser a -> Parser a -> Parser a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> ReadM Bool -> Mod OptionFields Bool -> Parser Bool
forall a. ReadM a -> Mod OptionFields a -> Parser a
option
        ReadM Bool
boolReader
        ( [Mod OptionFields Bool] -> Mod OptionFields Bool
forall a. Monoid a => [a] -> a
mconcat
            [ String -> Mod OptionFields Bool
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
longName,
              Mod OptionFields Bool
-> (Char -> Mod OptionFields Bool)
-> Maybe Char
-> Mod OptionFields Bool
forall b a. b -> (a -> b) -> Maybe a -> b
maybe Mod OptionFields Bool
forall a. Monoid a => a
mempty Char -> Mod OptionFields Bool
forall (f :: * -> *) a. HasName f => Char -> Mod f a
short Maybe Char
shortName,
              Mod OptionFields Bool
forall (f :: * -> *) a. Mod f a
internal
            ]
        )

parseFlagForce :: Parser (Maybe Bool)
parseFlagForce :: Parser (Maybe Bool)
parseFlagForce = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Overwrite output directory without question." String
"force" (Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'f')

parseFlagIncremental :: Parser (Maybe Bool)
parseFlagIncremental :: Parser (Maybe Bool)
parseFlagIncremental = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Only write new/changed files. Does not need --force flag to overwrite files." String
"incremental" (Char -> Maybe Char
forall a. a -> Maybe a
Just Char
'i')

parseFlagDryRun :: Parser (Maybe Bool)
parseFlagDryRun :: Parser (Maybe Bool)
parseFlagDryRun = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Do not generate the output files but only print the generated code." String
"dry-run" Maybe Char
forall a. Maybe a
Nothing

parseFlagDoNotGenerateStackProject :: Parser (Maybe Bool)
parseFlagDoNotGenerateStackProject :: Parser (Maybe Bool)
parseFlagDoNotGenerateStackProject = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Do not generate a stack project alongside the raw Haskell files." String
"do-not-generate-stack-project" Maybe Char
forall a. Maybe a
Nothing

parseFlagGenerateNixFiles :: Parser (Maybe Bool)
parseFlagGenerateNixFiles :: Parser (Maybe Bool)
parseFlagGenerateNixFiles = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Generate Nix files alongside the raw Haskell files." String
"generate-nix-files" Maybe Char
forall a. Maybe a
Nothing

parseFlagOmitAdditionalOperationFunctions :: Parser (Maybe Bool)
parseFlagOmitAdditionalOperationFunctions :: Parser (Maybe Bool)
parseFlagOmitAdditionalOperationFunctions = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Omit the additional operation functions, which are: with explicit configuration and raw variants (returning the plain ByteString) for both with and without explicit configuration." String
"omit-additional-operation-functions" Maybe Char
forall a. Maybe a
Nothing

parseFlagGenerateOptionalEmptyRequestBody :: Parser (Maybe Bool)
parseFlagGenerateOptionalEmptyRequestBody :: Parser (Maybe Bool)
parseFlagGenerateOptionalEmptyRequestBody = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Force the generator to create types for empty request bodies which are optional (e. g. no properties and required equals false)." String
"generate-optional-empty-request-body" Maybe Char
forall a. Maybe a
Nothing

parseFlagUseNumberedVariantConstructors :: Parser (Maybe Bool)
parseFlagUseNumberedVariantConstructors :: Parser (Maybe Bool)
parseFlagUseNumberedVariantConstructors = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Use numbered data constructors (e. g. Variant1, Variant 2, etc.) for one-of types." String
"use-numbered-variant-constructors" Maybe Char
forall a. Maybe a
Nothing

parseFlagUseFloatWithArbitraryPrecision :: Parser (Maybe Bool)
parseFlagUseFloatWithArbitraryPrecision :: Parser (Maybe Bool)
parseFlagUseFloatWithArbitraryPrecision = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Use Data.Scientific instead of Double to support arbitary number precision." String
"use-float-with-arbitrary-precision" Maybe Char
forall a. Maybe a
Nothing

parseFlagUseIntWithArbitraryPrecision :: Parser (Maybe Bool)
parseFlagUseIntWithArbitraryPrecision :: Parser (Maybe Bool)
parseFlagUseIntWithArbitraryPrecision = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Use 'Integer' instead of 'Int' to support arbitrary number precision." String
"use-int-with-arbitrary-precision" Maybe Char
forall a. Maybe a
Nothing

parseFlagUseDateTypesAsString :: Parser (Maybe Bool)
parseFlagUseDateTypesAsString :: Parser (Maybe Bool)
parseFlagUseDateTypesAsString = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Convert strings formatted as date / date-time to date types." String
"use-date-types-as-string" Maybe Char
forall a. Maybe a
Nothing

parseFlagConvertToCamelCase :: Parser (Maybe Bool)
parseFlagConvertToCamelCase :: Parser (Maybe Bool)
parseFlagConvertToCamelCase = String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Convert names to CamelCase instead of using names which are as close as possible to the names provided in the specification." String
"convert-to-camel-case" Maybe Char
forall a. Maybe a
Nothing

parseFlagPropertyTypeSuffix :: Parser (Maybe Text)
parseFlagPropertyTypeSuffix :: Parser (Maybe Text)
parseFlagPropertyTypeSuffix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"SUFFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"Add a suffix to property types to prevent naming conflicts (default: '')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"property-type-suffix"
        ]

parseFlagResponseTypeSuffix :: Parser (Maybe Text)
parseFlagResponseTypeSuffix :: Parser (Maybe Text)
parseFlagResponseTypeSuffix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"SUFFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The suffix which is added to the response data types (default: 'Response')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"response-type-suffix"
        ]

parseFlagResponseBodyTypeSuffix :: Parser (Maybe Text)
parseFlagResponseBodyTypeSuffix :: Parser (Maybe Text)
parseFlagResponseBodyTypeSuffix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"SUFFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The suffix which is added to the response body data types (default: 'ResponseBody')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"response-body-type-suffix"
        ]

parseFlagRequestBodyTypeSuffix :: Parser (Maybe Text)
parseFlagRequestBodyTypeSuffix :: Parser (Maybe Text)
parseFlagRequestBodyTypeSuffix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"SUFFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The suffix which is added to the request body data types (default: 'RequestBody')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"request-body-type-suffix"
        ]

parseFlagArrayItemTypeSuffix :: Parser (Maybe Text)
parseFlagArrayItemTypeSuffix :: Parser (Maybe Text)
parseFlagArrayItemTypeSuffix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"SUFFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The suffix which is added to the item type of an array (default: 'Item'). This is only applied to item types of top level array types which an alias is generated for.",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"array-item-type-suffix"
        ]

parseFlagNonNullableTypeSuffix :: Parser (Maybe Text)
parseFlagNonNullableTypeSuffix :: Parser (Maybe Text)
parseFlagNonNullableTypeSuffix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"SUFFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The suffix which is added to the non-nullable part of a nullable type (default: 'NonNullable'). This is only applied to top level nullable schemas as they are the only ones which need to be referencable by name.",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"non-nullable-type-suffix"
        ]

parseFlagParametersTypeSuffix :: Parser (Maybe Text)
parseFlagParametersTypeSuffix :: Parser (Maybe Text)
parseFlagParametersTypeSuffix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"SUFFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The suffix which is added to the parameters type of operations (default: 'Parameters')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"parameters-type-suffix"
        ]

parseFlagParameterQueryPrefix :: Parser (Maybe Text)
parseFlagParameterQueryPrefix :: Parser (Maybe Text)
parseFlagParameterQueryPrefix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"PREFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The prefix which is added to query parameters (default: 'query')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"parameter-query-prefix"
        ]

parseFlagParameterPathPrefix :: Parser (Maybe Text)
parseFlagParameterPathPrefix :: Parser (Maybe Text)
parseFlagParameterPathPrefix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"PREFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The prefix which is added to path parameters (default: 'path')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"parameter-path-prefix"
        ]

parseFlagParameterCookiePrefix :: Parser (Maybe Text)
parseFlagParameterCookiePrefix :: Parser (Maybe Text)
parseFlagParameterCookiePrefix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"PREFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The prefix which is added to cookie parameters (default: 'cookie')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"parameter-cookie-prefix"
        ]

parseFlagParameterHeaderPrefix :: Parser (Maybe Text)
parseFlagParameterHeaderPrefix :: Parser (Maybe Text)
parseFlagParameterHeaderPrefix =
  Parser Text -> Parser (Maybe Text)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser Text -> Parser (Maybe Text))
-> Parser Text -> Parser (Maybe Text)
forall a b. (a -> b) -> a -> b
$
    Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"PREFIX",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"The prefix which is added to header parameters (default: 'header')",
          String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"parameter-header-prefix"
        ]

parseFlagOperationsToGenerate :: Parser (Maybe [Text])
parseFlagOperationsToGenerate :: Parser (Maybe [Text])
parseFlagOperationsToGenerate =
  Parser [Text] -> Parser (Maybe [Text])
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser [Text] -> Parser (Maybe [Text]))
-> Parser [Text] -> Parser (Maybe [Text])
forall a b. (a -> b) -> a -> b
$
    Parser Text -> Parser [Text]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
some (Parser Text -> Parser [Text]) -> Parser Text -> Parser [Text]
forall a b. (a -> b) -> a -> b
$
      Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
        [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
          [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"OPERATIONID",
            String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"If not all operations should be generated, this option can be used to specify all of them which should be generated. The value has to correspond to the value in the 'operationId' field in the OpenAPI 3 specification.",
            String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"operation-to-generate"
          ]

parseFlagOpaqueSchemas :: Parser (Maybe [Text])
parseFlagOpaqueSchemas :: Parser (Maybe [Text])
parseFlagOpaqueSchemas =
  Parser [Text] -> Parser (Maybe [Text])
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser [Text] -> Parser (Maybe [Text]))
-> Parser [Text] -> Parser (Maybe [Text])
forall a b. (a -> b) -> a -> b
$
    Parser Text -> Parser [Text]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
some (Parser Text -> Parser [Text]) -> Parser Text -> Parser [Text]
forall a b. (a -> b) -> a -> b
$
      Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
        [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
          [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"SCHEMA",
            String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"A list of schema names (exactly as they are named in the components.schemas section of the corresponding OpenAPI 3 specification) which are not further investigated while generating code from the specification. Only a type alias to 'Aeson.Value' is created for these schemas.",
            String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"opaque-schema"
          ]

parseFlagWhiteListedSchemas :: Parser (Maybe [Text])
parseFlagWhiteListedSchemas :: Parser (Maybe [Text])
parseFlagWhiteListedSchemas =
  Parser [Text] -> Parser (Maybe [Text])
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser [Text] -> Parser (Maybe [Text]))
-> Parser [Text] -> Parser (Maybe [Text])
forall a b. (a -> b) -> a -> b
$
    Parser Text -> Parser [Text]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
some (Parser Text -> Parser [Text]) -> Parser Text -> Parser [Text]
forall a b. (a -> b) -> a -> b
$
      Mod OptionFields Text -> Parser Text
forall s. IsString s => Mod OptionFields s -> Parser s
strOption (Mod OptionFields Text -> Parser Text)
-> Mod OptionFields Text -> Parser Text
forall a b. (a -> b) -> a -> b
$
        [Mod OptionFields Text] -> Mod OptionFields Text
forall a. Monoid a => [a] -> a
mconcat
          [ String -> Mod OptionFields Text
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"SCHEMA",
            String -> Mod OptionFields Text
forall (f :: * -> *) a. String -> Mod f a
help String
"A list of schema names (exactly as they are named in the components.schemas section of the corresponding OpenAPI 3 specification) which need to be generated. For all other schemas only a type alias to 'Aeson.Value' is created.",
            String -> Mod OptionFields Text
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"white-listed-schema"
          ]

parseFlagOutputAllSchemas :: Parser (Maybe Bool)
parseFlagOutputAllSchemas :: Parser (Maybe Bool)
parseFlagOutputAllSchemas =
  String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"Output all component schemas" String
"output-all-schemas" Maybe Char
forall a. Maybe a
Nothing

parseFlagFixedValueStrategy :: Parser (Maybe FixedValueStrategy)
parseFlagFixedValueStrategy :: Parser (Maybe FixedValueStrategy)
parseFlagFixedValueStrategy =
  Parser FixedValueStrategy -> Parser (Maybe FixedValueStrategy)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser FixedValueStrategy -> Parser (Maybe FixedValueStrategy))
-> Parser FixedValueStrategy -> Parser (Maybe FixedValueStrategy)
forall a b. (a -> b) -> a -> b
$
    ReadM FixedValueStrategy
-> Mod OptionFields FixedValueStrategy -> Parser FixedValueStrategy
forall a. ReadM a -> Mod OptionFields a -> Parser a
option ReadM FixedValueStrategy
forall a. Read a => ReadM a
auto (Mod OptionFields FixedValueStrategy -> Parser FixedValueStrategy)
-> Mod OptionFields FixedValueStrategy -> Parser FixedValueStrategy
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields FixedValueStrategy]
-> Mod OptionFields FixedValueStrategy
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields FixedValueStrategy
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
metavar String
"STRATEGY",
          String -> Mod OptionFields FixedValueStrategy
forall (f :: * -> *) a. String -> Mod f a
help String
"In OpenAPI 3, fixed values can be defined as an enum with only one allowed value. If such a constant value is encountered as a required property of an object, the generator excludes this property by default ('exclude' strategy) and adds the value in the 'ToJSON' instance and expects the value to be there in the 'FromJSON' instance. This setting allows to change this behavior by including all fixed value fields instead ('include' strategy), i.e. just not trying to do anything smart (default: 'exclude').",
          String -> Mod OptionFields FixedValueStrategy
forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"fixed-value-strategy"
        ]

parseFlagShortenSingleFieldObjects :: Parser (Maybe Bool)
parseFlagShortenSingleFieldObjects :: Parser (Maybe Bool)
parseFlagShortenSingleFieldObjects =
  String -> String -> Maybe Char -> Parser (Maybe Bool)
booleanFlag String
"When encountering an object with a single field, shorten the field of that object to be the schema name. Respects property type suffix." String
"shorten-single-field-objects" Maybe Char
forall a. Maybe a
Nothing