module Cloudy.Cli.Aws where import Options.Applicative (Parser, command, info, progDesc, hsubparser) data AwsCliOpts = AwsCreate AwsCreateCliOpts | AwsListInstanceTypes AwsListInstanceTypesCliOpts deriving stock Int -> AwsCliOpts -> ShowS [AwsCliOpts] -> ShowS AwsCliOpts -> String (Int -> AwsCliOpts -> ShowS) -> (AwsCliOpts -> String) -> ([AwsCliOpts] -> ShowS) -> Show AwsCliOpts forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> AwsCliOpts -> ShowS showsPrec :: Int -> AwsCliOpts -> ShowS $cshow :: AwsCliOpts -> String show :: AwsCliOpts -> String $cshowList :: [AwsCliOpts] -> ShowS showList :: [AwsCliOpts] -> ShowS Show data AwsCreateCliOpts = AwsCreateCliOpts deriving stock Int -> AwsCreateCliOpts -> ShowS [AwsCreateCliOpts] -> ShowS AwsCreateCliOpts -> String (Int -> AwsCreateCliOpts -> ShowS) -> (AwsCreateCliOpts -> String) -> ([AwsCreateCliOpts] -> ShowS) -> Show AwsCreateCliOpts forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> AwsCreateCliOpts -> ShowS showsPrec :: Int -> AwsCreateCliOpts -> ShowS $cshow :: AwsCreateCliOpts -> String show :: AwsCreateCliOpts -> String $cshowList :: [AwsCreateCliOpts] -> ShowS showList :: [AwsCreateCliOpts] -> ShowS Show data AwsListInstanceTypesCliOpts = AwsListInstanceTypesCliOpts deriving stock Int -> AwsListInstanceTypesCliOpts -> ShowS [AwsListInstanceTypesCliOpts] -> ShowS AwsListInstanceTypesCliOpts -> String (Int -> AwsListInstanceTypesCliOpts -> ShowS) -> (AwsListInstanceTypesCliOpts -> String) -> ([AwsListInstanceTypesCliOpts] -> ShowS) -> Show AwsListInstanceTypesCliOpts forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> AwsListInstanceTypesCliOpts -> ShowS showsPrec :: Int -> AwsListInstanceTypesCliOpts -> ShowS $cshow :: AwsListInstanceTypesCliOpts -> String show :: AwsListInstanceTypesCliOpts -> String $cshowList :: [AwsListInstanceTypesCliOpts] -> ShowS showList :: [AwsListInstanceTypesCliOpts] -> ShowS Show awsCliOptsParser :: Parser AwsCliOpts awsCliOptsParser :: Parser AwsCliOpts awsCliOptsParser = Mod CommandFields AwsCliOpts -> Parser AwsCliOpts forall a. Mod CommandFields a -> Parser a hsubparser Mod CommandFields AwsCliOpts subParsers where subParsers :: Mod CommandFields AwsCliOpts subParsers = Mod CommandFields AwsCliOpts createCommand Mod CommandFields AwsCliOpts -> Mod CommandFields AwsCliOpts -> Mod CommandFields AwsCliOpts forall a. Semigroup a => a -> a -> a <> Mod CommandFields AwsCliOpts listInstanceTypesCommand createCommand :: Mod CommandFields AwsCliOpts createCommand = String -> ParserInfo AwsCliOpts -> Mod CommandFields AwsCliOpts forall a. String -> ParserInfo a -> Mod CommandFields a command String "create" ( Parser AwsCliOpts -> InfoMod AwsCliOpts -> ParserInfo AwsCliOpts forall a. Parser a -> InfoMod a -> ParserInfo a info ((AwsCreateCliOpts -> AwsCliOpts) -> Parser AwsCreateCliOpts -> Parser AwsCliOpts forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap AwsCreateCliOpts -> AwsCliOpts AwsCreate Parser AwsCreateCliOpts awsCreateCliOptsParser) (String -> InfoMod AwsCliOpts forall a. String -> InfoMod a progDesc String "Create a new compute instance in AWS") ) listInstanceTypesCommand :: Mod CommandFields AwsCliOpts listInstanceTypesCommand = String -> ParserInfo AwsCliOpts -> Mod CommandFields AwsCliOpts forall a. String -> ParserInfo a -> Mod CommandFields a command String "list-instance-types" ( Parser AwsCliOpts -> InfoMod AwsCliOpts -> ParserInfo AwsCliOpts forall a. Parser a -> InfoMod a -> ParserInfo a info ((AwsListInstanceTypesCliOpts -> AwsCliOpts) -> Parser AwsListInstanceTypesCliOpts -> Parser AwsCliOpts forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap AwsListInstanceTypesCliOpts -> AwsCliOpts AwsListInstanceTypes Parser AwsListInstanceTypesCliOpts awsListInstanceTypesCliOptsParser) (String -> InfoMod AwsCliOpts forall a. String -> InfoMod a progDesc String "List all instance types in AWS") ) awsCreateCliOptsParser :: Parser AwsCreateCliOpts awsCreateCliOptsParser :: Parser AwsCreateCliOpts awsCreateCliOptsParser = AwsCreateCliOpts -> Parser AwsCreateCliOpts forall a. a -> Parser a forall (f :: * -> *) a. Applicative f => a -> f a pure AwsCreateCliOpts AwsCreateCliOpts awsListInstanceTypesCliOptsParser :: Parser AwsListInstanceTypesCliOpts awsListInstanceTypesCliOptsParser :: Parser AwsListInstanceTypesCliOpts awsListInstanceTypesCliOptsParser = AwsListInstanceTypesCliOpts -> Parser AwsListInstanceTypesCliOpts forall a. a -> Parser a forall (f :: * -> *) a. Applicative f => a -> f a pure AwsListInstanceTypesCliOpts AwsListInstanceTypesCliOpts